@bcgov/nr-ngx-component-lib 0.0.8 → 0.0.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components/cell-content/cell-content.component.d.ts +2 -1
- package/components/expansion-panel/expansion-panel.component.d.ts +4 -3
- package/components/filter-container/filter-container.component.d.ts +2 -1
- package/components/filter-date/filter-date.component.d.ts +2 -1
- package/components/filter-search/filter-search.component.d.ts +2 -1
- package/components/filter-select/filter-select.component.d.ts +9 -3
- package/components/filters-panel/filters-panel.component.d.ts +2 -1
- package/components/form-field/form-field.component.d.ts +2 -1
- package/components/form-layout/form-layout.component.d.ts +2 -1
- package/components/gap/gap.component.d.ts +2 -1
- package/components/icon/icon.component.d.ts +2 -1
- package/components/page-container/page-container.component.d.ts +2 -1
- package/components/page-header/page-header.component.d.ts +2 -1
- package/components/row-list-desktop/row-list-desktop.component.d.ts +2 -1
- package/components/row-list-mobile/row-list-mobile.component.d.ts +2 -1
- package/components/row-list-pagination/row-list-pagination.component.d.ts +2 -1
- package/components/row-list-sorting/row-list-sorting.component.d.ts +2 -1
- package/components/snackbar/snackbar.component.d.ts +2 -1
- package/directives/configuration-subscriber.base.d.ts +2 -1
- package/directives/nrcl.base.d.ts +9 -0
- package/directives/row-list.base.d.ts +2 -1
- package/esm2022/components/button/button.component.mjs +2 -2
- package/esm2022/components/cell-content/cell-content.component.mjs +6 -4
- package/esm2022/components/expansion-panel/expansion-panel.component.mjs +13 -10
- package/esm2022/components/filter-container/filter-container.component.mjs +6 -4
- package/esm2022/components/filter-date/filter-date.component.mjs +6 -4
- package/esm2022/components/filter-search/filter-search.component.mjs +6 -4
- package/esm2022/components/filter-select/filter-select.component.mjs +61 -37
- package/esm2022/components/filters-panel/filters-panel.component.mjs +6 -4
- package/esm2022/components/form-field/form-field.component.mjs +6 -4
- package/esm2022/components/form-layout/form-layout.component.mjs +5 -4
- package/esm2022/components/gap/gap.component.mjs +6 -4
- package/esm2022/components/icon/icon.component.mjs +6 -4
- package/esm2022/components/page-container/page-container.component.mjs +5 -4
- package/esm2022/components/page-header/page-header.component.mjs +6 -4
- package/esm2022/components/row-list-desktop/row-list-desktop.component.mjs +5 -4
- package/esm2022/components/row-list-mobile/row-list-mobile.component.mjs +5 -4
- package/esm2022/components/row-list-pagination/row-list-pagination.component.mjs +6 -4
- package/esm2022/components/row-list-sorting/row-list-sorting.component.mjs +6 -4
- package/esm2022/components/snackbar/snackbar.component.mjs +5 -3
- package/esm2022/directives/configuration-subscriber.base.mjs +7 -4
- package/esm2022/directives/nrcl.base.mjs +20 -0
- package/esm2022/directives/row-list.base.mjs +5 -3
- package/esm2022/nr-ngx-component-lib.module.mjs +5 -12
- package/esm2022/public-api.mjs +2 -1
- package/fesm2022/bcgov-nr-ngx-component-lib.mjs +162 -110
- package/fesm2022/bcgov-nr-ngx-component-lib.mjs.map +1 -1
- package/nr-ngx-component-lib.module.d.ts +0 -5
- package/package.json +1 -1
- package/public-api.d.ts +1 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bcgov-nr-ngx-component-lib.mjs","sources":["../../../projects/nr-ngx-component-lib/src/services/configuration.service.ts","../../../projects/nr-ngx-component-lib/src/directives/configuration-subscriber.base.ts","../../../projects/nr-ngx-component-lib/src/components/icon/icon.component.ts","../../../projects/nr-ngx-component-lib/src/components/icon/icon.component.html","../../../projects/nr-ngx-component-lib/src/components/button/button.component.ts","../../../projects/nr-ngx-component-lib/src/components/button/button.component.html","../../../projects/nr-ngx-component-lib/src/components/cell-content/cell-content.component.ts","../../../projects/nr-ngx-component-lib/src/components/cell-content/cell-content.component.html","../../../projects/nr-ngx-component-lib/src/components/device-view/device-view.component.ts","../../../projects/nr-ngx-component-lib/src/components/expansion-panel/expansion-panel.component.ts","../../../projects/nr-ngx-component-lib/src/components/expansion-panel/expansion-panel.component.html","../../../projects/nr-ngx-component-lib/src/components/filter-container/filter-container.component.ts","../../../projects/nr-ngx-component-lib/src/components/filter-container/filter-container.component.html","../../../projects/nr-ngx-component-lib/src/utils/date.util.ts","../../../projects/nr-ngx-component-lib/src/components/filter-date/filter-date.component.ts","../../../projects/nr-ngx-component-lib/src/components/filter-date/filter-date.component.html","../../../projects/nr-ngx-component-lib/src/components/filter-search/filter-search.component.ts","../../../projects/nr-ngx-component-lib/src/components/filter-search/filter-search.component.html","../../../projects/nr-ngx-component-lib/src/components/filter-select/filter-select.component.ts","../../../projects/nr-ngx-component-lib/src/components/filter-select/filter-select.component.html","../../../projects/nr-ngx-component-lib/src/components/filters-panel/filters-panel.component.ts","../../../projects/nr-ngx-component-lib/src/components/filters-panel/filters-panel.component.html","../../../projects/nr-ngx-component-lib/src/components/form-field/form-field.component.ts","../../../projects/nr-ngx-component-lib/src/components/form-layout/form-layout.component.ts","../../../projects/nr-ngx-component-lib/src/components/gap/gap.component.ts","../../../projects/nr-ngx-component-lib/src/services/page-state.service.ts","../../../projects/nr-ngx-component-lib/src/utils/row-list.util.ts","../../../projects/nr-ngx-component-lib/src/directives/row-list.base.ts","../../../projects/nr-ngx-component-lib/src/components/row-list-desktop/row-list-desktop.component.ts","../../../projects/nr-ngx-component-lib/src/components/row-list-desktop/row-list-desktop.component.html","../../../projects/nr-ngx-component-lib/src/components/row-list-mobile/row-list-mobile.component.ts","../../../projects/nr-ngx-component-lib/src/components/row-list-mobile/row-list-mobile.component.html","../../../projects/nr-ngx-component-lib/src/components/row-list-pagination/row-list-pagination.component.ts","../../../projects/nr-ngx-component-lib/src/components/row-list-pagination/row-list-pagination.component.html","../../../projects/nr-ngx-component-lib/src/components/list-attachments/list-attachments.component.ts","../../../projects/nr-ngx-component-lib/src/components/list-attachments/list-attachments.component.html","../../../projects/nr-ngx-component-lib/src/components/list-event-history/list-event-history.component.ts","../../../projects/nr-ngx-component-lib/src/components/list-event-history/list-event-history.component.html","../../../projects/nr-ngx-component-lib/src/components/page-container/page-container.component.ts","../../../projects/nr-ngx-component-lib/src/components/page-container/page-container.component.html","../../../projects/nr-ngx-component-lib/src/components/page-header/page-header.component.ts","../../../projects/nr-ngx-component-lib/src/components/page-header/page-header.component.html","../../../projects/nr-ngx-component-lib/src/utils/filter.util.ts","../../../projects/nr-ngx-component-lib/src/components/row-list-sorting/row-list-sorting.component.ts","../../../projects/nr-ngx-component-lib/src/components/row-list-sorting/row-list-sorting.component.html","../../../projects/nr-ngx-component-lib/src/components/snackbar/snackbar.component.ts","../../../projects/nr-ngx-component-lib/src/components/snackbar/snackbar.component.html","../../../projects/nr-ngx-component-lib/src/services/snackbar-util.service.ts","../../../projects/nr-ngx-component-lib/src/utils/code-table.util.ts","../../../projects/nr-ngx-component-lib/src/nr-ngx-component-lib.module.ts","../../../projects/nr-ngx-component-lib/src/public-api.ts","../../../projects/nr-ngx-component-lib/src/bcgov-nr-ngx-component-lib.ts"],"sourcesContent":["import { Injectable } from \"@angular/core\";\nimport { BehaviorSubject, Observable } from \"rxjs\";\n\nexport type DisplayMode = 'desktop' | 'mobile'\n\nexport type Configuration = {\n displayMode: DisplayMode \n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ConfigurationService {\n private _defaultConfiguration: Configuration = {\n displayMode: 'desktop'\n }\n\n private configSubject = new BehaviorSubject<Configuration>(this._defaultConfiguration);\n \n // Observable that components can subscribe to\n public configurationObservable: Observable<Configuration> = this.configSubject.asObservable();\n\n constructor() {\n this.configurationObservable.subscribe( ( c ) => {\n let el = document.querySelector( 'body' ) as HTMLElement\n el.classList.toggle( 'nrcl-device-desktop', c.displayMode == 'desktop' )\n el.classList.toggle( 'nrcl-device-mobile', c.displayMode == 'mobile' )\n } )\n }\n\n // Get current config value synchronously\n get configuration(): Configuration {\n return this.configSubject.value;\n }\n\n // Update entire config\n update( configuration: Partial<Configuration> ): void {\n this.configSubject.next( {\n ...this.configSubject.value,\n ...configuration\n } )\n }\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Directive,\n inject,\n OnDestroy,\n OnInit\n} from \"@angular/core\";\nimport { Configuration, ConfigurationService } from \"../services/configuration.service\";\n\n@Directive()\nexport class ConfigurationSubscriberBase implements OnInit, OnDestroy { \n configurationSubscription\n configuration: Configuration\n\n configurationService = inject( ConfigurationService )\n changeDetectorRef = inject( ChangeDetectorRef )\n\n ngOnInit(): void {\n this.configurationSubscription = this.configurationService.configurationObservable.subscribe( ( c ) => {\n this.configuration = c\n this.onConfigurationChange()\n this.changeDetectorRef.detectChanges()\n } )\n this.configuration = this.configurationService.configuration\n }\n\n ngOnDestroy(): void {\n if ( this.configurationSubscription ) this.configurationSubscription.unsubscribe()\n }\n\n onConfigurationChange() {}\n}\n","import { AfterContentInit, ChangeDetectorRef, Component, ElementRef, inject } from '@angular/core';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\n\n@Component( {\n selector: 'nrcl-icon',\n templateUrl: './icon.component.html',\n styleUrl: './icon.component.scss',\n host: {\n '[class.show-icon]': '!svg',\n '[class.show-svg]': '!!svg',\n }\n} )\nexport class IconComponent implements AfterContentInit { \n name: keyof( typeof ICON )\n svg: SafeHtml\n\n elementRef = inject( ElementRef )\n domSanitizer = inject( DomSanitizer ) \n\n ngAfterContentInit(): void {\n this.name = this.elementRef?.nativeElement?.textContent\n if ( ICON[ this.name ] ) this.svg = this.domSanitizer.bypassSecurityTrustHtml( ICON[ this.name ] )\n }\n}\n\nconst ICON = {\n 'clear-filters': `\n <svg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" viewBox=\"0 -7.934265 133.15887 133.15887\" height=\"100%\" width=\"100%\">\n <g transform=\"translate(-34.473864,-66.676034)\">\n <g>\n <g>\n <path d=\"M 94.473677,137.49393 34.473864,66.783005 34.564632,66.676034 H 154.38314 l 0.0907,0.106971 z\" />\n <rect y=\"129.02737\" x=\"88.416046\" height=\"45.357258\" width=\"12.115609\" />\n </g>\n <rect width=\"29.482143\" height=\"76.351196\" x=\"79.73278\" y=\"107.61517\" />\n </g>\n <g transform=\"translate(500.06128,136.57473)\">\n <rect width=\"14.363094\" height=\"49.892857\" x=\"-249.284\" y=\"235.20406\" transform=\"rotate(45)\" />\n <rect width=\"14.363095\" height=\"49.892857\" x=\"-267.59927\" y=\"-266.99539\" transform=\"rotate(-45)\" />\n </g>\n </g>\n </svg>\n `\n}","<mat-icon><ng-content></ng-content></mat-icon>\n<div class=\"svg\" [innerHTML]=\"svg\"></div>\n","import { booleanAttribute, Component, EventEmitter, inject, Input, NgZone, Output } from '@angular/core';\nimport { ConfigurationSubscriberBase } from '../../directives/configuration-subscriber.base';\n\n@Component( {\n selector: 'nrcl-button',\n templateUrl: './button.component.html',\n styleUrl: './button.component.scss',\n host: {\n '[class.primary]': 'primary',\n '[class.outline]': 'outline && !primary',\n '[class.disabled]': 'disabled',\n '[class.compact]': 'isCompact',\n '[class.icon-left]': '!isCompact && icon',\n '[class.icon-right]': '!isCompact && iconRight && label',\n '[class.label]': 'label'\n }\n} )\nexport class ButtonComponent extends ConfigurationSubscriberBase { \n @Input() label\n @Input() icon\n @Input() iconRight\n @Input() iconCompact\n @Input() tooltip\n @Input() compact\n @Input( { transform: booleanAttribute } ) primary = false\n @Input( { transform: booleanAttribute } ) outline = false\n @Input( { transform: booleanAttribute } ) disabled = false\n\n @Output() click = new EventEmitter<PointerEvent>()\n\n isCompact\n\n zone = inject( NgZone )\n\n onClick( ev: PointerEvent ) {\n if ( this.disabled ) return\n\n ev.stopPropagation()\n this.click.emit( ev )\n }\n\n onConfigurationChange(): void {\n // apparently this is needed to ensure that the host binding updates properly\n this.zone.run( () => {\n if ( this.compact == null || this.compact === false ) {\n this.isCompact = false\n }\n else if ( this.compact == '' || this.compact === true ) {\n this.isCompact = true\n }\n else {\n this.isCompact = this.compact == this.configuration.displayMode\n }\n\n this.changeDetectorRef.markForCheck()\n } )\n }\n}\n","<button \n matRipple\n (click)=\"onClick( $event )\"\n [disabled]=\"disabled\"\n [matTooltip]=\"tooltip\"\n>\n @if ( icon || iconRight || iconCompact || label ) {\n @if ( icon && ( !isCompact || !iconCompact ) ) { \n <nrcl-icon class=\"left\">{{ icon }}</nrcl-icon> \n }\n\n @if ( !isCompact && iconRight && label ) { \n <nrcl-icon class=\"right\">{{ iconRight }}</nrcl-icon> \n }\n\n @if ( isCompact && iconCompact ) { \n <nrcl-icon class=\"compact\">{{ iconCompact }}</nrcl-icon> \n }\n\n @if ( label ) {\n <span class=\"label\">{{ label }}</span> \n }\n }\n @else {\n <div class=\"content\">\n <ng-content></ng-content>\n </div>\n }\n</button>\n","import { AfterContentInit, booleanAttribute, ChangeDetectorRef, Component, ElementRef, inject, Input } from '@angular/core';\n\n@Component( {\n selector: 'nrcl-cell-content',\n templateUrl: './cell-content.component.html',\n styleUrl: './cell-content.component.scss',\n} )\nexport class CellContentComponent implements AfterContentInit {\n @Input() tooltip\n @Input() content\n \n elementRef = inject( ElementRef )\n changeDetectorRef = inject( ChangeDetectorRef )\n\n tooltipContent\n\n ngAfterContentInit(): void {\n setTimeout( () => {\n if ( this.tooltip == null || this.tooltip === false ) {\n // no tooltip \n }\n else if ( this.tooltip == '' || this.tooltip === true ) {\n this.tooltipContent = this.content || this.elementRef?.nativeElement?.textContent\n }\n else {\n this.tooltipContent = this.tooltip\n }\n \n this.changeDetectorRef.detectChanges()\n } )\n }\n}\n","<div [matTooltip]=\"tooltipContent\" class=\"content\">\n @if ( content ) {\n {{ content }}\n }\n @else {\n <ng-content></ng-content>\n }\n</div>\n","import { ChangeDetectorRef, Component, ContentChild, Directive, HostListener, inject, TemplateRef } from \"@angular/core\";\nimport { ConfigurationSubscriberBase } from \"../../directives/configuration-subscriber.base\";\n\n@Directive({\n selector: \"[desktop-view]\"\n})\nexport class DesktopViewDirective {\n constructor(\n public templateRef: TemplateRef<unknown>\n ) {}\n}\n\n\n@Directive({\n selector: \"[mobile-view]\"\n})\nexport class MobileViewDirective {\n constructor(\n public templateRef: TemplateRef<unknown>\n ) {}\n}\n\n\n@Component({\n selector: \"nrcl-device-view\",\n template: `\n @if ( mobileVisible && mobileContent ) {\n <ng-container [ngTemplateOutlet]=\"mobileContent.templateRef\"></ng-container>\n }\n\n @if ( desktopVisible && desktopContent ) {\n <ng-container [ngTemplateOutlet]=\"desktopContent.templateRef\"></ng-container>\n }\n `,\n styles: [`\n :host:empty {\n display: none;\n }\n `]\n})\nexport class DeviceViewComponent extends ConfigurationSubscriberBase {\n @ContentChild( DesktopViewDirective ) desktopContent!: DesktopViewDirective;\n @ContentChild( MobileViewDirective ) mobileContent!: MobileViewDirective;\n\n changeDetectorRef = inject( ChangeDetectorRef )\n\n get desktopVisible() { return this.configuration.displayMode == 'desktop' }\n get mobileVisible() { return this.configuration.displayMode == 'mobile' }\n}\n\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, ViewChild } from \"@angular/core\";\nimport { MatExpansionPanel } from \"@angular/material/expansion\";\n\n@Component({\n selector: \"nrcl-expansion-panel\",\n templateUrl: \"./expansion-panel.component.html\",\n styleUrl: \"./expansion-panel.component.scss\",\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class.is-loading]': 'isLoading',\n '[class.expanded]': 'matExpansionPanel?.expanded',\n '[class.disabled]': 'disabled',\n }\n})\nexport class ExpansionPanelComponent {\n @Input() isLoading: boolean = false;\n @Input() disabled = false;\n @Input() expanded = false\n\n @Output() expandedChange = new EventEmitter<boolean>()\n\n @ViewChild( 'panel' ) matExpansionPanel: MatExpansionPanel\n}\n\n@Component({\n selector: \"nrcl-expansion-panel-header\",\n template: `\n <div class=\"left-side\">\n <ng-content select=\"[left-side],h2,h3\"></ng-content>\n </div>\n\n <div class=\"right-side\">\n <ng-content></ng-content>\n </div>\n `,\n styles: [`\n :host {\n display: flex;\n color: #212121;\n width: 100%;\n }\n\n .left-side {\n display: flex;\n flex-direction: column;\n padding: 10px 0; \n align-self: flex-start;\n }\n\n .left-side ::ng-deep h2 {\n font-size: var( --nrcl-font-size-h2);\n font-weight: 200;\n padding: 0;\n margin: 0;\n } \n\n .left-side ::ng-deep h3 {\n font-size: var( --nrcl-font-size-h3 );\n font-weight: 200;\n padding: 0;\n margin: 0;\n } \n\n .right-side {\n flex-grow: 1;\n display: flex;\n justify-content: flex-end;\n align-self: center;\n }\n `],\n})\nexport class ExpansionPanelHeaderComponent {}\n\n@Component({\n selector: \"nrcl-expansion-panel-footer\",\n template: `\n @if ( showWarning ) {\n <div class=\"warning\">\n <nrcl-icon>warning</nrcl-icon>\n <span>{{ warningMessage }}</span>\n </div>\n }\n\n @if ( cancelEnabled != null ) {\n <nrcl-button\n label=\"Cancel\"\n iconCompact=\"cancel\"\n compact=\"mobile\"\n [disabled]=\"!cancelEnabled\"\n (click)=\"cancelClick.emit( $event )\"\n ></nrcl-button>\n }\n\n @if ( saveEnabled != null ) {\n <nrcl-button primary\n label=\"Save\"\n iconCompact=\"save\"\n compact=\"mobile\"\n [disabled]=\"!saveEnabled\"\n (click)=\"saveClick.emit( $event )\"\n ></nrcl-button>\n }\n\n <ng-content></ng-content>\n `,\n styles: [`\n :host {\n border-top: 1px solid #c6c8cb;\n padding: var(--nrcl-gutter-space);\n background-color: #f2f2f2;\n display: flex;\n gap: 8px;\n justify-content: flex-end;\n }\n\n :host:empty {\n display: none;\n }\n\n .warning {\n display: flex;\n gap: 4px;\n align-items: center;\n }\n\n .warning nrcl-icon {\n color: #FCBA19; \n }\n `],\n})\nexport class ExpansionPanelFooterComponent {\n @Input() saveEnabled \n @Input() cancelEnabled \n @Input() warningMessage = 'Unsaved Changes'\n @Input() showWarning = false\n\n @Output() saveClick = new EventEmitter<PointerEvent>()\n @Output() cancelClick = new EventEmitter<PointerEvent>()\n}\n","<mat-expansion-panel #panel \n togglePosition=\"before\"\n [expanded]=\"expanded\" \n [disabled]=\"disabled\" \n (opened)=\"expandedChange.emit( true )\" \n (closed)=\"expandedChange.emit( false )\" \n>\n <mat-expansion-panel-header>\n <mat-panel-description>\n <ng-content select=\"nrcl-expansion-panel-header\"></ng-content>\n\n @if ( isLoading ) {\n <mat-spinner class=\"loading\" [diameter]=\"30\"></mat-spinner>\n }\n </mat-panel-description>\n </mat-expansion-panel-header>\n\n <div class=\"body\">\n <ng-content></ng-content>\n </div>\n\n <ng-content select=\"nrcl-expansion-panel-footer\"></ng-content>\n</mat-expansion-panel>","import {\n ChangeDetectionStrategy,\n Component,\n Input\n} from \"@angular/core\";\n\n@Component( {\n selector: \"nrcl-filter-container\",\n templateUrl: \"./filter-container.component.html\",\n styleUrl: \"./filter-container.component.scss\",\n changeDetection: ChangeDetectionStrategy.OnPush,\n} )\nexport class FilterContainerComponent {\n @Input() label = '[label]'\n @Input() hint\n}\n","<mat-form-field\n floatLabel=\"always\"\n appearance=\"outline\"\n subscriptSizing=\"dynamic\"\n>\n <mat-label>{{ label }}</mat-label>\n\n <input matInput>\n\n <div class=\"content\">\n <ng-content></ng-content>\n </div>\n\n @if ( hint ) {\n <mat-hint>{{ hint }}</mat-hint>\n }\n</mat-form-field>\n","export const DATE_FORMATS = {\n fullPickerInput: \"Y-MM-DD HH:mm\",\n datePickerInput: \"Y-MM-DD\",\n timePickerInput: \"HH:mm\",\n monthYearLabel: \"Y-MM\",\n dateA11yLabel: \"Y-MMM-DD\",\n monthYearA11yLabel: \"YYYY-MMM\",\n simplifiedDate: \"MMM DD\",\n simplifiedMonthDate: \"MM-DD\",\n fullPickerInputWithSlash: \"Y-MM-DD/ HH:mm\",\n API_DATE: \"Y-MM-DD\",\n API_TIMESTAMP: 'Y-MM-DD HH:mm:ss',\n API_TIMESTAMP_WITH_SEP: 'Y-MM-DDTHH:mm:ss'\n};\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n Output\n} from \"@angular/core\";\nimport moment from \"moment\";\nimport { DATE_FORMATS } from \"../../utils/date.util\";\n\n@Component( {\n selector: \"nrcl-filter-date\",\n templateUrl: \"./filter-date.component.html\",\n styleUrl: \"./filter-date.component.scss\",\n changeDetection: ChangeDetectionStrategy.OnPush,\n} )\nexport class FilterDateComponent {\n @Input() label = '[label]]'\n @Input() placeholder = 'Select...'\n @Input() hint\n @Input() value = moment().format( DATE_FORMATS.datePickerInput )\n\n @Output() valueChange = new EventEmitter<string>();\n\n onDateChange( ev ) {\n if ( !ev ) {\n this.valueChange.emit( null )\n return\n }\n\n let date = ev.format( DATE_FORMATS.datePickerInput )\n this.valueChange.emit( date )\n }\n}\n","<mat-form-field\n floatLabel=\"auto\"\n appearance=\"outline\"\n subscriptSizing=\"dynamic\"\n>\n <mat-label>{{ label }}</mat-label>\n\n <input matInput class=\"search-input\" \n [ngModel]=\"value\" \n (ngModelChange)=\"onDateChange( $event )\"\n [placeholder]=\"placeholder\"\n [owlDateTime]=\"selectedDateDT\" \n maxlength=\"10\" \n appWFDateMask\n >\n\n @if ( hint ) {\n <mat-hint>{{ hint }}</mat-hint>\n }\n\n <button class=\"select-date\"\n [owlDateTimeTrigger]=\"selectedDateDT\" \n aria-label=\"Open Select Date Picker\"\n mat-icon-button\n matSuffix\n >\n <nrcl-icon>event</nrcl-icon>\n </button>\n</mat-form-field>\n\n<owl-date-time #selectedDateDT pickerType=\"calendar\"></owl-date-time>\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n inject,\n Input,\n Output,\n ViewChild\n} from \"@angular/core\";\n\n@Component( {\n selector: \"nrcl-filter-search\",\n templateUrl: \"./filter-search.component.html\",\n styleUrl: \"./filter-search.component.scss\",\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class.has-value]': \"hasValue\"\n }\n} )\nexport class FilterSearchComponent {\n @Input() label = 'Search'\n @Input() placeholder = 'Search...'\n @Input() hint\n @Input() value: string\n\n @Output() valueChange = new EventEmitter<string>();\n\n @ViewChild( 'input' ) inputEl: ElementRef\n\n hasValue = false\n changeDetectorRef = inject( ChangeDetectorRef )\n\n emitValueChange( val? ) {\n this.hasValue = !!val\n this.valueChange.emit( val )\n }\n\n onInput( ev ) {\n this.value = ev?.target?.value\n this.emitValueChange( ev?.target?.value )\n }\n\n onCancelClick() {\n this.value = null\n this.emitValueChange()\n }\n\n focus() {\n this.inputEl.nativeElement.focus()\n }\n}\n","<mat-form-field\n floatLabel=\"auto\"\n appearance=\"outline\"\n subscriptSizing=\"dynamic\"\n>\n <mat-label>{{ label }}</mat-label>\n\n <input class=\"search-input\" #input\n matInput\n [value]=\"value || ''\"\n (input)=\"onInput( $event )\"\n [placeholder]=\"placeholder\"\n >\n\n @if ( hint ) {\n <mat-hint>{{ hint }}</mat-hint>\n }\n\n @if ( value ) {\n <button class=\"cancel\"\n mat-icon-button\n matSuffix\n (click)=\"onCancelClick($event); $event.stopPropagation()\"\n >\n <nrcl-icon>close</nrcl-icon>\n </button>\n } \n</mat-form-field>\n","import { Overlay, OverlayRef } from \"@angular/cdk/overlay\";\nimport { TemplatePortal } from \"@angular/cdk/portal\";\nimport {\n booleanAttribute,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n inject,\n Input,\n numberAttribute,\n OnChanges,\n Output,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n ViewContainerRef\n} from \"@angular/core\";\nimport { FormControl } from \"@angular/forms\";\nimport { MatSelectionListChange } from \"@angular/material/list\";\nimport { fromEvent } from \"rxjs\";\nimport { filter } from \"rxjs/operators\";\nimport { CodeDescription } from \"../../utils/code-table.util\";\n\n\n/**\n * A filter select component that allows users to select multiple options from a list.\n *\n * Features:\n * - Multi-select with optional maximum selection limit\n * - Search/filter functionality\n * - Tooltips for long descriptions\n * - Summary display of selected items\n */\n@Component( {\n selector: \"nrcl-filter-select\",\n templateUrl: \"./filter-select.component.html\",\n styleUrl: \"./filter-select.component.scss\",\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class.has-value]': \"hasValue\",\n '[class.is-open]': \"isOpen\",\n '[class.is-closed]': \"!isOpen\",\n '[class.use-filter]': \"filter\",\n }\n} )\nexport class FilterSelectComponent implements OnChanges {\n @Input() label\n @Input() placeholder = 'Filter...'\n @Input() hint\n @Input() options: CodeDescription[]\n @Input() value: string[]\n @Input( { transform: numberAttribute } ) selectMax = 0\n @Input( { transform: booleanAttribute } ) tooltips = true\n @Input( { transform: booleanAttribute } ) summary = true\n @Input( { transform: booleanAttribute } ) clear = true\n @Input( { transform: booleanAttribute } ) filter = true\n\n @Output() valueChange = new EventEmitter<string[]>();\n\n floatLabel = 'auto'\n inputValue\n openingValue\n isFiltered = false\n isOpen = false\n hasValue = false\n overlayRef: OverlayRef\n selection = new FormControl()\n match: ( option: CodeDescription ) => boolean = ( o ) => true\n clickSubscription\n\n changeDetectorRef = inject( ChangeDetectorRef )\n overlay = inject( Overlay )\n viewContainerRef = inject( ViewContainerRef )\n\n @ViewChild( 'trigger', { read: ElementRef } ) trigger!: ElementRef\n @ViewChild( 'filterInput' ) filterInput!: ElementRef\n @ViewChild( 'overlayTemplate' ) overlayTemplate!: TemplateRef<any>\n\n ngOnChanges( changes: SimpleChanges ): void {\n if ( this.isOpen ) return\n\n if ( changes.options ) {\n let pv = JSON.stringify( changes.options.previousValue )\n let cv = JSON.stringify( changes.options.currentValue )\n if ( pv != cv ) {\n this.selection.setValue( null )\n this.setInputToSelection()\n this.setFilter()\n }\n }\n\n if ( changes.value ) {\n let pv = JSON.stringify( changes.value.previousValue )\n let cv = JSON.stringify( changes.value.currentValue )\n if ( pv != cv ) {\n if ( this.value ) {\n this.hasValue = this.value.length > 0\n this.selection.setValue( this.value )\n if ( this.selectMax > 1 && this.value.length >= this.selectMax ) {\n this.selection.disable()\n }\n else {\n this.selection.enable()\n }\n }\n else {\n this.hasValue = false\n this.selection.setValue( null )\n this.selection.enable()\n }\n\n this.setFilter()\n this.setInputToSelection()\n this.changeDetectorRef.detectChanges()\n }\n }\n }\n\n get single() {\n return this.selectMax == 1\n }\n\n emitValueChange() {\n this.hasValue = ( this.selection.value || [] ).length > 0\n this.valueChange.emit( this.selection.value || [] )\n }\n\n open() {\n if ( this.isOpen ) return\n\n this.isOpen = true\n this.floatLabel = 'always'\n if ( this.filter ) {\n this.inputValue = ''\n }\n else {\n\n }\n\n // Create overlay\n const positionStrategy = this.overlay\n .position()\n .flexibleConnectedTo( this.trigger )\n .withPositions( [\n {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top',\n offsetY: 0\n },\n {\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom',\n offsetY: 0\n }\n ] )\n .withPush( false )\n\n const scrollStrategy = this.overlay.scrollStrategies.reposition()\n\n this.overlayRef = this.overlay.create( {\n positionStrategy,\n scrollStrategy,\n hasBackdrop: false,\n maxWidth: this.trigger.nativeElement.offsetWidth * 2,\n minWidth: this.trigger.nativeElement.offsetWidth,\n maxHeight: 300,\n } )\n\n // Attach template\n const portal = new TemplatePortal( this.overlayTemplate, this.viewContainerRef )\n this.overlayRef.attach( portal )\n\n // Listen to document clicks after a small delay to avoid closing immediately\n setTimeout( () => {\n this.clickSubscription = fromEvent<MouseEvent>( document, 'click' )\n .pipe( filter( ( event: MouseEvent ) => {\n const clickTarget = event.target as HTMLElement\n const triggerEl = this.trigger.nativeElement\n const overlayEl = this.overlayRef?.overlayElement\n\n // Only close if click is outside both trigger and overlay\n return !triggerEl.contains(clickTarget)\n && !overlayEl?.contains(clickTarget)\n } ) )\n .subscribe( () => {\n this.close()\n } )\n } )\n\n // Focus input after overlay is attached\n setTimeout( () => {\n this.filterInput?.nativeElement.focus();\n\n // prevent list from scrolling when selection changes\n this.overlayRef.overlayElement.children[0].scroll( 0, 1 )\n } )\n\n this.setFilter()\n\n this.openingValue = JSON.stringify( this.selection.value )\n }\n\n close() {\n if ( !this.isOpen ) return\n\n this.isOpen = false\n this.setInputToSelection()\n this.floatLabel = 'auto'\n\n if ( this.clickSubscription ) {\n this.clickSubscription.unsubscribe()\n this.clickSubscription = null\n }\n\n if ( this.overlayRef ) {\n this.overlayRef.dispose()\n this.overlayRef = null\n }\n\n this.changeDetectorRef.detectChanges()\n\n let closingValue = JSON.stringify( this.selection.value )\n if ( this.openingValue != closingValue )\n this.emitValueChange()\n }\n\n setInputToSelection() {\n this.inputValue = this.selection?.value?.map( c => this.descriptionForCode( c ) ).join( ', ' ) || null\n }\n\n onInput( ev?) {\n this.setFilter( ev?.target?.value )\n }\n\n setFilter( text?: string ) {\n let t = text?.trim().toLowerCase()\n\n if ( t ) {\n this.isFiltered = true\n this.match = ( option ) => option.description.toLowerCase().includes( t )\n }\n else {\n this.isFiltered = false\n this.match = ( o ) => true\n }\n\n this.changeDetectorRef.detectChanges()\n }\n\n matchesFilter( option: CodeDescription ) {\n return this.match( option )\n }\n\n onSelectionChange( ev ) {\n if ( this.single ) {\n this.close()\n }\n else {\n this.filterInput?.nativeElement.focus()\n }\n\n if ( this.selectMax > 1 ) {\n if ( this.selection.value.length >= this.selectMax ) {\n this.selection.disable()\n }\n else {\n this.selection.enable()\n }\n }\n\n this.changeDetectorRef.detectChanges()\n }\n\n onUpperSelectionChange( ev: MatSelectionListChange ) {\n setTimeout(() => {\n let codes = this.selection.value.filter( c => c != ev.options[ 0 ].value )\n this.selection.setValue( codes )\n\n this.onSelectionChange( ev )\n })\n }\n\n onCancelClick() {\n this.selection.setValue( null )\n this.selection.enable()\n this.setInputToSelection()\n this.emitValueChange()\n }\n\n onInputFocus() {\n this.open()\n }\n\n onCloseClick() {\n this.close()\n }\n\n descriptionForCode( code: string ): string {\n return this.options.find( o => o.code == code )?.description\n }\n}\n","<mat-form-field #trigger\n [floatLabel]=\"floatLabel\"\n appearance=\"outline\"\n subscriptSizing=\"dynamic\"\n>\n @if ( label ) {\n <mat-label>{{ label }}</mat-label>\n }\n\n <input class=\"filter-input\" #searchInput\n matInput \n [placeholder]=\"placeholder\" \n [value]=\"inputValue\"\n (input)=\"onInput( $event )\"\n (keydown.escape)=\"close()\"\n (focus)=\"onInputFocus()\"\n [matTooltip]=\"inputValue\"\n [readonly]=\"!filter\"\n >\n\n @if ( isOpen ) {\n <button class=\"cancel\"\n mat-icon-button\n matSuffix\n (click)=\"onCloseClick($event); $event.stopPropagation()\"\n >\n <nrcl-icon>arrow_drop_up</nrcl-icon>\n </button>\n }\n @else if ( selection?.value?.length > 0 && clear ) {\n <button class=\"cancel\"\n mat-icon-button\n matSuffix\n (click)=\"onCancelClick($event); $event.stopPropagation()\"\n >\n <nrcl-icon>close</nrcl-icon>\n </button>\n }\n @else {\n <button class=\"cancel\"\n mat-icon-button\n matSuffix\n >\n <nrcl-icon>arrow_drop_down</nrcl-icon>\n </button>\n } \n\n @if ( hint ) {\n <mat-hint>{{ hint }}</mat-hint>\n }\n</mat-form-field> \n\n<ng-template #overlayTemplate>\n <div class=\"filter-select-options\" [class.multiple]=\"!single\" [class.single]=\"single\">\n @if ( !isFiltered && !single && summary ) {\n @if ( selection?.value?.length > 0 && selection?.value?.length < options?.length ) {\n <div class=\"selection-overview\">\n <div class=\"summary\">{{ selection?.value?.length }} selected of {{ options?.length }}</div>\n\n <mat-selection-list\n (selectionChange)=\"onUpperSelectionChange( $event )\"\n >\n @for ( code of selection?.value; track code ) {\n <mat-list-option \n [value]=\"code\" \n togglePosition=\"before\"\n selected\n [matTooltip]=\"tooltips ? descriptionForCode( code ) : null\"\n matTooltipPosition=\"after\"\n >\n {{ descriptionForCode( code ) }}\n </mat-list-option>\n }\n </mat-selection-list>\n </div>\n }\n\n @if ( selection?.value?.length == options?.length ) {\n <div class=\"selection-overview\">\n <div class=\"summary\">All options selected</div>\n </div>\n }\n }\n\n <mat-selection-list\n [formControl]=\"selection\"\n (selectionChange)=\"onSelectionChange( $event )\"\n [multiple]=\"!single\"\n hideSingleSelectionIndicator\n >\n @for ( option of options; track option ) {\n <mat-list-option [class.hide]=\"!matchesFilter( option )\"\n [value]=\"option.code\" \n togglePosition=\"before\" \n [matTooltip]=\"tooltips ? option.description : null\"\n matTooltipPosition=\"after\" \n >\n {{ option.description }}\n </mat-list-option>\n }\n </mat-selection-list>\n </div>\n</ng-template>\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n Output\n} from \"@angular/core\";\n\n@Component( {\n selector: \"nrcl-filters-panel\",\n templateUrl: \"./filters-panel.component.html\",\n styleUrl: \"./filters-panel.component.scss\",\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class.hide-filters]': '!showFilters'\n }\n} )\nexport class FiltersPanelComponent {\n @Input() showClear = true\n @Input() showFilters = true\n @Input() hasAdvancedFilters = false\n @Input() showAdvancedFilters = false\n\n @Output() clearFilters = new EventEmitter()\n @Output() showFiltersChange = new EventEmitter<boolean>()\n @Output() showAdvancedFiltersChange = new EventEmitter<boolean>()\n\n onClearClick() {\n this.clearFilters.emit()\n }\n\n onHideClick() {\n this.showFilters = false\n this.showFiltersChange.emit( false )\n }\n\n onShowClick() {\n this.showFilters = true\n this.showFiltersChange.emit( true )\n }\n\n onHideAdvancedClick() {\n this.showAdvancedFilters = false\n this.showAdvancedFiltersChange.emit( false )\n }\n\n onShowAdvancedClick() {\n this.showAdvancedFilters = true\n this.showAdvancedFiltersChange.emit( true )\n }\n}\n","@if ( showFilters ) {\n <ng-content></ng-content>\n}\n\n@if ( showFilters && hasAdvancedFilters && showAdvancedFilters ) {\n <ng-content select=\"[advanced]\"></ng-content>\n}\n\n<div class=\"actions\">\n @if ( showClear && showFilters ) {\n <nrcl-button outline \n label=\"Clear\"\n icon=\"clear-filters\"\n (click)=\"onClearClick()\"\n compact=\"mobile\"\n ></nrcl-button>\n }\n\n @if ( showFilters && hasAdvancedFilters ) {\n @if ( showAdvancedFilters ) {\n <nrcl-button outline \n label=\"Less Filters\"\n icon=\"remove\"\n (click)=\"onHideAdvancedClick()\"\n compact=\"mobile\"\n ></nrcl-button>\n }\n @else {\n <nrcl-button outline \n label=\"More Filters\"\n icon=\"add\"\n (click)=\"onShowAdvancedClick()\"\n compact=\"mobile\"\n ></nrcl-button>\n }\n }\n\n <nrcl-device-view>\n <ng-template mobile-view>\n @if ( showFilters ) {\n <nrcl-button outline \n label=\"Hide Filters\"\n icon=\"expand_less\"\n (click)=\"onHideClick()\"\n compact=\"mobile\"\n ></nrcl-button>\n }\n @else {\n <nrcl-button outline \n label=\"Show Filters\"\n icon=\"expand_more\"\n (click)=\"onShowClick()\"\n compact=\"mobile\"\n ></nrcl-button>\n }\n </ng-template>\n </nrcl-device-view>\n</div>\n","import {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n inject,\n Input,\n OnChanges,\n Renderer2,\n SimpleChanges\n} from \"@angular/core\";\n\n@Component({\n selector: \"nrcl-form-field\",\n template: \"<ng-content></ng-content>\",\n styleUrl: \"./form-field.component.scss\",\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class.required]': \"required\",\n '[class.readonly]': \"readonly\",\n }\n})\nexport class FormFieldComponent implements OnChanges {\n @Input( { transform: booleanAttribute } ) required\n @Input( { transform: booleanAttribute } ) readonly\n\n element = inject( ElementRef )\n renderer = inject( Renderer2 )\n\n ngOnChanges( changes: SimpleChanges ): void {\n if ( changes.readonly ) {\n if ( this.readonly ) {\n makeFormFieldReadonly( this.renderer, this.element.nativeElement )\n }\n else {\n makeFormFieldNotReadonly( this.renderer, this.element.nativeElement )\n }\n }\n }\n}\n\nfunction makeFormFieldReadonly(renderer: Renderer2, formFieldEl: HTMLElement) {\n let editableElements;\n //make input element readonly\n let inputHtmlElement: HTMLInputElement;\n editableElements = formFieldEl.getElementsByTagName('input');\n if (editableElements && editableElements.length) {\n inputHtmlElement = editableElements[0];\n setTimeout(() => {\n renderer.setAttribute(inputHtmlElement, \"readonly\", \"readonly\");\n });\n }\n\n //make textarea element readonly\n let textareaHtmlElement: HTMLTextAreaElement;\n editableElements = formFieldEl.getElementsByTagName('textarea');\n if (editableElements && editableElements.length) {\n textareaHtmlElement = editableElements[0];\n setTimeout(() => {\n renderer.setAttribute(textareaHtmlElement, \"readonly\", \"readonly\");\n });\n }\n\n //make select element readonly\n let selectHtmlElement: HTMLSelectElement;\n editableElements = formFieldEl.getElementsByTagName('select');\n if (editableElements && editableElements.length) {\n selectHtmlElement = editableElements[0];\n setTimeout(() => {\n renderer.addClass(selectHtmlElement, \"select-read-only-cursor\");\n renderer.setAttribute(selectHtmlElement, \"readonly\", \"readonly\");\n for (let i = 0; i < selectHtmlElement.options.length; i++) {\n selectHtmlElement.options[i].disabled = true;\n }\n });\n }\n}\n\nfunction makeFormFieldNotReadonly(renderer: Renderer2, formFieldEl: HTMLElement) {\n // renderer.removeClass(formFieldEl, \"readonly\");\n let editableElements;\n //make input element readonly\n let inputHtmlElement: HTMLInputElement;\n editableElements = formFieldEl.getElementsByTagName('input');\n if (editableElements && editableElements.length) {\n inputHtmlElement = editableElements[0];\n setTimeout(() => {\n renderer.removeAttribute(inputHtmlElement, \"readonly\");\n });\n }\n\n //make textarea element readonly\n let textareaHtmlElement: HTMLTextAreaElement;\n editableElements = formFieldEl.getElementsByTagName('textarea');\n if (editableElements && editableElements.length) {\n textareaHtmlElement = editableElements[0];\n setTimeout(() => {\n renderer.removeAttribute(textareaHtmlElement, \"readonly\");\n });\n }\n\n //make select element readonly\n let selectHtmlElement: HTMLSelectElement;\n editableElements = formFieldEl.getElementsByTagName('select');\n if (editableElements && editableElements.length) {\n selectHtmlElement = editableElements[0];\n setTimeout(() => {\n renderer.removeClass(selectHtmlElement, \"select-read-only-cursor\");\n renderer.removeAttribute(selectHtmlElement, \"readonly\");\n for (let i = 0; i < selectHtmlElement.options.length; i++) {\n selectHtmlElement.options[i].disabled = undefined;\n }\n });\n }\n}","import {\n ChangeDetectionStrategy,\n Component\n} from \"@angular/core\";\n\n@Component({\n selector: \"nrcl-form-layout\",\n template: \"<ng-content></ng-content>\",\n styleUrl: \"./form-layout.component.scss\",\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class FormLayoutComponent {\n}\n","import { booleanAttribute, Component, Input } from '@angular/core';\n\n@Component( {\n selector: 'nrcl-gap',\n template: '',\n styleUrl: './gap.component.scss',\n} )\nexport class GapComponent {\n @Input( { transform: booleanAttribute } ) horizontal = false\n @Input( { transform: booleanAttribute } ) vertical = false\n}\n","import { Injectable } from \"@angular/core\";\n\ntype StateContainer = {\n label: string\n state: any\n}\n\n@Injectable( {\n providedIn: \"root\"\n} )\nexport class PageStateService {\n private readonly classRegistry = new WeakMap<Function, StateContainer>();\n\n constructor() {\n }\n\n getPageState<S>( classConstructor: Function, defaultState: S, label?: string ): S {\n if ( this.classRegistry.has( classConstructor ) ) {\n let sc = this.classRegistry.get( classConstructor )\n return sc.state\n }\n\n this.setPageState( classConstructor, defaultState, label )\n return defaultState\n }\n\n setPageState<S>( classConstructor: Function, state: S, label?: string ) {\n let sc: StateContainer = { label, state }\n this.classRegistry.set( classConstructor, sc )\n }\n}\n","import { Observable } from \"rxjs\";\n\nexport class Aborted {\n constructor( public reason: string ) {}\n}\n\nexport class ObservableAborter<T> {\n private _promise: Promise<T>\n private _abort: () => void\n private _aborted: boolean\n\n constructor( \n private observable: () => Observable<T>,\n private delay: number = 500\n ) {\n this._promise = new Promise( ( res, rej ) => {\n let timer = setTimeout(() => {\n let sub = this.observable().subscribe( {\n next: res,\n error: rej\n } )\n\n this._abort = () => {\n sub.unsubscribe()\n rej( new Aborted( 'aborted request' ) )\n this._abort = null\n }\n }, this.delay);\n\n this._abort = () => {\n clearTimeout( timer )\n rej( new Aborted( 'aborted timer' ) ) \n this._abort = null\n }\n } )\n }\n\n abort() {\n if ( this._aborted ) return\n this._aborted = true\n if ( !this._abort ) return\n this._abort()\n }\n\n get aborted(): boolean {\n return this._aborted\n }\n\n get promise(): Promise<T> {\n return this._promise\n }\n}\n","import { AfterViewInit, ChangeDetectorRef, Directive, EventEmitter, inject, Output } from \"@angular/core\";\nimport { SortDirection } from \"@angular/material/sort\";\nimport { Observable } from \"rxjs\";\nimport { PageStateService } from \"../services/page-state.service\";\nimport { ObservableAborter, Aborted } from \"../utils/row-list.util\";\nimport { CodeDescription } from \"../public-api\";\n\nexport type RowListState<F> = {\n filter: F\n pageSize: number\n pageNumber: number\n sortActive: string \n sortDirection: SortDirection\n}\n\nexport type LoadRowListResult<R> = { \n rows: R[], \n totalRowCount: number \n}\n\n@Directive()\nexport class RowListBase<F,R,L=any> implements RowListState<F>, AfterViewInit {\n @Output() isLoadingChange = new EventEmitter<boolean>()\n \n private _isLoading = false\n get isLoading() { return this._isLoading }\n set isLoading( v: boolean ) { \n if ( v == this._isLoading ) return \n this._isLoading = v \n this.isLoadingChange.emit( v )\n } \n\n rows: R[] = []\n totalRowCount: number\n\n filter: F\n pageSize: number\n pageNumber: number\n sortActive: string \n sortDirection: SortDirection\n\n sortColumns: CodeDescription[]\n summaryMobile: string\n showPagingMobile: boolean\n \n pageStateService = inject( PageStateService )\n changeDetectorRef = inject( ChangeDetectorRef )\n\n private _loadRowListRequest: ObservableAborter<L>\n\n constructor() {\n this.initializeRowList()\n }\n\n initializeRowList() {\n this.loadPageState() \n }\n\n ngAfterViewInit(): void {\n this.refreshRowList()\n }\n\n refreshRowList(): Promise<void> {\n this.isLoading = true\n\n return Promise.resolve()\n .then( () => {\n return this.loadRowList()\n } )\n .then( ( { rows, totalRowCount } ) => {\n this.rows = rows\n this.totalRowCount = totalRowCount\n this.isLoading = false\n } )\n .catch( ( e ) => {\n if ( e instanceof Aborted ) return\n\n this.loadRowListPageFailed( e )\n this.isLoading = false\n } )\n .finally( () => {\n this.updateSummaryMobile()\n this.changeDetectorRef.detectChanges()\n } )\n }\n\n loadRowList(): Promise<LoadRowListResult<R>> {\n if ( this._loadRowListRequest )\n this._loadRowListRequest.abort()\n\n this._loadRowListRequest = new ObservableAborter<L>( () => { \n return this.fetchRowListPage()\n } )\n\n return this._loadRowListRequest.promise\n .then( res => {\n return this.displayRowListPage( res )\n } )\n }\n\n fetchRowListPage(): Observable<L> {\n throw 'unimplemented'\n }\n \n displayRowListPage( res: L ): LoadRowListResult<R> {\n throw 'unimplemented'\n }\n\n loadRowListPageFailed( error ) {\n console.warn( error )\n this.rows = []\n this.totalRowCount = 0\n }\n\n onFilterChange( ev ) {\n this.filter = ev\n this.pageNumber = 1\n\n this.refreshRowList()\n .then( () => {\n this.savePageState()\n this.updateSummaryMobile()\n } )\n }\n\n onSortChange( ev ) {\n this.sortActive = ev.active\n this.sortDirection = ev.direction\n this.pageNumber = 1\n\n this.refreshRowList()\n .then( () => {\n this.savePageState()\n this.updateSummaryMobile()\n } )\n }\n\n onPageNumberChange( ev ) {\n this.pageNumber = ev\n\n this.refreshRowList()\n .then( () => {\n this.savePageState()\n this.updateSummaryMobile()\n } )\n }\n\n onPageSizeChange( ev ) {\n this.pageSize = ev \n this.pageNumber = 1\n\n this.refreshRowList()\n .then( () => {\n this.savePageState()\n this.updateSummaryMobile()\n } )\n }\n\n updateSummaryMobile() {\n [ this.summaryMobile, this.showPagingMobile ] = makeSummary( this.totalRowCount, this.pageNumber, this.pageSize )\n }\n\n get initialPageState(): RowListState<F> {\n throw 'unimplemented'\n }\n\n loadPageState() {\n let state = this.pageStateService.getPageState<RowListState<F>>( this.constructor, this.initialPageState )\n\n this.filter = state.filter\n this.pageSize = state.pageSize\n this.pageNumber = state.pageNumber\n this.sortActive = state.sortActive\n this.sortDirection = state.sortDirection\n }\n\n savePageState() {\n let state: RowListState<F> = JSON.parse( JSON.stringify( {\n filter: this.filter,\n pageSize: this.pageSize,\n pageNumber: this.pageNumber,\n sortActive: this.sortActive,\n sortDirection: this.sortDirection,\n } ) )\n \n this.pageStateService.setPageState<RowListState<F>>( this.constructor, state )\n }\n}\n\nexport function makeSummary( rowCount, pageNumber, pageSize ): [ string, boolean ] {\n if ( rowCount && pageSize ) {\n let pageCount = Math.ceil( rowCount / pageSize )\n\n let first = ( Math.min( pageCount, pageNumber ) - 1 ) * pageSize + 1\n let last = Math.min( first + pageSize - 1, rowCount )\n\n return [ `Showing ${ first } to ${ last } of ${ rowCount }`, true ]\n }\n else {\n return [ \"No records to display.\", false ]\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component\n} from \"@angular/core\";\n\n@Component({\n selector: \"nrcl-row-list-desktop\",\n templateUrl: \"./row-list-desktop.component.html\",\n styleUrl: \"./row-list-desktop.component.scss\",\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class RowListDesktopComponent {\n}\n","<ng-content></ng-content>\n","import {\n ChangeDetectionStrategy,\n Component\n} from \"@angular/core\";\n\n@Component({\n selector: \"nrcl-row-list-mobile\",\n templateUrl: \"./row-list-mobile.component.html\",\n styleUrl: \"./row-list-mobile.component.scss\",\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class RowListMobileComponent {\n}\n","<ng-content></ng-content>\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n HostListener,\n inject,\n Input,\n Output\n} from \"@angular/core\";\n\nexport type RowListPaginationWidth = 'sufficient'|'tight'|'restrictive'\n\n@Component({\n selector: \"nrcl-row-list-pagination\",\n templateUrl: \"./row-list-pagination.component.html\",\n styleUrl: \"./row-list-pagination.component.scss\",\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class.width-sufficient]': \"componentWidth == 'sufficient'\",\n '[class.width-tight]': \"componentWidth == 'tight'\",\n '[class.width-restrictive]': \"componentWidth == 'restrictive'\",\n }\n})\nexport class RowListPaginationComponent implements AfterViewInit {\n @Input() paginationId = '1'\n @Input() pageSizeOptions = [ \n { code: 5, description: '5 Rows' },\n { code: 10, description: '10 Rows' },\n { code: 20, description: '20 Rows' },\n { code: 50, description: '50 Rows' },\n { code: 100, description: '100 Rows' },\n ]\n @Input() pageSize = 20\n @Input() pageNumber\n @Input() rowCount\n @Input() showPageSize = true \n @Input() noRowsMessage = 'No records to display.'\n\n @Output() pageSizeChange = new EventEmitter<number>();\n @Output() pageNumberChange = new EventEmitter<number>();\n\n componentWidth: RowListPaginationWidth = 'sufficient'\n paginationMaxSize = 5\n\n elementRef = inject( ElementRef )\n changeDetectorRef = inject( ChangeDetectorRef )\n \n ngAfterViewInit(): void {\n this.checkWidth()\n }\n \n onPageSizeChange( ev ) { \n this.pageSizeChange.emit( Number( ev ) )\n }\n\n onPageNumberChange( ev ) {\n this.pageNumberChange.emit( Number( ev ) )\n }\n\n @HostListener(\"window:resize\", [\"$event\"])\n onResize(event) {\n this.checkWidth()\n }\n\n checkWidth() {\n setTimeout( () => {\n let w = this.elementRef?.nativeElement.offsetWidth \n if ( !w ) return\n\n switch ( true ) {\n case w > 600: \n this.componentWidth = 'sufficient'\n this.paginationMaxSize = 5\n break\n\n case w > 500: \n this.componentWidth = 'tight'; \n this.paginationMaxSize = 3\n break\n\n default: \n this.componentWidth = 'restrictive'\n this.paginationMaxSize = 4\n }\n\n this.changeDetectorRef.detectChanges()\n } )\n }\n\n get pageCount() {\n if ( !this.hasRows ) return 0\n return Math.ceil( this.rowCount / this.pageSize )\n }\n\n get firstRow() {\n if ( !this.hasRows ) return 0\n return ( Math.min( this.pageCount, this.pageNumber ) - 1 ) * this.pageSize + 1\n }\n\n get lastRow() {\n if ( !this.hasRows ) return 0\n return Math.min( this.firstRow + this.pageSize - 1, this.rowCount )\n }\n\n get hasRows() {\n return this.rowCount\n }\n}\n","@if ( hasRows ) {\n <nrcl-filter-container class=\"summary\"\n label=\"Showing Rows\"\n >\n <span>{{ firstRow }} to {{ lastRow }} <small>(of {{ rowCount }})</small></span>\n </nrcl-filter-container>\n}\n@else {\n <div class=\"no-rows\">{{ noRowsMessage }}</div>\n}\n\n@if ( hasRows ) {\n <div class=\"pagination\">\n <pagination-controls \n [id]=\"paginationId\" \n [maxSize]=\"paginationMaxSize\"\n [responsive]=\"false\"\n [directionLinks]=\"true\"\n previousLabel=\"\"\n nextLabel=\"\"\n [autoHide]=\"false\"\n (pageChange)=\"onPageNumberChange( $event )\"\n ></pagination-controls>\n </div>\n}\n\n@if ( hasRows && showPageSize ) {\n <nrcl-filter-select class=\"page-size\"\n label=\"Page Size\"\n [value]=\"[ pageSize ]\"\n [options]=\"pageSizeOptions\"\n (valueChange)=\"onPageSizeChange( $event[ 0 ] )\"\n selectMax=\"1\"\n [clear]=\"false\"\n [filter]=\"false\"\n placeholder=\"Select...\"\n ></nrcl-filter-select>\n}\n","import { ChangeDetectionStrategy, Component, Input } from \"@angular/core\";\nimport { Observable } from \"rxjs\";\nimport { LoadRowListResult, RowListBase, RowListState } from \"../../directives/row-list.base\";\nimport { DATE_FORMATS } from \"../../utils/date.util\";\n\nexport type AttachmentsTableRow = {\n attachmentTypeDescription: string\n fileName: string\n fileExtension: string\n uploadedBy: string\n uploadedTimestamp: string\n attachmentDescription: string\n attachmentId: string \n fileId: string\n sourceObjectUniqueId: string\n}\n\nexport type FetchAttachmentsParameters = { \n pageNumber: number \n pageRowCount: number \n sortColumn: string \n sortDirection: string\n}\n\nexport interface AttachmentRowListProvider<R,L=any> {\n fetchAttachments( x: FetchAttachmentsParameters ): Observable<L> \n displayRowListPage( res: L ): LoadRowListResult<R>\n downloadItem( item: R )\n deleteItem( item: R )\n}\n\n@Component({\n selector: \"nrcl-list-attachments\",\n templateUrl: \"./list-attachments.component.html\",\n styleUrl: \"./list-attachments.component.scss\",\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ListAttachmentsComponent extends RowListBase<{},AttachmentsTableRow> {\n @Input() rowListProvider: AttachmentRowListProvider<AttachmentsTableRow>\n @Input() canDelete = true\n @Input() canDownload = true\n\n DATE_FORMATS = DATE_FORMATS\n columns = [ 'attachmentTypeCode', 'fileName', 'sourceObjectNameCode', 'uploadedBy', 'uploadedTimestamp', 'description' ]\n\n initializeRowList(): void {\n super.initializeRowList()\n }\n\n get initialPageState(): RowListState<{}> {\n return {\n filter: {},\n pageSize: 5,\n pageNumber: 1,\n sortActive: null,\n sortDirection: 'desc',\n }\n }\n\n ngAfterViewInit() {\n if ( this.canDownload )\n this.columns.push( 'download' )\n\n if ( this.canDelete )\n this.columns.push( 'delete' )\n \n super.ngAfterViewInit()\n }\n\n fetchRowListPage(): Observable<any> {\n if ( !this.rowListProvider?.fetchAttachments ) throw Error( 'no provider' )\n\n return this.rowListProvider.fetchAttachments({\n pageNumber: this.pageNumber,\n pageRowCount: this.pageSize,\n sortColumn: this.sortActive,\n sortDirection: this.sortDirection,\n })\n }\n \n displayRowListPage( res: any ): LoadRowListResult<AttachmentsTableRow> {\n if ( !this.rowListProvider?.displayRowListPage ) throw Error( 'no provider' )\n\n return this.rowListProvider.displayRowListPage( res )\n }\n\n onDownloadClick( item: AttachmentsTableRow ) {\n if ( !this.rowListProvider?.downloadItem ) throw Error( 'no provider' )\n\n return this.rowListProvider.downloadItem( item )\n }\n\n onDeleteClick( item: AttachmentsTableRow ) {\n if ( !this.rowListProvider?.deleteItem ) throw Error( 'no provider' )\n \n return this.rowListProvider.deleteItem( item )\n }\n}\n","<nrcl-device-view>\n <ng-template desktop-view>\n <nrcl-row-list-desktop>\n @if ( rows?.length > 0 ) {\n <table mat-table\n [dataSource]=\"rows | paginate: { \n id: 'desktop-attachments', \n itemsPerPage: showPagination ? pageSize : totalRowCount, \n currentPage: showPagination ? pageNumber : 1, \n totalItems: totalRowCount \n }\"\n >\n <ng-container matColumnDef=\"attachmentTypeCode\">\n <th mat-header-cell *matHeaderCellDef>Attachment Type</th>\n <td mat-cell *matCellDef=\"let item\">\n <nrcl-cell-content tooltip>{{ item.attachmentTypeDescription }}</nrcl-cell-content>\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"fileName\">\n <th mat-header-cell *matHeaderCellDef>File Name</th>\n <td mat-cell *matCellDef=\"let item\">\n <nrcl-cell-content tooltip>{{ item.fileName }}</nrcl-cell-content>\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"sourceObjectNameCode\">\n <th mat-header-cell *matHeaderCellDef>File Type</th>\n <td mat-cell *matCellDef=\"let item\">\n <nrcl-cell-content tooltip>{{ item.fileExtension }}</nrcl-cell-content>\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"uploadedBy\">\n <th mat-header-cell *matHeaderCellDef>Uploaded By</th>\n <td mat-cell *matCellDef=\"let item\">\n <nrcl-cell-content tooltip>{{ item.uploadedBy }}</nrcl-cell-content>\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"uploadedTimestamp\">\n <th mat-header-cell *matHeaderCellDef>Uploaded At</th>\n <td mat-cell *matCellDef=\"let item\">\n <nrcl-cell-content tooltip>{{ item.uploadedTimestamp }}</nrcl-cell-content>\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"description\">\n <th mat-header-cell *matHeaderCellDef>Description</th>\n <td mat-cell *matCellDef=\"let item\">\n <nrcl-cell-content tooltip>{{ item.attachmentDescription }}</nrcl-cell-content>\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"download\">\n <th mat-header-cell *matHeaderCellDef></th>\n <td mat-cell *matCellDef=\"let item\">\n <div class=\"button-container\">\n <nrcl-button compact\n label=\"Download\"\n icon=\"download\"\n (click)=\"onDownloadClick( item )\" \n ></nrcl-button>\n </div>\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"delete\">\n <th mat-header-cell *matHeaderCellDef></th>\n <td mat-cell *matCellDef=\"let item\">\n <div class=\"button-container\">\n <nrcl-button compact\n label=\"Delete\"\n icon=\"delete\"\n (click)=\"onDeleteClick( item )\"\n ></nrcl-button>\n </div>\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"columns; sticky: true\"></tr>\n <tr mat-row *matRowDef=\"let item; columns: columns;\"></tr>\n\n <tr class=\"mat-row\" *matNoDataRow>\n <td class=\"mat-cell\" colspan=\"8\">No records to display.</td>\n </tr> \n </table>\n }\n </nrcl-row-list-desktop>\n\n <nrcl-gap vertical/>\n\n <nrcl-row-list-pagination\n paginationId=\"desktop-attachments\"\n [pageSize]=\"pageSize\"\n [pageNumber]=\"pageNumber\"\n [rowCount]=\"totalRowCount\"\n (pageNumberChange)=\"onPageNumberChange( $event )\"\n (pageSizeChange)=\"onPageSizeChange( $event )\"\n ></nrcl-row-list-pagination>\n </ng-template>\n\n <ng-template mobile-view>\n <nrcl-row-list-mobile>\n @for ( item of rows | paginate: { \n id: 'mobile-attachments', \n itemsPerPage: showPagination ? pageSize : totalRowCount, \n currentPage: showPagination ? pageNumber : 1, \n totalItems: totalRowCount \n }; track item.attachmentId ) {\n <mat-card>\n <mat-card-title>\n <section title>\n <h2>{{ item.fileName }}</h2>\n </section>\n\n <section actions>\n <nrcl-button compact\n label=\"Download\"\n icon=\"download\"\n (click)=\"onDownloadClick( item )\" \n ></nrcl-button>\n\n @if ( canDelete ) {\n <nrcl-button compact\n label=\"Delete\"\n icon=\"delete\"\n (click)=\"onDeleteClick( item )\"\n ></nrcl-button>\n }\n </section>\n </mat-card-title>\n\n <mat-card-content>\n <section>\n <mat-label>Attachment Type</mat-label>\n <div class=\"value\">{{ item.attachmentTypeDescription }}</div>\n </section>\n\n <section>\n <mat-label>File Type</mat-label>\n <div class=\"value\">{{ item.fileExtension }}</div>\n </section>\n\n <section>\n <mat-label>Uploaded By</mat-label>\n <div class=\"value\">{{ item.uploadedBy }}</div>\n </section> \n\n <section>\n <mat-label>Uploaded At</mat-label>\n <div class=\"value\">{{ item.uploadedTimestamp }}</div>\n </section> \n\n <section full-width>\n <mat-label>Description</mat-label>\n <div class=\"value\">{{ item.attachmentDescription }}</div>\n </section> \n </mat-card-content>\n </mat-card>\n }\n </nrcl-row-list-mobile>\n\n <nrcl-gap vertical/>\n\n <nrcl-row-list-pagination\n paginationId=\"mobile-attachments\"\n [pageSize]=\"pageSize\"\n [pageNumber]=\"pageNumber\"\n [rowCount]=\"totalRowCount\"\n (pageNumberChange)=\"onPageNumberChange( $event )\"\n (pageSizeChange)=\"onPageSizeChange( $event )\"\n ></nrcl-row-list-pagination>\n </ng-template>\n</nrcl-device-view>\n","import { ChangeDetectionStrategy, Component, Input } from \"@angular/core\";\nimport { Observable } from \"rxjs\";\nimport { LoadRowListResult, RowListBase, RowListState } from \"../../directives/row-list.base\";\nimport { DATE_FORMATS } from \"../../utils/date.util\";\n\nexport type EventHistoryTableRow = {\n eventTimestamp: string\n createdByUserId: string\n eventHistoryTypeDescription: string\n sourceObjectNameDescription: string\n comment: string\n}\n\nexport type FetchEventHistoryParameters = { \n isSupplier: boolean \n pageNumber: number \n pageRowCount: number \n sortColumn: string \n sortDirection: string\n}\n\nexport interface EventHistoryRowListProvider<R,L=any> {\n fetchEventHistory( x: FetchEventHistoryParameters ): Observable<L> \n displayRowListPage( res: L ): LoadRowListResult<R>\n}\n\n@Component({\n selector: \"nrcl-list-event-history\",\n templateUrl: \"./list-event-history.component.html\",\n styleUrl: \"./list-event-history.component.scss\",\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ListEventHistoryComponent extends RowListBase<{},EventHistoryTableRow> {\n @Input() rowListProvider: EventHistoryRowListProvider<EventHistoryTableRow>\n @Input() canDelete = true\n @Input() showPagination = false\n @Input() isSupplier: boolean = false\n\n DATE_FORMATS = DATE_FORMATS\n columns = [ 'dateTime', 'changedBy', 'type', 'section', 'comment' ]\n\n fetchRowListPage(): Observable<any> {\n if ( !this.rowListProvider?.fetchEventHistory ) throw Error( 'no provider' )\n\n return this.rowListProvider.fetchEventHistory( {\n isSupplier: this.isSupplier,\n pageNumber: this.pageNumber,\n pageRowCount: this.pageSize,\n sortColumn: this.sortActive,\n sortDirection: this.sortDirection,\n } )\n }\n\n displayRowListPage( res: any ): LoadRowListResult<EventHistoryTableRow> {\n if ( !this.rowListProvider?.displayRowListPage ) throw Error( 'no provider' )\n\n return this.rowListProvider.displayRowListPage( res )\n } \n\n get initialPageState(): RowListState<{}> {\n return {\n filter: {},\n pageSize: 20,\n pageNumber: 1,\n sortActive: 'dateTime',\n sortDirection: 'desc',\n }\n }\n\n\n}\n","<nrcl-device-view>\n <ng-template desktop-view>\n <nrcl-row-list-desktop>\n @if ( rows?.length > 0 ) {\n <table mat-table\n [dataSource]=\"rows | paginate: { \n id: 'desktop-event-history', \n itemsPerPage: pageSize, \n currentPage: pageNumber, \n totalItems: totalRowCount \n }\"\n matSort \n [matSortActive]=\"sortActive\"\n [matSortDirection]=\"sortDirection\"\n (matSortChange)=\"onSortChange( $event )\">\n >\n <ng-container matColumnDef=\"dateTime\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header>Date and Time</th>\n <td mat-cell *matCellDef=\"let item\">\n <nrcl-cell-content tooltip>{{ item.eventTimestamp }}</nrcl-cell-content>\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"changedBy\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header>User ID</th>\n <td mat-cell *matCellDef=\"let item\">\n <nrcl-cell-content tooltip>{{ item.createdByUserId }}</nrcl-cell-content>\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"type\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header>Type</th>\n <td mat-cell *matCellDef=\"let item\">\n <nrcl-cell-content tooltip>{{ item.eventHistoryTypeDescription }}</nrcl-cell-content>\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"section\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header>Section</th>\n <td mat-cell *matCellDef=\"let item\">\n <nrcl-cell-content tooltip>{{ item.sourceObjectNameDescription }}</nrcl-cell-content>\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"comment\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header>Comment</th>\n <td mat-cell *matCellDef=\"let item\">\n <nrcl-cell-content tooltip>{{ item.comment }}</nrcl-cell-content>\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"columns; sticky: true\"></tr>\n <tr mat-row *matRowDef=\"let item; columns: columns;\"></tr>\n </table>\n }\n </nrcl-row-list-desktop>\n\n <nrcl-gap vertical/>\n\n <nrcl-row-list-pagination\n paginationId=\"desktop-event-history\"\n [pageSize]=\"pageSize\"\n [pageNumber]=\"pageNumber\"\n [rowCount]=\"totalRowCount\"\n (pageNumberChange)=\"onPageNumberChange( $event )\"\n (pageSizeChange)=\"onPageSizeChange( $event )\"\n ></nrcl-row-list-pagination>\n </ng-template>\n\n <ng-template mobile-view>\n <nrcl-row-list-mobile>\n @for ( item of rows | paginate: { \n id: 'mobile-event-history', \n itemsPerPage: pageSize, \n currentPage: pageNumber, \n totalItems: totalRowCount \n }; track item.attachmentId ) {\n <mat-card>\n <mat-card-title>\n <section title>\n <h2>{{ item.comment }}</h2>\n </section>\n </mat-card-title>\n\n <mat-card-content>\n <section>\n <mat-label>User ID</mat-label>\n <div class=\"value\">{{ item.createdByUserId }}</div>\n </section>\n\n <section>\n <mat-label>Time</mat-label>\n <div class=\"value\">{{ item.eventTimestamp }}</div>\n </section>\n\n <section>\n <mat-label>Type</mat-label>\n <div class=\"value\">{{ item.eventHistoryTypeDescription }}</div>\n </section>\n\n <section>\n <mat-label>Section</mat-label>\n <div class=\"value\">{{ item.sourceObjectNameDescription }}</div>\n </section> \n\n <!-- <section full-width>\n <mat-label>Comment</mat-label>\n <div class=\"value\">{{ item.comment }}</div>\n </section> -->\n </mat-card-content>\n </mat-card>\n }\n </nrcl-row-list-mobile>\n\n <nrcl-gap vertical/>\n\n <nrcl-row-list-pagination\n paginationId=\"mobile-event-history\"\n [pageSize]=\"pageSize\"\n [pageNumber]=\"pageNumber\"\n [rowCount]=\"totalRowCount\"\n (pageNumberChange)=\"onPageNumberChange( $event )\"\n (pageSizeChange)=\"onPageSizeChange( $event )\"\n ></nrcl-row-list-pagination>\n </ng-template>\n</nrcl-device-view>\n","import {\n ChangeDetectionStrategy,\n Component\n} from \"@angular/core\";\n\n@Component( {\n selector: \"nrcl-page-container\",\n templateUrl: \"./page-container.component.html\",\n styleUrl: \"./page-container.component.scss\",\n changeDetection: ChangeDetectionStrategy.OnPush,\n} )\nexport class PageContainerComponent {}\n","<ng-content></ng-content>\n","import {\n ChangeDetectionStrategy,\n Component,\n Input\n} from \"@angular/core\";\n\n@Component({\n selector: \"nrcl-page-header\",\n templateUrl: \"./page-header.component.html\",\n styleUrl: \"./page-header.component.scss\",\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class.isLoading]': 'isLoading',\n }\n})\nexport class PageHeaderComponent {\n @Input() isLoading = false\n}\n","<div class=\"left-side\">\n <ng-content select=\"[left-side],h1,h2\"></ng-content>\n</div>\n\n<div class=\"right-side\">\n <ng-content select=\"[right-side]\"></ng-content>\n <ng-content></ng-content>\n</div>\n\n<mat-spinner class=\"loading\" [diameter]=\"30\"></mat-spinner>\n","import { CodeDescription } from \"./code-table.util\"\n\nexport function wrapFilterValue( val ) {\n if ( !val ) return []\n if ( Array.isArray( val ) ) return val\n return [ val ]\n}\n\nexport function unwrapFilterValue( val ) {\n if ( !val ) return ''\n if ( Array.isArray( val ) ) return val[ 0 ] || ''\n return val\n}\n\nexport function mapToCodeDescription( list: Array<any>, codeField: string, descriptionField: string ): CodeDescription[] {\n if ( !list ) return list\n return list.map( v => {\n return {\n code: v[ codeField ],\n description: v[ descriptionField ]\n }\n } )\n}\n","import {\n Component,\n EventEmitter,\n Input,\n Output\n} from \"@angular/core\";\nimport { CodeDescription } from \"../../utils/code-table.util\";\nimport { Sort, SortDirection } from \"@angular/material/sort\";\nimport { unwrapFilterValue, wrapFilterValue } from \"../../utils/filter.util\";\n\n@Component({\n selector: \"nrcl-row-list-sorting\",\n templateUrl: \"./row-list-sorting.component.html\",\n styleUrl: \"./row-list-sorting.component.scss\",\n})\nexport class RowListSortingComponent {\n @Input() sortColumn: string\n @Input() sortColumnOptions: CodeDescription[] = []\n @Input() sortDirection: SortDirection = 'asc'\n\n @Output() sortChange = new EventEmitter<Sort>();\n\n wrapFilterValue = wrapFilterValue \n unwrapFilterValue = unwrapFilterValue\n \n onSortColumnChange( ev ) {\n this.sortColumn = ev\n this.emitSortChange()\n }\n\n onSortDirectionChange() {\n this.emitSortChange()\n }\n\n emitSortChange() {\n this.sortChange.emit( { \n active: this.sortColumn,\n direction: this.sortDirection\n } )\n }\n}\n","<nrcl-filter-select class=\"sort-order\" \n label=\"Sort By\"\n [value]=\"wrapFilterValue( sortColumn )\"\n [options]=\"sortColumnOptions\"\n (valueChange)=\"onSortColumnChange( unwrapFilterValue( $event ) )\"\n selectMax=\"1\" \n></nrcl-filter-select>\n\n<nrcl-filter-container class=\"sort-direction\" \n label=\"Sort Order\"\n>\n <mat-radio-group\n [(ngModel)]=\"sortDirection\" \n (ngModelChange)=\"onSortDirectionChange()\"\n [disabled]=\"!sortColumn\"\n >\n <mat-radio-button aria-label=\"Sort A to Z\" value=\"asc\">A → Z</mat-radio-button>\n <mat-radio-button aria-label=\"Sort Z to A\" value=\"desc\">Z → A</mat-radio-button>\n </mat-radio-group>\n</nrcl-filter-container>\n","import { Component, Inject } from \"@angular/core\";\nimport { MAT_SNACK_BAR_DATA, MatSnackBarRef } from \"@angular/material/snack-bar\";\n\nexport type SnackbarType = 'success'|'error'|'info'|'update'\n\nexport type SnackbarConfig = {\n message: string\n type: SnackbarType\n}\n\n@Component({\n selector: 'nrcl-snackbar',\n templateUrl: \"./snackbar.component.html\",\n styleUrl: \"./snackbar.component.scss\",\n host: {\n '[class]': 'className'\n }\n})\nexport class SnackbarComponent {\n constructor(\n public snackBarRef: MatSnackBarRef<SnackbarComponent>,\n @Inject(MAT_SNACK_BAR_DATA) public config: SnackbarConfig\n ) { }\n\n get className() {\n return 'snackbar-type-' + this.config.type\n }\n}\n","<div class=\"icon\">\n @switch ( config.type ) {\n @case ( 'success' ) {\n <nrcl-icon>check_circle</nrcl-icon>\n }\n @case ( 'error' ) {\n <nrcl-icon>cancel</nrcl-icon>\n }\n @case ( 'info' ) {\n <nrcl-icon>info</nrcl-icon>\n }\n @case ( 'update' ) {\n <nrcl-icon>error</nrcl-icon>\n }\n }\n</div>\n\n<div class=\"message\">\n <span>{{ config.message }}</span>\n</div>\n\n<div class=\"button\">\n <button (click)=\"snackBarRef.dismissWithAction()\">Close</button>\n</div>\n","import { inject, Injectable } from \"@angular/core\";\nimport { MatSnackBar } from \"@angular/material/snack-bar\";\nimport { SnackbarComponent, SnackbarConfig } from \"../components/snackbar/snackbar.component\";\n\n@Injectable({\n providedIn: 'root'\n})\nexport class SnackbarUtilService {\n snackbar = inject( MatSnackBar )\n\n successful( message: string, duration = 5000 ) {\n this.snackbar.openFromComponent<SnackbarComponent,SnackbarConfig>(\n SnackbarComponent, \n {\n duration: duration,\n data: {\n type: 'success',\n message: message\n }\n }\n )\n }\n\n successfullySaved( message: string, duration = 5000 ) {\n this.successful( `${ message } saved successfully.`, duration )\n }\n\n successfullyDeleted( message: string, duration = 5000 ) {\n this.successful( `${ message } deleted successfully.`, duration )\n }\n\n successfullyRemoved( message: string, duration = 5000 ) {\n this.successful( `${ message } removed successfully.`, duration )\n }\n\n successfullyCreated( message: string, duration = 5000 ) {\n this.successful( `${ message } created successfully.`, duration )\n }\n\n successfullyAdded( message: string, duration = 5000 ) {\n this.successful( `${ message } added successfully.`, duration )\n }\n\n information( message: string, duration = null ) {\n this.snackbar.openFromComponent<SnackbarComponent,SnackbarConfig>(\n SnackbarComponent, \n {\n duration: duration,\n data: {\n type: 'info',\n message: message\n }\n }\n )\n }\n\n error( message: string, duration = null ) {\n this.snackbar.openFromComponent<SnackbarComponent,SnackbarConfig>(\n SnackbarComponent, \n {\n duration: duration,\n data: {\n type: 'error',\n message: message\n }\n }\n )\n }\n\n updated( message: string, duration = null ) {\n this.snackbar.openFromComponent<SnackbarComponent,SnackbarConfig>(\n SnackbarComponent, \n {\n duration: duration,\n data: {\n type: 'update',\n message: message\n }\n }\n )\n }\n}\n","export type CodeDescription = {\n code: string\n description: string\n}\n\nexport class CodeTable {\n constructor( \n // private _items: ( CodeDescription | CodeData | Option )[], \n private _items: ( CodeDescription )[], \n private _reload?: () => Promise<CodeDescription[]> \n ) {}\n\n get items(): readonly CodeDescription[] {\n return this._items\n }\n\n forCode( code: string ): CodeDescription {\n return this._items.find( o => o.code == code )\n }\n\n reload(): Promise<void> {\n if ( !this._reload ) return Promise.reject( 'no reload defined' )\n\n return this._reload()\n .then( res => {\n this._items = res\n } )\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatCardModule } from '@angular/material/card';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatRippleModule } from '@angular/material/core';\nimport { MatExpansionModule } from '@angular/material/expansion';\nimport { MatFormFieldModule } from \"@angular/material/form-field\";\nimport { MatIconModule, MatIconRegistry } from '@angular/material/icon';\nimport { MatInputModule } from \"@angular/material/input\";\nimport { MatListModule } from '@angular/material/list';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { MatRadioModule } from '@angular/material/radio';\nimport { MatSortModule } from '@angular/material/sort';\nimport { MatTableModule } from '@angular/material/table';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\nimport { RouterModule } from '@angular/router';\nimport { OWL_DATE_TIME_FORMATS, OwlDateTimeModule, OwlMomentDateTimeModule } from \"@busacca/ng-pick-datetime\";\nimport { NgxPaginationModule } from 'ngx-pagination';\nimport { ButtonComponent } from './components/button/button.component';\nimport { CellContentComponent } from './components/cell-content/cell-content.component';\nimport { DesktopViewDirective, DeviceViewComponent, MobileViewDirective } from './components/device-view/device-view.component';\nimport { ExpansionPanelComponent, ExpansionPanelFooterComponent, ExpansionPanelHeaderComponent } from './components/expansion-panel/expansion-panel.component';\nimport { FilterContainerComponent } from './components/filter-container/filter-container.component';\nimport { FilterDateComponent } from './components/filter-date/filter-date.component';\nimport { FilterSearchComponent } from './components/filter-search/filter-search.component';\nimport { FilterSelectComponent } from './components/filter-select/filter-select.component';\nimport { FiltersPanelComponent } from './components/filters-panel/filters-panel.component';\nimport { FormFieldComponent } from './components/form-field/form-field.component';\nimport { FormLayoutComponent } from './components/form-layout/form-layout.component';\nimport { GapComponent } from './components/gap/gap.component';\nimport { ListAttachmentsComponent } from './components/list-attachments/list-attachments.component';\nimport { ListEventHistoryComponent } from './components/list-event-history/list-event-history.component';\nimport { PageContainerComponent } from './components/page-container/page-container.component';\nimport { PageHeaderComponent } from './components/page-header/page-header.component';\nimport { RowListDesktopComponent } from './components/row-list-desktop/row-list-desktop.component';\nimport { RowListMobileComponent } from './components/row-list-mobile/row-list-mobile.component';\nimport { RowListPaginationComponent } from './components/row-list-pagination/row-list-pagination.component';\nimport { RowListSortingComponent } from './components/row-list-sorting/row-list-sorting.component';\nimport { SnackbarComponent } from './components/snackbar/snackbar.component';\nimport { ConfigurationService } from './services/configuration.service';\nimport { PageStateService } from './services/page-state.service';\nimport { SnackbarUtilService } from './services/snackbar-util.service';\nimport { DATE_FORMATS } from './utils/date.util';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { IconComponent } from './components/icon/icon.component';\n\n@NgModule({\n imports: [\n BrowserAnimationsModule,\n CommonModule,\n FormsModule,\n MatButtonModule,\n MatCardModule,\n MatCheckboxModule,\n MatExpansionModule,\n MatRadioModule,\n MatFormFieldModule,\n MatIconModule,\n MatInputModule,\n MatListModule,\n MatMenuModule,\n MatProgressSpinnerModule,\n MatRippleModule,\n MatSortModule,\n MatTableModule,\n MatTooltipModule,\n ReactiveFormsModule,\n RouterModule,\n OwlDateTimeModule,\n OwlMomentDateTimeModule,\n NgxPaginationModule,\n ],\n declarations: [\n ButtonComponent,\n CellContentComponent,\n ExpansionPanelComponent,\n ExpansionPanelHeaderComponent,\n ExpansionPanelFooterComponent,\n FilterContainerComponent,\n FilterDateComponent,\n FilterSearchComponent,\n FilterSelectComponent,\n FiltersPanelComponent,\n FormFieldComponent,\n FormLayoutComponent,\n GapComponent,\n ListAttachmentsComponent,\n ListEventHistoryComponent,\n PageContainerComponent,\n PageHeaderComponent,\n RowListDesktopComponent,\n RowListMobileComponent,\n RowListPaginationComponent,\n RowListSortingComponent,\n SnackbarComponent,\n DesktopViewDirective,\n MobileViewDirective,\n DeviceViewComponent,\n IconComponent\n ],\n exports: [\n ButtonComponent,\n CellContentComponent,\n ExpansionPanelComponent,\n ExpansionPanelHeaderComponent,\n ExpansionPanelFooterComponent,\n FilterContainerComponent,\n FilterDateComponent,\n FilterSearchComponent,\n FilterSelectComponent,\n FiltersPanelComponent,\n FormFieldComponent,\n FormLayoutComponent,\n GapComponent,\n ListAttachmentsComponent,\n ListEventHistoryComponent,\n PageContainerComponent,\n PageHeaderComponent,\n RowListDesktopComponent,\n RowListMobileComponent,\n RowListPaginationComponent,\n RowListSortingComponent,\n SnackbarComponent,\n DesktopViewDirective,\n MobileViewDirective,\n DeviceViewComponent,\n IconComponent\n ],\n providers: [\n SnackbarUtilService,\n ConfigurationService,\n PageStateService,\n { provide: OWL_DATE_TIME_FORMATS, useValue: DATE_FORMATS },\n ]\n})\nexport class NrNgxComponentLibModule {\n constructor(\n private matIconRegistry: MatIconRegistry,\n private domSanitizer: DomSanitizer\n ) {\n this.matIconRegistry.addSvgIcon(\n \"filter-cancel\",\n this.domSanitizer.bypassSecurityTrustResourceUrl(\"assets/app-icons/filter-cancel.svg\")\n );\n\n }\n}\n","/*\n * Public API Surface of wfcc-application-ui\n */\nexport * from './components/button/button.component'\nexport * from './components/cell-content/cell-content.component'\nexport * from './components/device-view/device-view.component'\nexport * from './components/expansion-panel/expansion-panel.component'\nexport * from './components/filter-container/filter-container.component'\nexport * from './components/filter-date/filter-date.component'\nexport * from './components/filter-search/filter-search.component'\nexport * from './components/filter-select/filter-select.component'\nexport * from './components/filters-panel/filters-panel.component'\nexport * from './components/form-field/form-field.component'\nexport * from './components/form-layout/form-layout.component'\nexport * from './components/icon/icon.component'\nexport * from './components/gap/gap.component'\nexport * from './components/list-attachments/list-attachments.component'\nexport * from './components/list-event-history/list-event-history.component'\nexport * from './components/page-container/page-container.component'\nexport * from './components/page-header/page-header.component'\nexport * from './components/row-list-desktop/row-list-desktop.component'\nexport * from './components/row-list-mobile/row-list-mobile.component'\nexport * from './components/row-list-pagination/row-list-pagination.component'\nexport * from './components/row-list-sorting/row-list-sorting.component'\nexport * from './components/snackbar/snackbar.component'\n\nexport * from './directives/configuration-subscriber.base'\nexport * from './directives/row-list.base'\n\nexport * from './services/snackbar-util.service'\nexport * from './services/configuration.service'\nexport * from './services/page-state.service'\n\nexport * from './utils/code-table.util'\nexport * from './utils/date.util'\nexport * from './utils/filter.util'\nexport * from './utils/row-list.util'\n\nexport * from './nr-ngx-component-lib.module'\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i3.IconComponent","i2","i3.ButtonComponent","i4.IconComponent","i6.IconComponent","i3","i5","i6","i7.IconComponent","i1.ButtonComponent","i2.MobileViewDirective","i2.DeviceViewComponent","i2.FilterContainerComponent","i3.FilterSelectComponent","i4.ButtonComponent","i5.CellContentComponent","i6.GapComponent","i7.RowListDesktopComponent","i8.RowListMobileComponent","i9.RowListPaginationComponent","i10.DesktopViewDirective","i10.MobileViewDirective","i10.DeviceViewComponent","i4","i3.FilterContainerComponent","i4.FilterSelectComponent","i2.IconComponent"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAYa,oBAAoB,CAAA;AAU7B,IAAA,WAAA,GAAA;AATQ,QAAA,IAAA,CAAA,qBAAqB,GAAkB;AAC3C,YAAA,WAAW,EAAE,SAAS;SACzB,CAAA;QAEO,IAAa,CAAA,aAAA,GAAG,IAAI,eAAe,CAAgB,IAAI,CAAC,qBAAqB,CAAC,CAAC;;AAGhF,QAAA,IAAA,CAAA,uBAAuB,GAA8B,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,CAAC;QAG1F,IAAI,CAAC,uBAAuB,CAAC,SAAS,CAAE,CAAE,CAAC,KAAK;YAC5C,IAAI,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAE,MAAM,CAAiB,CAAA;AACxD,YAAA,EAAE,CAAC,SAAS,CAAC,MAAM,CAAE,qBAAqB,EAAE,CAAC,CAAC,WAAW,IAAI,SAAS,CAAE,CAAA;AACxE,YAAA,EAAE,CAAC,SAAS,CAAC,MAAM,CAAE,oBAAoB,EAAE,CAAC,CAAC,WAAW,IAAI,QAAQ,CAAE,CAAA;AAC1E,SAAC,CAAE,CAAA;KACN;;AAGD,IAAA,IAAI,aAAa,GAAA;AACb,QAAA,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC;KACnC;;AAGD,IAAA,MAAM,CAAE,aAAqC,EAAA;AACzC,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAE;AACrB,YAAA,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK;AAC3B,YAAA,GAAG,aAAa;AACnB,SAAA,CAAE,CAAA;KACN;+GA7BQ,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAApB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,oBAAoB,cAFjB,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAET,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAHhC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,UAAU,EAAE,MAAM;AACrB,iBAAA,CAAA;;;MCCY,2BAA2B,CAAA;AADxC,IAAA,WAAA,GAAA;AAKI,QAAA,IAAA,CAAA,oBAAoB,GAAG,MAAM,CAAE,oBAAoB,CAAE,CAAA;AACrD,QAAA,IAAA,CAAA,iBAAiB,GAAG,MAAM,CAAE,iBAAiB,CAAE,CAAA;AAgBlD,KAAA;IAdG,QAAQ,GAAA;AACJ,QAAA,IAAI,CAAC,yBAAyB,GAAG,IAAI,CAAC,oBAAoB,CAAC,uBAAuB,CAAC,SAAS,CAAE,CAAE,CAAC,KAAK;AAClG,YAAA,IAAI,CAAC,aAAa,GAAG,CAAC,CAAA;YACtB,IAAI,CAAC,qBAAqB,EAAE,CAAA;AAC5B,YAAA,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAA;AAC1C,SAAC,CAAE,CAAA;QACH,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,oBAAoB,CAAC,aAAa,CAAA;KAC/D;IAED,WAAW,GAAA;QACP,IAAK,IAAI,CAAC,yBAAyB;AAAG,YAAA,IAAI,CAAC,yBAAyB,CAAC,WAAW,EAAE,CAAA;KACrF;AAED,IAAA,qBAAqB,MAAK;+GApBjB,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAA3B,2BAA2B,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;4FAA3B,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBADvC,SAAS;;;MCCG,aAAa,CAAA;AAT1B,IAAA,WAAA,GAAA;AAaI,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAE,UAAU,CAAE,CAAA;AACjC,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAAE,YAAY,CAAE,CAAA;AAMxC,KAAA;IAJG,kBAAkB,GAAA;QACd,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,UAAU,EAAE,aAAa,EAAE,WAAW,CAAA;AACvD,QAAA,IAAK,IAAI,CAAE,IAAI,CAAC,IAAI,CAAE;AAAG,YAAA,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,uBAAuB,CAAE,IAAI,CAAE,IAAI,CAAC,IAAI,CAAE,CAAE,CAAA;KACrG;+GAVQ,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAb,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,aAAa,iICZ1B,iGAEA,EAAA,MAAA,EAAA,CAAA,8gCAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDUa,aAAa,EAAA,UAAA,EAAA,CAAA;kBATzB,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,WAAW,EAGf,IAAA,EAAA;AACF,wBAAA,mBAAmB,EAAE,MAAM;AAC3B,wBAAA,kBAAkB,EAAG,OAAO;AAC/B,qBAAA,EAAA,QAAA,EAAA,iGAAA,EAAA,MAAA,EAAA,CAAA,8gCAAA,CAAA,EAAA,CAAA;;AAeL,MAAM,IAAI,GAAG;AACT,IAAA,eAAe,EAAE,CAAA;;;;;;;;;;;;;;;;AAgBhB,IAAA,CAAA;CACJ;;AE1BK,MAAO,eAAgB,SAAQ,2BAA2B,CAAA;AAdhE,IAAA,WAAA,GAAA;;QAqB8C,IAAO,CAAA,OAAA,GAAG,KAAK,CAAA;QACf,IAAO,CAAA,OAAA,GAAG,KAAK,CAAA;QACf,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAA;AAEhD,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,YAAY,EAAgB,CAAA;AAIlD,QAAA,IAAA,CAAA,IAAI,GAAG,MAAM,CAAE,MAAM,CAAE,CAAA;AAyB1B,KAAA;AAvBG,IAAA,OAAO,CAAE,EAAgB,EAAA;QACrB,IAAK,IAAI,CAAC,QAAQ;YAAG,OAAM;QAE3B,EAAE,CAAC,eAAe,EAAE,CAAA;AACpB,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAE,EAAE,CAAE,CAAA;KACxB;IAED,qBAAqB,GAAA;;AAEjB,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAE,MAAK;AAChB,YAAA,IAAK,IAAI,CAAC,OAAO,IAAI,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,KAAK,EAAG;AAClD,gBAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAA;aACzB;AACI,iBAAA,IAAK,IAAI,CAAC,OAAO,IAAI,EAAE,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,EAAG;AACpD,gBAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAA;aACxB;iBACI;AACD,gBAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,aAAa,CAAC,WAAW,CAAA;aAClE;AAED,YAAA,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE,CAAA;AACzC,SAAC,CAAE,CAAA;KACN;+GAvCQ,eAAe,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAf,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,eAAe,+LAOH,gBAAgB,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,EAAA,SAAA,EAChB,gBAAgB,CAChB,EAAA,QAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAAA,gBAAgB,oWC1BzC,syBA6BA,EAAA,MAAA,EAAA,CAAA,65GAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,2BAAA,EAAA,MAAA,EAAA,CAAA,gBAAA,EAAA,oBAAA,EAAA,mBAAA,EAAA,iBAAA,EAAA,oBAAA,EAAA,mBAAA,EAAA,kBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,4BAAA,EAAA,oBAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,yBAAA,EAAA,YAAA,EAAA,iBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,aAAA,EAAA,QAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDZa,eAAe,EAAA,UAAA,EAAA,CAAA;kBAd3B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,aAAa,EAGjB,IAAA,EAAA;AACF,wBAAA,iBAAiB,EAAE,SAAS;AAC5B,wBAAA,iBAAiB,EAAE,qBAAqB;AACxC,wBAAA,kBAAkB,EAAE,UAAU;AAC9B,wBAAA,iBAAiB,EAAE,WAAW;AAC9B,wBAAA,mBAAmB,EAAE,oBAAoB;AACzC,wBAAA,oBAAoB,EAAE,kCAAkC;AACxD,wBAAA,eAAe,EAAE,OAAO;AAC3B,qBAAA,EAAA,QAAA,EAAA,syBAAA,EAAA,MAAA,EAAA,CAAA,65GAAA,CAAA,EAAA,CAAA;8BAGQ,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACoC,OAAO,EAAA,CAAA;sBAAhD,KAAK;uBAAE,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAA;gBACG,OAAO,EAAA,CAAA;sBAAhD,KAAK;uBAAE,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAA;gBACG,QAAQ,EAAA,CAAA;sBAAjD,KAAK;uBAAE,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAA;gBAE7B,KAAK,EAAA,CAAA;sBAAd,MAAM;;;MErBE,oBAAoB,CAAA;AALjC,IAAA,WAAA,GAAA;AASI,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAE,UAAU,CAAE,CAAA;AACjC,QAAA,IAAA,CAAA,iBAAiB,GAAG,MAAM,CAAE,iBAAiB,CAAE,CAAA;AAmBlD,KAAA;IAfG,kBAAkB,GAAA;QACd,UAAU,CAAE,MAAK;AACb,YAAA,IAAK,IAAI,CAAC,OAAO,IAAI,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,KAAK,EAAG;;aAErD;AACI,iBAAA,IAAK,IAAI,CAAC,OAAO,IAAI,EAAE,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,EAAG;AACpD,gBAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,UAAU,EAAE,aAAa,EAAE,WAAW,CAAA;aACpF;iBACI;AACD,gBAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,OAAO,CAAA;aACrC;AAED,YAAA,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAA;AAC1C,SAAC,CAAE,CAAA;KACN;+GAvBQ,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAApB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,oBAAoB,6GCPjC,+KAQA,EAAA,MAAA,EAAA,CAAA,iLAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,EAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,4BAAA,EAAA,oBAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,yBAAA,EAAA,YAAA,EAAA,iBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDDa,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBALhC,SAAS;+BACI,mBAAmB,EAAA,QAAA,EAAA,+KAAA,EAAA,MAAA,EAAA,CAAA,iLAAA,CAAA,EAAA,CAAA;8BAKpB,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;;;MEHG,oBAAoB,CAAA;AAC7B,IAAA,WAAA,CACW,WAAiC,EAAA;QAAjC,IAAW,CAAA,WAAA,GAAX,WAAW,CAAsB;KACxC;+GAHK,oBAAoB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAApB,oBAAoB,EAAA,QAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;4FAApB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAHhC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,gBAAgB;AAC7B,iBAAA,CAAA;;MAWY,mBAAmB,CAAA;AAC5B,IAAA,WAAA,CACW,WAAiC,EAAA;QAAjC,IAAW,CAAA,WAAA,GAAX,WAAW,CAAsB;KACxC;+GAHK,mBAAmB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAAnB,mBAAmB,EAAA,QAAA,EAAA,eAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;4FAAnB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAH/B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,eAAe;AAC5B,iBAAA,CAAA;;AAyBK,MAAO,mBAAoB,SAAQ,2BAA2B,CAAA;AAjBpE,IAAA,WAAA,GAAA;;AAqBI,QAAA,IAAA,CAAA,iBAAiB,GAAG,MAAM,CAAE,iBAAiB,CAAE,CAAA;AAIlD,KAAA;AAFG,IAAA,IAAI,cAAc,GAAA,EAAK,OAAO,IAAI,CAAC,aAAa,CAAC,WAAW,IAAI,SAAS,CAAA,EAAE;AAC3E,IAAA,IAAI,aAAa,GAAA,EAAK,OAAO,IAAI,CAAC,aAAa,CAAC,WAAW,IAAI,QAAQ,CAAA,EAAE;+GAPhE,mBAAmB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,mBAAmB,EACb,QAAA,EAAA,kBAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,oBAAoB,EACpB,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,eAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,mBAAmB,EAjBxB,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;AAQT,IAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,6BAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAOQ,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAjB/B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,kBAAkB,EAClB,QAAA,EAAA,CAAA;;;;;;;;AAQT,IAAA,CAAA,EAAA,MAAA,EAAA,CAAA,6BAAA,CAAA,EAAA,CAAA;8BAQqC,cAAc,EAAA,CAAA;sBAAnD,YAAY;uBAAE,oBAAoB,CAAA;gBACE,aAAa,EAAA,CAAA;sBAAjD,YAAY;uBAAE,mBAAmB,CAAA;;;MC5BzB,uBAAuB,CAAA;AAXpC,IAAA,WAAA,GAAA;QAYa,IAAS,CAAA,SAAA,GAAY,KAAK,CAAC;QAC3B,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;QACjB,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAA;AAEf,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,YAAY,EAAW,CAAA;AAGzD,KAAA;+GARY,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAvB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,uBAAuB,ibCdpC,muBAsBsB,EAAA,MAAA,EAAA,CAAA,y7CAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,EAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,4BAAA,EAAA,MAAA,EAAA,CAAA,gBAAA,EAAA,iBAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,4BAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,mCAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,OAAA,EAAA,UAAA,EAAA,aAAA,CAAA,EAAA,QAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FDRT,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAXnC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,sBAAsB,EAGf,eAAA,EAAA,uBAAuB,CAAC,MAAM,EACzC,IAAA,EAAA;AACF,wBAAA,oBAAoB,EAAI,WAAW;AACnC,wBAAA,kBAAkB,EAAM,6BAA6B;AACrD,wBAAA,kBAAkB,EAAM,UAAU;AACrC,qBAAA,EAAA,QAAA,EAAA,muBAAA,EAAA,MAAA,EAAA,CAAA,y7CAAA,CAAA,EAAA,CAAA;8BAGQ,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBAEI,cAAc,EAAA,CAAA;sBAAvB,MAAM;gBAEe,iBAAiB,EAAA,CAAA;sBAAtC,SAAS;uBAAE,OAAO,CAAA;;MAkDV,6BAA6B,CAAA;+GAA7B,6BAA6B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA7B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,6BAA6B,EA7C5B,QAAA,EAAA,6BAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;AAQT,IAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,kZAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAqCQ,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBA/CzC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,6BAA6B,EAC7B,QAAA,EAAA,CAAA;;;;;;;;AAQT,IAAA,CAAA,EAAA,MAAA,EAAA,CAAA,kZAAA,CAAA,EAAA,CAAA;;MAgGQ,6BAA6B,CAAA;AAzD1C,IAAA,WAAA,GAAA;QA4Da,IAAc,CAAA,cAAA,GAAG,iBAAiB,CAAA;QAClC,IAAW,CAAA,WAAA,GAAG,KAAK,CAAA;AAElB,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,YAAY,EAAgB,CAAA;AAC5C,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAgB,CAAA;AAC3D,KAAA;+GARY,6BAA6B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA7B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,6BAA6B,EAvD5B,QAAA,EAAA,6BAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,aAAA,EAAA,eAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,OAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6BT,IAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,0PAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,eAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,WAAA,EAAA,aAAA,EAAA,SAAA,EAAA,SAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,aAAA,EAAA,QAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FA0BQ,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBAzDzC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,6BAA6B,EAC7B,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6BT,IAAA,CAAA,EAAA,MAAA,EAAA,CAAA,0PAAA,CAAA,EAAA,CAAA;8BA2BQ,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACG,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBAEI,SAAS,EAAA,CAAA;sBAAlB,MAAM;gBACG,WAAW,EAAA,CAAA;sBAApB,MAAM;;;ME7HE,wBAAwB,CAAA;AANrC,IAAA,WAAA,GAAA;QAOa,IAAK,CAAA,KAAA,GAAG,SAAS,CAAA;AAE7B,KAAA;+GAHY,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAxB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,wBAAwB,uGCZrC,qVAiBA,EAAA,MAAA,EAAA,CAAA,qoHAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAJ,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,WAAA,CAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,IAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,yHAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,IAAA,EAAA,aAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FDLa,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBANpC,SAAS;+BACI,uBAAuB,EAAA,eAAA,EAGhB,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,qVAAA,EAAA,MAAA,EAAA,CAAA,qoHAAA,CAAA,EAAA,CAAA;8BAGtC,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,IAAI,EAAA,CAAA;sBAAZ,KAAK;;;AEdG,MAAA,YAAY,GAAG;AACxB,IAAA,eAAe,EAAE,eAAe;AAChC,IAAA,eAAe,EAAE,SAAS;AAC1B,IAAA,eAAe,EAAE,OAAO;AACxB,IAAA,cAAc,EAAE,MAAM;AACtB,IAAA,aAAa,EAAE,UAAU;AACzB,IAAA,kBAAkB,EAAE,UAAU;AAC9B,IAAA,cAAc,EAAE,QAAQ;AACxB,IAAA,mBAAmB,EAAE,OAAO;AAC5B,IAAA,wBAAwB,EAAE,gBAAgB;AAC1C,IAAA,QAAQ,EAAE,SAAS;AACnB,IAAA,aAAa,EAAE,kBAAkB;AACjC,IAAA,sBAAsB,EAAE,kBAAkB;;;MCIjC,mBAAmB,CAAA;AANhC,IAAA,WAAA,GAAA;QAOa,IAAK,CAAA,KAAA,GAAG,UAAU,CAAA;QAClB,IAAW,CAAA,WAAA,GAAG,WAAW,CAAA;QAEzB,IAAK,CAAA,KAAA,GAAG,MAAM,EAAE,CAAC,MAAM,CAAE,YAAY,CAAC,eAAe,CAAE,CAAA;AAEtD,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAU,CAAC;AAWtD,KAAA;AATG,IAAA,YAAY,CAAE,EAAE,EAAA;QACZ,IAAK,CAAC,EAAE,EAAG;AACP,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAE,IAAI,CAAE,CAAA;YAC7B,OAAM;SACT;QAED,IAAI,IAAI,GAAG,EAAE,CAAC,MAAM,CAAE,YAAY,CAAC,eAAe,CAAE,CAAA;AACpD,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAE,IAAI,CAAE,CAAA;KAChC;+GAhBQ,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,mBAAmB,uLChBhC,8zBA+BA,EAAA,MAAA,EAAA,CAAA,u9BAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAF,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,4EAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,WAAA,CAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,IAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,+CAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,yHAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,IAAA,EAAA,aAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,2BAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,mBAAA,EAAA,WAAA,EAAA,KAAA,EAAA,KAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,OAAA,EAAA,QAAA,CAAA,EAAA,OAAA,EAAA,CAAA,gBAAA,EAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,YAAA,EAAA,SAAA,EAAA,YAAA,EAAA,YAAA,EAAA,UAAA,EAAA,QAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,mBAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAG,aAAA,EAAA,QAAA,EAAA,WAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FDfa,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAN/B,SAAS;+BACI,kBAAkB,EAAA,eAAA,EAGX,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,8zBAAA,EAAA,MAAA,EAAA,CAAA,u9BAAA,CAAA,EAAA,CAAA;8BAGtC,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBAEI,WAAW,EAAA,CAAA;sBAApB,MAAM;;;MEDE,qBAAqB,CAAA;AATlC,IAAA,WAAA,GAAA;QAUa,IAAK,CAAA,KAAA,GAAG,QAAQ,CAAA;QAChB,IAAW,CAAA,WAAA,GAAG,WAAW,CAAA;AAIxB,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAU,CAAC;QAInD,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAA;AAChB,QAAA,IAAA,CAAA,iBAAiB,GAAG,MAAM,CAAE,iBAAiB,CAAE,CAAA;AAoBlD,KAAA;AAlBG,IAAA,eAAe,CAAE,GAAI,EAAA;AACjB,QAAA,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAA;AACrB,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAE,GAAG,CAAE,CAAA;KAC/B;AAED,IAAA,OAAO,CAAE,EAAE,EAAA;QACP,IAAI,CAAC,KAAK,GAAG,EAAE,EAAE,MAAM,EAAE,KAAK,CAAA;QAC9B,IAAI,CAAC,eAAe,CAAE,EAAE,EAAE,MAAM,EAAE,KAAK,CAAE,CAAA;KAC5C;IAED,aAAa,GAAA;AACT,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAA;QACjB,IAAI,CAAC,eAAe,EAAE,CAAA;KACzB;IAED,KAAK,GAAA;AACD,QAAA,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,EAAE,CAAA;KACrC;+GA9BQ,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAArB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,qBAAqB,oVCrBlC,srBA4BA,EAAA,MAAA,EAAA,CAAA,4kCAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAL,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,WAAA,CAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,IAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,+CAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAI,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,yHAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,IAAA,EAAA,aAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAF,aAAA,EAAA,QAAA,EAAA,WAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FDPa,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBATjC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,oBAAoB,EAGb,eAAA,EAAA,uBAAuB,CAAC,MAAM,EACzC,IAAA,EAAA;AACF,wBAAA,mBAAmB,EAAE,UAAU;AAClC,qBAAA,EAAA,QAAA,EAAA,srBAAA,EAAA,MAAA,EAAA,CAAA,4kCAAA,CAAA,EAAA,CAAA;8BAGQ,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBAEI,WAAW,EAAA,CAAA;sBAApB,MAAM;gBAEe,OAAO,EAAA,CAAA;sBAA5B,SAAS;uBAAE,OAAO,CAAA;;;AEHvB;;;;;;;;AAQG;MAaU,qBAAqB,CAAA;AAZlC,IAAA,WAAA,GAAA;QAca,IAAW,CAAA,WAAA,GAAG,WAAW,CAAA;QAIO,IAAS,CAAA,SAAA,GAAG,CAAC,CAAA;QACZ,IAAQ,CAAA,QAAA,GAAG,IAAI,CAAA;QACf,IAAO,CAAA,OAAA,GAAG,IAAI,CAAA;QACd,IAAK,CAAA,KAAA,GAAG,IAAI,CAAA;QACZ,IAAM,CAAA,MAAA,GAAG,IAAI,CAAA;AAE7C,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAY,CAAC;QAErD,IAAU,CAAA,UAAA,GAAG,MAAM,CAAA;QAGnB,IAAU,CAAA,UAAA,GAAG,KAAK,CAAA;QAClB,IAAM,CAAA,MAAA,GAAG,KAAK,CAAA;QACd,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAA;AAEhB,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,WAAW,EAAE,CAAA;AAC7B,QAAA,IAAA,CAAA,KAAK,GAA2C,CAAE,CAAC,KAAM,IAAI,CAAA;AAG7D,QAAA,IAAA,CAAA,iBAAiB,GAAG,MAAM,CAAE,iBAAiB,CAAE,CAAA;AAC/C,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAE,OAAO,CAAE,CAAA;AAC3B,QAAA,IAAA,CAAA,gBAAgB,GAAG,MAAM,CAAE,gBAAgB,CAAE,CAAA;AAwOhD,KAAA;AAlOG,IAAA,WAAW,CAAE,OAAsB,EAAA;QAC/B,IAAK,IAAI,CAAC,MAAM;YAAG,OAAM;AAEzB,QAAA,IAAK,OAAO,CAAC,OAAO,EAAG;AACnB,YAAA,IAAI,EAAE,GAAG,IAAI,CAAC,SAAS,CAAE,OAAO,CAAC,OAAO,CAAC,aAAa,CAAE,CAAA;AACxD,YAAA,IAAI,EAAE,GAAG,IAAI,CAAC,SAAS,CAAE,OAAO,CAAC,OAAO,CAAC,YAAY,CAAE,CAAA;AACvD,YAAA,IAAK,EAAE,IAAI,EAAE,EAAG;AACZ,gBAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAE,IAAI,CAAE,CAAA;gBAC/B,IAAI,CAAC,mBAAmB,EAAE,CAAA;gBAC1B,IAAI,CAAC,SAAS,EAAE,CAAA;aACnB;SACJ;AAED,QAAA,IAAK,OAAO,CAAC,KAAK,EAAG;AACjB,YAAA,IAAI,EAAE,GAAG,IAAI,CAAC,SAAS,CAAE,OAAO,CAAC,KAAK,CAAC,aAAa,CAAE,CAAA;AACtD,YAAA,IAAI,EAAE,GAAG,IAAI,CAAC,SAAS,CAAE,OAAO,CAAC,KAAK,CAAC,YAAY,CAAE,CAAA;AACrD,YAAA,IAAK,EAAE,IAAI,EAAE,EAAG;AACZ,gBAAA,IAAK,IAAI,CAAC,KAAK,EAAG;oBACd,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAA;oBACrC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAE,IAAI,CAAC,KAAK,CAAE,CAAA;AACrC,oBAAA,IAAK,IAAI,CAAC,SAAS,GAAG,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,SAAS,EAAG;AAC7D,wBAAA,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAA;qBAC3B;yBACI;AACD,wBAAA,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAA;qBAC1B;iBACJ;qBACI;AACD,oBAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAA;AACrB,oBAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAE,IAAI,CAAE,CAAA;AAC/B,oBAAA,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAA;iBAC1B;gBAED,IAAI,CAAC,SAAS,EAAE,CAAA;gBAChB,IAAI,CAAC,mBAAmB,EAAE,CAAA;AAC1B,gBAAA,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAA;aACzC;SACJ;KACJ;AAED,IAAA,IAAI,MAAM,GAAA;AACN,QAAA,OAAO,IAAI,CAAC,SAAS,IAAI,CAAC,CAAA;KAC7B;IAED,eAAe,GAAA;AACX,QAAA,IAAI,CAAC,QAAQ,GAAG,CAAE,IAAI,CAAC,SAAS,CAAC,KAAK,IAAI,EAAE,EAAG,MAAM,GAAG,CAAC,CAAA;AACzD,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAE,IAAI,CAAC,SAAS,CAAC,KAAK,IAAI,EAAE,CAAE,CAAA;KACtD;IAED,IAAI,GAAA;QACA,IAAK,IAAI,CAAC,MAAM;YAAG,OAAM;AAEzB,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAA;AAClB,QAAA,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAA;AAC1B,QAAA,IAAK,IAAI,CAAC,MAAM,EAAG;AACf,YAAA,IAAI,CAAC,UAAU,GAAG,EAAE,CAAA;SACvB;aACI;SAEJ;;AAGD,QAAA,MAAM,gBAAgB,GAAG,IAAI,CAAC,OAAO;AAChC,aAAA,QAAQ,EAAE;AACV,aAAA,mBAAmB,CAAE,IAAI,CAAC,OAAO,CAAE;AACnC,aAAA,aAAa,CAAE;AACZ,YAAA;AACI,gBAAA,OAAO,EAAE,OAAO;AAChB,gBAAA,OAAO,EAAE,QAAQ;AACjB,gBAAA,QAAQ,EAAE,OAAO;AACjB,gBAAA,QAAQ,EAAE,KAAK;AACf,gBAAA,OAAO,EAAE,CAAC;AACb,aAAA;AACD,YAAA;AACI,gBAAA,OAAO,EAAE,OAAO;AAChB,gBAAA,OAAO,EAAE,KAAK;AACd,gBAAA,QAAQ,EAAE,OAAO;AACjB,gBAAA,QAAQ,EAAE,QAAQ;AAClB,gBAAA,OAAO,EAAE,CAAC;AACb,aAAA;SACJ,CAAE;aACF,QAAQ,CAAE,KAAK,CAAE,CAAA;QAEtB,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,UAAU,EAAE,CAAA;QAEjE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAE;YACnC,gBAAgB;YAChB,cAAc;AACd,YAAA,WAAW,EAAE,KAAK;YAClB,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,WAAW,GAAG,CAAC;AACpD,YAAA,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,WAAW;AAChD,YAAA,SAAS,EAAE,GAAG;AACjB,SAAA,CAAE,CAAA;;AAGH,QAAA,MAAM,MAAM,GAAG,IAAI,cAAc,CAAE,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,gBAAgB,CAAE,CAAA;AAChF,QAAA,IAAI,CAAC,UAAU,CAAC,MAAM,CAAE,MAAM,CAAE,CAAA;;QAGhC,UAAU,CAAE,MAAK;YACb,IAAI,CAAC,iBAAiB,GAAG,SAAS,CAAc,QAAQ,EAAE,OAAO,CAAE;AAC9D,iBAAA,IAAI,CAAE,MAAM,CAAE,CAAE,KAAiB,KAAK;AACnC,gBAAA,MAAM,WAAW,GAAG,KAAK,CAAC,MAAqB,CAAA;AAC/C,gBAAA,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAA;AAC5C,gBAAA,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,EAAE,cAAc,CAAA;;AAGjD,gBAAA,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC;AAChC,uBAAA,CAAC,SAAS,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAA;AAC5C,aAAC,CAAE,CAAE;iBACJ,SAAS,CAAE,MAAK;gBACb,IAAI,CAAC,KAAK,EAAE,CAAA;AAChB,aAAC,CAAE,CAAA;AACX,SAAC,CAAE,CAAA;;QAGH,UAAU,CAAE,MAAK;AACb,YAAA,IAAI,CAAC,WAAW,EAAE,aAAa,CAAC,KAAK,EAAE,CAAC;;AAGxC,YAAA,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAE,CAAC,EAAE,CAAC,CAAE,CAAA;AAC7D,SAAC,CAAE,CAAA;QAEH,IAAI,CAAC,SAAS,EAAE,CAAA;AAEhB,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,SAAS,CAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAE,CAAA;KAC7D;IAED,KAAK,GAAA;QACD,IAAK,CAAC,IAAI,CAAC,MAAM;YAAG,OAAM;AAE1B,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAA;QACnB,IAAI,CAAC,mBAAmB,EAAE,CAAA;AAC1B,QAAA,IAAI,CAAC,UAAU,GAAG,MAAM,CAAA;AAExB,QAAA,IAAK,IAAI,CAAC,iBAAiB,EAAG;AAC1B,YAAA,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE,CAAA;AACpC,YAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAA;SAChC;AAED,QAAA,IAAK,IAAI,CAAC,UAAU,EAAG;AACnB,YAAA,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAA;AACzB,YAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAA;SACzB;AAED,QAAA,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAA;AAEtC,QAAA,IAAI,YAAY,GAAG,IAAI,CAAC,SAAS,CAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAE,CAAA;AACzD,QAAA,IAAK,IAAI,CAAC,YAAY,IAAI,YAAY;YAClC,IAAI,CAAC,eAAe,EAAE,CAAA;KAC7B;IAED,mBAAmB,GAAA;AACf,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,GAAG,CAAE,CAAC,IAAI,IAAI,CAAC,kBAAkB,CAAE,CAAC,CAAE,CAAE,CAAC,IAAI,CAAE,IAAI,CAAE,IAAI,IAAI,CAAA;KACzG;AAED,IAAA,OAAO,CAAE,EAAG,EAAA;QACR,IAAI,CAAC,SAAS,CAAE,EAAE,EAAE,MAAM,EAAE,KAAK,CAAE,CAAA;KACtC;AAED,IAAA,SAAS,CAAE,IAAa,EAAA;QACpB,IAAI,CAAC,GAAG,IAAI,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA;QAElC,IAAK,CAAC,EAAG;AACL,YAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAA;AACtB,YAAA,IAAI,CAAC,KAAK,GAAG,CAAE,MAAM,KAAM,MAAM,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAE,CAAC,CAAE,CAAA;SAC5E;aACI;AACD,YAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAA;YACvB,IAAI,CAAC,KAAK,GAAG,CAAE,CAAC,KAAM,IAAI,CAAA;SAC7B;AAED,QAAA,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAA;KACzC;AAED,IAAA,aAAa,CAAE,MAAuB,EAAA;AAClC,QAAA,OAAO,IAAI,CAAC,KAAK,CAAE,MAAM,CAAE,CAAA;KAC9B;AAED,IAAA,iBAAiB,CAAE,EAAE,EAAA;AACjB,QAAA,IAAK,IAAI,CAAC,MAAM,EAAG;YACf,IAAI,CAAC,KAAK,EAAE,CAAA;SACf;aACI;AACD,YAAA,IAAI,CAAC,WAAW,EAAE,aAAa,CAAC,KAAK,EAAE,CAAA;SAC1C;AAED,QAAA,IAAK,IAAI,CAAC,SAAS,GAAG,CAAC,EAAG;AACtB,YAAA,IAAK,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,SAAS,EAAG;AACjD,gBAAA,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAA;aAC3B;iBACI;AACD,gBAAA,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAA;aAC1B;SACJ;AAED,QAAA,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAA;KACzC;AAED,IAAA,sBAAsB,CAAE,EAA0B,EAAA;QAC9C,UAAU,CAAC,MAAK;YACZ,IAAI,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,OAAO,CAAE,CAAC,CAAE,CAAC,KAAK,CAAE,CAAA;AAC1E,YAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAE,KAAK,CAAE,CAAA;AAEhC,YAAA,IAAI,CAAC,iBAAiB,CAAE,EAAE,CAAE,CAAA;AAChC,SAAC,CAAC,CAAA;KACL;IAED,aAAa,GAAA;AACT,QAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAE,IAAI,CAAE,CAAA;AAC/B,QAAA,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAA;QACvB,IAAI,CAAC,mBAAmB,EAAE,CAAA;QAC1B,IAAI,CAAC,eAAe,EAAE,CAAA;KACzB;IAED,YAAY,GAAA;QACR,IAAI,CAAC,IAAI,EAAE,CAAA;KACd;IAED,YAAY,GAAA;QACR,IAAI,CAAC,KAAK,EAAE,CAAA;KACf;AAED,IAAA,kBAAkB,CAAE,IAAY,EAAA;AAC5B,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAE,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,IAAI,CAAE,EAAE,WAAW,CAAA;KAC/D;+GAlQQ,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAArB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,qBAAqB,EAMT,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,WAAA,EAAA,aAAA,EAAA,IAAA,EAAA,MAAA,EAAA,OAAA,EAAA,SAAA,EAAA,KAAA,EAAA,OAAA,EAAA,SAAA,EAAA,CAAA,WAAA,EAAA,WAAA,EAAA,eAAe,CACf,EAAA,QAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAAA,gBAAgB,CAChB,EAAA,OAAA,EAAA,CAAA,SAAA,EAAA,SAAA,EAAA,gBAAgB,CAChB,EAAA,KAAA,EAAA,CAAA,OAAA,EAAA,OAAA,EAAA,gBAAgB,CAChB,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,gBAAgB,CAmBN,EAAA,EAAA,OAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,eAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,SAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,SAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAAA,UAAU,oPC5E7C,unHAuGA,EAAA,MAAA,EAAA,CAAA,mvFAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAJ,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,WAAA,CAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,IAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,+CAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,yHAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,IAAA,EAAA,aAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAK,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,aAAA,EAAA,UAAA,EAAA,8BAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,gBAAA,EAAA,kBAAA,EAAA,OAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,4BAAA,EAAA,oBAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,yBAAA,EAAA,YAAA,EAAA,iBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAR,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAS,aAAA,EAAA,QAAA,EAAA,WAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FDxDa,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAZjC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,oBAAoB,EAGb,eAAA,EAAA,uBAAuB,CAAC,MAAM,EACzC,IAAA,EAAA;AACF,wBAAA,mBAAmB,EAAE,UAAU;AAC/B,wBAAA,iBAAiB,EAAE,QAAQ;AAC3B,wBAAA,mBAAmB,EAAE,SAAS;AAC9B,wBAAA,oBAAoB,EAAE,QAAQ;AACjC,qBAAA,EAAA,QAAA,EAAA,unHAAA,EAAA,MAAA,EAAA,CAAA,mvFAAA,CAAA,EAAA,CAAA;8BAGQ,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACmC,SAAS,EAAA,CAAA;sBAAjD,KAAK;uBAAE,EAAE,SAAS,EAAE,eAAe,EAAE,CAAA;gBACI,QAAQ,EAAA,CAAA;sBAAjD,KAAK;uBAAE,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAA;gBACG,OAAO,EAAA,CAAA;sBAAhD,KAAK;uBAAE,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAA;gBACG,KAAK,EAAA,CAAA;sBAA9C,KAAK;uBAAE,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAA;gBACG,MAAM,EAAA,CAAA;sBAA/C,KAAK;uBAAE,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAA;gBAE7B,WAAW,EAAA,CAAA;sBAApB,MAAM;gBAiBuC,OAAO,EAAA,CAAA;sBAApD,SAAS;AAAE,gBAAA,IAAA,EAAA,CAAA,SAAS,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,CAAA;gBACf,WAAW,EAAA,CAAA;sBAAtC,SAAS;uBAAE,aAAa,CAAA;gBACO,eAAe,EAAA,CAAA;sBAA9C,SAAS;uBAAE,iBAAiB,CAAA;;;ME7DpB,qBAAqB,CAAA;AATlC,IAAA,WAAA,GAAA;QAUa,IAAS,CAAA,SAAA,GAAG,IAAI,CAAA;QAChB,IAAW,CAAA,WAAA,GAAG,IAAI,CAAA;QAClB,IAAkB,CAAA,kBAAA,GAAG,KAAK,CAAA;QAC1B,IAAmB,CAAA,mBAAA,GAAG,KAAK,CAAA;AAE1B,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,YAAY,EAAE,CAAA;AACjC,QAAA,IAAA,CAAA,iBAAiB,GAAG,IAAI,YAAY,EAAW,CAAA;AAC/C,QAAA,IAAA,CAAA,yBAAyB,GAAG,IAAI,YAAY,EAAW,CAAA;AAyBpE,KAAA;IAvBG,YAAY,GAAA;AACR,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAA;KAC3B;IAED,WAAW,GAAA;AACP,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAA;AACxB,QAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAE,KAAK,CAAE,CAAA;KACvC;IAED,WAAW,GAAA;AACP,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAA;AACvB,QAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAE,IAAI,CAAE,CAAA;KACtC;IAED,mBAAmB,GAAA;AACf,QAAA,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAA;AAChC,QAAA,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAE,KAAK,CAAE,CAAA;KAC/C;IAED,mBAAmB,GAAA;AACf,QAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAA;AAC/B,QAAA,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAE,IAAI,CAAE,CAAA;KAC9C;+GAhCQ,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAArB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,qBAAqB,2ZCjBlC,+rDA0DA,EAAA,MAAA,EAAA,CAAA,ugCAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,eAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,WAAA,EAAA,aAAA,EAAA,SAAA,EAAA,SAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,mBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,mBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FDzCa,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBATjC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,oBAAoB,EAGb,eAAA,EAAA,uBAAuB,CAAC,MAAM,EACzC,IAAA,EAAA;AACF,wBAAA,sBAAsB,EAAE,cAAc;AACzC,qBAAA,EAAA,QAAA,EAAA,+rDAAA,EAAA,MAAA,EAAA,CAAA,ugCAAA,CAAA,EAAA,CAAA;8BAGQ,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,kBAAkB,EAAA,CAAA;sBAA1B,KAAK;gBACG,mBAAmB,EAAA,CAAA;sBAA3B,KAAK;gBAEI,YAAY,EAAA,CAAA;sBAArB,MAAM;gBACG,iBAAiB,EAAA,CAAA;sBAA1B,MAAM;gBACG,yBAAyB,EAAA,CAAA;sBAAlC,MAAM;;;MEHE,kBAAkB,CAAA;AAV/B,IAAA,WAAA,GAAA;AAcI,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAE,UAAU,CAAE,CAAA;AAC9B,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAE,SAAS,CAAE,CAAA;AAYjC,KAAA;AAVG,IAAA,WAAW,CAAE,OAAsB,EAAA;AAC/B,QAAA,IAAK,OAAO,CAAC,QAAQ,EAAG;AACpB,YAAA,IAAK,IAAI,CAAC,QAAQ,EAAG;gBACjB,qBAAqB,CAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,aAAa,CAAE,CAAA;aACrE;iBACI;gBACD,wBAAwB,CAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,aAAa,CAAE,CAAA;aACxE;SACJ;KACJ;+GAhBQ,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAlB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,kBAAkB,EACN,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAAA,gBAAgB,CAChB,EAAA,QAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAAA,gBAAgB,wIAV3B,2BAA2B,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,2/CAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FAQ5B,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAV9B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,iBAAiB,YACjB,2BAA2B,EAAA,eAAA,EAEpB,uBAAuB,CAAC,MAAM,EACzC,IAAA,EAAA;AACF,wBAAA,kBAAkB,EAAE,UAAU;AAC9B,wBAAA,kBAAkB,EAAE,UAAU;AACjC,qBAAA,EAAA,MAAA,EAAA,CAAA,2/CAAA,CAAA,EAAA,CAAA;8BAGyC,QAAQ,EAAA,CAAA;sBAAjD,KAAK;uBAAE,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAA;gBACG,QAAQ,EAAA,CAAA;sBAAjD,KAAK;uBAAE,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAA;;AAiB3C,SAAS,qBAAqB,CAAC,QAAmB,EAAE,WAAwB,EAAA;AACxE,IAAA,IAAI,gBAAgB,CAAC;;AAErB,IAAA,IAAI,gBAAkC,CAAC;AACvC,IAAA,gBAAgB,GAAG,WAAW,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAC7D,IAAA,IAAI,gBAAgB,IAAI,gBAAgB,CAAC,MAAM,EAAE;AAC7C,QAAA,gBAAgB,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;QACvC,UAAU,CAAC,MAAK;YACZ,QAAQ,CAAC,YAAY,CAAC,gBAAgB,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;AACpE,SAAC,CAAC,CAAC;KACN;;AAGD,IAAA,IAAI,mBAAwC,CAAC;AAC7C,IAAA,gBAAgB,GAAG,WAAW,CAAC,oBAAoB,CAAC,UAAU,CAAC,CAAC;AAChE,IAAA,IAAI,gBAAgB,IAAI,gBAAgB,CAAC,MAAM,EAAE;AAC7C,QAAA,mBAAmB,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;QAC1C,UAAU,CAAC,MAAK;YACZ,QAAQ,CAAC,YAAY,CAAC,mBAAmB,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;AACvE,SAAC,CAAC,CAAC;KACN;;AAGD,IAAA,IAAI,iBAAoC,CAAC;AACzC,IAAA,gBAAgB,GAAG,WAAW,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC;AAC9D,IAAA,IAAI,gBAAgB,IAAI,gBAAgB,CAAC,MAAM,EAAE;AAC7C,QAAA,iBAAiB,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;QACxC,UAAU,CAAC,MAAK;AACZ,YAAA,QAAQ,CAAC,QAAQ,CAAC,iBAAiB,EAAE,yBAAyB,CAAC,CAAC;YAChE,QAAQ,CAAC,YAAY,CAAC,iBAAiB,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;AACjE,YAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,iBAAiB,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACvD,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC;aAChD;AACL,SAAC,CAAC,CAAC;KACN;AACL,CAAC;AAED,SAAS,wBAAwB,CAAC,QAAmB,EAAE,WAAwB,EAAA;;AAE3E,IAAA,IAAI,gBAAgB,CAAC;;AAErB,IAAA,IAAI,gBAAkC,CAAC;AACvC,IAAA,gBAAgB,GAAG,WAAW,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAC7D,IAAA,IAAI,gBAAgB,IAAI,gBAAgB,CAAC,MAAM,EAAE;AAC7C,QAAA,gBAAgB,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;QACvC,UAAU,CAAC,MAAK;AACZ,YAAA,QAAQ,CAAC,eAAe,CAAC,gBAAgB,EAAE,UAAU,CAAC,CAAC;AAC3D,SAAC,CAAC,CAAC;KACN;;AAGD,IAAA,IAAI,mBAAwC,CAAC;AAC7C,IAAA,gBAAgB,GAAG,WAAW,CAAC,oBAAoB,CAAC,UAAU,CAAC,CAAC;AAChE,IAAA,IAAI,gBAAgB,IAAI,gBAAgB,CAAC,MAAM,EAAE;AAC7C,QAAA,mBAAmB,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;QAC1C,UAAU,CAAC,MAAK;AACZ,YAAA,QAAQ,CAAC,eAAe,CAAC,mBAAmB,EAAE,UAAU,CAAC,CAAC;AAC9D,SAAC,CAAC,CAAC;KACN;;AAGD,IAAA,IAAI,iBAAoC,CAAC;AACzC,IAAA,gBAAgB,GAAG,WAAW,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC;AAC9D,IAAA,IAAI,gBAAgB,IAAI,gBAAgB,CAAC,MAAM,EAAE;AAC7C,QAAA,iBAAiB,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;QACxC,UAAU,CAAC,MAAK;AACZ,YAAA,QAAQ,CAAC,WAAW,CAAC,iBAAiB,EAAE,yBAAyB,CAAC,CAAC;AACnE,YAAA,QAAQ,CAAC,eAAe,CAAC,iBAAiB,EAAE,UAAU,CAAC,CAAC;AACxD,YAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,iBAAiB,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACvD,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,SAAS,CAAC;aACrD;AACL,SAAC,CAAC,CAAC;KACN;AACL;;MCvGa,mBAAmB,CAAA;+GAAnB,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,mBAAmB,wDAJlB,2BAA2B,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,iQAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FAI5B,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAN/B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,kBAAkB,EAClB,QAAA,EAAA,2BAA2B,EAEpB,eAAA,EAAA,uBAAuB,CAAC,MAAM,EAAA,MAAA,EAAA,CAAA,iQAAA,CAAA,EAAA,CAAA;;;MCFtC,YAAY,CAAA;AALzB,IAAA,WAAA,GAAA;QAM8C,IAAU,CAAA,UAAA,GAAG,KAAK,CAAA;QAClB,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAA;AAC7D,KAAA;+GAHY,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAZ,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,YAAY,EACA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,EAAA,UAAA,EAAA,CAAA,YAAA,EAAA,YAAA,EAAA,gBAAgB,CAChB,EAAA,QAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAAA,gBAAgB,6BAL3B,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,yHAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAGH,YAAY,EAAA,UAAA,EAAA,CAAA;kBALxB,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,UAAU,YACV,EAAE,EAAA,MAAA,EAAA,CAAA,yHAAA,CAAA,EAAA,CAAA;8BAI8B,UAAU,EAAA,CAAA;sBAAnD,KAAK;uBAAE,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAA;gBACG,QAAQ,EAAA,CAAA;sBAAjD,KAAK;uBAAE,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAA;;;MCC9B,gBAAgB,CAAA;AAGzB,IAAA,WAAA,GAAA;AAFiB,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,OAAO,EAA4B,CAAC;KAGxE;AAED,IAAA,YAAY,CAAK,gBAA0B,EAAE,YAAe,EAAE,KAAc,EAAA;QACxE,IAAK,IAAI,CAAC,aAAa,CAAC,GAAG,CAAE,gBAAgB,CAAE,EAAG;YAC9C,IAAI,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAE,gBAAgB,CAAE,CAAA;YACnD,OAAO,EAAE,CAAC,KAAK,CAAA;SAClB;QAED,IAAI,CAAC,YAAY,CAAE,gBAAgB,EAAE,YAAY,EAAE,KAAK,CAAE,CAAA;AAC1D,QAAA,OAAO,YAAY,CAAA;KACtB;AAED,IAAA,YAAY,CAAK,gBAA0B,EAAE,KAAQ,EAAE,KAAc,EAAA;AACjE,QAAA,IAAI,EAAE,GAAmB,EAAE,KAAK,EAAE,KAAK,EAAE,CAAA;QACzC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAE,gBAAgB,EAAE,EAAE,CAAE,CAAA;KACjD;+GAnBQ,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAhB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,cAFb,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAET,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAH5B,UAAU;AAAE,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,UAAU,EAAE,MAAM;AACrB,iBAAA,CAAA;;;MCPY,OAAO,CAAA;AAChB,IAAA,WAAA,CAAoB,MAAc,EAAA;QAAd,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;KAAK;AAC1C,CAAA;MAEY,iBAAiB,CAAA;IAK1B,WACY,CAAA,UAA+B,EAC/B,KAAA,GAAgB,GAAG,EAAA;QADnB,IAAU,CAAA,UAAA,GAAV,UAAU,CAAqB;QAC/B,IAAK,CAAA,KAAA,GAAL,KAAK,CAAc;QAE3B,IAAI,CAAC,QAAQ,GAAG,IAAI,OAAO,CAAE,CAAE,GAAG,EAAE,GAAG,KAAK;AACxC,YAAA,IAAI,KAAK,GAAG,UAAU,CAAC,MAAK;gBACxB,IAAI,GAAG,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,SAAS,CAAE;AACnC,oBAAA,IAAI,EAAE,GAAG;AACT,oBAAA,KAAK,EAAE,GAAG;AACb,iBAAA,CAAE,CAAA;AAEH,gBAAA,IAAI,CAAC,MAAM,GAAG,MAAK;oBACf,GAAG,CAAC,WAAW,EAAE,CAAA;AACjB,oBAAA,GAAG,CAAE,IAAI,OAAO,CAAE,iBAAiB,CAAE,CAAE,CAAA;AACvC,oBAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAA;AACtB,iBAAC,CAAA;AACL,aAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;AAEf,YAAA,IAAI,CAAC,MAAM,GAAG,MAAK;gBACf,YAAY,CAAE,KAAK,CAAE,CAAA;AACrB,gBAAA,GAAG,CAAE,IAAI,OAAO,CAAE,eAAe,CAAE,CAAE,CAAA;AACrC,gBAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAA;AACtB,aAAC,CAAA;AACL,SAAC,CAAE,CAAA;KACN;IAED,KAAK,GAAA;QACD,IAAK,IAAI,CAAC,QAAQ;YAAG,OAAM;AAC3B,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAA;QACpB,IAAK,CAAC,IAAI,CAAC,MAAM;YAAG,OAAM;QAC1B,IAAI,CAAC,MAAM,EAAE,CAAA;KAChB;AAED,IAAA,IAAI,OAAO,GAAA;QACP,OAAO,IAAI,CAAC,QAAQ,CAAA;KACvB;AAED,IAAA,IAAI,OAAO,GAAA;QACP,OAAO,IAAI,CAAC,QAAQ,CAAA;KACvB;AACJ;;MC9BY,WAAW,CAAA;IAIpB,IAAI,SAAS,KAAK,OAAO,IAAI,CAAC,UAAU,CAAA,EAAE;IAC1C,IAAI,SAAS,CAAE,CAAU,EAAA;AACrB,QAAA,IAAK,CAAC,IAAI,IAAI,CAAC,UAAU;YAAG,OAAM;AAClC,QAAA,IAAI,CAAC,UAAU,GAAG,CAAC,CAAA;AACnB,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAE,CAAC,CAAE,CAAA;KACjC;AAoBD,IAAA,WAAA,GAAA;AA5BU,QAAA,IAAA,CAAA,eAAe,GAAG,IAAI,YAAY,EAAW,CAAA;QAE/C,IAAU,CAAA,UAAA,GAAG,KAAK,CAAA;QAQ1B,IAAI,CAAA,IAAA,GAAQ,EAAE,CAAA;AAad,QAAA,IAAA,CAAA,gBAAgB,GAAG,MAAM,CAAE,gBAAgB,CAAE,CAAA;AAC7C,QAAA,IAAA,CAAA,iBAAiB,GAAG,MAAM,CAAE,iBAAiB,CAAE,CAAA;QAK3C,IAAI,CAAC,iBAAiB,EAAE,CAAA;KAC3B;IAED,iBAAiB,GAAA;QACb,IAAI,CAAC,aAAa,EAAE,CAAA;KACvB;IAED,eAAe,GAAA;QACX,IAAI,CAAC,cAAc,EAAE,CAAA;KACxB;IAED,cAAc,GAAA;AACV,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAA;QAErB,OAAO,OAAO,CAAC,OAAO,EAAE;aACnB,IAAI,CAAE,MAAK;AACR,YAAA,OAAO,IAAI,CAAC,WAAW,EAAE,CAAA;AAC7B,SAAC,CAAE;aACF,IAAI,CAAE,CAAE,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK;AACjC,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;AAChB,YAAA,IAAI,CAAC,aAAa,GAAG,aAAa,CAAA;AAClC,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAA;AAC1B,SAAC,CAAE;AACF,aAAA,KAAK,CAAE,CAAE,CAAC,KAAK;YACZ,IAAK,CAAC,YAAY,OAAO;gBAAG,OAAM;AAElC,YAAA,IAAI,CAAC,qBAAqB,CAAE,CAAC,CAAE,CAAA;AAC/B,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAA;AAC1B,SAAC,CAAE;aACF,OAAO,CAAE,MAAK;YACX,IAAI,CAAC,mBAAmB,EAAE,CAAA;AAC1B,YAAA,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAA;AAC1C,SAAC,CAAE,CAAA;KACV;IAED,WAAW,GAAA;QACP,IAAK,IAAI,CAAC,mBAAmB;AACzB,YAAA,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,CAAA;AAEpC,QAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI,iBAAiB,CAAK,MAAK;AACtD,YAAA,OAAO,IAAI,CAAC,gBAAgB,EAAE,CAAA;AAClC,SAAC,CAAE,CAAA;AAEH,QAAA,OAAO,IAAI,CAAC,mBAAmB,CAAC,OAAO;aAClC,IAAI,CAAE,GAAG,IAAG;AACT,YAAA,OAAO,IAAI,CAAC,kBAAkB,CAAE,GAAG,CAAE,CAAA;AACzC,SAAC,CAAE,CAAA;KACV;IAED,gBAAgB,GAAA;AACZ,QAAA,MAAM,eAAe,CAAA;KACxB;AAED,IAAA,kBAAkB,CAAE,GAAM,EAAA;AACtB,QAAA,MAAM,eAAe,CAAA;KACxB;AAED,IAAA,qBAAqB,CAAE,KAAK,EAAA;AACxB,QAAA,OAAO,CAAC,IAAI,CAAE,KAAK,CAAE,CAAA;AACrB,QAAA,IAAI,CAAC,IAAI,GAAG,EAAE,CAAA;AACd,QAAA,IAAI,CAAC,aAAa,GAAG,CAAC,CAAA;KACzB;AAED,IAAA,cAAc,CAAE,EAAE,EAAA;AACd,QAAA,IAAI,CAAC,MAAM,GAAG,EAAE,CAAA;AAChB,QAAA,IAAI,CAAC,UAAU,GAAG,CAAC,CAAA;QAEnB,IAAI,CAAC,cAAc,EAAE;aAChB,IAAI,CAAE,MAAK;YACR,IAAI,CAAC,aAAa,EAAE,CAAA;YACpB,IAAI,CAAC,mBAAmB,EAAE,CAAA;AAC9B,SAAC,CAAE,CAAA;KACV;AAED,IAAA,YAAY,CAAE,EAAE,EAAA;AACZ,QAAA,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC,MAAM,CAAA;AAC3B,QAAA,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC,SAAS,CAAA;AACjC,QAAA,IAAI,CAAC,UAAU,GAAG,CAAC,CAAA;QAEnB,IAAI,CAAC,cAAc,EAAE;aAChB,IAAI,CAAE,MAAK;YACR,IAAI,CAAC,aAAa,EAAE,CAAA;YACpB,IAAI,CAAC,mBAAmB,EAAE,CAAA;AAC9B,SAAC,CAAE,CAAA;KACV;AAED,IAAA,kBAAkB,CAAE,EAAE,EAAA;AAClB,QAAA,IAAI,CAAC,UAAU,GAAG,EAAE,CAAA;QAEpB,IAAI,CAAC,cAAc,EAAE;aAChB,IAAI,CAAE,MAAK;YACR,IAAI,CAAC,aAAa,EAAE,CAAA;YACpB,IAAI,CAAC,mBAAmB,EAAE,CAAA;AAC9B,SAAC,CAAE,CAAA;KACV;AAED,IAAA,gBAAgB,CAAE,EAAE,EAAA;AAChB,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAA;AAClB,QAAA,IAAI,CAAC,UAAU,GAAG,CAAC,CAAA;QAEnB,IAAI,CAAC,cAAc,EAAE;aAChB,IAAI,CAAE,MAAK;YACR,IAAI,CAAC,aAAa,EAAE,CAAA;YACpB,IAAI,CAAC,mBAAmB,EAAE,CAAA;AAC9B,SAAC,CAAE,CAAA;KACV;IAED,mBAAmB,GAAA;QACf,CAAE,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,gBAAgB,CAAE,GAAG,WAAW,CAAE,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAE,CAAA;KACpH;AAED,IAAA,IAAI,gBAAgB,GAAA;AAChB,QAAA,MAAM,eAAe,CAAA;KACxB;IAED,aAAa,GAAA;AACT,QAAA,IAAI,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAmB,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,gBAAgB,CAAE,CAAA;AAE1G,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAA;AAC1B,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAA;AAC9B,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,CAAA;AAClC,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,CAAA;AAClC,QAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,aAAa,CAAA;KAC3C;IAED,aAAa,GAAA;QACT,IAAI,KAAK,GAAoB,IAAI,CAAC,KAAK,CAAE,IAAI,CAAC,SAAS,CAAE;YACrD,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,aAAa,EAAE,IAAI,CAAC,aAAa;AACpC,SAAA,CAAE,CAAE,CAAA;QAEL,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAmB,IAAI,CAAC,WAAW,EAAE,KAAK,CAAE,CAAA;KACjF;+GArKQ,WAAW,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAAX,WAAW,EAAA,OAAA,EAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;4FAAX,WAAW,EAAA,UAAA,EAAA,CAAA;kBADvB,SAAS;wDAEI,eAAe,EAAA,CAAA;sBAAxB,MAAM;;SAuKK,WAAW,CAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAA;AACvD,IAAA,IAAK,QAAQ,IAAI,QAAQ,EAAG;QACxB,IAAI,SAAS,GAAG,IAAI,CAAC,IAAI,CAAE,QAAQ,GAAG,QAAQ,CAAE,CAAA;AAEhD,QAAA,IAAI,KAAK,GAAG,CAAE,IAAI,CAAC,GAAG,CAAE,SAAS,EAAE,UAAU,CAAE,GAAG,CAAC,IAAK,QAAQ,GAAG,CAAC,CAAA;AACpE,QAAA,IAAI,IAAI,GAAG,IAAI,CAAC,GAAG,CAAE,KAAK,GAAG,QAAQ,GAAG,CAAC,EAAE,QAAQ,CAAE,CAAA;QAErD,OAAO,CAAE,CAAY,QAAA,EAAA,KAAM,CAAQ,IAAA,EAAA,IAAK,CAAQ,IAAA,EAAA,QAAS,CAAE,CAAA,EAAE,IAAI,CAAE,CAAA;KACtE;SACI;AACD,QAAA,OAAO,CAAE,wBAAwB,EAAE,KAAK,CAAE,CAAA;KAC7C;AACL;;MC9La,uBAAuB,CAAA;+GAAvB,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAvB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,uBAAuB,6DCXpC,6BACA,EAAA,MAAA,EAAA,CAAA,i9BAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FDUa,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBANnC,SAAS;+BACI,uBAAuB,EAAA,eAAA,EAGhB,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,6BAAA,EAAA,MAAA,EAAA,CAAA,i9BAAA,CAAA,EAAA,CAAA;;;MEEtC,sBAAsB,CAAA;+GAAtB,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,sBAAsB,4DCXnC,6BACA,EAAA,MAAA,EAAA,CAAA,w8DAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FDUa,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBANlC,SAAS;+BACI,sBAAsB,EAAA,eAAA,EAGf,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,6BAAA,EAAA,MAAA,EAAA,CAAA,w8DAAA,CAAA,EAAA,CAAA;;;MEiBtC,0BAA0B,CAAA;AAXvC,IAAA,WAAA,GAAA;QAYa,IAAY,CAAA,YAAA,GAAG,GAAG,CAAA;AAClB,QAAA,IAAA,CAAA,eAAe,GAAG;AACvB,YAAA,EAAE,IAAI,EAAE,CAAC,EAAI,WAAW,EAAE,QAAQ,EAAE;AACpC,YAAA,EAAE,IAAI,EAAE,EAAE,EAAG,WAAW,EAAE,SAAS,EAAE;AACrC,YAAA,EAAE,IAAI,EAAE,EAAE,EAAG,WAAW,EAAE,SAAS,EAAE;AACrC,YAAA,EAAE,IAAI,EAAE,EAAE,EAAG,WAAW,EAAE,SAAS,EAAE;AACrC,YAAA,EAAE,IAAI,EAAE,GAAG,EAAE,WAAW,EAAE,UAAU,EAAE;SACzC,CAAA;QACQ,IAAQ,CAAA,QAAA,GAAG,EAAE,CAAA;QAGb,IAAY,CAAA,YAAA,GAAG,IAAI,CAAA;QACnB,IAAa,CAAA,aAAA,GAAG,wBAAwB,CAAA;AAEvC,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,YAAY,EAAU,CAAC;AAC5C,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,YAAY,EAAU,CAAC;QAExD,IAAc,CAAA,cAAA,GAA2B,YAAY,CAAA;QACrD,IAAiB,CAAA,iBAAA,GAAG,CAAC,CAAA;AAErB,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAE,UAAU,CAAE,CAAA;AACjC,QAAA,IAAA,CAAA,iBAAiB,GAAG,MAAM,CAAE,iBAAiB,CAAE,CAAA;AA8DlD,KAAA;IA5DG,eAAe,GAAA;QACX,IAAI,CAAC,UAAU,EAAE,CAAA;KACpB;AAED,IAAA,gBAAgB,CAAE,EAAE,EAAA;QAChB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAE,MAAM,CAAE,EAAE,CAAE,CAAE,CAAA;KAC3C;AAED,IAAA,kBAAkB,CAAE,EAAE,EAAA;QAClB,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAE,MAAM,CAAE,EAAE,CAAE,CAAE,CAAA;KAC7C;AAGD,IAAA,QAAQ,CAAC,KAAK,EAAA;QACV,IAAI,CAAC,UAAU,EAAE,CAAA;KACpB;IAED,UAAU,GAAA;QACN,UAAU,CAAE,MAAK;YACb,IAAI,CAAC,GAAG,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,WAAW,CAAA;AAClD,YAAA,IAAK,CAAC,CAAC;gBAAG,OAAM;YAEhB,QAAS,IAAI;gBACT,KAAK,CAAC,GAAG,GAAG;AACR,oBAAA,IAAI,CAAC,cAAc,GAAG,YAAY,CAAA;AAClC,oBAAA,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAA;oBAC1B,MAAK;gBAET,KAAK,CAAC,GAAG,GAAG;AACR,oBAAA,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC;AAC9B,oBAAA,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAA;oBAC1B,MAAK;AAET,gBAAA;AACI,oBAAA,IAAI,CAAC,cAAc,GAAG,aAAa,CAAA;AACnC,oBAAA,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAA;aACjC;AAED,YAAA,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAA;AAC1C,SAAC,CAAE,CAAA;KACN;AAED,IAAA,IAAI,SAAS,GAAA;QACT,IAAK,CAAC,IAAI,CAAC,OAAO;AAAG,YAAA,OAAO,CAAC,CAAA;AAC7B,QAAA,OAAO,IAAI,CAAC,IAAI,CAAE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAE,CAAA;KACpD;AAED,IAAA,IAAI,QAAQ,GAAA;QACR,IAAK,CAAC,IAAI,CAAC,OAAO;AAAG,YAAA,OAAO,CAAC,CAAA;QAC7B,OAAO,CAAE,IAAI,CAAC,GAAG,CAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,UAAU,CAAE,GAAG,CAAC,IAAK,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAA;KACjF;AAED,IAAA,IAAI,OAAO,GAAA;QACP,IAAK,CAAC,IAAI,CAAC,OAAO;AAAG,YAAA,OAAO,CAAC,CAAA;AAC7B,QAAA,OAAO,IAAI,CAAC,GAAG,CAAE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,GAAG,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAE,CAAA;KACtE;AAED,IAAA,IAAI,OAAO,GAAA;QACP,OAAO,IAAI,CAAC,QAAQ,CAAA;KACvB;+GAnFQ,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA1B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,0BAA0B,imBC1BvC,omCAsCA,EAAA,MAAA,EAAA,CAAA,w8FAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAZ,GAAA,CAAA,2BAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,IAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,YAAA,EAAA,eAAA,EAAA,WAAA,EAAA,6BAAA,EAAA,uBAAA,EAAA,0BAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,sBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAa,wBAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,qBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,aAAA,EAAA,MAAA,EAAA,SAAA,EAAA,OAAA,EAAA,WAAA,EAAA,UAAA,EAAA,SAAA,EAAA,OAAA,EAAA,QAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FDZa,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBAXtC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,0BAA0B,EAGnB,eAAA,EAAA,uBAAuB,CAAC,MAAM,EACzC,IAAA,EAAA;AACF,wBAAA,0BAA0B,EAAE,gCAAgC;AAC5D,wBAAA,qBAAqB,EAAE,2BAA2B;AAClD,wBAAA,2BAA2B,EAAE,iCAAiC;AACjE,qBAAA,EAAA,QAAA,EAAA,omCAAA,EAAA,MAAA,EAAA,CAAA,w8FAAA,CAAA,EAAA,CAAA;8BAGQ,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,eAAe,EAAA,CAAA;sBAAvB,KAAK;gBAOG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBAEI,cAAc,EAAA,CAAA;sBAAvB,MAAM;gBACG,gBAAgB,EAAA,CAAA;sBAAzB,MAAM;gBAqBP,QAAQ,EAAA,CAAA;sBADP,YAAY;uBAAC,eAAe,EAAE,CAAC,QAAQ,CAAC,CAAA;;;AEzBvC,MAAO,wBAAyB,SAAQ,WAAmC,CAAA;AANjF,IAAA,WAAA,GAAA;;QAQa,IAAS,CAAA,SAAA,GAAG,IAAI,CAAA;QAChB,IAAW,CAAA,WAAA,GAAG,IAAI,CAAA;QAE3B,IAAY,CAAA,YAAA,GAAG,YAAY,CAAA;AAC3B,QAAA,IAAA,CAAA,OAAO,GAAG,CAAE,oBAAoB,EAAE,UAAU,EAAE,sBAAsB,EAAE,YAAY,EAAE,mBAAmB,EAAE,aAAa,CAAE,CAAA;AAsD3H,KAAA;IApDG,iBAAiB,GAAA;QACb,KAAK,CAAC,iBAAiB,EAAE,CAAA;KAC5B;AAED,IAAA,IAAI,gBAAgB,GAAA;QAChB,OAAO;AACH,YAAA,MAAM,EAAE,EAAE;AACV,YAAA,QAAQ,EAAE,CAAC;AACX,YAAA,UAAU,EAAE,CAAC;AACb,YAAA,UAAU,EAAE,IAAI;AAChB,YAAA,aAAa,EAAE,MAAM;SACxB,CAAA;KACJ;IAED,eAAe,GAAA;QACX,IAAK,IAAI,CAAC,WAAW;AACjB,YAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAE,UAAU,CAAE,CAAA;QAEnC,IAAK,IAAI,CAAC,SAAS;AACf,YAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAE,QAAQ,CAAE,CAAA;QAEjC,KAAK,CAAC,eAAe,EAAE,CAAA;KAC1B;IAED,gBAAgB,GAAA;AACZ,QAAA,IAAK,CAAC,IAAI,CAAC,eAAe,EAAE,gBAAgB;AAAG,YAAA,MAAM,KAAK,CAAE,aAAa,CAAE,CAAA;AAE3E,QAAA,OAAO,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC;YACzC,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,YAAY,EAAE,IAAI,CAAC,QAAQ;YAC3B,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,aAAa,EAAE,IAAI,CAAC,aAAa;AACpC,SAAA,CAAC,CAAA;KACL;AAED,IAAA,kBAAkB,CAAE,GAAQ,EAAA;AACxB,QAAA,IAAK,CAAC,IAAI,CAAC,eAAe,EAAE,kBAAkB;AAAG,YAAA,MAAM,KAAK,CAAE,aAAa,CAAE,CAAA;QAE7E,OAAO,IAAI,CAAC,eAAe,CAAC,kBAAkB,CAAE,GAAG,CAAE,CAAA;KACxD;AAED,IAAA,eAAe,CAAE,IAAyB,EAAA;AACtC,QAAA,IAAK,CAAC,IAAI,CAAC,eAAe,EAAE,YAAY;AAAG,YAAA,MAAM,KAAK,CAAE,aAAa,CAAE,CAAA;QAEvE,OAAO,IAAI,CAAC,eAAe,CAAC,YAAY,CAAE,IAAI,CAAE,CAAA;KACnD;AAED,IAAA,aAAa,CAAE,IAAyB,EAAA;AACpC,QAAA,IAAK,CAAC,IAAI,CAAC,eAAe,EAAE,UAAU;AAAG,YAAA,MAAM,KAAK,CAAE,aAAa,CAAE,CAAA;QAErE,OAAO,IAAI,CAAC,eAAe,CAAC,UAAU,CAAE,IAAI,CAAE,CAAA;KACjD;+GA3DQ,wBAAwB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAxB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,wBAAwB,wLCrCrC,qiQA+KA,EAAA,MAAA,EAAA,CAAA,suBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAd,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,YAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,cAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,YAAA,EAAA,QAAA,EAAA,kDAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAI,IAAA,CAAA,QAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,uBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,sCAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,YAAA,EAAA,QAAA,EAAA,oCAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,MAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,YAAA,EAAA,QAAA,EAAA,2BAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAS,eAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,WAAA,EAAA,aAAA,EAAA,SAAA,EAAA,SAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,oBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,YAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,uBAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,sBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,0BAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,CAAA,cAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,YAAA,EAAA,UAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,gBAAA,EAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,oBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,mBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,mBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,GAAA,CAAA,YAAA,EAAA,IAAA,EAAA,UAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FD1Ia,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBANpC,SAAS;+BACI,uBAAuB,EAAA,eAAA,EAGhB,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,qiQAAA,EAAA,MAAA,EAAA,CAAA,suBAAA,CAAA,EAAA,CAAA;8BAGtC,eAAe,EAAA,CAAA;sBAAvB,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;;;AERJ,MAAO,yBAA0B,SAAQ,WAAoC,CAAA;AANnF,IAAA,WAAA,GAAA;;QAQa,IAAS,CAAA,SAAA,GAAG,IAAI,CAAA;QAChB,IAAc,CAAA,cAAA,GAAG,KAAK,CAAA;QACtB,IAAU,CAAA,UAAA,GAAY,KAAK,CAAA;QAEpC,IAAY,CAAA,YAAA,GAAG,YAAY,CAAA;AAC3B,QAAA,IAAA,CAAA,OAAO,GAAG,CAAE,UAAU,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,CAAE,CAAA;AA+BtE,KAAA;IA7BG,gBAAgB,GAAA;AACZ,QAAA,IAAK,CAAC,IAAI,CAAC,eAAe,EAAE,iBAAiB;AAAG,YAAA,MAAM,KAAK,CAAE,aAAa,CAAE,CAAA;AAE5E,QAAA,OAAO,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAE;YAC3C,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,YAAY,EAAE,IAAI,CAAC,QAAQ;YAC3B,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,aAAa,EAAE,IAAI,CAAC,aAAa;AACpC,SAAA,CAAE,CAAA;KACN;AAED,IAAA,kBAAkB,CAAE,GAAQ,EAAA;AACxB,QAAA,IAAK,CAAC,IAAI,CAAC,eAAe,EAAE,kBAAkB;AAAG,YAAA,MAAM,KAAK,CAAE,aAAa,CAAE,CAAA;QAE7E,OAAO,IAAI,CAAC,eAAe,CAAC,kBAAkB,CAAE,GAAG,CAAE,CAAA;KACxD;AAED,IAAA,IAAI,gBAAgB,GAAA;QAChB,OAAO;AACH,YAAA,MAAM,EAAE,EAAE;AACV,YAAA,QAAQ,EAAE,EAAE;AACZ,YAAA,UAAU,EAAE,CAAC;AACb,YAAA,UAAU,EAAE,UAAU;AACtB,YAAA,aAAa,EAAE,MAAM;SACxB,CAAA;KACJ;+GAnCQ,yBAAyB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAzB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,yBAAyB,0NChCtC,ojLA8HA,EAAA,MAAA,EAAA,CAAA,6YAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAvB,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,YAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,cAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,YAAA,EAAA,QAAA,EAAA,kDAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAI,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,qBAAA,EAAA,iBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,eAAA,EAAA,OAAA,EAAA,UAAA,EAAA,uBAAA,EAAA,cAAA,CAAA,EAAA,QAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAkB,IAAA,CAAA,QAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,uBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,sCAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,YAAA,EAAA,QAAA,EAAA,oCAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,MAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAR,oBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,YAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,uBAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,sBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,0BAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,CAAA,cAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,YAAA,EAAA,UAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,gBAAA,EAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,oBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,mBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,mBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,GAAA,CAAA,YAAA,EAAA,IAAA,EAAA,UAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FD9Fa,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBANrC,SAAS;+BACI,yBAAyB,EAAA,eAAA,EAGlB,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,ojLAAA,EAAA,MAAA,EAAA,CAAA,6YAAA,CAAA,EAAA,CAAA;8BAGtC,eAAe,EAAA,CAAA;sBAAvB,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;;;MEzBG,sBAAsB,CAAA;+GAAtB,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,sBAAsB,2DCXnC,6BACA,EAAA,MAAA,EAAA,CAAA,uKAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FDUa,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBANlC,SAAS;+BACI,qBAAqB,EAAA,eAAA,EAGd,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,6BAAA,EAAA,MAAA,EAAA,CAAA,uKAAA,CAAA,EAAA,CAAA;;;MEMtC,mBAAmB,CAAA;AAThC,IAAA,WAAA,GAAA;QAUa,IAAS,CAAA,SAAA,GAAG,KAAK,CAAA;AAC7B,KAAA;+GAFY,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,mBAAmB,sJCfhC,gSAUA,EAAA,MAAA,EAAA,CAAA,0oBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAvB,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,mCAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,OAAA,EAAA,UAAA,EAAA,aAAA,CAAA,EAAA,QAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FDKa,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAT/B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,kBAAkB,EAGX,eAAA,EAAA,uBAAuB,CAAC,MAAM,EACzC,IAAA,EAAA;AACF,wBAAA,mBAAmB,EAAE,WAAW;AACnC,qBAAA,EAAA,QAAA,EAAA,gSAAA,EAAA,MAAA,EAAA,CAAA,0oBAAA,CAAA,EAAA,CAAA;8BAGQ,SAAS,EAAA,CAAA;sBAAjB,KAAK;;;AEdJ,SAAU,eAAe,CAAE,GAAG,EAAA;AAChC,IAAA,IAAK,CAAC,GAAG;AAAG,QAAA,OAAO,EAAE,CAAA;AACrB,IAAA,IAAK,KAAK,CAAC,OAAO,CAAE,GAAG,CAAE;AAAG,QAAA,OAAO,GAAG,CAAA;IACtC,OAAO,CAAE,GAAG,CAAE,CAAA;AAClB,CAAC;AAEK,SAAU,iBAAiB,CAAE,GAAG,EAAA;AAClC,IAAA,IAAK,CAAC,GAAG;AAAG,QAAA,OAAO,EAAE,CAAA;AACrB,IAAA,IAAK,KAAK,CAAC,OAAO,CAAE,GAAG,CAAE;AAAG,QAAA,OAAO,GAAG,CAAE,CAAC,CAAE,IAAI,EAAE,CAAA;AACjD,IAAA,OAAO,GAAG,CAAA;AACd,CAAC;SAEe,oBAAoB,CAAE,IAAgB,EAAE,SAAiB,EAAE,gBAAwB,EAAA;AAC/F,IAAA,IAAK,CAAC,IAAI;AAAG,QAAA,OAAO,IAAI,CAAA;AACxB,IAAA,OAAO,IAAI,CAAC,GAAG,CAAE,CAAC,IAAG;QACjB,OAAO;AACH,YAAA,IAAI,EAAE,CAAC,CAAE,SAAS,CAAE;AACpB,YAAA,WAAW,EAAE,CAAC,CAAE,gBAAgB,CAAE;SACrC,CAAA;AACL,KAAC,CAAE,CAAA;AACP;;MCPa,uBAAuB,CAAA;AALpC,IAAA,WAAA,GAAA;QAOa,IAAiB,CAAA,iBAAA,GAAsB,EAAE,CAAA;QACzC,IAAa,CAAA,aAAA,GAAkB,KAAK,CAAA;AAEnC,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,YAAY,EAAQ,CAAC;QAEhD,IAAe,CAAA,eAAA,GAAG,eAAe,CAAA;QACjC,IAAiB,CAAA,iBAAA,GAAG,iBAAiB,CAAA;AAiBxC,KAAA;AAfG,IAAA,kBAAkB,CAAE,EAAE,EAAA;AAClB,QAAA,IAAI,CAAC,UAAU,GAAG,EAAE,CAAA;QACpB,IAAI,CAAC,cAAc,EAAE,CAAA;KACxB;IAED,qBAAqB,GAAA;QACjB,IAAI,CAAC,cAAc,EAAE,CAAA;KACxB;IAED,cAAc,GAAA;AACV,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAE;YAClB,MAAM,EAAE,IAAI,CAAC,UAAU;YACvB,SAAS,EAAE,IAAI,CAAC,aAAa;AAChC,SAAA,CAAE,CAAA;KACN;+GAxBQ,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAvB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,uBAAuB,kNCfpC,4vBAoBA,EAAA,MAAA,EAAA,CAAA,uTAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,eAAA,EAAA,OAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,qBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,CAAA,EAAA,QAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,cAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,IAAA,EAAA,MAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,SAAA,EAAA,OAAA,EAAA,eAAA,EAAA,UAAA,EAAA,UAAA,EAAA,OAAA,EAAA,qBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,CAAA,EAAA,QAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAuB,wBAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,qBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,aAAA,EAAA,MAAA,EAAA,SAAA,EAAA,OAAA,EAAA,WAAA,EAAA,UAAA,EAAA,SAAA,EAAA,OAAA,EAAA,QAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDLa,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBALnC,SAAS;+BACI,uBAAuB,EAAA,QAAA,EAAA,4vBAAA,EAAA,MAAA,EAAA,CAAA,uTAAA,CAAA,EAAA,CAAA;8BAKxB,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,iBAAiB,EAAA,CAAA;sBAAzB,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBAEI,UAAU,EAAA,CAAA;sBAAnB,MAAM;;;MEFE,iBAAiB,CAAA;IAC1B,WACW,CAAA,WAA8C,EAClB,MAAsB,EAAA;QADlD,IAAW,CAAA,WAAA,GAAX,WAAW,CAAmC;QAClB,IAAM,CAAA,MAAA,GAAN,MAAM,CAAgB;KACxD;AAEL,IAAA,IAAI,SAAS,GAAA;AACT,QAAA,OAAO,gBAAgB,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAA;KAC7C;AARQ,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,kDAGd,kBAAkB,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAHrB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,iBAAiB,qGClB9B,2kBAwBA,EAAA,MAAA,EAAA,CAAA,y1DAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,aAAA,EAAA,QAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDNa,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAR7B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,eAAe,EAGnB,IAAA,EAAA;AACF,wBAAA,SAAS,EAAE,WAAW;AACzB,qBAAA,EAAA,QAAA,EAAA,2kBAAA,EAAA,MAAA,EAAA,CAAA,y1DAAA,CAAA,EAAA,CAAA;;0BAKI,MAAM;2BAAC,kBAAkB,CAAA;;;MEdrB,mBAAmB,CAAA;AAHhC,IAAA,WAAA,GAAA;AAII,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAE,WAAW,CAAE,CAAA;AAyEnC,KAAA;AAvEG,IAAA,UAAU,CAAE,OAAe,EAAE,QAAQ,GAAG,IAAI,EAAA;AACxC,QAAA,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAC3B,iBAAiB,EACjB;AACI,YAAA,QAAQ,EAAE,QAAQ;AAClB,YAAA,IAAI,EAAE;AACF,gBAAA,IAAI,EAAE,SAAS;AACf,gBAAA,OAAO,EAAE,OAAO;AACnB,aAAA;AACJ,SAAA,CACJ,CAAA;KACJ;AAED,IAAA,iBAAiB,CAAE,OAAe,EAAE,QAAQ,GAAG,IAAI,EAAA;QAC/C,IAAI,CAAC,UAAU,CAAE,CAAA,EAAI,OAAQ,CAAsB,oBAAA,CAAA,EAAE,QAAQ,CAAE,CAAA;KAClE;AAED,IAAA,mBAAmB,CAAE,OAAe,EAAE,QAAQ,GAAG,IAAI,EAAA;QACjD,IAAI,CAAC,UAAU,CAAE,CAAA,EAAI,OAAQ,CAAwB,sBAAA,CAAA,EAAE,QAAQ,CAAE,CAAA;KACpE;AAED,IAAA,mBAAmB,CAAE,OAAe,EAAE,QAAQ,GAAG,IAAI,EAAA;QACjD,IAAI,CAAC,UAAU,CAAE,CAAA,EAAI,OAAQ,CAAwB,sBAAA,CAAA,EAAE,QAAQ,CAAE,CAAA;KACpE;AAED,IAAA,mBAAmB,CAAE,OAAe,EAAE,QAAQ,GAAG,IAAI,EAAA;QACjD,IAAI,CAAC,UAAU,CAAE,CAAA,EAAI,OAAQ,CAAwB,sBAAA,CAAA,EAAE,QAAQ,CAAE,CAAA;KACpE;AAED,IAAA,iBAAiB,CAAE,OAAe,EAAE,QAAQ,GAAG,IAAI,EAAA;QAC/C,IAAI,CAAC,UAAU,CAAE,CAAA,EAAI,OAAQ,CAAsB,oBAAA,CAAA,EAAE,QAAQ,CAAE,CAAA;KAClE;AAED,IAAA,WAAW,CAAE,OAAe,EAAE,QAAQ,GAAG,IAAI,EAAA;AACzC,QAAA,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAC3B,iBAAiB,EACjB;AACI,YAAA,QAAQ,EAAE,QAAQ;AAClB,YAAA,IAAI,EAAE;AACF,gBAAA,IAAI,EAAE,MAAM;AACZ,gBAAA,OAAO,EAAE,OAAO;AACnB,aAAA;AACJ,SAAA,CACJ,CAAA;KACJ;AAED,IAAA,KAAK,CAAE,OAAe,EAAE,QAAQ,GAAG,IAAI,EAAA;AACnC,QAAA,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAC3B,iBAAiB,EACjB;AACI,YAAA,QAAQ,EAAE,QAAQ;AAClB,YAAA,IAAI,EAAE;AACF,gBAAA,IAAI,EAAE,OAAO;AACb,gBAAA,OAAO,EAAE,OAAO;AACnB,aAAA;AACJ,SAAA,CACJ,CAAA;KACJ;AAED,IAAA,OAAO,CAAE,OAAe,EAAE,QAAQ,GAAG,IAAI,EAAA;AACrC,QAAA,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAC3B,iBAAiB,EACjB;AACI,YAAA,QAAQ,EAAE,QAAQ;AAClB,YAAA,IAAI,EAAE;AACF,gBAAA,IAAI,EAAE,QAAQ;AACd,gBAAA,OAAO,EAAE,OAAO;AACnB,aAAA;AACJ,SAAA,CACJ,CAAA;KACJ;+GAzEQ,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,cAFhB,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAET,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAH/B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,UAAU,EAAE,MAAM;AACrB,iBAAA,CAAA;;;MCDY,SAAS,CAAA;AAClB,IAAA,WAAA;;AAEY,IAAA,MAA6B,EAC7B,OAA0C,EAAA;QAD1C,IAAM,CAAA,MAAA,GAAN,MAAM,CAAuB;QAC7B,IAAO,CAAA,OAAA,GAAP,OAAO,CAAmC;KAClD;AAEJ,IAAA,IAAI,KAAK,GAAA;QACL,OAAO,IAAI,CAAC,MAAM,CAAA;KACrB;AAED,IAAA,OAAO,CAAE,IAAY,EAAA;AACjB,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAE,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,IAAI,CAAE,CAAA;KACjD;IAED,MAAM,GAAA;QACF,IAAK,CAAC,IAAI,CAAC,OAAO;AAAG,YAAA,OAAO,OAAO,CAAC,MAAM,CAAE,mBAAmB,CAAE,CAAA;QAEjE,OAAO,IAAI,CAAC,OAAO,EAAE;aAChB,IAAI,CAAE,GAAG,IAAG;AACT,YAAA,IAAI,CAAC,MAAM,GAAG,GAAG,CAAA;AACrB,SAAC,CAAE,CAAA;KACV;AACJ;;MC+GY,uBAAuB,CAAA;IAChC,WACY,CAAA,eAAgC,EAChC,YAA0B,EAAA;QAD1B,IAAe,CAAA,eAAA,GAAf,eAAe,CAAiB;QAChC,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAc;AAElC,QAAA,IAAI,CAAC,eAAe,CAAC,UAAU,CAC3B,eAAe,EACf,IAAI,CAAC,YAAY,CAAC,8BAA8B,CAAC,oCAAoC,CAAC,CACzF,CAAC;KAEL;+GAVQ,uBAAuB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,eAAA,EAAA,EAAA,EAAA,KAAA,EAAAzB,IAAA,CAAA,YAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAvB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,uBAAuB,iBA9D5B,eAAe;YACf,oBAAoB;YACpB,uBAAuB;YACvB,6BAA6B;YAC7B,6BAA6B;YAC7B,wBAAwB;YACxB,mBAAmB;YACnB,qBAAqB;YACrB,qBAAqB;YACrB,qBAAqB;YACrB,kBAAkB;YAClB,mBAAmB;YACnB,YAAY;YACZ,wBAAwB;YACxB,yBAAyB;YACzB,sBAAsB;YACtB,mBAAmB;YACnB,uBAAuB;YACvB,sBAAsB;YACtB,0BAA0B;YAC1B,uBAAuB;YACvB,iBAAiB;YACjB,oBAAoB;YACpB,mBAAmB;YACnB,mBAAmB;AACnB,YAAA,aAAa,aAlDb,uBAAuB;YACvB,YAAY;YACZ,WAAW;YACX,eAAe;YACf,aAAa;YACb,iBAAiB;YACjB,kBAAkB;YAClB,cAAc;YACd,kBAAkB;YAClB,aAAa;YACb,cAAc;YACd,aAAa;YACb,aAAa;YACb,wBAAwB;YACxB,eAAe;YACf,aAAa;YACb,cAAc;YACd,gBAAgB;YAChB,mBAAmB;YACnB,YAAY;YACZ,iBAAiB;YACjB,uBAAuB;AACvB,YAAA,mBAAmB,aA+BnB,eAAe;YACf,oBAAoB;YACpB,uBAAuB;YACvB,6BAA6B;YAC7B,6BAA6B;YAC7B,wBAAwB;YACxB,mBAAmB;YACnB,qBAAqB;YACrB,qBAAqB;YACrB,qBAAqB;YACrB,kBAAkB;YAClB,mBAAmB;YACnB,YAAY;YACZ,wBAAwB;YACxB,yBAAyB;YACzB,sBAAsB;YACtB,mBAAmB;YACnB,uBAAuB;YACvB,sBAAsB;YACtB,0BAA0B;YAC1B,uBAAuB;YACvB,iBAAiB;YACjB,oBAAoB;YACpB,mBAAmB;YACnB,mBAAmB;YACnB,aAAa,CAAA,EAAA,CAAA,CAAA,EAAA;AASR,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,uBAAuB,EAPrB,SAAA,EAAA;YACP,mBAAmB;YACnB,oBAAoB;YACpB,gBAAgB;AAChB,YAAA,EAAE,OAAO,EAAE,qBAAqB,EAAE,QAAQ,EAAE,YAAY,EAAE;AAC7D,SAAA,EAAA,OAAA,EAAA,CArFG,uBAAuB;YACvB,YAAY;YACZ,WAAW;YACX,eAAe;YACf,aAAa;YACb,iBAAiB;YACjB,kBAAkB;YAClB,cAAc;YACd,kBAAkB;YAClB,aAAa;YACb,cAAc;YACd,aAAa;YACb,aAAa;YACb,wBAAwB;YACxB,eAAe;YACf,aAAa;YACb,cAAc;YACd,gBAAgB;YAChB,mBAAmB;YACnB,YAAY;YACZ,iBAAiB;YACjB,uBAAuB;YACvB,mBAAmB,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAiEd,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAzFnC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACN,oBAAA,OAAO,EAAE;wBACL,uBAAuB;wBACvB,YAAY;wBACZ,WAAW;wBACX,eAAe;wBACf,aAAa;wBACb,iBAAiB;wBACjB,kBAAkB;wBAClB,cAAc;wBACd,kBAAkB;wBAClB,aAAa;wBACb,cAAc;wBACd,aAAa;wBACb,aAAa;wBACb,wBAAwB;wBACxB,eAAe;wBACf,aAAa;wBACb,cAAc;wBACd,gBAAgB;wBAChB,mBAAmB;wBACnB,YAAY;wBACZ,iBAAiB;wBACjB,uBAAuB;wBACvB,mBAAmB;AACtB,qBAAA;AACD,oBAAA,YAAY,EAAE;wBACV,eAAe;wBACf,oBAAoB;wBACpB,uBAAuB;wBACvB,6BAA6B;wBAC7B,6BAA6B;wBAC7B,wBAAwB;wBACxB,mBAAmB;wBACnB,qBAAqB;wBACrB,qBAAqB;wBACrB,qBAAqB;wBACrB,kBAAkB;wBAClB,mBAAmB;wBACnB,YAAY;wBACZ,wBAAwB;wBACxB,yBAAyB;wBACzB,sBAAsB;wBACtB,mBAAmB;wBACnB,uBAAuB;wBACvB,sBAAsB;wBACtB,0BAA0B;wBAC1B,uBAAuB;wBACvB,iBAAiB;wBACjB,oBAAoB;wBACpB,mBAAmB;wBACnB,mBAAmB;wBACnB,aAAa;AAChB,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACL,eAAe;wBACf,oBAAoB;wBACpB,uBAAuB;wBACvB,6BAA6B;wBAC7B,6BAA6B;wBAC7B,wBAAwB;wBACxB,mBAAmB;wBACnB,qBAAqB;wBACrB,qBAAqB;wBACrB,qBAAqB;wBACrB,kBAAkB;wBAClB,mBAAmB;wBACnB,YAAY;wBACZ,wBAAwB;wBACxB,yBAAyB;wBACzB,sBAAsB;wBACtB,mBAAmB;wBACnB,uBAAuB;wBACvB,sBAAsB;wBACtB,0BAA0B;wBAC1B,uBAAuB;wBACvB,iBAAiB;wBACjB,oBAAoB;wBACpB,mBAAmB;wBACnB,mBAAmB;wBACnB,aAAa;AAChB,qBAAA;AACD,oBAAA,SAAS,EAAE;wBACP,mBAAmB;wBACnB,oBAAoB;wBACpB,gBAAgB;AAChB,wBAAA,EAAE,OAAO,EAAE,qBAAqB,EAAE,QAAQ,EAAE,YAAY,EAAE;AAC7D,qBAAA;AACJ,iBAAA,CAAA;;;AC1ID;;AAEG;;ACFH;;AAEG;;;;"}
|
|
1
|
+
{"version":3,"file":"bcgov-nr-ngx-component-lib.mjs","sources":["../../../projects/nr-ngx-component-lib/src/services/configuration.service.ts","../../../projects/nr-ngx-component-lib/src/directives/nrcl.base.ts","../../../projects/nr-ngx-component-lib/src/directives/configuration-subscriber.base.ts","../../../projects/nr-ngx-component-lib/src/components/icon/icon.component.ts","../../../projects/nr-ngx-component-lib/src/components/icon/icon.component.html","../../../projects/nr-ngx-component-lib/src/components/button/button.component.ts","../../../projects/nr-ngx-component-lib/src/components/button/button.component.html","../../../projects/nr-ngx-component-lib/src/components/cell-content/cell-content.component.ts","../../../projects/nr-ngx-component-lib/src/components/cell-content/cell-content.component.html","../../../projects/nr-ngx-component-lib/src/components/device-view/device-view.component.ts","../../../projects/nr-ngx-component-lib/src/components/expansion-panel/expansion-panel.component.ts","../../../projects/nr-ngx-component-lib/src/components/expansion-panel/expansion-panel.component.html","../../../projects/nr-ngx-component-lib/src/components/filter-container/filter-container.component.ts","../../../projects/nr-ngx-component-lib/src/components/filter-container/filter-container.component.html","../../../projects/nr-ngx-component-lib/src/utils/date.util.ts","../../../projects/nr-ngx-component-lib/src/components/filter-date/filter-date.component.ts","../../../projects/nr-ngx-component-lib/src/components/filter-date/filter-date.component.html","../../../projects/nr-ngx-component-lib/src/components/filter-search/filter-search.component.ts","../../../projects/nr-ngx-component-lib/src/components/filter-search/filter-search.component.html","../../../projects/nr-ngx-component-lib/src/components/filter-select/filter-select.component.ts","../../../projects/nr-ngx-component-lib/src/components/filter-select/filter-select.component.html","../../../projects/nr-ngx-component-lib/src/components/filters-panel/filters-panel.component.ts","../../../projects/nr-ngx-component-lib/src/components/filters-panel/filters-panel.component.html","../../../projects/nr-ngx-component-lib/src/components/form-field/form-field.component.ts","../../../projects/nr-ngx-component-lib/src/components/form-layout/form-layout.component.ts","../../../projects/nr-ngx-component-lib/src/components/gap/gap.component.ts","../../../projects/nr-ngx-component-lib/src/services/page-state.service.ts","../../../projects/nr-ngx-component-lib/src/utils/row-list.util.ts","../../../projects/nr-ngx-component-lib/src/directives/row-list.base.ts","../../../projects/nr-ngx-component-lib/src/components/row-list-desktop/row-list-desktop.component.ts","../../../projects/nr-ngx-component-lib/src/components/row-list-desktop/row-list-desktop.component.html","../../../projects/nr-ngx-component-lib/src/components/row-list-mobile/row-list-mobile.component.ts","../../../projects/nr-ngx-component-lib/src/components/row-list-mobile/row-list-mobile.component.html","../../../projects/nr-ngx-component-lib/src/components/row-list-pagination/row-list-pagination.component.ts","../../../projects/nr-ngx-component-lib/src/components/row-list-pagination/row-list-pagination.component.html","../../../projects/nr-ngx-component-lib/src/components/list-attachments/list-attachments.component.ts","../../../projects/nr-ngx-component-lib/src/components/list-attachments/list-attachments.component.html","../../../projects/nr-ngx-component-lib/src/components/list-event-history/list-event-history.component.ts","../../../projects/nr-ngx-component-lib/src/components/list-event-history/list-event-history.component.html","../../../projects/nr-ngx-component-lib/src/components/page-container/page-container.component.ts","../../../projects/nr-ngx-component-lib/src/components/page-container/page-container.component.html","../../../projects/nr-ngx-component-lib/src/components/page-header/page-header.component.ts","../../../projects/nr-ngx-component-lib/src/components/page-header/page-header.component.html","../../../projects/nr-ngx-component-lib/src/utils/filter.util.ts","../../../projects/nr-ngx-component-lib/src/components/row-list-sorting/row-list-sorting.component.ts","../../../projects/nr-ngx-component-lib/src/components/row-list-sorting/row-list-sorting.component.html","../../../projects/nr-ngx-component-lib/src/components/snackbar/snackbar.component.ts","../../../projects/nr-ngx-component-lib/src/components/snackbar/snackbar.component.html","../../../projects/nr-ngx-component-lib/src/services/snackbar-util.service.ts","../../../projects/nr-ngx-component-lib/src/utils/code-table.util.ts","../../../projects/nr-ngx-component-lib/src/nr-ngx-component-lib.module.ts","../../../projects/nr-ngx-component-lib/src/public-api.ts","../../../projects/nr-ngx-component-lib/src/bcgov-nr-ngx-component-lib.ts"],"sourcesContent":["import { Injectable } from \"@angular/core\";\nimport { BehaviorSubject, Observable } from \"rxjs\";\n\nexport type DisplayMode = 'desktop' | 'mobile'\n\nexport type Configuration = {\n displayMode: DisplayMode \n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ConfigurationService {\n private _defaultConfiguration: Configuration = {\n displayMode: 'desktop'\n }\n\n private configSubject = new BehaviorSubject<Configuration>(this._defaultConfiguration);\n \n // Observable that components can subscribe to\n public configurationObservable: Observable<Configuration> = this.configSubject.asObservable();\n\n constructor() {\n this.configurationObservable.subscribe( ( c ) => {\n let el = document.querySelector( 'body' ) as HTMLElement\n el.classList.toggle( 'nrcl-device-desktop', c.displayMode == 'desktop' )\n el.classList.toggle( 'nrcl-device-mobile', c.displayMode == 'mobile' )\n } )\n }\n\n // Get current config value synchronously\n get configuration(): Configuration {\n return this.configSubject.value;\n }\n\n // Update entire config\n update( configuration: Partial<Configuration> ): void {\n this.configSubject.next( {\n ...this.configSubject.value,\n ...configuration\n } )\n }\n}\n","import { Directive, ElementRef, HostBinding, inject, OnInit } from '@angular/core';\n\n@Directive()\nexport class NrclBase implements OnInit {\n @HostBinding( 'class' )\n elementClass: string;\n\n elementRef = inject( ElementRef )\n\n ngOnInit() {\n const tagName = this.elementRef.nativeElement.tagName\n\n this.elementClass = `nrcl ${ tagName.toLowerCase() }`\n }\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Directive,\n inject,\n OnDestroy,\n OnInit\n} from \"@angular/core\";\nimport { Configuration, ConfigurationService } from \"../services/configuration.service\";\nimport { NrclBase } from \"./nrcl.base\";\n\n@Directive()\nexport class ConfigurationSubscriberBase extends NrclBase implements OnInit, OnDestroy { \n configurationSubscription\n configuration: Configuration\n\n configurationService = inject( ConfigurationService )\n changeDetectorRef = inject( ChangeDetectorRef )\n\n ngOnInit(): void {\n super.ngOnInit()\n this.configurationSubscription = this.configurationService.configurationObservable.subscribe( ( c ) => {\n this.configuration = c\n this.onConfigurationChange()\n this.changeDetectorRef.detectChanges()\n } )\n this.configuration = this.configurationService.configuration\n }\n\n ngOnDestroy(): void {\n if ( this.configurationSubscription ) this.configurationSubscription.unsubscribe()\n }\n\n onConfigurationChange() {}\n}\n","import { AfterContentInit, ChangeDetectorRef, Component, ElementRef, inject } from '@angular/core';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\nimport { NrclBase } from '../../directives/nrcl.base';\n\n@Component( {\n selector: 'nrcl-icon',\n templateUrl: './icon.component.html',\n styleUrl: './icon.component.scss',\n host: {\n '[class.show-icon]': '!svg',\n '[class.show-svg]': '!!svg',\n }\n} )\nexport class IconComponent extends NrclBase implements AfterContentInit { \n name: keyof( typeof ICON )\n svg: SafeHtml\n\n elementRef = inject( ElementRef )\n domSanitizer = inject( DomSanitizer ) \n\n ngAfterContentInit(): void {\n this.name = this.elementRef?.nativeElement?.textContent\n if ( ICON[ this.name ] ) this.svg = this.domSanitizer.bypassSecurityTrustHtml( ICON[ this.name ] )\n }\n}\n\nconst ICON = {\n 'clear-filters': `\n <svg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" viewBox=\"0 -7.934265 133.15887 133.15887\" height=\"100%\" width=\"100%\">\n <g transform=\"translate(-34.473864,-66.676034)\">\n <g>\n <g>\n <path d=\"M 94.473677,137.49393 34.473864,66.783005 34.564632,66.676034 H 154.38314 l 0.0907,0.106971 z\" />\n <rect y=\"129.02737\" x=\"88.416046\" height=\"45.357258\" width=\"12.115609\" />\n </g>\n <rect width=\"29.482143\" height=\"76.351196\" x=\"79.73278\" y=\"107.61517\" />\n </g>\n <g transform=\"translate(500.06128,136.57473)\">\n <rect width=\"14.363094\" height=\"49.892857\" x=\"-249.284\" y=\"235.20406\" transform=\"rotate(45)\" />\n <rect width=\"14.363095\" height=\"49.892857\" x=\"-267.59927\" y=\"-266.99539\" transform=\"rotate(-45)\" />\n </g>\n </g>\n </svg>\n `\n}","<mat-icon><ng-content></ng-content></mat-icon>\n<div class=\"svg\" [innerHTML]=\"svg\"></div>\n","import { booleanAttribute, Component, ElementRef, EventEmitter, inject, Input, NgZone, Output } from '@angular/core';\nimport { ConfigurationSubscriberBase } from '../../directives/configuration-subscriber.base';\n\n@Component( {\n selector: 'nrcl-button',\n templateUrl: './button.component.html',\n styleUrl: './button.component.scss',\n host: {\n '[class.primary]': 'primary',\n '[class.outline]': 'outline && !primary',\n '[class.disabled]': 'disabled',\n '[class.compact]': 'isCompact',\n '[class.icon-left]': '!isCompact && icon',\n '[class.icon-right]': '!isCompact && iconRight && label',\n '[class.label]': 'label',\n }\n} )\nexport class ButtonComponent extends ConfigurationSubscriberBase { \n @Input() label\n @Input() icon\n @Input() iconRight\n @Input() iconCompact\n @Input() tooltip\n @Input() compact\n @Input( { transform: booleanAttribute } ) primary = false\n @Input( { transform: booleanAttribute } ) outline = false\n @Input( { transform: booleanAttribute } ) disabled = false\n\n @Output() click = new EventEmitter<PointerEvent>()\n\n isCompact\n\n zone = inject( NgZone )\n\n onClick( ev: PointerEvent ) {\n if ( this.disabled ) return\n\n ev.stopPropagation()\n this.click.emit( ev )\n }\n\n onConfigurationChange(): void {\n // apparently this is needed to ensure that the host binding updates properly\n this.zone.run( () => {\n if ( this.compact == null || this.compact === false ) {\n this.isCompact = false\n }\n else if ( this.compact == '' || this.compact === true ) {\n this.isCompact = true\n }\n else {\n this.isCompact = this.compact == this.configuration.displayMode\n }\n\n this.changeDetectorRef.markForCheck()\n } )\n }\n}\n","<button \n matRipple\n (click)=\"onClick( $event )\"\n [disabled]=\"disabled\"\n [matTooltip]=\"tooltip\"\n>\n @if ( icon || iconRight || iconCompact || label ) {\n @if ( icon && ( !isCompact || !iconCompact ) ) { \n <nrcl-icon class=\"left\">{{ icon }}</nrcl-icon> \n }\n\n @if ( !isCompact && iconRight && label ) { \n <nrcl-icon class=\"right\">{{ iconRight }}</nrcl-icon> \n }\n\n @if ( isCompact && iconCompact ) { \n <nrcl-icon class=\"compact\">{{ iconCompact }}</nrcl-icon> \n }\n\n @if ( label ) {\n <span class=\"label\">{{ label }}</span> \n }\n }\n @else {\n <div class=\"content\">\n <ng-content></ng-content>\n </div>\n }\n</button>\n","import { AfterContentInit, booleanAttribute, ChangeDetectorRef, Component, ElementRef, inject, Input } from '@angular/core';\nimport { NrclBase } from '../../directives/nrcl.base';\n\n@Component( {\n selector: 'nrcl-cell-content',\n templateUrl: './cell-content.component.html',\n styleUrl: './cell-content.component.scss',\n} )\nexport class CellContentComponent extends NrclBase implements AfterContentInit {\n @Input() tooltip\n @Input() content\n \n elementRef = inject( ElementRef )\n changeDetectorRef = inject( ChangeDetectorRef )\n\n tooltipContent\n\n ngAfterContentInit(): void {\n setTimeout( () => {\n if ( this.tooltip == null || this.tooltip === false ) {\n // no tooltip \n }\n else if ( this.tooltip == '' || this.tooltip === true ) {\n this.tooltipContent = this.content || this.elementRef?.nativeElement?.textContent\n }\n else {\n this.tooltipContent = this.tooltip\n }\n \n this.changeDetectorRef.detectChanges()\n } )\n }\n}\n","<div [matTooltip]=\"tooltipContent\" class=\"content\">\n @if ( content ) {\n {{ content }}\n }\n @else {\n <ng-content></ng-content>\n }\n</div>\n","import { ChangeDetectorRef, Component, ContentChild, Directive, HostListener, inject, TemplateRef } from \"@angular/core\";\nimport { ConfigurationSubscriberBase } from \"../../directives/configuration-subscriber.base\";\n\n@Directive({\n selector: \"[desktop-view]\"\n})\nexport class DesktopViewDirective {\n constructor(\n public templateRef: TemplateRef<unknown>\n ) {}\n}\n\n\n@Directive({\n selector: \"[mobile-view]\"\n})\nexport class MobileViewDirective {\n constructor(\n public templateRef: TemplateRef<unknown>\n ) {}\n}\n\n\n@Component({\n selector: \"nrcl-device-view\",\n template: `\n @if ( mobileVisible && mobileContent ) {\n <ng-container [ngTemplateOutlet]=\"mobileContent.templateRef\"></ng-container>\n }\n\n @if ( desktopVisible && desktopContent ) {\n <ng-container [ngTemplateOutlet]=\"desktopContent.templateRef\"></ng-container>\n }\n `,\n styles: [`\n :host:empty {\n display: none;\n }\n `]\n})\nexport class DeviceViewComponent extends ConfigurationSubscriberBase {\n @ContentChild( DesktopViewDirective ) desktopContent!: DesktopViewDirective;\n @ContentChild( MobileViewDirective ) mobileContent!: MobileViewDirective;\n\n changeDetectorRef = inject( ChangeDetectorRef )\n\n get desktopVisible() { return this.configuration.displayMode == 'desktop' }\n get mobileVisible() { return this.configuration.displayMode == 'mobile' }\n}\n\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, ViewChild } from \"@angular/core\";\nimport { MatExpansionPanel } from \"@angular/material/expansion\";\nimport { NrclBase } from \"../../directives/nrcl.base\";\n\n@Component({\n selector: \"nrcl-expansion-panel\",\n templateUrl: \"./expansion-panel.component.html\",\n styleUrl: \"./expansion-panel.component.scss\",\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class.is-loading]': 'isLoading',\n '[class.expanded]': 'matExpansionPanel?.expanded',\n '[class.disabled]': 'disabled',\n }\n})\nexport class ExpansionPanelComponent extends NrclBase {\n @Input() isLoading: boolean = false;\n @Input() disabled = false;\n @Input() expanded = false\n\n @Output() expandedChange = new EventEmitter<boolean>()\n\n @ViewChild( 'panel' ) matExpansionPanel: MatExpansionPanel\n}\n\n@Component({\n selector: \"nrcl-expansion-panel-header\",\n template: `\n <div class=\"left-side\">\n <ng-content select=\"[left-side],h2,h3\"></ng-content>\n </div>\n\n <div class=\"right-side\">\n <ng-content></ng-content>\n </div>\n `,\n styles: [`\n :host {\n display: flex;\n color: #212121;\n width: 100%;\n }\n\n .left-side {\n display: flex;\n flex-direction: column;\n padding: 10px 0; \n align-self: flex-start;\n }\n\n .left-side ::ng-deep h2 {\n font-size: var( --nrcl-font-size-h2);\n font-weight: 200;\n padding: 0;\n margin: 0;\n } \n\n .left-side ::ng-deep h3 {\n font-size: var( --nrcl-font-size-h3 );\n font-weight: 200;\n padding: 0;\n margin: 0;\n } \n\n .right-side {\n flex-grow: 1;\n display: flex;\n justify-content: flex-end;\n align-self: center;\n }\n `],\n})\nexport class ExpansionPanelHeaderComponent extends NrclBase {}\n\n@Component({\n selector: \"nrcl-expansion-panel-footer\",\n template: `\n @if ( showWarning ) {\n <div class=\"warning\">\n <nrcl-icon>warning</nrcl-icon>\n <span>{{ warningMessage }}</span>\n </div>\n }\n\n @if ( cancelEnabled != null ) {\n <nrcl-button\n label=\"Cancel\"\n iconCompact=\"cancel\"\n compact=\"mobile\"\n [disabled]=\"!cancelEnabled\"\n (click)=\"cancelClick.emit( $event )\"\n ></nrcl-button>\n }\n\n @if ( saveEnabled != null ) {\n <nrcl-button primary\n label=\"Save\"\n iconCompact=\"save\"\n compact=\"mobile\"\n [disabled]=\"!saveEnabled\"\n (click)=\"saveClick.emit( $event )\"\n ></nrcl-button>\n }\n\n <ng-content></ng-content>\n `,\n styles: [`\n :host {\n border-top: 1px solid #c6c8cb;\n padding: var(--nrcl-gutter-space);\n background-color: #f2f2f2;\n display: flex;\n gap: 8px;\n justify-content: flex-end;\n }\n\n :host:empty {\n display: none;\n }\n\n .warning {\n display: flex;\n gap: 4px;\n align-items: center;\n }\n\n .warning nrcl-icon {\n color: #FCBA19; \n }\n `],\n})\nexport class ExpansionPanelFooterComponent extends NrclBase {\n @Input() saveEnabled \n @Input() cancelEnabled \n @Input() warningMessage = 'Unsaved Changes'\n @Input() showWarning = false\n\n @Output() saveClick = new EventEmitter<PointerEvent>()\n @Output() cancelClick = new EventEmitter<PointerEvent>()\n}\n","<mat-expansion-panel #panel \n togglePosition=\"before\"\n [expanded]=\"expanded\" \n [disabled]=\"disabled\" \n (opened)=\"expandedChange.emit( true )\" \n (closed)=\"expandedChange.emit( false )\" \n>\n <mat-expansion-panel-header>\n <mat-panel-description>\n <ng-content select=\"nrcl-expansion-panel-header\"></ng-content>\n\n @if ( isLoading ) {\n <mat-spinner class=\"loading\" [diameter]=\"30\"></mat-spinner>\n }\n </mat-panel-description>\n </mat-expansion-panel-header>\n\n <div class=\"body\">\n <ng-content></ng-content>\n </div>\n\n <ng-content select=\"nrcl-expansion-panel-footer\"></ng-content>\n</mat-expansion-panel>","import {\n ChangeDetectionStrategy,\n Component,\n Input\n} from \"@angular/core\";\nimport { NrclBase } from \"../../directives/nrcl.base\";\n\n@Component( {\n selector: \"nrcl-filter-container\",\n templateUrl: \"./filter-container.component.html\",\n styleUrl: \"./filter-container.component.scss\",\n changeDetection: ChangeDetectionStrategy.OnPush,\n} )\nexport class FilterContainerComponent extends NrclBase {\n @Input() label = '[label]'\n @Input() hint\n}\n","<mat-form-field\n floatLabel=\"always\"\n appearance=\"outline\"\n subscriptSizing=\"dynamic\"\n>\n <mat-label>{{ label }}</mat-label>\n\n <input matInput>\n\n <div class=\"content\">\n <ng-content></ng-content>\n </div>\n\n @if ( hint ) {\n <mat-hint>{{ hint }}</mat-hint>\n }\n</mat-form-field>\n","export const DATE_FORMATS = {\n fullPickerInput: \"Y-MM-DD HH:mm\",\n datePickerInput: \"Y-MM-DD\",\n timePickerInput: \"HH:mm\",\n monthYearLabel: \"Y-MM\",\n dateA11yLabel: \"Y-MMM-DD\",\n monthYearA11yLabel: \"YYYY-MMM\",\n simplifiedDate: \"MMM DD\",\n simplifiedMonthDate: \"MM-DD\",\n fullPickerInputWithSlash: \"Y-MM-DD/ HH:mm\",\n API_DATE: \"Y-MM-DD\",\n API_TIMESTAMP: 'Y-MM-DD HH:mm:ss',\n API_TIMESTAMP_WITH_SEP: 'Y-MM-DDTHH:mm:ss'\n};\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n Output\n} from \"@angular/core\";\nimport moment from \"moment\";\nimport { DATE_FORMATS } from \"../../utils/date.util\";\nimport { NrclBase } from \"../../directives/nrcl.base\";\n\n@Component( {\n selector: \"nrcl-filter-date\",\n templateUrl: \"./filter-date.component.html\",\n styleUrl: \"./filter-date.component.scss\",\n changeDetection: ChangeDetectionStrategy.OnPush,\n} )\nexport class FilterDateComponent extends NrclBase {\n @Input() label = '[label]]'\n @Input() placeholder = 'Select...'\n @Input() hint\n @Input() value = moment().format( DATE_FORMATS.datePickerInput )\n\n @Output() valueChange = new EventEmitter<string>();\n\n onDateChange( ev ) {\n if ( !ev ) {\n this.valueChange.emit( null )\n return\n }\n\n let date = ev.format( DATE_FORMATS.datePickerInput )\n this.valueChange.emit( date )\n }\n}\n","<mat-form-field\n floatLabel=\"auto\"\n appearance=\"outline\"\n subscriptSizing=\"dynamic\"\n>\n <mat-label>{{ label }}</mat-label>\n\n <input matInput class=\"search-input\" \n [ngModel]=\"value\" \n (ngModelChange)=\"onDateChange( $event )\"\n [placeholder]=\"placeholder\"\n [owlDateTime]=\"selectedDateDT\" \n maxlength=\"10\" \n appWFDateMask\n >\n\n @if ( hint ) {\n <mat-hint>{{ hint }}</mat-hint>\n }\n\n <button class=\"select-date\"\n [owlDateTimeTrigger]=\"selectedDateDT\" \n aria-label=\"Open Select Date Picker\"\n mat-icon-button\n matSuffix\n >\n <nrcl-icon>event</nrcl-icon>\n </button>\n</mat-form-field>\n\n<owl-date-time #selectedDateDT pickerType=\"calendar\"></owl-date-time>\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n inject,\n Input,\n Output,\n ViewChild\n} from \"@angular/core\";\nimport { NrclBase } from \"../../directives/nrcl.base\";\n\n@Component( {\n selector: \"nrcl-filter-search\",\n templateUrl: \"./filter-search.component.html\",\n styleUrl: \"./filter-search.component.scss\",\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class.has-value]': \"hasValue\"\n }\n} )\nexport class FilterSearchComponent extends NrclBase {\n @Input() label = 'Search'\n @Input() placeholder = 'Search...'\n @Input() hint\n @Input() value: string\n\n @Output() valueChange = new EventEmitter<string>();\n\n @ViewChild( 'input' ) inputEl: ElementRef\n\n hasValue = false\n changeDetectorRef = inject( ChangeDetectorRef )\n\n emitValueChange( val? ) {\n this.hasValue = !!val\n this.valueChange.emit( val )\n }\n\n onInput( ev ) {\n this.value = ev?.target?.value\n this.emitValueChange( ev?.target?.value )\n }\n\n onCancelClick() {\n this.value = null\n this.emitValueChange()\n }\n\n focus() {\n this.inputEl.nativeElement.focus()\n }\n}\n","<mat-form-field\n floatLabel=\"auto\"\n appearance=\"outline\"\n subscriptSizing=\"dynamic\"\n>\n <mat-label>{{ label }}</mat-label>\n\n <input class=\"search-input\" #input\n matInput\n [value]=\"value || ''\"\n (input)=\"onInput( $event )\"\n [placeholder]=\"placeholder\"\n >\n\n @if ( hint ) {\n <mat-hint>{{ hint }}</mat-hint>\n }\n\n @if ( value ) {\n <button class=\"cancel\"\n mat-icon-button\n matSuffix\n (click)=\"onCancelClick($event); $event.stopPropagation()\"\n >\n <nrcl-icon>close</nrcl-icon>\n </button>\n } \n</mat-form-field>\n","import { Overlay, OverlayRef } from \"@angular/cdk/overlay\";\nimport { TemplatePortal } from \"@angular/cdk/portal\";\nimport {\n booleanAttribute,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n inject,\n Input,\n numberAttribute,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n ViewContainerRef\n} from \"@angular/core\";\nimport { FormControl } from \"@angular/forms\";\nimport { MatSelectionListChange } from \"@angular/material/list\";\nimport { fromEvent } from \"rxjs\";\nimport { filter } from \"rxjs/operators\";\nimport { CodeDescription } from \"../../utils/code-table.util\";\nimport { NrclBase } from \"../../directives/nrcl.base\";\n\n\n/**\n * A filter select component that allows users to select multiple options from a list.\n *\n * Features:\n * - Multi-select with optional maximum selection limit\n * - Search/filter functionality\n * - Tooltips for long descriptions\n * - Summary display of selected items\n */\n@Component( {\n selector: \"nrcl-filter-select\",\n templateUrl: \"./filter-select.component.html\",\n styleUrl: \"./filter-select.component.scss\",\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class.has-value]': \"hasValue\",\n '[class.is-open]': \"isOpen\",\n '[class.is-closed]': \"!isOpen\",\n '[class.use-filter]': \"filter\",\n }\n} )\nexport class FilterSelectComponent extends NrclBase implements OnInit, OnChanges, OnDestroy {\n @Input() label\n @Input() placeholder = 'Filter...'\n @Input() hint\n @Input() options: CodeDescription[]\n @Input() value: string[]\n @Input( { transform: numberAttribute } ) selectMax = 0\n @Input( { transform: booleanAttribute } ) tooltips = true\n @Input( { transform: booleanAttribute } ) summary = true\n @Input( { transform: booleanAttribute } ) clear = true\n @Input( { transform: booleanAttribute } ) filter = true\n @Input( { transform: numberAttribute } ) filterCharsMin = 0\n\n @Output() valueChange = new EventEmitter<string[]>();\n\n floatLabel = 'auto'\n inputValue\n openingValue\n isFiltered = false\n isOpen = false\n hasValue = false\n overlayRef: OverlayRef\n selection = new FormControl()\n match: ( option: CodeDescription ) => boolean = ( o ) => true\n clickSubscription\n\n changeDetectorRef = inject( ChangeDetectorRef )\n overlay = inject( Overlay )\n viewContainerRef = inject( ViewContainerRef )\n\n @ViewChild( 'trigger', { read: ElementRef } ) trigger!: ElementRef\n @ViewChild( 'filterInput' ) filterInput!: ElementRef\n @ViewChild( 'overlayTemplate' ) overlayTemplate!: TemplateRef<any>\n\n ngOnInit(): void {\n super.ngOnInit()\n\n this.clickSubscription = fromEvent<MouseEvent>( document, 'click' )\n .pipe( filter( ( event: MouseEvent ) => {\n const clickTarget = event.target as HTMLElement\n const triggerEl = this.trigger.nativeElement\n const overlayEl = this.overlayRef?.overlayElement\n\n // console.log(triggerEl,overlayEl)\n // Only close if click is outside both trigger and overlay\n return !triggerEl?.contains(clickTarget)\n && !overlayEl?.contains(clickTarget)\n } ) )\n .subscribe( () => {\n // console.log('outside click')\n this.close()\n this.setInputToSelection()\n this.floatLabel = 'auto'\n this.changeDetectorRef.detectChanges()\n } )\n }\n\n ngOnChanges( changes: SimpleChanges ): void {\n if ( this.isOpen ) return\n\n if ( changes.options ) {\n let pv = JSON.stringify( changes.options.previousValue )\n let cv = JSON.stringify( changes.options.currentValue )\n if ( pv != cv ) {\n this.selection.setValue( null )\n this.setInputToSelection()\n this.setFilter()\n }\n }\n\n if ( changes.value ) {\n let pv = JSON.stringify( changes.value.previousValue )\n let cv = JSON.stringify( changes.value.currentValue )\n if ( pv != cv ) {\n if ( this.value ) {\n this.hasValue = this.value.length > 0\n this.selection.setValue( this.value )\n if ( this.selectMax > 1 && this.value.length >= this.selectMax ) {\n this.selection.disable()\n }\n else {\n this.selection.enable()\n }\n }\n else {\n this.hasValue = false\n this.selection.setValue( null )\n this.selection.enable()\n }\n\n this.setFilter()\n this.setInputToSelection()\n this.changeDetectorRef.detectChanges()\n }\n }\n }\n\n ngOnDestroy(): void {\n this.clickSubscription?.unsubscribe()\n }\n\n get single() {\n return this.selectMax == 1\n }\n\n emitValueChange() {\n this.hasValue = ( this.selection.value || [] ).length > 0\n this.valueChange.emit( this.selection.value || [] )\n }\n\n open() {\n // console.log('open',this.isOpen,this.filterCharsMin && !this.isFiltered)\n if ( this.isOpen ) return\n\n if ( this.filterCharsMin && !this.isFiltered ) return\n\n this.isOpen = true\n\n // Create overlay\n const positionStrategy = this.overlay\n .position()\n .flexibleConnectedTo( this.trigger )\n .withPositions( [\n {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top',\n offsetY: 0\n },\n {\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom',\n offsetY: 0\n }\n ] )\n .withPush( false )\n\n const scrollStrategy = this.overlay.scrollStrategies.reposition()\n\n this.overlayRef = this.overlay.create( {\n positionStrategy,\n scrollStrategy,\n hasBackdrop: false,\n maxWidth: this.trigger.nativeElement.offsetWidth * 2,\n minWidth: this.trigger.nativeElement.offsetWidth,\n maxHeight: 300,\n } )\n\n // Attach template\n const portal = new TemplatePortal( this.overlayTemplate, this.viewContainerRef )\n this.overlayRef.attach( portal )\n\n // Focus input after overlay is attached\n setTimeout( () => {\n this.filterInput?.nativeElement.focus();\n\n // prevent list from scrolling when selection changes \n this.overlayRef?.overlayElement.children[0].scroll( 0, 1 )\n },100 )\n\n this.openingValue = JSON.stringify( this.selection.value )\n }\n\n close() {\n // console.log('close',this.isOpen)\n if ( !this.isOpen ) return\n\n this.isOpen = false\n\n if ( this.overlayRef ) {\n this.overlayRef.dispose()\n this.overlayRef = null\n }\n\n this.changeDetectorRef.detectChanges()\n\n let closingValue = JSON.stringify( this.selection.value )\n if ( this.openingValue != closingValue )\n this.emitValueChange()\n }\n\n setInputToSelection() {\n this.inputValue = this.selection?.value?.map( c => this.descriptionForCode( c ) ).join( ', ' ) || null\n this.isFiltered = false\n }\n\n onInput( ev?) {\n this.setFilter( ev?.target?.value )\n }\n\n setFilter( text?: string ) {\n let t = text?.trim().toLowerCase()\n\n if ( t?.length >= this.filterCharsMin ) {\n // console.log('filtering')\n this.isFiltered = true\n this.match = ( option ) => option.description.toLowerCase().includes( t )\n\n if ( this.filterCharsMin ) this.open()\n }\n else {\n // console.log('not filtering')\n this.isFiltered = false\n this.match = ( o ) => true\n\n if ( this.filterCharsMin ) this.close()\n }\n\n this.changeDetectorRef.detectChanges()\n }\n\n matchesFilter( option: CodeDescription ) {\n return this.match( option )\n }\n\n onSelectionChange( ev ) {\n if ( this.single ) {\n this.close()\n this.setInputToSelection()\n this.floatLabel = 'auto'\n }\n else {\n this.filterInput?.nativeElement.focus()\n }\n\n if ( this.selectMax > 1 ) {\n if ( this.selection.value.length >= this.selectMax ) {\n this.selection.disable()\n }\n else {\n this.selection.enable()\n }\n }\n\n this.changeDetectorRef.detectChanges()\n }\n\n onUpperSelectionChange( ev: MatSelectionListChange ) {\n setTimeout(() => {\n let codes = this.selection.value.filter( c => c != ev.options[ 0 ].value )\n this.selection.setValue( codes )\n\n this.onSelectionChange( ev )\n })\n }\n\n onCancelClick() {\n this.selection.setValue( null )\n this.selection.enable()\n this.setInputToSelection()\n this.emitValueChange()\n }\n\n onInputFocus() {\n // console.log('onInputFocus')\n this.floatLabel = 'always'\n\n if ( this.filter ) {\n this.inputValue = ''\n this.setFilter()\n }\n\n this.open()\n }\n\n onInputBlur() {\n // if ( this.filterCharsMin )\n // console.log('onInputBlur')\n }\n\n onCloseClick() {\n this.close()\n }\n\n descriptionForCode( code: string ): string {\n return this.options.find( o => o.code == code )?.description\n }\n}\n","<mat-form-field #trigger\n [floatLabel]=\"floatLabel\"\n appearance=\"outline\"\n subscriptSizing=\"dynamic\"\n>\n @if ( label ) {\n <mat-label>{{ label }}</mat-label>\n }\n\n <input class=\"filter-input\" #searchInput\n matInput \n [placeholder]=\"placeholder\" \n [value]=\"inputValue\"\n (input)=\"onInput( $event )\"\n (keydown.escape)=\"close()\"\n (focus)=\"onInputFocus()\"\n (blur)=\"onInputBlur()\"\n [matTooltip]=\"inputValue\"\n [readonly]=\"!filter\"\n >\n\n @if ( isOpen ) {\n <button class=\"cancel\"\n mat-icon-button\n matSuffix\n (click)=\"onCloseClick($event); $event.stopPropagation()\"\n >\n <nrcl-icon>arrow_drop_up</nrcl-icon>\n </button>\n }\n @else if ( selection?.value?.length > 0 && clear ) {\n <button class=\"cancel\"\n mat-icon-button\n matSuffix\n (click)=\"onCancelClick($event); $event.stopPropagation()\"\n >\n <nrcl-icon>close</nrcl-icon>\n </button>\n }\n @else {\n <button class=\"cancel\"\n mat-icon-button\n matSuffix\n >\n <nrcl-icon>arrow_drop_down</nrcl-icon>\n </button>\n } \n\n @if ( hint ) {\n <mat-hint>{{ hint }}</mat-hint>\n }\n</mat-form-field> \n\n<ng-template #overlayTemplate>\n <div class=\"filter-select-options\" [class.multiple]=\"!single\" [class.single]=\"single\">\n @if ( !isFiltered && !single && summary ) {\n @if ( selection?.value?.length > 0 && selection?.value?.length < options?.length ) {\n <div class=\"selection-overview\">\n <div class=\"summary\">{{ selection?.value?.length }} selected of {{ options?.length }}</div>\n\n <mat-selection-list\n (selectionChange)=\"onUpperSelectionChange( $event )\"\n >\n @for ( code of selection?.value; track code ) {\n <mat-list-option \n [value]=\"code\" \n togglePosition=\"before\"\n selected\n [matTooltip]=\"tooltips ? descriptionForCode( code ) : null\"\n matTooltipPosition=\"after\"\n >\n {{ descriptionForCode( code ) }}\n </mat-list-option>\n }\n </mat-selection-list>\n </div>\n }\n\n @if ( selection?.value?.length == options?.length ) {\n <div class=\"selection-overview\">\n <div class=\"summary\">All options selected</div>\n </div>\n }\n }\n\n <mat-selection-list\n [formControl]=\"selection\"\n (selectionChange)=\"onSelectionChange( $event )\"\n [multiple]=\"!single\"\n hideSingleSelectionIndicator\n >\n @for ( option of options; track option ) {\n <mat-list-option [class.hide]=\"!matchesFilter( option )\"\n [value]=\"option.code\" \n togglePosition=\"before\" \n [matTooltip]=\"tooltips ? option.description : null\"\n matTooltipPosition=\"after\" \n >\n {{ option.description }}\n </mat-list-option>\n }\n </mat-selection-list>\n </div>\n</ng-template>\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n Output\n} from \"@angular/core\";\nimport { NrclBase } from \"../../directives/nrcl.base\";\n\n@Component( {\n selector: \"nrcl-filters-panel\",\n templateUrl: \"./filters-panel.component.html\",\n styleUrl: \"./filters-panel.component.scss\",\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class.hide-filters]': '!showFilters'\n }\n} )\nexport class FiltersPanelComponent extends NrclBase {\n @Input() showClear = true\n @Input() showFilters = true\n @Input() hasAdvancedFilters = false\n @Input() showAdvancedFilters = false\n\n @Output() clearFilters = new EventEmitter()\n @Output() showFiltersChange = new EventEmitter<boolean>()\n @Output() showAdvancedFiltersChange = new EventEmitter<boolean>()\n\n onClearClick() {\n this.clearFilters.emit()\n }\n\n onHideClick() {\n this.showFilters = false\n this.showFiltersChange.emit( false )\n }\n\n onShowClick() {\n this.showFilters = true\n this.showFiltersChange.emit( true )\n }\n\n onHideAdvancedClick() {\n this.showAdvancedFilters = false\n this.showAdvancedFiltersChange.emit( false )\n }\n\n onShowAdvancedClick() {\n this.showAdvancedFilters = true\n this.showAdvancedFiltersChange.emit( true )\n }\n}\n","@if ( showFilters ) {\n <ng-content></ng-content>\n}\n\n@if ( showFilters && hasAdvancedFilters && showAdvancedFilters ) {\n <ng-content select=\"[advanced]\"></ng-content>\n}\n\n<div class=\"actions\">\n @if ( showClear && showFilters ) {\n <nrcl-button outline \n label=\"Clear\"\n icon=\"clear-filters\"\n (click)=\"onClearClick()\"\n compact=\"mobile\"\n ></nrcl-button>\n }\n\n @if ( showFilters && hasAdvancedFilters ) {\n @if ( showAdvancedFilters ) {\n <nrcl-button outline \n label=\"Less Filters\"\n icon=\"remove\"\n (click)=\"onHideAdvancedClick()\"\n compact=\"mobile\"\n ></nrcl-button>\n }\n @else {\n <nrcl-button outline \n label=\"More Filters\"\n icon=\"add\"\n (click)=\"onShowAdvancedClick()\"\n compact=\"mobile\"\n ></nrcl-button>\n }\n }\n\n <nrcl-device-view>\n <ng-template mobile-view>\n @if ( showFilters ) {\n <nrcl-button outline \n label=\"Hide Filters\"\n icon=\"expand_less\"\n (click)=\"onHideClick()\"\n compact=\"mobile\"\n ></nrcl-button>\n }\n @else {\n <nrcl-button outline \n label=\"Show Filters\"\n icon=\"expand_more\"\n (click)=\"onShowClick()\"\n compact=\"mobile\"\n ></nrcl-button>\n }\n </ng-template>\n </nrcl-device-view>\n</div>\n","import {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n inject,\n Input,\n OnChanges,\n Renderer2,\n SimpleChanges\n} from \"@angular/core\";\nimport { NrclBase } from \"../../directives/nrcl.base\";\n\n@Component({\n selector: \"nrcl-form-field\",\n template: \"<ng-content></ng-content>\",\n styleUrl: \"./form-field.component.scss\",\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class.required]': \"required\",\n '[class.readonly]': \"readonly\",\n }\n})\nexport class FormFieldComponent extends NrclBase implements OnChanges {\n @Input( { transform: booleanAttribute } ) required\n @Input( { transform: booleanAttribute } ) readonly\n\n element = inject( ElementRef )\n renderer = inject( Renderer2 )\n\n ngOnChanges( changes: SimpleChanges ): void {\n if ( changes.readonly ) {\n if ( this.readonly ) {\n makeFormFieldReadonly( this.renderer, this.element.nativeElement )\n }\n else {\n makeFormFieldNotReadonly( this.renderer, this.element.nativeElement )\n }\n }\n }\n}\n\nfunction makeFormFieldReadonly(renderer: Renderer2, formFieldEl: HTMLElement) {\n let editableElements;\n //make input element readonly\n let inputHtmlElement: HTMLInputElement;\n editableElements = formFieldEl.getElementsByTagName('input');\n if (editableElements && editableElements.length) {\n inputHtmlElement = editableElements[0];\n setTimeout(() => {\n renderer.setAttribute(inputHtmlElement, \"readonly\", \"readonly\");\n });\n }\n\n //make textarea element readonly\n let textareaHtmlElement: HTMLTextAreaElement;\n editableElements = formFieldEl.getElementsByTagName('textarea');\n if (editableElements && editableElements.length) {\n textareaHtmlElement = editableElements[0];\n setTimeout(() => {\n renderer.setAttribute(textareaHtmlElement, \"readonly\", \"readonly\");\n });\n }\n\n //make select element readonly\n let selectHtmlElement: HTMLSelectElement;\n editableElements = formFieldEl.getElementsByTagName('select');\n if (editableElements && editableElements.length) {\n selectHtmlElement = editableElements[0];\n setTimeout(() => {\n renderer.addClass(selectHtmlElement, \"select-read-only-cursor\");\n renderer.setAttribute(selectHtmlElement, \"readonly\", \"readonly\");\n for (let i = 0; i < selectHtmlElement.options.length; i++) {\n selectHtmlElement.options[i].disabled = true;\n }\n });\n }\n}\n\nfunction makeFormFieldNotReadonly(renderer: Renderer2, formFieldEl: HTMLElement) {\n // renderer.removeClass(formFieldEl, \"readonly\");\n let editableElements;\n //make input element readonly\n let inputHtmlElement: HTMLInputElement;\n editableElements = formFieldEl.getElementsByTagName('input');\n if (editableElements && editableElements.length) {\n inputHtmlElement = editableElements[0];\n setTimeout(() => {\n renderer.removeAttribute(inputHtmlElement, \"readonly\");\n });\n }\n\n //make textarea element readonly\n let textareaHtmlElement: HTMLTextAreaElement;\n editableElements = formFieldEl.getElementsByTagName('textarea');\n if (editableElements && editableElements.length) {\n textareaHtmlElement = editableElements[0];\n setTimeout(() => {\n renderer.removeAttribute(textareaHtmlElement, \"readonly\");\n });\n }\n\n //make select element readonly\n let selectHtmlElement: HTMLSelectElement;\n editableElements = formFieldEl.getElementsByTagName('select');\n if (editableElements && editableElements.length) {\n selectHtmlElement = editableElements[0];\n setTimeout(() => {\n renderer.removeClass(selectHtmlElement, \"select-read-only-cursor\");\n renderer.removeAttribute(selectHtmlElement, \"readonly\");\n for (let i = 0; i < selectHtmlElement.options.length; i++) {\n selectHtmlElement.options[i].disabled = undefined;\n }\n });\n }\n}","import {\n ChangeDetectionStrategy,\n Component\n} from \"@angular/core\";\nimport { NrclBase } from \"../../directives/nrcl.base\";\n\n@Component({\n selector: \"nrcl-form-layout\",\n template: \"<ng-content></ng-content>\",\n styleUrl: \"./form-layout.component.scss\",\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class FormLayoutComponent extends NrclBase {\n}\n","import { booleanAttribute, Component, Input } from '@angular/core';\nimport { NrclBase } from '../../directives/nrcl.base';\n\n@Component( {\n selector: 'nrcl-gap',\n template: '',\n styleUrl: './gap.component.scss',\n} )\nexport class GapComponent extends NrclBase {\n @Input( { transform: booleanAttribute } ) horizontal = false\n @Input( { transform: booleanAttribute } ) vertical = false\n}\n","import { Injectable } from \"@angular/core\";\n\ntype StateContainer = {\n label: string\n state: any\n}\n\n@Injectable( {\n providedIn: \"root\"\n} )\nexport class PageStateService {\n private readonly classRegistry = new WeakMap<Function, StateContainer>();\n\n constructor() {\n }\n\n getPageState<S>( classConstructor: Function, defaultState: S, label?: string ): S {\n if ( this.classRegistry.has( classConstructor ) ) {\n let sc = this.classRegistry.get( classConstructor )\n return sc.state\n }\n\n this.setPageState( classConstructor, defaultState, label )\n return defaultState\n }\n\n setPageState<S>( classConstructor: Function, state: S, label?: string ) {\n let sc: StateContainer = { label, state }\n this.classRegistry.set( classConstructor, sc )\n }\n}\n","import { Observable } from \"rxjs\";\n\nexport class Aborted {\n constructor( public reason: string ) {}\n}\n\nexport class ObservableAborter<T> {\n private _promise: Promise<T>\n private _abort: () => void\n private _aborted: boolean\n\n constructor( \n private observable: () => Observable<T>,\n private delay: number = 500\n ) {\n this._promise = new Promise( ( res, rej ) => {\n let timer = setTimeout(() => {\n let sub = this.observable().subscribe( {\n next: res,\n error: rej\n } )\n\n this._abort = () => {\n sub.unsubscribe()\n rej( new Aborted( 'aborted request' ) )\n this._abort = null\n }\n }, this.delay);\n\n this._abort = () => {\n clearTimeout( timer )\n rej( new Aborted( 'aborted timer' ) ) \n this._abort = null\n }\n } )\n }\n\n abort() {\n if ( this._aborted ) return\n this._aborted = true\n if ( !this._abort ) return\n this._abort()\n }\n\n get aborted(): boolean {\n return this._aborted\n }\n\n get promise(): Promise<T> {\n return this._promise\n }\n}\n","import { AfterViewInit, ChangeDetectorRef, Directive, EventEmitter, inject, Output } from \"@angular/core\";\nimport { SortDirection } from \"@angular/material/sort\";\nimport { Observable } from \"rxjs\";\nimport { PageStateService } from \"../services/page-state.service\";\nimport { ObservableAborter, Aborted } from \"../utils/row-list.util\";\nimport { CodeDescription } from \"../public-api\";\nimport { NrclBase } from \"./nrcl.base\";\n\nexport type RowListState<F> = {\n filter: F\n pageSize: number\n pageNumber: number\n sortActive: string \n sortDirection: SortDirection\n}\n\nexport type LoadRowListResult<R> = { \n rows: R[], \n totalRowCount: number \n}\n\n@Directive()\nexport class RowListBase<F,R,L=any> extends NrclBase implements RowListState<F>, AfterViewInit {\n @Output() isLoadingChange = new EventEmitter<boolean>()\n \n private _isLoading = false\n get isLoading() { return this._isLoading }\n set isLoading( v: boolean ) { \n if ( v == this._isLoading ) return \n this._isLoading = v \n this.isLoadingChange.emit( v )\n } \n\n rows: R[] = []\n totalRowCount: number\n\n filter: F\n pageSize: number\n pageNumber: number\n sortActive: string \n sortDirection: SortDirection\n\n sortColumns: CodeDescription[]\n summaryMobile: string\n showPagingMobile: boolean\n \n pageStateService = inject( PageStateService )\n changeDetectorRef = inject( ChangeDetectorRef )\n\n private _loadRowListRequest: ObservableAborter<L>\n\n constructor() {\n super()\n this.initializeRowList()\n }\n\n initializeRowList() {\n this.loadPageState() \n }\n\n ngAfterViewInit(): void {\n this.refreshRowList()\n }\n\n refreshRowList(): Promise<void> {\n this.isLoading = true\n\n return Promise.resolve()\n .then( () => {\n return this.loadRowList()\n } )\n .then( ( { rows, totalRowCount } ) => {\n this.rows = rows\n this.totalRowCount = totalRowCount\n this.isLoading = false\n } )\n .catch( ( e ) => {\n if ( e instanceof Aborted ) return\n\n this.loadRowListPageFailed( e )\n this.isLoading = false\n } )\n .finally( () => {\n this.updateSummaryMobile()\n this.changeDetectorRef.detectChanges()\n } )\n }\n\n loadRowList(): Promise<LoadRowListResult<R>> {\n if ( this._loadRowListRequest )\n this._loadRowListRequest.abort()\n\n this._loadRowListRequest = new ObservableAborter<L>( () => { \n return this.fetchRowListPage()\n } )\n\n return this._loadRowListRequest.promise\n .then( res => {\n return this.displayRowListPage( res )\n } )\n }\n\n fetchRowListPage(): Observable<L> {\n throw 'unimplemented'\n }\n \n displayRowListPage( res: L ): LoadRowListResult<R> {\n throw 'unimplemented'\n }\n\n loadRowListPageFailed( error ) {\n console.warn( error )\n this.rows = []\n this.totalRowCount = 0\n }\n\n onFilterChange( ev ) {\n this.filter = ev\n this.pageNumber = 1\n\n this.refreshRowList()\n .then( () => {\n this.savePageState()\n this.updateSummaryMobile()\n } )\n }\n\n onSortChange( ev ) {\n this.sortActive = ev.active\n this.sortDirection = ev.direction\n this.pageNumber = 1\n\n this.refreshRowList()\n .then( () => {\n this.savePageState()\n this.updateSummaryMobile()\n } )\n }\n\n onPageNumberChange( ev ) {\n this.pageNumber = ev\n\n this.refreshRowList()\n .then( () => {\n this.savePageState()\n this.updateSummaryMobile()\n } )\n }\n\n onPageSizeChange( ev ) {\n this.pageSize = ev \n this.pageNumber = 1\n\n this.refreshRowList()\n .then( () => {\n this.savePageState()\n this.updateSummaryMobile()\n } )\n }\n\n updateSummaryMobile() {\n [ this.summaryMobile, this.showPagingMobile ] = makeSummary( this.totalRowCount, this.pageNumber, this.pageSize )\n }\n\n get initialPageState(): RowListState<F> {\n throw 'unimplemented'\n }\n\n loadPageState() {\n let state = this.pageStateService.getPageState<RowListState<F>>( this.constructor, this.initialPageState )\n\n this.filter = state.filter\n this.pageSize = state.pageSize\n this.pageNumber = state.pageNumber\n this.sortActive = state.sortActive\n this.sortDirection = state.sortDirection\n }\n\n savePageState() {\n let state: RowListState<F> = JSON.parse( JSON.stringify( {\n filter: this.filter,\n pageSize: this.pageSize,\n pageNumber: this.pageNumber,\n sortActive: this.sortActive,\n sortDirection: this.sortDirection,\n } ) )\n \n this.pageStateService.setPageState<RowListState<F>>( this.constructor, state )\n }\n}\n\nexport function makeSummary( rowCount, pageNumber, pageSize ): [ string, boolean ] {\n if ( rowCount && pageSize ) {\n let pageCount = Math.ceil( rowCount / pageSize )\n\n let first = ( Math.min( pageCount, pageNumber ) - 1 ) * pageSize + 1\n let last = Math.min( first + pageSize - 1, rowCount )\n\n return [ `Showing ${ first } to ${ last } of ${ rowCount }`, true ]\n }\n else {\n return [ \"No records to display.\", false ]\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component\n} from \"@angular/core\";\nimport { NrclBase } from \"../../directives/nrcl.base\";\n\n@Component({\n selector: \"nrcl-row-list-desktop\",\n templateUrl: \"./row-list-desktop.component.html\",\n styleUrl: \"./row-list-desktop.component.scss\",\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class RowListDesktopComponent extends NrclBase {\n}\n","<ng-content></ng-content>\n","import {\n ChangeDetectionStrategy,\n Component\n} from \"@angular/core\";\nimport { NrclBase } from \"../../directives/nrcl.base\";\n\n@Component({\n selector: \"nrcl-row-list-mobile\",\n templateUrl: \"./row-list-mobile.component.html\",\n styleUrl: \"./row-list-mobile.component.scss\",\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class RowListMobileComponent extends NrclBase {\n}\n","<ng-content></ng-content>\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n HostListener,\n inject,\n Input,\n Output\n} from \"@angular/core\";\nimport { NrclBase } from \"../../directives/nrcl.base\";\n\nexport type RowListPaginationWidth = 'sufficient'|'tight'|'restrictive'\n\n@Component({\n selector: \"nrcl-row-list-pagination\",\n templateUrl: \"./row-list-pagination.component.html\",\n styleUrl: \"./row-list-pagination.component.scss\",\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class.width-sufficient]': \"componentWidth == 'sufficient'\",\n '[class.width-tight]': \"componentWidth == 'tight'\",\n '[class.width-restrictive]': \"componentWidth == 'restrictive'\",\n }\n})\nexport class RowListPaginationComponent extends NrclBase implements AfterViewInit {\n @Input() paginationId = '1'\n @Input() pageSizeOptions = [ \n { code: 5, description: '5 Rows' },\n { code: 10, description: '10 Rows' },\n { code: 20, description: '20 Rows' },\n { code: 50, description: '50 Rows' },\n { code: 100, description: '100 Rows' },\n ]\n @Input() pageSize = 20\n @Input() pageNumber\n @Input() rowCount\n @Input() showPageSize = true \n @Input() noRowsMessage = 'No records to display.'\n\n @Output() pageSizeChange = new EventEmitter<number>();\n @Output() pageNumberChange = new EventEmitter<number>();\n\n componentWidth: RowListPaginationWidth = 'sufficient'\n paginationMaxSize = 5\n\n elementRef = inject( ElementRef )\n changeDetectorRef = inject( ChangeDetectorRef )\n \n ngAfterViewInit(): void {\n this.checkWidth()\n }\n \n onPageSizeChange( ev ) { \n this.pageSizeChange.emit( Number( ev ) )\n }\n\n onPageNumberChange( ev ) {\n this.pageNumberChange.emit( Number( ev ) )\n }\n\n @HostListener(\"window:resize\", [\"$event\"])\n onResize(event) {\n this.checkWidth()\n }\n\n checkWidth() {\n setTimeout( () => {\n let w = this.elementRef?.nativeElement.offsetWidth \n if ( !w ) return\n\n switch ( true ) {\n case w > 600: \n this.componentWidth = 'sufficient'\n this.paginationMaxSize = 5\n break\n\n case w > 500: \n this.componentWidth = 'tight'; \n this.paginationMaxSize = 3\n break\n\n default: \n this.componentWidth = 'restrictive'\n this.paginationMaxSize = 4\n }\n\n this.changeDetectorRef.detectChanges()\n } )\n }\n\n get pageCount() {\n if ( !this.hasRows ) return 0\n return Math.ceil( this.rowCount / this.pageSize )\n }\n\n get firstRow() {\n if ( !this.hasRows ) return 0\n return ( Math.min( this.pageCount, this.pageNumber ) - 1 ) * this.pageSize + 1\n }\n\n get lastRow() {\n if ( !this.hasRows ) return 0\n return Math.min( this.firstRow + this.pageSize - 1, this.rowCount )\n }\n\n get hasRows() {\n return this.rowCount\n }\n}\n","@if ( hasRows ) {\n <nrcl-filter-container class=\"summary\"\n label=\"Showing Rows\"\n >\n <span>{{ firstRow }} to {{ lastRow }} <small>(of {{ rowCount }})</small></span>\n </nrcl-filter-container>\n}\n@else {\n <div class=\"no-rows\">{{ noRowsMessage }}</div>\n}\n\n@if ( hasRows ) {\n <div class=\"pagination\">\n <pagination-controls \n [id]=\"paginationId\" \n [maxSize]=\"paginationMaxSize\"\n [responsive]=\"false\"\n [directionLinks]=\"true\"\n previousLabel=\"\"\n nextLabel=\"\"\n [autoHide]=\"false\"\n (pageChange)=\"onPageNumberChange( $event )\"\n ></pagination-controls>\n </div>\n}\n\n@if ( hasRows && showPageSize ) {\n <nrcl-filter-select class=\"page-size\"\n label=\"Page Size\"\n [value]=\"[ pageSize ]\"\n [options]=\"pageSizeOptions\"\n (valueChange)=\"onPageSizeChange( $event[ 0 ] )\"\n selectMax=\"1\"\n [clear]=\"false\"\n [filter]=\"false\"\n placeholder=\"Select...\"\n ></nrcl-filter-select>\n}\n","import { ChangeDetectionStrategy, Component, Input } from \"@angular/core\";\nimport { Observable } from \"rxjs\";\nimport { LoadRowListResult, RowListBase, RowListState } from \"../../directives/row-list.base\";\nimport { DATE_FORMATS } from \"../../utils/date.util\";\n\nexport type AttachmentsTableRow = {\n attachmentTypeDescription: string\n fileName: string\n fileExtension: string\n uploadedBy: string\n uploadedTimestamp: string\n attachmentDescription: string\n attachmentId: string \n fileId: string\n sourceObjectUniqueId: string\n}\n\nexport type FetchAttachmentsParameters = { \n pageNumber: number \n pageRowCount: number \n sortColumn: string \n sortDirection: string\n}\n\nexport interface AttachmentRowListProvider<R,L=any> {\n fetchAttachments( x: FetchAttachmentsParameters ): Observable<L> \n displayRowListPage( res: L ): LoadRowListResult<R>\n downloadItem( item: R )\n deleteItem( item: R )\n}\n\n@Component({\n selector: \"nrcl-list-attachments\",\n templateUrl: \"./list-attachments.component.html\",\n styleUrl: \"./list-attachments.component.scss\",\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ListAttachmentsComponent extends RowListBase<{},AttachmentsTableRow> {\n @Input() rowListProvider: AttachmentRowListProvider<AttachmentsTableRow>\n @Input() canDelete = true\n @Input() canDownload = true\n\n DATE_FORMATS = DATE_FORMATS\n columns = [ 'attachmentTypeCode', 'fileName', 'sourceObjectNameCode', 'uploadedBy', 'uploadedTimestamp', 'description' ]\n\n initializeRowList(): void {\n super.initializeRowList()\n }\n\n get initialPageState(): RowListState<{}> {\n return {\n filter: {},\n pageSize: 5,\n pageNumber: 1,\n sortActive: null,\n sortDirection: 'desc',\n }\n }\n\n ngAfterViewInit() {\n if ( this.canDownload )\n this.columns.push( 'download' )\n\n if ( this.canDelete )\n this.columns.push( 'delete' )\n \n super.ngAfterViewInit()\n }\n\n fetchRowListPage(): Observable<any> {\n if ( !this.rowListProvider?.fetchAttachments ) throw Error( 'no provider' )\n\n return this.rowListProvider.fetchAttachments({\n pageNumber: this.pageNumber,\n pageRowCount: this.pageSize,\n sortColumn: this.sortActive,\n sortDirection: this.sortDirection,\n })\n }\n \n displayRowListPage( res: any ): LoadRowListResult<AttachmentsTableRow> {\n if ( !this.rowListProvider?.displayRowListPage ) throw Error( 'no provider' )\n\n return this.rowListProvider.displayRowListPage( res )\n }\n\n onDownloadClick( item: AttachmentsTableRow ) {\n if ( !this.rowListProvider?.downloadItem ) throw Error( 'no provider' )\n\n return this.rowListProvider.downloadItem( item )\n }\n\n onDeleteClick( item: AttachmentsTableRow ) {\n if ( !this.rowListProvider?.deleteItem ) throw Error( 'no provider' )\n \n return this.rowListProvider.deleteItem( item )\n }\n}\n","<nrcl-device-view>\n <ng-template desktop-view>\n <nrcl-row-list-desktop>\n @if ( rows?.length > 0 ) {\n <table mat-table\n [dataSource]=\"rows | paginate: { \n id: 'desktop-attachments', \n itemsPerPage: showPagination ? pageSize : totalRowCount, \n currentPage: showPagination ? pageNumber : 1, \n totalItems: totalRowCount \n }\"\n >\n <ng-container matColumnDef=\"attachmentTypeCode\">\n <th mat-header-cell *matHeaderCellDef>Attachment Type</th>\n <td mat-cell *matCellDef=\"let item\">\n <nrcl-cell-content tooltip>{{ item.attachmentTypeDescription }}</nrcl-cell-content>\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"fileName\">\n <th mat-header-cell *matHeaderCellDef>File Name</th>\n <td mat-cell *matCellDef=\"let item\">\n <nrcl-cell-content tooltip>{{ item.fileName }}</nrcl-cell-content>\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"sourceObjectNameCode\">\n <th mat-header-cell *matHeaderCellDef>File Type</th>\n <td mat-cell *matCellDef=\"let item\">\n <nrcl-cell-content tooltip>{{ item.fileExtension }}</nrcl-cell-content>\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"uploadedBy\">\n <th mat-header-cell *matHeaderCellDef>Uploaded By</th>\n <td mat-cell *matCellDef=\"let item\">\n <nrcl-cell-content tooltip>{{ item.uploadedBy }}</nrcl-cell-content>\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"uploadedTimestamp\">\n <th mat-header-cell *matHeaderCellDef>Uploaded At</th>\n <td mat-cell *matCellDef=\"let item\">\n <nrcl-cell-content tooltip>{{ item.uploadedTimestamp }}</nrcl-cell-content>\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"description\">\n <th mat-header-cell *matHeaderCellDef>Description</th>\n <td mat-cell *matCellDef=\"let item\">\n <nrcl-cell-content tooltip>{{ item.attachmentDescription }}</nrcl-cell-content>\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"download\">\n <th mat-header-cell *matHeaderCellDef></th>\n <td mat-cell *matCellDef=\"let item\">\n <div class=\"button-container\">\n <nrcl-button compact\n label=\"Download\"\n icon=\"download\"\n (click)=\"onDownloadClick( item )\" \n ></nrcl-button>\n </div>\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"delete\">\n <th mat-header-cell *matHeaderCellDef></th>\n <td mat-cell *matCellDef=\"let item\">\n <div class=\"button-container\">\n <nrcl-button compact\n label=\"Delete\"\n icon=\"delete\"\n (click)=\"onDeleteClick( item )\"\n ></nrcl-button>\n </div>\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"columns; sticky: true\"></tr>\n <tr mat-row *matRowDef=\"let item; columns: columns;\"></tr>\n\n <tr class=\"mat-row\" *matNoDataRow>\n <td class=\"mat-cell\" colspan=\"8\">No records to display.</td>\n </tr> \n </table>\n }\n </nrcl-row-list-desktop>\n\n <nrcl-gap vertical/>\n\n <nrcl-row-list-pagination\n paginationId=\"desktop-attachments\"\n [pageSize]=\"pageSize\"\n [pageNumber]=\"pageNumber\"\n [rowCount]=\"totalRowCount\"\n (pageNumberChange)=\"onPageNumberChange( $event )\"\n (pageSizeChange)=\"onPageSizeChange( $event )\"\n ></nrcl-row-list-pagination>\n </ng-template>\n\n <ng-template mobile-view>\n <nrcl-row-list-mobile>\n @for ( item of rows | paginate: { \n id: 'mobile-attachments', \n itemsPerPage: showPagination ? pageSize : totalRowCount, \n currentPage: showPagination ? pageNumber : 1, \n totalItems: totalRowCount \n }; track item.attachmentId ) {\n <mat-card>\n <mat-card-title>\n <section title>\n <h2>{{ item.fileName }}</h2>\n </section>\n\n <section actions>\n <nrcl-button compact\n label=\"Download\"\n icon=\"download\"\n (click)=\"onDownloadClick( item )\" \n ></nrcl-button>\n\n @if ( canDelete ) {\n <nrcl-button compact\n label=\"Delete\"\n icon=\"delete\"\n (click)=\"onDeleteClick( item )\"\n ></nrcl-button>\n }\n </section>\n </mat-card-title>\n\n <mat-card-content>\n <section>\n <mat-label>Attachment Type</mat-label>\n <div class=\"value\">{{ item.attachmentTypeDescription }}</div>\n </section>\n\n <section>\n <mat-label>File Type</mat-label>\n <div class=\"value\">{{ item.fileExtension }}</div>\n </section>\n\n <section>\n <mat-label>Uploaded By</mat-label>\n <div class=\"value\">{{ item.uploadedBy }}</div>\n </section> \n\n <section>\n <mat-label>Uploaded At</mat-label>\n <div class=\"value\">{{ item.uploadedTimestamp }}</div>\n </section> \n\n <section full-width>\n <mat-label>Description</mat-label>\n <div class=\"value\">{{ item.attachmentDescription }}</div>\n </section> \n </mat-card-content>\n </mat-card>\n }\n </nrcl-row-list-mobile>\n\n <nrcl-gap vertical/>\n\n <nrcl-row-list-pagination\n paginationId=\"mobile-attachments\"\n [pageSize]=\"pageSize\"\n [pageNumber]=\"pageNumber\"\n [rowCount]=\"totalRowCount\"\n (pageNumberChange)=\"onPageNumberChange( $event )\"\n (pageSizeChange)=\"onPageSizeChange( $event )\"\n ></nrcl-row-list-pagination>\n </ng-template>\n</nrcl-device-view>\n","import { ChangeDetectionStrategy, Component, Input } from \"@angular/core\";\nimport { Observable } from \"rxjs\";\nimport { LoadRowListResult, RowListBase, RowListState } from \"../../directives/row-list.base\";\nimport { DATE_FORMATS } from \"../../utils/date.util\";\n\nexport type EventHistoryTableRow = {\n eventTimestamp: string\n createdByUserId: string\n eventHistoryTypeDescription: string\n sourceObjectNameDescription: string\n comment: string\n}\n\nexport type FetchEventHistoryParameters = { \n isSupplier: boolean \n pageNumber: number \n pageRowCount: number \n sortColumn: string \n sortDirection: string\n}\n\nexport interface EventHistoryRowListProvider<R,L=any> {\n fetchEventHistory( x: FetchEventHistoryParameters ): Observable<L> \n displayRowListPage( res: L ): LoadRowListResult<R>\n}\n\n@Component({\n selector: \"nrcl-list-event-history\",\n templateUrl: \"./list-event-history.component.html\",\n styleUrl: \"./list-event-history.component.scss\",\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ListEventHistoryComponent extends RowListBase<{},EventHistoryTableRow> {\n @Input() rowListProvider: EventHistoryRowListProvider<EventHistoryTableRow>\n @Input() canDelete = true\n @Input() showPagination = false\n @Input() isSupplier: boolean = false\n\n DATE_FORMATS = DATE_FORMATS\n columns = [ 'dateTime', 'changedBy', 'type', 'section', 'comment' ]\n\n fetchRowListPage(): Observable<any> {\n if ( !this.rowListProvider?.fetchEventHistory ) throw Error( 'no provider' )\n\n return this.rowListProvider.fetchEventHistory( {\n isSupplier: this.isSupplier,\n pageNumber: this.pageNumber,\n pageRowCount: this.pageSize,\n sortColumn: this.sortActive,\n sortDirection: this.sortDirection,\n } )\n }\n\n displayRowListPage( res: any ): LoadRowListResult<EventHistoryTableRow> {\n if ( !this.rowListProvider?.displayRowListPage ) throw Error( 'no provider' )\n\n return this.rowListProvider.displayRowListPage( res )\n } \n\n get initialPageState(): RowListState<{}> {\n return {\n filter: {},\n pageSize: 20,\n pageNumber: 1,\n sortActive: 'dateTime',\n sortDirection: 'desc',\n }\n }\n\n\n}\n","<nrcl-device-view>\n <ng-template desktop-view>\n <nrcl-row-list-desktop>\n @if ( rows?.length > 0 ) {\n <table mat-table\n [dataSource]=\"rows | paginate: { \n id: 'desktop-event-history', \n itemsPerPage: pageSize, \n currentPage: pageNumber, \n totalItems: totalRowCount \n }\"\n matSort \n [matSortActive]=\"sortActive\"\n [matSortDirection]=\"sortDirection\"\n (matSortChange)=\"onSortChange( $event )\">\n >\n <ng-container matColumnDef=\"dateTime\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header>Date and Time</th>\n <td mat-cell *matCellDef=\"let item\">\n <nrcl-cell-content tooltip>{{ item.eventTimestamp }}</nrcl-cell-content>\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"changedBy\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header>User ID</th>\n <td mat-cell *matCellDef=\"let item\">\n <nrcl-cell-content tooltip>{{ item.createdByUserId }}</nrcl-cell-content>\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"type\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header>Type</th>\n <td mat-cell *matCellDef=\"let item\">\n <nrcl-cell-content tooltip>{{ item.eventHistoryTypeDescription }}</nrcl-cell-content>\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"section\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header>Section</th>\n <td mat-cell *matCellDef=\"let item\">\n <nrcl-cell-content tooltip>{{ item.sourceObjectNameDescription }}</nrcl-cell-content>\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"comment\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header>Comment</th>\n <td mat-cell *matCellDef=\"let item\">\n <nrcl-cell-content tooltip>{{ item.comment }}</nrcl-cell-content>\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"columns; sticky: true\"></tr>\n <tr mat-row *matRowDef=\"let item; columns: columns;\"></tr>\n </table>\n }\n </nrcl-row-list-desktop>\n\n <nrcl-gap vertical/>\n\n <nrcl-row-list-pagination\n paginationId=\"desktop-event-history\"\n [pageSize]=\"pageSize\"\n [pageNumber]=\"pageNumber\"\n [rowCount]=\"totalRowCount\"\n (pageNumberChange)=\"onPageNumberChange( $event )\"\n (pageSizeChange)=\"onPageSizeChange( $event )\"\n ></nrcl-row-list-pagination>\n </ng-template>\n\n <ng-template mobile-view>\n <nrcl-row-list-mobile>\n @for ( item of rows | paginate: { \n id: 'mobile-event-history', \n itemsPerPage: pageSize, \n currentPage: pageNumber, \n totalItems: totalRowCount \n }; track item.attachmentId ) {\n <mat-card>\n <mat-card-title>\n <section title>\n <h2>{{ item.comment }}</h2>\n </section>\n </mat-card-title>\n\n <mat-card-content>\n <section>\n <mat-label>User ID</mat-label>\n <div class=\"value\">{{ item.createdByUserId }}</div>\n </section>\n\n <section>\n <mat-label>Time</mat-label>\n <div class=\"value\">{{ item.eventTimestamp }}</div>\n </section>\n\n <section>\n <mat-label>Type</mat-label>\n <div class=\"value\">{{ item.eventHistoryTypeDescription }}</div>\n </section>\n\n <section>\n <mat-label>Section</mat-label>\n <div class=\"value\">{{ item.sourceObjectNameDescription }}</div>\n </section> \n\n <!-- <section full-width>\n <mat-label>Comment</mat-label>\n <div class=\"value\">{{ item.comment }}</div>\n </section> -->\n </mat-card-content>\n </mat-card>\n }\n </nrcl-row-list-mobile>\n\n <nrcl-gap vertical/>\n\n <nrcl-row-list-pagination\n paginationId=\"mobile-event-history\"\n [pageSize]=\"pageSize\"\n [pageNumber]=\"pageNumber\"\n [rowCount]=\"totalRowCount\"\n (pageNumberChange)=\"onPageNumberChange( $event )\"\n (pageSizeChange)=\"onPageSizeChange( $event )\"\n ></nrcl-row-list-pagination>\n </ng-template>\n</nrcl-device-view>\n","import {\n ChangeDetectionStrategy,\n Component\n} from \"@angular/core\";\nimport { NrclBase } from \"../../directives/nrcl.base\";\n\n@Component( {\n selector: \"nrcl-page-container\",\n templateUrl: \"./page-container.component.html\",\n styleUrl: \"./page-container.component.scss\",\n changeDetection: ChangeDetectionStrategy.OnPush,\n} )\nexport class PageContainerComponent extends NrclBase {}\n","<ng-content></ng-content>\n","import {\n ChangeDetectionStrategy,\n Component,\n Input\n} from \"@angular/core\";\nimport { NrclBase } from \"../../directives/nrcl.base\";\n\n@Component({\n selector: \"nrcl-page-header\",\n templateUrl: \"./page-header.component.html\",\n styleUrl: \"./page-header.component.scss\",\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class.isLoading]': 'isLoading',\n }\n})\nexport class PageHeaderComponent extends NrclBase {\n @Input() isLoading = false\n}\n","<div class=\"left-side\">\n <ng-content select=\"[left-side],h1,h2\"></ng-content>\n</div>\n\n<div class=\"right-side\">\n <ng-content select=\"[right-side]\"></ng-content>\n <ng-content></ng-content>\n</div>\n\n<mat-spinner class=\"loading\" [diameter]=\"30\"></mat-spinner>\n","import { CodeDescription } from \"./code-table.util\"\n\nexport function wrapFilterValue( val ) {\n if ( !val ) return []\n if ( Array.isArray( val ) ) return val\n return [ val ]\n}\n\nexport function unwrapFilterValue( val ) {\n if ( !val ) return ''\n if ( Array.isArray( val ) ) return val[ 0 ] || ''\n return val\n}\n\nexport function mapToCodeDescription( list: Array<any>, codeField: string, descriptionField: string ): CodeDescription[] {\n if ( !list ) return list\n return list.map( v => {\n return {\n code: v[ codeField ],\n description: v[ descriptionField ]\n }\n } )\n}\n","import {\n Component,\n EventEmitter,\n Input,\n Output\n} from \"@angular/core\";\nimport { CodeDescription } from \"../../utils/code-table.util\";\nimport { Sort, SortDirection } from \"@angular/material/sort\";\nimport { unwrapFilterValue, wrapFilterValue } from \"../../utils/filter.util\";\nimport { NrclBase } from \"../../directives/nrcl.base\";\n\n@Component({\n selector: \"nrcl-row-list-sorting\",\n templateUrl: \"./row-list-sorting.component.html\",\n styleUrl: \"./row-list-sorting.component.scss\",\n})\nexport class RowListSortingComponent extends NrclBase {\n @Input() sortColumn: string\n @Input() sortColumnOptions: CodeDescription[] = []\n @Input() sortDirection: SortDirection = 'asc'\n\n @Output() sortChange = new EventEmitter<Sort>();\n\n wrapFilterValue = wrapFilterValue \n unwrapFilterValue = unwrapFilterValue\n \n onSortColumnChange( ev ) {\n this.sortColumn = ev\n this.emitSortChange()\n }\n\n onSortDirectionChange() {\n this.emitSortChange()\n }\n\n emitSortChange() {\n this.sortChange.emit( { \n active: this.sortColumn,\n direction: this.sortDirection\n } )\n }\n}\n","<nrcl-filter-select class=\"sort-order\" \n label=\"Sort By\"\n [value]=\"wrapFilterValue( sortColumn )\"\n [options]=\"sortColumnOptions\"\n (valueChange)=\"onSortColumnChange( unwrapFilterValue( $event ) )\"\n selectMax=\"1\" \n></nrcl-filter-select>\n\n<nrcl-filter-container class=\"sort-direction\" \n label=\"Sort Order\"\n>\n <mat-radio-group\n [(ngModel)]=\"sortDirection\" \n (ngModelChange)=\"onSortDirectionChange()\"\n [disabled]=\"!sortColumn\"\n >\n <mat-radio-button aria-label=\"Sort A to Z\" value=\"asc\">A → Z</mat-radio-button>\n <mat-radio-button aria-label=\"Sort Z to A\" value=\"desc\">Z → A</mat-radio-button>\n </mat-radio-group>\n</nrcl-filter-container>\n","import { Component, Inject } from \"@angular/core\";\nimport { MAT_SNACK_BAR_DATA, MatSnackBarRef } from \"@angular/material/snack-bar\";\nimport { NrclBase } from \"../../directives/nrcl.base\";\n\nexport type SnackbarType = 'success'|'error'|'info'|'update'\n\nexport type SnackbarConfig = {\n message: string\n type: SnackbarType\n}\n\n@Component({\n selector: 'nrcl-snackbar',\n templateUrl: \"./snackbar.component.html\",\n styleUrl: \"./snackbar.component.scss\",\n host: {\n '[class]': 'className'\n }\n})\nexport class SnackbarComponent extends NrclBase {\n constructor(\n public snackBarRef: MatSnackBarRef<SnackbarComponent>,\n @Inject(MAT_SNACK_BAR_DATA) public config: SnackbarConfig\n ) { \n super()\n }\n\n get className() {\n return 'snackbar-type-' + this.config.type\n }\n}\n","<div class=\"icon\">\n @switch ( config.type ) {\n @case ( 'success' ) {\n <nrcl-icon>check_circle</nrcl-icon>\n }\n @case ( 'error' ) {\n <nrcl-icon>cancel</nrcl-icon>\n }\n @case ( 'info' ) {\n <nrcl-icon>info</nrcl-icon>\n }\n @case ( 'update' ) {\n <nrcl-icon>error</nrcl-icon>\n }\n }\n</div>\n\n<div class=\"message\">\n <span>{{ config.message }}</span>\n</div>\n\n<div class=\"button\">\n <button (click)=\"snackBarRef.dismissWithAction()\">Close</button>\n</div>\n","import { inject, Injectable } from \"@angular/core\";\nimport { MatSnackBar } from \"@angular/material/snack-bar\";\nimport { SnackbarComponent, SnackbarConfig } from \"../components/snackbar/snackbar.component\";\n\n@Injectable({\n providedIn: 'root'\n})\nexport class SnackbarUtilService {\n snackbar = inject( MatSnackBar )\n\n successful( message: string, duration = 5000 ) {\n this.snackbar.openFromComponent<SnackbarComponent,SnackbarConfig>(\n SnackbarComponent, \n {\n duration: duration,\n data: {\n type: 'success',\n message: message\n }\n }\n )\n }\n\n successfullySaved( message: string, duration = 5000 ) {\n this.successful( `${ message } saved successfully.`, duration )\n }\n\n successfullyDeleted( message: string, duration = 5000 ) {\n this.successful( `${ message } deleted successfully.`, duration )\n }\n\n successfullyRemoved( message: string, duration = 5000 ) {\n this.successful( `${ message } removed successfully.`, duration )\n }\n\n successfullyCreated( message: string, duration = 5000 ) {\n this.successful( `${ message } created successfully.`, duration )\n }\n\n successfullyAdded( message: string, duration = 5000 ) {\n this.successful( `${ message } added successfully.`, duration )\n }\n\n information( message: string, duration = null ) {\n this.snackbar.openFromComponent<SnackbarComponent,SnackbarConfig>(\n SnackbarComponent, \n {\n duration: duration,\n data: {\n type: 'info',\n message: message\n }\n }\n )\n }\n\n error( message: string, duration = null ) {\n this.snackbar.openFromComponent<SnackbarComponent,SnackbarConfig>(\n SnackbarComponent, \n {\n duration: duration,\n data: {\n type: 'error',\n message: message\n }\n }\n )\n }\n\n updated( message: string, duration = null ) {\n this.snackbar.openFromComponent<SnackbarComponent,SnackbarConfig>(\n SnackbarComponent, \n {\n duration: duration,\n data: {\n type: 'update',\n message: message\n }\n }\n )\n }\n}\n","export type CodeDescription = {\n code: string\n description: string\n}\n\nexport class CodeTable {\n constructor( \n // private _items: ( CodeDescription | CodeData | Option )[], \n private _items: ( CodeDescription )[], \n private _reload?: () => Promise<CodeDescription[]> \n ) {}\n\n get items(): readonly CodeDescription[] {\n return this._items\n }\n\n forCode( code: string ): CodeDescription {\n return this._items.find( o => o.code == code )\n }\n\n reload(): Promise<void> {\n if ( !this._reload ) return Promise.reject( 'no reload defined' )\n\n return this._reload()\n .then( res => {\n this._items = res\n } )\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatCardModule } from '@angular/material/card';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatRippleModule } from '@angular/material/core';\nimport { MatExpansionModule } from '@angular/material/expansion';\nimport { MatFormFieldModule } from \"@angular/material/form-field\";\nimport { MatIconModule, MatIconRegistry } from '@angular/material/icon';\nimport { MatInputModule } from \"@angular/material/input\";\nimport { MatListModule } from '@angular/material/list';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { MatRadioModule } from '@angular/material/radio';\nimport { MatSortModule } from '@angular/material/sort';\nimport { MatTableModule } from '@angular/material/table';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\nimport { RouterModule } from '@angular/router';\nimport { OWL_DATE_TIME_FORMATS, OwlDateTimeModule, OwlMomentDateTimeModule } from \"@busacca/ng-pick-datetime\";\nimport { NgxPaginationModule } from 'ngx-pagination';\nimport { ButtonComponent } from './components/button/button.component';\nimport { CellContentComponent } from './components/cell-content/cell-content.component';\nimport { DesktopViewDirective, DeviceViewComponent, MobileViewDirective } from './components/device-view/device-view.component';\nimport { ExpansionPanelComponent, ExpansionPanelFooterComponent, ExpansionPanelHeaderComponent } from './components/expansion-panel/expansion-panel.component';\nimport { FilterContainerComponent } from './components/filter-container/filter-container.component';\nimport { FilterDateComponent } from './components/filter-date/filter-date.component';\nimport { FilterSearchComponent } from './components/filter-search/filter-search.component';\nimport { FilterSelectComponent } from './components/filter-select/filter-select.component';\nimport { FiltersPanelComponent } from './components/filters-panel/filters-panel.component';\nimport { FormFieldComponent } from './components/form-field/form-field.component';\nimport { FormLayoutComponent } from './components/form-layout/form-layout.component';\nimport { GapComponent } from './components/gap/gap.component';\nimport { ListAttachmentsComponent } from './components/list-attachments/list-attachments.component';\nimport { ListEventHistoryComponent } from './components/list-event-history/list-event-history.component';\nimport { PageContainerComponent } from './components/page-container/page-container.component';\nimport { PageHeaderComponent } from './components/page-header/page-header.component';\nimport { RowListDesktopComponent } from './components/row-list-desktop/row-list-desktop.component';\nimport { RowListMobileComponent } from './components/row-list-mobile/row-list-mobile.component';\nimport { RowListPaginationComponent } from './components/row-list-pagination/row-list-pagination.component';\nimport { RowListSortingComponent } from './components/row-list-sorting/row-list-sorting.component';\nimport { SnackbarComponent } from './components/snackbar/snackbar.component';\nimport { ConfigurationService } from './services/configuration.service';\nimport { PageStateService } from './services/page-state.service';\nimport { SnackbarUtilService } from './services/snackbar-util.service';\nimport { DATE_FORMATS } from './utils/date.util';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { IconComponent } from './components/icon/icon.component';\n\n@NgModule({\n imports: [\n BrowserAnimationsModule,\n CommonModule,\n FormsModule,\n MatButtonModule,\n MatCardModule,\n MatCheckboxModule,\n MatExpansionModule,\n MatRadioModule,\n MatFormFieldModule,\n MatIconModule,\n MatInputModule,\n MatListModule,\n MatMenuModule,\n MatProgressSpinnerModule,\n MatRippleModule,\n MatSortModule,\n MatTableModule,\n MatTooltipModule,\n ReactiveFormsModule,\n RouterModule,\n OwlDateTimeModule,\n OwlMomentDateTimeModule,\n NgxPaginationModule,\n ],\n declarations: [\n ButtonComponent,\n CellContentComponent,\n ExpansionPanelComponent,\n ExpansionPanelHeaderComponent,\n ExpansionPanelFooterComponent,\n FilterContainerComponent,\n FilterDateComponent,\n FilterSearchComponent,\n FilterSelectComponent,\n FiltersPanelComponent,\n FormFieldComponent,\n FormLayoutComponent,\n GapComponent,\n ListAttachmentsComponent,\n ListEventHistoryComponent,\n PageContainerComponent,\n PageHeaderComponent,\n RowListDesktopComponent,\n RowListMobileComponent,\n RowListPaginationComponent,\n RowListSortingComponent,\n SnackbarComponent,\n DesktopViewDirective,\n MobileViewDirective,\n DeviceViewComponent,\n IconComponent,\n ],\n exports: [\n ButtonComponent,\n CellContentComponent,\n ExpansionPanelComponent,\n ExpansionPanelHeaderComponent,\n ExpansionPanelFooterComponent,\n FilterContainerComponent,\n FilterDateComponent,\n FilterSearchComponent,\n FilterSelectComponent,\n FiltersPanelComponent,\n FormFieldComponent,\n FormLayoutComponent,\n GapComponent,\n ListAttachmentsComponent,\n ListEventHistoryComponent,\n PageContainerComponent,\n PageHeaderComponent,\n RowListDesktopComponent,\n RowListMobileComponent,\n RowListPaginationComponent,\n RowListSortingComponent,\n SnackbarComponent,\n DesktopViewDirective,\n MobileViewDirective,\n DeviceViewComponent,\n IconComponent,\n ],\n providers: [\n SnackbarUtilService,\n ConfigurationService,\n PageStateService,\n { provide: OWL_DATE_TIME_FORMATS, useValue: DATE_FORMATS },\n ]\n})\nexport class NrNgxComponentLibModule {\n}\n","/*\n * Public API Surface of wfcc-application-ui\n */\nexport * from './components/button/button.component'\nexport * from './components/cell-content/cell-content.component'\nexport * from './components/device-view/device-view.component'\nexport * from './components/expansion-panel/expansion-panel.component'\nexport * from './components/filter-container/filter-container.component'\nexport * from './components/filter-date/filter-date.component'\nexport * from './components/filter-search/filter-search.component'\nexport * from './components/filter-select/filter-select.component'\nexport * from './components/filters-panel/filters-panel.component'\nexport * from './components/form-field/form-field.component'\nexport * from './components/form-layout/form-layout.component'\nexport * from './components/icon/icon.component'\nexport * from './components/gap/gap.component'\nexport * from './components/list-attachments/list-attachments.component'\nexport * from './components/list-event-history/list-event-history.component'\nexport * from './components/page-container/page-container.component'\nexport * from './components/page-header/page-header.component'\nexport * from './components/row-list-desktop/row-list-desktop.component'\nexport * from './components/row-list-mobile/row-list-mobile.component'\nexport * from './components/row-list-pagination/row-list-pagination.component'\nexport * from './components/row-list-sorting/row-list-sorting.component'\nexport * from './components/snackbar/snackbar.component'\n\nexport * from './directives/configuration-subscriber.base'\nexport * from './directives/row-list.base'\nexport * from './directives/nrcl.base'\n\nexport * from './services/snackbar-util.service'\nexport * from './services/configuration.service'\nexport * from './services/page-state.service'\n\nexport * from './utils/code-table.util'\nexport * from './utils/date.util'\nexport * from './utils/filter.util'\nexport * from './utils/row-list.util'\n\nexport * from './nr-ngx-component-lib.module'\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i3.IconComponent","i2","i3.ButtonComponent","i4.IconComponent","i6.IconComponent","i3","i5","i6","i7.IconComponent","i1.ButtonComponent","i2.MobileViewDirective","i2.DeviceViewComponent","i2.FilterContainerComponent","i3.FilterSelectComponent","i4.ButtonComponent","i5.CellContentComponent","i6.GapComponent","i7.RowListDesktopComponent","i8.RowListMobileComponent","i9.RowListPaginationComponent","i10.DesktopViewDirective","i10.MobileViewDirective","i10.DeviceViewComponent","i4","i3.FilterContainerComponent","i4.FilterSelectComponent","i2.IconComponent"],"mappings":"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"}
|