@indice/ng-components 0.3.5 → 0.3.8
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/esm2022/lib/controls/advanced-search/advanced-search.component.mjs +27 -22
- package/esm2022/lib/controls/advanced-search/models.mjs +2 -2
- package/esm2022/lib/controls/list-view/list-view.component.mjs +5 -4
- package/esm2022/lib/controls/user-profile-menu/user-profile-menu.component.mjs +3 -3
- package/esm2022/lib/layouts/shell/shell-header/shell-header.component.mjs +3 -3
- package/fesm2022/indice-ng-components.mjs +49 -43
- package/fesm2022/indice-ng-components.mjs.map +1 -1
- package/lib/controls/advanced-search/advanced-search.component.d.ts +7 -5
- package/lib/controls/list-view/list-view.component.d.ts +2 -2
- package/lib/controls/user-profile-menu/user-profile-menu.component.d.ts +1 -1
- package/lib/layouts/shell/shell-header/shell-header.component.d.ts +1 -2
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"indice-ng-components.mjs","sources":["../../../projects/ng-components/src/lib/directives/click-outside.directive.ts","../../../projects/ng-components/src/lib/controls/drop-down-menu/drop-down-menu.component.ts","../../../projects/ng-components/src/lib/controls/drop-down-menu/drop-down-menu.component.html","../../../projects/ng-components/src/lib/icons.ts","../../../projects/ng-components/src/lib/types.ts","../../../projects/ng-components/src/lib/controls/pager/pager.component.ts","../../../projects/ng-components/src/lib/controls/pager/pager.component.html","../../../projects/ng-components/src/lib/controls/breadcrumb/breadcrumb-item.ts","../../../projects/ng-components/src/lib/tokens.ts","../../../projects/ng-components/src/lib/services/utilities.service.ts","../../../projects/ng-components/src/lib/services/breadcrumb.service.ts","../../../projects/ng-components/src/lib/controls/breadcrumb/breadcrumb.component.ts","../../../projects/ng-components/src/lib/controls/breadcrumb/breadcrumb.component.html","../../../projects/ng-components/src/lib/controls/list-view/list-tile.component.ts","../../../projects/ng-components/src/lib/controls/list-view/list-column.component.ts","../../../projects/ng-components/src/lib/controls/list-view/list-details-section.component.ts","../../../projects/ng-components/src/lib/controls/advanced-search/models.ts","../../../projects/ng-components/src/lib/controls/date-picker/date-picker.component.ts","../../../projects/ng-components/src/lib/controls/date-picker/date-picker.component.html","../../../projects/ng-components/src/lib/controls/advanced-search/advanced-search.component.ts","../../../projects/ng-components/src/lib/controls/advanced-search/advanced-search.component.html","../../../projects/ng-components/src/lib/controls/list-view/list-view-empty-state.component.ts","../../../projects/ng-components/src/lib/controls/list-view/list-view-empty-state.component.html","../../../projects/ng-components/src/lib/controls/skeleton-loader/skeleton-loader.component.ts","../../../projects/ng-components/src/lib/controls/skeleton-loader/skeleton-loader.component.html","../../../projects/ng-components/src/lib/controls/list-view/list-view.component.ts","../../../projects/ng-components/src/lib/controls/list-view/list-view.component.html","../../../projects/ng-components/src/lib/controls/collapsible-panel/collapsible-panel.component.ts","../../../projects/ng-components/src/lib/controls/collapsible-panel/collapsible-panel.component.html","../../../projects/ng-components/src/lib/controls/kpi-tile/kpi-tile.component.ts","../../../projects/ng-components/src/lib/controls/kpi-tile/kpi-tile.component.html","../../../projects/ng-components/src/lib/services/toaster.service.ts","../../../projects/ng-components/src/lib/controls/toaster/toaster.component.ts","../../../projects/ng-components/src/lib/controls/toaster/toaster.component.html","../../../projects/ng-components/src/lib/controls/toaster/toaster-container.component.ts","../../../projects/ng-components/src/lib/controls/toaster/toaster-container.component.html","../../../projects/ng-components/src/lib/controls/avatar-initials/avatar-initials.component.ts","../../../projects/ng-components/src/lib/controls/avatar-initials/avatar-initials.component.html","../../../projects/ng-components/src/lib/controls/toggle/toggle.component.ts","../../../projects/ng-components/src/lib/controls/toggle/toggle.component.html","../../../projects/ng-components/src/lib/controls/side-pane/side-pane.component.ts","../../../projects/ng-components/src/lib/controls/side-pane/side-pane.component.html","../../../projects/ng-components/src/lib/controls/nav-links-list/nav-links-list.component.ts","../../../projects/ng-components/src/lib/controls/nav-links-list/nav-links-list.component.html","../../../projects/ng-components/src/lib/controls/combobox/combobox.component.ts","../../../projects/ng-components/src/lib/controls/combobox/combobox.component.html","../../../projects/ng-components/src/lib/controls/tabs/lib-tab-label.directive.ts","../../../projects/ng-components/src/lib/controls/tabs/lib-tab.component.ts","../../../projects/ng-components/src/lib/controls/tabs/lib-tab-group.component.ts","../../../projects/ng-components/src/lib/controls/tabs/lib-tab-group.component.html","../../../projects/ng-components/src/lib/controls/stepper/lib-step-info.directive.ts","../../../projects/ng-components/src/lib/controls/stepper/lib-step-label.directive.ts","../../../projects/ng-components/src/lib/controls/stepper/lib-step.component.ts","../../../projects/ng-components/src/lib/controls/stepper/types/stepper-type.ts","../../../projects/ng-components/src/lib/controls/stepper/lib-stepper.component.ts","../../../projects/ng-components/src/lib/controls/stepper/lib-stepper.component.html","../../../projects/ng-components/src/lib/controls/toggle-button/toggle-button.component.ts","../../../projects/ng-components/src/lib/controls/toggle-button/toggle-button.component.html","../../../projects/ng-components/src/lib/controls/toggle-buttons-list/toggle-buttons-list.component.ts","../../../projects/ng-components/src/lib/controls/toggle-buttons-list/toggle-buttons-list.component.html","../../../projects/ng-components/src/lib/controls/content-tile/content-tile-header/content-tile-header.component.ts","../../../projects/ng-components/src/lib/controls/content-tile/content-tile-item/content-tile-item.component.ts","../../../projects/ng-components/src/lib/controls/content-tile/content-tile.component.ts","../../../projects/ng-components/src/lib/controls/content-tile/content-tile.component.html","../../../projects/ng-components/src/lib/controls/stats-grid/stats-grid.component.ts","../../../projects/ng-components/src/lib/controls/stats-grid/stats-grid.component.html","../../../projects/ng-components/src/lib/controls/progress-bar/progress-bar.component.ts","../../../projects/ng-components/src/lib/controls/progress-bar/progress-bar.component.html","../../../projects/ng-components/src/lib/directives/dynamic-component-host.directive.ts","../../../projects/ng-components/src/lib/services/component-loader/content-ref.class.ts","../../../projects/ng-components/src/lib/services/component-loader/component-loader.class.ts","../../../projects/ng-components/src/lib/services/component-loader/component-loader.factory.ts","../../../projects/ng-components/src/lib/services/user-settings.service.ts","../../../projects/ng-components/src/lib/layouts/shell/shell-sidebar/shell-sidebar.component.ts","../../../projects/ng-components/src/lib/layouts/shell/shell-sidebar/shell-sidebar.component.html","../../../projects/ng-components/src/lib/controls/language-selection/language-selection.component.ts","../../../projects/ng-components/src/lib/controls/language-selection/language-selection.component.html","../../../projects/ng-components/src/lib/controls/notifications-indicator/notifications-indicator.component.ts","../../../projects/ng-components/src/lib/controls/notifications-indicator/notifications-indicator.component.html","../../../projects/ng-components/src/lib/controls/user-profile-menu/user-profile-menu.component.ts","../../../projects/ng-components/src/lib/controls/user-profile-menu/user-profile-menu.component.html","../../../projects/ng-components/src/lib/layouts/shell/shell-header/shell-header.component.ts","../../../projects/ng-components/src/lib/layouts/shell/shell-header/shell-header.component.html","../../../projects/ng-components/src/lib/layouts/shell/shell-sidebar-header/shell-sidebar-header.component.ts","../../../projects/ng-components/src/lib/layouts/shell/shell-sidebar-header/shell-sidebar-header.component.html","../../../projects/ng-components/src/lib/layouts/shell/shell-sidebar-layout/shell-sidebar-layout.component.ts","../../../projects/ng-components/src/lib/layouts/shell/shell-sidebar-layout/shell-sidebar-layout.component.html","../../../projects/ng-components/src/lib/layouts/shell/shell-footer/shell-footer.component.ts","../../../projects/ng-components/src/lib/layouts/shell/shell-footer/shell-footer.component.html","../../../projects/ng-components/src/lib/layouts/shell/shell-stacked-layout/shell-stacked-layout.component.ts","../../../projects/ng-components/src/lib/layouts/shell/shell-stacked-layout/shell-stacked-layout.component.html","../../../projects/ng-components/src/lib/layouts/shell/shell-layout/shell-layout.component.ts","../../../projects/ng-components/src/lib/layouts/shell/shell-layout/shell-layout.component.html","../../../projects/ng-components/src/lib/layouts/views/view-layout/view-layout.component.ts","../../../projects/ng-components/src/lib/layouts/views/view-layout/view-layout.component.html","../../../projects/ng-components/src/lib/layouts/views/model-view-layout/model-view-layout.component.ts","../../../projects/ng-components/src/lib/layouts/views/model-view-layout/model-view-layout.component.html","../../../projects/ng-components/src/lib/layouts/views/side-view-layout/side-view-layout.component.ts","../../../projects/ng-components/src/lib/layouts/views/side-view-layout/side-view-layout.component.html","../../../projects/ng-components/src/lib/layouts/views/form-layout/form-layout.component.ts","../../../projects/ng-components/src/lib/layouts/views/form-layout/form-layout.component.html","../../../projects/ng-components/src/lib/pages/auth/auth-callback/auth-callback.component.ts","../../../projects/ng-components/src/lib/pages/auth/auth-callback/auth-callback.component.html","../../../projects/ng-components/src/lib/pages/auth/auth-renew/auth-renew.component.ts","../../../projects/ng-components/src/lib/pages/auth/logged-out/logged-out.component.ts","../../../projects/ng-components/src/lib/pages/auth/logged-out/logged-out.component.html","../../../projects/ng-components/src/lib/pages/http-status/error/error.component.ts","../../../projects/ng-components/src/lib/pages/http-status/error/error.component.html","../../../projects/ng-components/src/lib/pages/http-status/page-not-found/page-not-found.component.ts","../../../projects/ng-components/src/lib/pages/http-status/page-not-found/page-not-found.component.html","../../../projects/ng-components/src/lib/pages/http-status/unauthorized/unauthorized.component.ts","../../../projects/ng-components/src/lib/pages/http-status/unauthorized/unauthorized.component.html","../../../projects/ng-components/src/lib/pipes/address.pipe.ts","../../../projects/ng-components/src/lib/pipes/duration-format.pipe.ts","../../../projects/ng-components/src/lib/pipes/short-number.pipe.ts","../../../projects/ng-components/src/lib/helpers/base-list.component.ts","../../../projects/ng-components/src/lib/services/modal-service/modal-styles.class.ts","../../../projects/ng-components/src/lib/services/modal-service/modal-backdrop-component.ts","../../../projects/ng-components/src/lib/services/modal-service/modal-options.class.ts","../../../projects/ng-components/src/lib/services/modal-service/modal-container-component.ts","../../../projects/ng-components/src/lib/services/modal-service/modal.class.ts","../../../projects/ng-components/src/lib/services/modal-service/modal-service.ts","../../../projects/ng-components/src/lib/ng-components.module.ts","../../../projects/ng-components/src/public-api.ts","../../../projects/ng-components/src/indice-ng-components.ts"],"sourcesContent":["//\r\n// https://github.com/arkon/ng-click-outside\r\n// the project is inactive - so imoved the directive code in our project\r\n//\r\nimport {\r\n Directive,\r\n ElementRef,\r\n EventEmitter,\r\n Inject,\r\n Input,\r\n OnChanges,\r\n OnDestroy,\r\n OnInit,\r\n Output,\r\n PLATFORM_ID,\r\n SimpleChanges,\r\n NgZone,\r\n} from '@angular/core';\r\nimport { isPlatformBrowser } from '@angular/common';\r\n\r\n// tslint:disable-next-line:directive-selector\r\n@Directive({ selector: '[clickOutside]' })\r\nexport class ClickOutsideDirective implements OnInit, OnChanges, OnDestroy {\r\n\r\n @Input() clickOutsideEnabled = true;\r\n\r\n @Input() attachOutsideOnClick = false;\r\n @Input() delayClickOutsideInit = false;\r\n @Input() emitOnBlur = false;\r\n\r\n @Input() exclude = '';\r\n @Input() excludeBeforeClick = false;\r\n\r\n @Input() clickOutsideEvents = '';\r\n\r\n @Output() clickOutside: EventEmitter<Event> = new EventEmitter<Event>();\r\n\r\n // tslint:disable-next-line:variable-name\r\n private _nodesExcluded: Array<HTMLElement> = [];\r\n // tslint:disable-next-line:variable-name\r\n private _events: Array<string> = ['click'];\r\n\r\n constructor(\r\n // tslint:disable-next-line:variable-name\r\n private _el: ElementRef,\r\n // tslint:disable-next-line:variable-name\r\n private _ngZone: NgZone,\r\n @Inject(PLATFORM_ID) private platformId: any) {\r\n this._initOnClickBody = this._initOnClickBody.bind(this);\r\n this._onClickBody = this._onClickBody.bind(this);\r\n this._onWindowBlur = this._onWindowBlur.bind(this);\r\n }\r\n\r\n ngOnInit(): void {\r\n if (!isPlatformBrowser(this.platformId)) { return; }\r\n\r\n this._init();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (!isPlatformBrowser(this.platformId)) { return; }\r\n\r\n this._removeClickOutsideListener();\r\n this._removeAttachOutsideOnClickListener();\r\n this._removeWindowBlurListener();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (!isPlatformBrowser(this.platformId)) { return; }\r\n\r\n // tslint:disable-next-line:no-string-literal\r\n if (changes['attachOutsideOnClick'] || changes['exclude'] || changes['emitOnBlur']) {\r\n this._init();\r\n }\r\n }\r\n\r\n private _init(): void {\r\n if (this.clickOutsideEvents !== '') {\r\n this._events = this.clickOutsideEvents.split(',').map(e => e.trim());\r\n }\r\n\r\n this._excludeCheck();\r\n\r\n if (this.attachOutsideOnClick) {\r\n this._initAttachOutsideOnClickListener();\r\n } else {\r\n this._initOnClickBody();\r\n }\r\n\r\n if (this.emitOnBlur) {\r\n this._initWindowBlurListener();\r\n }\r\n }\r\n\r\n private _initOnClickBody(): void {\r\n if (this.delayClickOutsideInit) {\r\n setTimeout(this._initClickOutsideListener.bind(this));\r\n } else {\r\n this._initClickOutsideListener();\r\n }\r\n }\r\n\r\n private _excludeCheck(): void {\r\n if (this.exclude) {\r\n try {\r\n const nodes = Array.from(document.querySelectorAll(this.exclude)) as Array<HTMLElement>;\r\n if (nodes) {\r\n this._nodesExcluded = nodes;\r\n }\r\n } catch (err) {\r\n console.error('[ng-click-outside] Check your exclude selector syntax.', err);\r\n }\r\n }\r\n }\r\n\r\n private _onClickBody(ev: Event): void {\r\n if (!this.clickOutsideEnabled) { return; }\r\n\r\n if (this.excludeBeforeClick) {\r\n this._excludeCheck();\r\n }\r\n\r\n if (!this._el.nativeElement.contains(ev.target) && !this._shouldExclude(ev.target)) {\r\n this._emit(ev);\r\n\r\n if (this.attachOutsideOnClick) {\r\n this._removeClickOutsideListener();\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Resolves problem with outside click on iframe\r\n * @see https://github.com/arkon/ng-click-outside/issues/32\r\n */\r\n private _onWindowBlur(ev: Event): void {\r\n setTimeout(() => {\r\n if (!document.hidden) {\r\n this._emit(ev);\r\n }\r\n });\r\n }\r\n\r\n private _emit(ev: Event): void {\r\n if (!this.clickOutsideEnabled) { return; }\r\n\r\n this._ngZone.run(() => this.clickOutside.emit(ev));\r\n }\r\n\r\n private _shouldExclude(target: any): boolean {\r\n // tslint:disable-next-line:prefer-const\r\n for (let excludedNode of this._nodesExcluded) {\r\n if (excludedNode.contains(target)) {\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n\r\n private _initClickOutsideListener(): void {\r\n this._ngZone.runOutsideAngular(() => {\r\n this._events.forEach(e => document.addEventListener(e, this._onClickBody));\r\n });\r\n }\r\n\r\n private _removeClickOutsideListener(): void {\r\n this._ngZone.runOutsideAngular(() => {\r\n this._events.forEach(e => document.removeEventListener(e, this._onClickBody));\r\n });\r\n }\r\n\r\n private _initAttachOutsideOnClickListener(): void {\r\n this._ngZone.runOutsideAngular(() => {\r\n this._events.forEach(e => this._el.nativeElement.addEventListener(e, this._initOnClickBody));\r\n });\r\n }\r\n\r\n private _removeAttachOutsideOnClickListener(): void {\r\n this._ngZone.runOutsideAngular(() => {\r\n this._events.forEach(e => this._el.nativeElement.removeEventListener(e, this._initOnClickBody));\r\n });\r\n }\r\n\r\n private _initWindowBlurListener(): void {\r\n this._ngZone.runOutsideAngular(() => {\r\n window.addEventListener('blur', this._onWindowBlur);\r\n });\r\n }\r\n\r\n private _removeWindowBlurListener(): void {\r\n this._ngZone.runOutsideAngular(() => {\r\n window.removeEventListener('blur', this._onWindowBlur);\r\n });\r\n }\r\n}\r\n","import { Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges } from '@angular/core';\r\nimport { MenuOption } from '../../types';\r\n\r\n@Component({\r\n // tslint:disable-next-line:component-selector\r\n selector: 'lib-drop-down-menu',\r\n templateUrl: './drop-down-menu.component.html',\r\n})\r\nexport class DropDownMenuComponent implements OnInit, OnChanges {\r\n @Input() options: MenuOption[] | undefined = [];\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('selected') selectedValue: any | null | undefined = undefined;\r\n @Input() multiple = false;\r\n @Input() placeholder: string = 'Παρακαλώ επιλέξτε...';\r\n @Input('show-icons') showIcons = true;\r\n\r\n private selectedOption$: MenuOption | null = null;\r\n public get selectedOption(): MenuOption | null {\r\n return this.selectedOption$;\r\n }\r\n public set selectedOption(option: MenuOption | null) {\r\n this.selectedOption$ = option;\r\n this.selectedValue = option ? option.value : null;\r\n this.expanded = false;\r\n }\r\n\r\n @Output() selectedChange: EventEmitter<any> = new EventEmitter<any>();\r\n @Output() selectedChanged: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n private expanded$ = false;\r\n public get expanded(): boolean {\r\n return this.expanded$;\r\n }\r\n public set expanded(value: boolean) {\r\n this.expanded$ = value;\r\n }\r\n constructor() {}\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (this.options && this.options.length > 0 && this.selectedValue !== null && this.selectedValue !== undefined) {\r\n this.selectedOption$ = this.options.filter((o) => o.value === this.selectedValue)[0];\r\n }\r\n }\r\n\r\n ngOnInit(): void {}\r\n\r\n public isSelected(option: MenuOption): boolean {\r\n return option != null && this.selectedValue != null && option.value === this.selectedValue;\r\n }\r\n\r\n public onClickOutside($event: any): void {\r\n this.expanded = false;\r\n }\r\n\r\n public selectOption(option: MenuOption): void {\r\n this.selectedOption = option;\r\n this.selectedChange.emit(option.value);\r\n this.selectedChanged.emit(option.value);\r\n }\r\n}\r\n","<div class=\"dropdown-container\" (clickOutside)=\"onClickOutside($event)\">\r\n <button\r\n type=\"button\"\r\n (click)=\"expanded = !expanded\"\r\n class=\"dropdown-button\"\r\n aria-haspopup=\"listbox\"\r\n aria-expanded=\"true\"\r\n aria-labelledby=\"listbox-label\">\r\n <span class=\"dropdown-selected-text\">\r\n <i *ngIf=\"selectedOption?.icon && showIcons\" \r\n [class]=\"selectedOption?.icon\" \r\n [class.mr-2]=\"selectedOption?.icon\"></i>{{ selectedOption?.text || placeholder }}\r\n </span>\r\n <span class=\"dropdown-button-icon\">\r\n <!-- Heroicon name: solid/selector -->\r\n <svg class=\"dropdown-arrow\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\">\r\n <path\r\n fill-rule=\"evenodd\"\r\n d=\"M10 3a1 1 0 01.707.293l3 3a1 1 0 01-1.414 1.414L10 5.414 7.707 7.707a1 1 0 01-1.414-1.414l3-3A1 1 0 0110 3zm-3.707 9.293a1 1 0 011.414 0L10 14.586l2.293-2.293a1 1 0 011.414 1.414l-3 3a1 1 0 01-1.414 0l-3-3a1 1 0 010-1.414z\"\r\n clip-rule=\"evenodd\"\r\n />\r\n </svg>\r\n </span>\r\n </button>\r\n <ul\r\n *ngIf=\"expanded && options && options.length > 0\"\r\n class=\"dropdown-ul\"\r\n tabindex=\"-1\"\r\n role=\"listbox\"\r\n aria-labelledby=\"listbox-label\"\r\n aria-activedescendant=\"listbox-option-3\"\r\n >\r\n <ng-container *ngFor=\"let option of options\">\r\n <li\r\n [class]=\"isSelected(option) ? 'dropdown-li-selected' : 'dropdown-li'\"\r\n (click)=\"selectOption(option)\"\r\n id=\"listbox-option-0\"\r\n role=\"option\"\r\n >\r\n <span [class]=\"isSelected(option) ? 'dropdown-li-selected-text' : 'dropdown-li-text'\">\r\n <i *ngIf=\"option.icon && showIcons\" [class]=\"option.icon\" [class.mr-2]=\"option.icon\"></i>{{ option.text }}\r\n </span>\r\n <span *ngIf=\"isSelected(option)\" class=\"dropdown-li-selected-indicator-container\">\r\n <!-- Heroicon name: solid/check -->\r\n <svg\r\n class=\"dropdown-li-selected-indicator\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 20 20\"\r\n fill=\"currentColor\"\r\n aria-hidden=\"true\"\r\n >\r\n <path\r\n fill-rule=\"evenodd\"\r\n d=\"M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z\"\r\n clip-rule=\"evenodd\"\r\n />\r\n </svg>\r\n </span>\r\n </li>\r\n </ng-container>\r\n </ul>\r\n</div>\r\n","export class Icons {\r\n // https://uifabricicons.azurewebsites.net/\r\n public static Dashboard = `ms-Icon ms-Icon--HomeGroup `;\r\n public static Locations = `ms-Icon ms-Icon--MapPin `;\r\n public static ChargePoints = `ms-Icon ms-Icon--ChatBot `;\r\n public static Transations = `ms-Icon ms-Icon--LightningBolt `;\r\n public static Badges = `ms-Icon ms-Icon--IDBadge `;\r\n\r\n public static Information = `ms-Icon ms-Icon--Info`;\r\n public static Refresh = `ms-Icon ms-Icon--Refresh`;\r\n public static Search = `ms-Icon ms-Icon--Search`;\r\n public static Add = `ms-Icon ms-Icon--Add`;\r\n public static Delete = `ms-Icon ms-Icon--Delete`;\r\n public static SendEmail = `ms-Icon ms-Icon--NewMail`;\r\n public static Filter = `ms-Icon ms-Icon--Filter`;\r\n public static Export = `ms-Icon ms-Icon--ExcelDocument`;\r\n public static Import = `ms-Icon ms-Icon--PeopleAdd`;\r\n\r\n public static TilesView = `ms-Icon ms-Icon--AppIconDefault`;\r\n public static TableView = `ms-Icon ms-Icon--Table`;\r\n public static MapView = `ms-Icon ms-Icon--MapPin`;\r\n public static EntryView = `ms-Icon ms-Icon--EntryView`;\r\n\r\n public static Separator = `ms-Icon ms-Icon--Separator text-white`;\r\n\r\n public static ItemsCount = 'ms-Icon ms-Icon--Boards';\r\n\r\n public static Heart = 'ms-Icon ms-Icon--Heart';\r\n public static HeartBroken = 'ms-Icon ms-Icon--HeartBroken';\r\n public static DateTime = 'ms-Icon ms-Icon--ReminderTime';\r\n\r\n public static Expand = 'ms-Icon ms-Icon--ChevronDown';\r\n public static Collapse = 'ms-Icon ms-Icon--ChevronUp';\r\n\r\n public static SortAsc = 'ms-Icon ms-Icon--Ascending';\r\n public static SortDesc = 'ms-Icon ms-Icon--Descending';\r\n\r\n public static Details = ' ms-Icon ms-Icon--AccountActivity';\r\n\r\n public static Messages = ' ms-Icon ms-Icon--Message';\r\n public static MessagesUnread = ' ms-Icon ms-Icon--MessageFill';\r\n\r\n public static External = ' ms-Icon ms-Icon--FileSymlink';\r\n public static Statistics = ' ms-Icon ms-Icon--BIDashboard';\r\n}\r\n","import { Observable } from 'rxjs';\r\nimport { Icons } from './icons';\r\nimport { Params } from '@angular/router';\r\n\r\n\r\nexport interface IAppNotifications {\r\n messages: Observable<IResultSet<NavLink>>;\r\n getMessage?: (predicate: (value: any, index: number, obj: any[]) => any) => any | undefined;\r\n markMessageRead?: (predicate: (value: any, index: number, obj: any[]) => any) => any | undefined;\r\n refresh?: () => void | undefined;\r\n inboxAction?: () => void | undefined;\r\n}\r\n\r\nexport interface IAppLanguagesService {\r\n options: Observable<MenuOption[]> | undefined;\r\n selected?: string;\r\n default?: string;\r\n setSelected?: (lang: string) => void | undefined;\r\n}\r\n\r\nexport interface IAppLinks {\r\n public: Observable<NavLink[]>;\r\n main: Observable<NavLink[]>;\r\n profile: Observable<NavLink[]>;\r\n profileActions: Observable<NavLink[]>;\r\n legal: Observable<NavLink[]>;\r\n brand: Observable<NavLink[]>;\r\n notifications?: Observable<NavLink>;\r\n}\r\n\r\n\r\nexport class NavLink {\r\n constructor(text: string, path: string, exact: boolean = false, external: boolean = false, icon?: string, data?: any, queryParams?: Params) {\r\n this.text = text;\r\n this.path = path;\r\n this.exact = exact;\r\n this.external = external;\r\n this.icon = icon;\r\n this.data = data;\r\n this.queryParams = queryParams;\r\n }\r\n public text: string;\r\n public path: string;\r\n public exact: boolean;\r\n public external: boolean;\r\n public icon: string | undefined;\r\n public type = 'router';\r\n public data: any | undefined;\r\n public queryParams: Params | undefined;\r\n}\r\n\r\nexport class ExternalNavLink extends NavLink {\r\n constructor(text: string, path: string, openInNewTab?: boolean, icon?: string) {\r\n super(text, path, true, openInNewTab, icon ?? Icons.External);\r\n }\r\n public type = 'external';\r\n}\r\n\r\nexport class FragmentNavLink extends NavLink {\r\n constructor(text: string, path: string, icon?: string) {\r\n super(text, path, true, true, icon);\r\n }\r\n public type = 'fragment';\r\n}\r\n\r\nexport class NotificationNavLink extends NavLink {\r\n constructor(text: string, path: string, public isRead: boolean, public creationDate?: Date) {\r\n super(text, path, true, false, undefined);\r\n }\r\n}\r\n\r\nexport class ViewAction {\r\n public type: string;\r\n public key: string | null;\r\n public param: any;\r\n public icon: string;\r\n public tooltip: string | null;\r\n public text?: string;\r\n\r\n constructor(type: string, key: string | null, param: any, icon: string, tooltip: string | null, text?: string) {\r\n this.type = type;\r\n this.key = key;\r\n this.param = param;\r\n this.icon = icon;\r\n this.tooltip = tooltip;\r\n this.text = text;\r\n }\r\n}\r\n\r\nexport class ListViewType {\r\n public static Tiles = 'tiles';\r\n public static Table = 'table';\r\n public static Map = 'map';\r\n public static Gallery = 'gallery';\r\n}\r\n\r\nexport class RouterViewAction extends ViewAction {\r\n public outlet: string | null = null;\r\n public link: string | null = null;\r\n constructor(icon: string, link: string, outlet: string | null, tooltip: string | null, text?: string) {\r\n super('router-link', null, null, icon, tooltip, text);\r\n this.outlet = outlet;\r\n this.link = link;\r\n }\r\n}\r\n\r\n\r\nexport class SwitchViewAction extends ViewAction {\r\n constructor(view: string, icon: string, tooltip: string | null) {\r\n super('switch-view', null, view, icon, tooltip);\r\n }\r\n}\r\n\r\nexport interface IResultSet<T> {\r\n count: number;\r\n items: T[];\r\n}\r\n\r\nexport class HeaderMetaItem {\r\n public key: string | null = null;\r\n public icon: string | null = null;\r\n public text: string | null = null;\r\n}\r\n\r\nexport class MenuOption {\r\n constructor(text: string, value: any, description?: string, data?: any, icon?: string) {\r\n this.text = text;\r\n this.value = value;\r\n this.description = description;\r\n this.data = data;\r\n this.icon = icon;\r\n }\r\n public text: string;\r\n public value: any;\r\n public description: string | undefined;\r\n public data: any | undefined;\r\n public icon: string | undefined;\r\n}\r\n\r\nexport enum PagerPosition {\r\n Top = 'top',\r\n Bottom = 'bottom',\r\n Both = 'both'\r\n}\r\n\r\nexport interface IAddress {\r\n id?: string;\r\n street?: string | null;\r\n streetNumber?: string | null;\r\n city?: string | null;\r\n region?: string | null;\r\n postalCode?: string | null;\r\n country?: string | null;\r\n}\r\n\r\nexport interface IShellConfig {\r\n appLogo: string;\r\n appLogoAlt: string;\r\n breadcrumb: boolean;\r\n customFooterComponent?: any;\r\n customHeaderComponent?: any;\r\n fluid: boolean;\r\n layout?: ShellLayoutType;\r\n showAlertsOnHeader?: boolean;\r\n showFooter: boolean;\r\n showHeader: boolean;\r\n showLangsOnHeader?: boolean;\r\n showUserNameOnHeader?: boolean;\r\n}\r\n\r\nexport enum ShellLayoutType {\r\n Stacked = 'Stacked',\r\n Sidebar = 'Sidebar'\r\n}\r\n\r\nexport class DefaultShellConfig implements IShellConfig {\r\n appLogo = 'https://tailwindui.com/img/logos/workflow-mark.svg?color=white';\r\n appLogoAlt = 'your app name here';\r\n breadcrumb = false;\r\n fluid = false;\r\n layout = ShellLayoutType.Stacked;\r\n showAlertsOnHeader = false;\r\n showFooter = true;\r\n showHeader = true;\r\n showUserNameOnHeader = false;\r\n}\r\n\r\nexport enum SCREEN_SIZE {\r\n XS,\r\n SM,\r\n MD,\r\n LG,\r\n XL\r\n}\r\n\r\nexport interface IScreenSize {\r\n id: SCREEN_SIZE;\r\n name: string;\r\n css: string;\r\n}\r\n\r\nexport enum ToastType {\r\n Info = 'info',\r\n Success = 'success',\r\n Error = 'error',\r\n Warning = 'warning'\r\n}\r\n\r\nexport const NULL_TOAST = { title: '_____NULL_____' } as Toast;\r\n\r\nexport interface Toast {\r\n type: ToastType;\r\n title: string;\r\n body: string;\r\n delay: number;\r\n}\r\n\r\nexport enum SidePaneSize {\r\n Default = '',\r\n Small25 = '25%',\r\n Medium50 = '50%',\r\n Large75 = '75%'\r\n}\r\n\r\nexport enum SidePaneOverlayType {\r\n Default = '',\r\n None = '-opacity-0',\r\n Light = '',\r\n Dark = '-opacity-50'\r\n}\r\n\r\n\r\nexport interface IValidationProblemDetails {\r\n type?: string | undefined;\r\n title?: string | undefined;\r\n status?: number | undefined;\r\n detail?: string | undefined;\r\n instance?: string | undefined;\r\n errors?: { [key: string]: string[]; } | undefined;\r\n}\r\n\r\nexport type UserSettingKey = 'MobileSideBar';\r\n","import { Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { Icons } from '../../icons';\r\nimport { MenuOption } from '../../types';\r\n\r\n@Component({\r\n selector: 'lib-pager',\r\n templateUrl: './pager.component.html'\r\n})\r\nexport class PagerComponent implements OnInit, OnChanges {\r\n // BUSY STATE\r\n @Input() busy = false;\r\n // PAGING\r\n @Input() count: number | null = null;\r\n @Input() page = 1;\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('page-size') pageSize = 20;\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('page-size-options') pageSizeOptions: MenuOption[] = [\r\n new MenuOption('10', 10),\r\n new MenuOption('20', 20),\r\n new MenuOption('30', 30),\r\n new MenuOption('50', 50),\r\n new MenuOption('100', 100)\r\n ];\r\n public pages: MenuOption[] = [];\r\n @Output() pageChanged: EventEmitter<number> = new EventEmitter<number>();\r\n @Output() pageSizeChanged: EventEmitter<number> = new EventEmitter<number>();\r\n public canPreviousPage = false;\r\n public canNextPage = false;\r\n\r\n // SORTING\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('sort-options') sortOptions: MenuOption[] = [];\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('sort') sort: string | null = null;\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('sort-dir') sortdir: string | null = 'desc';\r\n @Output() sortChanged: EventEmitter<string> = new EventEmitter<string>();\r\n @Output() sortdirChanged: EventEmitter<string> = new EventEmitter<string>();\r\n public sortdirIcon = Icons.SortDesc;\r\n\r\n constructor(private router: Router) { }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n this.calcPages();\r\n }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n private calcPages(): void {\r\n this.pages = [];\r\n if (this.count && this.count > 0) {\r\n const pageCount = this.count / this.pageSize;\r\n for (let i = 0; i < pageCount; i++) {\r\n this.pages.push(new MenuOption(i + 1 + '', i + 1));\r\n }\r\n }\r\n this.canPreviousPage = this.page > 1;\r\n this.canNextPage = this.page < this.pages.length;\r\n }\r\n\r\n public nextPage(): void {\r\n const next = this.page + 1;\r\n this.gotoPage(next);\r\n }\r\n\r\n public previousPage(): void {\r\n const previous = this.page - 1;\r\n this.gotoPage(previous);\r\n }\r\n\r\n public gotoPage(page: number): void {\r\n this.page = page;\r\n this.pageChanged.emit(page);\r\n this.calcPages();\r\n }\r\n\r\n public pageSizeOptionChanged(pageSize: number): void {\r\n this.pageSizeChanged.emit(pageSize);\r\n this.calcPages();\r\n }\r\n\r\n public pageOptionChanged(page: number): void {\r\n this.pageChanged.emit(page);\r\n this.calcPages();\r\n }\r\n\r\n public sortOptionChanged(sort: string): void {\r\n this.sortChanged.emit(sort);\r\n }\r\n\r\n public toggleSortdir(): void {\r\n let sortdir = 'desc';\r\n if (this.sortdir === 'desc') {\r\n sortdir = 'asc';\r\n this.sortdirIcon = Icons.SortAsc;\r\n } else {\r\n sortdir = 'desc';\r\n this.sortdirIcon = Icons.SortDesc;\r\n }\r\n this.sortdirChanged.emit(sortdir);\r\n }\r\n\r\n}\r\n","<div class=\"pager-container\">\r\n <div class=\"pager-container-near\">\r\n <ng-content select=\"[pager-near-content]\"></ng-content>\r\n </div>\r\n <div class=\"pager-container-far\">\r\n <div class=\"inline-flex\" *ngIf=\"sortOptions && sortOptions.length > 0\">\r\n <lib-drop-down-menu [options]=\"sortOptions\" [selected]=\"sort\" (selectedChanged)=\"sortOptionChanged($event)\"></lib-drop-down-menu>\r\n <button (click)=\"toggleSortdir()\" [disabled]=\"!sort || busy\" class=\"pager-icon-button\">\r\n <span class=\"sr-only\">sort direction</span>\r\n <span class=\"inline-block relative\">\r\n <i [class]=\"sortdirIcon\"></i>\r\n </span>\r\n </button>\r\n </div>\r\n <div class=\"pager-pages-container\">\r\n <lib-drop-down-menu [options]=\"pageSizeOptions\" [selected]=\"pageSize\" (selectedChanged)=\"pageSizeOptionChanged($event)\"></lib-drop-down-menu>\r\n <div class=\"mx-1\">\r\n <button [disabled]=\"!canPreviousPage || busy\" (click)=\"previousPage()\"\r\n class=\"pager-arrow-button-left\">\r\n <span class=\"sr-only\">Previous</span>\r\n <svg class=\"h-5 w-5\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\">\r\n <path fill-rule=\"evenodd\" d=\"M12.707 5.293a1 1 0 010 1.414L9.414 10l3.293 3.293a1 1 0 01-1.414 1.414l-4-4a1 1 0 010-1.414l4-4a1 1 0 011.414 0z\" clip-rule=\"evenodd\" />\r\n </svg>\r\n </button>\r\n <button type=\"button\"\r\n [disabled]=\"!canNextPage || busy\" (click)=\"nextPage()\"\r\n class=\"pager-arrow-button-right\">\r\n <span class=\"sr-only\">Next</span>\r\n <svg class=\"h-5 w-5\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\">\r\n <path fill-rule=\"evenodd\" d=\"M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z\" clip-rule=\"evenodd\" />\r\n </svg>\r\n </button>\r\n </div>\r\n <lib-drop-down-menu *ngIf=\"false && (pages && pages.length > 0)\" [options]=\"pages\" [selected]=\"page\" (selectedChanged)=\"pageOptionChanged($event)\"></lib-drop-down-menu>\r\n </div>\r\n </div>\r\n</div>\r\n","export class BreadcrumbItem {\r\n constructor(public title?: string, public url?: string) {\r\n this.level = 0;\r\n }\r\n\r\n public level: number;\r\n\r\n public get urlSegments(): string[] | undefined {\r\n if (this.url) {\r\n return this.url?.split('/').filter(x => x !== '');\r\n }\r\n return undefined;\r\n }\r\n}","import { InjectionToken } from '@angular/core';\r\n\r\nimport { IAppLinks, IAppLanguagesService, IAppNotifications, IShellConfig } from './types';\r\nimport { LibStepperComponent } from './controls/stepper/lib-stepper.component';\r\nimport { LibTabGroupComponent } from './controls/tabs/lib-tab-group.component';\r\n\r\nexport const APP_LANGUAGES = new InjectionToken<IAppLanguagesService>('APP_LANGUAGES');\r\nexport const APP_LINKS = new InjectionToken<IAppLinks>('APP_LINKS');\r\nexport const APP_NOTIFICATIONS = new InjectionToken<IAppNotifications>('APP_NOTIFICATIONS');\r\nexport const LIBSTEPPER_ACCESSOR = new InjectionToken<LibStepperComponent>('LibStepperAccessor');\r\nexport const LIBTABGROUP_ACCESSOR = new InjectionToken<LibTabGroupComponent>('LibTabGroupAccessor');\r\nexport const SHELL_CONFIG = new InjectionToken<IShellConfig>('SHELL_CONFIG');\r\n","import { Injectable } from '@angular/core';\r\nimport { IValidationProblemDetails } from '../types';\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class UtilitiesService {\r\n constructor() { }\r\n\r\n public problemDetails?: IValidationProblemDetails;\r\n\r\n public get validationErrors(): string[] {\r\n const messages: string[] = [];\r\n const errors = this.problemDetails && this.problemDetails.errors;\r\n for (const property in errors) {\r\n if (property) {\r\n const propertyMessages = errors[property];\r\n propertyMessages.forEach((message: string) => {\r\n messages.push(message);\r\n });\r\n } else {\r\n Object.values(errors || {}).forEach(message => {\r\n message.forEach(x => {\r\n messages.push(x);\r\n });\r\n });\r\n }\r\n }\r\n return messages;\r\n }\r\n\r\n public getValidationProblemDetails(problemDetails: IValidationProblemDetails): string[] {\r\n this.problemDetails = problemDetails;\r\n if (this.validationErrors.length === 0 && this.problemDetails.title) {\r\n return new Array<string>(1).fill(this.problemDetails.title);\r\n }\r\n return this.validationErrors;\r\n }\r\n\r\n public getPathFromUrl(url: string): string | undefined {\r\n if (!url) {\r\n return undefined;\r\n }\r\n return url.split(/[?#]/)[0];\r\n }\r\n}\r\n","import { Inject, Injectable, Optional } from '@angular/core';\r\nimport { Data, NavigationEnd, Route, Router } from '@angular/router';\r\n\r\nimport { Observable, Subject } from 'rxjs';\r\nimport { distinctUntilChanged, filter } from 'rxjs/operators';\r\nimport { BreadcrumbItem } from '../controls/breadcrumb/breadcrumb-item';\r\nimport { SHELL_CONFIG } from '../tokens';\r\nimport { UtilitiesService } from './utilities.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BreadcrumbService {\r\n private _defaultHome: BreadcrumbItem | undefined;\r\n private _breadcrumb$: Subject<BreadcrumbItem[]> = new Subject<BreadcrumbItem[]>();\r\n\r\n constructor(\r\n private _router: Router,\r\n private _utilities: UtilitiesService,\r\n @Optional() @Inject(SHELL_CONFIG) public _shellConfig?: any\r\n ) {\r\n if (_shellConfig?.breadcrumb) {\r\n this._defaultHome = this._getDefaultHomeItem();\r\n this._router\r\n .events\r\n .pipe(\r\n filter(event => event instanceof NavigationEnd),\r\n distinctUntilChanged()\r\n )\r\n .subscribe(_ => {\r\n const breadcrumb = [...this._buildBreadcrumb()];\r\n this._breadcrumb$.next(breadcrumb);\r\n });\r\n }\r\n }\r\n\r\n public breadcrumb: Observable<BreadcrumbItem[]> = this._breadcrumb$.asObservable();\r\n\r\n private _getDefaultHomeItem(): BreadcrumbItem | undefined {\r\n const routerConfig = this._router.config;\r\n const declaredHomeRoutes = routerConfig.filter((route: Route) => route.data?.breadcrumb?.isHome === true);\r\n if (declaredHomeRoutes.length > 1) {\r\n throw new Error('You can declare only one route as home.');\r\n }\r\n let homeRoute: Route | undefined;\r\n if (declaredHomeRoutes.length === 1) {\r\n homeRoute = declaredHomeRoutes[0];\r\n } else {\r\n homeRoute = routerConfig.find((route: Route) => route.path === '');\r\n if (!homeRoute) {\r\n return undefined;\r\n }\r\n const redirectionUrl = homeRoute.redirectTo;\r\n if (!homeRoute?.data?.breadcrumb?.title && redirectionUrl) {\r\n homeRoute = routerConfig.find((route: Route) => route.path === redirectionUrl);\r\n if (!homeRoute) {\r\n return undefined;\r\n }\r\n }\r\n }\r\n return new BreadcrumbItem(this._getRouteTitle(homeRoute), homeRoute.path || '');\r\n }\r\n\r\n private _getRouteTitle(route: Route) {\r\n return route?.data?.breadcrumb?.title || route.component?.name.replace('Component', '');\r\n }\r\n\r\n private _buildBreadcrumb(): BreadcrumbItem[] {\r\n const breadcrumb: BreadcrumbItem[] = [];\r\n if (this._defaultHome) {\r\n breadcrumb.push(this._defaultHome);\r\n }\r\n const url = this._router.url;\r\n const path = this._utilities.getPathFromUrl(url) || '';\r\n const activeRoute = this._findRouteFromUrl(path);\r\n const parentRoutes = this._findParentRoutes(activeRoute);\r\n breadcrumb.push(...parentRoutes);\r\n if (activeRoute && activeRoute?.path !== this._defaultHome?.url) {\r\n const routeData = this._getBreadcrumbRouteData(activeRoute);\r\n breadcrumb.push(new BreadcrumbItem(this._getRouteTitle(activeRoute), (routeData._fullPath || activeRoute.path || '')));\r\n }\r\n return breadcrumb.map((route: BreadcrumbItem) => {\r\n const routeSegments = route.url?.split('/') || [];\r\n routeSegments.forEach((segment: string, index: number) => {\r\n if (segment.startsWith(':')) {\r\n route.url = route.url?.replace(segment, url.split('/')[index + 1]);\r\n }\r\n });\r\n return route;\r\n });\r\n }\r\n\r\n private _findRouteFromUrl(url: string): Route | undefined {\r\n const urlSegments = url.split('/').filter((segment: string) => segment !== '');\r\n const routerConfig = this._router.config;\r\n const flattenedRouterConfig = this._flattenRoutes(routerConfig);\r\n const filteredRouterConfig = flattenedRouterConfig.filter((route: Route) => {\r\n const routeData = this._getBreadcrumbRouteData(route);\r\n return (routeData._fullPath || route.path)?.split('/').length === urlSegments.length;\r\n });\r\n const route = filteredRouterConfig.find((route: Route) => {\r\n const routeData = this._getBreadcrumbRouteData(route);\r\n const routeSegments = (routeData._fullPath || route.path)?.split('/') || [];\r\n let segmentsMatched = false;\r\n for (let i = 0; i < routeSegments.length; i++) {\r\n const currentSegment = routeSegments[i];\r\n const isDynamicSegment = currentSegment.startsWith(':');\r\n if (!isDynamicSegment) {\r\n segmentsMatched = currentSegment === urlSegments[i];\r\n }\r\n }\r\n return segmentsMatched ? route : undefined;\r\n });\r\n return route;\r\n }\r\n\r\n private _findParentRoutes(activeRoute: Route | undefined, items: BreadcrumbItem[] = []): BreadcrumbItem[] {\r\n if (!activeRoute) {\r\n return [];\r\n }\r\n const routeData = this._getBreadcrumbRouteData(activeRoute);\r\n let urlSegments = (routeData._fullPath || activeRoute.path)?.split('/').filter((segment: string) => segment !== '') || [];\r\n if (urlSegments?.length <= 1) {\r\n return [...items];\r\n }\r\n const previousUrl = urlSegments.slice(0, -1).join('/');\r\n const route = this._findRouteFromUrl(previousUrl);\r\n if (route) {\r\n const routeData = this._getBreadcrumbRouteData(route);\r\n if (routeData._level > 0 || (!route.children || route.children.length === 0)) {\r\n items.push(new BreadcrumbItem(this._getRouteTitle(route), routeData._fullPath || route.path));\r\n this._findParentRoutes(route, [...items]);\r\n }\r\n }\r\n return [...items];\r\n }\r\n\r\n private _flattenRoutes(routes: Route[], level?: number): Route[] {\r\n let children: Route[] = [];\r\n level = level || 0;\r\n return routes.map((route: Route) => {\r\n const routeData = this._getBreadcrumbRouteData(route);\r\n routeData._level = level!;\r\n if (route.children && route.children.length) {\r\n route.children.forEach((child: Route) => {\r\n const childRouteData = this._getBreadcrumbRouteData(child);\r\n const routePath = routeData._fullPath || route.path || '';\r\n const childPath = child.path?.endsWith('/') ? child.path.slice(0, -1) : child.path;\r\n childRouteData._fullPath = childPath?.indexOf(routePath) === -1 ? `${routePath}/${childPath}` : childPath;\r\n });\r\n children = [...children, ...route.children];\r\n }\r\n return route;\r\n }).concat(children.length ? this._flattenRoutes(children, level + 1) : children);\r\n }\r\n\r\n private _getBreadcrumbRouteData(route: Route | undefined): BreadcrumbRouteData {\r\n if (!route) {\r\n throw new Error('No route was found');\r\n }\r\n if (!route.data?.breadcrumb) {\r\n if (!route.data) {\r\n route.data = {};\r\n }\r\n route.data.breadcrumb = new BreadcrumbRouteData(0, false, undefined);\r\n }\r\n return route.data.breadcrumb;\r\n }\r\n}\r\n\r\nexport class BreadcrumbRouteData {\r\n constructor(public _level: number, public isHome: boolean, public _fullPath?: string | undefined) { }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\nimport { BreadcrumbService } from '../../services/breadcrumb.service';\r\nimport { BreadcrumbItem } from './breadcrumb-item';\r\n\r\n@Component({\r\n selector: 'lib-breadcrumb',\r\n templateUrl: './breadcrumb.component.html'\r\n})\r\nexport class BreadcrumbComponent implements OnInit {\r\n constructor(\r\n private _breadcrumbService: BreadcrumbService\r\n ) { }\r\n\r\n public ngOnInit(): void {\r\n this._breadcrumbService\r\n .breadcrumb\r\n .subscribe((breadcrumb: BreadcrumbItem[]) => {\r\n this.breadcrumb = [...breadcrumb, new BreadcrumbItem('', '')];\r\n });\r\n }\r\n\r\n public breadcrumb: BreadcrumbItem[] = [];\r\n}\r\n","<nav class=\"bg-white border-b border-gray-200 flex\"\r\n aria-label=\"Breadcrumb\">\r\n <ol role=\"list\"\r\n class=\"w-full mx-auto px-4 flex space-x-4 sm:px-6 lg:px-8\">\r\n <li class=\"flex\"\r\n *ngFor=\"let item of breadcrumb; let i = index\">\r\n <div class=\"flex items-center\">\r\n <ng-container *ngTemplateOutlet=\"i === 0 ? homeTemplate : linkTemplate; context: { value: item }\"></ng-container>\r\n </div>\r\n </li>\r\n </ol>\r\n</nav>\r\n<ng-template let-value=\"value\"\r\n #homeTemplate>\r\n <a [routerLink]=\"value.urlSegments\"\r\n [title]=\"value.title\"\r\n class=\"text-gray-400 hover:text-gray-500\">\r\n <svg class=\"flex-shrink-0 h-5 w-5\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 20 20\"\r\n fill=\"currentColor\"\r\n aria-hidden=\"true\">\r\n <path d=\"M10.707 2.293a1 1 0 00-1.414 0l-7 7a1 1 0 001.414 1.414L4 10.414V17a1 1 0 001 1h2a1 1 0 001-1v-2a1 1 0 011-1h2a1 1 0 011 1v2a1 1 0 001 1h2a1 1 0 001-1v-6.586l.293.293a1 1 0 001.414-1.414l-7-7z\" />\r\n </svg>\r\n <span class=\"sr-only\">{{ value.title }}</span>\r\n </a>\r\n</ng-template>\r\n<ng-template let-value=\"value\"\r\n #linkTemplate>\r\n <svg class=\"flex-shrink-0 w-6 h-full text-gray-200\"\r\n viewBox=\"0 0 24 44\"\r\n preserveAspectRatio=\"none\"\r\n fill=\"currentColor\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n aria-hidden=\"true\">\r\n <path d=\"M.293 0l22 22-22 22h1.414l22-22-22-22H.293z\" />\r\n </svg>\r\n <a [routerLink]=\"value.urlSegments\"\r\n class=\"ml-4 text-sm font-medium text-gray-500 hover:text-gray-700\">\r\n {{ value.title }}\r\n </a>\r\n</ng-template>","import { Component, ContentChild, Input, OnInit, TemplateRef } from '@angular/core';\r\n\r\n@Component({ selector: 'lib-list-tile', template: '<ng-content></ng-content>' })\r\nexport class ListTileComponent{\r\n @ContentChild(TemplateRef) template: any | null = null;\r\n constructor() {\r\n }\r\n}\r\n","import { Component, ContentChild, Input, OnInit, TemplateRef } from '@angular/core';\r\n\r\n@Component({selector: 'lib-list-column', template: '<ng-content></ng-content>'})\r\nexport class ListColumnComponent {\r\n @Input() title: string | null = null;\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('full-width') fullWidth = false;\r\n @ContentChild(TemplateRef) template: any | null = null;\r\n constructor() { }\r\n}\r\n","import { Component, ContentChild, Input, OnInit, TemplateRef } from '@angular/core';\r\n\r\n@Component({ selector: 'lib-list-details-section', template: '<ng-content></ng-content>' })\r\nexport class ListDetailsSectionComponent{\r\n @ContentChild(TemplateRef) template: any | null = null;\r\n constructor() {\r\n }\r\n}\r\n","import { formatDate } from \"@angular/common\";\r\n\r\nexport namespace Operators {\r\n export const EQUALS = { label: '=', value: 'eq', description: 'Ίσο με' };\r\n export const NOT_EQUALS = { label: '≠', value: 'neq', description: 'Διάφορο του' };\r\n export const GREATER_THAN = { label: '>', value: 'gt', description: 'Μεγαλύτερο από' };\r\n export const LESS_THAN = { label: '<', value: 'lt', description: 'Μικρότερο από' };\r\n export const GREATER_THAN_EQUAL = { label: '≥', value: 'gte', description: 'Μεγαλύτερο ή ίσο με' };\r\n export const LESS_THAN_EQUAL = { label: '≤', value: 'lte', description: 'Μικρότερο ή ίσο με' };\r\n export const CONTAINS = { label: '∋', value: 'contains', description: 'Περιέχει' };\r\n export const IN = { label: '1..n', value: 'in', description: 'Μέσα σε' };\r\n}\r\n\r\nexport enum QueryParameters {\r\n VIEW = 'view',\r\n PAGE_SIZE = 'pagesize',\r\n PAGE = 'page',\r\n SEARCH = 'search',\r\n SORT_FIELD = 'sort',\r\n SORT_DIRECTION = 'dir',\r\n FILTER = 'filter',\r\n FILTER_FROM = 'from',\r\n FILTER_TO = 'to'\r\n}\r\n\r\nexport interface SearchOption {\r\n name: string;\r\n field: string;\r\n dataType: FilterClause.Dt;\r\n array?: boolean;\r\n multiTerm?: boolean;\r\n options?: SelectInputOption[];\r\n placeholder?: string;\r\n}\r\n\r\nexport interface SelectInputOption {\r\n value: any;\r\n label: string;\r\n description?: string;\r\n}\r\n\r\nexport namespace FilterClause {\r\n export type Op = 'eq' | 'neq' | 'gt' | 'lt' | 'gte' | 'lte' | 'contains' | 'in';\r\n export type Dt = 'string' | 'integer' | 'number' | 'boolean' | 'datetime' | 'array' | 'daterange' | undefined;\r\n}\r\n\r\n// Dictionary with the DataType as a key and the value an array of available operators.\r\nexport interface IDictionary<T> {\r\n [key: string]: T;\r\n}\r\n\r\nexport const OperatorOptions: IDictionary<{ label: string; value: string; description?: string }[]> = {\r\n 'string': [Operators.EQUALS, Operators.NOT_EQUALS, Operators.CONTAINS],\r\n 'array': [Operators.EQUALS, Operators.NOT_EQUALS]\r\n};\r\n\r\nexport class FilterClause {\r\n // Member path to compare\r\n public member: string;\r\n // Value to compare against\r\n public value: any;\r\n // The operator to apply between the Indice.Types.FilterClause.Member and Indice.Types.FilterClause.Value\r\n public operator: FilterClause.Op;\r\n // The Indice.Types.JsonDataType of the data Indice.Types.FilterClause.Member\r\n public dataType: FilterClause.Dt;\r\n\r\n public uiName: string | undefined;\r\n public uiOperator: string | undefined;\r\n public uiValue: string | undefined;\r\n\r\n public constructor(member: string, value: any, operator?: FilterClause.Op, dataType?: FilterClause.Dt, searchOptions?: SearchOption[]) { // yeap, we do need searchOptions for the ui view model\r\n this.member = member;\r\n this.value = value;\r\n this.operator = operator || Operators.EQUALS.value as FilterClause.Op;\r\n this.dataType = dataType === undefined ? 'string' : dataType;\r\n // uiName\r\n if (this.dataType === 'datetime') { // special treatment for dates\r\n this.uiName = this.member === QueryParameters.FILTER_FROM ? 'Από' : 'Έως';\r\n } else {\r\n this.uiName = this.member;\r\n let fo = <any>{};\r\n if (searchOptions && searchOptions.length > 0) {\r\n fo = searchOptions.find((f) => {\r\n return f.field === this.member;\r\n });\r\n }\r\n\r\n if (fo) {\r\n this.uiName = fo.name;\r\n }\r\n }\r\n // We don't want a uiOperator for the datetime dataType. For strings and arrays we have the equals/not-equals/contains operators. The switch case can be expanded for more data types/operators when needed.\r\n if (this.dataType === 'datetime') {\r\n this.uiOperator = '';\r\n } else {\r\n switch (this.operator) {\r\n case (Operators.EQUALS.value):\r\n this.uiOperator = Operators.EQUALS.label;\r\n break;\r\n case (Operators.NOT_EQUALS.value):\r\n this.uiOperator = Operators.NOT_EQUALS.label;\r\n break;\r\n case (Operators.CONTAINS.value):\r\n this.uiOperator = Operators.CONTAINS.label;\r\n break;\r\n }\r\n }\r\n // uiValue\r\n this.uiValue = this.value;\r\n if ((this.dataType === 'datetime')) {\r\n this.uiValue = formatDate(new Date(this.value), 'dd/MM/yyyy', 'en-US');\r\n }\r\n let fo: SearchOption | undefined;\r\n if (searchOptions && searchOptions.length > 0) {\r\n fo = searchOptions.find((f) => {\r\n return f.field === this.member;\r\n });\r\n }\r\n if (fo && fo.options) { // special treatment for arrays, if there is an options property then it is an array\r\n this.dataType = 'array';\r\n this.uiValue = fo!.options!.find((option) => {\r\n return option.value === this.value;\r\n })?.label;\r\n }\r\n }\r\n\r\n public static parse(text: string): FilterClause | undefined {\r\n const pattern = /^\\s*([A-Za-z_][A-Za-z0-9_\\.]+)::(eq|neq|gt|lt|gte|lte|contains|in)::(\\((string|integer|number|boolean|datetime)\\))?(.+)\\s*$/gi;\r\n if (text != null) {\r\n const matches = pattern.exec(text);\r\n if (matches != null) {\r\n const path = matches[1];\r\n const op = <FilterClause.Op>matches[2];\r\n const dt = <FilterClause.Dt>matches[4];\r\n const v = matches[5];\r\n\r\n return new FilterClause(path, v, op, dt);\r\n }\r\n }\r\n return undefined;\r\n }\r\n\r\n public toString(): string {\r\n if (this.dataType !== 'string' && this.dataType !== 'array') {\r\n return `${this.member}::${this.operator}::(${this.dataType})${this.value}`;\r\n } else {\r\n return `${this.member}::${this.operator}::${this.value}`;\r\n }\r\n }\r\n\r\n}\r\n","import { getLocaleMonthNames, FormStyle, TranslationWidth, getLocaleDayNames } from '@angular/common';\r\nimport { Component, ElementRef, EventEmitter, forwardRef, Inject, Input, LOCALE_ID, OnInit, Output, ViewChild } from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\n\r\n// freaksly simple date picker : https://tailwind-elements.com/docs/standard/forms/datepicker/\r\n@Component({\r\n selector: 'lib-date-picker',\r\n templateUrl: './date-picker.component.html',\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => DatepickerComponent),\r\n multi: true\r\n }\r\n ]\r\n})\r\nexport class DatepickerComponent implements OnInit, ControlValueAccessor {\r\n @Input() readonly: boolean = false;\r\n @Input() disabled: boolean = false;\r\n @Input() inline: boolean = false;\r\n @Input('display-format') displayFormat: string | undefined = 'dd/MM/yyyy';\r\n @Input() placeholder: string | undefined = '';\r\n @Input() value: Date | undefined | null = null;\r\n @Output() valueChange: EventEmitter<Date> = new EventEmitter<Date>();\r\n @ViewChild('dateInput') dateInput: ElementRef | undefined;\r\n @Input() minDate: Date | undefined = undefined;\r\n @Input() maxDate: Date | undefined = undefined;\r\n public showCalendar = false;\r\n public showYears = false;\r\n public monthNames = getLocaleMonthNames(this.locale, FormStyle.Standalone, TranslationWidth.Wide);\r\n public dayNames = getLocaleDayNames(this.locale, FormStyle.Standalone, TranslationWidth.Abbreviated);\r\n\r\n public month: number = -1;\r\n public year: number = -1;\r\n public calendarDates: any[] = [];\r\n public calendarYears: any[] = [];\r\n public showCalendarYears: any[] = [];\r\n public blankDays: any[] = [];\r\n public calendarYearPage = 1;\r\n private yearsPerPage = 30;\r\n\r\n private onChange$: any | undefined = undefined;\r\n private onTouched$: any | undefined = undefined;\r\n\r\n ngOnInit(): void {\r\n let today = new Date();\r\n this.month = today.getMonth();\r\n this.year = today.getFullYear();\r\n this.calendarDates = [{ day: this.value, today: this.value, selected: this.value }];\r\n this.calendarYears = [{ year: this.value?.getFullYear(), today: this.value, selected: this.value }];\r\n const yearsArray = [];\r\n for (let i = 1950; i <= today.getFullYear() + 2; i++) {\r\n yearsArray.push({ year: i, today: this.compareDates(today, null, i), selected: i == this.value?.getFullYear() });\r\n }\r\n this.calendarYears = yearsArray;\r\n this.showCalendarYears = this.paginate(this.calendarYears, 1);\r\n this.calcDays();\r\n }\r\n\r\n constructor(@Inject(LOCALE_ID) public locale: string) { }\r\n\r\n writeValue(obj: any): void {\r\n if (obj) {\r\n this.value = new Date(obj);\r\n this.month = this.value.getMonth();\r\n this.year = this.value.getFullYear();\r\n }\r\n }\r\n\r\n registerOnChange(fn: (_: any) => void): void {\r\n this.onChange$ = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched$ = fn;\r\n }\r\n\r\n public onBlur(event: any): void {\r\n if (this.onTouched$) {\r\n this.onTouched$();\r\n }\r\n this.getDateFromInput();\r\n }\r\n\r\n public selectDateValue(date: any): void {\r\n // This should be in UTC\r\n if (!this.outOfRangeDate(date.day)) {\r\n let selectedDate = new Date(this.year, this.month, date.day, 3, 0, 0, 0);\r\n this.value = selectedDate;\r\n this.valueChange.emit(this.value);\r\n if (this.onChange$) {\r\n this.onChange$(this.value);\r\n }\r\n this.updateDays();\r\n if (this.onTouched$) {\r\n this.onTouched$();\r\n }\r\n this.calcDays();\r\n this.showCalendar = false;\r\n }\r\n }\r\n\r\n public selectYearValue(year: any): void {\r\n // This should be in UTC\r\n const tempYear = this.year;\r\n this.year = year.year;\r\n if (!this.outOfRangeDate(this.calendarDates?.find(x => x.selected == true) ?? { day: 1 })) {\r\n let selectedDate = new Date(year.year, this.month ?? 1, this.calendarDates?.find(x => x.selected == true).day ?? 1, 3, 0, 0, 0);\r\n this.value = selectedDate;\r\n this.valueChange.emit(this.value);\r\n if (this.onChange$) {\r\n this.onChange$(this.value);\r\n }\r\n this.updateDays();\r\n if (this.onTouched$) {\r\n this.onTouched$();\r\n }\r\n this.showYears = false;\r\n this.showCalendar = true;\r\n this.calcDays();\r\n } else {\r\n this.year = tempYear;\r\n this.showYears = false;\r\n this.showCalendar = true;\r\n }\r\n }\r\n\r\n public previousMonth(): void {\r\n if (this.month !== 0) {\r\n this.month = this.month - 1;\r\n this.calcDays();\r\n } else {\r\n this.month = 11;\r\n this.year = this.year - 1;\r\n this.calcDays();\r\n }\r\n if (this.onTouched$) {\r\n this.onTouched$();\r\n }\r\n }\r\n\r\n public nextMonth(): void {\r\n if (this.month !== 11) {\r\n this.month = this.month + 1;\r\n this.calcDays();\r\n } else {\r\n this.month = 0;\r\n this.year = this.year + 1;\r\n this.calcDays();\r\n }\r\n if (this.onTouched$) {\r\n this.onTouched$();\r\n }\r\n }\r\n\r\n public previousYear(): void {\r\n this.showCalendarYears = this.paginate(\r\n this.calendarYears,\r\n this.calendarYearPage > 1 ? --this.calendarYearPage : 1);\r\n this.calcDays();\r\n if (this.onTouched$) {\r\n this.onTouched$();\r\n }\r\n }\r\n\r\n public nextYear(): void {\r\n this.showCalendarYears = this.paginate(\r\n this.calendarYears,\r\n this.calendarYearPage <= this.calendarYears.length / this.yearsPerPage\r\n ? ++this.calendarYearPage\r\n : this.calendarYearPage);\r\n this.calcDays();\r\n if (this.onTouched$) {\r\n this.onTouched$();\r\n }\r\n }\r\n\r\n private compareDates(date1: Date | undefined | null, day: number | null | undefined, year: number | null | undefined): boolean {\r\n if (!date1) {\r\n return false;\r\n }\r\n const d = new Date(year ?? this.year, this.month, day ?? this.value?.getDay());\r\n return date1.toDateString() === d.toDateString();\r\n };\r\n\r\n private calcDays(): void {\r\n const daysInMonth = new Date(this.year, this.month + 1, 0).getDate();\r\n // find where to start calendar day of week\r\n const dayOfWeek = new Date(this.year, this.month).getDay();\r\n const blankdaysArray = new Array<number>();\r\n for (var i = 1; i <= dayOfWeek; i++) {\r\n // check if month is February\r\n blankdaysArray.push(this.month != 2 ? (32 - i) : (29 - i));\r\n blankdaysArray.reverse().sort();\r\n }\r\n const daysArray = [];\r\n const today = new Date();\r\n for (var i = 1; i <= daysInMonth; i++) {\r\n daysArray.push({ day: i, today: this.compareDates(today, i, null), selected: this.compareDates(this.value ?? today, i, null) });\r\n }\r\n const yearsArray = [];\r\n for (let i = 1950; i <= today.getFullYear() + 2; i++) {\r\n yearsArray.push({ year: i, today: this.compareDates(today, null, i), selected: i == this.year });\r\n }\r\n this.calendarYears = yearsArray;\r\n this.blankDays = blankdaysArray;\r\n this.calendarDates = daysArray;\r\n }\r\n\r\n private updateDays(): void {\r\n const today = new Date();\r\n this.calendarDates.forEach(d => {\r\n d.today = this.compareDates(today, d, this.year);\r\n d.selected = this.compareDates(this.value, d, this.year);\r\n });\r\n }\r\n\r\n private paginate(array: any[], page_number: number): any[] {\r\n return array.slice((page_number - 1) * this.yearsPerPage, page_number * this.yearsPerPage);\r\n }\r\n\r\n private getDateFromInput() {\r\n if(!this.dateInput?.nativeElement.value || this.dateInput?.nativeElement.value === '') {\r\n this.value = undefined;\r\n this.valueChange.emit(this.value);\r\n if (this.onChange$) {\r\n this.onChange$(this.value);\r\n }\r\n return;\r\n }\r\n\r\n if (this.dateInput?.nativeElement.value !== '' && !this.inline) { \r\n var dateParts = this.dateInput?.nativeElement.value.split(\"/\");\r\n let dateInGrFormat = new Date(+dateParts[2], dateParts[1] - 1, +dateParts[0], 3, 0, 0);\r\n if (dateInGrFormat.toString() !== 'Invalid Date') {\r\n this.writeValue(dateInGrFormat)\r\n this.calcDays();\r\n this.valueChange.emit(dateInGrFormat);\r\n }\r\n if (this.onChange$) {\r\n this.onChange$(this.value);\r\n }\r\n this.updateDays();\r\n if (this.onTouched$) {\r\n this.onTouched$();\r\n }\r\n }\r\n this.showCalendar = false;\r\n }\r\n\r\n public openYears() {\r\n this.showYears = !this.showYears;\r\n this.calendarYearPage = Math.ceil(this.calendarYears.map(x => x.year).indexOf(this.year) / this.yearsPerPage);\r\n this.showCalendarYears = this.paginate(this.calendarYears, this.calendarYearPage !== 0 ? this.calendarYearPage : 1);\r\n this.calcDays();\r\n }\r\n\r\n public openCalendar() {\r\n this.showCalendar = !this.showCalendar;\r\n this.calcDays();\r\n }\r\n\r\n public closeCalendar() {\r\n this.showCalendar = false;\r\n // this.getDateFromInput();\r\n }\r\n\r\n outOfRangeDate(date: any): boolean {\r\n let outOfRange: boolean = false;\r\n if (this.minDate || this.maxDate) {\r\n const d = new Date(this.year, this.month, date.day);\r\n const dateInMillis = d.getTime();\r\n if (this.minDate) {\r\n let minDate: number = this.minDate.getTime();\r\n if (dateInMillis < minDate && this.minDate.toDateString() !== d.toDateString()) {\r\n outOfRange = true;\r\n }\r\n }\r\n if (this.maxDate) {\r\n let maxDate: number = this.maxDate.getTime();\r\n if (dateInMillis > maxDate && this.maxDate.toDateString() !== d.toDateString()) {\r\n outOfRange = true;\r\n }\r\n }\r\n }\r\n return outOfRange;\r\n }\r\n}","<div class=\"flex\"\r\n [ngClass]=\"{'relative': !inline}\"\r\n (clickOutside)=\"closeCalendar()\">\r\n\r\n <input type=\"text\"\r\n *ngIf=\"!inline\"\r\n #dateInput\r\n [readonly]=\"readonly\"\r\n name=\"dateInput\"\r\n (blur)=\"onBlur($event)\"\r\n id=\"dateInput\"\r\n title=\"dateInput\"\r\n (focus)=\"showCalendar = false\"\r\n [value]=\"value | date: displayFormat\"\r\n class=\"detapicker-input\"\r\n [ngClass]=\"{'cursor-not-allowed': disabled}\"\r\n [placeholder]=\"disabled ? '' : placeholder\">\r\n\r\n <button type=\"button\"\r\n *ngIf=\"!inline\"\r\n class=\"datepicker-button\"\r\n [disabled]=\"disabled\"\r\n (click)=\"openCalendar()\"\r\n [ngClass]=\"{'cursor-not-allowed': disabled}\">\r\n <i class=\"ms-Icon ms-Icon--DateTime2\"></i>\r\n </button>\r\n\r\n <div *ngIf=\"showCalendar || inline\"\r\n [ngClass]=\"{'absolute': !inline}\"\r\n class=\"datepicker-background\"\r\n style=\"height:18rem;min-width:16rem;\"\r\n name=\"calendar\">\r\n <div class=\"datepicker-btn-wrapper\">\r\n <div>\r\n <button type=\"button\"\r\n (click)=\"openYears()\">\r\n <span class=\"datepicker-selected-month\">\r\n {{monthNames[month]}}\r\n </span>\r\n <span class=\"datepicker-selected-year\">\r\n {{year}}</span>\r\n </button>\r\n </div>\r\n <div *ngIf=\"!showYears; else showYearsPickerTmpl\">\r\n <button type=\"button\"\r\n class=\"datepicker-nav-btn\"\r\n (click)=\"previousMonth();\">\r\n <svg fill=\"none\"\r\n viewBox=\"0 0 24 24\"\r\n stroke=\"currentColor\">\r\n <path stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n stroke-width=\"2\"\r\n d=\"M15 19l-7-7 7-7\" />\r\n </svg>\r\n </button>\r\n <button type=\"button\"\r\n class=\"datepicker-nav-btn\"\r\n (click)=\"nextMonth()\">\r\n <svg fill=\"none\"\r\n viewBox=\"0 0 24 24\"\r\n stroke=\"currentColor\">\r\n <path stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n stroke-width=\"2\"\r\n d=\"M9 5l7 7-7 7\" />\r\n </svg>\r\n </button>\r\n </div>\r\n <ng-template #showYearsPickerTmpl>\r\n <div>\r\n <button type=\"button\"\r\n class=\"datepicker-nav-btn\"\r\n (click)=\"previousYear();\">\r\n <svg fill=\"none\"\r\n viewBox=\"0 0 24 24\"\r\n stroke=\"currentColor\">\r\n <path stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n stroke-width=\"2\"\r\n d=\"M15 19l-7-7 7-7\" />\r\n </svg>\r\n </button>\r\n <button type=\"button\"\r\n class=\"datepicker-nav-btn\"\r\n (click)=\"nextYear()\">\r\n <svg fill=\"none\"\r\n viewBox=\"0 0 24 24\"\r\n stroke=\"currentColor\">\r\n <path stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n stroke-width=\"2\"\r\n d=\"M9 5l7 7-7 7\" />\r\n </svg>\r\n </button>\r\n </div>\r\n </ng-template>\r\n </div>\r\n\r\n <div class=\"datepicker-wrapper\"\r\n *ngIf=\"!showYears; else showCalYearsTmpl\">\r\n <div *ngFor=\"let day of dayNames\"\r\n class=\"datepicker-day-name\"\r\n style=\"width: 14.28%\">{{day}}</div>\r\n </div>\r\n\r\n <ng-template #showCalYearsTmpl>\r\n <div class=\"datepicker-content-wrapper\">\r\n <div *ngFor=\"let year of showCalendarYears\"\r\n style=\"width: 18.28%\"\r\n class=\"px-1 mb-1\">\r\n <div (click)=\"selectYearValue(year)\"\r\n class=\"datepicker-year\"\r\n [class]=\"year.selected ? 'selected' : 'not-selected'\">\r\n {{year.year}}</div>\r\n </div>\r\n </div>\r\n </ng-template>\r\n\r\n <div class=\"datepicker-content-wrapper\"\r\n *ngIf=\"!showYears\">\r\n <div *ngFor=\"let blankday of blankDays\"\r\n style=\"width: 14.28%\"\r\n class=\"datepicker-blank-days\">{{blankday}}</div>\r\n <div *ngFor=\"let date of calendarDates;\"\r\n style=\"width: 14.28%\"\r\n class=\"px-1 mb-1\">\r\n <div (click)=\"selectDateValue(date)\"\r\n class=\"datepicker-days\"\r\n [ngClass]=\"{'out-of-range': outOfRangeDate(date),'selected': date.selected, 'not-selected':!date.selected }\">\r\n {{date.day}}</div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n</div>","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { MenuOption } from '../../types';\r\nimport { SearchOption, FilterClause, QueryParameters, Operators, OperatorOptions } from './models';\r\n\r\n@Component({\r\n selector: 'lib-advanced-search',\r\n templateUrl: './advanced-search.component.html'\r\n})\r\nexport class AdvancedSearchComponent implements OnInit {\r\n @Output() advancedSearchChanged: EventEmitter<FilterClause[]> = new EventEmitter<FilterClause[]>();\r\n @Input('search-options') searchOptions: SearchOption[] = [];\r\n @Input('operators-disabled') operatorsDisabled: boolean = false;\r\n @Input() filters: FilterClause[] = [];\r\n public menuOptions: MenuOption[] = [];\r\n public operatorMenuOptions: MenuOption[] = [];\r\n public operatorOptions = OperatorOptions;\r\n public operators: { [key: string]: MenuOption[] } = {};\r\n public selectedOperator?: string;\r\n public selectedField?: SearchOption;\r\n public fieldValue?: string;\r\n public fieldValueDateFrom: any;\r\n public fieldValueDateTo: any;\r\n public menuOptionsDictionary: { [key: string]: MenuOption[] } = {};\r\n\r\n constructor() { }\r\n\r\n public ngOnInit(): void {\r\n this.searchOptions.forEach((searchOption) => {\r\n this.menuOptions.push({\r\n text: searchOption.name,\r\n value: searchOption.field,\r\n data: searchOption.dataType,\r\n description: searchOption.placeholder,\r\n icon: undefined\r\n });\r\n if (searchOption.dataType === 'array') {\r\n let menuOpts: MenuOption[] = [];\r\n searchOption.options?.forEach((selectInputOption) => {\r\n menuOpts.push({\r\n text: selectInputOption.label,\r\n value: selectInputOption.value,\r\n data: undefined,\r\n description: selectInputOption.description,\r\n icon: undefined\r\n });\r\n })\r\n this.menuOptionsDictionary[searchOption.field] = menuOpts;\r\n }\r\n });\r\n }\r\n\r\n public selectedFieldChanged(field: string) {\r\n this.selectedField = this.searchOptions.find((searchOption) => searchOption.field === field);\r\n this.selectedOperator = undefined;\r\n // Since we have special UI handling for the daterange, we don't need to fill the operatorMenuOptions in that case.\r\n if (this.selectedField?.dataType != 'daterange') {\r\n let operatorMenuOpts: MenuOption[] = [];\r\n // based on the data type that we are filtering, fill the operator dropdown with the correct operators. The default is the string with equals/not-equals/contains\r\n this.operatorOptions[this.selectedField?.dataType ?? 'string'].forEach(x => {\r\n operatorMenuOpts.push({\r\n text: x.description ?? x.label,\r\n value: x.value,\r\n data: undefined,\r\n description: x.description,\r\n icon: undefined\r\n })\r\n })\r\n this.operatorMenuOptions = operatorMenuOpts;\r\n // Preselect the first option from the operators menu so there will always be a default value, which is the 'equals' operator for all data types for now.\r\n this.selectedOperator = this.operatorMenuOptions[0].value;\r\n }\r\n this.fieldValue = undefined;\r\n }\r\n\r\n public selectedOperatorChanged(operator: any) {\r\n this.selectedOperator = operator;\r\n }\r\n\r\n public selectedFieldValueChanged(fieldValue: string) {\r\n this.fieldValue = fieldValue;\r\n }\r\n\r\n public search() {\r\n if (!this.selectedField || !this.selectedField.dataType) {\r\n return;\r\n }\r\n // the filter is of type 'daterange'\r\n if (this.selectedField.dataType === 'daterange') {\r\n if (!this.selectedField.multiTerm) {\r\n this.filters = this.filters.filter((f) => {\r\n return f.dataType !== 'datetime';\r\n });\r\n }\r\n if (this.fieldValueDateFrom) {\r\n const filterClauseFrom = new FilterClause(this.selectedField.field, this.fieldValueDateFrom, Operators.GREATER_THAN_EQUAL.value as FilterClause.Op, 'datetime', this.searchOptions);\r\n this.filters.push(filterClauseFrom);\r\n }\r\n\r\n if (this.fieldValueDateTo) {\r\n const filterClauseTo = new FilterClause(this.selectedField.field, this.fieldValueDateTo, Operators.LESS_THAN_EQUAL.value as FilterClause.Op, 'datetime', this.searchOptions);\r\n this.filters.push(filterClauseTo);\r\n }\r\n }\r\n // the filter isn't of type 'daterange' (everything else)\r\n else {\r\n if (this.fieldValue === undefined) { // handle empty field value\r\n return;\r\n }\r\n // if no operator was provided, it falls back to the default 'equals' operator\r\n this.selectedOperator = this.selectedOperator ?? Operators.EQUALS.value;\r\n // create the filterClause\r\n const filterClause = new FilterClause(this.selectedField.field, this.fieldValue, this.selectedOperator as FilterClause.Op, this.selectedField.dataType, this.searchOptions);\r\n if (!this.selectedField.multiTerm) { // multiTerm means that we can have multiple filter values of the SAME filter clause (eg \"filter case types that are Phone OR Address\")\r\n this.filters = this.filters.filter((f) => {\r\n return f.member !== this.selectedField!.field;\r\n });\r\n } else { // selectedField is multiTerm: just checking if we already have the newly selected filterClause in filters\r\n const isDuplicate = this.filters.some(f => f.toString() === filterClause.toString());\r\n if (isDuplicate) {\r\n return;\r\n }\r\n }\r\n\r\n this.filters.push(filterClause);\r\n this.fieldValue = undefined;\r\n }\r\n this.advancedSearchChanged.emit(this.filters);\r\n }\r\n\r\n public removeFilter(index: number) {\r\n if (this.filters && this.filters.length >= index) {\r\n this.filters.splice(index, 1);\r\n this.advancedSearchChanged.emit(this.filters);\r\n }\r\n }\r\n\r\n public isDateValueUnpicked(): boolean {\r\n return this.fieldValueDateFrom === undefined && this.fieldValueDateTo === undefined;\r\n }\r\n\r\n public isFieldAndOperatorUnpicked(): boolean {\r\n // if the operators are enabled we need to check for both the field value and the operator value\r\n return this.operatorsDisabled ? this.fieldValue === undefined : (this.fieldValue === undefined || this.selectedOperator === undefined);\r\n }\r\n\r\n public clear() {\r\n this.fieldValueDateFrom = undefined;\r\n this.fieldValueDateTo = undefined;\r\n this.selectedField = undefined;\r\n this.fieldValue = undefined;\r\n this.selectedOperator = undefined;\r\n this.filters = [];\r\n this.advancedSearchChanged.emit(this.filters);\r\n }\r\n\r\n}\r\n","<div class=\"advanced-search-container\">\r\n <div class=\"advanced-search-filter\">\r\n <!--SEARCH FIELDS-->\r\n <div class=\"advanced-search-filter-field-container\">\r\n <label class=\"advanced-search-filter-field-label\"\r\n for=\"selectedField\">\r\n Αναζήτηση ανά:\r\n </label>\r\n <lib-drop-down-menu [options]=\"menuOptions\"\r\n (selectedChanged)=\"selectedFieldChanged($event)\"></lib-drop-down-menu>\r\n </div>\r\n <!--SEARCH FIELDS OPERATOR MENU-->\r\n <div *ngIf=\"!operatorsDisabled && selectedField\"\r\n class=\"advanced-search-filter-operator-container\">\r\n <div *ngIf=\"selectedField.dataType === 'array' || selectedField.dataType === 'string'\">\r\n <label class=\"advanced-search-filter-operator-label\"\r\n for=\"selectedOperator\">\r\n \r\n </label>\r\n <lib-drop-down-menu [options]=\"operatorMenuOptions\"\r\n [selected]=\"selectedOperator\"\r\n (selectedChanged)=\"selectedOperatorChanged($event)\"></lib-drop-down-menu>\r\n </div>\r\n </div>\r\n <!--SEARCH FIELDS INPUT-->\r\n <div *ngIf=\"selectedField\"\r\n class=\"advanced-search-filter-value-container\">\r\n <div *ngIf=\"selectedField.dataType === 'array'\">\r\n <label class=\"advanced-search-filter-value-label\"\r\n for=\"fieldValue\">\r\n \r\n </label>\r\n <lib-drop-down-menu [options]=\"menuOptionsDictionary[selectedField.field]\"\r\n [selected]=\"fieldValue\"\r\n (selectedChanged)=\"selectedFieldValueChanged($event)\"></lib-drop-down-menu>\r\n </div>\r\n <div *ngIf=\"selectedField.dataType === 'string'\">\r\n <label class=\"advanced-search-filter-value-label\"\r\n for=\"fieldValue\">\r\n \r\n </label>\r\n <input (keyup.enter)=\"search()\"\r\n [(ngModel)]=\"fieldValue\"\r\n name=\"fieldValue\"\r\n type=\"text\"\r\n placeholder=\"Αναζήτηση\"\r\n maxlength=\"300\"\r\n class=\"advanced-search-filter-value-input\">\r\n </div>\r\n <ng-container *ngIf=\"selectedField.dataType === 'daterange'\">\r\n <div>\r\n <span class=\"advanced-search-filter-value-input-daterange-from\">\r\n Από:\r\n </span>\r\n <lib-date-picker [maxDate]=\"fieldValueDateTo\"\r\n [(ngModel)]=\"fieldValueDateFrom\"\r\n [placeholder]=\"'01/01/2022'\"></lib-date-picker>\r\n </div>\r\n <div *ngIf=\"selectedField.dataType === 'daterange'\">\r\n <span class=\"advanced-search-filter-value-input-daterange-to\">\r\n Έως:\r\n </span>\r\n <lib-date-picker [minDate]=\"fieldValueDateFrom\"\r\n [(ngModel)]=\"fieldValueDateTo\"\r\n [placeholder]=\"'01/01/2022'\"></lib-date-picker>\r\n </div>\r\n </ng-container>\r\n </div>\r\n <ng-container *ngIf=\"selectedField\">\r\n <!--DO SEARCH-->\r\n <button type=\"button\"\r\n [ngClass]=\"{'opacity-50 cursor-not-allowed': isDateValueUnpicked() && isFieldAndOperatorUnpicked()}\"\r\n [disabled]=\"isDateValueUnpicked() && isFieldAndOperatorUnpicked()\"\r\n (click)=\"search()\">\r\n <i [class]=\"'ms-Icon ms-Icon--Search'\"></i>\r\n </button>\r\n <!--CLEAR-->\r\n <button type=\"button\"\r\n (click)=\"clear()\">\r\n <i [class]=\"'ms-Icon ms-Icon--Cancel'\"></i>\r\n </button>\r\n </ng-container>\r\n </div>\r\n <!--FILTER CHIPS-->\r\n <!-- This example requires Tailwind CSS v2.0+ -->\r\n <ng-container *ngFor=\"let filter of filters; let i = index\">\r\n <span *ngIf=\"filter && filter.member\"\r\n class=\"advanced-search-chips\">\r\n {{ filter.uiName }} {{ filter.uiOperator }} '{{ filter.uiValue }}'\r\n <button (click)=\"removeFilter(i)\"\r\n type=\"button\"\r\n class=\"advanced-search-chips-remove-filter\">\r\n <span class=\"sr-only\">Remove large option</span>\r\n <svg class=\"h-2 w-2\"\r\n stroke=\"currentColor\"\r\n fill=\"none\"\r\n viewBox=\"0 0 8 8\">\r\n <path stroke-linecap=\"round\"\r\n stroke-width=\"1.5\"\r\n d=\"M1 1l6 6m0-6L1 7\" />\r\n </svg>\r\n </button>\r\n </span>\r\n </ng-container>\r\n</div>","import { Component, Input, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-list-view-empty-state',\r\n templateUrl: './list-view-empty-state.component.html'\r\n})\r\nexport class ListViewEmptyStateComponent implements OnInit {\r\n\r\n @Input() title = 'Δεν βρέθηκαν εγγραφές.';\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('sub-title') subTitle = 'Παρακαλώ αλλάξτε τα κριτήρια αναζήτησης σας ή ξεκινήστε προσθέτοντας μια νέα εγγραφή';\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('new-item-label') newItemLabel = 'Νέα εγγραφή';\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","<div class=\"py-20\">\r\n <div class=\"p-20\">\r\n <div class=\"text-center p-2\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" class=\"mx-auto h-12 w-12 text-gray-400\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\">\r\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M4 7v10c0 2.21 3.582 4 8 4s8-1.79 8-4V7M4 7c0 2.21 3.582 4 8 4s8-1.79 8-4M4 7c0-2.21 3.582-4 8-4s8 1.79 8 4m0 5c0 2.21-3.582 4-8 4s-8-1.79-8-4\" />\r\n </svg>\r\n <h3 class=\"mt-2 text-sm font-medium text-gray-900\">{{title}}</h3>\r\n <p class=\"mt-1 text-sm text-gray-500\">\r\n {{subTitle}}\r\n </p>\r\n <div class=\"mt-6\" *ngIf=\"false\">\r\n <button type=\"button\" class=\"inline-flex items-center px-4 py-2 border border-transparent shadow-sm text-sm font-medium rounded-md text-white bg-gray-600 hover:bg-gray-700 focus:outline-none focus:ring-2 focus:ring-offset-1 focus:ring-gray-500\">\r\n <!-- Heroicon name: solid/plus -->\r\n <svg class=\"-ml-1 mr-2 h-6 w-6\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" aria-hidden=\"true\">\r\n <path vector-effect=\"non-scaling-stroke\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M9 13h6m-3-3v6m-9 1V7a2 2 0 012-2h6l2 2h6a2 2 0 012 2v8a2 2 0 01-2 2H5a2 2 0 01-2-2z\" />\r\n </svg>\r\n {{newItemLabel}}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n</div>","import { Component, Input, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n // tslint:disable-next-line:component-selector\r\n selector: 'lib-skeleton-loader',\r\n templateUrl: './skeleton-loader.component.html'\r\n})\r\nexport class SkeletonLoaderComponent implements OnInit {\r\n @Input() count = 7;\r\n @Input() type = 'tiles'; // 'large-tile', 'table'\r\n @Input('deck-class') deckClass = 'cards-deck-4'; // 'large-tile', 'table'\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n public counter(i: number): number[] {\r\n return new Array(i);\r\n }\r\n\r\n}\r\n","<div [class]=\"deckClass\" *ngIf=\"type === 'tiles'\">\r\n <div class=\"relative p-4 w-80 bg-white overflow-hidden shadow hover:shadow-md rounded-xl\" *ngFor=\"let i of counter(count)\">\r\n <div class=\"animate-pulse flex flex-col\">\r\n <div class=\"rounded w-full h-32 bg-gray-200\"></div>\r\n \r\n <div class=\"flex flex-col mt-5 rounded-lg\">\r\n <div class=\"w-full h-5 bg-gray-200 rounded\"></div>\r\n <div class=\"mt-2 w-10/12 h-3 bg-gray-200 rounded\"></div>\r\n <div class=\"mt-2 w-8/12 h-3 bg-gray-200 rounded\"></div>\r\n </div>\r\n\r\n <div class=\"grid grid-cols-2 mt-5 gap-x-2 gap-y-1\">\r\n <div class=\"mt-2 w-full h-3 bg-gray-200 rounded\"></div>\r\n <div class=\"mt-2 w-full h-3 bg-gray-200 rounded\"></div>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n</div>\r\n \r\n<div class=\"cards-deck-1\" *ngIf=\"type === 'table'\">\r\n <div class=\"border border-light-blue-300 shadow rounded-sm p-4 max-w-sm w-full mx-auto mb-4\" *ngFor=\"let i of counter(count)\">\r\n <div class=\"animate-pulse flex space-x-4\">\r\n <div class=\"rounded-full bg-light-blue-400 h-12 w-12\"> </div>\r\n <div class=\"flex-1 space-y-4 py-1\">\r\n <div class=\"h-4 bg-light-blue-400 rounded w-3/4\"> </div>\r\n <div class=\"space-y-2\">\r\n <div class=\"h-4 bg-light-blue-400 rounded\"> </div>\r\n <div class=\"h-4 bg-light-blue-400 rounded w-5/6\"> </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>","import { Component, ContentChild, ContentChildren, EventEmitter, Input, Output, QueryList, OnChanges, SimpleChanges } from '@angular/core';\r\nimport { MenuOption, ListViewType, PagerPosition } from '../../types';\r\nimport { ListTileComponent } from './list-tile.component';\r\nimport { ListColumnComponent } from './list-column.component';\r\nimport { ListDetailsSectionComponent } from './list-details-section.component';\r\nimport { Icons } from '../../icons';\r\nimport { FilterClause, SearchOption } from '../advanced-search/models';\r\n\r\n@Component({\r\n selector: 'lib-list-view',\r\n templateUrl: './list-view.component.html'\r\n})\r\nexport class ListViewComponent implements OnChanges {\r\n @Input('search-options') searchOptions: SearchOption[] = [];\r\n @Input() filters: FilterClause[] = [];\r\n // BUSY STATE\r\n @Input() busy = false;\r\n // DATA SOURCE!\r\n @Input() items: any[] | null | undefined;\r\n // PAGING - pass through for pager component\r\n @Input() count: number | null = null;\r\n @Input() page = 1;\r\n @Input() view = ListViewType.Table;\r\n @Input() sort: string | null = null;\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('page-size') pageSize = 20;\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('page-size-options') pageSizeOptions: MenuOption[] = [];\r\n // SORTING - pass through for pager component\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('sort-options') sortOptions: MenuOption[] = [];\r\n @Input('operators-disabled') operatorsDisabled: boolean = false;\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('sort-dir') sortdir: string | null = '-';\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('tiles-count') tilesCount = 4;\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('show-pager') showPager = true;\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('pager-position') pagerPosition: any | undefined = PagerPosition.Top;\r\n // DETAILS SECTION\r\n // Check if details section and button should be displayed according to the count of the value given\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('details-section-property-count') detailsSectionPropertyCount: string | null = null;\r\n // COLUMNS\r\n @ContentChildren(ListColumnComponent, { read: ListColumnComponent })\r\n set cols(refs: QueryList<ListColumnComponent>) {\r\n this.columns = refs?.toArray();\r\n if (this.columns && this.columns.length > 0) {\r\n this.tableViewSupported = true;\r\n }\r\n this.multipleFullWidth = this.columns.filter(c => c.fullWidth).length > 1;\r\n this.fullWidthTHClass = this.multipleFullWidth ? 'list-view-th-half' : 'list-view-th-full';\r\n this.fullWidthTDClass = this.multipleFullWidth ? 'list-view-td-half' : 'list-view-td-full';\r\n }\r\n // tslint:disable-next-line:no-input-rename\r\n @ContentChild(ListTileComponent, { read: ListTileComponent })\r\n set tiles(ref: ListTileComponent) {\r\n this.tileTemplate = ref;\r\n if (this.tileTemplate) {\r\n this.tilesViewSupported = true;\r\n }\r\n }\r\n\r\n @ContentChild(ListDetailsSectionComponent, { read: ListDetailsSectionComponent })\r\n set details(ref: ListDetailsSectionComponent) {\r\n this.detailsTemplate = ref;\r\n if (this.detailsTemplate) {\r\n this.detailsSectionSupported = true;\r\n }\r\n }\r\n\r\n @Output() pageChanged: EventEmitter<number> = new EventEmitter<number>();\r\n @Output() pageSizeChanged: EventEmitter<number> = new EventEmitter<number>();\r\n @Output() detailsOpened: EventEmitter<{ item: any, open: boolean }> = new EventEmitter<{ item: any, open: boolean }>();\r\n @Output() sortChanged: EventEmitter<string> = new EventEmitter<string>();\r\n @Output() sortdirChanged: EventEmitter<string> = new EventEmitter<string>();\r\n @Output() advancedSearchChanged: EventEmitter<FilterClause[]> = new EventEmitter<FilterClause[]>();\r\n\r\n private multipleFullWidth = false;\r\n public expandIcon = Icons.Expand;\r\n public collapseIcon = Icons.Collapse;\r\n public tableViewSupported = false;\r\n public fullWidthTHClass = 'list-view-th-full';\r\n public fullWidthTDClass = 'list-view-td-full';\r\n public tilesViewSupported = false;\r\n public detailsSectionSupported = false;\r\n public loaderItems: any[] = [];\r\n public columns: any[] = [];\r\n public tilesDeckClass = 'cards-deck-4';\r\n public tileTemplate: any | null | undefined = null;\r\n public detailsTemplate: any | null | undefined = null;\r\n\r\n constructor() {\r\n for (let i = 0; i < 9; i++) {\r\n this.loaderItems.push({});\r\n }\r\n if (this.pagerPosition) {\r\n this.pagerPosition = this.pagerPosition as PagerPosition;\r\n }\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n const tilesCountChange = changes['tiles-count'] || changes.tilesCount;\r\n if (tilesCountChange) {\r\n this.setTilesDeckClass(tilesCountChange.currentValue);\r\n }\r\n }\r\n\r\n // events\r\n public emitPageChanged($event: number): void {\r\n this.pageChanged.emit($event);\r\n }\r\n\r\n public emitPageSizeChanged($event: number): void {\r\n this.pageSizeChanged.emit($event);\r\n }\r\n\r\n public emitSortChanged($event: string): void {\r\n this.sortChanged.emit($event);\r\n }\r\n public emitSortdirChanged($event: string): void {\r\n this.sortdirChanged.emit($event);\r\n }\r\n public emitAdvancedSearchChanged($event: FilterClause[]): void {\r\n this.advancedSearchChanged.emit($event);\r\n }\r\n\r\n public toggleDetails(item: any): void {\r\n item.detailsExpanded = !item.detailsExpanded;\r\n this.detailsOpened.emit({ item, open: item.detailsExpanded });\r\n }\r\n\r\n // helpers\r\n private setTilesDeckClass(tiles: number): void {\r\n if (tiles >= 1 && tiles <= 4) {\r\n this.tilesDeckClass =\r\n this.view !== ListViewType.Gallery\r\n ? `cards-deck-${tiles}`\r\n : this.items && this.items.length > 0\r\n ? `gallery-deck-${tiles}`\r\n : 'gallery-deck';\r\n } else {\r\n this.tilesDeckClass =\r\n this.view !== ListViewType.Gallery\r\n ? 'cards-deck-3'\r\n : this.items && this.items.length > 0\r\n ? 'gallery-deck-3'\r\n : 'gallery-deck';\r\n }\r\n }\r\n\r\n}\r\n","<div>\r\n <lib-advanced-search *ngIf=\"searchOptions && searchOptions.length > 0\"\r\n [search-options]=\"searchOptions\"\r\n [operators-disabled]=\"operatorsDisabled\"\r\n [filters]=\"filters\"\r\n (advancedSearchChanged)=\"emitAdvancedSearchChanged($event)\">\r\n </lib-advanced-search>\r\n\r\n <lib-pager *ngIf=\"showPager && (pagerPosition == 'top' || pagerPosition == 'both')\"\r\n [page]=\"page\"\r\n [page-size]=\"pageSize\"\r\n [count]=\"count\"\r\n [sort-options]=\"sortOptions\"\r\n [sort]=\"sort\"\r\n [sort-dir]=\"sortdir\"\r\n [busy]=\"busy\"\r\n (pageChanged)=\"emitPageChanged($event)\"\r\n (pageSizeChanged)=\"emitPageSizeChanged($event)\"\r\n (sortChanged)=\"emitSortChanged($event)\"\r\n (sortdirChanged)=\"emitSortdirChanged($event)\">\r\n <ng-content select=\"[pager-near-content]\" ngProjectAs=\"[pager-near-content]\"></ng-content>\r\n </lib-pager>\r\n</div>\r\n\r\n<ng-container [ngSwitch]=\"view\">\r\n\r\n <ng-container *ngSwitchCase=\"'tiles'\">\r\n <div [class]=\"busy ? 'cards-deck-1' : tilesDeckClass\">\r\n\r\n <lib-skeleton-loader *ngIf=\"busy\" [deck-class]=\"tilesDeckClass\" [count]=\"7\" [type]=\"'tiles'\"></lib-skeleton-loader>\r\n\r\n <ng-container *ngIf=\"!busy && items && items.length > 0\">\r\n <ng-container *ngFor=\"let item of items\">\r\n <span *ngIf=\"!tileTemplate || !tileTemplate.template\">template missing..</span>\r\n <ng-template [ngTemplateOutlet]=\"tileTemplate.template\" [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\r\n </ng-container>\r\n </ng-container>\r\n\r\n </div>\r\n </ng-container>\r\n\r\n\r\n <!-- *ngSwitchCase=\"'gallery'\" -->\r\n <ng-container *ngSwitchCase=\"'gallery'\">\r\n <ul role=\"list\" role=\"list\" [class]=\"tilesDeckClass\">\r\n\r\n <lib-skeleton-loader *ngIf=\"busy\" [count]=\"5\" [type]=\"'tiles'\"></lib-skeleton-loader>\r\n\r\n <ng-container *ngIf=\"!busy && items && items.length > 0\">\r\n <ng-container *ngFor=\"let item of items\" role=\"listitem\">\r\n <span *ngIf=\"!tileTemplate || !tileTemplate.template\">template missing..</span>\r\n <ng-template [ngTemplateOutlet]=\"tileTemplate.template\" [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\r\n </ng-container>\r\n </ng-container>\r\n </ul>\r\n </ng-container>\r\n\r\n <!-- *ngSwitchCase=\"'table'\" -->\r\n <ng-container *ngSwitchDefault>\r\n\r\n <div class=\"list-view-container\">\r\n <div class=\"list-view-container-inner\">\r\n <table class=\"list-view-table\">\r\n <thead class=\"list-view-thead\">\r\n <tr>\r\n <ng-container *ngIf=\"detailsSectionSupported\">\r\n <th class=\"list-view-th-details\"></th>\r\n </ng-container>\r\n <ng-container *ngFor=\"let col of columns\">\r\n <th scope=\"col\"\r\n [class]=\"col.fullWidth ? fullWidthTHClass : 'list-view-th'\">\r\n {{col.title}}\r\n </th>\r\n </ng-container>\r\n </tr>\r\n </thead>\r\n <tbody class=\"list-view-tbody\"\r\n *ngIf=\"busy\">\r\n <ng-container *ngFor=\"let item of loaderItems;let i=index\">\r\n <tr class=\"list-view-tr\">\r\n <ng-container *ngIf=\"detailsSectionSupported\">\r\n <td class=\"list-view-td-details\"\r\n *ngIf=\"detailsSectionPropertyCount !== null ? item[detailsSectionPropertyCount] !== 0 : true; else hiddenDetailsButton\">\r\n <button disabled\r\n title=\"expand-collapse\"\r\n type=\"button\"\r\n class=\"expand-collapse-button\">\r\n <!-- Heroicon name: solid/plus -->\r\n <i [class]=\"item.detailsExpanded ? collapseIcon : expandIcon\"></i>\r\n </button>\r\n </td>\r\n <ng-template #hiddenDetailsButton>\r\n <td class=\"list-view-td-details\"></td>\r\n </ng-template>\r\n </ng-container>\r\n <td *ngFor=\"let col of columns\"\r\n [class]=\"col.fullWidth ? fullWidthTDClass : 'list-view-td'\">\r\n <div class=\"w-full animate-pulse h-8 bg-gray-200 rounded\"></div>\r\n </td>\r\n </tr>\r\n <ng-container *ngIf=\"detailsSectionSupported\">\r\n <tr *ngIf=\"item.detailsExpanded\">\r\n <td [colSpan]=\"columns.length + 1\"\r\n class=\"list-view-td bg-gray-100\">\r\n <ng-template [ngTemplateOutlet]=\"detailsTemplate.template\"\r\n [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\r\n </td>\r\n </tr>\r\n </ng-container>\r\n </ng-container>\r\n </tbody>\r\n <tbody class=\"list-view-tbody\"\r\n *ngIf=\"!busy\">\r\n <ng-container *ngFor=\"let item of items;let i=index\">\r\n <tr class=\"list-view-tr\">\r\n <ng-container *ngIf=\"detailsSectionSupported\">\r\n <td class=\"list-view-td-details\"\r\n *ngIf=\"detailsSectionPropertyCount !== null ? item[detailsSectionPropertyCount] !== 0 : true; else hiddenDetailsButton\">\r\n <button (click)=\"toggleDetails(item)\"\r\n title=\"toggleDetails\"\r\n type=\"button\"\r\n class=\"expand-collapse-button\">\r\n <!-- Heroicon name: solid/plus -->\r\n <i [class]=\"item.detailsExpanded ? collapseIcon : expandIcon\"></i>\r\n </button>\r\n </td>\r\n <ng-template #hiddenDetailsButton>\r\n <td class=\"list-view-td-details\"></td>\r\n </ng-template>\r\n </ng-container>\r\n <td *ngFor=\"let col of columns\"\r\n [class]=\"col.fullWidth ? fullWidthTDClass : 'list-view-td'\">\r\n <ng-template [ngTemplateOutlet]=\"col.template\"\r\n [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\r\n </td>\r\n </tr>\r\n <ng-container *ngIf=\"detailsSectionSupported\">\r\n <tr *ngIf=\"item.detailsExpanded\">\r\n <td [colSpan]=\"columns.length + 1\"\r\n class=\"list-view-td bg-gray-100\">\r\n <ng-template [ngTemplateOutlet]=\"detailsTemplate.template\"\r\n [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\r\n </td>\r\n </tr>\r\n </ng-container>\r\n </ng-container>\r\n </tbody>\r\n </table>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"!busy && items && items.length === 0\">\r\n <div class=\"cards-deck-1\">\r\n <lib-list-view-empty-state></lib-list-view-empty-state>\r\n </div>\r\n </ng-container>\r\n</ng-container>\r\n\r\n<ng-content></ng-content>\r\n\r\n<div class=\"px-2 mt-2\"\r\n *ngIf=\"items && items.length !== 0 && showPager && (pagerPosition == 'bottom' || pagerPosition == 'both')\">\r\n <lib-pager [page]=\"page\"\r\n [page-size]=\"pageSize\"\r\n [count]=\"count\"\r\n [sort-options]=\"sortOptions\"\r\n [sort]=\"sort\"\r\n [sort-dir]=\"sortdir\"\r\n [busy]=\"busy\"\r\n (pageChanged)=\"emitPageChanged($event)\"\r\n (pageSizeChanged)=\"emitPageSizeChanged($event)\"\r\n (sortChanged)=\"emitSortChanged($event)\"\r\n (sortdirChanged)=\"emitSortdirChanged($event)\">\r\n </lib-pager>\r\n</div>","import { Component, Input, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-collapsible-panel',\r\n templateUrl: './collapsible-panel.component.html'\r\n})\r\nexport class CollapsiblePanelComponent implements OnInit {\r\n @Input() title: string | null = null;\r\n public visible = false;\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","<div class=\"collapsible-panel-container\">\r\n <div class=\"collapsible-panel-container-shadow\">\r\n <div class=\"collapsible-panel-container-inner\">\r\n <button type=\"button\" class=\"collapsible-panel-button\" (click)=\"visible = !visible\">\r\n <div class=\"collapsible-panel-button-content-container\">\r\n <span>{{ title }} </span>\r\n <span class=\"ico-plus\"></span>\r\n </div>\r\n </button>\r\n <div class=\"collapsible-panel-content-container\" *ngIf=\"visible\">\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-kpi-tile',\r\n templateUrl: './kpi-tile.component.html'\r\n})\r\nexport class KpiTileComponent implements OnInit {\r\n\r\n @Input() title: string | undefined = undefined;\r\n @Input() busy = false;\r\n @Input() kpi: any | undefined = undefined;\r\n @Input() hideBtn: boolean | undefined = false;\r\n @Input('action-text') actionText: string = 'Περισσότερα';\r\n // tslint:disable-next-line:no-output-rename\r\n @Output('tile-action') tileAction: EventEmitter<any> = new EventEmitter<any>();\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n public emitTileAction($event: any): boolean {\r\n $event.preventDefault();\r\n $event.stopPropagation();\r\n this.tileAction.emit($event);\r\n return false;\r\n }\r\n\r\n}\r\n","<div class=\"card\" [ngClass]=\"{'card-deck-busy' : busy }\">\r\n <div class=\"card-body\">\r\n <div class=\"kpi-tile-title-container\">\r\n <a href=\"#\" class=\"kpi-tile-action\" (click)=\"emitTileAction($event)\">{{title || '-'}}</a>\r\n </div>\r\n <div class=\"grid grid-cols-2 grid-flow-row gap-2 items-center\">\r\n <p class=\"kpi-tile-value\">{{kpi || '-'}}</p>\r\n <ng-content></ng-content>\r\n </div>\r\n <div class=\"card-footer\">\r\n <div class=\"text-xs\">\r\n <a href=\"#\" class=\"kpi-tile-action\" [ngClass]=\"{'invisible': hideBtn}\" (click)=\"emitTileAction($event)\">{{actionText}}</a>\r\n </div>\r\n </div>\r\n </div>\r\n</div>","import { Injectable } from '@angular/core';\r\n\r\nimport { BehaviorSubject, Observable } from 'rxjs';\r\nimport { filter } from 'rxjs/operators';\r\nimport { Toast, ToastType, NULL_TOAST } from '../types';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ToasterService {\r\n private _subject: BehaviorSubject<Toast>;\r\n\r\n constructor() {\r\n this._subject = new BehaviorSubject<Toast>(NULL_TOAST);\r\n this.toast$ = this\r\n ._subject\r\n .asObservable()\r\n .pipe(filter((toast: Toast) => toast !== null && toast.title !== NULL_TOAST.title));\r\n }\r\n \r\n public toast$: Observable<Toast>;\r\n\r\n public show(type: ToastType, title?: string, body?: string, delay?: number): void {\r\n this._subject.next({ type, title, body, delay } as Toast);\r\n }\r\n}\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { Toast } from '../../types';\r\n\r\n@Component({\r\n selector: 'lib-toaster',\r\n templateUrl: './toaster.component.html'\r\n})\r\nexport class ToasterComponent implements OnInit {\r\n\r\n @Input() toast: Toast | undefined;\r\n @Input() i = 0;\r\n @Output() remove = new EventEmitter<number>();\r\n public isMobile = false;\r\n public closed = false;\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n window.screen.width > 640 ? this.isMobile = false : this.isMobile = true;\r\n }\r\n\r\n public closeToast(index: number): void {\r\n this.closed = true;\r\n setTimeout(() => this.remove.emit(index), 100);\r\n }\r\n}\r\n","<div aria-live=\"assertive\"\r\n [ngClass]=\"closed ? 'toast-closed': 'toast z-50'\"\r\n [ngStyle]=\"isMobile ? { 'margin-bottom.px': i * 85 } : {'margin-top.px': i * 85 }\">\r\n <div class=\"toast-container\">\r\n <div class=\"toast-pill\">\r\n <div class=\"toast-context-padding\">\r\n <div class=\"toast-context\"\r\n [ngSwitch]=\"toast?.type\">\r\n <div class=\"toast-icon\"\r\n *ngSwitchCase=\"'info'\">\r\n <svg class=\"h-5 w-5 text-blue-400\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 20 20\"\r\n fill=\"currentColor\"\r\n aria-hidden=\"true\">\r\n <path fill-rule=\"evenodd\"\r\n d=\"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a1 1 0 000 2v3a1 1 0 001 1h1a1 1 0 100-2v-3a1 1 0 00-1-1H9z\"\r\n clip-rule=\"evenodd\" />\r\n </svg>\r\n </div>\r\n <div class=\"toast-icon\"\r\n *ngSwitchCase=\"'success'\">\r\n <svg class=\"h-5 w-5 text-green-400\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n fill=\"none\"\r\n viewBox=\"0 0 24 24\"\r\n stroke=\"currentColor\"\r\n aria-hidden=\"true\">\r\n <path stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n stroke-width=\"2\"\r\n d=\"M9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z\" />\r\n </svg>\r\n </div>\r\n <div class=\"toast-icon\"\r\n *ngSwitchCase=\"'error'\">\r\n <svg class=\"h-5 w-5 text-red-400\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 20 20\"\r\n fill=\"currentColor\"\r\n aria-hidden=\"true\">\r\n <path fill-rule=\"evenodd\"\r\n d=\"M10 18a8 8 0 100-16 8 8 0 000 16zM8.707 7.293a1 1 0 00-1.414 1.414L8.586 10l-1.293 1.293a1 1 0 101.414 1.414L10 11.414l1.293 1.293a1 1 0 001.414-1.414L11.414 10l1.293-1.293a1 1 0 00-1.414-1.414L10 8.586 8.707 7.293z\"\r\n clip-rule=\"evenodd\" />\r\n </svg>\r\n </div>\r\n <div class=\"toast-icon\"\r\n *ngSwitchCase=\"'warning'\">\r\n <svg class=\"h-5 w-5 text-yellow-400\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 20 20\"\r\n fill=\"currentColor\"\r\n aria-hidden=\"true\">\r\n <path fill-rule=\"evenodd\"\r\n d=\"M8.257 3.099c.765-1.36 2.722-1.36 3.486 0l5.58 9.92c.75 1.334-.213 2.98-1.742 2.98H4.42c-1.53 0-2.493-1.646-1.743-2.98l5.58-9.92zM11 13a1 1 0 11-2 0 1 1 0 012 0zm-1-8a1 1 0 00-1 1v3a1 1 0 002 0V6a1 1 0 00-1-1z\"\r\n clip-rule=\"evenodd\" />\r\n </svg>\r\n </div>\r\n <div class=\"toast-icon\"\r\n *ngSwitchDefault>\r\n <svg class=\"h-5 w-5 text-green-400\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n fill=\"none\"\r\n viewBox=\"0 0 24 24\"\r\n stroke=\"currentColor\"\r\n aria-hidden=\"true\">\r\n <path stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n stroke-width=\"2\"\r\n d=\"M9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z\" />\r\n </svg>\r\n </div>\r\n\r\n <div class=\"ml-3 w-0 flex-1\">\r\n <p class=\"toast-title\"\r\n *ngIf=\"toast?.title\">\r\n {{toast?.title}}\r\n </p>\r\n <p class=\"toast-body\">\r\n {{toast?.body}}\r\n </p>\r\n </div>\r\n <div class=\"toast-close-icon\">\r\n <button class=\"toast-close-button\"\r\n (click)=\"closeToast(i)\">\r\n <span class=\"sr-only\">Close</span>\r\n <!-- Heroicon name: solid/x -->\r\n <svg class=\"h-5 w-5\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 20 20\"\r\n fill=\"currentColor\"\r\n aria-hidden=\"true\">\r\n <path fill-rule=\"evenodd\"\r\n d=\"M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z\"\r\n clip-rule=\"evenodd\" />\r\n </svg>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>","import { Component, OnInit } from '@angular/core';\r\nimport { ToasterService } from '../../services/toaster.service';\r\nimport { Toast } from '../../types';\r\n\r\n@Component({\r\n selector: 'lib-toaster-container',\r\n templateUrl: './toaster-container.component.html'\r\n})\r\nexport class ToasterContainerComponent implements OnInit {\r\n\r\n toasts: Toast[] = [];\r\n\r\n constructor(private toaster: ToasterService) { }\r\n\r\n ngOnInit(): void {\r\n this.toaster.toast$\r\n .subscribe(toast => {\r\n this.toasts = [toast, ...this.toasts];\r\n setTimeout(() => this.toasts.pop(), toast.delay || 6000);\r\n });\r\n }\r\n\r\n remove(index: number): void {\r\n this.toasts = this.toasts.slice(0, index).concat(this.toasts.slice(index + 1));\r\n }\r\n\r\n}\r\n","<lib-toaster *ngFor=\"let toast of toasts; let i=index\" [toast]=\"toast\" [i]=\"i\" (remove)=\"remove($event)\"></lib-toaster>\r\n","import { Component, Input, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-avatar-initials',\r\n templateUrl: './avatar-initials.component.html'\r\n})\r\nexport class AvatarInitialsComponent implements OnInit {\r\n @Input()\r\n public name: string | null | undefined;\r\n @Input()\r\n public large = false;\r\n public initials?: string;\r\n public circleColor!: string;\r\n private colors = [\r\n '#EB7181', // red\r\n '#468547', // green\r\n '#FFD558', // yellow\r\n '#3670B2', // blue\r\n ];\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n this.createInititals();\r\n const randomIndex = Math.floor(Math.random() * Math.floor(this.colors.length));\r\n // assign this to a class if you want to randomly change background colors of the circle.\r\n this.circleColor = this.colors[randomIndex];\r\n }\r\n\r\n private createInititals(): void {\r\n if (this.name) {\r\n let initials = '';\r\n for (let i = 0; i < this.name.length; i++) {\r\n if (this.name.charAt(i) === ' ') {\r\n continue;\r\n }\r\n if (this.name.charAt(i) === this.name.charAt(i).toUpperCase()) {\r\n initials += this.name.charAt(i);\r\n if (initials.length === 2) {\r\n break;\r\n }\r\n }\r\n }\r\n this.initials = initials;\r\n }\r\n }\r\n}\r\n","<div [ngClass]=\"large ? 'avatar-container-large': 'avatar-container'\">\r\n <span [ngClass]=\"large ? 'avatar-text-large': 'avatar-text'\">{{ initials }}</span>\r\n</div>\r\n","import { Component, EventEmitter, forwardRef, Input, OnInit, Output } from '@angular/core';\r\nimport { NG_VALUE_ACCESSOR, ControlValueAccessor } from '@angular/forms';\r\n\r\n@Component({\r\n selector: 'lib-toggle',\r\n templateUrl: './toggle.component.html',\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => ToggleComponent),\r\n multi: true\r\n }\r\n ]\r\n})\r\nexport class ToggleComponent implements OnInit, ControlValueAccessor {\r\n @Input()\r\n public value: boolean | null | undefined;\r\n @Input()\r\n public disabled:boolean | null | undefined;\r\n @Output() valueChange: EventEmitter<Boolean> = new EventEmitter<Boolean>();\r\n\r\n private onChange$: any | undefined = undefined;\r\n private onTouched$: any | undefined = undefined;\r\n\r\n constructor() { }\r\n \r\n writeValue(obj: any): void {\r\n if(obj) {\r\n this.value = obj || false;\r\n }\r\n }\r\n registerOnChange(fn: any): void {\r\n this.onChange$ = fn;\r\n }\r\n registerOnTouched(fn: any): void {\r\n this.onTouched$ = fn;\r\n }\r\n\r\n public onBlur(event: any): void {\r\n if(this.onTouched$) {\r\n this.onTouched$();\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n public changeValue(){\r\n this.value = !this.value;\r\n this.valueChange.emit(this.value);\r\n if(this.onChange$) {\r\n this.onChange$(this.value);\r\n }\r\n if(this.onTouched$) {\r\n this.onTouched$();\r\n }\r\n }\r\n}","<button type=\"button\"\r\n [ngClass]=\"value ? (disabled ? 'on disabled' : 'on') : 'off'\"\r\n class=\"toggle-button\"\r\n role=\"switch\"\r\n aria-checked=\"false\"\r\n aria-labelledby=\"isPrivate\"\r\n (click)=\"changeValue()\"\r\n (blur)=\"onBlur($event)\"\r\n value=\"{{value}}\"\r\n [disabled]=\"disabled\"\r\n [title]=\"disabled ? 'Το αρχείο πρέπει να είναι ιδωτικό' : 'Ιδιωτικό'\">\r\n <span aria-hidden=\"true\"\r\n [ngClass]=\"value ? 'enabled-anim' : 'disabled-anim'\"\r\n class=\"toggle-span\"></span>\r\n</button>","import { SidePaneOverlayType, SidePaneSize } from './../../types';\r\nimport { Router } from '@angular/router';\r\nimport { Component, Input, OnInit, OnDestroy, Inject, EventEmitter, Output } from '@angular/core';\r\nimport { DOCUMENT } from '@angular/common';\r\n\r\n@Component({\r\n selector: 'lib-side-pane',\r\n templateUrl: './side-pane.component.html'\r\n})\r\nexport class SidePaneComponent implements OnInit, OnDestroy {\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('visible')\r\n protected showPane = false;\r\n public sizeContainerStyle = 'side-pane-box-size';\r\n public overlayStyle = 'side-pane-overlay';\r\n @Output() onComplete: EventEmitter<boolean> = new EventEmitter<boolean>();\r\n @Output() onOpen: EventEmitter<any> = new EventEmitter<any>();\r\n @Output() onClose: EventEmitter<any> = new EventEmitter<any>();\r\n \r\n constructor(private router: Router, @Inject(DOCUMENT) private document: any,) { }\r\n\r\n ngOnDestroy(): void {\r\n }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n public onSidePaneActivated(component: any): void {\r\n let sizeStyleSuffix = '';\r\n const state = this.router.getCurrentNavigation()?.extras.state;\r\n if (state) {\r\n if (state.paneSize) {\r\n if (state.paneSize === SidePaneSize.Small25) {\r\n sizeStyleSuffix = '-25';\r\n } else if (state.paneSize === SidePaneSize.Medium50) {\r\n sizeStyleSuffix = '-50';\r\n } else if (state.paneSize === SidePaneSize.Large75) {\r\n sizeStyleSuffix = '-75';\r\n }\r\n }\r\n if (state.paneOverlay) {\r\n if (state.paneOverlay === SidePaneOverlayType.None) {\r\n this.overlayStyle = 'side-pane-overlay-opacity-0';\r\n } else if (state.paneOverlay === SidePaneOverlayType.Dark) {\r\n this.overlayStyle = 'side-pane-overlay-opacity-50';\r\n } else {\r\n this.overlayStyle = 'side-pane-overlay';\r\n }\r\n }\r\n }\r\n this.sizeContainerStyle = `side-pane-box-size${sizeStyleSuffix}`;\r\n this.show();\r\n }\r\n\r\n public onSidePaneDeactivated($event: any): void { \r\n this.hide();\r\n }\r\n\r\n public show(): void {\r\n this.document.body.classList.add('modal-active');\r\n this.showPane = true;\r\n this.onOpen.emit(true);\r\n }\r\n\r\n public hide(): void {\r\n this.showPane = false;\r\n this.document.body.classList.remove('modal-active');\r\n this.onClose.emit(false);\r\n // prepei na allaxei auto!\r\n this.onComplete.emit(true);\r\n\r\n }\r\n\r\n}\r\n","<div *ngIf=\"showPane\" class=\"side-pane-outer-container\" aria-labelledby=\"slide-over\" role=\"dialog\" aria-modal=\"true\">\r\n <div [class]=\"showPane ? overlayStyle : 'hidden'\" aria-hidden=\"true\"></div>\r\n <div [class]=\"showPane ? 'side-pane-container' : 'hidden'\">\r\n <div [class]=\"sizeContainerStyle\">\r\n <div class=\"side-pane\">\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n","import { Observable, Subscription } from 'rxjs';\r\nimport { Component, Input, OnDestroy, OnInit } from '@angular/core';\r\nimport { NavLink } from '../../types';\r\n\r\n@Component({\r\n selector: 'lib-nav-links-list',\r\n templateUrl: './nav-links-list.component.html'\r\n})\r\nexport class NavLinksListComponent implements OnInit, OnDestroy {\r\n\r\n @Input() links: Observable<NavLink[]> | undefined;\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('active-fragment') activeFragment: Observable<string> | undefined;\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('link-class') navLinkClass: string | string = 'nav-link';\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('link-active-class') navLinkActiveClass: string | string[] = 'nav-link-active';\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('container-class') containerClass: string | string[] | undefined = undefined;\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('show-icons') showIcons: boolean | undefined = false;\r\n @Input('show-text') showText: boolean | undefined = true;\r\n @Input('large-icons') largeIcons: boolean = false;\r\n public fragmentValue: string | undefined;\r\n private fragmentSub$: Subscription | undefined;\r\n constructor() { }\r\n \r\n ngOnDestroy(): void {\r\n this.fragmentSub$?.unsubscribe();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.fragmentSub$ = this.activeFragment?.subscribe( fragment => this.fragmentValue = fragment);\r\n }\r\n\r\n}\r\n","\r\n<div [class]=\"containerClass ?? 'nav-link-list-container'\">\r\n <div class=\"nav-link-list-container-inner\" [class.icons-only]=\"!showText\">\r\n <ng-container *ngFor=\"let link of links | async\">\r\n <ng-container [ngSwitch]=\"link.type\">\r\n <a *ngSwitchCase=\"'router'\"\r\n href=\"#\"\r\n [routerLink]=\"[link.path]\"\r\n [routerLinkActive]=\"navLinkActiveClass\"\r\n [routerLinkActiveOptions]=\"{ exact: link.exact }\"\r\n [queryParams]=\"link.queryParams\"\r\n [class]=\"navLinkClass\"\r\n [class.min-nav-link-text-width]=\"showText\">\r\n <div class=\"inline-flex items-center\">\r\n <i *ngIf=\"showIcons && link.icon\" [class]=\"link.icon\" [class.text-2xl]=\"largeIcons\" [class.p-1]=\"largeIcons\"></i>\r\n <span [class.ml-3]=\"showIcons && link.icon\" *ngIf=\"showText\">{{ link.text }}</span>\r\n </div>\r\n </a>\r\n <a *ngSwitchCase=\"'external'\"\r\n [href]=\"link.path\"\r\n [attr.target]=\"link.external ? '_blank' : '_self'\"\r\n [class]=\"navLinkClass\"\r\n [class.min-nav-link-text-width]=\"showText\">\r\n <div class=\"inline-flex items-center\">\r\n <i *ngIf=\"showIcons && link.icon\" [class]=\"link.icon\" [class.text-2xl]=\"largeIcons\" [class.p-1]=\"largeIcons\"></i>\r\n <span [class.ml-3]=\"showIcons && link.icon\" *ngIf=\"showText\">{{ link.text }}</span>\r\n </div>\r\n </a>\r\n <a *ngSwitchCase=\"'fragment'\"\r\n routerLink=\".\"\r\n [fragment]=\"link.path\"\r\n [class]=\"fragmentValue === link.path ? navLinkClass + ' ' + navLinkActiveClass : navLinkClass\"\r\n [class.min-nav-link-text-width]=\"showText\">\r\n <div class=\"inline-flex items-center\">\r\n <i *ngIf=\"showIcons && link.icon\" [class]=\"link.icon\" [class.text-2xl]=\"largeIcons\" [class.p-1]=\"largeIcons\"></i>\r\n <span [class.ml-3]=\"showIcons && link.icon\" *ngIf=\"showText\">{{ link.text }}</span>\r\n </div>\r\n </a>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n</div>\r\n","import { Component, EventEmitter, Input, OnInit, Output, TemplateRef } from '@angular/core';\r\n\r\nimport { Subject } from 'rxjs';\r\nimport { debounceTime, distinctUntilChanged } from 'rxjs/operators';\r\n\r\n@Component({\r\n selector: 'lib-combobox',\r\n templateUrl: './combobox.component.html'\r\n})\r\nexport class ComboboxComponent implements OnInit {\r\n private _debouncer: Subject<string> = new Subject<string>();\r\n private _items: any[] = [];\r\n\r\n private _defaultItemsFilter = (item: any) => {\r\n const selectedItem = this.selectedItems.find(x => x == item);\r\n return selectedItem == null || selectedItem == undefined;\r\n };\r\n\r\n constructor() { }\r\n\r\n @Input() public id: string = 'combobox';\r\n @Input() public placeholder: string | undefined;\r\n\r\n @Input('items') public set items(items: any[]) {\r\n if (!this.itemTemplate) {\r\n this._items = items.filter(this._defaultItemsFilter);\r\n } else {\r\n this._items = items.filter(this.selectedItemsFilter);\r\n }\r\n }\r\n\r\n public get items(): any[] {\r\n if (!this.itemTemplate) {\r\n return this._items.filter(this._defaultItemsFilter);\r\n } else {\r\n return this._items.filter(this.selectedItemsFilter);\r\n }\r\n }\r\n\r\n @Input() public itemTemplate: TemplateRef<HTMLElement> | undefined = undefined;\r\n @Input() public selectedItemsFilter: (item: any) => boolean | null = () => true;\r\n @Input() public selectedItemTemplate: TemplateRef<HTMLElement> | undefined = undefined;\r\n @Input() public noResultsTemplate: TemplateRef<unknown> | undefined = undefined;\r\n @Input() public busy: boolean = false;\r\n @Input() public multiple: boolean = true;\r\n @Input() public debounceMs: number = 1000;\r\n @Output() public onSearch: EventEmitter<string | undefined> = new EventEmitter();\r\n @Output() public onItemSelected: EventEmitter<any> = new EventEmitter();\r\n public showResults: boolean = false;\r\n public selectedItems: any[] = [];\r\n public value: string | undefined;\r\n protected searchTerm: string = '';\r\n\r\n public ngOnInit(): void {\r\n if (this.itemTemplate && !this.multiple) {\r\n this.multiple = true;\r\n console.warn('You cannot have a custom item template with single selection.');\r\n }\r\n this.emitSearchEvent();\r\n this._debouncer\r\n .pipe(\r\n debounceTime(this.debounceMs),\r\n distinctUntilChanged()\r\n )\r\n .subscribe((value: string) => {\r\n this.searchTerm = value;\r\n this.emitSearchEvent(value);\r\n });\r\n }\r\n\r\n public onInputClick(): void {\r\n this.showResults = true;\r\n }\r\n\r\n public onClickOutside(): void {\r\n this.showResults = false;\r\n }\r\n\r\n public onInputKeyUp(event: any): void {\r\n this._debouncer.next(event.currentTarget.value);\r\n }\r\n\r\n public onListItemSelected(item: any): void {\r\n this.onItemSelected.emit(item);\r\n if (this.multiple) {\r\n this.selectedItems.push(item);\r\n } else {\r\n this.value = item;\r\n }\r\n }\r\n\r\n public removeItem(item: any): void {\r\n const index = this.selectedItems.indexOf(item);\r\n if (index > -1) {\r\n this.selectedItems.splice(index, 1);\r\n }\r\n }\r\n\r\n private emitSearchEvent(searchTerm: string | undefined = undefined): void {\r\n this.onSearch.emit(searchTerm);\r\n }\r\n}\r\n","<div class=\"combobox-wrapper\" (clickOutside)=\"onClickOutside()\">\r\n <form autocomplete=\"off\"\r\n [id]=\"id + '-form'\">\r\n <input [id]=\"id\"\r\n title=\"combobox input\"\r\n type=\"text\"\r\n (click)=\"onInputClick()\"\r\n (clickOutside)=\"onClickOutside()\"\r\n (keyup)=\"onInputKeyUp($event)\"\r\n class=\"combobox-input\"\r\n role=\"combobox\"\r\n aria-controls=\"options\"\r\n aria-expanded=\"false\"\r\n autocomplete=\"off\"\r\n list=\"autocomplete\"\r\n [value]=\"value || ''\"\r\n [placeholder]=\"placeholder || ''\">\r\n </form>\r\n <div class=\"combobox-icons\">\r\n <svg *ngIf=\"!busy\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n class=\"h-6 w-6 text-gray-400\"\r\n fill=\"none\"\r\n viewBox=\"0 0 24 24\"\r\n stroke=\"currentColor\"\r\n stroke-width=\"2\">\r\n <path stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n d=\"M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z\" />\r\n </svg>\r\n <svg *ngIf=\"busy\"\r\n class=\"animate-spin h-6 w-6 text-gray-400\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n fill=\"none\"\r\n viewBox=\"0 0 24 24\">\r\n <circle class=\"opacity-25\"\r\n cx=\"12\"\r\n cy=\"12\"\r\n r=\"10\"\r\n stroke=\"currentColor\"\r\n stroke-width=\"4\">\r\n </circle>\r\n <path class=\"opacity-75\"\r\n fill=\"currentColor\"\r\n d=\"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z\"></path>\r\n </svg>\r\n </div>\r\n <ul [id]=\"id + '-results'\"\r\n *ngIf=\"showResults && items.length > 0\"\r\n class=\"combobox-results\"\r\n role=\"listbox\">\r\n <li *ngFor=\"let item of items; let i = index;\"\r\n [id]=\"'option-'+ i\"\r\n (click)=\"onListItemSelected(item)\"\r\n role=\"option\"\r\n tabindex=\"-1\">\r\n <ng-container [ngTemplateOutlet]=\"itemTemplate || defaultItemTemplate\"\r\n [ngTemplateOutletContext]=\"{ $implicit: item }\">\r\n </ng-container>\r\n </li>\r\n </ul>\r\n <div class=\"combobox-results\"\r\n *ngIf=\"noResultsTemplate && items.length === 0 && !busy\">\r\n <ng-container [ngTemplateOutlet]=\"noResultsTemplate || defaultnoResultsTemplate\"\r\n [ngTemplateOutletContext]=\"{ $implicit: searchTerm }\">\r\n </ng-container>\r\n </div>\r\n</div>\r\n<ul *ngIf=\"selectedItems.length > 0\"\r\n role=\"list\"\r\n class=\"grid grid-cols-1\">\r\n <li *ngFor=\"let item of selectedItems; let i = index;\"\r\n class=\"mt-3\">\r\n <ng-container [ngTemplateOutlet]=\"selectedItemTemplate || defaultSelectedItemTemplate\"\r\n [ngTemplateOutletContext]=\"{ $implicit: item }\">\r\n </ng-container>\r\n </li>\r\n</ul>\r\n<ng-template #defaultnoResultsTemplate\r\n let-searchTerm>\r\n <span class=\"combobox-default-item-template\">No results found for <i>{{ searchTerm }}</i></span>\r\n</ng-template>\r\n<ng-template #defaultItemTemplate\r\n let-item>\r\n <span class=\"combobox-default-item-template\">{{ item }}</span>\r\n</ng-template>\r\n<ng-template #defaultSelectedItemTemplate\r\n let-item>\r\n <div class=\"grid grid-cols-1\">\r\n <div class=\"combobox-selected-item-wrapper\">\r\n <div class=\"flex-1 min-w-0\">\r\n <div class=\"focus:outline-none\">\r\n <span class=\"absolute\"\r\n aria-hidden=\"true\">\r\n </span>\r\n <p class=\"text-sm font-medium text-gray-900\">{{ item }}</p>\r\n </div>\r\n </div>\r\n <div class=\"ml-4 flex-shrink-0 flex\">\r\n <button type=\"button\"\r\n (click)=\"removeItem(item)\"\r\n class=\"combobox-selected-item-remove-btn\">\r\n <span class=\"sr-only\">Close</span>\r\n <svg class=\"h-5 w-5\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 20 20\"\r\n fill=\"currentColor\"\r\n aria-hidden=\"true\">\r\n <path fill-rule=\"evenodd\"\r\n d=\"M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z\"\r\n clip-rule=\"evenodd\" />\r\n </svg>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n</ng-template>","import { Directive, TemplateRef } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[libTabLabel]'\r\n})\r\nexport class LibTabLabelDirective {\r\n constructor(public template: TemplateRef<any>) { }\r\n}\r\n","import { ChangeDetectionStrategy, Component, ContentChild, Inject, Input, OnInit, Optional, TemplateRef, ViewChild, ViewEncapsulation } from '@angular/core';\r\n\r\nimport * as uuid from 'uuid';\r\nimport { LIBTABGROUP_ACCESSOR } from '../../tokens';\r\nimport { LibTabLabelDirective } from './lib-tab-label.directive';\r\n\r\n@Component({\r\n selector: 'lib-tab',\r\n template: `\r\n <ng-template>\r\n <ng-content></ng-content>\r\n </ng-template>\r\n `,\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class LibTabComponent implements OnInit {\r\n private _isActive: boolean = false;\r\n\r\n constructor(\r\n @Optional() @Inject(LIBTABGROUP_ACCESSOR) public readonly _tabGroup?: any\r\n ) { }\r\n\r\n /** The content provided for the tab. */\r\n @ViewChild(TemplateRef, { static: true }) public content: TemplateRef<any> | null = null;\r\n /** A label template for the tab header. */\r\n @ContentChild(LibTabLabelDirective) public label: LibTabLabelDirective | undefined;\r\n /** Indicates the unique id assigned in the tab. */\r\n @Input() public id: string | undefined;\r\n @Input() public labelText: string | undefined;\r\n\r\n /** Indicates the index of the tab. */\r\n public get index(): number {\r\n const index = this._tabGroup?.tabs.toArray()?.indexOf(this);\r\n return index;\r\n }\r\n\r\n /** Indicates whether the tab is active. */\r\n public get isActive(): boolean {\r\n return this._isActive;\r\n }\r\n\r\n /** Setter for LibTabComponent isActive property. */\r\n public set isActive(isActive: boolean) {\r\n this._isActive = isActive;\r\n }\r\n\r\n public ngOnInit(): void {\r\n this.id = this.id || uuid.v4();\r\n }\r\n}","import { AfterContentChecked, AfterContentInit, Component, ContentChildren, EventEmitter, forwardRef, OnInit, Output, QueryList } from '@angular/core';\r\n\r\nimport { LIBTABGROUP_ACCESSOR } from '../../tokens';\r\nimport { LibTabComponent } from './lib-tab.component';\r\n\r\n@Component({\r\n selector: 'lib-tab-group',\r\n templateUrl: './lib-tab-group.component.html',\r\n providers: [\r\n { provide: LIBTABGROUP_ACCESSOR, useExisting: forwardRef(() => LibTabGroupComponent) }\r\n ]\r\n})\r\nexport class LibTabGroupComponent implements OnInit, AfterContentInit, AfterContentChecked {\r\n constructor() { }\r\n\r\n /** The inner tabs of the group. */\r\n @ContentChildren(LibTabComponent, { descendants: true }) public tabs: QueryList<LibTabComponent> | undefined = undefined;\r\n /** Emmited when a step change occurs. */\r\n @Output() protected tabChanged: EventEmitter<LibTabComponent> = new EventEmitter<LibTabComponent>();\r\n\r\n /** The current tab. */\r\n public get currentTab(): LibTabComponent | undefined {\r\n return this.tabs?.find(x => x.isActive);\r\n }\r\n\r\n /** The index (starting from zero) of the current tab. */\r\n public get currentΤabIndex(): number | undefined {\r\n return this.currentTab?.index || undefined;\r\n }\r\n\r\n public ngOnInit(): void { }\r\n\r\n protected onTabChanged(selectedTab: LibTabComponent): void {\r\n if (selectedTab.isActive) {\r\n return;\r\n }\r\n this.tabs?.forEach((tab: LibTabComponent) => tab.isActive = tab.id === selectedTab.id);\r\n this.tabChanged.emit(selectedTab);\r\n }\r\n\r\n protected onTabSelectChanged(selectedTabIndex: number): void {\r\n if (selectedTabIndex === this.currentΤabIndex) {\r\n return;\r\n }\r\n this.tabs?.forEach((tab: LibTabComponent, index: number) => tab.isActive = index === selectedTabIndex);\r\n this.tabChanged.emit(this.tabs?.get(selectedTabIndex));\r\n }\r\n\r\n public ngAfterContentInit(): void {\r\n if (!this.tabs) {\r\n return;\r\n }\r\n }\r\n\r\n public ngAfterContentChecked(): void {\r\n if (this.tabs && this.tabs.length > 0) {\r\n const anyActive = this.tabs.filter(x => x.isActive).length > 0;\r\n if (!anyActive) {\r\n this.tabs.get(0)!.isActive = true;\r\n }\r\n }\r\n }\r\n}","<div class=\"tab-group-select-hidden\">\r\n <label for=\"tabs\"\r\n class=\"sr-only\">\r\n Select a tab\r\n </label>\r\n <select id=\"tabs\"\r\n name=\"tabs\"\r\n (change)=\"onTabSelectChanged(+tabsSelect.value)\"\r\n class=\"tab-group-select\"\r\n #tabsSelect>\r\n <option [value]=\"i\"\r\n *ngFor=\"let tab of tabs; let i = index\">\r\n {{ tab.labelText }}\r\n </option>\r\n </select>\r\n</div>\r\n<div class=\"tab-group-container-hidden\">\r\n <div class=\"tab-group-container\">\r\n <nav class=\"tab-group-container-nav\"\r\n aria-label=\"Tabs\">\r\n <a *ngFor=\"let tab of tabs\"\r\n href=\"javascript:void(0)\"\r\n [class.tab]=\"!tab.isActive\"\r\n [class.tab-active]=\"tab.isActive\"\r\n (click)=\"onTabChanged(tab)\">\r\n <ng-container *ngTemplateOutlet=\"tab.label ? tab.label.template: defaultTabLabel; context:{ $implicit: tab }\"></ng-container>\r\n </a>\r\n </nav>\r\n </div>\r\n</div>\r\n<div *ngIf=\"currentTab?.content\">\r\n <ng-container [ngTemplateOutlet]=\"currentTab?.content || emptyTemplate\"></ng-container>\r\n</div>\r\n<ng-template let-tab\r\n #defaultTabLabel>\r\n {{ tab.labelText || 'tab-' + (tab.index + 1) }}\r\n</ng-template>\r\n<ng-template #emptyTemplate></ng-template>","import { Directive, TemplateRef } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[libStepInfo]',\r\n})\r\nexport class LibStepInfoDirective {\r\n constructor(public template: TemplateRef<any>) { }\r\n}\r\n","import { Directive, TemplateRef } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[libStepLabel]'\r\n})\r\nexport class LibStepLabelDirective {\r\n constructor(public template: TemplateRef<any>) { }\r\n}\r\n","import { ChangeDetectionStrategy, Component, ContentChild, Inject, Input, Optional, TemplateRef, ViewChild, ViewEncapsulation } from '@angular/core';\r\nimport { AbstractControl } from '@angular/forms';\r\n\r\nimport { LIBSTEPPER_ACCESSOR } from '../../tokens';\r\nimport { LibStepInfoDirective } from './lib-step-info.directive';\r\nimport { LibStepLabelDirective } from './lib-step-label.directive';\r\n\r\nexport enum StepState {\r\n Active = 'Active',\r\n Completed = 'Completed',\r\n Upcoming = 'Upcoming'\r\n};\r\n\r\n@Component({\r\n selector: 'lib-step',\r\n template: `\r\n <ng-template>\r\n <ng-content></ng-content>\r\n </ng-template>\r\n `,\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class LibStepComponent {\r\n constructor(\r\n @Optional() @Inject(LIBSTEPPER_ACCESSOR) public readonly _stepper?: any\r\n ) { }\r\n\r\n /** The content provided for the step. */\r\n @ViewChild(TemplateRef, { static: true }) public content!: TemplateRef<any>;\r\n /** The label of the step displayed in header, if applicable. */\r\n @ContentChild(LibStepLabelDirective) public stepLabel: LibStepLabelDirective | undefined;\r\n /** The info of the step displayed in header, if applicable. */\r\n @ContentChild(LibStepInfoDirective) public stepInfo: LibStepInfoDirective | undefined;\r\n /** An optional CSS class for the step header. */\r\n @Input() public class: string | undefined;\r\n /** The abstract control of the step. */\r\n @Input() public stepControl: AbstractControl | undefined;\r\n\r\n /** Indicates the index of the step. */\r\n public get index(): number {\r\n return this._stepper ? this._stepper.steps.toArray().indexOf(this) : -1;\r\n }\r\n\r\n /** Indicates whether this step is the last step. */\r\n public get isLast(): boolean {\r\n return this._stepper ? this._stepper.steps.length - 1 === this.index : false;\r\n }\r\n\r\n /** Indicates whether you can navigate to the step or not. */\r\n public get isValid(): boolean {\r\n if (!this.stepControl) {\r\n return true;\r\n }\r\n return this.stepControl.valid;\r\n }\r\n\r\n /** Shows the current state of the step. */\r\n public get state(): StepState {\r\n const currentIndex = this._stepper?.currentStepIndex;\r\n if (currentIndex === this.index) {\r\n return StepState.Active;\r\n }\r\n if (currentIndex > this.index) {\r\n return StepState.Completed;\r\n }\r\n return StepState.Upcoming;\r\n }\r\n}\r\n","export enum StepperType {\r\n Bullets = 'Bullets',\r\n BulletsAndText = 'BulletsAndText',\r\n Circles = 'Circles',\r\n CirclesWithText = 'CirclesWithText',\r\n Panels = 'Panels',\r\n PanelsWithBorder = 'PanelsWithBorder',\r\n Progress = 'Progress',\r\n Simple = 'Simple'\r\n}","import { AfterViewChecked, ChangeDetectorRef, Component, ContentChildren, EventEmitter, forwardRef, Input, OnInit, Output, QueryList } from '@angular/core';\r\n\r\nimport { LibStepComponent, StepState } from './lib-step.component';\r\nimport { LIBSTEPPER_ACCESSOR } from '../../tokens';\r\nimport { StepperType } from './types/stepper-type';\r\nimport { StepSelectedEvent } from './types/step-selected-event';\r\n\r\n@Component({\r\n selector: 'lib-stepper',\r\n templateUrl: './lib-stepper.component.html',\r\n providers: [\r\n { provide: LIBSTEPPER_ACCESSOR, useExisting: forwardRef(() => LibStepperComponent) }\r\n ]\r\n})\r\nexport class LibStepperComponent implements OnInit, AfterViewChecked {\r\n // Private properties.\r\n private _currentStepIndex: number = 0;\r\n private _isCompleted = false;\r\n\r\n constructor(private _changeDetectorRef: ChangeDetectorRef) { }\r\n\r\n /** The inner steps of the wizard. */\r\n @ContentChildren(LibStepComponent, { descendants: true }) public steps!: QueryList<LibStepComponent>;\r\n /** Emmited when a step change occurs. */\r\n @Output() public readonly stepChanged = new EventEmitter<StepSelectedEvent>();\r\n /** Emmited when the stepper navigates away from the final step. Only emits once. */\r\n @Output() public readonly completed = new EventEmitter<void>();\r\n /** Indicates whether each step has to be validated before proceeding to the next. */\r\n @Input() public linear: boolean = false;\r\n /** The type of the stepper. */\r\n @Input() public type: StepperType = StepperType.Panels;\r\n public StepState = StepState;\r\n public StepperType = StepperType;\r\n\r\n /** The current wizard step. */\r\n public get currentStep(): LibStepComponent | undefined {\r\n return this.steps?.get(this._currentStepIndex);\r\n }\r\n\r\n /** The index (starting from zero) of the current wizard step. */\r\n public get currentStepIndex(): number {\r\n return this._currentStepIndex;\r\n }\r\n\r\n /** Indicates whether stepper can go a step back. */\r\n public get canGoBack(): boolean {\r\n return this._currentStepIndex > 0;\r\n }\r\n\r\n /** Indicates whether stepper can go a step forward. */\r\n public get canGoForward(): boolean {\r\n return this._currentStepIndex < this.steps?.length - 1;\r\n }\r\n\r\n /** Indicates whether */\r\n public get isCompleted(): boolean {\r\n return this._isCompleted;\r\n }\r\n\r\n public ngOnInit(): void { }\r\n\r\n public ngAfterViewChecked(): void {\r\n this._changeDetectorRef.detectChanges();\r\n }\r\n\r\n /** Proceeds to the next step, if any. */\r\n public goToNextStep(): void {\r\n if (this.currentStep?.isLast && !this._isCompleted) {\r\n this._isCompleted = true;\r\n this.completed.emit();\r\n }\r\n if (!this.canGoForward) {\r\n return;\r\n }\r\n this.updateCurrentStepIndex(this._currentStepIndex + 1);\r\n }\r\n\r\n /** Proceeds to the previous step, if any. */\r\n public goToPreviousStep(): void {\r\n if (!this.canGoBack) {\r\n return;\r\n }\r\n this.updateCurrentStepIndex(this._currentStepIndex - 1);\r\n }\r\n\r\n public onSelectStep(selectedStep: LibStepComponent): void {\r\n this.updateCurrentStepIndex(selectedStep.index);\r\n }\r\n\r\n private updateCurrentStepIndex(newIndex: number): void {\r\n const stepsArray = this.steps.toArray();\r\n const currentStep = stepsArray[this.currentStepIndex];\r\n const shouldStop = this.linear && (\r\n (!currentStep.isValid && newIndex >= this.currentStepIndex) || // If current step is invalid and want to go forward, then stop.\r\n (currentStep.isValid && newIndex > this.currentStepIndex + 1 && stepsArray.slice(this.currentStepIndex + 1, newIndex).some(x => !x.isValid)) // If going forward (more than 1 steps), check if there are any invalid steps in between.\r\n );\r\n if (shouldStop) {\r\n return;\r\n }\r\n this.stepChanged.emit({\r\n selectedIndex: newIndex,\r\n previouslySelectedIndex: this.currentStepIndex,\r\n selectedStep: stepsArray[newIndex],\r\n previouslySelectedStep: currentStep\r\n });\r\n this._currentStepIndex = newIndex;\r\n }\r\n}\r\n","<ng-container [ngSwitch]=\"type\">\r\n <!-- Bullets -->\r\n <nav class=\"stepper-bullets-container\"\r\n aria-label=\"Progress\"\r\n *ngSwitchCase=\"StepperType.Bullets\">\r\n <p class=\"stepper-bullets-counter\">Step {{ currentStepIndex + 1 }} of {{ steps.length }}</p>\r\n <ol role=\"list\"\r\n class=\"stepper-bullets-ol\">\r\n <li class=\"cursor-pointer\"\r\n *ngFor=\"let step of steps\"\r\n (click)=\"onSelectStep(step)\">\r\n <!-- Completed Step -->\r\n <div class=\"stepper-bullets-completed-step\"\r\n *ngIf=\"step.state === StepState.Completed\">\r\n <span class=\"sr-only\">Step {{ step.index }}</span>\r\n </div>\r\n <!-- Active Step -->\r\n <div class=\"stepper-bullets-active-step\"\r\n aria-current=\"step\"\r\n *ngIf=\"step.state === StepState.Active\">\r\n <span class=\"stepper-bullets-active-step-level1\"\r\n aria-hidden=\"true\">\r\n <span class=\"stepper-bullets-active-step-level1\"></span>\r\n </span>\r\n <span class=\"stepper-bullets-active-step-bullet\"\r\n aria-hidden=\"true\">\r\n </span>\r\n <span class=\"sr-only\">Step {{ step.index }}</span>\r\n </div>\r\n <!-- Upcoming Step -->\r\n <div href=\"#\"\r\n class=\"stepper-bullets-upcoming-step\"\r\n *ngIf=\"step.state === StepState.Upcoming\">\r\n <span class=\"sr-only\">Step {{ step.index }}</span>\r\n </div>\r\n </li>\r\n </ol>\r\n </nav>\r\n <!-- Bullets & Text -->\r\n <div class=\"stepper-bullets-and-text-container\"\r\n aria-label=\"Progress\"\r\n *ngSwitchCase=\"StepperType.BulletsAndText\">\r\n <nav aria-label=\"Progress\">\r\n <ol role=\"list\"\r\n class=\"stepper-bullets-and-text-ol\">\r\n <li class=\"cursor-pointer\"\r\n *ngFor=\"let step of steps\"\r\n (click)=\"onSelectStep(step)\">\r\n <!-- Complete Step -->\r\n <div class=\"group\"\r\n *ngIf=\"step.state === StepState.Completed\">\r\n <span class=\"stepper-bullets-and-text-completed-step\">\r\n <span class=\"stepper-bullets-and-text-completed-step-level1\">\r\n <svg class=\"h-full w-full text-blue-600 group-hover:text-blue-800\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 20 20\"\r\n fill=\"currentColor\"\r\n aria-hidden=\"true\">\r\n <path fill-rule=\"evenodd\"\r\n d=\"M10 18a8 8 0 100-16 8 8 0 000 16zm3.707-9.293a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z\"\r\n clip-rule=\"evenodd\" />\r\n </svg>\r\n </span>\r\n <span class=\"stepper-bullets-and-text-completed-step-container\"\r\n *ngIf=\"step.stepLabel\">\r\n <ng-container [ngTemplateOutlet]=\"step.stepLabel.template\"></ng-container>\r\n </span>\r\n </span>\r\n </div>\r\n <!-- Active Step -->\r\n <div class=\"stepper-bullets-and-text-active-step\"\r\n aria-current=\"step\"\r\n *ngIf=\"step.state === StepState.Active\">\r\n <span class=\"stepper-bullets-and-text-active-step-level1\"\r\n aria-hidden=\"true\">\r\n <span class=\"stepper-bullets-and-text-active-step-level11\"></span>\r\n <span class=\"stepper-bullets-and-text-active-step-level12\"></span>\r\n </span>\r\n <span class=\"stepper-bullets-and-text-active-step-container\"\r\n *ngIf=\"step.stepLabel\">\r\n <ng-container [ngTemplateOutlet]=\"step.stepLabel.template\"></ng-container>\r\n </span>\r\n </div>\r\n <!-- Upcoming Step -->\r\n <div class=\"group\"\r\n *ngIf=\"step.state === StepState.Upcoming\">\r\n <div class=\"stepper-bullets-and-text-upcoming-step\">\r\n <div class=\"stepper-bullets-and-text-upcoming-step-level1\"\r\n aria-hidden=\"true\">\r\n <div class=\"stepper-bullets-and-text-upcoming-step-level2\"></div>\r\n </div>\r\n <p class=\"stepper-bullets-and-text-upcoming-step-container\"\r\n *ngIf=\"step.stepLabel\">\r\n <ng-container [ngTemplateOutlet]=\"step.stepLabel.template\"></ng-container>\r\n </p>\r\n </div>\r\n </div>\r\n </li>\r\n </ol>\r\n </nav>\r\n </div>\r\n <!-- Circles -->\r\n <nav class=\"flex justify-center\"\r\n aria-label=\"Progress\"\r\n *ngSwitchCase=\"StepperType.Circles\">\r\n <ol class=\"flex items-center\"\r\n role=\"list\">\r\n <li *ngFor=\"let step of steps\"\r\n (click)=\"onSelectStep(step)\"\r\n class=\"relative pr-8 sm:pr-20 cursor-pointer\">\r\n <!-- Completed Step -->\r\n <ng-container *ngIf=\"step.state === StepState.Completed\">\r\n <div class=\"absolute inset-0 flex items-center\"\r\n aria-hidden=\"true\">\r\n <div class=\"h-0.5 w-full bg-blue-600\"></div>\r\n </div>\r\n <div class=\"relative w-8 h-8 flex items-center justify-center bg-blue-600 rounded-full hover:bg-blue-900\">\r\n <svg class=\"w-5 h-5 text-white\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 20 20\"\r\n fill=\"currentColor\"\r\n aria-hidden=\"true\">\r\n <path fill-rule=\"evenodd\"\r\n d=\"M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z\"\r\n clip-rule=\"evenodd\" />\r\n </svg>\r\n <span class=\"sr-only\">Step {{ step.index + 1 }}</span>\r\n </div>\r\n </ng-container>\r\n <!-- Active Step -->\r\n <ng-container *ngIf=\"step.state === StepState.Active\">\r\n <div class=\"absolute inset-0 flex items-center\"\r\n aria-hidden=\"true\">\r\n <div class=\"h-0.5 w-full bg-gray-200\"></div>\r\n </div>\r\n <div class=\"relative w-8 h-8 flex items-center justify-center bg-white border-2 border-blue-600 rounded-full\"\r\n aria-current=\"step\">\r\n <span class=\"h-2.5 w-2.5 bg-blue-600 rounded-full\"\r\n aria-hidden=\"true\"></span>\r\n <span class=\"sr-only\">Step {{ step.index + 1 }}</span>\r\n </div>\r\n </ng-container>\r\n <!-- Upcoming Step -->\r\n <ng-container *ngIf=\"step.state === StepState.Upcoming\">\r\n <div class=\"absolute inset-0 flex items-center\"\r\n aria-hidden=\"true\">\r\n <div class=\"h-0.5 w-full bg-gray-200\"></div>\r\n </div>\r\n <div class=\"group relative w-8 h-8 flex items-center justify-center bg-white border-2 border-gray-300 rounded-full hover:border-gray-400\">\r\n <span class=\"h-2.5 w-2.5 bg-transparent rounded-full group-hover:bg-gray-300\"\r\n aria-hidden=\"true\"></span>\r\n <span class=\"sr-only\">Step {{ step.index + 1 }}</span>\r\n </div>\r\n </ng-container>\r\n </li>\r\n </ol>\r\n </nav>\r\n <!-- Circles With Text -->\r\n <nav class=\"flex items-center justify-center\"\r\n aria-label=\"Progress\"\r\n *ngSwitchCase=\"StepperType.CirclesWithText\">\r\n <ol role=\"list\"\r\n class=\"overflow-hidden\">\r\n <li *ngFor=\"let step of steps\"\r\n (click)=\"onSelectStep(step)\"\r\n class=\"relative pb-10 cursor-pointer\">\r\n <!-- Complete Step -->\r\n <ng-container *ngIf=\"step.state === StepState.Completed\">\r\n <div class=\"-ml-px absolute mt-0.5 top-4 left-4 w-0.5 h-full bg-blue-600\"\r\n aria-hidden=\"true\"\r\n *ngIf=\"!step.isLast\"></div>\r\n <div class=\"relative flex items-start group\">\r\n <span class=\"h-9 flex items-center\">\r\n <span class=\"relative z-10 w-8 h-8 flex items-center justify-center bg-blue-600 rounded-full group-hover:bg-blue-800\">\r\n <svg class=\"w-5 h-5 text-white\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 20 20\"\r\n fill=\"currentColor\"\r\n aria-hidden=\"true\">\r\n <path fill-rule=\"evenodd\"\r\n d=\"M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z\"\r\n clip-rule=\"evenodd\" />\r\n </svg>\r\n </span>\r\n </span>\r\n <span class=\"ml-4 min-w-0 flex flex-col\">\r\n <span class=\"text-xs font-semibold tracking-wide uppercase\"\r\n *ngIf=\"step.stepLabel\">\r\n <ng-container [ngTemplateOutlet]=\"step.stepLabel.template\"></ng-container>\r\n </span>\r\n <span class=\"text-sm text-gray-500\"\r\n *ngIf=\"step.stepInfo\">\r\n <ng-container [ngTemplateOutlet]=\"step.stepInfo.template\"></ng-container>\r\n </span>\r\n </span>\r\n </div>\r\n </ng-container>\r\n <!-- Active Step -->\r\n <ng-container *ngIf=\"step.state === StepState.Active\">\r\n <div class=\"-ml-px absolute mt-0.5 top-4 left-4 w-0.5 h-full bg-gray-300\"\r\n aria-hidden=\"true\"\r\n *ngIf=\"!step.isLast\"></div>\r\n <div class=\"relative flex items-start group\"\r\n aria-current=\"step\">\r\n <span class=\"h-9 flex items-center\"\r\n aria-hidden=\"true\">\r\n <span class=\"relative z-10 w-8 h-8 flex items-center justify-center bg-white border-2 border-blue-600 rounded-full\">\r\n <span class=\"h-2.5 w-2.5 bg-blue-600 rounded-full\"></span>\r\n </span>\r\n </span>\r\n <span class=\"ml-4 min-w-0 flex flex-col\">\r\n <span class=\"text-xs font-semibold tracking-wide uppercase text-blue-600\"\r\n *ngIf=\"step.stepLabel\">\r\n <ng-container [ngTemplateOutlet]=\"step.stepLabel.template\"></ng-container>\r\n </span>\r\n <span class=\"text-sm text-gray-500\"\r\n *ngIf=\"step.stepInfo\">\r\n <ng-container [ngTemplateOutlet]=\"step.stepInfo.template\"></ng-container>\r\n </span>\r\n </span>\r\n </div>\r\n </ng-container>\r\n <!-- Upcoming Step -->\r\n <ng-container *ngIf=\"step.state === StepState.Upcoming\">\r\n <div class=\"-ml-px absolute mt-0.5 top-4 left-4 w-0.5 h-full bg-gray-300\"\r\n aria-hidden=\"true\"\r\n *ngIf=\"!step.isLast\"></div>\r\n <div href=\"#\"\r\n class=\"relative flex items-start group\">\r\n <span class=\"h-9 flex items-center\"\r\n aria-hidden=\"true\">\r\n <span class=\"relative z-10 w-8 h-8 flex items-center justify-center bg-white border-2 border-gray-300 rounded-full group-hover:border-gray-400\">\r\n <span class=\"h-2.5 w-2.5 bg-transparent rounded-full group-hover:bg-gray-300\"></span>\r\n </span>\r\n </span>\r\n <span class=\"ml-4 min-w-0 flex flex-col\">\r\n <span class=\"text-xs font-semibold tracking-wide uppercase text-gray-500\"\r\n *ngIf=\"step.stepLabel\">\r\n <ng-container [ngTemplateOutlet]=\"step.stepLabel.template\"></ng-container>\r\n </span>\r\n <span class=\"text-sm text-gray-500\"\r\n *ngIf=\"step.stepInfo\">\r\n <ng-container [ngTemplateOutlet]=\"step.stepInfo.template\"></ng-container>\r\n </span>\r\n </span>\r\n </div>\r\n </ng-container>\r\n </li>\r\n </ol>\r\n </nav>\r\n <!-- Panels -->\r\n <nav aria-label=\"Progress\"\r\n *ngSwitchCase=\"StepperType.Panels\">\r\n <ol role=\"list\"\r\n class=\"border border-gray-300 rounded-md divide-y divide-gray-300 md:flex md:divide-y-0\">\r\n <li *ngFor=\"let step of steps\"\r\n (click)=\"onSelectStep(step)\"\r\n class=\"relative md:flex-1 md:flex cursor-pointer\">\r\n <!-- Completed step -->\r\n <div class=\"group flex items-center w-full\"\r\n *ngIf=\"step.state === StepState.Completed\">\r\n <span class=\"px-6 py-4 flex items-center text-sm font-medium\">\r\n <span class=\"flex-shrink-0 w-10 h-10 flex items-center justify-center bg-blue-600 rounded-full group-hover:bg-blue-800\">\r\n <svg class=\"w-6 h-6 text-white\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 20 20\"\r\n fill=\"currentColor\"\r\n aria-hidden=\"true\">\r\n <path fill-rule=\"evenodd\"\r\n d=\"M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z\"\r\n clip-rule=\"evenodd\" />\r\n </svg>\r\n </span>\r\n <span class=\"ml-4 text-sm font-medium text-gray-900\"\r\n *ngIf=\"step.stepLabel\">\r\n <ng-container [ngTemplateOutlet]=\"step.stepLabel.template\"></ng-container>\r\n </span>\r\n </span>\r\n </div>\r\n <!-- Active step -->\r\n <div class=\"px-6 py-4 flex items-center text-sm font-medium\"\r\n *ngIf=\"step.state === StepState.Active\">\r\n <span class=\"flex-shrink-0 w-10 h-10 flex items-center justify-center border-2 border-blue-600 rounded-full\">\r\n <span class=\"text-blue-600\">{{ (step.index + 1) }}</span>\r\n </span>\r\n <span class=\"ml-4 text-sm font-medium text-blue-600\"\r\n *ngIf=\"step.stepLabel\">\r\n <ng-container [ngTemplateOutlet]=\"step.stepLabel.template\"></ng-container>\r\n </span>\r\n </div>\r\n <!-- Upcoming step -->\r\n <div class=\"group flex items-center\"\r\n *ngIf=\"step.state === StepState.Upcoming\">\r\n <span class=\"px-6 py-4 flex items-center text-sm font-medium\">\r\n <span class=\"flex-shrink-0 w-10 h-10 flex items-center justify-center border-2 border-gray-300 rounded-full group-hover:border-gray-400\">\r\n <span class=\"text-gray-500 group-hover:text-gray-900\">{{ (step.index + 1) }}</span>\r\n </span>\r\n <span class=\"ml-4 text-sm font-medium text-gray-500 group-hover:text-gray-900\"\r\n *ngIf=\"step.stepLabel\">\r\n <ng-container [ngTemplateOutlet]=\"step.stepLabel.template\"></ng-container>\r\n </span>\r\n </span>\r\n </div>\r\n <!-- Arrow separator for lg screens and up -->\r\n <div *ngIf=\"!step.isLast\"\r\n class=\"hidden md:block absolute top-0 right-0 h-full w-5\"\r\n aria-hidden=\"true\">\r\n <svg class=\"h-full w-full text-gray-300\"\r\n viewBox=\"0 0 22 80\"\r\n fill=\"none\"\r\n preserveAspectRatio=\"none\">\r\n <path d=\"M0 -2L20 40L0 82\"\r\n vector-effect=\"non-scaling-stroke\"\r\n stroke=\"currentcolor\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </div>\r\n </li>\r\n </ol>\r\n </nav>\r\n <!-- Panels With Border -->\r\n <div class=\"panels-with-border-container\"\r\n *ngSwitchCase=\"StepperType.PanelsWithBorder\">\r\n <nav class=\"panels-with-border-nav\"\r\n aria-label=\"Progress\">\r\n <ol role=\"list\"\r\n class=\"panels-with-border-ol\">\r\n <li *ngFor=\"let step of steps\"\r\n (click)=\"onSelectStep(step)\"\r\n class=\"panels-with-border-li\">\r\n <!-- Completed Step -->\r\n <div class=\"panels-with-border-completed-step\"\r\n *ngIf=\"step.state === StepState.Completed\">\r\n <div class=\"group\">\r\n <span class=\"panels-with-border-completed-step-level1\"\r\n aria-hidden=\"true\">\r\n </span>\r\n <span class=\"panels-with-border-completed-step-level2\">\r\n <span class=\"panels-with-border-completed-step-level21\">\r\n <span class=\"panels-with-border-completed-step-level211\">\r\n <svg class=\"w-6 h-6 text-white\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 20 20\"\r\n fill=\"currentColor\"\r\n aria-hidden=\"true\">\r\n <path fill-rule=\"evenodd\"\r\n d=\"M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z\"\r\n clip-rule=\"evenodd\" />\r\n </svg>\r\n </span>\r\n </span>\r\n <span class=\"panels-with-border-completed-step-level22\">\r\n <span class=\"panels-with-border-completed-step-level221\"\r\n *ngIf=\"step.stepLabel\">\r\n <ng-container [ngTemplateOutlet]=\"step.stepLabel.template\"></ng-container>\r\n </span>\r\n <span class=\"panels-with-border-completed-step-level222\"\r\n *ngIf=\"step.stepInfo\">\r\n <ng-container [ngTemplateOutlet]=\"step.stepInfo.template\"></ng-container>\r\n </span>\r\n </span>\r\n </span>\r\n </div>\r\n </div>\r\n <!-- Active Step -->\r\n <div class=\"panels-with-border-active-step\"\r\n *ngIf=\"step.state === StepState.Active\">\r\n <div aria-current=\"step\">\r\n <span class=\"panels-with-border-active-step-level1\"\r\n aria-hidden=\"true\">\r\n </span>\r\n <span class=\"panels-with-border-active-step-level2\">\r\n <span class=\"panels-with-border-active-step-level21\">\r\n <span class=\"panels-with-border-active-step-level211\">\r\n <span class=\"panels-with-border-active-step-level211-text\">{{ step.index + 1 }}</span>\r\n </span>\r\n </span>\r\n <span class=\"panels-with-border-active-step-level22\">\r\n <span class=\"panels-with-border-active-step-level221\"\r\n *ngIf=\"step.stepLabel\">\r\n <ng-container [ngTemplateOutlet]=\"step.stepLabel.template\"></ng-container>\r\n </span>\r\n <span class=\"panels-with-border-active-step-level222\"\r\n *ngIf=\"step.stepInfo\">\r\n <ng-container [ngTemplateOutlet]=\"step.stepInfo.template\"></ng-container>\r\n </span>\r\n </span>\r\n </span>\r\n </div>\r\n <!-- Separator -->\r\n <div class=\"panels-with-border-step-separator\"\r\n aria-hidden=\"true\"\r\n *ngIf=\"step.index !== 0\">\r\n <svg class=\"h-full w-full text-gray-300\"\r\n viewBox=\"0 0 12 82\"\r\n fill=\"none\"\r\n preserveAspectRatio=\"none\">\r\n <path d=\"M0.5 0V31L10.5 41L0.5 51V82\"\r\n stroke=\"currentcolor\"\r\n vector-effect=\"non-scaling-stroke\" />\r\n </svg>\r\n </div>\r\n </div>\r\n <!-- Upcoming Step -->\r\n <div class=\"panels-with-border-upcoming-step\"\r\n *ngIf=\"step.state === StepState.Upcoming\">\r\n <div class=\"group\">\r\n <span class=\"panels-with-border-upcoming-step-level1\"\r\n aria-hidden=\"true\">\r\n </span>\r\n <span class=\"panels-with-border-upcoming-step-level2\">\r\n <span class=\"panels-with-border-upcoming-step-level21\">\r\n <span class=\"panels-with-border-upcoming-step-level211\">\r\n <span class=\"panels-with-border-upcoming-step-level211-text\">{{ step.index + 1 }}</span>\r\n </span>\r\n </span>\r\n <span class=\"panels-with-border-upcoming-step-level22\">\r\n <span class=\"panels-with-border-upcoming-step-level221\"\r\n *ngIf=\"step.stepLabel\">\r\n <ng-container [ngTemplateOutlet]=\"step.stepLabel.template\"></ng-container>\r\n </span>\r\n <span class=\"text-sm font-medium text-gray-500\"\r\n *ngIf=\"step.stepInfo\">\r\n <ng-container [ngTemplateOutlet]=\"step.stepInfo.template\"></ng-container>\r\n </span>\r\n </span>\r\n </span>\r\n </div>\r\n <!-- Separator -->\r\n <div class=\"panels-with-border-step-separator\"\r\n aria-hidden=\"true\"\r\n *ngIf=\"step.index !== 0\">\r\n <svg class=\"h-full w-full text-gray-300\"\r\n viewBox=\"0 0 12 82\"\r\n fill=\"none\"\r\n preserveAspectRatio=\"none\">\r\n <path d=\"M0.5 0V31L10.5 41L0.5 51V82\"\r\n stroke=\"currentcolor\"\r\n vector-effect=\"non-scaling-stroke\" />\r\n </svg>\r\n </div>\r\n </div>\r\n </li>\r\n </ol>\r\n </nav>\r\n </div>\r\n <!-- Progress -->\r\n <div *ngSwitchCase=\"StepperType.Progress\">\r\n <div class=\"mt-6\"\r\n aria-hidden=\"true\">\r\n <div class=\"bg-gray-200 rounded-full overflow-hidden\">\r\n <div class=\"h-2 bg-blue-600 rounded-full\"\r\n [style.width]=\"(((currentStepIndex + 1) / steps.length) * 100) + '%'\">\r\n </div>\r\n </div>\r\n <div class=\"hidden sm:grid grid-cols-4 text-sm font-medium text-gray-600 mt-6\">\r\n <div *ngFor=\"let step of steps\"\r\n (click)=\"onSelectStep(step)\"\r\n class=\"text-blue-600 cursor-pointer\">\r\n <ng-container *ngIf=\"step.stepLabel\"\r\n [ngTemplateOutlet]=\"step.stepLabel.template\">\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <!-- Simple -->\r\n <nav aria-label=\"Progress\"\r\n *ngSwitchCase=\"StepperType.Simple\">\r\n <ol role=\"list\"\r\n class=\"space-y-4 md:flex md:space-y-0 md:space-x-8\">\r\n <li *ngFor=\"let step of steps\"\r\n (click)=\"onSelectStep(step)\"\r\n class=\"md:flex-1 cursor-pointer\">\r\n <!-- Completed Step -->\r\n <div class=\"group pl-4 py-2 flex flex-col border-l-4 border-blue-600 hover:border-blue-800 md:pl-0 md:pt-4 md:pb-0 md:border-l-0 md:border-t-4\"\r\n *ngIf=\"step.state === StepState.Completed\">\r\n <span class=\"text-xs text-blue-600 font-semibold tracking-wide uppercase group-hover:text-blue-800\">Step {{ step.index + 1 }}</span>\r\n <span class=\"text-sm font-medium\"\r\n *ngIf=\"step.stepLabel\">\r\n <ng-container [ngTemplateOutlet]=\"step.stepLabel.template\"></ng-container>\r\n </span>\r\n </div>\r\n <!-- Active Step -->\r\n <div class=\"pl-4 py-2 flex flex-col border-l-4 border-blue-600 md:pl-0 md:pt-4 md:pb-0 md:border-l-0 md:border-t-4\"\r\n aria-current=\"step\"\r\n *ngIf=\"step.state === StepState.Active\">\r\n <span class=\"text-xs text-blue-600 font-semibold tracking-wide uppercase\">Step {{ step.index + 1 }}</span>\r\n <span class=\"text-sm font-medium\"\r\n *ngIf=\"step.stepLabel\">\r\n <ng-container [ngTemplateOutlet]=\"step.stepLabel.template\"></ng-container>\r\n </span>\r\n </div>\r\n <!-- Upcoming Step -->\r\n <div class=\"group pl-4 py-2 flex flex-col border-l-4 border-gray-200 hover:border-gray-300 md:pl-0 md:pt-4 md:pb-0 md:border-l-0 md:border-t-4\"\r\n *ngIf=\"step.state === StepState.Upcoming\">\r\n <span class=\"text-xs text-gray-500 font-semibold tracking-wide uppercase group-hover:text-gray-700\">Step {{ step.index + 1 }}</span>\r\n <span class=\"text-sm font-medium\"\r\n *ngIf=\"step.stepLabel\">\r\n <ng-container [ngTemplateOutlet]=\"step.stepLabel.template\"></ng-container>\r\n </span>\r\n </div>\r\n </li>\r\n </ol>\r\n </nav>\r\n</ng-container>\r\n<ng-container *ngFor=\"let step of steps\">\r\n <ng-container *ngIf=\"step.state === StepState.Active\"\r\n [ngTemplateOutlet]=\"step.content\">\r\n </ng-container>\r\n</ng-container>","import { Component, EventEmitter, forwardRef, Input, OnInit, Output } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\n\n@Component({\n selector: 'lib-toggle-button',\n templateUrl: './toggle-button.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ToggleButtonComponent),\n multi: true\n }\n ]\n})\nexport class ToggleButtonComponent implements OnInit {\n @Input() value: boolean = false;\n @Input() disabled: boolean = false;\n @Input() icon: boolean = true;\n @Input('text') text: string | null | undefined;\n @Input('text-true') textTrue: string | null | undefined;\n @Input('text-false') textFalse: string | null | undefined;\n @Input('description') description: string | null | undefined;\n @Input('description-true') descriptionTrue: string | null | undefined;\n @Input('description-false') descriptionFalse: string | null | undefined;\n @Output() valueChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n private onChange$: any | undefined = undefined;\n private onTouched$: any | undefined = undefined;\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n writeValue(obj: any): void {\n if(obj) {\n this.value = obj || false;\n }\n }\n registerOnChange(fn: any): void {\n this.onChange$ = fn;\n }\n registerOnTouched(fn: any): void {\n this.onTouched$ = fn;\n }\n\n public onBlur(event: any): void {\n if(this.onTouched$) {\n this.onTouched$();\n }\n }\n\n public changeValue(){\n this.value = !this.value;\n this.valueChange.emit(this.value);\n if(this.onChange$) {\n this.onChange$(this.value);\n }\n if(this.onTouched$) {\n this.onTouched$();\n }\n }\n\n}\n","<!-- Enabled: \"bg-indigo-600\", Not Enabled: \"bg-gray-200\" -->\n<div class=\"flex items-center\">\n<button type=\"button\"\n (click)=\"changeValue()\"\n [disabled]=\"disabled\"\n class=\"toggle-button-button\" \n [class.toggle-button-bg-false] = \"!value\"\n [class.toggle-button-bg-true] = \"value\"\n [class.toggle-button-button-disabled]=\"disabled\"\n role=\"switch\" \n aria-checked=\"false\">\n <span class=\"sr-only\">{{value ? textTrue : textFalse}}</span>\n <!-- Enabled: \"translate-x-5\", Not Enabled: \"translate-x-0\" -->\n <span \n class=\"toggle-button-icon-container\"\n [class.toggle-button-icon-container-false] = \"!value\"\n [class.toggle-button-icon-container-true] = \"value\">\n <!-- Enabled: \"opacity-0 ease-out duration-100\", Not Enabled: \"opacity-100 ease-in duration-200\" -->\n <span \n [class.toggle-button-container-inner-true]=\"value\"\n [class.toggle-button-container-inner-false]=\"!value\"\n class=\"toggle-button-icon-container-inner\"\n aria-hidden=\"true\">\n <svg *ngIf=\"icon\" class=\"toggle-button-icon\" fill=\"none\" viewBox=\"0 0 12 12\">\n <path d=\"M4 8l2-2m0 0l2-2M6 6L4 4m2 2l2 2\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\n </svg>\n </span>\n <!-- Enabled: \"opacity-0 ease-out duration-100\", Not Enabled: \"opacity-100 ease-in duration-200\" -->\n <span \n [class.toggle-button-container-inner-true]=\"!value\"\n [class.toggle-button-container-inner-false]=\"value\"\n class=\"toggle-button-icon-container-inner\"\n aria-hidden=\"true\">\n <svg *ngIf=\"icon\" class=\"toggle-button-icon\" fill=\"currentColor\" viewBox=\"0 0 12 12\">\n <path d=\"M3.707 5.293a1 1 0 00-1.414 1.414l1.414-1.414zM5 8l-.707.707a1 1 0 001.414 0L5 8zm4.707-3.293a1 1 0 00-1.414-1.414l1.414 1.414zm-7.414 2l2 2 1.414-1.414-2-2-1.414 1.414zm3.414 2l4-4-1.414-1.414-4 4 1.414 1.414z\" />\n </svg>\n </span>\n </span>\n</button>\n<span class=\"ml-3\" id=\"toggle-button-labels\">\n <div class=\"toggle-button-text\">{{value ? textTrue : textFalse}}</div>\n <div *ngIf=\"text\" class=\"toggle-button-text\">{{text}}</div>\n <div *ngIf=\"description\" class=\"toggle-button-description\">{{description}}</div>\n <div class=\"toggle-button-description\">{{value ? descriptionTrue : descriptionFalse}}</div>\n</span>\n</div>","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\nimport { MenuOption } from '../../types';\n\n\n@Component({\n selector: 'lib-toggle-buttons-list',\n templateUrl: './toggle-buttons-list.component.html'\n})\nexport class ToggleButtonsListComponent implements OnInit {\n @Input() icon: string | undefined = undefined;\n @Input() options: MenuOption[] | undefined;\n @Input() value: any | undefined;\n @Input() compact: boolean = true;\n @Output() valueChange: EventEmitter<any> = new EventEmitter(undefined);\n constructor() { }\n\n ngOnInit(): void {\n }\n\n public selectOption(optionValue: any): void {\n this.value = optionValue;\n this.valueChange.emit(optionValue);\n }\n}\n","<div class=\"relative items-center inline-flex\">\n <div class=\"toggle-buttons-list-icon-container\" *ngIf=\"icon\">\n <i [class]=\"icon\"></i>\n </div>\n <div class=\"toggle-buttons-list-drop-down-compact-container\" *ngIf=\"compact\">\n <lib-drop-down-menu class=\"toggle-buttons-list-drop-down\" [(selected)]=\"value\" (selectedChange)=\"selectOption($event)\" [options]=\"options\">\n </lib-drop-down-menu>\n </div>\n <div class=\"toggle-buttons-list\" *ngIf=\"!compact\">\n <ng-template ngFor let-option [ngForOf]=\"options\" let-i=\"index\">\n <!-- [tooltip]=\"option.description\" -->\n <button type=\"button\"\n [disabled]=\"option.value === value\"\n [class.toggle-buttons-list-button-selected]=\"option.value === value\"\n class=\"toggle-buttons-list-button\"\n (click)=\"selectOption(option.value)\">\n <div class=\"toggle-buttons-list-button-icon-container\" *ngIf=\"option.icon\">\n <i [class]=\"option.icon\"></i>\n </div>\n <span class=\"toggle-buttons-list-button-button-text\">{{option.text}}</span>\n <span *ngIf=\"option.data && option.data.count\"\n class=\"toggle-buttons-list-button-button-count\">{{option.data.count}}\n </span>\n </button>\n </ng-template>\n </div>\n</div>","import { Component, ContentChild, TemplateRef } from '@angular/core';\n\n@Component({selector: 'lib-content-tile-header', template: '<ng-content></ng-content>'})\nexport class ContentTileHeaderComponent {\n @ContentChild(TemplateRef) template: any | undefined = undefined;\n constructor() { }\n}\n","import { Component, ContentChild, Input, OnInit, TemplateRef } from '@angular/core';\nimport { ContentTileHeaderComponent } from '../content-tile-header/content-tile-header.component';\n\n@Component({selector: 'lib-content-tile-item', template: '<ng-content></ng-content>'})\nexport class ContentTileItemComponent {\n @Input() title: string | undefined;\n @ContentChild(TemplateRef) template: any | undefined = undefined;\n constructor() { }\n}\n","import { Component, ContentChild, ContentChildren, EventEmitter, Input, OnInit, Output, QueryList, TemplateRef } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { ContentTileHeaderComponent } from './content-tile-header/content-tile-header.component';\r\nimport { ContentTileItemComponent } from './content-tile-item/content-tile-item.component';\r\n\r\n@Component({\r\n selector: 'lib-content-tile',\r\n templateUrl: './content-tile.component.html'\r\n})\r\nexport class ContentTileComponent implements OnInit {\r\n\r\n @Input() title: string | undefined = undefined;\r\n @Input() busy = false;\r\n @Input('show-action') showAction: boolean | undefined = true;\r\n @Input('show-footer') showFooter: boolean | undefined = true;\r\n @Input('action-text') actionText: string = 'Περισσότερα';\r\n // tslint:disable-next-line:no-output-rename\r\n @Output('tile-action') tileAction: EventEmitter<any> = new EventEmitter<any>();\r\n public selectedIndex = 0;\r\n\r\n public itemTemplates: any[] = [];\r\n @ContentChildren(ContentTileItemComponent, { read: ContentTileItemComponent })\r\n set items(refs: QueryList<ContentTileItemComponent>) {\r\n if (refs) {\r\n this.itemTemplates = refs.toArray();\r\n }\r\n }\r\n\r\n @ContentChild(ContentTileHeaderComponent) header: ContentTileHeaderComponent | undefined = undefined;\r\n constructor(private router: Router) { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n public emitTileAction($event: any): boolean {\r\n $event.preventDefault();\r\n $event.stopPropagation();\r\n this.tileAction.emit($event);\r\n return false;\r\n }\r\n\r\n}\r\n\r\n","<div class=\"card\" [class.card-deck-busy]=\"busy\">\r\n <div class=\"card-body\">\r\n <div class=\"kpi-tile-title-container flex align-top\">\r\n <a *ngIf=\"!header\" href=\"#\"\r\n class=\"kpi-tile-action flex-1\" (click)=\"emitTileAction($event)\">{{(this.itemTemplates[selectedIndex].title || title) || '-'}}</a>\r\n <ng-container *ngIf=\"header && header.template\">\r\n <div class=\"flex-1\">\r\n <ng-template [ngTemplateOutlet]=\"header.template\"></ng-template>\r\n </div>\r\n </ng-container>\r\n <div *ngIf=\"showAction\" class=\"float-right align-top\">\r\n <a href=\"#\" class=\"kpi-tile-action text-xs\" (click)=\"emitTileAction($event)\">{{actionText}}</a>\r\n </div>\r\n </div>\r\n <div class=\"flex items-center\" *ngIf=\"itemTemplates\">\r\n <ng-template [ngTemplateOutlet]=\"itemTemplates[selectedIndex].template\"></ng-template>\r\n </div>\r\n <div class=\"tile-card-footer opacity-25 hover:opacity-75\" *ngIf=\"itemTemplates && itemTemplates.length>1\">\r\n <nav class=\"flex items-center justify-between px-4 sm:px-0\">\r\n <div class=\"flex w-0 flex-1\"></div>\r\n <div class=\"flex items-center justify-between px-2\">\r\n <ng-container *ngFor=\"let item of itemTemplates; index as i\">\r\n <button type=\"button\"\r\n title=\"details\"\r\n (click)=\"selectedIndex=i\"\r\n [disabled]=\"selectedIndex===i\"\r\n class=\"tile-card-item-btn\"\r\n [class.tile-card-item-btn-available]=\"selectedIndex!==i\"\r\n [class.tile-card-item-btn-selected]=\"selectedIndex===i\">\r\n </button>\r\n </ng-container>\r\n </div>\r\n <div class=\"flex w-0 flex-1 justify-end\"></div>\r\n </nav>\r\n </div>\r\n </div>\r\n</div>\r\n","import { Component, Input, OnChanges, SimpleChanges } from '@angular/core';\n\n\n@Component({\n selector: 'lib-stats-grid',\n templateUrl: './stats-grid.component.html'\n})\nexport class StatsGridComponent implements OnChanges {\n @Input() busy = false;\n @Input() count = 6;\n public loader: any[] = ['', '', '', '', '', ''];\n @Input() mode: string = 'normal';\n @Input() labels: string[] = ['Online', 'Offline', 'Faulted'];\n @Input() values: number[] = [10, 20, 30];\n @Input() colors: string[] = [\n 'rgb(53, 177, 201, 0.6)',\n 'rgb(168, 162, 158, 0.2)',\n 'rgb(233, 96, 96, 0.8)'\n ];\n\n constructor() {\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.count) {\n this.loader = [];\n for (let i = 0; i <= this.count; i++) {\n this.loader.push('');\n }\n }\n }\n\n public isNumber(value: any): boolean {\n return !isNaN(Number(value));;\n }\n}\n","<div *ngIf=\"!busy\">\n <ul role=\"list\" class=\"grid gap-1\"\n [class.grid-cols-4]=\"mode==='normal'\"\n [class.grid-flow-col]=\"mode!=='normal'\">\n <ng-container *ngFor=\"let value of values; index as i\">\n <li class=\"col-span-1 flex pb-2\" *ngIf=\"mode==='normal'\">\n <div class=\"grid-cols-1 border-l-2 px-1\" [style]=\"'border-color:' + colors[i]\">\n <div class=\"text-xs text-ellipsis overflow-hidden\">{{labels[i]}}</div>\n <div *ngIf=\"isNumber(values[i])\" class=\"font-medium text-sm md:text-lg text-ellipsis overflow-hidden\">{{values[i] | number:'1.0-2':'el'}}</div>\n <div *ngIf=\"!isNumber(values[i])\" class=\"font-medium text-sm md:text-lg text-ellipsis overflow-hidden\">{{values[i]}}</div>\n </div>\n </li>\n <li class=\"col-span-1 flex pb-2\" *ngIf=\"mode!=='normal'\">\n <div class=\"grid-cols-1 border-l-2 pl-1 pr-2\" [style]=\"'border-color:' + colors[i]\">\n <div *ngIf=\"isNumber(values[i])\" class=\"font-medium text-xs lg:text-sm text-ellipsis overflow-hidden\">{{values[i] | number:'1.0-2':'el'}}</div>\n <div *ngIf=\"!isNumber(values[i])\" class=\"font-medium text-xs lg:text-sm text-ellipsis overflow-hidden\">{{values[i]}}</div>\n <div class=\"text-xs max-w-18 lg:w-auto truncate text-ellipsis overflow-hidden\">{{labels[i]}}</div>\n </div>\n </li>\n </ng-container>\n </ul>\n </div>\n <div *ngIf=\"busy\">\n <ul role=\"list\" class=\"grid gap-1\"\n [class.grid-cols-4]=\"mode==='normal'\"\n [class.grid-flow-col]=\"mode!=='normal'\">\n <ng-container *ngFor=\"let value of values; index as i\">\n <li class=\"animate-pulse col-span-1 flex pb-2\" *ngIf=\"mode==='normal'\">\n <div class=\"grid-cols-1 border-l-2 px-1\" style=\"border-color:rgb(168, 162, 158, 0.2)\">\n <div class=\"rounded-md bg-slate-400/25 h-3 w-14\"></div>\n <div class=\"rounded-md bg-slate-400/25 mt-2 h-4 w-6\"></div>\n </div>\n </li>\n <li class=\"animate-pulse col-span-1 flex pb-2\" *ngIf=\"mode!=='normal'\">\n <div class=\"grid-cols-1 border-l-2 pl-1 pr-2\" style=\"border-color:rgb(168, 162, 158, 0.2)\">\n <div class=\"rounded-md bg-slate-400/25 h-3 w-14\"></div>\n <div class=\"rounded-md bg-slate-400/25 mt-2 h-4 w-6\"></div>\n </div>\n </li>\n </ng-container>\n </ul>\n </div> ","import { Component, Input, OnChanges, SimpleChanges } from '@angular/core';\n\n@Component({\n selector: 'lib-progress-bar',\n templateUrl: './progress-bar.component.html'\n})\nexport class ProgressBarComponent implements OnChanges {\n @Input() value: number = 0;\n @Input('value-text') valueText: string | undefined;\n @Input() total: number = 0;\n @Input('total-text') totalText: string | undefined;\n @Input() text: string | undefined = undefined;\n @Input() busy: boolean = false;\n public percentage: number = 0;\n\n constructor() {\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.value || changes.total) {\n this.calcPercentage();\n }\n }\n\n private calcPercentage() {\n if (this.total > 0) {\n this.percentage = (this.value / this.total) * 100;\n } else {\n this.percentage = 0;\n }\n }\n}\n","<div class=\"progress-bar-container\">\n <div class=\"progress-bar-label\" *ngIf=\"!busy\">{{text}} {{valueText ?? value}}/{{totalText ?? total}}</div>\n <div class=\"progress-bar-backdrop progress-bar-label w-2/3\" *ngIf=\"busy\"></div>\n <div class=\"progress-bar-backdrop\">\n <div class=\"progress-bar-inner\" [style]=\"'width:' + percentage + '%' \"></div>\n </div>\n</div>\n ","import { Directive, ViewContainerRef, Input } from '@angular/core';\r\n\r\n@Directive({ selector: '[appDynamicComponentHost]' })\r\nexport class DynamicComponentHostDirective {\r\n @Input() hostName: string = '';\r\n constructor(public viewContainerRef: ViewContainerRef) {}\r\n}","import { ComponentRef, ViewRef } from '@angular/core';\r\n\r\n/**\r\n * Holds information about the dynamic content.\r\n * @remarks\r\n * `ComponentRef` is undefined in the case content is of `TemplateRef` type.\r\n */\r\nexport class ContentRef {\r\n constructor(public nodes: any[], public viewRef?: ViewRef, public componentRef?: ComponentRef<any>) {}\r\n}\r\n","import {\r\n ComponentFactoryResolver,\r\n ViewContainerRef,\r\n ComponentFactory,\r\n Type,\r\n ElementRef,\r\n StaticProvider,\r\n TemplateRef,\r\n ComponentRef,\r\n ApplicationRef,\r\n Injector,\r\n} from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\nimport { ComponentLoaderOptions } from './component-loader-options.class';\r\nimport { ContentRef } from './content-ref.class';\r\n\r\n/**\r\n * Provides ways of loading and handling dynamic content.\r\n *\r\n * @remarks\r\n * Do NOT use this directly, create an instance through {@link ComponentLoaderFactory}\r\n * You can use this loader in two ways:\r\n * - Attaches a component to `ViewContainerRef`.\r\n * - Attaches a component to `ViewContainerRef`. The attached component has a `<ng-content>` tag inside its view. The {@link ComponentLoaderOptions.content} will be drawn inside this tag.\r\n *\r\n * @internal\r\n */\r\nexport class ComponentLoader<T extends object> {\r\n /**\r\n * Before content is shown event.\r\n */\r\n onBeforeShow = new Subject();\r\n /**\r\n * After show content event.\r\n * @returns The id of newly created component ref.\r\n */\r\n onShown = new Subject();\r\n /**\r\n * Before content is hidden event.\r\n * @returns The instance of attached component;\r\n */\r\n onBeforeHide = new Subject();\r\n /**\r\n * After content is hidden event.\r\n * @returns The id of destroyed component ref.\r\n */\r\n onHidden = new Subject();\r\n\r\n public instance?: T;\r\n public componentRef?: ComponentRef<T>;\r\n private componentFactory?: ComponentFactory<T>;\r\n private container: string | ElementRef | any;\r\n private providers: StaticProvider[] = [];\r\n private contentRef?: ContentRef;\r\n private containerDefaultSelector = 'body';\r\n private innerComponent?: ComponentRef<T>;\r\n constructor(\r\n private vcr: ViewContainerRef | undefined,\r\n private cfr: ComponentFactoryResolver,\r\n private applicationRef: ApplicationRef,\r\n private injector: Injector\r\n ) {}\r\n\r\n /**\r\n * Attaches component.\r\n * @param componentType - The type component to attach.\r\n * @returns Current instance of {@link ComponentLoader}\r\n */\r\n public attach(componentType: Type<T>): ComponentLoader<T> {\r\n this.componentFactory = this.cfr.resolveComponentFactory<T>(componentType);\r\n return this;\r\n }\r\n\r\n /**\r\n * Body will be used in nothing is provided.\r\n * @param container - The element in which dynamic content will be drawn inside to. For string case a query to the dom will be executed to find the element.\r\n * @returns Current instance of {@link ComponentLoader}\r\n */\r\n public to(container?: string | ElementRef): ComponentLoader<T> {\r\n this.container = container || this.container;\r\n return this;\r\n }\r\n\r\n /**\r\n * Adds provider to the providers array. These providers will be injected to the attached component.\r\n *\r\n * @see {@link https://angular.io/guide/glossary#di-token | Injection Token}\r\n *\r\n * @param provider - Provider to inject.\r\n * @returns Current instance of {@link ComponentLoader}\r\n */\r\n public provide(provider: StaticProvider): ComponentLoader<T> {\r\n this.providers.push(provider);\r\n return this;\r\n }\r\n\r\n /**\r\n * Attaches attached component to dom and any dynamic content if provided.\r\n * @remarks\r\n * Also triggers the {@link ComponentLoader.onBeforeShow} and {@link ComponentLoader.onShown} events.\r\n *\r\n * @param options - {@link ComponentLoaderOptions}.\r\n * @returns A reference to the created content.\r\n */\r\n public show(options: ComponentLoaderOptions = {}): ComponentRef<T> | undefined {\r\n if (this.componentRef) {\r\n throw Error('Component is already shown');\r\n }\r\n if (!this.componentFactory) {\r\n throw Error('You must attach a component');\r\n }\r\n this.onBeforeShow.next({});\r\n\r\n if (options.content) {\r\n this.contentRef = this.getContentRef(options.content, options.context, options.initialState);\r\n }\r\n this.createComponentAndAttachToView(options);\r\n this.appendContentToContainer();\r\n this.markComponentsForCheck();\r\n\r\n this.onShown.next(options.id);\r\n\r\n return this.componentRef;\r\n }\r\n\r\n /**\r\n * Removes attached component from dom.\r\n * @remarks\r\n * Also triggers the {@link ComponentLoader.onBeforeHide} and {@link ComponentLoader.onHidden} events.\r\n *\r\n * @param id - If provided it is returned through the {@link ComponentLoader.onHidden}.\r\n * @returns Current instance of {@link ComponentLoader}\r\n */\r\n public hide(id?: number | string, result?: any): ComponentLoader<T> {\r\n if (!this.componentRef) {\r\n throw Error('No attached component found to hide');\r\n }\r\n\r\n this.onBeforeHide.next(this.componentRef.instance);\r\n\r\n const componentEl = this.componentRef.location.nativeElement;\r\n componentEl.parentNode.removeChild(componentEl);\r\n if (this.contentRef?.componentRef) {\r\n this.contentRef.componentRef.destroy();\r\n }\r\n if (this.vcr && this.contentRef?.viewRef) {\r\n this.vcr.remove(this.vcr.indexOf(this.contentRef.viewRef));\r\n }\r\n if (this.contentRef?.viewRef) {\r\n this.contentRef.viewRef.destroy();\r\n }\r\n this.contentRef = void 0;\r\n this.componentRef = void 0;\r\n\r\n this.onHidden.next(id ? { id, result } : null);\r\n\r\n return this;\r\n }\r\n\r\n getInnerComponent(): ComponentRef<T> | undefined {\r\n return this.innerComponent;\r\n }\r\n\r\n private markComponentsForCheck() {\r\n if (this.contentRef?.componentRef) {\r\n this.innerComponent = this.contentRef.componentRef.instance;\r\n this.contentRef.componentRef.changeDetectorRef.markForCheck();\r\n this.contentRef.componentRef.changeDetectorRef.detectChanges();\r\n }\r\n this.componentRef!.changeDetectorRef.markForCheck();\r\n this.componentRef!.changeDetectorRef.detectChanges();\r\n }\r\n\r\n private createComponentAndAttachToView(options: ComponentLoaderOptions) {\r\n const injector = Injector.create({\r\n providers: this.providers,\r\n parent: this.injector,\r\n });\r\n this.componentRef = this.componentFactory!.create(injector, this.contentRef?.nodes);\r\n this.applicationRef.attachView(this.componentRef.hostView);\r\n this.instance = this.componentRef.instance;\r\n Object.assign(this.componentRef.instance, options);\r\n }\r\n\r\n private appendContentToContainer() {\r\n if (this.container instanceof ElementRef) {\r\n this.container.nativeElement.appendChild(this.componentRef?.location.nativeElement);\r\n }\r\n if (typeof this.container === 'string' && typeof document !== 'undefined') {\r\n const selectedElement = document.querySelector(this.container) || document.querySelector(this.containerDefaultSelector);\r\n if (!selectedElement) {\r\n return;\r\n }\r\n selectedElement.appendChild(this.componentRef?.location.nativeElement);\r\n }\r\n }\r\n\r\n private getContentRef(content?: string | TemplateRef<any>, context?: any, initialState?: any): ContentRef {\r\n //TemplateRef case\r\n if (content instanceof TemplateRef) {\r\n if (this.vcr) {\r\n const viewRef = this.vcr.createEmbeddedView<TemplateRef<T>>(content, context);\r\n viewRef.markForCheck();\r\n return new ContentRef([viewRef.rootNodes], viewRef);\r\n }\r\n const viewRef = content.createEmbeddedView({});\r\n this.applicationRef.attachView(viewRef);\r\n return new ContentRef([viewRef.rootNodes], viewRef);\r\n }\r\n\r\n //Component case\r\n if (typeof content === 'function') {\r\n const contentCf = this.cfr.resolveComponentFactory(content);\r\n const injector = Injector.create({\r\n providers: this.providers,\r\n parent: this.injector,\r\n });\r\n const componentRef = contentCf.create(injector);\r\n // Object.assign(componentRef.instance, initialState);\r\n this.applicationRef.attachView(componentRef.hostView);\r\n return new ContentRef([[componentRef.location.nativeElement]], componentRef.hostView, componentRef);\r\n }\r\n\r\n throw Error('Unsupported content type');\r\n }\r\n}\r\n","import { ApplicationRef, ComponentFactoryResolver, Injectable, Injector, ViewContainerRef } from '@angular/core';\r\nimport { ComponentLoader } from './component-loader.class';\r\n\r\n/**\r\n * Use to create instances of {@link ComponentLoader}.\r\n *\r\n * @public\r\n */\r\n@Injectable({ providedIn: 'root' })\r\nexport class ComponentLoaderFactory {\r\n constructor(\r\n private componentFactoryResolver: ComponentFactoryResolver,\r\n private injector: Injector,\r\n private applicationRef: ApplicationRef\r\n ) {}\r\n\r\n /**\r\n * Returns a new instance of {@link ComponentLoader}\r\n * @param viewContainerRef - The view container the dynamic content will be attached to.\r\n * @returns A new instance of {@link ComponentLoader}.\r\n *\r\n * @public\r\n */\r\n createLoader<T extends object>(viewContainerRef?: ViewContainerRef): ComponentLoader<T> {\r\n return new ComponentLoader<T>(viewContainerRef, this.componentFactoryResolver, this.applicationRef, this.injector);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\nimport { UserSettingKey } from '../types';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class UserSettingsService {\r\n private static SETTINGS_KEY = '@indice/ng-components_user-settings';\r\n\r\n private _defaultPreferences: { [key in UserSettingKey]: any } = {\r\n 'MobileSideBar': true\r\n };\r\n\r\n public getAll(): { [key in UserSettingKey]: any } {\r\n const settingsJson = localStorage.getItem(UserSettingsService.SETTINGS_KEY);\r\n if (settingsJson) {\r\n return JSON.parse(settingsJson);\r\n }\r\n return this._defaultPreferences;\r\n }\r\n\r\n public get(key: UserSettingKey): any { \r\n const settings = this.getAll();\r\n return settings[key];\r\n }\r\n\r\n public set(key: UserSettingKey, value: any): void {\r\n const settings = this.getAll();\r\n settings[key] = value;\r\n localStorage.setItem(UserSettingsService.SETTINGS_KEY, JSON.stringify(settings));\r\n }\r\n}\r\n","import { IShellConfig, NavLink } from './../../../types';\r\nimport { Component, Inject, Input, OnInit } from '@angular/core';\r\nimport { Observable } from 'rxjs/internal/Observable';\r\nimport { of } from 'rxjs';\r\nimport { APP_LINKS } from '../../../tokens';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { share } from 'rxjs/operators';\r\n\r\n@Component({\r\n selector: 'lib-shell-sidebar',\r\n templateUrl: './shell-sidebar.component.html'\r\n})\r\nexport class ShellSidebarComponent implements OnInit {\r\n constructor(\r\n @Inject(Router) protected router: Router,\r\n @Inject(ActivatedRoute) protected route: ActivatedRoute,\r\n @Inject(APP_LINKS) public links: any\r\n ) { }\r\n\r\n @Input('section-links') sectionLinksPath = 'main';\r\n @Input('config') shellConfig: IShellConfig | undefined = undefined;\r\n @Input('sticky') sticky: boolean = false;\r\n public sectionLinks: Observable<NavLink[]> = of([]);\r\n public activeFragment: any | null = null;\r\n\r\n public get activeNavLinkClass(): string {\r\n const linkClasses = 'sidebar ' + (this.sticky ? 'nav-link-active-b' : 'nav-link-active-l') + ' group';\r\n console.log('activeNavLinkClass getter ', linkClasses);\r\n return linkClasses;\r\n }\r\n\r\n public ngOnInit(): void {\r\n this.activeFragment = this.route.fragment.pipe(share());\r\n this.sectionLinks = this.links[this.sectionLinksPath] as Observable<NavLink[]>;\r\n }\r\n}\r\n","<!-- Sidebar component, swap this element with another sidebar if you like -->\r\n<div class=\"shell-sidebar-component-container\">\r\n <div class=\"shell-sidebar-component-links-container sidebar\">\r\n <lib-nav-links-list [show-icons]=\"true\"\r\n [show-text]=\"!sticky\"\r\n [large-icons]=\"sticky\"\r\n [links]=\"sectionLinks\"\r\n [active-fragment]=\"activeFragment\"\r\n [link-class]=\"'sidebar nav-link group'\"\r\n [link-active-class]=\"'sidebar nav-link-active-b group'\">\r\n </lib-nav-links-list>\r\n </div>\r\n</div>","import { MenuOption } from './../../types';\r\nimport { Component, Inject, OnInit } from '@angular/core';\r\nimport { APP_LANGUAGES } from '../../tokens';\r\nimport { IAppLanguagesService } from '../../types';\r\n\r\n@Component({\r\n selector: 'lib-language-selection',\r\n templateUrl: './language-selection.component.html'\r\n})\r\nexport class LanguageSelectionComponent implements OnInit {\r\n\r\n public menuExpanded = false;\r\n constructor(@Inject(APP_LANGUAGES) public langsService: IAppLanguagesService | undefined) { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n public selectLang(option: MenuOption): void {\r\n if (this.langsService?.setSelected) {\r\n this.langsService.setSelected(option.value);\r\n }\r\n }\r\n\r\n public onClickOutside($event: any): void {\r\n this.menuExpanded = false;\r\n }\r\n}\r\n","<div class=\"relative\" (clickOutside)=\"onClickOutside($event)\">\r\n <button class=\"langs-button\" (click)=\"menuExpanded = !menuExpanded\">\r\n <i class=\"text-xs mr-1 ms-Icon ms-Icon--Globe\"></i>\r\n <ng-container *ngFor=\"let lang of langsService?.options | async\">\r\n <span *ngIf=\"lang.value === langsService?.selected\">{{lang.text}}</span>\r\n </ng-container>\r\n </button>\r\n\r\n <div\r\n [class]=\"menuExpanded ? 'langs-menu-expanded':'langs-menu-collapsed'\" role=\"menu\" aria-orientation=\"vertical\" aria-labelledby=\"menu-button\" tabindex=\"-1\">\r\n <div class=\"py-1\" role=\"none\">\r\n <ng-container *ngFor=\"let lang of langsService?.options | async\">\r\n <a (click)=\"selectLang(lang)\" *ngIf=\"lang.value != langsService?.selected\" class=\"nav-link-profile\" role=\"menuitem\" tabindex=\"-1\" id=\"menu-item-0\">\r\n <i class=\"text-xs mr-1 ms-Icon ms-Icon--GlobeFavorite\"></i>\r\n {{lang.description}}\r\n </a>\r\n </ng-container>\r\n </div>\r\n </div>\r\n</div>\r\n","import { IAppNotifications, NavLink } from './../../types';\r\nimport { Component, Inject, OnInit, OnDestroy } from '@angular/core';\r\nimport { Observable, of, Subscription } from 'rxjs';\r\nimport { APP_LINKS, APP_NOTIFICATIONS } from '../../tokens';\r\n\r\n@Component({\r\n selector: 'lib-notifications-indicator',\r\n templateUrl: './notifications-indicator.component.html'\r\n})\r\nexport class NotificationsIndicatorComponent implements OnInit, OnDestroy {\r\n\r\n public menuExpanded = false;\r\n public unreadCount = 0;\r\n public items: any[] = [];\r\n public allNotificationsLink?: NavLink;\r\n private notificationsSub$: Subscription | undefined;\r\n private inboxAction: any | undefined = undefined;\r\n public newArrival = false;\r\n constructor(@Inject(APP_NOTIFICATIONS) public notifications?: IAppNotifications, @Inject(APP_LINKS) public links?: any) { }\r\n\r\n ngOnDestroy(): void {\r\n if (this.notificationsSub$) {\r\n this.notificationsSub$.unsubscribe();\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n if(this.links && this.links['notifications']) {\r\n (this.links['notifications'] as Observable<NavLink>).subscribe(notificationsLink => {\r\n this.allNotificationsLink = notificationsLink;\r\n });\r\n }\r\n if(this.notifications) {\r\n this.notificationsSub$ = this.notifications?.messages.subscribe(result => {\r\n if (result.items){\r\n this.newArrival = true;\r\n this.unreadCount = result.count;\r\n this.items = result.items;\r\n setTimeout( () => { this.newArrival = false; }, 1000 );\r\n }\r\n });\r\n }\r\n }\r\n\r\n public doInboxAction(): void {\r\n if (this.notifications?.inboxAction) {\r\n this.notifications.inboxAction();\r\n } else {\r\n this.menuExpanded = !this.menuExpanded;\r\n this.ngOnDestroy();\r\n this.ngOnInit();\r\n }\r\n this.unreadCount = 0;\r\n }\r\n\r\n public removeItem(index:number){\r\n this.items.splice(index,1);\r\n }\r\n\r\n // this.notificationsSub$ = this.links.notifications?.pipe(map(result => {\r\n // this.allItemsLink = result.allNotifications;\r\n // this.items = result.items;\r\n // this.unreadCount = result.count;\r\n // }));\r\n\r\n // [this.notificationsLinksPath] as Observable<NotificationNavLink[]>;\r\n // this.allNotificationsLink = this.links[this.allNotificationsLinkPath] as Observable<NavLink>;\r\n // this.unreadNotificationsCountObs = this.links[this.notificationsCounterLinksPath] as Observable<number>;\r\n // this.getUnreadNotificationsCount();\r\n\r\n // tslint:disable-next-line:typedef\r\n public onClickOutside($event: any) {\r\n this.menuExpanded = false;\r\n }\r\n\r\n}\r\n","<div class=\"relative\"\r\n(clickOutside)=\"onClickOutside($event)\">\r\n <!-- Notifications Button -->\r\n <button type=\"button\"\r\n (click)=\"doInboxAction()\"\r\n aria-expanded=\"false\"\r\n aria-haspopup=\"true\">\r\n <span class=\"sr-only\">View notifications</span>\r\n <span class=\"avatar-container\">\r\n <span class=\"avatar-text\">\r\n <i class=\"ms-Icon hover:text-blue-400\"\r\n [class.ms-Icon--MessageFill]=\"unreadCount > 0\"\r\n [class.text-sky-400]=\"unreadCount > 0\"\r\n [class.animate-notification]=\"newArrival\"\r\n [class.ms-Icon--Message]=\"unreadCount === 0\">\r\n </i>\r\n </span>\r\n <span\r\n *ngIf=\"unreadCount > 0\"\r\n [class.animate-pulse]=\"newArrival\"\r\n class=\"absolute top-0 right-0 inline-flex items-center justify-center -mt-1 ml-1 text-xs leading-none text-gray-100 ordinal\">\r\n {{ unreadCount }}\r\n </span>\r\n </span>\r\n </button>\r\n\r\n <!-- Notifications dropdown -->\r\n <div *ngIf=\"menuExpanded\" class=\"header-notifications-dropdown-with-username\" role=\"menu\" aria-orientation=\"vertical\" aria-labelledby=\"messages-menu\">\r\n <div class=\"max-h-64 overflow-y-auto notification-messages min-h\">\r\n <ng-container *ngIf=\"!items; else messagesDropDown\" class=\"py-5\">\r\n <div class=\"notifications-nav-link hover:bg-transparent\">Δεν έχετε νέες ειδοποιήσεις</div>\r\n </ng-container>\r\n <ng-template #messagesDropDown>\r\n <ul class=\"pr-1.5\">\r\n <ng-container *ngIf=\"items; else loading\">\r\n <ng-container *ngIf=\"items.length <= 0\" class=\"py-5\">\r\n <div class=\"notifications-nav-link hover:bg-transparent\">Δεν έχετε νέες ειδοποιήσεις</div>\r\n </ng-container>\r\n <ng-container *ngFor=\"let message of items; let i = index\">\r\n <li class=\"mb-2\" [ngClass]=\"{ 'border-l-2 border-blue-500 bg-blue-50 hover:bg-blue-50': !message.data.isRead }\">\r\n <div class=\"flex justify-between\">\r\n <div class=\"flex-grow\">\r\n <a\r\n [routerLink]=\"message.path\"\r\n (click)=\"removeItem(i)\"\r\n class=\"notifications-nav-link grid\"\r\n [ngClass]=\"!message.data.isRead ? ' hover:bg-blue-50' : 'border-b border-gray-100'\"\r\n >\r\n <div class=\"flex flex-col\">\r\n <div class=\"font-thin tracking-tighter\">\r\n {{ message.data.creationDate | date: \"EEE, d MMMM\" }}\r\n </div>\r\n <div class=\"font-bold\">\r\n {{ message.data.text }}\r\n </div>\r\n </div>\r\n </a>\r\n </div>\r\n </div>\r\n </li>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <ng-template #loading>\r\n <div class=\"h-32 flex items-center justify-center\">\r\n <div class=\"animate-pulse text-s text-gray-600\">Loading...</div>\r\n </div>\r\n </ng-template>\r\n </ul>\r\n </ng-template>\r\n </div>\r\n <div class=\"p-1 rounded-sm\">\r\n <a [routerLink]=\"allNotificationsLink!.path\" (click)=\"onClickOutside($event)\">\r\n <button type=\"button\" class=\"header-notifications-dropdown-view-all-button\">{{allNotificationsLink!.text}}</button>\r\n </a>\r\n </div>\r\n </div>\r\n</div>\r\n","import { Component, Inject, Input, OnInit } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { AuthService } from '@indice/ng-auth';\r\nimport { Subscription } from 'rxjs';\r\nimport { APP_LINKS } from '../../tokens';\r\nimport { User } from 'oidc-client-ts';\r\n\r\n@Component({\r\n selector: 'lib-user-profile-menu',\r\n templateUrl: './user-profile-menu.component.html'\r\n})\r\nexport class UserProfileMenuComponent implements OnInit {\r\n\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('show-user-name') showUserName: boolean | undefined = false;\r\n protected userSub$: Subscription | null = null;\r\n protected statusSub$: Subscription | null = null;\r\n public user: User | null = null;\r\n public avatarName: string | null = null;\r\n public userMenuExpanded = false;\r\n\r\n constructor(@Inject(AuthService) protected authService: AuthService,\r\n @Inject(Router) protected router: Router,\r\n @Inject(APP_LINKS) public links: any) { }\r\n\r\n ngOnInit(): void {\r\n this.authService.loadUser().subscribe((user) => {\r\n this.setCurrentUser(user);\r\n }, error => {\r\n console.error(error);\r\n });\r\n // Detect user changes and display / or not user info accordingly...\r\n this.userSub$ = this.authService.user$.subscribe((user: any) => {\r\n // console.log('ShellHeaderComponent user subscription');\r\n this.setCurrentUser(user);\r\n });\r\n }\r\n\r\n public signin(event: any | null | undefined): void {\r\n if (event) {\r\n event.preventDefault();\r\n }\r\n this.authService.signinRedirect();\r\n }\r\n\r\n private setCurrentUser(user: any): void {\r\n this.user = user;\r\n if (this.user && this.user.profile) {\r\n this.avatarName = `${this.user.profile.given_name?.charAt(0)}${this.user.profile.family_name?.charAt(0)}`.toUpperCase();\r\n }\r\n }\r\n\r\n // tslint:disable-next-line:typedef\r\n public onClickOutside($event: any) {\r\n this.userMenuExpanded = false;\r\n }\r\n\r\n}\r\n","<div class=\"relative\" (clickOutside)=\"onClickOutside($event)\">\r\n\r\n <div class=\"inline-flex\">\r\n <!-- Username -->\r\n <div [ngClass]=\"{'shell-header-profile': showUserName}\">\r\n <div *ngIf=\"user && showUserName\" class=\"shell-header-profile-userName\">\r\n {{ user.profile.name }}\r\n </div>\r\n </div>\r\n\r\n <div [class.ml-2]=\"showUserName\">\r\n <button type=\"button\" \r\n *ngIf=\"user\"\r\n class=\"shell-header-profile-dropdown-button\"\r\n id=\"user-menu\"\r\n aria-expanded=\"false\"\r\n aria-haspopup=\"true\"\r\n (click)=\"userMenuExpanded = !userMenuExpanded\">\r\n <span class=\"sr-only\">Open user menu</span>\r\n <span class=\"avatar-container\">\r\n <span class=\"avatar-text\">{{this.avatarName}}</span>\r\n </span>\r\n </button>\r\n\r\n <button type=\"button\"\r\n *ngIf=\"!user\"\r\n (click)=\"signin($event)\"\r\n class=\"shell-header-profile-dropdown-button\"\r\n id=\"user-menu\"\r\n aria-expanded=\"false\"\r\n aria-haspopup=\"true\">\r\n <span class=\"sr-only\">sign in</span>\r\n <span class=\"avatar-container\">\r\n <span class=\"avatar-text\"><i class=\"ms-Icon ms-Icon--Signin\"></i></span>\r\n </span>\r\n </button>\r\n </div>\r\n </div>\r\n\r\n <div [class]=\"userMenuExpanded ?\r\n 'transition ease-out duration-200 origin-top-right z-30 absolute right-0 mt-2 w-56 rounded-sm shadow-lg bg-white ring-1 ring-black ring-opacity-5 focus:outline-none'\r\n :\r\n 'hidden transition ease-in duration-75 origin-top-right z-30 right-0 mt-2 w-56 rounded-sm shadow-lg bg-white ring-1 ring-black ring-opacity-5 focus:outline-none'\"\r\n role=\"menu\" aria-orientation=\"vertical\" aria-labelledby=\"menu-button\" tabindex=\"-1\">\r\n <lib-nav-links-list\r\n [links]=\"links.profile\"\r\n [link-class]=\"'nav-link-profile'\"\r\n [link-active-class]=\"'nav-link-profile-active'\">\r\n </lib-nav-links-list>\r\n </div>\r\n\r\n</div>\r\n\r\n","import { AuthService } from '@indice/ng-auth';\r\nimport { Component, OnInit, OnDestroy, Inject, Input } from '@angular/core';\r\nimport { ActivatedRoute, Event, NavigationStart, Router } from '@angular/router';\r\nimport { filter, share } from 'rxjs/operators';\r\nimport { NavLink } from '../../../types';\r\nimport { APP_LINKS, SHELL_CONFIG } from '../../../tokens';\r\nimport { Observable, of } from 'rxjs';\r\nimport { Subscription } from 'rxjs';\r\nimport { User } from 'oidc-client-ts';\r\n\r\n@Component({\r\n // tslint:disable-next-line:component-selector\r\n selector: 'lib-shell-header',\r\n templateUrl: './shell-header.component.html',\r\n})\r\nexport class ShellHeaderComponent implements OnInit, OnDestroy {\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('section-links') sectionLinksPath = 'main';\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('profile-menu') profileMenuVisible = true;\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('show-userName') showUserNameOnHeader: boolean | undefined = false;\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('show-alerts') showAlerts: boolean | undefined = false;\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('show-langs') showLangs: boolean | undefined = false;\r\n @Input() border = true;\r\n public sectionLinks: Observable<NavLink[]> = of([]);\r\n public mobileMenuExpanded = false;\r\n public userMenuExpanded = false;\r\n protected routeSubject: Observable<Event>;\r\n protected routerSub$: Subscription | null = null;\r\n protected userSub$: Subscription | null = null;\r\n protected statusSub$: Subscription | null = null;\r\n public user: User | null = null;\r\n public avatarName: string | null = null;\r\n public activeFragment: any | null = null;\r\n\r\n constructor(\r\n @Inject(AuthService) protected authService: AuthService,\r\n @Inject(Router) protected router: Router,\r\n @Inject(ActivatedRoute) protected route: ActivatedRoute,\r\n @Inject(SHELL_CONFIG) public config: any,\r\n @Inject(APP_LINKS) public links: any) {\r\n this.routeSubject = this.router.events.pipe(filter((event) => event instanceof NavigationStart));\r\n }\r\n\r\n ngOnInit(): void {\r\n this.activeFragment = this.route.fragment.pipe(share());\r\n this.sectionLinks = this.links[this.sectionLinksPath] as Observable<NavLink[]>;\r\n this.routerSub$ = this.routeSubject.subscribe((event) => {\r\n this.mobileMenuExpanded = false;\r\n this.userMenuExpanded = false;\r\n });\r\n this.authService.loadUser().subscribe((user) => {\r\n this.setCurrentUser(user);\r\n }, error => {\r\n console.error(error);\r\n });\r\n // Detect user changes and display / or not user info accordingly...\r\n this.userSub$ = this.authService.user$.subscribe((user: any) => {\r\n // console.log('ShellHeaderComponent user subscription');\r\n this.setCurrentUser(user);\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n\r\n if (this.routerSub$) {\r\n this.routerSub$.unsubscribe();\r\n }\r\n // TODO: check authenticated user here before we start polling server status\r\n if (this.statusSub$) {\r\n this.statusSub$.unsubscribe();\r\n }\r\n if (this.userSub$) {\r\n this.userSub$.unsubscribe();\r\n }\r\n }\r\n\r\n // tslint:disable-next-line:typedef\r\n public onClickOutside($event: any) {\r\n this.userMenuExpanded = false;\r\n }\r\n\r\n public signin(event: any | null | undefined): void {\r\n if (event) {\r\n event.preventDefault();\r\n }\r\n this.authService.signinRedirect();\r\n }\r\n\r\n private setCurrentUser(user: any): void {\r\n this.user = user;\r\n if (this.user && this.user.profile) {\r\n this.avatarName = `${this.user.profile.given_name?.charAt(0)}${this.user.profile.family_name?.charAt(0)}`.toUpperCase();\r\n }\r\n }\r\n\r\n}\r\n\r\n","<nav>\r\n <div class=\"shell-header-paddings\">\r\n <div class=\"shell-header-border\">\r\n <div class=\"shell-header-menu-container\">\r\n <div class=\"shell-header-logo-container\">\r\n <div>\r\n <a href=\"#\" [routerLink]=\"['/']\"><img alt=\"app logo\" class=\"app-logo\" [src]=\"config.appLogo\" [alt]=\"config.appLogoAlt\" /></a>\r\n </div>\r\n </div>\r\n\r\n <div class=\"shell-header-link-container\">\r\n <div class=\"shell-header-link-container-inner\">\r\n <lib-nav-links-list\r\n [links]=\"sectionLinks\"\r\n [active-fragment]=\"activeFragment\"\r\n [link-class]=\"'nav-link'\"\r\n [link-active-class]=\"'nav-link-active'\">\r\n </lib-nav-links-list>\r\n </div>\r\n </div>\r\n\r\n <div class=\"shell-header-md-visible\">\r\n\r\n <div class=\"shell-header-links-far-container\" (clickOutside)=\"onClickOutside($event)\">\r\n\r\n <lib-nav-links-list\r\n [links]=\"links.profileActions\"\r\n [active-fragment]=\"activeFragment\"\r\n [link-class]=\"'shell-header-menu-rounded-button'\"\r\n [link-active-class]=\"'shell-header-menu-rounded-button-active'\">\r\n </lib-nav-links-list>\r\n\r\n\r\n <!-- Profile dropdown -->\r\n <div *ngIf=\"profileMenuVisible\" class=\"ml-4\">\r\n <lib-user-profile-menu [show-user-name]=\"showUserNameOnHeader\"></lib-user-profile-menu>\r\n </div>\r\n\r\n <!-- Notifications dropdown -->\r\n <div *ngIf=\"showAlerts && user\" class=\"ml-4\">\r\n <lib-notifications-indicator></lib-notifications-indicator>\r\n </div>\r\n\r\n <!-- languages dropdown -->\r\n <div *ngIf=\"showLangs\" class=\"ml-4\">\r\n <lib-language-selection></lib-language-selection>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"mobile-menu-button-container\">\r\n <!-- Mobile menu button -->\r\n <button type=\"button\"\r\n (click)=\"mobileMenuExpanded = !mobileMenuExpanded\"\r\n class=\"mobile-menu-button\"\r\n aria-controls=\"mobile-menu\"\r\n [attr.aria-expanded]=\"mobileMenuExpanded\">\r\n <span class=\"sr-only\">Open main menu</span>\r\n <!--Heroicon name: outline/menu Menu open: \"hidden\", Menu closed: \"block\"-->\r\n <svg xmlns=\"http://www.w3.org/2000/svg\"\r\n fill=\"none\"\r\n viewBox=\"0 0 24 24\"\r\n stroke=\"currentColor\"\r\n aria-hidden=\"true\"\r\n [class]=\"mobileMenuExpanded ? 'hidden':'block h-6 w-6'\">\r\n <path stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n stroke-width=\"2\"\r\n d=\"M4 6h16M4 12h16M4 18h16\" />\r\n </svg>\r\n <!--Heroicon name: outline/x Menu open: \"block\", Menu closed: \"hidden\"-->\r\n <svg xmlns=\"http://www.w3.org/2000/svg\"\r\n fill=\"none\"\r\n viewBox=\"0 0 24 24\"\r\n stroke=\"currentColor\"\r\n aria-hidden=\"true\"\r\n [class]=\"mobileMenuExpanded ? 'block h-6 w-6':'hidden'\">\r\n <path stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n stroke-width=\"2\"\r\n d=\"M6 18L18 6M6 6l12 12\" />\r\n </svg>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <!-- Mobile menu, show/hide based on menu state. -->\r\n <div class=\"mobile-menu-container\" *ngIf=\"mobileMenuExpanded\" id=\"mobile-menu\">\r\n <lib-nav-links-list\r\n [links]=\"sectionLinks\"\r\n [active-fragment]=\"activeFragment\"\r\n [link-class]=\"'nav-link-mobile'\"\r\n [link-active-class]=\"'nav-link-mobile-active'\"\r\n [container-class]=\"'mobile-menu-link-container'\">\r\n </lib-nav-links-list>\r\n\r\n <div *ngIf=\"!user\">\r\n <a href=\"#\" (click)=\"signin($event)\" class=\"nav-link-mobile\">\r\n <i class=\"ms-Icon ms-Icon--Signin mr-2\"></i>Σύνδεση\r\n </a>\r\n </div>\r\n\r\n <div class=\"mobile-menu-user-info-container\" *ngIf=\"user\">\r\n <div class=\"mobile-menu-user-info-container-inner\">\r\n <div class=\"flex-shrink-0\">\r\n <span class=\"mobile-menu-avatar-container\">\r\n <span class=\"mobile-menu-avatar-name\">{{ this.avatarName }}</span>\r\n </span>\r\n </div>\r\n <div class=\"ml-3\">\r\n <div class=\"mobile-menu-user-name\">{{ user.profile.name }}</div>\r\n <div class=\"mobile-menu-user-email\">{{ user.profile.email }}</div>\r\n </div>\r\n <!--\r\n <button class=\"mobile-menu-rounded-button\">\r\n <span class=\"sr-only\">View notifications</span>\r\n <svg class=\"mobile-menu-rounded-button-icon-style\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n fill=\"none\"\r\n viewBox=\"0 0 24 24\"\r\n stroke=\"currentColor\"\r\n aria-hidden=\"true\">\r\n <path stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n stroke-width=\"2\"\r\n d=\"M15 17h5l-1.405-1.405A2.032 2.032 0 0118 14.158V11a6.002 6.002 0 00-4-5.659V5a2 2 0 10-4 0v.341C7.67 6.165 6 8.388 6 11v3.159c0 .538-.214 1.055-.595 1.436L4 17h5m6 0v1a3 3 0 11-6 0v-1m6 0H9\" />\r\n </svg>\r\n </button>\r\n -->\r\n </div>\r\n </div>\r\n\r\n <lib-nav-links-list\r\n [links]=\"links.profile\"\r\n [active-fragment]=\"activeFragment\"\r\n [link-class]=\"'nav-link-mobile'\"\r\n [link-active-class]=\"'nav-link-mobile-active'\"\r\n [container-class]=\"'mobile-menu-link-container'\">\r\n </lib-nav-links-list>\r\n </div>\r\n</nav>\r\n","\r\nimport { AuthService } from '@indice/ng-auth';\r\nimport { Component, Inject, Input } from '@angular/core';\r\nimport { ActivatedRoute, Event, NavigationStart, Router } from '@angular/router';\r\nimport { APP_LINKS, SHELL_CONFIG } from '../../../tokens';\r\nimport { ShellHeaderComponent } from '../shell-header/shell-header.component';\r\nimport { ShellLayoutType } from '../../../types';\r\n\r\n@Component({\r\n selector: 'lib-shell-sidebar-header',\r\n templateUrl: './shell-sidebar-header.component.html'\r\n})\r\nexport class ShellSidebarHeaderComponent extends ShellHeaderComponent {\r\n constructor(@Inject(AuthService) protected authService: AuthService,\r\n @Inject(Router) protected router: Router,\r\n @Inject(ActivatedRoute) protected route: ActivatedRoute,\r\n @Inject(SHELL_CONFIG) public config: any,\r\n @Inject(APP_LINKS) public links: any) {\r\n super(authService, router, route, config, links);\r\n }\r\n\r\n}\r\n","<div class=\"shell-header-paddings\">\r\n <div class=\"shell-header-border\">\r\n <div class=\"shell-header-menu-container\">\r\n <div class=\"shell-header-md-visible\">\r\n <div class=\"shell-header-links-far-container\" (clickOutside)=\"onClickOutside($event)\">\r\n <!-- Profile dropdown -->\r\n <div *ngIf=\"profileMenuVisible\" class=\"ml-4\">\r\n <lib-user-profile-menu [show-user-name]=\"showUserNameOnHeader\"></lib-user-profile-menu>\r\n </div>\r\n <!-- Notifications dropdown -->\r\n <div *ngIf=\"showAlerts && user\" class=\"ml-4\">\r\n <lib-notifications-indicator></lib-notifications-indicator>\r\n </div>\r\n <!-- languages dropdown -->\r\n <div *ngIf=\"showLangs\" class=\"ml-4\">\r\n <lib-language-selection></lib-language-selection>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n \r\n","import { Component, Inject, Input, OnInit, Optional, TemplateRef } from '@angular/core';\r\n\r\nimport { IShellConfig } from '../../../types';\r\nimport { UserSettingsService } from '../../../services/user-settings.service';\r\n\r\n@Component({\r\n selector: 'lib-shell-sidebar-layout',\r\n templateUrl: './shell-sidebar-layout.component.html'\r\n})\r\nexport class ShellSidebarLayoutComponent implements OnInit {\r\n constructor(\r\n private _userSettings: UserSettingsService\r\n ) {\r\n this.showMobileSidebar = this._userSettings.get('MobileSideBar');\r\n }\r\n\r\n @Input() config: IShellConfig | undefined;\r\n @Input() public sidebarFooterTemplate?: TemplateRef<any>;\r\n public showMobileSidebar: boolean;\r\n\r\n public ngOnInit(): void { }\r\n\r\n public toggleMobileSidebar(): void {\r\n this.showMobileSidebar = !this.showMobileSidebar;\r\n this._userSettings.set('MobileSideBar', this.showMobileSidebar);\r\n }\r\n}\r\n","<div>\r\n <div class=\"sidebar-off-canvas-menu-container\"\r\n role=\"dialog\"\r\n aria-modal=\"true\">\r\n <div class=\"sidebar-off-canvas-menu-backdrop\"\r\n [class.sidebar-off-canvas-menu-backdrop-opacity-100]=\"!showMobileSidebar\">\r\n </div>\r\n <div class=\"sidebar-off-canvas-menu-container-inner\"\r\n [class.sidebar-off-canvas-menu-container-inner-active]=\"!showMobileSidebar\"\r\n [class.sidebar-off-canvas-menu-container-inner-not-active]=\"showMobileSidebar\">\r\n <div class=\"sidebar-off-canvas-layout-container\">\r\n <div class=\"sidebar-off-canvas-toggle-button-container\">\r\n <button type=\"button\"\r\n class=\"sidebar-off-canvas-toggle-button\"\r\n (click)=\"toggleMobileSidebar()\">\r\n <span class=\"sr-only\">Close sidebar</span>\r\n <svg class=\"h-6 w-6 text-white\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n fill=\"none\"\r\n viewBox=\"0 0 24 24\"\r\n stroke-width=\"2\"\r\n stroke=\"currentColor\"\r\n aria-hidden=\"true\">\r\n <path stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n d=\"M6 18L18 6M6 6l12 12\" />\r\n </svg>\r\n </button>\r\n </div>\r\n <div class=\"sidebar-off-canvas-app-logo-container\">\r\n <img alt=\"image\" class=\"shell-sidebar-logo\"\r\n [src]=\"config?.appLogo\"\r\n [alt]=\"config?.appLogoAlt\">\r\n </div>\r\n <lib-shell-sidebar></lib-shell-sidebar>\r\n </div>\r\n <div class=\"sidebar-dummy-element\"\r\n aria-hidden=\"true\">\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"sidebar-static-menu-outer-container\">\r\n <div class=\"sidebar-static-menu-container\"\r\n [class.sidebar-static-menu-container-active]=\"!showMobileSidebar\"\r\n [class.sidebar-static-menu-container-not-active]=\"showMobileSidebar\">\r\n <div class=\"sidebar-static-menu-container-inner\">\r\n <div class=\"sidebar-static-menu-app-logo-container\">\r\n <img alt=\"image\" *ngIf=\"!showMobileSidebar\"\r\n class=\"shell-sidebar-logo\"\r\n [src]=\"config?.appLogo\"\r\n [alt]=\"config?.appLogoAlt\">\r\n <button *ngIf=\"showMobileSidebar\"\r\n type=\"button\"\r\n class=\"sidebar-static-menu-toggle-button\"\r\n (click)=\"toggleMobileSidebar()\">\r\n <span class=\"sr-only\">Toggle sidebar</span>\r\n <svg class=\"h-6 w-6\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n fill=\"none\"\r\n viewBox=\"0 0 24 24\"\r\n stroke-width=\"2\"\r\n stroke=\"currentColor\"\r\n aria-hidden=\"true\">\r\n <path stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n d=\"M4 6h16M4 12h16M4 18h7\" />\r\n </svg>\r\n </button>\r\n </div>\r\n <lib-shell-sidebar [sticky]=\"showMobileSidebar\"></lib-shell-sidebar>\r\n </div>\r\n <div class=\"flex flex-shrink-0 bg-gray-700 p-4\"\r\n *ngIf=\"!showMobileSidebar && sidebarFooterTemplate\">\r\n <div class=\"group block flex-shrink-0\">\r\n <div class=\"flex items-center\">\r\n <div>\r\n <p class=\"text-sm font-medium text-gray-400\">\r\n <ng-container [ngTemplateOutlet]=\"sidebarFooterTemplate\"></ng-container>\r\n </p>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"sidebar-static-menu-wrapper\"\r\n [class.sidebar-static-menu-wrapper-expanded]=\"!showMobileSidebar\">\r\n <div class=\"sidebar-static-menu-sticky-header-container\"\r\n *ngIf=\"config?.showHeader\">\r\n <button *ngIf=\"showMobileSidebar\"\r\n type=\"button\"\r\n class=\"sidebar-static-menu-toggle-button-md\"\r\n (click)=\"toggleMobileSidebar()\">\r\n <span class=\"sr-only\">Toggle sidebar</span>\r\n <svg class=\"h-6 w-6\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n fill=\"none\"\r\n viewBox=\"0 0 24 24\"\r\n stroke-width=\"2\"\r\n stroke=\"currentColor\"\r\n aria-hidden=\"true\">\r\n <path stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n d=\"M4 6h16M4 12h16M4 18h7\" />\r\n </svg>\r\n </button>\r\n <button *ngIf=\"!showMobileSidebar\"\r\n type=\"button\"\r\n class=\"sidebar-static-menu-toggle-button\"\r\n (click)=\"toggleMobileSidebar()\">\r\n <span class=\"sr-only\">Toggle sidebar</span>\r\n <svg class=\"h-6 w-6\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n fill=\"none\"\r\n viewBox=\"0 0 24 24\"\r\n stroke-width=\"2\"\r\n stroke=\"currentColor\"\r\n aria-hidden=\"true\">\r\n <path stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n d=\"M4 6h16M4 12h16M4 18h7\" />\r\n </svg>\r\n </button>\r\n <div class=\"sidebar-static-menu-header-container\">\r\n <div class=\"sidebar-static-menu-header-near-container\">\r\n <div class=\"sidebar-static-menu-header-app-logo-container\"\r\n *ngIf=\"showMobileSidebar\">\r\n <img alt=\"image\" class=\"shell-sidebar-logo\"\r\n [src]=\"config?.appLogo\"\r\n [alt]=\"config?.appLogoAlt\">\r\n </div>\r\n </div>\r\n <div class=\"sidebar-static-menu-header-far-container\">\r\n <lib-shell-sidebar-header [show-userName]=\"config?.showUserNameOnHeader\"\r\n [show-alerts]=\"config?.showAlertsOnHeader\"\r\n [show-langs]=\"config?.showLangsOnHeader\">\r\n </lib-shell-sidebar-header>\r\n </div>\r\n </div>\r\n </div>\r\n <div flex-1>\r\n <main class=\"shell-content-container-fluid\">\r\n <lib-breadcrumb *ngIf=\"config?.breadcrumb || false\"></lib-breadcrumb>\r\n <div class=\"shell-content-container-inner\">\r\n <router-outlet *ngIf=\"(config && config.layout === 'Sidebar')\"></router-outlet>\r\n </div>\r\n </main>\r\n </div>\r\n </div>\r\n</div>","import { Component, Inject } from '@angular/core';\r\nimport { APP_LINKS } from '../../../tokens';\r\nimport { IAppLinks } from '../../../types';\r\n\r\n@Component({\r\n selector: 'lib-shell-footer',\r\n templateUrl: './shell-footer.component.html'\r\n\r\n})\r\n\r\nexport class ShellFooterComponent {\r\n constructor(@Inject(APP_LINKS) public links: IAppLinks) {\r\n }\r\n}\r\n","<footer class=\"shell-footer-component-container\">\r\n <div class=\"shell-footer-paddings\">\r\n <div class=\"shell-footer-component-container-inner\">\r\n <div class=\"shell-footer-sections-container\">\r\n <div class=\"shell-footer-section\">\r\n <img class=\"shell-footer-logo-h\" src=\"assets/images/branding/indice.png\" alt=\"INDICE logo\" />\r\n <nav class=\"mt-4\">\r\n <ul class=\"space-y-2\">\r\n <ng-container *ngFor=\"let link of links.brand | async\">\r\n <li>\r\n <a [href]=\"link.path\" class=\"shell-footer-link\">{{ link.text }}</a>\r\n </li>\r\n </ng-container>\r\n </ul>\r\n </nav>\r\n </div>\r\n <div class=\"shell-footer-section-links\">\r\n <h5 class=\"shell-footer-section-title\">Legal</h5>\r\n <nav class=\"mt-4\">\r\n <ul class=\"grid lg:grid-cols-2\">\r\n <ng-container *ngFor=\"let link of links.legal | async\">\r\n <li class=\"mb-2\">\r\n <a [href]=\"link.path\" class=\"shell-footer-link\">{{ link.text }}</a>\r\n </li>\r\n </ng-container>\r\n </ul>\r\n </nav>\r\n </div>\r\n <div class=\"shell-footer-section-links\">\r\n <h5 class=\"shell-footer-section-title\">Follow us</h5>\r\n <nav class=\"mt-4\">\r\n <ul class=\"grid lg:grid-cols-2\">\r\n <li class=\"mb-2\">\r\n <a href=\"#\" class=\"shell-footer-social\">\r\n <svg class=\"shell-footer-social-icon\" aria-hidden=\"true\" fill=\"currentColor\" viewBox=\"0 0 24 24\">\r\n <path d=\"M8.29 20.251c7.547 0 11.675-6.253 11.675-11.675 0-.178 0-.355-.012-.53A8.348 8.348 0 0022 5.92a8.19 8.19 0 01-2.357.646 4.118 4.118 0 001.804-2.27 8.224 8.224 0 01-2.605.996 4.107 4.107 0 00-6.993 3.743 11.65 11.65 0 01-8.457-4.287 4.106 4.106 0 001.27 5.477A4.072 4.072 0 012.8 9.713v.052a4.105 4.105 0 003.292 4.022 4.095 4.095 0 01-1.853.07 4.108 4.108 0 003.834 2.85A8.233 8.233 0 012 18.407a11.616 11.616 0 006.29 1.84\"/>\r\n </svg>\r\n <span> Twitter </span>\r\n </a>\r\n </li>\r\n <li class=\"mb-2\">\r\n <a href=\"#\" class=\"shell-footer-social\">\r\n <svg class=\"shell-footer-social-icon\" aria-hidden=\"true\" fill=\"currentColor\" viewBox=\"0 0 24 24\">\r\n <path fill-rule=\"evenodd\" d=\"M12.315 2c2.43 0 2.784.013 3.808.06 1.064.049 1.791.218 2.427.465a4.902 4.902 0 011.772 1.153 4.902 4.902 0 011.153 1.772c.247.636.416 1.363.465 2.427.048 1.067.06 1.407.06 4.123v.08c0 2.643-.012 2.987-.06 4.043-.049 1.064-.218 1.791-.465 2.427a4.902 4.902 0 01-1.153 1.772 4.902 4.902 0 01-1.772 1.153c-.636.247-1.363.416-2.427.465-1.067.048-1.407.06-4.123.06h-.08c-2.643 0-2.987-.012-4.043-.06-1.064-.049-1.791-.218-2.427-.465a4.902 4.902 0 01-1.772-1.153 4.902 4.902 0 01-1.153-1.772c-.247-.636-.416-1.363-.465-2.427-.047-1.024-.06-1.379-.06-3.808v-.63c0-2.43.013-2.784.06-3.808.049-1.064.218-1.791.465-2.427a4.902 4.902 0 011.153-1.772A4.902 4.902 0 015.45 2.525c.636-.247 1.363-.416 2.427-.465C8.901 2.013 9.256 2 11.685 2h.63zm-.081 1.802h-.468c-2.456 0-2.784.011-3.807.058-.975.045-1.504.207-1.857.344-.467.182-.8.398-1.15.748-.35.35-.566.683-.748 1.15-.137.353-.3.882-.344 1.857-.047 1.023-.058 1.351-.058 3.807v.468c0 2.456.011 2.784.058 3.807.045.975.207 1.504.344 1.857.182.466.399.8.748 1.15.35.35.683.566 1.15.748.353.137.882.3 1.857.344 1.054.048 1.37.058 4.041.058h.08c2.597 0 2.917-.01 3.96-.058.976-.045 1.505-.207 1.858-.344.466-.182.8-.398 1.15-.748.35-.35.566-.683.748-1.15.137-.353.3-.882.344-1.857.048-1.055.058-1.37.058-4.041v-.08c0-2.597-.01-2.917-.058-3.96-.045-.976-.207-1.505-.344-1.858a3.097 3.097 0 00-.748-1.15 3.098 3.098 0 00-1.15-.748c-.353-.137-.882-.3-1.857-.344-1.023-.047-1.351-.058-3.807-.058zM12 6.865a5.135 5.135 0 110 10.27 5.135 5.135 0 010-10.27zm0 1.802a3.333 3.333 0 100 6.666 3.333 3.333 0 000-6.666zm5.338-3.205a1.2 1.2 0 110 2.4 1.2 1.2 0 010-2.4z\" clip-rule=\"evenodd\"/>\r\n </svg>\r\n <span> Instagram </span>\r\n </a>\r\n </li>\r\n <li class=\"mb-2\">\r\n <a href=\"#\" class=\"shell-footer-social\">\r\n <svg class=\"shell-footer-social-icon\" aria-hidden=\"true\" fill=\"currentColor\" viewBox=\"0 0 24 24\" >\r\n <path fill-rule=\"evenodd\" d=\"M22 12c0-5.523-4.477-10-10-10S2 6.477 2 12c0 4.991 3.657 9.128 8.438 9.878v-6.987h-2.54V12h2.54V9.797c0-2.506 1.492-3.89 3.777-3.89 1.094 0 2.238.195 2.238.195v2.46h-1.26c-1.243 0-1.63.771-1.63 1.562V12h2.773l-.443 2.89h-2.33v6.988C18.343 21.128 22 16.991 22 12z\" clip-rule=\"evenodd\"/>\r\n </svg>\r\n <span> Facebook </span>\r\n </a>\r\n </li>\r\n </ul>\r\n </nav>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"shell-footer-copyright\">\r\n <!--<nav class=\"flex flex-wrap justify-center space-x-6\">\r\n <a href=\"#\" class=\"font-normal text-sm hover:text-gray-100 mb-2\">Cookie settings</a>\r\n </nav>-->\r\n <p class=\"text-sm text-center sm:text-right\">\r\n © 2021 INDICE. All rights reserved.\r\n </p>\r\n </div>\r\n </div>\r\n</footer>\r\n","import { Component, Input, OnInit } from '@angular/core';\r\n\r\nimport { IShellConfig } from '../../../types';\r\n\r\n@Component({\r\n selector: 'lib-shell-stacked-layout',\r\n templateUrl: './shell-stacked-layout.component.html'\r\n})\r\nexport class ShellStackedLayoutComponent implements OnInit {\r\n constructor() { }\r\n\r\n @Input() config: IShellConfig | undefined;\r\n\r\n public ngOnInit(): void { }\r\n}\r\n","<div class=\"shell-header-container\"\r\n *ngIf=\"config?.showHeader\">\r\n <div [class]=\"config?.fluid ? 'shell-header-container-inner-fluid' : 'shell-header-container-inner'\">\r\n <ng-container *ngIf=\"config?.customHeaderComponent\">\r\n <div appDynamicComponentHost=\"Header\"></div>\r\n </ng-container>\r\n <lib-shell-header *ngIf=\"!config?.customHeaderComponent\"\r\n [show-userName]=\"config?.showUserNameOnHeader\"\r\n [show-alerts]=\"config?.showAlertsOnHeader\"\r\n [show-langs]=\"config?.showLangsOnHeader\">\r\n </lib-shell-header>\r\n </div>\r\n</div>\r\n<main [class]=\"config?.showHeader ? 'shell-content-container' : 'shell-content-container-no-header'\">\r\n <div [class]=\"config?.fluid ? 'shell-content-container-inner-fluid' : 'shell-content-container-inner'\">\r\n <router-outlet *ngIf=\"(!config || config.layout === 'Stacked' || !config.layout)\"></router-outlet>\r\n </div>\r\n</main>\r\n<div class=\"shell-footer-container\"\r\n *ngIf=\"config?.showFooter\">\r\n <div [class]=\"config?.fluid ? 'shell-footer-container-inner-fluid' : 'shell-footer-container-inner'\">\r\n <ng-container *ngIf=\"config?.customFooterComponent\">\r\n <div appDynamicComponentHost\r\n hostName=\"Footer\"></div>\r\n </ng-container>\r\n <lib-shell-footer *ngIf=\"!config?.customFooterComponent\"></lib-shell-footer>\r\n </div>\r\n</div>","import { AfterViewInit, Component, OnInit, OnDestroy, Inject, ViewChildren, QueryList, AfterViewChecked, TemplateRef, Input, ViewChild } from '@angular/core';\r\nimport { ActivationStart, Router } from '@angular/router';\r\n\r\nimport { Subscription } from 'rxjs';\r\nimport { filter } from 'rxjs/operators';\r\nimport { SHELL_CONFIG } from './../../../tokens';\r\nimport { IShellConfig, DefaultShellConfig } from './../../../types';\r\nimport { DynamicComponentHostDirective } from '../../../directives/dynamic-component-host.directive';\r\nimport { ComponentLoaderFactory } from '../../../services/component-loader/component-loader.factory';\r\n\r\n@Component({\r\n selector: 'lib-shell-layout',\r\n templateUrl: './shell-layout.component.html',\r\n})\r\nexport class ShellLayoutComponent implements OnInit, OnDestroy, AfterViewInit, AfterViewChecked {\r\n @ViewChildren(DynamicComponentHostDirective) private _dynamicComponentHosts: QueryList<DynamicComponentHostDirective> | null = null;\r\n private _routerSub$: Subscription | null = null;\r\n\r\n constructor(\r\n private _router: Router,\r\n private _componentLoaderFactory: ComponentLoaderFactory,\r\n @Inject(SHELL_CONFIG) private _config: IShellConfig | undefined\r\n ) {\r\n if (!_config) {\r\n _config = new DefaultShellConfig();\r\n }\r\n this.activeConfig = _config;\r\n }\r\n\r\n @Input() public sidebarFooterTemplate?: TemplateRef<any>;\r\n public showRightPaneSM = false;\r\n public activeConfig: IShellConfig = new DefaultShellConfig();\r\n public loaded = false;\r\n public hideSidebar = false;\r\n\r\n public ngAfterViewChecked(): void {\r\n setTimeout(() => { this.loaded = true; }, 200);\r\n }\r\n\r\n public ngOnInit(): void {\r\n this._routerSub$ = this._router\r\n .events\r\n .pipe(\r\n filter((event) => event instanceof ActivationStart)\r\n ).subscribe((event) => {\r\n if ((event as ActivationStart)?.snapshot) {\r\n if ((event as ActivationStart)?.snapshot?.data) {\r\n if ((event as ActivationStart)?.snapshot?.data.shell) {\r\n this.activeConfig = (event as ActivationStart)?.snapshot.data.shell as IShellConfig;\r\n if (this.activeConfig.customHeaderComponent) {\r\n this.initCustomComponents();\r\n }\r\n } else {\r\n this.activeConfig = this._config ? this._config : new DefaultShellConfig();\r\n }\r\n }\r\n }\r\n });\r\n }\r\n\r\n public ngAfterViewInit(): void {\r\n this.initCustomComponents();\r\n }\r\n\r\n private initCustomComponents(): void {\r\n if (this._dynamicComponentHosts && this._dynamicComponentHosts.length > 0) {\r\n this.loadCustomComponent(this._dynamicComponentHosts.find((_) => _.hostName === 'Header'));\r\n }\r\n }\r\n\r\n public ngOnDestroy(): void {\r\n if (this._routerSub$) {\r\n this._routerSub$.unsubscribe();\r\n }\r\n }\r\n\r\n private loadCustomComponent(host: DynamicComponentHostDirective | undefined): void {\r\n if (host) {\r\n const viewContainerRef = host.viewContainerRef;\r\n if (viewContainerRef && this.activeConfig.customHeaderComponent) {\r\n const clf = this._componentLoaderFactory.createLoader(viewContainerRef);\r\n clf.attach(this.activeConfig.customHeaderComponent).to(viewContainerRef.element).show();\r\n }\r\n }\r\n }\r\n}\r\n","<div [class.hidden]=\"!loaded\"\r\n [class.block]=\"loaded\">\r\n <!-- STACKED LAYOUT -->\r\n <div *ngIf=\"(activeConfig.layout === 'Stacked' || !activeConfig.layout)\"\r\n class=\"shell-container active-side-pane\">\r\n <lib-shell-stacked-layout [config]=\"activeConfig\"></lib-shell-stacked-layout>\r\n </div>\r\n <!-- SIDEBAR LAYOUT -->\r\n <div *ngIf=\"activeConfig.layout === 'Sidebar'\"\r\n class=\"sidebar shell-container active-side-pane\">\r\n <lib-shell-sidebar-layout [config]=\"activeConfig\"\r\n [sidebarFooterTemplate]=\"sidebarFooterTemplate\">\r\n </lib-shell-sidebar-layout>\r\n </div>\r\n <lib-side-pane #rightPane>\r\n <router-outlet name=\"rightpane\"\r\n (activate)=\"rightPane.onSidePaneActivated($event)\"\r\n (deactivate)=\"rightPane.onSidePaneDeactivated($event)\">\r\n </router-outlet>\r\n </lib-side-pane>\r\n <lib-toaster-container></lib-toaster-container>\r\n</div>","import { SwitchViewAction } from '../../../types';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { Component, Input, OnInit, Output, EventEmitter, ViewChild, ElementRef } from '@angular/core';\r\nimport { fromEvent } from 'rxjs';\r\nimport { debounceTime, distinctUntilChanged, filter, map } from 'rxjs/operators';\r\nimport { HeaderMetaItem, RouterViewAction, ViewAction } from '../../../types';\r\n\r\n@Component({\r\n selector: 'lib-view-layout',\r\n templateUrl: './view-layout.component.html'\r\n})\r\nexport class ViewLayoutComponent implements OnInit {\r\n // tslint:disable-next-line:no-input-rename\r\n @ViewChild('search') private searchInput$?: ElementRef;\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('show-header') header = true;\r\n @Input() fluid = false;\r\n @Input() title = 'no title';\r\n @Input() icon: string | null = null;\r\n @Input() actions: ViewAction[] | null = null;\r\n @Input() busy = false;\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('search-placeholder') searchPlaceholder: string | null = 'αναζήτηση';\r\n @Input() view: string | null = null;\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('meta-items') metaItems: HeaderMetaItem[] | null = [];\r\n // tslint:disable-next-line:no-output-on-prefix\r\n @Output() onAction: EventEmitter<ViewAction> = new EventEmitter<ViewAction>();\r\n // tslint:disable-next-line:no-output-on-prefix\r\n @Output() onSearch: EventEmitter<string> = new EventEmitter<string>();\r\n\r\n constructor(private route$: ActivatedRoute, private router$: Router) { }\r\n\r\n ngOnInit(): void {\r\n if (this.searchInput$?.nativeElement){\r\n fromEvent(this.searchInput$.nativeElement, 'keyup').pipe(\r\n map((event: any) => {\r\n return event.target.value; // Get input value.\r\n }),\r\n filter(inputValue => inputValue.length >= 3 || inputValue.length === 0),\r\n // If character length greater than minimumSearchCharacters setting.\r\n debounceTime(1000), // Time in milliseconds between key events.\r\n distinctUntilChanged() // If previous query is different from current.\r\n ).subscribe();\r\n }\r\n }\r\n\r\n public emitActionClick(action: ViewAction): void {\r\n this.onAction.emit(action);\r\n }\r\n\r\n public routerLinkActionClick(action: RouterViewAction | any): void {\r\n // console.log('routerLinkActionClick', action);\r\n if (action.outlet) {\r\n this.router$.navigate(['', { outlets: { rightpane: action.link } }]);\r\n } else {\r\n this.router$.navigate([action.link]);\r\n }\r\n }\r\n\r\n searchActionClick(action: ViewAction, text: string): void {\r\n this.onSearch.emit(text);\r\n }\r\n\r\n searchActionType(text: string): void {\r\n this.onSearch.emit(this.searchInput$?.nativeElement.value);\r\n }\r\n\r\n public handleClear(event: any): void {\r\n console.log('handle clear!!!');\r\n event.stopPropagation();\r\n this.onSearch.emit(event.target?.value);\r\n }\r\n\r\n public switchViewActionClick(action: SwitchViewAction | any): void {\r\n // console.log('switchViewActionClick', action);\r\n this.view = action.param;\r\n if (action && action.param) {\r\n this.router$.navigate([], { queryParams: { view: action.param }, queryParamsHandling: 'merge', skipLocationChange: false });\r\n }\r\n }\r\n}\r\n","<header *ngIf=\"header\" class=\"view-layout-paddings\">\r\n <div class=\"view-layout-title-container\">\r\n <div class=\"view-layout-title-container-inner\">\r\n <div class=\"flex items-center\">\r\n <i *ngIf=\"icon\" [class]=\"icon + ' title-icon'\" aria-hidden=\"true\"></i>\r\n <h1 [class]=\"busy ? 'view-layout-title-busy' : 'view-layout-title'\">{{title}}</h1>\r\n </div>\r\n <div *ngIf=\"metaItems && metaItems.length > 0\" class=\"meta-container\">\r\n <ng-container *ngFor=\"let meta of metaItems\">\r\n <div class=\"meta-item-container\">\r\n <i *ngIf=\"meta.icon\" [class]=\"meta.icon + ' meta-icon'\" aria-hidden=\"true\"></i>\r\n <span class=\"meta-text\">{{meta.text}}</span>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n <div class=\"view-layout-title-container-far\">\r\n <ng-container *ngFor=\"let action of actions\" [ngSwitch]=\"action.type\">\r\n\r\n <ng-container *ngSwitchCase=\"'search'\">\r\n <label for=\"search\" class=\"sr-only\">Search</label>\r\n <div class=\"search-container mr-1\">\r\n <input id=\"text\"\r\n #search\r\n title=\"search\"\r\n class=\"search-input\"\r\n [placeholder]=\"searchPlaceholder\"\r\n name=\"search\"\r\n (input)=\"searchActionType(search.value)\"\r\n (onsearch)=\"handleClear($event)\">\r\n <button type=\"button\"\r\n href=\"#\"\r\n class=\"search-button\"\r\n [title]=\"action.tooltip\"\r\n (click)=\"searchActionClick(action, search.value)\">\r\n <i [class]=\"action.icon\"></i>\r\n </button>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'switch-view'\">\r\n <button [disabled]=\"view === action.param\"\r\n type=\"button\"\r\n href=\"#\"\r\n class=\"p-2 disabled:opacity-75 btn-view-header\"\r\n (click)=\"switchViewActionClick(action)\">\r\n <span class=\"inline-block relative\">\r\n <i [class]=\"action.icon\"></i>\r\n <span *ngIf=\"view === action.param\"\r\n class=\"selected-view-indicator\">\r\n </span>\r\n </span>\r\n </button>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'router-link'\">\r\n <button type=\"button\"\r\n href=\"#\"\r\n class=\"p-2 btn-view-header\"\r\n [title]=\"action.tooltip\"\r\n (click)=\"routerLinkActionClick(action)\">\r\n <i [class]=\"action.icon\"\r\n [ngClass]=\"{'pr-1': action.text}\"></i>\r\n {{ action.text }}\r\n </button>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchDefault>\r\n <button type=\"button\"\r\n class=\"p-2 btn-view-header\"\r\n [title]=\"action.tooltip\"\r\n (click)=\"emitActionClick(action)\">\r\n <i [class]=\"action.icon\"\r\n [ngClass]=\"{'pr-1': action.text}\"></i>\r\n {{ action.text }}\r\n </button>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n </div>\r\n</header>\r\n<div [class]=\"fluid ? 'view-container-fluid' : 'view-container'\">\r\n <ng-content></ng-content>\r\n</div>","import { Component, Input, OnDestroy, OnInit } from '@angular/core';\r\nimport { Location } from '@angular/common';\r\nimport { HeaderMetaItem, MenuOption, ViewAction } from '../../../types';\r\nimport { ActivatedRoute, NavigationEnd, NavigationStart, Router } from '@angular/router';\r\nimport { Subscription } from 'rxjs';\r\n\r\n@Component({\r\n // tslint:disable-next-line:component-selector\r\n selector: 'lib-model-view-layout',\r\n templateUrl: './model-view-layout.component.html'\r\n})\r\nexport class ModelViewLayoutComponent implements OnInit, OnDestroy {\r\n public showRightPaneSM = false;\r\n @Input() title = 'no title';\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('primary-links') primary: { text: string, link: string, icon?: string, exact? : boolean }[] | null = null;\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('secondary-links') secondary: { text: string, link: string, icon?: string, exact? : boolean }[] | null = null;\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('meta-items') metaItems: HeaderMetaItem[] | null = [\r\n // { key: 'test', icon: Icons.Badges, text: 'βρέθηκαν 200 αποτελέσματα' }\r\n ];\r\n @Input() icon: string | null = null;\r\n @Input() busy = false;\r\n @Input() actions: ViewAction[] | null = null;\r\n private optionsLoaded = false;\r\n private _options: MenuOption[] = [];\r\n public selectedTab: any;\r\n private selectedTabSub$: Subscription | undefined;\r\n public get tabsOptions(): MenuOption[] {\r\n if(!this.optionsLoaded) {\r\n this.optionsLoaded = true;\r\n if(this.primary) {\r\n this.primary.forEach(p => {\r\n this._options.push(new MenuOption(p.text, p.link, undefined, undefined, p.icon));\r\n });\r\n }\r\n\r\n if(this.secondary) {\r\n this.secondary.forEach(p => {\r\n this._options.push(new MenuOption(p.text, p.link, undefined, undefined, p.icon));\r\n });\r\n }\r\n this.selectedTab = this._options[0].value; \r\n }\r\n return this._options;\r\n }\r\n constructor( private location: Location, private router: Router, private route: ActivatedRoute) { }\r\n \r\n ngOnInit(): void {\r\n this.selectedTabSub$ = this.router.events.subscribe(event => {\r\n if(event instanceof NavigationEnd ) {\r\n if(event.urlAfterRedirects) {\r\n var urlParts = event.urlAfterRedirects.split('/');\r\n if(urlParts && urlParts.length > 0) {\r\n const lastPart = urlParts[urlParts.length-1];\r\n this.selectedTab = lastPart.split('?')[0];\r\n }\r\n }\r\n }\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if(this.selectedTabSub$) {\r\n this.selectedTabSub$.unsubscribe();\r\n }\r\n }\r\n\r\n\r\n public onSidePaneActivated($event: any): void {\r\n this.showRightPaneSM = true;\r\n }\r\n\r\n public onSidePaneDeactivated($event: any): void {\r\n this.showRightPaneSM = false;\r\n }\r\n\r\n public closeSidePane(): void {\r\n this.location.back();\r\n }\r\n\r\n public navigateLink(link: any): void {\r\n this.router.navigate([link], {relativeTo: this.route});\r\n }\r\n}\r\n","<lib-view-layout [title]=\"title\" [meta-items]=\"metaItems\" [actions]=\"actions\" [icon]=\"icon\" [busy]=\"busy\">\r\n <main class=\"model-view-container\">\r\n <div class=\"model-view-container-inner\">\r\n <aside class=\"model-view-aside\">\r\n <section aria-labelledby=\"menu\" class=\"details-view-aside-header-section\">\r\n <div class=\"model-view-aside-header-container\">\r\n <div class=\"model-view-aside-header-container-inner\">\r\n <ng-content *ngIf=\"!busy\"></ng-content>\r\n <div *ngIf=\"busy\" class=\"max-w-64 animate-pulse flex space-x-4\">\r\n <div class=\"rounded-full bg-slate-700 h-10 w-10\"></div>\r\n <div class=\"flex-1 space-y-6 py-1\">\r\n <div class=\"h-2 bg-slate-700 rounded\"></div>\r\n <div class=\"space-y-3\">\r\n <div class=\"grid grid-cols-3 gap-4\">\r\n <div class=\"h-2 bg-slate-700 rounded col-span-2\"></div>\r\n <div class=\"h-2 bg-slate-700 rounded col-span-1\"></div>\r\n </div>\r\n <div class=\"h-2 bg-slate-700 rounded\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <!-- menu items -->\r\n <div class=\"model-view-menu-container-mobile\">\r\n <lib-drop-down-menu [options]=\"tabsOptions\" [selected]=\"selectedTab\" (selectedChange)=\"navigateLink($event)\"></lib-drop-down-menu>\r\n </div>\r\n <div class=\"model-view-menu-container\">\r\n <nav class=\"model-view-menu-nav\">\r\n <div class=\"model-view-menu-item\">\r\n <ng-container *ngFor=\"let section of primary\">\r\n <a href=\"#\"\r\n [routerLinkActive]=\"['view-nav-link-active']\"\r\n [routerLink]=\"section.link\"\r\n [routerLinkActiveOptions]=\"{ exact: false }\"\r\n class=\"view-nav-link\">\r\n <i *ngIf=\"section.icon\" [class]=\"section.icon + ' mr-2'\"></i>\r\n {{section.text}}\r\n </a>\r\n </ng-container>\r\n </div>\r\n <div class=\"model-view-menu-item-far\">\r\n <ng-container *ngFor=\"let section of secondary\">\r\n <a href=\"#\"\r\n [routerLinkActive]=\"['view-nav-link-active']\"\r\n [routerLink]=\"section.link\"\r\n [routerLinkActiveOptions]=\"{ exact: false }\"\r\n class=\"view-nav-link\">\r\n <i *ngIf=\"section.icon\" [class]=\"section.icon + ' mr-2'\"></i>\r\n {{section.text}}\r\n </a>\r\n </ng-container>\r\n </div>\r\n </nav>\r\n </div>\r\n </div>\r\n </section>\r\n </aside>\r\n <div class=\"model-view-details-container\">\r\n <router-outlet></router-outlet>\r\n </div>\r\n </div>\r\n </main>\r\n","import { Router } from '@angular/router';\r\nimport { Component, Input, OnInit, Output, EventEmitter } from '@angular/core';\r\nimport { Location } from '@angular/common';\r\n\r\n@Component({\r\n selector: 'lib-side-view-layout',\r\n templateUrl: './side-view-layout.component.html'\r\n})\r\nexport class SideViewLayoutComponent implements OnInit {\r\n @Input() title: string | null = 'Πληροφορίες';\r\n @Input() showActions = true;\r\n @Input() disabled = false;\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('return-path') returnPath: string | undefined;\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('ok-label') okLabel = 'Αποθήκευση';\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('ok-show') okShow = true;\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('ok-close-dialog') closeOnOk = true;\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('cancel-label') cancelLabel = 'Ακύρωση';\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('cancel-show') cancelShow = true;\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('force-location-back') forceLocationBack = false;\r\n @Input('redirect-on-close') redirectOnClose = true;\r\n // @Output() close = new EventEmitter<any>();\r\n @Output() cancel: EventEmitter<boolean> = new EventEmitter();\r\n @Output() ok: EventEmitter<boolean> = new EventEmitter();\r\n\r\n constructor(private location: Location, private router: Router) { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n public closeSidePane(): void {\r\n if (this.returnPath) {\r\n this.router.navigateByUrl('/', { skipLocationChange: true }).then(() => this.router.navigateByUrl(this.returnPath || '/'));\r\n } else {\r\n if ((this.router.url.split('/(')[0] !== this.router.url) && !this.forceLocationBack) {\r\n this.router.navigateByUrl(this.router.url.split('/(')[0]);\r\n } else if ((this.router.url.split('(')[0] !== this.router.url) && !this.forceLocationBack) {\r\n this.router.navigateByUrl(this.router.url.split('(')[0]);\r\n } else {\r\n this.location.back();\r\n }\r\n }\r\n }\r\n\r\n public emitClose(): void {\r\n this.cancel.emit(false);\r\n if(this.redirectOnClose) {\r\n this.closeSidePane();\r\n }\r\n }\r\n\r\n public emitCancel(): void {\r\n this.cancel.emit(false);\r\n if(this.redirectOnClose) {\r\n this.closeSidePane();\r\n }\r\n }\r\n\r\n public emitOK(): void {\r\n this.ok.emit(true);\r\n if (this.closeOnOk && this.redirectOnClose) {\r\n this.closeSidePane();\r\n }\r\n }\r\n\r\n}\r\n","<div class=\"side-view-layout-size-box\">\r\n <div class=\"side-view-layout-container\">\r\n <div class=\"side-view-layout-container-inner\">\r\n <div class=\"side-view-layout-header-margins\">\r\n <div class=\"side-view-layout-header-container\">\r\n <h2 class=\"side-view-layout-header-title\" id=\"slide-over-title\">\r\n {{title}}\r\n </h2>\r\n <div class=\"side-view-layout-close-button-container\">\r\n <button (click)=\"emitClose()\" class=\"side-view-layout-close-button\">\r\n <span class=\"sr-only\">Close panel</span>\r\n <!-- Heroicon name: outline/x -->\r\n <svg class=\"side-view-layout-close-button-icon\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" aria-hidden=\"true\">\r\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M6 18L18 6M6 6l12 12\" />\r\n </svg>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"side-view-layout-content-container\">\r\n <!-- Replace with your content -->\r\n <ng-content></ng-content>\r\n <!-- /End replace -->\r\n </div>\r\n </div>\r\n <div *ngIf=\"showActions\" class=\"side-view-layout-actions-container\">\r\n <button *ngIf=\"cancelShow\" (click)=\"emitCancel()\" type=\"button\" class=\"side-view-layout-action-button-cancel\">\r\n {{cancelLabel}}\r\n </button>\r\n <button *ngIf=\"okShow\" (click)=\"emitOK()\" class=\"side-view-layout-action-button-submit\" [disabled]=\"disabled\">\r\n {{okLabel}}\r\n </button>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n","import { Component, ElementRef, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { fromEvent } from 'rxjs';\r\nimport { map, filter, debounceTime, distinctUntilChanged } from 'rxjs/operators';\r\nimport { RouterViewAction, ViewAction } from '../../../types';\r\n\r\n@Component({\r\n selector: 'lib-form-layout',\r\n templateUrl: './form-layout.component.html'\r\n})\r\nexport class FormLayoutComponent implements OnInit {\r\n // tslint:disable-next-line:no-input-rename\r\n @ViewChild('search') private searchInput$?: ElementRef;\r\n @Input() title: string | null = null;\r\n @Input() image: string | null = null;\r\n @Input() icon: string | null = null;\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('search-placeholder') searchPlaceholder: string | null = 'αναζήτηση'\r\n @Input() actions: ViewAction[] | null = null;\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('sub-title') subTitle: string | null = null;\r\n // tslint:disable-next-line:no-output-on-prefix\r\n @Output() onAction: EventEmitter<ViewAction> = new EventEmitter<ViewAction>();\r\n // tslint:disable-next-line:no-output-on-prefix\r\n @Output() onSearch: EventEmitter<string> = new EventEmitter<string>();\r\n @Output() onComplete: EventEmitter<boolean> = new EventEmitter<boolean>();\r\n\r\n constructor(private router$: Router) { }\r\n\r\n ngOnInit(): void {\r\n if (this.searchInput$?.nativeElement){\r\n fromEvent(this.searchInput$.nativeElement, 'keyup').pipe(\r\n map((event: any) => {\r\n return event.target.value; // Get input value.\r\n }),\r\n filter(inputValue => inputValue.length >= 3 || inputValue.length === 0),\r\n // If character length greater than minimumSearchCharacters setting.\r\n debounceTime(1000), // Time in milliseconds between key events.\r\n distinctUntilChanged() // If previous query is different from current.\r\n ).subscribe();\r\n }\r\n }\r\n\r\n public onSidePaneDeactivated($event: any): void {\r\n this.onComplete.emit(true);\r\n }\r\n\r\n public emitActionClick(action: ViewAction): void {\r\n this.onAction.emit(action);\r\n }\r\n\r\n searchActionClick(action: ViewAction, text: string): void {\r\n this.onSearch.emit(text);\r\n }\r\n\r\n searchActionType(text: string): void {\r\n this.onSearch.emit(this.searchInput$?.nativeElement.value);\r\n }\r\n\r\n public routerLinkActionClick(action: RouterViewAction | any, relative: boolean = false): void {\r\n if (action.outlet) {\r\n this.router$.navigate(['', { outlets: { formRightPane: action.link } }]);\r\n } else {\r\n this.router$.navigate([action.link]);\r\n }\r\n }\r\n\r\n}\r\n","<div class=\"form-layout-container\">\r\n <div class=\"form-header\" *ngIf=\"title || subTitle || actions\">\r\n <div class=\"flex\">\r\n <div class=\"mr-4 flex-shrink-0\" *ngIf=\"image\">\r\n <img alt=\"form tab image\" class=\"form-header-image\" [src]=\"image\">\r\n </div>\r\n <div class=\"mr-4 flex-shrink-0\" *ngIf=\"icon\">\r\n <i [class]=\"icon\" class=\"form-header-icon\"></i>\r\n </div>\r\n <div class=\"form-header-inner\">\r\n <h3 class=\"form-title\">{{ title }}</h3>\r\n <p class=\"form-subtitle\">{{ subTitle }}</p>\r\n </div>\r\n </div>\r\n \r\n <div class=\"form-header-actions\">\r\n <ng-container *ngFor=\"let action of actions\" [ngSwitch]=\"action.type\">\r\n <ng-container *ngSwitchCase=\"'search'\">\r\n <label for=\"search\" class=\"sr-only\">Search</label>\r\n <div class=\"search-container\">\r\n <div class=\"pointer-events-none absolute inset-y-0 left-0 pl-3 flex items-center\">\r\n <!--<svg class=\"h-5 w-5\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\">\r\n <path fill-rule=\"evenodd\" d=\"M8 4a4 4 0 100 8 4 4 0 000-8zM2 8a6 6 0 1110.89 3.476l4.817 4.817a1 1 0 01-1.414 1.414l-4.816-4.816A6 6 0 012 8z\" clip-rule=\"evenodd\" />\r\n </svg>-->\r\n </div>\r\n <input id=\"search\"\r\n #search\r\n class=\"form-search-input\"\r\n [placeholder]=\"searchPlaceholder\"\r\n type=\"search\"\r\n name=\"search\"\r\n (input)=\"searchActionType(search.value)\">\r\n </div>\r\n <button type=\"button\"\r\n href=\"#\"\r\n class=\"btn-form-view-header-search\"\r\n [title]=\"action.tooltip\"\r\n (click)=\"searchActionClick(action, search.value)\">\r\n <i [class]=\"action.icon\"></i>\r\n </button>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'router-link'\">\r\n <button type=\"button\"\r\n href=\"#\"\r\n class=\"ml-1 btn-form-view-header\"\r\n [title]=\"action.tooltip\"\r\n (click)=\"routerLinkActionClick(action)\">\r\n <i [class]=\"action.icon\"></i>\r\n </button>\r\n </ng-container>\r\n <ng-container *ngSwitchDefault>\r\n <button type=\"button\"\r\n class=\"ml-1 btn-form-view-header\"\r\n [title]=\"action.tooltip\"\r\n (click)=\"emitActionClick(action)\">\r\n <i [class]=\"action.icon\"></i>\r\n </button>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n </div>\r\n <div class=\"form-content-container\">\r\n <div [ngClass]=\"{'form-content-container-inner': actions}\">\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n <lib-side-pane #formPane (onComplete)=\"onSidePaneDeactivated($event)\">\r\n <router-outlet name=\"formRightPane\"\r\n (activate)=\"formPane.onSidePaneActivated($event)\"\r\n (deactivate)=\"formPane.onSidePaneDeactivated($event)\"></router-outlet>\r\n </lib-side-pane>\r\n</div>\r\n","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\n\r\nimport { AuthService } from '@indice/ng-auth';\r\n\r\n@Component({\r\n selector: 'lib-auth-callback',\r\n templateUrl: './auth-callback.component.html'\r\n})\r\nexport class AuthCallbackComponent implements OnInit {\r\n constructor(@Inject(AuthService) private authService: AuthService, private router: Router) { }\r\n\r\n public status = 'παρακαλώ περιμένετε...';\r\n\r\n public ngOnInit(): void {\r\n this.authService.signinRedirectCallback().subscribe((user) => {\r\n if (user) {\r\n this.router.navigateByUrl((user.state as any)?.url || '/');\r\n }\r\n });\r\n }\r\n}\r\n","<lib-view-layout [title]=\"status\" [busy]=\"true\"></lib-view-layout>","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\n\r\nimport { AuthService } from '@indice/ng-auth';\r\n\r\n@Component({\r\n selector: 'lib-auth-renew',\r\n template: ''\r\n})\r\nexport class AuthRenewComponent implements OnInit {\r\n constructor(@Inject(AuthService) private authService: AuthService, private router: Router) { }\r\n\r\n public ngOnInit(): void {\r\n this.authService.signinSilentCallback().subscribe(user => {\r\n if (!user) {\r\n this.router.navigate(['/unauthorized']);\r\n }\r\n });\r\n }\r\n}\r\n","import { AuthService } from '@indice/ng-auth';\r\nimport { Component, Inject, OnInit } from '@angular/core';\r\n\r\n\r\n@Component({\r\n // tslint:disable-next-line:component-selector\r\n selector: 'lib-logged-out',\r\n templateUrl: './logged-out.component.html'\r\n})\r\nexport class LoggedOutComponent implements OnInit {\r\n constructor(@Inject(AuthService) private authService: AuthService) { }\r\n\r\n public status = 'working on it, please give me a sec...';\r\n public finished = false;\r\n\r\n public ngOnInit(): void {\r\n this.authService.removeUser().subscribe(() => {\r\n this.status = 'Thank you!';\r\n this.finished = true;\r\n });\r\n }\r\n}\r\n","<lib-view-layout title=\"Έχετε αποσυνδεθεί με επιτυχία!\"></lib-view-layout>","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-error',\r\n templateUrl: './error.component.html'\r\n})\r\nexport class ErrorComponent implements OnInit {\r\n public error = 'Error!';\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","<lib-view-layout [show-header]=\"false\" title=\"500 - παρουσιάστηκε σφάλμα!\">\r\n <div class=\"bg-gray-600 view-container\">\r\n <div class=\"max-w-2xl mx-auto text-center py-16 px-4 sm:py-20 sm:px-6 lg:px-8\">\r\n <h2 class=\"text-3xl font-extrabold text-white sm:text-4xl\">\r\n <span class=\"block\">500</span>\r\n </h2>\r\n <p class=\"mt-4 text-lg leading-6 text-gray-200\">σφάλμα, κατι δεν πήγε καλά...!</p>\r\n <a href=\"/\" class=\"mt-8 inline-flex items-center justify-center px-5 py-3 border border-transparent text-base font-sm rounded-sm text-gray-600 bg-white hover:bg-gray-50 sm:w-auto\">\r\n πατήστε εδώ για να επιστρέψετε\r\n </a>\r\n </div>\r\n </div>\r\n</lib-view-layout>\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-page-not-found',\r\n templateUrl: './page-not-found.component.html'\r\n})\r\nexport class PageNotFoundComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","<lib-view-layout [show-header]=\"false\" title=\"404 - δεν βρέθηκε!\">\r\n <div class=\"text-gray-900\">\r\n <div class=\"max-w-4xl mx-auto text-center py-16 px-4 sm:py-20 sm:px-6 lg:px-8\">\r\n <h2 class=\"text-3xl font-extrabold sm:text-4xl\">\r\n <span class=\"block\">404</span>\r\n </h2>\r\n <p class=\"mt-4 text-lg leading-6 text-gray-800\">δεν βρέθηκε η σελίδα που ζητήσατε!</p>\r\n <a href=\"/\"\r\n class=\"mt-8 inline-flex items-center justify-center px-5 py-3 border border-transparent text-base font-sm rounded-sm text-gray-600 bg-white hover:bg-gray-50 sm:w-auto\">\r\n πατήστε εδώ για να επιστρέψετε\r\n </a>\r\n </div>\r\n </div>\r\n</lib-view-layout>\r\n","import { Component, Inject, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-unauthorized',\r\n templateUrl: './unauthorized.component.html'\r\n})\r\nexport class UnauthorizedComponent implements OnInit {\r\n constructor() { }\r\n\r\n public ngOnInit(): void { }\r\n}\r\n","<lib-view-layout [show-header]=\"false\" title=\"401 - δεν επιτρέπεται η πρόσβαση!\">\r\n <div class=\"bg-gray-600 view-container\">\r\n <div class=\"max-w-2xl mx-auto text-center py-16 px-4 sm:py-20 sm:px-6 lg:px-8\">\r\n <h2 class=\"text-3xl font-extrabold text-white sm:text-4xl\">\r\n <span class=\"block\">401</span>\r\n </h2>\r\n <p class=\"mt-4 text-lg leading-6 text-gray-200\">δεν έχετε τα κατάλληλα δικαιώματα πρόσβασης!</p>\r\n <a href=\"/\" class=\"mt-8 inline-flex items-center justify-center px-5 py-3 border border-transparent text-base font-sm rounded-sm text-gray-600 bg-white hover:bg-gray-50 sm:w-auto\">\r\n πατήστε εδώ για να επιστρέψετε\r\n </a>\r\n </div>\r\n </div>\r\n </lib-view-layout>\r\n\r\n\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { IAddress } from '../types';\r\n\r\n@Pipe({\r\n name: 'address',\r\n pure: false\r\n})\r\nexport class AddressPipe implements PipeTransform {\r\n\r\n transform(value: IAddress | undefined): string {\r\n if (value === undefined || null || '') {\r\n return '';\r\n }\r\n // tslint:disable-next-line:no-non-null-assertion\r\n return `${value.street || ''}${value.streetNumber ? ' ' + value.streetNumber : ''}${value.city ? ', ' + value.city : ''}${+value.postalCode! ? ', ' + +value.postalCode! : ''}`;\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'durationFormat',\r\n pure: false\r\n})\r\nexport class DurationFormatPipe implements PipeTransform {\r\n\r\n transform(value: any, arg1: any, arg2: any): string {\r\n\r\n let days: any;\r\n let seconds: any;\r\n let minutes: any;\r\n let hours: any;\r\n\r\n if (arg1 === 'ms' && arg2 === 'hhmmss') {\r\n seconds = Math.floor((value / 1000) % 60);\r\n minutes = Math.floor(((value / (1000 * 60)) % 60));\r\n hours = Math.floor((value / (1000 * 60 * 60)));\r\n return this.format(arg2, seconds, minutes, hours, days);\r\n\r\n } else if (arg1 === 's' && arg2 === 'hhmmss') {\r\n seconds = Math.floor((value % 60));\r\n minutes = Math.floor(((value / 60) % 60));\r\n hours = Math.floor(((value / 60) / 60));\r\n return this.format(arg2, seconds, minutes, hours, days);\r\n\r\n } else if (arg1 === 'ms' && (arg2 === 'ddhhmmss' || arg2 === 'ddhhmmssLong')) {\r\n seconds = Math.floor(((value / 1000) % 60));\r\n minutes = Math.floor((value / (1000 * 60) % 60));\r\n hours = Math.floor((value / (1000 * 60 * 60) % 24));\r\n days = Math.floor((value / (1000 * 60 * 60 * 24)));\r\n return this.format(arg2, seconds, minutes, hours, days);\r\n\r\n } else if (arg1 === 's' && (arg2 === 'ddhhmmss' || arg2 === 'ddhhmmssLong')) {\r\n seconds = Math.floor(value % 60);\r\n minutes = Math.floor(((value / 60) % 60));\r\n hours = Math.floor(((value / 60) / 60) % 24);\r\n days = Math.floor((((value / 60) / 60) / 24));\r\n return this.format(arg2, seconds, minutes, hours, days);\r\n\r\n }\r\n else {\r\n return value;\r\n }\r\n }\r\n\r\n private format(arg2: string, seconds: any, minutes: any, hours: any, days: any): any {\r\n (days < 10) ? days = '0' + days : days;\r\n (hours < 10) ? hours = '0' + hours : hours;\r\n (minutes < 10) ? minutes = '0' + minutes : minutes;\r\n (seconds < 10) ? seconds = '0' + seconds : seconds;\r\n\r\n switch (arg2) {\r\n case 'hhmmss':\r\n return `${hours}:${minutes}:${seconds}`;\r\n\r\n case 'ddhhmmss':\r\n return `${days}d, ${hours}h, ${minutes}m, ${seconds}s`;\r\n\r\n case 'ddhhmmssLong':\r\n return `${days} days, ${hours} hours, ${minutes} minutes, ${seconds} seconds`;\r\n }\r\n return undefined;\r\n }\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'shortNumber',\r\n pure: false\r\n })\r\nexport class ShortNumberPipe implements PipeTransform {\r\n\r\n transform(number: number, args?: any): any {\r\n if (isNaN(number)) return null; // will only work value is a number\r\n if (number === null) return null;\r\n if (number === 0) return null;\r\n let abs = Math.abs(number);\r\n const rounder = Math.pow(10, 1);\r\n const isNegative = number < 0; // will also work for Negative numbers\r\n let key = '';\r\n\r\n const powers = [\r\n {key: 'Q', value: Math.pow(10, 15)},\r\n {key: 'T', value: Math.pow(10, 12)},\r\n {key: 'B', value: Math.pow(10, 9)},\r\n {key: 'M', value: Math.pow(10, 6)},\r\n {key: 'K', value: 1000}\r\n ];\r\n\r\n for (let i = 0; i < powers.length; i++) {\r\n let reduced = abs / powers[i].value;\r\n reduced = Math.round(reduced * rounder) / rounder;\r\n if (reduced >= 1) {\r\n abs = reduced;\r\n key = powers[i].key;\r\n break;\r\n }\r\n }\r\n return (isNegative ? '-' : '') + abs + key;\r\n }\r\n}","import { FilterClause, QueryParameters, SearchOption } from './../controls/advanced-search/models';\r\nimport { Observable, Subscription, of } from 'rxjs';\r\nimport { Component, OnInit, OnDestroy } from '@angular/core';\r\nimport { ActivatedRoute, ParamMap, Router } from '@angular/router';\r\nimport { HeaderMetaItem, IResultSet, MenuOption, RouterViewAction, ViewAction, ListViewType } from '../types';\r\nimport { Icons } from '../icons';\r\n\r\n@Component({ template: '' })\r\nexport abstract class BaseListComponent<T> implements OnInit, OnDestroy {\r\n public items: T[] | null | undefined = null;\r\n public view: string = ListViewType.Tiles;\r\n public title: string | null = null;\r\n public actions: ViewAction[] = [];\r\n public loaderItems: any[] = [1, 2, 3, 4, 5];\r\n public page = 1;\r\n public pageSize = 20;\r\n public count = 0;\r\n public sort: string | null = '';\r\n public sortdir: string | null = '';\r\n public search: string | null = '';\r\n public filters: FilterClause[] = [];\r\n public searchOptions: SearchOption[] = [];\r\n public sortOptions: MenuOption[] = [];\r\n public metaItems: HeaderMetaItem[] = [];\r\n public abstract newItemLink: string | null;\r\n private routeSub$: Subscription | undefined;\r\n private loadSub$: Subscription | undefined;\r\n\r\n constructor(private route$: ActivatedRoute, private router$: Router) {\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.routeSub$) {\r\n this.routeSub$.unsubscribe();\r\n }\r\n if(this.loadSub$) {\r\n this.loadSub$.unsubscribe();\r\n }\r\n }\r\n\r\n public getViewActions(): Observable<ViewAction[]> {\r\n const actions = [\r\n new ViewAction('search', null, null, Icons.Search, 'αναζήτηση'),\r\n new ViewAction('refresh', null, null, Icons.Refresh, 'ανανέωση στοιχείων')\r\n ];\r\n if (this.newItemLink) {\r\n actions.push(new RouterViewAction(Icons.Add, this.newItemLink, 'rightpane', 'προσθήκη νέας εγγραφής;'));\r\n }\r\n return of(actions);\r\n }\r\n\r\n ngOnInit(): void {\r\n this.getViewActions().subscribe(actions => {\r\n this.actions = actions || [];\r\n });\r\n\r\n this.metaItems = [\r\n { key: 'count', icon: Icons.ItemsCount, text: 'παρακαλώ περιμένετε...' }\r\n ];\r\n\r\n // disabled external route changes monitoring due to sync issues - which is bad :) - refresh from url will not work\r\n // until i come up with a solution...\r\n\r\n this.routeSub$ = this.route$.queryParamMap.subscribe(params => {\r\n if (params.keys.length === 0) {\r\n return;\r\n }\r\n\r\n // changing the view mode does not require reloading...\r\n this.view = params.get('view') || ListViewType.Tiles;\r\n // console.log('route changes ', this.view);\r\n\r\n if (params.get('search') !== null && params.get('search') !== this.search) {\r\n this.searchChanged(params.get('search'));\r\n }\r\n\r\n const page = +(params.get('page') || 1);\r\n if (page !== this.page) {\r\n this.page = page;\r\n }\r\n\r\n const size = +(params.get('pagesize') || 20);\r\n if (this.pageSize !== size) {\r\n this.pageSize = size;\r\n }\r\n\r\n if (params.get('search') !== this.search) {\r\n this.search = params.get('search');\r\n }\r\n\r\n if (params.get('sort') !== this.sort) {\r\n this.sort = params.get('sort');\r\n }\r\n\r\n if (params.get('dir') !== this.sortdir) {\r\n this.sortdir = params.get('dir');\r\n }\r\n // initialize filters that may reside in the query string\r\n this.filters = this.getFiltersFrom(params);\r\n });\r\n // just to sync params in query\r\n this.setRouteParams(true);\r\n this.load();\r\n }\r\n\r\n /**\r\n * Get filters from a querystring\r\n * @param queryParamMap\r\n * @returns filters found from a paramMap\r\n */\r\n private getFiltersFrom(queryParamMap: ParamMap): FilterClause[] {\r\n let filterResult: FilterClause[] = [];\r\n if (queryParamMap.has(QueryParameters.FILTER) && queryParamMap.get(QueryParameters.FILTER)!.length > 0) {\r\n let filterValue = queryParamMap.get(QueryParameters.FILTER);\r\n const filterValues = filterValue?.split(\",\"); // we may have multiple filters in filter query param\r\n if (filterValues && filterValues.length > 0) {\r\n // create the filterClauses derived from the query params\r\n for (var index in filterValues) {\r\n let filterClause = FilterClause.parse(filterValues[index]);\r\n const parsed = new FilterClause(filterClause!.member, filterClause!.value, filterClause!.operator, filterClause!.dataType, this.searchOptions);\r\n if (parsed !== undefined) {\r\n filterResult.push(parsed);\r\n }\r\n }\r\n }\r\n }\r\n return filterResult;\r\n }\r\n\r\n private setRouteParams(locationChange: boolean = false): void {\r\n this.router$.navigate([], {\r\n relativeTo: this.route$, queryParams: {\r\n view: this.view,\r\n page: this.page,\r\n pagesize: this.pageSize,\r\n search: this.search,\r\n sort: this.sort,\r\n dir: this.sortdir,\r\n filter: this.filterClausesToString(this.filters)\r\n }, queryParamsHandling: 'merge', skipLocationChange: locationChange\r\n });\r\n }\r\n\r\n private filterClausesToString(filters: FilterClause[] | undefined) {\r\n return filters?.map((f: FilterClause) => {\r\n if (f.dataType === 'datetime') {\r\n f.value = (new Date(f.value)).toISOString();\r\n }\r\n return f.toString();\r\n }).join(',');\r\n }\r\n\r\n public actionHandler($event: ViewAction): void {\r\n // console.log('BaseListComponent actionHandler', $event);\r\n if ($event.key === 'refresh') {\r\n this.refresh();\r\n }\r\n }\r\n\r\n private load(): void {\r\n // console.log('BaseListComponent LOAD');\r\n this.count = 0;\r\n this.items = null;\r\n this.loadSub$ = this.loadItems().subscribe(result => {\r\n this.count = result ? result.count : 0;\r\n this.items = result?.items;\r\n this.updateHeaderMeta();\r\n }, err => {\r\n this.count = 0;\r\n this.items = null;\r\n this.updateHeaderMeta();\r\n });\r\n }\r\n\r\n private updateHeaderMeta(): void {\r\n const count = this.metaItems?.filter(m => m.key === 'count')[0];\r\n if (count) {\r\n this.count === 1 ? count.text = `${this.count} αποτέλεσμα` : count.text = `${this.count} αποτελέσματα`;\r\n }\r\n }\r\n\r\n public abstract loadItems(): Observable<IResultSet<T> | null | undefined>;\r\n\r\n public clear(): void {\r\n this.count = 0;\r\n this.page = 1;\r\n this.items = null;\r\n this.search = null;\r\n this.setRouteParams();\r\n this.load();\r\n }\r\n\r\n public refresh(): void {\r\n this.count = 0;\r\n this.updateHeaderMeta();\r\n this.page = 1;\r\n this.items = null;\r\n this.setRouteParams();\r\n this.load();\r\n }\r\n\r\n public pageChanged(page: number): void {\r\n if (this.page !== page) {\r\n this.page = page;\r\n this.setRouteParams();\r\n this.load();\r\n }\r\n }\r\n\r\n public pageSizeChanged(pageSize: number): void {\r\n if (this.pageSize !== pageSize) {\r\n this.pageSize = pageSize;\r\n this.page = 1;\r\n this.setRouteParams();\r\n this.refresh();\r\n }\r\n }\r\n\r\n public sortChanged(sort: string): void {\r\n // console.log('base-list sortChanged', sort);\r\n if (this.sort !== sort) {\r\n this.page = 1;\r\n this.sort = sort;\r\n this.setRouteParams();\r\n this.refresh();\r\n }\r\n }\r\n\r\n public sortdirChanged(sortdir: string): void {\r\n if (this.sortdir !== sortdir) {\r\n this.page = 1;\r\n this.sortdir = sortdir;\r\n this.setRouteParams();\r\n this.refresh();\r\n }\r\n }\r\n\r\n public advancedSearchChanged(filters: FilterClause[]): void {\r\n this.count = 0;\r\n this.page = 1;\r\n this.items = null;\r\n this.filters = filters;\r\n this.setRouteParams();\r\n this.load();\r\n }\r\n\r\n public searchChanged(searchText: string | null): void {\r\n this.count = 0;\r\n this.page = 1;\r\n this.items = null;\r\n this.search = searchText;\r\n this.setRouteParams();\r\n this.load();\r\n }\r\n}\r\n","export const cssClassNames = {\r\n backdrop: 'modal-backdrop',\r\n show: 'show',\r\n fade: 'fade',\r\n\tmodalOpen: 'modal-open'\r\n};\r\n\r\nexport const animationTime = {\r\n backdrop: 150,\r\n modal: 300,\r\n};\r\n","import { Component, ElementRef, OnInit, Renderer2, ViewEncapsulation } from '@angular/core';\r\nimport { ComponentLoader } from '../component-loader/component-loader.class';\r\nimport { animationTime, cssClassNames } from './modal-styles.class';\r\n\r\n/**\r\n * Background layer for modals.\r\n * Override class name to theme it.\r\n * @see {@link cssClassNames}\r\n * @internal\r\n */\r\n@Component({\r\n selector: 'lib-modal-backdrop',\r\n encapsulation: ViewEncapsulation.None,\r\n template: '',\r\n host: {\r\n class: cssClassNames.backdrop,\r\n },\r\n})\r\nexport class ModalBackdropComponent implements OnInit {\r\n private animationsEnabled = false;\r\n private backdropLoader: ComponentLoader<ModalBackdropComponent> | undefined;\r\n constructor(private element: ElementRef, private renderer: Renderer2) {}\r\n\r\n ngOnInit(): void {\r\n if (this.animationsEnabled) {\r\n this.renderer.addClass(this.element.nativeElement, cssClassNames.fade);\r\n this.reflow(this.element.nativeElement);\r\n }\r\n this.renderer.addClass(this.element.nativeElement, cssClassNames.show);\r\n }\r\n\r\n public hide() {\r\n this.renderer.removeClass(this.element.nativeElement, cssClassNames.show);\r\n setTimeout(() => this.backdropLoader?.hide(), this.animationsEnabled ? animationTime.backdrop : 0);\r\n }\r\n\r\n reflow(element: any): void {\r\n ((bs: any): void => bs)(element.offsetHeight);\r\n }\r\n}\r\n","import { Injectable, InjectionToken, StaticProvider } from '@angular/core';\r\n\r\n/**\r\n * Modals option can be passed to a specific modal from {@link ModalService.show} or\r\n * set globbaly using the injection token {@link MODAL_CONFIG_DEFAULT_OVERRIDE}.\r\n * @remarks\r\n * Modal specific options are merged with global options.\r\n * @see {@link modalConfigDefaults} for defaults.\r\n * @public\r\n */\r\n@Injectable()\r\nexport class ModalOptions<T = Record<string, unknown>> {\r\n /**\r\n * Id for opened modal. If not set a random one is generated.\r\n */\r\n id?: number | string;\r\n /**\r\n * If static is set the modal will not close when clicking outside of modal.\r\n * @remarks\r\n * Keyboard event (escape key) stills applies. If you must get a result then also set keyboard to false.\r\n */\r\n backdrop?: boolean | 'static';\r\n /**\r\n * Closes the modal when escape key is pressed.\r\n */\r\n keyboard?: boolean;\r\n /**\r\n * Shows the modal when initialized.\r\n */\r\n show?: boolean;\r\n /**\r\n * Ignore the backdrop click. Pretty much the same as backdrop static.\r\n */\r\n ignoreBackdropClick?: boolean;\r\n /**\r\n * Css class for opened modal.\r\n */\r\n class?: string;\r\n /**\r\n * Toggle animation.\r\n */\r\n animated?: boolean;\r\n /**\r\n * Modal initial data.\r\n * @remarks\r\n * This data must be known properties of content component.\r\n */\r\n initialState?: Partial<T>;\r\n /**\r\n * Function to intercept the closure.\r\n * @remarks\r\n * You can use to catch the close event and even prevent it from closing.\r\n */\r\n closeInterceptor?: CloseInterceptorFn;\r\n /**\r\n * Modal static providers.\r\n * @see {@link https://angular.io/guide/glossary#di-token | Injection Token}\r\n */\r\n providers?: StaticProvider[];\r\n /**\r\n * aria-labelledby attribute value to set on the modal window.\r\n */\r\n ariaLabelledBy?: string;\r\n /**\r\n * aria-describedby attribute value to set on the modal window.\r\n */\r\n ariaDescribedby?: string;\r\n}\r\n\r\n/**\r\n * Default option values.\r\n */\r\nexport const modalConfigDefaults: ModalOptions = {\r\n backdrop: true,\r\n keyboard: true,\r\n show: false,\r\n ignoreBackdropClick: false,\r\n class: '',\r\n animated: true,\r\n initialState: {},\r\n closeInterceptor: void 0,\r\n};\r\n\r\n/**\r\n * Use this injection token to set global options.\r\n */\r\nexport const MODAL_CONFIG_DEFAULT_OVERRIDE: InjectionToken<ModalOptions> = new InjectionToken<ModalOptions>('override-default-config');\r\n\r\n/**\r\n * Close interceptor promise.\r\n */\r\nexport type CloseInterceptorFn = () => Promise<void>;\r\n","import { Component, ElementRef, HostListener, OnDestroy, OnInit, Renderer2 } from '@angular/core';\r\nimport { animationTime, cssClassNames } from './modal-styles.class';\r\nimport { ModalOptions } from './modal-options.class';\r\nimport { ModalService } from './modal-service';\r\n\r\n/**\r\n * Modal container component.\r\n * @remarks\r\n * All dynamic content `TemplateRef` or `Component` case will be drawn inside this.\r\n * You can override css classes to theme it {@link cssClassNames}\r\n * @internal\r\n */\r\n@Component({\r\n selector: 'lib-modal-container',\r\n template: `\r\n <div [class]=\"'modal-dialog' + (config.class ? ' ' + config.class : '')\" role=\"document\" focusTrap>\r\n <div class=\"modal-content\">\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n `,\r\n host: {\r\n class: 'modal',\r\n role: 'dialog',\r\n tabindex: '-1',\r\n '[attr.aria-modal]': 'true',\r\n '[attr.aria-labelledby]': 'config.ariaLabelledBy',\r\n '[attr.aria-describedby]': 'config.ariaDescribedby',\r\n },\r\n})\r\nexport class ModalContainerComponent implements OnInit, OnDestroy {\r\n public level?: number;\r\n public config: ModalOptions;\r\n public modalService?: ModalService;\r\n private isShown = false;\r\n private animationsEnabled = false;\r\n private isModalHiding = false;\r\n private clickStartedInContent = false;\r\n constructor(options: ModalOptions, protected _element: ElementRef, private renderer: Renderer2) {\r\n this.config = Object.assign({}, options);\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.animationsEnabled) {\r\n this.renderer.addClass(this._element.nativeElement, cssClassNames.fade);\r\n }\r\n this.renderer.setStyle(this._element.nativeElement, 'display', 'block');\r\n setTimeout(\r\n () => {\r\n this.isShown = true;\r\n this.renderer.addClass(this._element.nativeElement, cssClassNames.show);\r\n },\r\n this.animationsEnabled ? animationTime.backdrop : 0\r\n );\r\n if (this._element.nativeElement) {\r\n this._element.nativeElement.focus();\r\n }\r\n }\r\n\r\n @HostListener('mousedown', ['$event'])\r\n onClickStarted(event: MouseEvent): void {\r\n this.clickStartedInContent = event.target !== this._element.nativeElement;\r\n }\r\n\r\n @HostListener('click', ['$event'])\r\n onClickStop(event: MouseEvent): void {\r\n const clickedInBackdrop = event.target === this._element.nativeElement && !this.clickStartedInContent;\r\n if (this.config.ignoreBackdropClick || this.config.backdrop === 'static' || !clickedInBackdrop) {\r\n this.clickStartedInContent = false;\r\n return;\r\n }\r\n this.hide();\r\n }\r\n\r\n @HostListener('window:popstate')\r\n onPopState(): void {\r\n this.hide();\r\n }\r\n\r\n @HostListener('window:keydown.esc', ['$event'])\r\n onEsc(event: KeyboardEvent): void {\r\n if (!this.isShown) {\r\n return;\r\n }\r\n if (event.keyCode === 27 || event.key === 'Escape' || event.key === 'Esc') {\r\n event.preventDefault();\r\n }\r\n if (this.config.keyboard && this.config.id === this.modalService?.getActiveModal().config.id) {\r\n this.hide();\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.isShown) {\r\n this._hide();\r\n }\r\n }\r\n\r\n hide(result?: any): void {\r\n if (this.isModalHiding || !this.isShown) {\r\n return;\r\n }\r\n if (this.config.closeInterceptor) {\r\n this.config.closeInterceptor().then(\r\n () => this._hide(),\r\n () => undefined\r\n );\r\n return;\r\n }\r\n this._hide(result);\r\n }\r\n\r\n private _hide(result?: any): void {\r\n this.isModalHiding = true;\r\n this.renderer.removeClass(this._element.nativeElement, cssClassNames.show);\r\n setTimeout(\r\n () => {\r\n this.isShown = false;\r\n this.modalService?.hide(this.config.id, result);\r\n this.isModalHiding = false;\r\n },\r\n this.animationsEnabled ? animationTime.modal : 0\r\n );\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\n\r\n/**\r\n * Modal class.\r\n * @remarks\r\n * This is returned from {@link ModalService.show}.\r\n * @public\r\n */\r\n@Injectable()\r\nexport class Modal<T = any> {\r\n /**\r\n * Event that is fired when the modal behind the ref starts hiding.\r\n * @returns\r\n * Modal component instance.\r\n */\r\n onBeforeHide?: Subject<unknown>;\r\n /**\r\n * Event that is fired when the modal behind the ref finishes hiding.\r\n * @returns\r\n * An object containing the id of the closed modal and result.\r\n */\r\n onHidden?: Subject<unknown>;\r\n /**\r\n * Id of this modal.\r\n */\r\n id?: number | string;\r\n\r\n /**\r\n * Reference to a component inside the modal. Null if modal's been created with TemplateRef.\r\n * @remarks\r\n * You can use this to do nasty stuff with opened modal instance.\r\n */\r\n content?: T;\r\n\r\n /**\r\n * Hides the modal\r\n * @param result - A result to the observers.\r\n */\r\n hide: (result?: any) => void = () => void 0;\r\n /**\r\n * Sets new class to modal window.\r\n */\r\n setClass: (newClass: string) => void = () => void 0;\r\n}\r\n","import { DOCUMENT } from '@angular/common';\r\nimport { ComponentRef, Inject, Injectable, OnDestroy, Optional, Renderer2, RendererFactory2, TemplateRef } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\nimport { ComponentLoader } from '../component-loader/component-loader.class';\r\nimport { animationTime, cssClassNames } from './modal-styles.class';\r\nimport { ModalBackdropComponent } from './modal-backdrop-component';\r\nimport { ModalContainerComponent } from './modal-container-component';\r\nimport { modalConfigDefaults, ModalOptions, MODAL_CONFIG_DEFAULT_OVERRIDE } from './modal-options.class';\r\nimport { Modal } from './modal.class';\r\nimport { ComponentLoaderFactory } from '../component-loader/component-loader.factory';\r\n\r\n/**\r\n * A service for using modals.\r\n *\r\n * @public\r\n */\r\n@Injectable()\r\nexport class ModalService implements OnDestroy {\r\n private onBeforeShow = new Subject();\r\n private onShown = new Subject();\r\n private onBeforeHide = new Subject();\r\n private onHidden = new Subject();\r\n\r\n private backdropRef?: ComponentRef<ModalBackdropComponent>;\r\n private defaultConfig: ModalOptions;\r\n private backdropLoader: ComponentLoader<ModalBackdropComponent>;\r\n private loaders: ComponentLoader<ModalContainerComponent>[] = [];\r\n private renderer: Renderer2;\r\n private modalsCount = 0;\r\n private initialPadding = '0px';\r\n constructor(\r\n private clf: ComponentLoaderFactory,\r\n rendererFactory: RendererFactory2,\r\n @Inject(DOCUMENT) private document: any,\r\n @Optional() @Inject(MODAL_CONFIG_DEFAULT_OVERRIDE) modalDefaultOption: ModalOptions\r\n ) {\r\n this.backdropLoader = this.clf.createLoader<ModalBackdropComponent>();\r\n this.defaultConfig = { ...modalConfigDefaults, ...modalDefaultOption };\r\n this.renderer = rendererFactory.createRenderer(null, null);\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.loaders.forEach((loader) => loader.instance?.hide());\r\n }\r\n\r\n /**\r\n * Opens a new modal.\r\n *\r\n * @param content - `Component` or `TemplateRef` type.\r\n * @param config - Specific {@link ModalOptions | options} for this modal. Global and specific options are merged.\r\n * @returns An instance of {@link Modal}\r\n */\r\n public show<T>(content: string | TemplateRef<any> | { new (...args: any[]): T }, config?: ModalOptions<T>) {\r\n this.modalsCount++;\r\n const combinedConfig = { ...this.defaultConfig, ...config };\r\n combinedConfig.id = config?.id || new Date().getUTCMilliseconds();\r\n console.log('show', combinedConfig);\r\n this.createLoaders();\r\n\r\n this.addBodyPadding();\r\n if (this.modalsCount === 1) {\r\n this.renderer.addClass(this.document.body, cssClassNames.modalOpen);\r\n }\r\n this.showBackdrop(combinedConfig);\r\n return this.showModal<T>(content, combinedConfig);\r\n }\r\n\r\n /**\r\n * Hide an active modal.\r\n * @param id - Id of modal to hide. If not provided all active modals are hidden.\r\n * @param result - A result to be sent to observers.\r\n */\r\n public hide(id?: number | string, result?: any) {\r\n if (this.modalsCount === 1 || id == null) {\r\n this.hideBackdrop();\r\n this.revertScrollbar();\r\n this.renderer.removeClass(this.document.body, cssClassNames.modalOpen);\r\n }\r\n this.modalsCount = this.modalsCount >= 1 && id != null ? this.modalsCount - 1 : 0;\r\n setTimeout(\r\n () => {\r\n this.hideModal(id, result);\r\n this.removeLoaders(id);\r\n },\r\n //Bug\r\n //Should use combined config but for the moment is not possible to pass it this parameter.\r\n //If config is an instance variable then every newly opened modal will override the config\r\n //resulting in opened modals to get a new configuration\r\n this.defaultConfig.animated ? animationTime.backdrop : 0\r\n );\r\n }\r\n\r\n public getActiveModal(): ModalContainerComponent {\r\n return this.loaders[this.modalsCount - 1].instance as ModalContainerComponent;\r\n }\r\n\r\n private showModal<T>(content: any, combinedConfig: ModalOptions): Modal<T> {\r\n const modalLoader = this.loaders[this.loaders.length - 1];\r\n if (combinedConfig && combinedConfig.providers) {\r\n combinedConfig.providers.forEach((provider) => modalLoader.provide(provider));\r\n }\r\n\r\n const modal = new Modal<any>();\r\n const modalContainerRef = modalLoader\r\n .provide({ provide: ModalOptions, useValue: combinedConfig })\r\n .provide({ provide: Modal, useValue: modal })\r\n .attach(ModalContainerComponent)\r\n .to('body');\r\n\r\n modal.setClass = (newClass: string) => {\r\n if (modalContainerRef.instance) {\r\n modalContainerRef.instance.config.class = newClass;\r\n }\r\n };\r\n\r\n modal.onBeforeHide = new Subject();\r\n modal.onHidden = new Subject();\r\n this.copyEvent(modalLoader.onBeforeHide, modal.onBeforeHide);\r\n this.copyEvent(modalLoader.onHidden, modal.onHidden);\r\n modalContainerRef.show({\r\n content,\r\n animationsEnabled: combinedConfig.animated,\r\n initialState: combinedConfig.initialState,\r\n modalService: this,\r\n id: combinedConfig.id,\r\n });\r\n\r\n if (modalContainerRef.instance) {\r\n modalContainerRef.instance.level = this.modalsCount;\r\n modal.content = modalLoader.getInnerComponent();\r\n modal.id = modalContainerRef.instance.config?.id;\r\n modal.hide = (res) => modalContainerRef.instance?.hide(res);\r\n }\r\n\r\n return modal;\r\n }\r\n\r\n private hideModal(id?: number | string, result?: any): void {\r\n if (id != null) {\r\n const indexToRemove = this.loaders.findIndex((loader) => loader.instance?.config.id === id);\r\n const modalLoader = this.loaders[indexToRemove];\r\n if (modalLoader) {\r\n modalLoader.hide(id, result);\r\n }\r\n } else {\r\n this.loaders.forEach((loader: ComponentLoader<ModalContainerComponent>) => {\r\n if (loader.instance) {\r\n loader.hide(loader.instance.config.id);\r\n }\r\n });\r\n }\r\n }\r\n\r\n private showBackdrop(combinedConfig: ModalOptions): void {\r\n const isBackdropEnabled = combinedConfig.backdrop === true || combinedConfig.backdrop === 'static';\r\n const isBackdropInDOM = this.backdropRef != null;\r\n if (isBackdropEnabled && !isBackdropInDOM) {\r\n this.backdropLoader\r\n .attach(ModalBackdropComponent)\r\n .to('body')\r\n .show({ animationsEnabled: combinedConfig.animated, backdropLoader: this.backdropLoader });\r\n this.backdropRef = this.backdropLoader.componentRef;\r\n }\r\n }\r\n\r\n private hideBackdrop(): void {\r\n if (!this.backdropRef) {\r\n return;\r\n }\r\n this.backdropRef.instance.hide();\r\n this.backdropRef = void 0;\r\n }\r\n\r\n private removeLoaders(id?: number | string): void {\r\n if (id != null) {\r\n const indexToRemove = this.loaders.findIndex((loader) => loader.instance?.config.id === id);\r\n if (indexToRemove >= 0) {\r\n this.loaders.splice(indexToRemove, 1);\r\n this.loaders.forEach((loader: ComponentLoader<ModalContainerComponent>, i: number) => {\r\n if (loader.instance) {\r\n loader.instance.level = i + 1;\r\n }\r\n });\r\n }\r\n } else {\r\n this.loaders.splice(0, this.loaders.length);\r\n }\r\n }\r\n\r\n private addBodyPadding() {\r\n if (this.modalsCount === 1) {\r\n const width = this.getScrollbarWidth();\r\n if (this.isScrollBarPresent(width)) {\r\n this.initialPadding = this.document.body.style.paddingRight;\r\n const actualPadding = parseFloat(window.getComputedStyle(this.document.body).paddingRight);\r\n this.document.body.style.paddingRight = `${actualPadding + width}px`;\r\n }\r\n }\r\n }\r\n\r\n private revertScrollbar() {\r\n this.document.body.style.paddingRight = this.initialPadding;\r\n }\r\n\r\n private getScrollbarWidth(): number {\r\n const measurer = this.document.createElement('div');\r\n measurer.className = 'modal-scrollbar-measure';\r\n\r\n const body = this.document.body;\r\n body.appendChild(measurer);\r\n const width = measurer.getBoundingClientRect().width - measurer.clientWidth;\r\n body.removeChild(measurer);\r\n\r\n return width;\r\n }\r\n\r\n private isScrollBarPresent(scrollbarWidth: number) {\r\n const rect = this.document.body.getBoundingClientRect();\r\n const bodyToViewportGap = window.innerWidth - (rect.left + rect.right);\r\n const uncertainty = 0.1 * scrollbarWidth;\r\n return bodyToViewportGap >= scrollbarWidth - uncertainty;\r\n }\r\n\r\n private createLoaders(): void {\r\n const loader = this.clf.createLoader<ModalContainerComponent>();\r\n this.copyEvent(loader.onBeforeShow, this.onBeforeShow);\r\n this.copyEvent(loader.onShown, this.onShown);\r\n this.copyEvent(loader.onBeforeHide, this.onBeforeHide);\r\n this.copyEvent(loader.onHidden, this.onHidden);\r\n this.loaders.push(loader);\r\n }\r\n\r\n private copyEvent(from: Subject<unknown>, to: Subject<unknown>) {\r\n from.subscribe((data) => {\r\n to.next(data);\r\n });\r\n }\r\n}\r\n","\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { RouterModule } from '@angular/router';\r\n\r\nimport { AddressPipe } from './pipes/address.pipe';\r\nimport { AdvancedSearchComponent } from './controls/advanced-search/advanced-search.component';\r\nimport { AuthCallbackComponent } from './pages/auth/auth-callback/auth-callback.component';\r\nimport { AuthRenewComponent } from './pages/auth/auth-renew/auth-renew.component';\r\nimport { AvatarInitialsComponent } from './controls/avatar-initials/avatar-initials.component';\r\nimport { BreadcrumbComponent } from './controls/breadcrumb/breadcrumb.component';\r\nimport { BreadcrumbService } from './services/breadcrumb.service';\r\nimport { ClickOutsideDirective } from './directives/click-outside.directive';\r\nimport { CollapsiblePanelComponent } from './controls/collapsible-panel/collapsible-panel.component';\r\nimport { ComboboxComponent } from './controls/combobox/combobox.component';\r\nimport { DatepickerComponent } from './controls/date-picker/date-picker.component';\r\nimport { DropDownMenuComponent } from './controls/drop-down-menu/drop-down-menu.component';\r\nimport { DurationFormatPipe } from './pipes/duration-format.pipe';\r\nimport { DynamicComponentHostDirective } from './directives/dynamic-component-host.directive';\r\nimport { ErrorComponent } from './pages/http-status/error/error.component';\r\nimport { FormLayoutComponent } from './layouts/views/form-layout/form-layout.component';\r\nimport { IndiceAuthModule } from '@indice/ng-auth';\r\nimport { KpiTileComponent } from './controls/kpi-tile/kpi-tile.component';\r\nimport { LanguageSelectionComponent } from './controls/language-selection/language-selection.component';\r\nimport { LibStepComponent } from './controls/stepper/lib-step.component';\r\nimport { LibStepInfoDirective } from './controls/stepper/lib-step-info.directive';\r\nimport { LibStepLabelDirective } from './controls/stepper/lib-step-label.directive';\r\nimport { LibStepperComponent } from './controls/stepper/lib-stepper.component';\r\nimport { LibTabComponent } from './controls/tabs/lib-tab.component';\r\nimport { LibTabGroupComponent } from './controls/tabs/lib-tab-group.component';\r\nimport { ListColumnComponent } from './controls/list-view/list-column.component';\r\nimport { ListDetailsSectionComponent } from './controls/list-view/list-details-section.component';\r\nimport { ListTileComponent } from './controls/list-view/list-tile.component';\r\nimport { ListViewComponent } from './controls/list-view/list-view.component';\r\nimport { ListViewEmptyStateComponent } from './controls/list-view/list-view-empty-state.component';\r\nimport { LoggedOutComponent } from './pages/auth/logged-out/logged-out.component';\r\nimport { ModelViewLayoutComponent } from './layouts/views/model-view-layout/model-view-layout.component';\r\nimport { NavLinksListComponent } from './controls/nav-links-list/nav-links-list.component';\r\nimport { NotificationsIndicatorComponent } from './controls/notifications-indicator/notifications-indicator.component';\r\nimport { PageNotFoundComponent } from './pages/http-status/page-not-found/page-not-found.component';\r\nimport { PagerComponent } from './controls/pager/pager.component';\r\nimport { ShellFooterComponent } from './layouts/shell/shell-footer/shell-footer.component';\r\nimport { ShellHeaderComponent } from './layouts/shell/shell-header/shell-header.component';\r\nimport { ShellLayoutComponent } from './layouts/shell/shell-layout/shell-layout.component';\r\nimport { ShellSidebarComponent } from './layouts/shell/shell-sidebar/shell-sidebar.component';\r\nimport { ShellSidebarHeaderComponent } from './layouts/shell/shell-sidebar-header/shell-sidebar-header.component';\r\nimport { ShellSidebarLayoutComponent } from './layouts/shell/shell-sidebar-layout/shell-sidebar-layout.component';\r\nimport { ShellStackedLayoutComponent } from './layouts/shell/shell-stacked-layout/shell-stacked-layout.component';\r\nimport { SidePaneComponent } from './controls/side-pane/side-pane.component';\r\nimport { SideViewLayoutComponent } from './layouts/views/side-view-layout/side-view-layout.component';\r\nimport { SkeletonLoaderComponent } from './controls/skeleton-loader/skeleton-loader.component';\r\nimport { ToasterComponent } from './controls/toaster/toaster.component';\r\nimport { ToasterContainerComponent } from './controls/toaster/toaster-container.component';\r\nimport { ToasterService } from './services/toaster.service';\r\nimport { ToggleComponent } from './controls/toggle/toggle.component';\r\nimport { UnauthorizedComponent } from './pages/http-status/unauthorized/unauthorized.component';\r\nimport { UserProfileMenuComponent } from './controls/user-profile-menu/user-profile-menu.component';\r\nimport { ViewLayoutComponent } from './layouts/views/view-layout/view-layout.component';\r\nimport { LibTabLabelDirective, UserSettingsService } from '../public-api';\r\nimport { ToggleButtonComponent } from './controls/toggle-button/toggle-button.component';\r\nimport { ToggleButtonsListComponent } from './controls/toggle-buttons-list/toggle-buttons-list.component';\r\nimport { ContentTileComponent } from './controls/content-tile/content-tile.component';\r\nimport { ContentTileItemComponent } from './controls/content-tile/content-tile-item/content-tile-item.component';\r\nimport { ContentTileHeaderComponent } from './controls/content-tile/content-tile-header/content-tile-header.component';\r\nimport { ShortNumberPipe } from './pipes/short-number.pipe';\r\nimport { StatsGridComponent } from './controls/stats-grid/stats-grid.component';\r\nimport { ProgressBarComponent } from './controls/progress-bar/progress-bar.component';\r\n\r\n@NgModule({\r\n declarations: [\r\n AddressPipe,\r\n AdvancedSearchComponent,\r\n AuthCallbackComponent,\r\n AuthRenewComponent,\r\n AvatarInitialsComponent,\r\n BreadcrumbComponent,\r\n ClickOutsideDirective,\r\n CollapsiblePanelComponent,\r\n ComboboxComponent,\r\n DatepickerComponent,\r\n DropDownMenuComponent,\r\n DurationFormatPipe,\r\n ShortNumberPipe,\r\n DynamicComponentHostDirective,\r\n ErrorComponent,\r\n FormLayoutComponent,\r\n KpiTileComponent,\r\n LanguageSelectionComponent,\r\n LibStepComponent,\r\n LibStepInfoDirective,\r\n LibStepLabelDirective,\r\n LibStepperComponent,\r\n LibTabComponent,\r\n LibTabGroupComponent,\r\n LibTabLabelDirective,\r\n ListColumnComponent,\r\n ListDetailsSectionComponent,\r\n ListTileComponent,\r\n ListViewComponent,\r\n ListViewEmptyStateComponent,\r\n LoggedOutComponent,\r\n ModelViewLayoutComponent,\r\n NavLinksListComponent,\r\n NotificationsIndicatorComponent,\r\n PageNotFoundComponent,\r\n PagerComponent,\r\n ShellFooterComponent,\r\n ShellHeaderComponent,\r\n ShellLayoutComponent,\r\n ShellSidebarComponent,\r\n ShellSidebarHeaderComponent,\r\n ShellSidebarLayoutComponent,\r\n ShellStackedLayoutComponent,\r\n SidePaneComponent,\r\n SideViewLayoutComponent,\r\n SkeletonLoaderComponent,\r\n ToasterComponent,\r\n ToasterContainerComponent,\r\n ToggleComponent,\r\n UnauthorizedComponent,\r\n UserProfileMenuComponent,\r\n ViewLayoutComponent,\r\n ToggleButtonComponent,\r\n ToggleButtonsListComponent,\r\n ContentTileComponent,\r\n ContentTileItemComponent,\r\n ContentTileHeaderComponent,\r\n StatsGridComponent,\r\n ProgressBarComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n RouterModule,\r\n IndiceAuthModule,\r\n FormsModule\r\n ],\r\n exports: [\r\n AddressPipe,\r\n AdvancedSearchComponent,\r\n AuthCallbackComponent,\r\n AuthRenewComponent,\r\n AvatarInitialsComponent,\r\n BreadcrumbComponent,\r\n ClickOutsideDirective,\r\n CollapsiblePanelComponent,\r\n ComboboxComponent,\r\n DatepickerComponent,\r\n DropDownMenuComponent,\r\n DurationFormatPipe,\r\n ShortNumberPipe,\r\n ErrorComponent,\r\n FormLayoutComponent,\r\n KpiTileComponent,\r\n LibStepComponent,\r\n LibStepInfoDirective,\r\n LibStepLabelDirective,\r\n LibStepperComponent,\r\n LibTabComponent,\r\n LibTabGroupComponent,\r\n LibTabLabelDirective,\r\n ListColumnComponent,\r\n ListDetailsSectionComponent,\r\n ListTileComponent,\r\n ListViewComponent,\r\n ListViewEmptyStateComponent,\r\n LoggedOutComponent,\r\n ModelViewLayoutComponent,\r\n PageNotFoundComponent,\r\n PagerComponent,\r\n ShellFooterComponent,\r\n ShellHeaderComponent,\r\n ShellLayoutComponent,\r\n SidePaneComponent,\r\n SideViewLayoutComponent,\r\n SkeletonLoaderComponent,\r\n ToasterComponent,\r\n ToasterContainerComponent,\r\n ToggleComponent,\r\n UnauthorizedComponent,\r\n ViewLayoutComponent,\r\n ToggleButtonComponent,\r\n ToggleButtonsListComponent,\r\n ContentTileComponent,\r\n ContentTileItemComponent,\r\n ContentTileHeaderComponent,\r\n StatsGridComponent,\r\n ProgressBarComponent\r\n ]\r\n})\r\nexport class IndiceComponentsModule {\r\n static forRoot(): ModuleWithProviders<IndiceComponentsModule> {\r\n return {\r\n ngModule: IndiceComponentsModule,\r\n providers: [\r\n BreadcrumbService,\r\n ToasterService,\r\n UserSettingsService\r\n ]\r\n };\r\n }\r\n}\r\n","// Public API Surface of @indice/ng-components\r\n// directives\r\nexport * from './lib/directives/click-outside.directive';\r\n\r\n// controls\r\nexport * from './lib/controls/drop-down-menu/drop-down-menu.component';\r\nexport * from './lib/controls/pager/pager.component';\r\nexport * from './lib/controls/breadcrumb/breadcrumb.component';\r\nexport * from './lib/controls/breadcrumb/breadcrumb-item';\r\nexport * from './lib/controls/list-view/list-view.component';\r\nexport * from './lib/controls/list-view/list-column.component';\r\nexport * from './lib/controls/list-view/list-tile.component';\r\nexport * from './lib/controls/list-view/list-details-section.component';\r\nexport * from './lib/controls/list-view/list-view-empty-state.component';\r\nexport * from './lib/controls/skeleton-loader/skeleton-loader.component';\r\nexport * from './lib/controls/collapsible-panel/collapsible-panel.component';\r\nexport * from './lib/controls/kpi-tile/kpi-tile.component';\r\nexport * from './lib/controls/date-picker/date-picker.component';\r\nexport * from './lib/controls/toaster/toaster-container.component';\r\nexport * from './lib/controls/toaster/toaster.component';\r\nexport * from './lib/controls/avatar-initials/avatar-initials.component';\r\nexport * from './lib/controls/toggle/toggle.component';\r\nexport * from './lib/controls/side-pane/side-pane.component';\r\nexport * from './lib/controls/nav-links-list/nav-links-list.component';\r\nexport * from './lib/controls/combobox/combobox.component';\r\nexport * from './lib/controls/tabs/lib-tab.component';\r\nexport * from './lib/controls/tabs/lib-tab-group.component';\r\nexport * from './lib/controls/tabs/lib-tab-label.directive';\r\nexport * from './lib/controls/stepper/lib-stepper.component';\r\nexport * from './lib/controls/stepper/lib-step.component';\r\nexport * from './lib/controls/stepper/lib-step-label.directive';\r\nexport * from './lib/controls/stepper/lib-step-info.directive';\r\nexport * from './lib/controls/stepper/types/stepper-type';\r\nexport * from './lib/controls/toggle-button/toggle-button.component';\r\nexport * from './lib/controls/toggle-buttons-list/toggle-buttons-list.component';\r\nexport * from './lib/controls/content-tile/content-tile-header/content-tile-header.component';\r\nexport * from './lib/controls/content-tile/content-tile-item/content-tile-item.component';\r\nexport * from './lib/controls/content-tile/content-tile.component';\r\nexport * from './lib/controls/stats-grid/stats-grid.component';\r\nexport * from './lib/controls/progress-bar/progress-bar.component';\r\nexport * from './lib/controls/advanced-search/advanced-search.component';\r\nexport * from './lib/controls/advanced-search/models';\r\n\r\n// shell layout\r\nexport * from './lib/layouts/shell/shell-layout/shell-layout.component';\r\nexport * from './lib/layouts/shell/shell-header/shell-header.component';\r\nexport * from './lib/layouts/shell/shell-footer/shell-footer.component';\r\nexport * from './lib/layouts/shell/shell-sidebar/shell-sidebar.component';\r\nexport * from './lib/layouts/shell/shell-sidebar-header/shell-sidebar-header.component';\r\n\r\n// view layouts\r\nexport * from './lib/layouts/views/view-layout/view-layout.component';\r\nexport * from './lib/layouts/views/model-view-layout/model-view-layout.component';\r\nexport * from './lib/layouts/views/side-view-layout/side-view-layout.component';\r\nexport * from './lib/layouts/views/form-layout/form-layout.component';\r\n\r\n// pages\r\nexport * from './lib/pages/auth/auth-callback/auth-callback.component';\r\nexport * from './lib/pages/auth/auth-renew/auth-renew.component';\r\nexport * from './lib/pages/auth/logged-out/logged-out.component';\r\nexport * from './lib/pages/http-status/error/error.component';\r\nexport * from './lib/pages/http-status/page-not-found/page-not-found.component';\r\nexport * from './lib/pages/http-status/unauthorized/unauthorized.component';\r\n\r\n\r\n// pipes\r\nexport * from './lib/pipes/address.pipe';\r\nexport * from './lib/pipes/duration-format.pipe';\r\nexport * from './lib/pipes/short-number.pipe';\r\n\r\n// common stuff (tokens, types, helper classes)\r\nexport * from './lib/tokens';\r\nexport * from './lib/types';\r\nexport * from './lib/icons';\r\nexport * from './lib/helpers/base-list.component';\r\n\r\n// services\r\nexport * from './lib/services/component-loader/component-loader.factory';\r\nexport * from './lib/services/modal-service/modal-service';\r\nexport { ModalOptions, MODAL_CONFIG_DEFAULT_OVERRIDE, CloseInterceptorFn } from './lib/services/modal-service/modal-options.class';\r\nexport * from './lib/services/modal-service/modal.class';\r\nexport * from './lib/services/toaster.service';\r\nexport * from './lib/services/breadcrumb.service';\r\nexport * from './lib/services/user-settings.service';\r\n\r\nexport * from './lib/ng-components.module';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2.ClickOutsideDirective","i1","i2","i3.DropDownMenuComponent","i1.BreadcrumbService","i3","i3.DatepickerComponent","i4.DropDownMenuComponent","i2.AdvancedSearchComponent","i3.ListViewEmptyStateComponent","i4.PagerComponent","i5.SkeletonLoaderComponent","i1.ToasterService","i3.ToasterComponent","i3.ClickOutsideDirective","i2.DropDownMenuComponent","i1.NavLinksListComponent","i3.NavLinksListComponent","i4.LanguageSelectionComponent","i5.NavLinksListComponent","i6.NotificationsIndicatorComponent","i7.UserProfileMenuComponent","i3.LanguageSelectionComponent","i4.NotificationsIndicatorComponent","i5.UserProfileMenuComponent","i1.UserSettingsService","i4.BreadcrumbComponent","i5.ShellSidebarComponent","i6.ShellSidebarHeaderComponent","i3.DynamicComponentHostDirective","i4.ShellFooterComponent","i5.ShellHeaderComponent","i4.ShellSidebarLayoutComponent","i5.ShellStackedLayoutComponent","i6.SidePaneComponent","i7.ToasterContainerComponent","i4.ViewLayoutComponent","i3.SidePaneComponent","i2.ViewLayoutComponent","i1.ViewLayoutComponent","i1.ModalOptions","i1.ComponentLoaderFactory"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"indice-ng-components.mjs","sources":["../../../projects/ng-components/src/lib/directives/click-outside.directive.ts","../../../projects/ng-components/src/lib/controls/drop-down-menu/drop-down-menu.component.ts","../../../projects/ng-components/src/lib/controls/drop-down-menu/drop-down-menu.component.html","../../../projects/ng-components/src/lib/icons.ts","../../../projects/ng-components/src/lib/types.ts","../../../projects/ng-components/src/lib/controls/pager/pager.component.ts","../../../projects/ng-components/src/lib/controls/pager/pager.component.html","../../../projects/ng-components/src/lib/controls/breadcrumb/breadcrumb-item.ts","../../../projects/ng-components/src/lib/tokens.ts","../../../projects/ng-components/src/lib/services/utilities.service.ts","../../../projects/ng-components/src/lib/services/breadcrumb.service.ts","../../../projects/ng-components/src/lib/controls/breadcrumb/breadcrumb.component.ts","../../../projects/ng-components/src/lib/controls/breadcrumb/breadcrumb.component.html","../../../projects/ng-components/src/lib/controls/list-view/list-column.component.ts","../../../projects/ng-components/src/lib/controls/list-view/list-tile.component.ts","../../../projects/ng-components/src/lib/controls/list-view/list-details-section.component.ts","../../../projects/ng-components/src/lib/controls/advanced-search/models.ts","../../../projects/ng-components/src/lib/controls/date-picker/date-picker.component.ts","../../../projects/ng-components/src/lib/controls/date-picker/date-picker.component.html","../../../projects/ng-components/src/lib/controls/advanced-search/advanced-search.component.ts","../../../projects/ng-components/src/lib/controls/advanced-search/advanced-search.component.html","../../../projects/ng-components/src/lib/controls/list-view/list-view-empty-state.component.ts","../../../projects/ng-components/src/lib/controls/list-view/list-view-empty-state.component.html","../../../projects/ng-components/src/lib/controls/skeleton-loader/skeleton-loader.component.ts","../../../projects/ng-components/src/lib/controls/skeleton-loader/skeleton-loader.component.html","../../../projects/ng-components/src/lib/controls/list-view/list-view.component.ts","../../../projects/ng-components/src/lib/controls/list-view/list-view.component.html","../../../projects/ng-components/src/lib/controls/collapsible-panel/collapsible-panel.component.ts","../../../projects/ng-components/src/lib/controls/collapsible-panel/collapsible-panel.component.html","../../../projects/ng-components/src/lib/controls/kpi-tile/kpi-tile.component.ts","../../../projects/ng-components/src/lib/controls/kpi-tile/kpi-tile.component.html","../../../projects/ng-components/src/lib/services/toaster.service.ts","../../../projects/ng-components/src/lib/controls/toaster/toaster.component.ts","../../../projects/ng-components/src/lib/controls/toaster/toaster.component.html","../../../projects/ng-components/src/lib/controls/toaster/toaster-container.component.ts","../../../projects/ng-components/src/lib/controls/toaster/toaster-container.component.html","../../../projects/ng-components/src/lib/controls/avatar-initials/avatar-initials.component.ts","../../../projects/ng-components/src/lib/controls/avatar-initials/avatar-initials.component.html","../../../projects/ng-components/src/lib/controls/toggle/toggle.component.ts","../../../projects/ng-components/src/lib/controls/toggle/toggle.component.html","../../../projects/ng-components/src/lib/controls/side-pane/side-pane.component.ts","../../../projects/ng-components/src/lib/controls/side-pane/side-pane.component.html","../../../projects/ng-components/src/lib/controls/nav-links-list/nav-links-list.component.ts","../../../projects/ng-components/src/lib/controls/nav-links-list/nav-links-list.component.html","../../../projects/ng-components/src/lib/controls/combobox/combobox.component.ts","../../../projects/ng-components/src/lib/controls/combobox/combobox.component.html","../../../projects/ng-components/src/lib/controls/tabs/lib-tab-label.directive.ts","../../../projects/ng-components/src/lib/controls/tabs/lib-tab.component.ts","../../../projects/ng-components/src/lib/controls/tabs/lib-tab-group.component.ts","../../../projects/ng-components/src/lib/controls/tabs/lib-tab-group.component.html","../../../projects/ng-components/src/lib/controls/stepper/lib-step-info.directive.ts","../../../projects/ng-components/src/lib/controls/stepper/lib-step-label.directive.ts","../../../projects/ng-components/src/lib/controls/stepper/lib-step.component.ts","../../../projects/ng-components/src/lib/controls/stepper/types/stepper-type.ts","../../../projects/ng-components/src/lib/controls/stepper/lib-stepper.component.ts","../../../projects/ng-components/src/lib/controls/stepper/lib-stepper.component.html","../../../projects/ng-components/src/lib/controls/toggle-button/toggle-button.component.ts","../../../projects/ng-components/src/lib/controls/toggle-button/toggle-button.component.html","../../../projects/ng-components/src/lib/controls/toggle-buttons-list/toggle-buttons-list.component.ts","../../../projects/ng-components/src/lib/controls/toggle-buttons-list/toggle-buttons-list.component.html","../../../projects/ng-components/src/lib/controls/content-tile/content-tile-header/content-tile-header.component.ts","../../../projects/ng-components/src/lib/controls/content-tile/content-tile-item/content-tile-item.component.ts","../../../projects/ng-components/src/lib/controls/content-tile/content-tile.component.ts","../../../projects/ng-components/src/lib/controls/content-tile/content-tile.component.html","../../../projects/ng-components/src/lib/controls/stats-grid/stats-grid.component.ts","../../../projects/ng-components/src/lib/controls/stats-grid/stats-grid.component.html","../../../projects/ng-components/src/lib/controls/progress-bar/progress-bar.component.ts","../../../projects/ng-components/src/lib/controls/progress-bar/progress-bar.component.html","../../../projects/ng-components/src/lib/directives/dynamic-component-host.directive.ts","../../../projects/ng-components/src/lib/services/component-loader/content-ref.class.ts","../../../projects/ng-components/src/lib/services/component-loader/component-loader.class.ts","../../../projects/ng-components/src/lib/services/component-loader/component-loader.factory.ts","../../../projects/ng-components/src/lib/services/user-settings.service.ts","../../../projects/ng-components/src/lib/layouts/shell/shell-sidebar/shell-sidebar.component.ts","../../../projects/ng-components/src/lib/layouts/shell/shell-sidebar/shell-sidebar.component.html","../../../projects/ng-components/src/lib/controls/language-selection/language-selection.component.ts","../../../projects/ng-components/src/lib/controls/language-selection/language-selection.component.html","../../../projects/ng-components/src/lib/controls/notifications-indicator/notifications-indicator.component.ts","../../../projects/ng-components/src/lib/controls/notifications-indicator/notifications-indicator.component.html","../../../projects/ng-components/src/lib/controls/user-profile-menu/user-profile-menu.component.ts","../../../projects/ng-components/src/lib/controls/user-profile-menu/user-profile-menu.component.html","../../../projects/ng-components/src/lib/layouts/shell/shell-header/shell-header.component.ts","../../../projects/ng-components/src/lib/layouts/shell/shell-header/shell-header.component.html","../../../projects/ng-components/src/lib/layouts/shell/shell-sidebar-header/shell-sidebar-header.component.ts","../../../projects/ng-components/src/lib/layouts/shell/shell-sidebar-header/shell-sidebar-header.component.html","../../../projects/ng-components/src/lib/layouts/shell/shell-sidebar-layout/shell-sidebar-layout.component.ts","../../../projects/ng-components/src/lib/layouts/shell/shell-sidebar-layout/shell-sidebar-layout.component.html","../../../projects/ng-components/src/lib/layouts/shell/shell-footer/shell-footer.component.ts","../../../projects/ng-components/src/lib/layouts/shell/shell-footer/shell-footer.component.html","../../../projects/ng-components/src/lib/layouts/shell/shell-stacked-layout/shell-stacked-layout.component.ts","../../../projects/ng-components/src/lib/layouts/shell/shell-stacked-layout/shell-stacked-layout.component.html","../../../projects/ng-components/src/lib/layouts/shell/shell-layout/shell-layout.component.ts","../../../projects/ng-components/src/lib/layouts/shell/shell-layout/shell-layout.component.html","../../../projects/ng-components/src/lib/layouts/views/view-layout/view-layout.component.ts","../../../projects/ng-components/src/lib/layouts/views/view-layout/view-layout.component.html","../../../projects/ng-components/src/lib/layouts/views/model-view-layout/model-view-layout.component.ts","../../../projects/ng-components/src/lib/layouts/views/model-view-layout/model-view-layout.component.html","../../../projects/ng-components/src/lib/layouts/views/side-view-layout/side-view-layout.component.ts","../../../projects/ng-components/src/lib/layouts/views/side-view-layout/side-view-layout.component.html","../../../projects/ng-components/src/lib/layouts/views/form-layout/form-layout.component.ts","../../../projects/ng-components/src/lib/layouts/views/form-layout/form-layout.component.html","../../../projects/ng-components/src/lib/pages/auth/auth-callback/auth-callback.component.ts","../../../projects/ng-components/src/lib/pages/auth/auth-callback/auth-callback.component.html","../../../projects/ng-components/src/lib/pages/auth/auth-renew/auth-renew.component.ts","../../../projects/ng-components/src/lib/pages/auth/logged-out/logged-out.component.ts","../../../projects/ng-components/src/lib/pages/auth/logged-out/logged-out.component.html","../../../projects/ng-components/src/lib/pages/http-status/error/error.component.ts","../../../projects/ng-components/src/lib/pages/http-status/error/error.component.html","../../../projects/ng-components/src/lib/pages/http-status/page-not-found/page-not-found.component.ts","../../../projects/ng-components/src/lib/pages/http-status/page-not-found/page-not-found.component.html","../../../projects/ng-components/src/lib/pages/http-status/unauthorized/unauthorized.component.ts","../../../projects/ng-components/src/lib/pages/http-status/unauthorized/unauthorized.component.html","../../../projects/ng-components/src/lib/pipes/address.pipe.ts","../../../projects/ng-components/src/lib/pipes/duration-format.pipe.ts","../../../projects/ng-components/src/lib/pipes/short-number.pipe.ts","../../../projects/ng-components/src/lib/helpers/base-list.component.ts","../../../projects/ng-components/src/lib/services/modal-service/modal-styles.class.ts","../../../projects/ng-components/src/lib/services/modal-service/modal-backdrop-component.ts","../../../projects/ng-components/src/lib/services/modal-service/modal-options.class.ts","../../../projects/ng-components/src/lib/services/modal-service/modal-container-component.ts","../../../projects/ng-components/src/lib/services/modal-service/modal.class.ts","../../../projects/ng-components/src/lib/services/modal-service/modal-service.ts","../../../projects/ng-components/src/lib/ng-components.module.ts","../../../projects/ng-components/src/public-api.ts","../../../projects/ng-components/src/indice-ng-components.ts"],"sourcesContent":["//\r\n// https://github.com/arkon/ng-click-outside\r\n// the project is inactive - so imoved the directive code in our project\r\n//\r\nimport {\r\n Directive,\r\n ElementRef,\r\n EventEmitter,\r\n Inject,\r\n Input,\r\n OnChanges,\r\n OnDestroy,\r\n OnInit,\r\n Output,\r\n PLATFORM_ID,\r\n SimpleChanges,\r\n NgZone,\r\n} from '@angular/core';\r\nimport { isPlatformBrowser } from '@angular/common';\r\n\r\n// tslint:disable-next-line:directive-selector\r\n@Directive({ selector: '[clickOutside]' })\r\nexport class ClickOutsideDirective implements OnInit, OnChanges, OnDestroy {\r\n\r\n @Input() clickOutsideEnabled = true;\r\n\r\n @Input() attachOutsideOnClick = false;\r\n @Input() delayClickOutsideInit = false;\r\n @Input() emitOnBlur = false;\r\n\r\n @Input() exclude = '';\r\n @Input() excludeBeforeClick = false;\r\n\r\n @Input() clickOutsideEvents = '';\r\n\r\n @Output() clickOutside: EventEmitter<Event> = new EventEmitter<Event>();\r\n\r\n // tslint:disable-next-line:variable-name\r\n private _nodesExcluded: Array<HTMLElement> = [];\r\n // tslint:disable-next-line:variable-name\r\n private _events: Array<string> = ['click'];\r\n\r\n constructor(\r\n // tslint:disable-next-line:variable-name\r\n private _el: ElementRef,\r\n // tslint:disable-next-line:variable-name\r\n private _ngZone: NgZone,\r\n @Inject(PLATFORM_ID) private platformId: any) {\r\n this._initOnClickBody = this._initOnClickBody.bind(this);\r\n this._onClickBody = this._onClickBody.bind(this);\r\n this._onWindowBlur = this._onWindowBlur.bind(this);\r\n }\r\n\r\n ngOnInit(): void {\r\n if (!isPlatformBrowser(this.platformId)) { return; }\r\n\r\n this._init();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (!isPlatformBrowser(this.platformId)) { return; }\r\n\r\n this._removeClickOutsideListener();\r\n this._removeAttachOutsideOnClickListener();\r\n this._removeWindowBlurListener();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (!isPlatformBrowser(this.platformId)) { return; }\r\n\r\n // tslint:disable-next-line:no-string-literal\r\n if (changes['attachOutsideOnClick'] || changes['exclude'] || changes['emitOnBlur']) {\r\n this._init();\r\n }\r\n }\r\n\r\n private _init(): void {\r\n if (this.clickOutsideEvents !== '') {\r\n this._events = this.clickOutsideEvents.split(',').map(e => e.trim());\r\n }\r\n\r\n this._excludeCheck();\r\n\r\n if (this.attachOutsideOnClick) {\r\n this._initAttachOutsideOnClickListener();\r\n } else {\r\n this._initOnClickBody();\r\n }\r\n\r\n if (this.emitOnBlur) {\r\n this._initWindowBlurListener();\r\n }\r\n }\r\n\r\n private _initOnClickBody(): void {\r\n if (this.delayClickOutsideInit) {\r\n setTimeout(this._initClickOutsideListener.bind(this));\r\n } else {\r\n this._initClickOutsideListener();\r\n }\r\n }\r\n\r\n private _excludeCheck(): void {\r\n if (this.exclude) {\r\n try {\r\n const nodes = Array.from(document.querySelectorAll(this.exclude)) as Array<HTMLElement>;\r\n if (nodes) {\r\n this._nodesExcluded = nodes;\r\n }\r\n } catch (err) {\r\n console.error('[ng-click-outside] Check your exclude selector syntax.', err);\r\n }\r\n }\r\n }\r\n\r\n private _onClickBody(ev: Event): void {\r\n if (!this.clickOutsideEnabled) { return; }\r\n\r\n if (this.excludeBeforeClick) {\r\n this._excludeCheck();\r\n }\r\n\r\n if (!this._el.nativeElement.contains(ev.target) && !this._shouldExclude(ev.target)) {\r\n this._emit(ev);\r\n\r\n if (this.attachOutsideOnClick) {\r\n this._removeClickOutsideListener();\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Resolves problem with outside click on iframe\r\n * @see https://github.com/arkon/ng-click-outside/issues/32\r\n */\r\n private _onWindowBlur(ev: Event): void {\r\n setTimeout(() => {\r\n if (!document.hidden) {\r\n this._emit(ev);\r\n }\r\n });\r\n }\r\n\r\n private _emit(ev: Event): void {\r\n if (!this.clickOutsideEnabled) { return; }\r\n\r\n this._ngZone.run(() => this.clickOutside.emit(ev));\r\n }\r\n\r\n private _shouldExclude(target: any): boolean {\r\n // tslint:disable-next-line:prefer-const\r\n for (let excludedNode of this._nodesExcluded) {\r\n if (excludedNode.contains(target)) {\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n\r\n private _initClickOutsideListener(): void {\r\n this._ngZone.runOutsideAngular(() => {\r\n this._events.forEach(e => document.addEventListener(e, this._onClickBody));\r\n });\r\n }\r\n\r\n private _removeClickOutsideListener(): void {\r\n this._ngZone.runOutsideAngular(() => {\r\n this._events.forEach(e => document.removeEventListener(e, this._onClickBody));\r\n });\r\n }\r\n\r\n private _initAttachOutsideOnClickListener(): void {\r\n this._ngZone.runOutsideAngular(() => {\r\n this._events.forEach(e => this._el.nativeElement.addEventListener(e, this._initOnClickBody));\r\n });\r\n }\r\n\r\n private _removeAttachOutsideOnClickListener(): void {\r\n this._ngZone.runOutsideAngular(() => {\r\n this._events.forEach(e => this._el.nativeElement.removeEventListener(e, this._initOnClickBody));\r\n });\r\n }\r\n\r\n private _initWindowBlurListener(): void {\r\n this._ngZone.runOutsideAngular(() => {\r\n window.addEventListener('blur', this._onWindowBlur);\r\n });\r\n }\r\n\r\n private _removeWindowBlurListener(): void {\r\n this._ngZone.runOutsideAngular(() => {\r\n window.removeEventListener('blur', this._onWindowBlur);\r\n });\r\n }\r\n}\r\n","import { Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges } from '@angular/core';\r\nimport { MenuOption } from '../../types';\r\n\r\n@Component({\r\n // tslint:disable-next-line:component-selector\r\n selector: 'lib-drop-down-menu',\r\n templateUrl: './drop-down-menu.component.html',\r\n})\r\nexport class DropDownMenuComponent implements OnInit, OnChanges {\r\n @Input() options: MenuOption[] | undefined = [];\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('selected') selectedValue: any | null | undefined = undefined;\r\n @Input() multiple = false;\r\n @Input() placeholder: string = 'Παρακαλώ επιλέξτε...';\r\n @Input('show-icons') showIcons = true;\r\n\r\n private selectedOption$: MenuOption | null = null;\r\n public get selectedOption(): MenuOption | null {\r\n return this.selectedOption$;\r\n }\r\n public set selectedOption(option: MenuOption | null) {\r\n this.selectedOption$ = option;\r\n this.selectedValue = option ? option.value : null;\r\n this.expanded = false;\r\n }\r\n\r\n @Output() selectedChange: EventEmitter<any> = new EventEmitter<any>();\r\n @Output() selectedChanged: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n private expanded$ = false;\r\n public get expanded(): boolean {\r\n return this.expanded$;\r\n }\r\n public set expanded(value: boolean) {\r\n this.expanded$ = value;\r\n }\r\n constructor() {}\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (this.options && this.options.length > 0 && this.selectedValue !== null && this.selectedValue !== undefined) {\r\n this.selectedOption$ = this.options.filter((o) => o.value === this.selectedValue)[0];\r\n }\r\n }\r\n\r\n ngOnInit(): void {}\r\n\r\n public isSelected(option: MenuOption): boolean {\r\n return option != null && this.selectedValue != null && option.value === this.selectedValue;\r\n }\r\n\r\n public onClickOutside($event: any): void {\r\n this.expanded = false;\r\n }\r\n\r\n public selectOption(option: MenuOption): void {\r\n this.selectedOption = option;\r\n this.selectedChange.emit(option.value);\r\n this.selectedChanged.emit(option.value);\r\n }\r\n}\r\n","<div class=\"dropdown-container\" (clickOutside)=\"onClickOutside($event)\">\r\n <button\r\n type=\"button\"\r\n (click)=\"expanded = !expanded\"\r\n class=\"dropdown-button\"\r\n aria-haspopup=\"listbox\"\r\n aria-expanded=\"true\"\r\n aria-labelledby=\"listbox-label\">\r\n <span class=\"dropdown-selected-text\">\r\n <i *ngIf=\"selectedOption?.icon && showIcons\" \r\n [class]=\"selectedOption?.icon\" \r\n [class.mr-2]=\"selectedOption?.icon\"></i>{{ selectedOption?.text || placeholder }}\r\n </span>\r\n <span class=\"dropdown-button-icon\">\r\n <!-- Heroicon name: solid/selector -->\r\n <svg class=\"dropdown-arrow\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\">\r\n <path\r\n fill-rule=\"evenodd\"\r\n d=\"M10 3a1 1 0 01.707.293l3 3a1 1 0 01-1.414 1.414L10 5.414 7.707 7.707a1 1 0 01-1.414-1.414l3-3A1 1 0 0110 3zm-3.707 9.293a1 1 0 011.414 0L10 14.586l2.293-2.293a1 1 0 011.414 1.414l-3 3a1 1 0 01-1.414 0l-3-3a1 1 0 010-1.414z\"\r\n clip-rule=\"evenodd\"\r\n />\r\n </svg>\r\n </span>\r\n </button>\r\n <ul\r\n *ngIf=\"expanded && options && options.length > 0\"\r\n class=\"dropdown-ul\"\r\n tabindex=\"-1\"\r\n role=\"listbox\"\r\n aria-labelledby=\"listbox-label\"\r\n aria-activedescendant=\"listbox-option-3\"\r\n >\r\n <ng-container *ngFor=\"let option of options\">\r\n <li\r\n [class]=\"isSelected(option) ? 'dropdown-li-selected' : 'dropdown-li'\"\r\n (click)=\"selectOption(option)\"\r\n id=\"listbox-option-0\"\r\n role=\"option\"\r\n >\r\n <span [class]=\"isSelected(option) ? 'dropdown-li-selected-text' : 'dropdown-li-text'\">\r\n <i *ngIf=\"option.icon && showIcons\" [class]=\"option.icon\" [class.mr-2]=\"option.icon\"></i>{{ option.text }}\r\n </span>\r\n <span *ngIf=\"isSelected(option)\" class=\"dropdown-li-selected-indicator-container\">\r\n <!-- Heroicon name: solid/check -->\r\n <svg\r\n class=\"dropdown-li-selected-indicator\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 20 20\"\r\n fill=\"currentColor\"\r\n aria-hidden=\"true\"\r\n >\r\n <path\r\n fill-rule=\"evenodd\"\r\n d=\"M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z\"\r\n clip-rule=\"evenodd\"\r\n />\r\n </svg>\r\n </span>\r\n </li>\r\n </ng-container>\r\n </ul>\r\n</div>\r\n","export class Icons {\r\n // https://uifabricicons.azurewebsites.net/\r\n public static Dashboard = `ms-Icon ms-Icon--HomeGroup `;\r\n public static Locations = `ms-Icon ms-Icon--MapPin `;\r\n public static ChargePoints = `ms-Icon ms-Icon--ChatBot `;\r\n public static Transations = `ms-Icon ms-Icon--LightningBolt `;\r\n public static Badges = `ms-Icon ms-Icon--IDBadge `;\r\n\r\n public static Information = `ms-Icon ms-Icon--Info`;\r\n public static Refresh = `ms-Icon ms-Icon--Refresh`;\r\n public static Search = `ms-Icon ms-Icon--Search`;\r\n public static Add = `ms-Icon ms-Icon--Add`;\r\n public static Delete = `ms-Icon ms-Icon--Delete`;\r\n public static SendEmail = `ms-Icon ms-Icon--NewMail`;\r\n public static Filter = `ms-Icon ms-Icon--Filter`;\r\n public static Export = `ms-Icon ms-Icon--ExcelDocument`;\r\n public static Import = `ms-Icon ms-Icon--PeopleAdd`;\r\n\r\n public static TilesView = `ms-Icon ms-Icon--AppIconDefault`;\r\n public static TableView = `ms-Icon ms-Icon--Table`;\r\n public static MapView = `ms-Icon ms-Icon--MapPin`;\r\n public static EntryView = `ms-Icon ms-Icon--EntryView`;\r\n\r\n public static Separator = `ms-Icon ms-Icon--Separator text-white`;\r\n\r\n public static ItemsCount = 'ms-Icon ms-Icon--Boards';\r\n\r\n public static Heart = 'ms-Icon ms-Icon--Heart';\r\n public static HeartBroken = 'ms-Icon ms-Icon--HeartBroken';\r\n public static DateTime = 'ms-Icon ms-Icon--ReminderTime';\r\n\r\n public static Expand = 'ms-Icon ms-Icon--ChevronDown';\r\n public static Collapse = 'ms-Icon ms-Icon--ChevronUp';\r\n\r\n public static SortAsc = 'ms-Icon ms-Icon--Ascending';\r\n public static SortDesc = 'ms-Icon ms-Icon--Descending';\r\n\r\n public static Details = ' ms-Icon ms-Icon--AccountActivity';\r\n\r\n public static Messages = ' ms-Icon ms-Icon--Message';\r\n public static MessagesUnread = ' ms-Icon ms-Icon--MessageFill';\r\n\r\n public static External = ' ms-Icon ms-Icon--FileSymlink';\r\n public static Statistics = ' ms-Icon ms-Icon--BIDashboard';\r\n}\r\n","import { Observable } from 'rxjs';\r\nimport { Icons } from './icons';\r\nimport { Params } from '@angular/router';\r\n\r\n\r\nexport interface IAppNotifications {\r\n messages: Observable<IResultSet<NavLink>>;\r\n getMessage?: (predicate: (value: any, index: number, obj: any[]) => any) => any | undefined;\r\n markMessageRead?: (predicate: (value: any, index: number, obj: any[]) => any) => any | undefined;\r\n refresh?: () => void | undefined;\r\n inboxAction?: () => void | undefined;\r\n}\r\n\r\nexport interface IAppLanguagesService {\r\n options: Observable<MenuOption[]> | undefined;\r\n selected?: string;\r\n default?: string;\r\n setSelected?: (lang: string) => void | undefined;\r\n}\r\n\r\nexport interface IAppLinks {\r\n public: Observable<NavLink[]>;\r\n main: Observable<NavLink[]>;\r\n profile: Observable<NavLink[]>;\r\n profileActions: Observable<NavLink[]>;\r\n legal: Observable<NavLink[]>;\r\n brand: Observable<NavLink[]>;\r\n notifications?: Observable<NavLink>;\r\n}\r\n\r\n\r\nexport class NavLink {\r\n constructor(text: string, path: string, exact: boolean = false, external: boolean = false, icon?: string, data?: any, queryParams?: Params) {\r\n this.text = text;\r\n this.path = path;\r\n this.exact = exact;\r\n this.external = external;\r\n this.icon = icon;\r\n this.data = data;\r\n this.queryParams = queryParams;\r\n }\r\n public text: string;\r\n public path: string;\r\n public exact: boolean;\r\n public external: boolean;\r\n public icon: string | undefined;\r\n public type = 'router';\r\n public data: any | undefined;\r\n public queryParams: Params | undefined;\r\n}\r\n\r\nexport class ExternalNavLink extends NavLink {\r\n constructor(text: string, path: string, openInNewTab?: boolean, icon?: string) {\r\n super(text, path, true, openInNewTab, icon ?? Icons.External);\r\n }\r\n public type = 'external';\r\n}\r\n\r\nexport class FragmentNavLink extends NavLink {\r\n constructor(text: string, path: string, icon?: string) {\r\n super(text, path, true, true, icon);\r\n }\r\n public type = 'fragment';\r\n}\r\n\r\nexport class NotificationNavLink extends NavLink {\r\n constructor(text: string, path: string, public isRead: boolean, public creationDate?: Date) {\r\n super(text, path, true, false, undefined);\r\n }\r\n}\r\n\r\nexport class ViewAction {\r\n public type: string;\r\n public key: string | null;\r\n public param: any;\r\n public icon: string;\r\n public tooltip: string | null;\r\n public text?: string;\r\n\r\n constructor(type: string, key: string | null, param: any, icon: string, tooltip: string | null, text?: string) {\r\n this.type = type;\r\n this.key = key;\r\n this.param = param;\r\n this.icon = icon;\r\n this.tooltip = tooltip;\r\n this.text = text;\r\n }\r\n}\r\n\r\nexport class ListViewType {\r\n public static Tiles = 'tiles';\r\n public static Table = 'table';\r\n public static Map = 'map';\r\n public static Gallery = 'gallery';\r\n}\r\n\r\nexport class RouterViewAction extends ViewAction {\r\n public outlet: string | null = null;\r\n public link: string | null = null;\r\n constructor(icon: string, link: string, outlet: string | null, tooltip: string | null, text?: string) {\r\n super('router-link', null, null, icon, tooltip, text);\r\n this.outlet = outlet;\r\n this.link = link;\r\n }\r\n}\r\n\r\n\r\nexport class SwitchViewAction extends ViewAction {\r\n constructor(view: string, icon: string, tooltip: string | null) {\r\n super('switch-view', null, view, icon, tooltip);\r\n }\r\n}\r\n\r\nexport interface IResultSet<T> {\r\n count: number;\r\n items: T[];\r\n}\r\n\r\nexport class HeaderMetaItem {\r\n public key: string | null = null;\r\n public icon: string | null = null;\r\n public text: string | null = null;\r\n}\r\n\r\nexport class MenuOption {\r\n constructor(text: string, value: any, description?: string, data?: any, icon?: string) {\r\n this.text = text;\r\n this.value = value;\r\n this.description = description;\r\n this.data = data;\r\n this.icon = icon;\r\n }\r\n public text: string;\r\n public value: any;\r\n public description: string | undefined;\r\n public data: any | undefined;\r\n public icon: string | undefined;\r\n}\r\n\r\nexport enum PagerPosition {\r\n Top = 'top',\r\n Bottom = 'bottom',\r\n Both = 'both'\r\n}\r\n\r\nexport interface IAddress {\r\n id?: string;\r\n street?: string | null;\r\n streetNumber?: string | null;\r\n city?: string | null;\r\n region?: string | null;\r\n postalCode?: string | null;\r\n country?: string | null;\r\n}\r\n\r\nexport interface IShellConfig {\r\n appLogo: string;\r\n appLogoAlt: string;\r\n breadcrumb: boolean;\r\n customFooterComponent?: any;\r\n customHeaderComponent?: any;\r\n fluid: boolean;\r\n layout?: ShellLayoutType;\r\n showAlertsOnHeader?: boolean;\r\n showFooter: boolean;\r\n showHeader: boolean;\r\n showLangsOnHeader?: boolean;\r\n showUserNameOnHeader?: boolean;\r\n}\r\n\r\nexport enum ShellLayoutType {\r\n Stacked = 'Stacked',\r\n Sidebar = 'Sidebar'\r\n}\r\n\r\nexport class DefaultShellConfig implements IShellConfig {\r\n appLogo = 'https://tailwindui.com/img/logos/workflow-mark.svg?color=white';\r\n appLogoAlt = 'your app name here';\r\n breadcrumb = false;\r\n fluid = false;\r\n layout = ShellLayoutType.Stacked;\r\n showAlertsOnHeader = false;\r\n showFooter = true;\r\n showHeader = true;\r\n showUserNameOnHeader = false;\r\n}\r\n\r\nexport enum SCREEN_SIZE {\r\n XS,\r\n SM,\r\n MD,\r\n LG,\r\n XL\r\n}\r\n\r\nexport interface IScreenSize {\r\n id: SCREEN_SIZE;\r\n name: string;\r\n css: string;\r\n}\r\n\r\nexport enum ToastType {\r\n Info = 'info',\r\n Success = 'success',\r\n Error = 'error',\r\n Warning = 'warning'\r\n}\r\n\r\nexport const NULL_TOAST = { title: '_____NULL_____' } as Toast;\r\n\r\nexport interface Toast {\r\n type: ToastType;\r\n title: string;\r\n body: string;\r\n delay: number;\r\n}\r\n\r\nexport enum SidePaneSize {\r\n Default = '',\r\n Small25 = '25%',\r\n Medium50 = '50%',\r\n Large75 = '75%'\r\n}\r\n\r\nexport enum SidePaneOverlayType {\r\n Default = '',\r\n None = '-opacity-0',\r\n Light = '',\r\n Dark = '-opacity-50'\r\n}\r\n\r\n\r\nexport interface IValidationProblemDetails {\r\n type?: string | undefined;\r\n title?: string | undefined;\r\n status?: number | undefined;\r\n detail?: string | undefined;\r\n instance?: string | undefined;\r\n errors?: { [key: string]: string[]; } | undefined;\r\n}\r\n\r\nexport type UserSettingKey = 'MobileSideBar';\r\n","import { Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { Icons } from '../../icons';\r\nimport { MenuOption } from '../../types';\r\n\r\n@Component({\r\n selector: 'lib-pager',\r\n templateUrl: './pager.component.html'\r\n})\r\nexport class PagerComponent implements OnInit, OnChanges {\r\n // BUSY STATE\r\n @Input() busy = false;\r\n // PAGING\r\n @Input() count: number | null = null;\r\n @Input() page = 1;\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('page-size') pageSize = 20;\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('page-size-options') pageSizeOptions: MenuOption[] = [\r\n new MenuOption('10', 10),\r\n new MenuOption('20', 20),\r\n new MenuOption('30', 30),\r\n new MenuOption('50', 50),\r\n new MenuOption('100', 100)\r\n ];\r\n public pages: MenuOption[] = [];\r\n @Output() pageChanged: EventEmitter<number> = new EventEmitter<number>();\r\n @Output() pageSizeChanged: EventEmitter<number> = new EventEmitter<number>();\r\n public canPreviousPage = false;\r\n public canNextPage = false;\r\n\r\n // SORTING\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('sort-options') sortOptions: MenuOption[] = [];\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('sort') sort: string | null = null;\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('sort-dir') sortdir: string | null = 'desc';\r\n @Output() sortChanged: EventEmitter<string> = new EventEmitter<string>();\r\n @Output() sortdirChanged: EventEmitter<string> = new EventEmitter<string>();\r\n public sortdirIcon = Icons.SortDesc;\r\n\r\n constructor(private router: Router) { }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n this.calcPages();\r\n }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n private calcPages(): void {\r\n this.pages = [];\r\n if (this.count && this.count > 0) {\r\n const pageCount = this.count / this.pageSize;\r\n for (let i = 0; i < pageCount; i++) {\r\n this.pages.push(new MenuOption(i + 1 + '', i + 1));\r\n }\r\n }\r\n this.canPreviousPage = this.page > 1;\r\n this.canNextPage = this.page < this.pages.length;\r\n }\r\n\r\n public nextPage(): void {\r\n const next = this.page + 1;\r\n this.gotoPage(next);\r\n }\r\n\r\n public previousPage(): void {\r\n const previous = this.page - 1;\r\n this.gotoPage(previous);\r\n }\r\n\r\n public gotoPage(page: number): void {\r\n this.page = page;\r\n this.pageChanged.emit(page);\r\n this.calcPages();\r\n }\r\n\r\n public pageSizeOptionChanged(pageSize: number): void {\r\n this.pageSizeChanged.emit(pageSize);\r\n this.calcPages();\r\n }\r\n\r\n public pageOptionChanged(page: number): void {\r\n this.pageChanged.emit(page);\r\n this.calcPages();\r\n }\r\n\r\n public sortOptionChanged(sort: string): void {\r\n this.sortChanged.emit(sort);\r\n }\r\n\r\n public toggleSortdir(): void {\r\n let sortdir = 'desc';\r\n if (this.sortdir === 'desc') {\r\n sortdir = 'asc';\r\n this.sortdirIcon = Icons.SortAsc;\r\n } else {\r\n sortdir = 'desc';\r\n this.sortdirIcon = Icons.SortDesc;\r\n }\r\n this.sortdirChanged.emit(sortdir);\r\n }\r\n\r\n}\r\n","<div class=\"pager-container\">\r\n <div class=\"pager-container-near\">\r\n <ng-content select=\"[pager-near-content]\"></ng-content>\r\n </div>\r\n <div class=\"pager-container-far\">\r\n <div class=\"inline-flex\" *ngIf=\"sortOptions && sortOptions.length > 0\">\r\n <lib-drop-down-menu [options]=\"sortOptions\" [selected]=\"sort\" (selectedChanged)=\"sortOptionChanged($event)\"></lib-drop-down-menu>\r\n <button (click)=\"toggleSortdir()\" [disabled]=\"!sort || busy\" class=\"pager-icon-button\">\r\n <span class=\"sr-only\">sort direction</span>\r\n <span class=\"inline-block relative\">\r\n <i [class]=\"sortdirIcon\"></i>\r\n </span>\r\n </button>\r\n </div>\r\n <div class=\"pager-pages-container\">\r\n <lib-drop-down-menu [options]=\"pageSizeOptions\" [selected]=\"pageSize\" (selectedChanged)=\"pageSizeOptionChanged($event)\"></lib-drop-down-menu>\r\n <div class=\"mx-1\">\r\n <button [disabled]=\"!canPreviousPage || busy\" (click)=\"previousPage()\"\r\n class=\"pager-arrow-button-left\">\r\n <span class=\"sr-only\">Previous</span>\r\n <svg class=\"h-5 w-5\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\">\r\n <path fill-rule=\"evenodd\" d=\"M12.707 5.293a1 1 0 010 1.414L9.414 10l3.293 3.293a1 1 0 01-1.414 1.414l-4-4a1 1 0 010-1.414l4-4a1 1 0 011.414 0z\" clip-rule=\"evenodd\" />\r\n </svg>\r\n </button>\r\n <button type=\"button\"\r\n [disabled]=\"!canNextPage || busy\" (click)=\"nextPage()\"\r\n class=\"pager-arrow-button-right\">\r\n <span class=\"sr-only\">Next</span>\r\n <svg class=\"h-5 w-5\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\">\r\n <path fill-rule=\"evenodd\" d=\"M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z\" clip-rule=\"evenodd\" />\r\n </svg>\r\n </button>\r\n </div>\r\n <lib-drop-down-menu *ngIf=\"false && (pages && pages.length > 0)\" [options]=\"pages\" [selected]=\"page\" (selectedChanged)=\"pageOptionChanged($event)\"></lib-drop-down-menu>\r\n </div>\r\n </div>\r\n</div>\r\n","export class BreadcrumbItem {\r\n constructor(public title?: string, public url?: string) {\r\n this.level = 0;\r\n }\r\n\r\n public level: number;\r\n\r\n public get urlSegments(): string[] | undefined {\r\n if (this.url) {\r\n return this.url?.split('/').filter(x => x !== '');\r\n }\r\n return undefined;\r\n }\r\n}","import { InjectionToken } from '@angular/core';\r\n\r\nimport { IAppLinks, IAppLanguagesService, IAppNotifications, IShellConfig } from './types';\r\nimport { LibStepperComponent } from './controls/stepper/lib-stepper.component';\r\nimport { LibTabGroupComponent } from './controls/tabs/lib-tab-group.component';\r\n\r\nexport const APP_LANGUAGES = new InjectionToken<IAppLanguagesService>('APP_LANGUAGES');\r\nexport const APP_LINKS = new InjectionToken<IAppLinks>('APP_LINKS');\r\nexport const APP_NOTIFICATIONS = new InjectionToken<IAppNotifications>('APP_NOTIFICATIONS');\r\nexport const LIBSTEPPER_ACCESSOR = new InjectionToken<LibStepperComponent>('LibStepperAccessor');\r\nexport const LIBTABGROUP_ACCESSOR = new InjectionToken<LibTabGroupComponent>('LibTabGroupAccessor');\r\nexport const SHELL_CONFIG = new InjectionToken<IShellConfig>('SHELL_CONFIG');\r\n","import { Injectable } from '@angular/core';\r\nimport { IValidationProblemDetails } from '../types';\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class UtilitiesService {\r\n constructor() { }\r\n\r\n public problemDetails?: IValidationProblemDetails;\r\n\r\n public get validationErrors(): string[] {\r\n const messages: string[] = [];\r\n const errors = this.problemDetails && this.problemDetails.errors;\r\n for (const property in errors) {\r\n if (property) {\r\n const propertyMessages = errors[property];\r\n propertyMessages.forEach((message: string) => {\r\n messages.push(message);\r\n });\r\n } else {\r\n Object.values(errors || {}).forEach(message => {\r\n message.forEach(x => {\r\n messages.push(x);\r\n });\r\n });\r\n }\r\n }\r\n return messages;\r\n }\r\n\r\n public getValidationProblemDetails(problemDetails: IValidationProblemDetails): string[] {\r\n this.problemDetails = problemDetails;\r\n if (this.validationErrors.length === 0 && this.problemDetails.title) {\r\n return new Array<string>(1).fill(this.problemDetails.title);\r\n }\r\n return this.validationErrors;\r\n }\r\n\r\n public getPathFromUrl(url: string): string | undefined {\r\n if (!url) {\r\n return undefined;\r\n }\r\n return url.split(/[?#]/)[0];\r\n }\r\n}\r\n","import { Inject, Injectable, Optional } from '@angular/core';\r\nimport { Data, NavigationEnd, Route, Router } from '@angular/router';\r\n\r\nimport { Observable, Subject } from 'rxjs';\r\nimport { distinctUntilChanged, filter } from 'rxjs/operators';\r\nimport { BreadcrumbItem } from '../controls/breadcrumb/breadcrumb-item';\r\nimport { SHELL_CONFIG } from '../tokens';\r\nimport { UtilitiesService } from './utilities.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BreadcrumbService {\r\n private _defaultHome: BreadcrumbItem | undefined;\r\n private _breadcrumb$: Subject<BreadcrumbItem[]> = new Subject<BreadcrumbItem[]>();\r\n\r\n constructor(\r\n private _router: Router,\r\n private _utilities: UtilitiesService,\r\n @Optional() @Inject(SHELL_CONFIG) public _shellConfig?: any\r\n ) {\r\n if (_shellConfig?.breadcrumb) {\r\n this._defaultHome = this._getDefaultHomeItem();\r\n this._router\r\n .events\r\n .pipe(\r\n filter(event => event instanceof NavigationEnd),\r\n distinctUntilChanged()\r\n )\r\n .subscribe(_ => {\r\n const breadcrumb = [...this._buildBreadcrumb()];\r\n this._breadcrumb$.next(breadcrumb);\r\n });\r\n }\r\n }\r\n\r\n public breadcrumb: Observable<BreadcrumbItem[]> = this._breadcrumb$.asObservable();\r\n\r\n private _getDefaultHomeItem(): BreadcrumbItem | undefined {\r\n const routerConfig = this._router.config;\r\n const declaredHomeRoutes = routerConfig.filter((route: Route) => route.data?.breadcrumb?.isHome === true);\r\n if (declaredHomeRoutes.length > 1) {\r\n throw new Error('You can declare only one route as home.');\r\n }\r\n let homeRoute: Route | undefined;\r\n if (declaredHomeRoutes.length === 1) {\r\n homeRoute = declaredHomeRoutes[0];\r\n } else {\r\n homeRoute = routerConfig.find((route: Route) => route.path === '');\r\n if (!homeRoute) {\r\n return undefined;\r\n }\r\n const redirectionUrl = homeRoute.redirectTo;\r\n if (!homeRoute?.data?.breadcrumb?.title && redirectionUrl) {\r\n homeRoute = routerConfig.find((route: Route) => route.path === redirectionUrl);\r\n if (!homeRoute) {\r\n return undefined;\r\n }\r\n }\r\n }\r\n return new BreadcrumbItem(this._getRouteTitle(homeRoute), homeRoute.path || '');\r\n }\r\n\r\n private _getRouteTitle(route: Route) {\r\n return route?.data?.breadcrumb?.title || route.component?.name.replace('Component', '');\r\n }\r\n\r\n private _buildBreadcrumb(): BreadcrumbItem[] {\r\n const breadcrumb: BreadcrumbItem[] = [];\r\n if (this._defaultHome) {\r\n breadcrumb.push(this._defaultHome);\r\n }\r\n const url = this._router.url;\r\n const path = this._utilities.getPathFromUrl(url) || '';\r\n const activeRoute = this._findRouteFromUrl(path);\r\n const parentRoutes = this._findParentRoutes(activeRoute);\r\n breadcrumb.push(...parentRoutes);\r\n if (activeRoute && activeRoute?.path !== this._defaultHome?.url) {\r\n const routeData = this._getBreadcrumbRouteData(activeRoute);\r\n breadcrumb.push(new BreadcrumbItem(this._getRouteTitle(activeRoute), (routeData._fullPath || activeRoute.path || '')));\r\n }\r\n return breadcrumb.map((route: BreadcrumbItem) => {\r\n const routeSegments = route.url?.split('/') || [];\r\n routeSegments.forEach((segment: string, index: number) => {\r\n if (segment.startsWith(':')) {\r\n route.url = route.url?.replace(segment, url.split('/')[index + 1]);\r\n }\r\n });\r\n return route;\r\n });\r\n }\r\n\r\n private _findRouteFromUrl(url: string): Route | undefined {\r\n const urlSegments = url.split('/').filter((segment: string) => segment !== '');\r\n const routerConfig = this._router.config;\r\n const flattenedRouterConfig = this._flattenRoutes(routerConfig);\r\n const filteredRouterConfig = flattenedRouterConfig.filter((route: Route) => {\r\n const routeData = this._getBreadcrumbRouteData(route);\r\n return (routeData._fullPath || route.path)?.split('/').length === urlSegments.length;\r\n });\r\n const route = filteredRouterConfig.find((route: Route) => {\r\n const routeData = this._getBreadcrumbRouteData(route);\r\n const routeSegments = (routeData._fullPath || route.path)?.split('/') || [];\r\n let segmentsMatched = false;\r\n for (let i = 0; i < routeSegments.length; i++) {\r\n const currentSegment = routeSegments[i];\r\n const isDynamicSegment = currentSegment.startsWith(':');\r\n if (!isDynamicSegment) {\r\n segmentsMatched = currentSegment === urlSegments[i];\r\n }\r\n }\r\n return segmentsMatched ? route : undefined;\r\n });\r\n return route;\r\n }\r\n\r\n private _findParentRoutes(activeRoute: Route | undefined, items: BreadcrumbItem[] = []): BreadcrumbItem[] {\r\n if (!activeRoute) {\r\n return [];\r\n }\r\n const routeData = this._getBreadcrumbRouteData(activeRoute);\r\n let urlSegments = (routeData._fullPath || activeRoute.path)?.split('/').filter((segment: string) => segment !== '') || [];\r\n if (urlSegments?.length <= 1) {\r\n return [...items];\r\n }\r\n const previousUrl = urlSegments.slice(0, -1).join('/');\r\n const route = this._findRouteFromUrl(previousUrl);\r\n if (route) {\r\n const routeData = this._getBreadcrumbRouteData(route);\r\n if (routeData._level > 0 || (!route.children || route.children.length === 0)) {\r\n items.push(new BreadcrumbItem(this._getRouteTitle(route), routeData._fullPath || route.path));\r\n this._findParentRoutes(route, [...items]);\r\n }\r\n }\r\n return [...items];\r\n }\r\n\r\n private _flattenRoutes(routes: Route[], level?: number): Route[] {\r\n let children: Route[] = [];\r\n level = level || 0;\r\n return routes.map((route: Route) => {\r\n const routeData = this._getBreadcrumbRouteData(route);\r\n routeData._level = level!;\r\n if (route.children && route.children.length) {\r\n route.children.forEach((child: Route) => {\r\n const childRouteData = this._getBreadcrumbRouteData(child);\r\n const routePath = routeData._fullPath || route.path || '';\r\n const childPath = child.path?.endsWith('/') ? child.path.slice(0, -1) : child.path;\r\n childRouteData._fullPath = childPath?.indexOf(routePath) === -1 ? `${routePath}/${childPath}` : childPath;\r\n });\r\n children = [...children, ...route.children];\r\n }\r\n return route;\r\n }).concat(children.length ? this._flattenRoutes(children, level + 1) : children);\r\n }\r\n\r\n private _getBreadcrumbRouteData(route: Route | undefined): BreadcrumbRouteData {\r\n if (!route) {\r\n throw new Error('No route was found');\r\n }\r\n if (!route.data?.breadcrumb) {\r\n if (!route.data) {\r\n route.data = {};\r\n }\r\n route.data.breadcrumb = new BreadcrumbRouteData(0, false, undefined);\r\n }\r\n return route.data.breadcrumb;\r\n }\r\n}\r\n\r\nexport class BreadcrumbRouteData {\r\n constructor(public _level: number, public isHome: boolean, public _fullPath?: string | undefined) { }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\nimport { BreadcrumbService } from '../../services/breadcrumb.service';\r\nimport { BreadcrumbItem } from './breadcrumb-item';\r\n\r\n@Component({\r\n selector: 'lib-breadcrumb',\r\n templateUrl: './breadcrumb.component.html'\r\n})\r\nexport class BreadcrumbComponent implements OnInit {\r\n constructor(\r\n private _breadcrumbService: BreadcrumbService\r\n ) { }\r\n\r\n public ngOnInit(): void {\r\n this._breadcrumbService\r\n .breadcrumb\r\n .subscribe((breadcrumb: BreadcrumbItem[]) => {\r\n this.breadcrumb = [...breadcrumb, new BreadcrumbItem('', '')];\r\n });\r\n }\r\n\r\n public breadcrumb: BreadcrumbItem[] = [];\r\n}\r\n","<nav class=\"bg-white border-b border-gray-200 flex\"\r\n aria-label=\"Breadcrumb\">\r\n <ol role=\"list\"\r\n class=\"w-full mx-auto px-4 flex space-x-4 sm:px-6 lg:px-8\">\r\n <li class=\"flex\"\r\n *ngFor=\"let item of breadcrumb; let i = index\">\r\n <div class=\"flex items-center\">\r\n <ng-container *ngTemplateOutlet=\"i === 0 ? homeTemplate : linkTemplate; context: { value: item }\"></ng-container>\r\n </div>\r\n </li>\r\n </ol>\r\n</nav>\r\n<ng-template let-value=\"value\"\r\n #homeTemplate>\r\n <a [routerLink]=\"value.urlSegments\"\r\n [title]=\"value.title\"\r\n class=\"text-gray-400 hover:text-gray-500\">\r\n <svg class=\"flex-shrink-0 h-5 w-5\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 20 20\"\r\n fill=\"currentColor\"\r\n aria-hidden=\"true\">\r\n <path d=\"M10.707 2.293a1 1 0 00-1.414 0l-7 7a1 1 0 001.414 1.414L4 10.414V17a1 1 0 001 1h2a1 1 0 001-1v-2a1 1 0 011-1h2a1 1 0 011 1v2a1 1 0 001 1h2a1 1 0 001-1v-6.586l.293.293a1 1 0 001.414-1.414l-7-7z\" />\r\n </svg>\r\n <span class=\"sr-only\">{{ value.title }}</span>\r\n </a>\r\n</ng-template>\r\n<ng-template let-value=\"value\"\r\n #linkTemplate>\r\n <svg class=\"flex-shrink-0 w-6 h-full text-gray-200\"\r\n viewBox=\"0 0 24 44\"\r\n preserveAspectRatio=\"none\"\r\n fill=\"currentColor\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n aria-hidden=\"true\">\r\n <path d=\"M.293 0l22 22-22 22h1.414l22-22-22-22H.293z\" />\r\n </svg>\r\n <a [routerLink]=\"value.urlSegments\"\r\n class=\"ml-4 text-sm font-medium text-gray-500 hover:text-gray-700\">\r\n {{ value.title }}\r\n </a>\r\n</ng-template>","import { Component, ContentChild, Input, OnInit, TemplateRef } from '@angular/core';\r\n\r\n@Component({selector: 'lib-list-column', template: '<ng-content></ng-content>'})\r\nexport class ListColumnComponent {\r\n @Input() title: string | null = null;\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('full-width') fullWidth = false;\r\n @ContentChild(TemplateRef) template: any | null = null;\r\n constructor() { }\r\n}\r\n","import { Component, ContentChild, Input, OnInit, TemplateRef } from '@angular/core';\r\n\r\n@Component({ selector: 'lib-list-tile', template: '<ng-content></ng-content>' })\r\nexport class ListTileComponent{\r\n @ContentChild(TemplateRef) template: any | null = null;\r\n constructor() {\r\n }\r\n}\r\n","import { Component, ContentChild, Input, OnInit, TemplateRef } from '@angular/core';\r\n\r\n@Component({ selector: 'lib-list-details-section', template: '<ng-content></ng-content>' })\r\nexport class ListDetailsSectionComponent{\r\n @ContentChild(TemplateRef) template: any | null = null;\r\n constructor() {\r\n }\r\n}\r\n","import { formatDate } from \"@angular/common\";\r\n\r\nexport namespace Operators {\r\n export const EQUALS = { label: '=', value: 'eq', description: 'Ίσο με' };\r\n export const NOT_EQUALS = { label: '≠', value: 'neq', description: 'Διάφορο του' };\r\n export const GREATER_THAN = { label: '>', value: 'gt', description: 'Μεγαλύτερο από' };\r\n export const LESS_THAN = { label: '<', value: 'lt', description: 'Μικρότερο από' };\r\n export const GREATER_THAN_EQUAL = { label: '≥', value: 'gte', description: 'Μεγαλύτερο ή ίσο με' };\r\n export const LESS_THAN_EQUAL = { label: '≤', value: 'lte', description: 'Μικρότερο ή ίσο με' };\r\n export const CONTAINS = { label: '∋', value: 'contains', description: 'Περιέχει' };\r\n export const IN = { label: '1..n', value: 'in', description: 'Μέσα σε' };\r\n}\r\n\r\nexport enum QueryParameters {\r\n VIEW = 'view',\r\n PAGE_SIZE = 'pagesize',\r\n PAGE = 'page',\r\n SEARCH = 'search',\r\n SORT_FIELD = 'sort',\r\n SORT_DIRECTION = 'dir',\r\n FILTER = 'filter',\r\n FILTER_FROM = 'from',\r\n FILTER_TO = 'to'\r\n}\r\n\r\nexport interface SearchOption {\r\n name: string;\r\n field: string;\r\n dataType: FilterClause.Dt;\r\n array?: boolean;\r\n multiTerm?: boolean;\r\n options?: SelectInputOption[];\r\n placeholder?: string;\r\n}\r\n\r\nexport interface SelectInputOption {\r\n value: any;\r\n label: string;\r\n description?: string;\r\n}\r\n\r\nexport namespace FilterClause {\r\n export type Op = 'eq' | 'neq' | 'gt' | 'lt' | 'gte' | 'lte' | 'contains' | 'in';\r\n export type Dt = 'string' | 'integer' | 'number' | 'boolean' | 'datetime' | 'array' | 'daterange' | undefined;\r\n}\r\n\r\n// Dictionary with the DataType as a key and the value an array of available operators.\r\nexport interface IDictionary<T> {\r\n [key: string]: T;\r\n}\r\n\r\nexport const OperatorOptions: IDictionary<{ label: string; value: string; description?: string }[]> = {\r\n 'string': [Operators.EQUALS, Operators.NOT_EQUALS, Operators.CONTAINS],\r\n 'array': [Operators.EQUALS, Operators.NOT_EQUALS]\r\n};\r\n\r\nexport class FilterClause {\r\n // Member path to compare\r\n public member: string;\r\n // Value to compare against\r\n public value: any;\r\n // The operator to apply between the Indice.Types.FilterClause.Member and Indice.Types.FilterClause.Value\r\n public operator: FilterClause.Op;\r\n // The Indice.Types.JsonDataType of the data Indice.Types.FilterClause.Member\r\n public dataType: FilterClause.Dt;\r\n\r\n public uiName: string | undefined;\r\n public uiOperator: string | undefined;\r\n public uiValue: string | undefined;\r\n\r\n public constructor(member: string, value: any, operator?: FilterClause.Op, dataType?: FilterClause.Dt, searchOptions?: SearchOption[]) { // yeap, we do need searchOptions for the ui view model\r\n this.member = member;\r\n this.value = value;\r\n this.operator = operator || Operators.EQUALS.value as FilterClause.Op;\r\n this.dataType = dataType === undefined ? 'string' : dataType;\r\n // uiName\r\n if (this.dataType === 'datetime') { // special treatment for dates\r\n this.uiName = this.member === QueryParameters.FILTER_FROM ? 'Από' : 'Έως';\r\n } else {\r\n this.uiName = this.member;\r\n let fo = <any>{};\r\n if (searchOptions && searchOptions.length > 0) {\r\n fo = searchOptions.find((f) => {\r\n return f.field === this.member;\r\n });\r\n }\r\n\r\n if (fo && fo?.name?.length > 0) {\r\n this.uiName = fo.name;\r\n }\r\n }\r\n // We don't want a uiOperator for the datetime dataType. For strings and arrays we have the equals/not-equals/contains operators. The switch case can be expanded for more data types/operators when needed.\r\n if (this.dataType === 'datetime') {\r\n this.uiOperator = '';\r\n } else {\r\n switch (this.operator) {\r\n case (Operators.EQUALS.value):\r\n this.uiOperator = Operators.EQUALS.label;\r\n break;\r\n case (Operators.NOT_EQUALS.value):\r\n this.uiOperator = Operators.NOT_EQUALS.label;\r\n break;\r\n case (Operators.CONTAINS.value):\r\n this.uiOperator = Operators.CONTAINS.label;\r\n break;\r\n }\r\n }\r\n // uiValue\r\n this.uiValue = this.value;\r\n if ((this.dataType === 'datetime')) {\r\n this.uiValue = formatDate(new Date(this.value), 'dd/MM/yyyy', 'en-US');\r\n }\r\n let fo: SearchOption | undefined;\r\n if (searchOptions && searchOptions.length > 0) {\r\n fo = searchOptions.find((f) => {\r\n return f.field === this.member;\r\n });\r\n }\r\n if (fo && fo.options) { // special treatment for arrays, if there is an options property then it is an array\r\n this.dataType = 'array';\r\n this.uiValue = fo!.options!.find((option) => {\r\n return option.value === this.value;\r\n })?.label;\r\n }\r\n }\r\n\r\n public static parse(text: string): FilterClause | undefined {\r\n const pattern = /^\\s*([A-Za-z_][A-Za-z0-9_\\.]+)::(eq|neq|gt|lt|gte|lte|contains|in)::(\\((string|integer|number|boolean|datetime)\\))?(.+)\\s*$/gi;\r\n if (text != null) {\r\n const matches = pattern.exec(text);\r\n if (matches != null) {\r\n const path = matches[1];\r\n const op = <FilterClause.Op>matches[2];\r\n const dt = <FilterClause.Dt>matches[4];\r\n const v = matches[5];\r\n\r\n return new FilterClause(path, v, op, dt);\r\n }\r\n }\r\n return undefined;\r\n }\r\n\r\n public toString(): string {\r\n if (this.dataType !== 'string' && this.dataType !== 'array') {\r\n return `${this.member}::${this.operator}::(${this.dataType})${this.value}`;\r\n } else {\r\n return `${this.member}::${this.operator}::${this.value}`;\r\n }\r\n }\r\n}\r\n","import { getLocaleMonthNames, FormStyle, TranslationWidth, getLocaleDayNames } from '@angular/common';\r\nimport { Component, ElementRef, EventEmitter, forwardRef, Inject, Input, LOCALE_ID, OnInit, Output, ViewChild } from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\n\r\n// freaksly simple date picker : https://tailwind-elements.com/docs/standard/forms/datepicker/\r\n@Component({\r\n selector: 'lib-date-picker',\r\n templateUrl: './date-picker.component.html',\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => DatepickerComponent),\r\n multi: true\r\n }\r\n ]\r\n})\r\nexport class DatepickerComponent implements OnInit, ControlValueAccessor {\r\n @Input() readonly: boolean = false;\r\n @Input() disabled: boolean = false;\r\n @Input() inline: boolean = false;\r\n @Input('display-format') displayFormat: string | undefined = 'dd/MM/yyyy';\r\n @Input() placeholder: string | undefined = '';\r\n @Input() value: Date | undefined | null = null;\r\n @Output() valueChange: EventEmitter<Date> = new EventEmitter<Date>();\r\n @ViewChild('dateInput') dateInput: ElementRef | undefined;\r\n @Input() minDate: Date | undefined = undefined;\r\n @Input() maxDate: Date | undefined = undefined;\r\n public showCalendar = false;\r\n public showYears = false;\r\n public monthNames = getLocaleMonthNames(this.locale, FormStyle.Standalone, TranslationWidth.Wide);\r\n public dayNames = getLocaleDayNames(this.locale, FormStyle.Standalone, TranslationWidth.Abbreviated);\r\n\r\n public month: number = -1;\r\n public year: number = -1;\r\n public calendarDates: any[] = [];\r\n public calendarYears: any[] = [];\r\n public showCalendarYears: any[] = [];\r\n public blankDays: any[] = [];\r\n public calendarYearPage = 1;\r\n private yearsPerPage = 30;\r\n\r\n private onChange$: any | undefined = undefined;\r\n private onTouched$: any | undefined = undefined;\r\n\r\n ngOnInit(): void {\r\n let today = new Date();\r\n this.month = today.getMonth();\r\n this.year = today.getFullYear();\r\n this.calendarDates = [{ day: this.value, today: this.value, selected: this.value }];\r\n this.calendarYears = [{ year: this.value?.getFullYear(), today: this.value, selected: this.value }];\r\n const yearsArray = [];\r\n for (let i = 1950; i <= today.getFullYear() + 2; i++) {\r\n yearsArray.push({ year: i, today: this.compareDates(today, null, i), selected: i == this.value?.getFullYear() });\r\n }\r\n this.calendarYears = yearsArray;\r\n this.showCalendarYears = this.paginate(this.calendarYears, 1);\r\n this.calcDays();\r\n }\r\n\r\n constructor(@Inject(LOCALE_ID) public locale: string) { }\r\n\r\n writeValue(obj: any): void {\r\n if (obj) {\r\n this.value = new Date(obj);\r\n this.month = this.value.getMonth();\r\n this.year = this.value.getFullYear();\r\n }\r\n }\r\n\r\n registerOnChange(fn: (_: any) => void): void {\r\n this.onChange$ = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched$ = fn;\r\n }\r\n\r\n public onBlur(event: any): void {\r\n if (this.onTouched$) {\r\n this.onTouched$();\r\n }\r\n this.getDateFromInput();\r\n }\r\n\r\n public selectDateValue(date: any): void {\r\n // This should be in UTC\r\n if (!this.outOfRangeDate(date.day)) {\r\n let selectedDate = new Date(this.year, this.month, date.day, 3, 0, 0, 0);\r\n this.value = selectedDate;\r\n this.valueChange.emit(this.value);\r\n if (this.onChange$) {\r\n this.onChange$(this.value);\r\n }\r\n this.updateDays();\r\n if (this.onTouched$) {\r\n this.onTouched$();\r\n }\r\n this.calcDays();\r\n this.showCalendar = false;\r\n }\r\n }\r\n\r\n public selectYearValue(year: any): void {\r\n // This should be in UTC\r\n const tempYear = this.year;\r\n this.year = year.year;\r\n if (!this.outOfRangeDate(this.calendarDates?.find(x => x.selected == true) ?? { day: 1 })) {\r\n let selectedDate = new Date(year.year, this.month ?? 1, this.calendarDates?.find(x => x.selected == true).day ?? 1, 3, 0, 0, 0);\r\n this.value = selectedDate;\r\n this.valueChange.emit(this.value);\r\n if (this.onChange$) {\r\n this.onChange$(this.value);\r\n }\r\n this.updateDays();\r\n if (this.onTouched$) {\r\n this.onTouched$();\r\n }\r\n this.showYears = false;\r\n this.showCalendar = true;\r\n this.calcDays();\r\n } else {\r\n this.year = tempYear;\r\n this.showYears = false;\r\n this.showCalendar = true;\r\n }\r\n }\r\n\r\n public previousMonth(): void {\r\n if (this.month !== 0) {\r\n this.month = this.month - 1;\r\n this.calcDays();\r\n } else {\r\n this.month = 11;\r\n this.year = this.year - 1;\r\n this.calcDays();\r\n }\r\n if (this.onTouched$) {\r\n this.onTouched$();\r\n }\r\n }\r\n\r\n public nextMonth(): void {\r\n if (this.month !== 11) {\r\n this.month = this.month + 1;\r\n this.calcDays();\r\n } else {\r\n this.month = 0;\r\n this.year = this.year + 1;\r\n this.calcDays();\r\n }\r\n if (this.onTouched$) {\r\n this.onTouched$();\r\n }\r\n }\r\n\r\n public previousYear(): void {\r\n this.showCalendarYears = this.paginate(\r\n this.calendarYears,\r\n this.calendarYearPage > 1 ? --this.calendarYearPage : 1);\r\n this.calcDays();\r\n if (this.onTouched$) {\r\n this.onTouched$();\r\n }\r\n }\r\n\r\n public nextYear(): void {\r\n this.showCalendarYears = this.paginate(\r\n this.calendarYears,\r\n this.calendarYearPage <= this.calendarYears.length / this.yearsPerPage\r\n ? ++this.calendarYearPage\r\n : this.calendarYearPage);\r\n this.calcDays();\r\n if (this.onTouched$) {\r\n this.onTouched$();\r\n }\r\n }\r\n\r\n private compareDates(date1: Date | undefined | null, day: number | null | undefined, year: number | null | undefined): boolean {\r\n if (!date1) {\r\n return false;\r\n }\r\n const d = new Date(year ?? this.year, this.month, day ?? this.value?.getDay());\r\n return date1.toDateString() === d.toDateString();\r\n };\r\n\r\n private calcDays(): void {\r\n const daysInMonth = new Date(this.year, this.month + 1, 0).getDate();\r\n // find where to start calendar day of week\r\n const dayOfWeek = new Date(this.year, this.month).getDay();\r\n const blankdaysArray = new Array<number>();\r\n for (var i = 1; i <= dayOfWeek; i++) {\r\n // check if month is February\r\n blankdaysArray.push(this.month != 2 ? (32 - i) : (29 - i));\r\n blankdaysArray.reverse().sort();\r\n }\r\n const daysArray = [];\r\n const today = new Date();\r\n for (var i = 1; i <= daysInMonth; i++) {\r\n daysArray.push({ day: i, today: this.compareDates(today, i, null), selected: this.compareDates(this.value ?? today, i, null) });\r\n }\r\n const yearsArray = [];\r\n for (let i = 1950; i <= today.getFullYear() + 2; i++) {\r\n yearsArray.push({ year: i, today: this.compareDates(today, null, i), selected: i == this.year });\r\n }\r\n this.calendarYears = yearsArray;\r\n this.blankDays = blankdaysArray;\r\n this.calendarDates = daysArray;\r\n }\r\n\r\n private updateDays(): void {\r\n const today = new Date();\r\n this.calendarDates.forEach(d => {\r\n d.today = this.compareDates(today, d, this.year);\r\n d.selected = this.compareDates(this.value, d, this.year);\r\n });\r\n }\r\n\r\n private paginate(array: any[], page_number: number): any[] {\r\n return array.slice((page_number - 1) * this.yearsPerPage, page_number * this.yearsPerPage);\r\n }\r\n\r\n private getDateFromInput() {\r\n if(!this.dateInput?.nativeElement.value || this.dateInput?.nativeElement.value === '') {\r\n this.value = undefined;\r\n this.valueChange.emit(this.value);\r\n if (this.onChange$) {\r\n this.onChange$(this.value);\r\n }\r\n return;\r\n }\r\n\r\n if (this.dateInput?.nativeElement.value !== '' && !this.inline) { \r\n var dateParts = this.dateInput?.nativeElement.value.split(\"/\");\r\n let dateInGrFormat = new Date(+dateParts[2], dateParts[1] - 1, +dateParts[0], 3, 0, 0);\r\n if (dateInGrFormat.toString() !== 'Invalid Date') {\r\n this.writeValue(dateInGrFormat)\r\n this.calcDays();\r\n this.valueChange.emit(dateInGrFormat);\r\n }\r\n if (this.onChange$) {\r\n this.onChange$(this.value);\r\n }\r\n this.updateDays();\r\n if (this.onTouched$) {\r\n this.onTouched$();\r\n }\r\n }\r\n this.showCalendar = false;\r\n }\r\n\r\n public openYears() {\r\n this.showYears = !this.showYears;\r\n this.calendarYearPage = Math.ceil(this.calendarYears.map(x => x.year).indexOf(this.year) / this.yearsPerPage);\r\n this.showCalendarYears = this.paginate(this.calendarYears, this.calendarYearPage !== 0 ? this.calendarYearPage : 1);\r\n this.calcDays();\r\n }\r\n\r\n public openCalendar() {\r\n this.showCalendar = !this.showCalendar;\r\n this.calcDays();\r\n }\r\n\r\n public closeCalendar() {\r\n this.showCalendar = false;\r\n // this.getDateFromInput();\r\n }\r\n\r\n outOfRangeDate(date: any): boolean {\r\n let outOfRange: boolean = false;\r\n if (this.minDate || this.maxDate) {\r\n const d = new Date(this.year, this.month, date.day);\r\n const dateInMillis = d.getTime();\r\n if (this.minDate) {\r\n let minDate: number = this.minDate.getTime();\r\n if (dateInMillis < minDate && this.minDate.toDateString() !== d.toDateString()) {\r\n outOfRange = true;\r\n }\r\n }\r\n if (this.maxDate) {\r\n let maxDate: number = this.maxDate.getTime();\r\n if (dateInMillis > maxDate && this.maxDate.toDateString() !== d.toDateString()) {\r\n outOfRange = true;\r\n }\r\n }\r\n }\r\n return outOfRange;\r\n }\r\n}","<div class=\"flex\"\r\n [ngClass]=\"{'relative': !inline}\"\r\n (clickOutside)=\"closeCalendar()\">\r\n\r\n <input type=\"text\"\r\n *ngIf=\"!inline\"\r\n #dateInput\r\n [readonly]=\"readonly\"\r\n name=\"dateInput\"\r\n (blur)=\"onBlur($event)\"\r\n id=\"dateInput\"\r\n title=\"dateInput\"\r\n (focus)=\"showCalendar = false\"\r\n [value]=\"value | date: displayFormat\"\r\n class=\"detapicker-input\"\r\n [ngClass]=\"{'cursor-not-allowed': disabled}\"\r\n [placeholder]=\"disabled ? '' : placeholder\">\r\n\r\n <button type=\"button\"\r\n *ngIf=\"!inline\"\r\n class=\"datepicker-button\"\r\n [disabled]=\"disabled\"\r\n (click)=\"openCalendar()\"\r\n [ngClass]=\"{'cursor-not-allowed': disabled}\">\r\n <i class=\"ms-Icon ms-Icon--DateTime2\"></i>\r\n </button>\r\n\r\n <div *ngIf=\"showCalendar || inline\"\r\n [ngClass]=\"{'absolute': !inline}\"\r\n class=\"datepicker-background\"\r\n style=\"height:18rem;min-width:16rem;\"\r\n name=\"calendar\">\r\n <div class=\"datepicker-btn-wrapper\">\r\n <div>\r\n <button type=\"button\"\r\n (click)=\"openYears()\">\r\n <span class=\"datepicker-selected-month\">\r\n {{monthNames[month]}}\r\n </span>\r\n <span class=\"datepicker-selected-year\">\r\n {{year}}</span>\r\n </button>\r\n </div>\r\n <div *ngIf=\"!showYears; else showYearsPickerTmpl\">\r\n <button type=\"button\"\r\n class=\"datepicker-nav-btn\"\r\n (click)=\"previousMonth();\">\r\n <svg fill=\"none\"\r\n viewBox=\"0 0 24 24\"\r\n stroke=\"currentColor\">\r\n <path stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n stroke-width=\"2\"\r\n d=\"M15 19l-7-7 7-7\" />\r\n </svg>\r\n </button>\r\n <button type=\"button\"\r\n class=\"datepicker-nav-btn\"\r\n (click)=\"nextMonth()\">\r\n <svg fill=\"none\"\r\n viewBox=\"0 0 24 24\"\r\n stroke=\"currentColor\">\r\n <path stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n stroke-width=\"2\"\r\n d=\"M9 5l7 7-7 7\" />\r\n </svg>\r\n </button>\r\n </div>\r\n <ng-template #showYearsPickerTmpl>\r\n <div>\r\n <button type=\"button\"\r\n class=\"datepicker-nav-btn\"\r\n (click)=\"previousYear();\">\r\n <svg fill=\"none\"\r\n viewBox=\"0 0 24 24\"\r\n stroke=\"currentColor\">\r\n <path stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n stroke-width=\"2\"\r\n d=\"M15 19l-7-7 7-7\" />\r\n </svg>\r\n </button>\r\n <button type=\"button\"\r\n class=\"datepicker-nav-btn\"\r\n (click)=\"nextYear()\">\r\n <svg fill=\"none\"\r\n viewBox=\"0 0 24 24\"\r\n stroke=\"currentColor\">\r\n <path stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n stroke-width=\"2\"\r\n d=\"M9 5l7 7-7 7\" />\r\n </svg>\r\n </button>\r\n </div>\r\n </ng-template>\r\n </div>\r\n\r\n <div class=\"datepicker-wrapper\"\r\n *ngIf=\"!showYears; else showCalYearsTmpl\">\r\n <div *ngFor=\"let day of dayNames\"\r\n class=\"datepicker-day-name\"\r\n style=\"width: 14.28%\">{{day}}</div>\r\n </div>\r\n\r\n <ng-template #showCalYearsTmpl>\r\n <div class=\"datepicker-content-wrapper\">\r\n <div *ngFor=\"let year of showCalendarYears\"\r\n style=\"width: 18.28%\"\r\n class=\"px-1 mb-1\">\r\n <div (click)=\"selectYearValue(year)\"\r\n class=\"datepicker-year\"\r\n [class]=\"year.selected ? 'selected' : 'not-selected'\">\r\n {{year.year}}</div>\r\n </div>\r\n </div>\r\n </ng-template>\r\n\r\n <div class=\"datepicker-content-wrapper\"\r\n *ngIf=\"!showYears\">\r\n <div *ngFor=\"let blankday of blankDays\"\r\n style=\"width: 14.28%\"\r\n class=\"datepicker-blank-days\">{{blankday}}</div>\r\n <div *ngFor=\"let date of calendarDates;\"\r\n style=\"width: 14.28%\"\r\n class=\"px-1 mb-1\">\r\n <div (click)=\"selectDateValue(date)\"\r\n class=\"datepicker-days\"\r\n [ngClass]=\"{'out-of-range': outOfRangeDate(date),'selected': date.selected, 'not-selected':!date.selected }\">\r\n {{date.day}}</div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n</div>","import { Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges } from '@angular/core';\r\nimport { SearchOption, FilterClause, Operators, OperatorOptions } from './models';\r\nimport { MenuOption } from '../../types';\r\n\r\n@Component({\r\n selector: 'lib-advanced-search',\r\n templateUrl: './advanced-search.component.html'\r\n})\r\nexport class AdvancedSearchComponent implements OnInit, OnChanges {\r\n @Output() advancedSearchChanged: EventEmitter<FilterClause[]> = new EventEmitter<FilterClause[]>();\r\n @Input('operators-disabled') operatorsDisabled: boolean = false;\r\n @Input('search-options') searchOptions: SearchOption[] = [];\r\n @Input() filters: FilterClause[] = [];\r\n public menuOptions: MenuOption[] = [];\r\n public operatorMenuOptions: MenuOption[] = [];\r\n public operatorOptions = OperatorOptions;\r\n public operators: { [key: string]: MenuOption[] } = {};\r\n public selectedOperator?: string;\r\n public selectedField?: SearchOption;\r\n public fieldValue?: string;\r\n public fieldValueDateFrom: any;\r\n public fieldValueDateTo: any;\r\n public menuOptionsDictionary: { [key: string]: MenuOption[] } = {};\r\n\r\n constructor() { }\r\n\r\n public ngOnInit(): void {\r\n }\r\n\r\n public ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['searchOptions']) {\r\n this.setSearchOptions();\r\n }\r\n }\r\n\r\n public setSearchOptions() {\r\n const updatedSearchOptions = [];\r\n for (const searchOption of this.searchOptions) {\r\n updatedSearchOptions.push({\r\n text: searchOption.name,\r\n value: searchOption.field,\r\n data: searchOption.dataType,\r\n description: searchOption.placeholder,\r\n icon: undefined\r\n });\r\n if (searchOption.dataType === 'array' && searchOption.options) {\r\n this.menuOptionsDictionary[searchOption.field] = searchOption.options.map(option => ({\r\n text: option.label,\r\n value: option.value,\r\n data: undefined,\r\n description: option.description,\r\n icon: undefined\r\n }));\r\n }\r\n }\r\n this.menuOptions = updatedSearchOptions;\r\n }\r\n\r\n public selectedFieldChanged(field: string) {\r\n this.selectedField = this.searchOptions.find((searchOption) => searchOption.field === field);\r\n this.selectedOperator = undefined;\r\n // Since we have special UI handling for the daterange, we don't need to fill the operatorMenuOptions in that case.\r\n if (this.selectedField?.dataType != 'daterange') {\r\n let operatorMenuOpts: MenuOption[] = [];\r\n // based on the data type that we are filtering, fill the operator dropdown with the correct operators. The default is the string with equals/not-equals/contains\r\n this.operatorOptions[this.selectedField?.dataType ?? 'string'].forEach(x => {\r\n operatorMenuOpts.push({\r\n text: x.description ?? x.label,\r\n value: x.value,\r\n data: undefined,\r\n description: x.description,\r\n icon: undefined\r\n })\r\n })\r\n this.operatorMenuOptions = operatorMenuOpts;\r\n // Preselect the first option from the operators menu so there will always be a default value, which is the 'equals' operator for all data types for now.\r\n this.selectedOperator = this.operatorMenuOptions[0].value;\r\n }\r\n this.fieldValue = undefined;\r\n }\r\n\r\n public selectedOperatorChanged(operator: any) {\r\n this.selectedOperator = operator;\r\n }\r\n\r\n public selectedFieldValueChanged(fieldValue: string) {\r\n this.fieldValue = fieldValue;\r\n }\r\n\r\n public search() {\r\n if (!this.selectedField || !this.selectedField.dataType) {\r\n return;\r\n }\r\n // the filter is of type 'daterange'\r\n if (this.selectedField.dataType === 'daterange') {\r\n if (!this.selectedField.multiTerm) {\r\n this.filters = this.filters.filter((f) => {\r\n return f.dataType !== 'datetime';\r\n });\r\n }\r\n if (this.fieldValueDateFrom) {\r\n const filterClauseFrom = new FilterClause(this.selectedField.field, this.fieldValueDateFrom, Operators.GREATER_THAN_EQUAL.value as FilterClause.Op, 'datetime', this.searchOptions);\r\n this.filters.push(filterClauseFrom);\r\n }\r\n\r\n if (this.fieldValueDateTo) {\r\n const filterClauseTo = new FilterClause(this.selectedField.field, this.fieldValueDateTo, Operators.LESS_THAN_EQUAL.value as FilterClause.Op, 'datetime', this.searchOptions);\r\n this.filters.push(filterClauseTo);\r\n }\r\n }\r\n // the filter isn't of type 'daterange' (everything else)\r\n else {\r\n if (this.fieldValue === undefined) { // handle empty field value\r\n return;\r\n }\r\n // if no operator was provided, it falls back to the default 'equals' operator\r\n this.selectedOperator = this.selectedOperator ?? Operators.EQUALS.value;\r\n // create the filterClause\r\n const filterClause = new FilterClause(this.selectedField.field, this.fieldValue, this.selectedOperator as FilterClause.Op, this.selectedField.dataType, this.searchOptions);\r\n if (!this.selectedField.multiTerm) { // multiTerm means that we can have multiple filter values of the SAME filter clause (eg \"filter case types that are Phone OR Address\")\r\n this.filters = this.filters.filter((f) => {\r\n return f.member !== this.selectedField!.field;\r\n });\r\n } else { // selectedField is multiTerm: just checking if we already have the newly selected filterClause in filters\r\n const isDuplicate = this.filters.some(f => f.toString() === filterClause.toString());\r\n if (isDuplicate) {\r\n return;\r\n }\r\n }\r\n\r\n this.filters.push(filterClause);\r\n this.fieldValue = undefined;\r\n }\r\n this.advancedSearchChanged.emit(this.filters);\r\n }\r\n\r\n public removeFilter(index: number) {\r\n if (this.filters && this.filters.length >= index) {\r\n this.filters.splice(index, 1);\r\n this.advancedSearchChanged.emit(this.filters);\r\n }\r\n }\r\n\r\n public isDateValueUnpicked(): boolean {\r\n return this.fieldValueDateFrom === undefined && this.fieldValueDateTo === undefined;\r\n }\r\n\r\n public isFieldAndOperatorUnpicked(): boolean {\r\n // if the operators are enabled we need to check for both the field value and the operator value\r\n return this.operatorsDisabled ? this.fieldValue === undefined : (this.fieldValue === undefined || this.selectedOperator === undefined);\r\n }\r\n\r\n public clear() {\r\n this.fieldValueDateFrom = undefined;\r\n this.fieldValueDateTo = undefined;\r\n this.selectedField = undefined;\r\n this.fieldValue = undefined;\r\n this.selectedOperator = undefined;\r\n this.filters = [];\r\n this.advancedSearchChanged.emit(this.filters);\r\n }\r\n}\r\n","<div class=\"advanced-search-container\">\r\n <div class=\"advanced-search-filter\">\r\n <!--SEARCH FIELDS-->\r\n <div class=\"advanced-search-filter-field-container\">\r\n <label class=\"advanced-search-filter-field-label\"\r\n for=\"selectedField\">\r\n Αναζήτηση ανά:\r\n </label>\r\n <lib-drop-down-menu [options]=\"menuOptions\"\r\n (selectedChanged)=\"selectedFieldChanged($event)\"></lib-drop-down-menu>\r\n </div>\r\n <!--SEARCH FIELDS OPERATOR MENU-->\r\n <div *ngIf=\"!operatorsDisabled && selectedField\"\r\n class=\"advanced-search-filter-operator-container\">\r\n <div *ngIf=\"selectedField.dataType === 'array' || selectedField.dataType === 'string'\">\r\n <label class=\"advanced-search-filter-operator-label\"\r\n for=\"selectedOperator\">\r\n \r\n </label>\r\n <lib-drop-down-menu [options]=\"operatorMenuOptions\"\r\n [selected]=\"selectedOperator\"\r\n (selectedChanged)=\"selectedOperatorChanged($event)\"></lib-drop-down-menu>\r\n </div>\r\n </div>\r\n <!--SEARCH FIELDS INPUT-->\r\n <div *ngIf=\"selectedField\"\r\n class=\"advanced-search-filter-value-container\">\r\n <div *ngIf=\"selectedField.dataType === 'array'\">\r\n <label class=\"advanced-search-filter-value-label\"\r\n for=\"fieldValue\">\r\n \r\n </label>\r\n <lib-drop-down-menu [options]=\"menuOptionsDictionary[selectedField.field]\"\r\n [selected]=\"fieldValue\"\r\n (selectedChanged)=\"selectedFieldValueChanged($event)\"></lib-drop-down-menu>\r\n </div>\r\n <div *ngIf=\"selectedField.dataType === 'string'\">\r\n <label class=\"advanced-search-filter-value-label\"\r\n for=\"fieldValue\">\r\n \r\n </label>\r\n <input (keyup.enter)=\"search()\"\r\n [(ngModel)]=\"fieldValue\"\r\n name=\"fieldValue\"\r\n type=\"text\"\r\n placeholder=\"Αναζήτηση\"\r\n maxlength=\"300\"\r\n class=\"advanced-search-filter-value-input\">\r\n </div>\r\n <ng-container *ngIf=\"selectedField.dataType === 'daterange'\">\r\n <div>\r\n <span class=\"advanced-search-filter-value-input-daterange-from\">\r\n Από:\r\n </span>\r\n <lib-date-picker [maxDate]=\"fieldValueDateTo\"\r\n [(ngModel)]=\"fieldValueDateFrom\"\r\n [placeholder]=\"'01/01/2022'\"></lib-date-picker>\r\n </div>\r\n <div *ngIf=\"selectedField.dataType === 'daterange'\">\r\n <span class=\"advanced-search-filter-value-input-daterange-to\">\r\n Έως:\r\n </span>\r\n <lib-date-picker [minDate]=\"fieldValueDateFrom\"\r\n [(ngModel)]=\"fieldValueDateTo\"\r\n [placeholder]=\"'01/01/2022'\"></lib-date-picker>\r\n </div>\r\n </ng-container>\r\n </div>\r\n <ng-container *ngIf=\"selectedField\">\r\n <!--DO SEARCH-->\r\n <button type=\"button\"\r\n [ngClass]=\"{'opacity-50 cursor-not-allowed': isDateValueUnpicked() && isFieldAndOperatorUnpicked()}\"\r\n [disabled]=\"isDateValueUnpicked() && isFieldAndOperatorUnpicked()\"\r\n (click)=\"search()\">\r\n <i [class]=\"'ms-Icon ms-Icon--Search'\"></i>\r\n </button>\r\n <!--CLEAR-->\r\n <button type=\"button\"\r\n (click)=\"clear()\">\r\n <i [class]=\"'ms-Icon ms-Icon--Cancel'\"></i>\r\n </button>\r\n </ng-container>\r\n </div>\r\n <!--FILTER CHIPS-->\r\n <!-- In order for our changes to be reflected everytime searchOptions change -->\r\n <!-- We are looping searchOptions in order to display the proper name -->\r\n <ng-container *ngFor=\"let searchOption of searchOptions\">\r\n <ng-container *ngFor=\"let filter of filters; let j = index\">\r\n <span *ngIf=\"filter && filter.member && searchOption.field === filter.member\"\r\n class=\"advanced-search-chips\">\r\n {{ searchOption.name }} {{ filter.uiOperator }} '{{ filter.uiValue }}'\r\n <button (click)=\"removeFilter(j)\"\r\n type=\"button\"\r\n class=\"advanced-search-chips-remove-filter\">\r\n <span class=\"sr-only\">Remove large option</span>\r\n <svg class=\"h-2 w-2\"\r\n stroke=\"currentColor\"\r\n fill=\"none\"\r\n viewBox=\"0 0 8 8\">\r\n <path stroke-linecap=\"round\"\r\n stroke-width=\"1.5\"\r\n d=\"M1 1l6 6m0-6L1 7\" />\r\n </svg>\r\n </button>\r\n </span>\r\n </ng-container>\r\n </ng-container>\r\n</div>\r\n","import { Component, Input, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-list-view-empty-state',\r\n templateUrl: './list-view-empty-state.component.html'\r\n})\r\nexport class ListViewEmptyStateComponent implements OnInit {\r\n\r\n @Input() title = 'Δεν βρέθηκαν εγγραφές.';\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('sub-title') subTitle = 'Παρακαλώ αλλάξτε τα κριτήρια αναζήτησης σας ή ξεκινήστε προσθέτοντας μια νέα εγγραφή';\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('new-item-label') newItemLabel = 'Νέα εγγραφή';\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","<div class=\"py-20\">\r\n <div class=\"p-20\">\r\n <div class=\"text-center p-2\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" class=\"mx-auto h-12 w-12 text-gray-400\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\">\r\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M4 7v10c0 2.21 3.582 4 8 4s8-1.79 8-4V7M4 7c0 2.21 3.582 4 8 4s8-1.79 8-4M4 7c0-2.21 3.582-4 8-4s8 1.79 8 4m0 5c0 2.21-3.582 4-8 4s-8-1.79-8-4\" />\r\n </svg>\r\n <h3 class=\"mt-2 text-sm font-medium text-gray-900\">{{title}}</h3>\r\n <p class=\"mt-1 text-sm text-gray-500\">\r\n {{subTitle}}\r\n </p>\r\n <div class=\"mt-6\" *ngIf=\"false\">\r\n <button type=\"button\" class=\"inline-flex items-center px-4 py-2 border border-transparent shadow-sm text-sm font-medium rounded-md text-white bg-gray-600 hover:bg-gray-700 focus:outline-none focus:ring-2 focus:ring-offset-1 focus:ring-gray-500\">\r\n <!-- Heroicon name: solid/plus -->\r\n <svg class=\"-ml-1 mr-2 h-6 w-6\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" aria-hidden=\"true\">\r\n <path vector-effect=\"non-scaling-stroke\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M9 13h6m-3-3v6m-9 1V7a2 2 0 012-2h6l2 2h6a2 2 0 012 2v8a2 2 0 01-2 2H5a2 2 0 01-2-2z\" />\r\n </svg>\r\n {{newItemLabel}}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n</div>","import { Component, Input, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n // tslint:disable-next-line:component-selector\r\n selector: 'lib-skeleton-loader',\r\n templateUrl: './skeleton-loader.component.html'\r\n})\r\nexport class SkeletonLoaderComponent implements OnInit {\r\n @Input() count = 7;\r\n @Input() type = 'tiles'; // 'large-tile', 'table'\r\n @Input('deck-class') deckClass = 'cards-deck-4'; // 'large-tile', 'table'\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n public counter(i: number): number[] {\r\n return new Array(i);\r\n }\r\n\r\n}\r\n","<div [class]=\"deckClass\" *ngIf=\"type === 'tiles'\">\r\n <div class=\"relative p-4 w-80 bg-white overflow-hidden shadow hover:shadow-md rounded-xl\" *ngFor=\"let i of counter(count)\">\r\n <div class=\"animate-pulse flex flex-col\">\r\n <div class=\"rounded w-full h-32 bg-gray-200\"></div>\r\n \r\n <div class=\"flex flex-col mt-5 rounded-lg\">\r\n <div class=\"w-full h-5 bg-gray-200 rounded\"></div>\r\n <div class=\"mt-2 w-10/12 h-3 bg-gray-200 rounded\"></div>\r\n <div class=\"mt-2 w-8/12 h-3 bg-gray-200 rounded\"></div>\r\n </div>\r\n\r\n <div class=\"grid grid-cols-2 mt-5 gap-x-2 gap-y-1\">\r\n <div class=\"mt-2 w-full h-3 bg-gray-200 rounded\"></div>\r\n <div class=\"mt-2 w-full h-3 bg-gray-200 rounded\"></div>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n</div>\r\n \r\n<div class=\"cards-deck-1\" *ngIf=\"type === 'table'\">\r\n <div class=\"border border-light-blue-300 shadow rounded-sm p-4 max-w-sm w-full mx-auto mb-4\" *ngFor=\"let i of counter(count)\">\r\n <div class=\"animate-pulse flex space-x-4\">\r\n <div class=\"rounded-full bg-light-blue-400 h-12 w-12\"> </div>\r\n <div class=\"flex-1 space-y-4 py-1\">\r\n <div class=\"h-4 bg-light-blue-400 rounded w-3/4\"> </div>\r\n <div class=\"space-y-2\">\r\n <div class=\"h-4 bg-light-blue-400 rounded\"> </div>\r\n <div class=\"h-4 bg-light-blue-400 rounded w-5/6\"> </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>","import { Component, ContentChild, ContentChildren, EventEmitter, Input, Output, QueryList, OnChanges, SimpleChanges } from '@angular/core';\r\nimport { FilterClause, SearchOption } from '../advanced-search/models';\r\nimport { ListViewType, MenuOption, PagerPosition } from '../../types';\r\nimport { ListColumnComponent } from './list-column.component';\r\nimport { ListTileComponent } from './list-tile.component';\r\nimport { ListDetailsSectionComponent } from './list-details-section.component';\r\nimport { Icons } from '../../icons';\r\n;\r\n\r\n@Component({\r\n selector: 'lib-list-view',\r\n templateUrl: './list-view.component.html'\r\n})\r\nexport class ListViewComponent implements OnChanges {\r\n @Input('search-options') searchOptions: SearchOption[] = [];\r\n @Input() filters: FilterClause[] = [];\r\n // BUSY STATE\r\n @Input() busy = false;\r\n // DATA SOURCE!\r\n @Input() items: any[] | null | undefined;\r\n // PAGING - pass through for pager component\r\n @Input() count: number | null = null;\r\n @Input() page = 1;\r\n @Input() view = ListViewType.Table;\r\n @Input() sort: string | null = null;\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('page-size') pageSize = 20;\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('page-size-options') pageSizeOptions: MenuOption[] = [];\r\n // SORTING - pass through for pager component\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('sort-options') sortOptions: MenuOption[] = [];\r\n @Input('operators-disabled') operatorsDisabled: boolean = false;\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('sort-dir') sortdir: string | null = '-';\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('tiles-count') tilesCount = 4;\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('show-pager') showPager = true;\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('pager-position') pagerPosition: any | undefined = PagerPosition.Top;\r\n // DETAILS SECTION\r\n // Check if details section and button should be displayed according to the count of the value given\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('details-section-property-count') detailsSectionPropertyCount: string | null = null;\r\n // COLUMNS\r\n @ContentChildren(ListColumnComponent, { read: ListColumnComponent })\r\n set cols(refs: QueryList<ListColumnComponent>) {\r\n this.columns = refs?.toArray();\r\n if (this.columns && this.columns.length > 0) {\r\n this.tableViewSupported = true;\r\n }\r\n this.multipleFullWidth = this.columns.filter(c => c.fullWidth).length > 1;\r\n this.fullWidthTHClass = this.multipleFullWidth ? 'list-view-th-half' : 'list-view-th-full';\r\n this.fullWidthTDClass = this.multipleFullWidth ? 'list-view-td-half' : 'list-view-td-full';\r\n }\r\n // tslint:disable-next-line:no-input-rename\r\n @ContentChild(ListTileComponent, { read: ListTileComponent })\r\n set tiles(ref: ListTileComponent) {\r\n this.tileTemplate = ref;\r\n if (this.tileTemplate) {\r\n this.tilesViewSupported = true;\r\n }\r\n }\r\n\r\n @ContentChild(ListDetailsSectionComponent, { read: ListDetailsSectionComponent })\r\n set details(ref: ListDetailsSectionComponent) {\r\n this.detailsTemplate = ref;\r\n if (this.detailsTemplate) {\r\n this.detailsSectionSupported = true;\r\n }\r\n }\r\n\r\n @Output() pageChanged: EventEmitter<number> = new EventEmitter<number>();\r\n @Output() pageSizeChanged: EventEmitter<number> = new EventEmitter<number>();\r\n @Output() detailsOpened: EventEmitter<{ item: any, open: boolean }> = new EventEmitter<{ item: any, open: boolean }>();\r\n @Output() sortChanged: EventEmitter<string> = new EventEmitter<string>();\r\n @Output() sortdirChanged: EventEmitter<string> = new EventEmitter<string>();\r\n @Output() advancedSearchChanged: EventEmitter<FilterClause[]> = new EventEmitter<FilterClause[]>();\r\n\r\n private multipleFullWidth = false;\r\n public expandIcon = Icons.Expand;\r\n public collapseIcon = Icons.Collapse;\r\n public tableViewSupported = false;\r\n public fullWidthTHClass = 'list-view-th-full';\r\n public fullWidthTDClass = 'list-view-td-full';\r\n public tilesViewSupported = false;\r\n public detailsSectionSupported = false;\r\n public loaderItems: any[] = [];\r\n public columns: any[] = [];\r\n public tilesDeckClass = 'cards-deck-4';\r\n public tileTemplate: any | null | undefined = null;\r\n public detailsTemplate: any | null | undefined = null;\r\n\r\n constructor() {\r\n for (let i = 0; i < 9; i++) {\r\n this.loaderItems.push({});\r\n }\r\n if (this.pagerPosition) {\r\n this.pagerPosition = this.pagerPosition as PagerPosition;\r\n }\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n const tilesCountChange = changes['tiles-count'] || changes.tilesCount;\r\n if (tilesCountChange) {\r\n this.setTilesDeckClass(tilesCountChange.currentValue);\r\n }\r\n }\r\n\r\n // events\r\n public emitPageChanged($event: number): void {\r\n this.pageChanged.emit($event);\r\n }\r\n\r\n public emitPageSizeChanged($event: number): void {\r\n this.pageSizeChanged.emit($event);\r\n }\r\n\r\n public emitSortChanged($event: string): void {\r\n this.sortChanged.emit($event);\r\n }\r\n public emitSortdirChanged($event: string): void {\r\n this.sortdirChanged.emit($event);\r\n }\r\n public emitAdvancedSearchChanged($event: FilterClause[]): void {\r\n this.advancedSearchChanged.emit($event);\r\n }\r\n\r\n public toggleDetails(item: any): void {\r\n item.detailsExpanded = !item.detailsExpanded;\r\n this.detailsOpened.emit({ item, open: item.detailsExpanded });\r\n }\r\n\r\n // helpers\r\n private setTilesDeckClass(tiles: number): void {\r\n if (tiles >= 1 && tiles <= 4) {\r\n this.tilesDeckClass =\r\n this.view !== ListViewType.Gallery\r\n ? `cards-deck-${tiles}`\r\n : this.items && this.items.length > 0\r\n ? `gallery-deck-${tiles}`\r\n : 'gallery-deck';\r\n } else {\r\n this.tilesDeckClass =\r\n this.view !== ListViewType.Gallery\r\n ? 'cards-deck-3'\r\n : this.items && this.items.length > 0\r\n ? 'gallery-deck-3'\r\n : 'gallery-deck';\r\n }\r\n }\r\n}\r\n","<div>\r\n <lib-advanced-search *ngIf=\"searchOptions && searchOptions.length > 0\"\r\n [search-options]=\"searchOptions\"\r\n [filters]=\"filters\"\r\n [operators-disabled]=\"operatorsDisabled\"\r\n (advancedSearchChanged)=\"emitAdvancedSearchChanged($event)\">\r\n </lib-advanced-search>\r\n\r\n <lib-pager *ngIf=\"showPager && (pagerPosition == 'top' || pagerPosition == 'both')\"\r\n [page]=\"page\"\r\n [page-size]=\"pageSize\"\r\n [count]=\"count\"\r\n [sort-options]=\"sortOptions\"\r\n [sort]=\"sort\"\r\n [sort-dir]=\"sortdir\"\r\n [busy]=\"busy\"\r\n (pageChanged)=\"emitPageChanged($event)\"\r\n (pageSizeChanged)=\"emitPageSizeChanged($event)\"\r\n (sortChanged)=\"emitSortChanged($event)\"\r\n (sortdirChanged)=\"emitSortdirChanged($event)\">\r\n <ng-content select=\"[pager-near-content]\" ngProjectAs=\"[pager-near-content]\"></ng-content>\r\n </lib-pager>\r\n</div>\r\n\r\n<ng-container [ngSwitch]=\"view\">\r\n\r\n <ng-container *ngSwitchCase=\"'tiles'\">\r\n <div [class]=\"busy ? 'cards-deck-1' : tilesDeckClass\">\r\n\r\n <lib-skeleton-loader *ngIf=\"busy\" [deck-class]=\"tilesDeckClass\" [count]=\"7\" [type]=\"'tiles'\"></lib-skeleton-loader>\r\n\r\n <ng-container *ngIf=\"!busy && items && items.length > 0\">\r\n <ng-container *ngFor=\"let item of items\">\r\n <span *ngIf=\"!tileTemplate || !tileTemplate.template\">template missing..</span>\r\n <ng-template [ngTemplateOutlet]=\"tileTemplate.template\" [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\r\n </ng-container>\r\n </ng-container>\r\n\r\n </div>\r\n </ng-container>\r\n\r\n\r\n <!-- *ngSwitchCase=\"'gallery'\" -->\r\n <ng-container *ngSwitchCase=\"'gallery'\">\r\n <ul role=\"list\" role=\"list\" [class]=\"tilesDeckClass\">\r\n\r\n <lib-skeleton-loader *ngIf=\"busy\" [count]=\"5\" [type]=\"'tiles'\"></lib-skeleton-loader>\r\n\r\n <ng-container *ngIf=\"!busy && items && items.length > 0\">\r\n <ng-container *ngFor=\"let item of items\" role=\"listitem\">\r\n <span *ngIf=\"!tileTemplate || !tileTemplate.template\">template missing..</span>\r\n <ng-template [ngTemplateOutlet]=\"tileTemplate.template\" [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\r\n </ng-container>\r\n </ng-container>\r\n </ul>\r\n </ng-container>\r\n\r\n <!-- *ngSwitchCase=\"'table'\" -->\r\n <ng-container *ngSwitchDefault>\r\n\r\n <div class=\"list-view-container\">\r\n <div class=\"list-view-container-inner\">\r\n <table class=\"list-view-table\">\r\n <thead class=\"list-view-thead\">\r\n <tr>\r\n <ng-container *ngIf=\"detailsSectionSupported\">\r\n <th class=\"list-view-th-details\"></th>\r\n </ng-container>\r\n <ng-container *ngFor=\"let col of columns\">\r\n <th scope=\"col\"\r\n [class]=\"col.fullWidth ? fullWidthTHClass : 'list-view-th'\">\r\n {{col.title}}\r\n </th>\r\n </ng-container>\r\n </tr>\r\n </thead>\r\n <tbody class=\"list-view-tbody\"\r\n *ngIf=\"busy\">\r\n <ng-container *ngFor=\"let item of loaderItems;let i=index\">\r\n <tr class=\"list-view-tr\">\r\n <ng-container *ngIf=\"detailsSectionSupported\">\r\n <td class=\"list-view-td-details\"\r\n *ngIf=\"detailsSectionPropertyCount !== null ? item[detailsSectionPropertyCount] !== 0 : true; else hiddenDetailsButton\">\r\n <button disabled\r\n title=\"expand-collapse\"\r\n type=\"button\"\r\n class=\"expand-collapse-button\">\r\n <!-- Heroicon name: solid/plus -->\r\n <i [class]=\"item.detailsExpanded ? collapseIcon : expandIcon\"></i>\r\n </button>\r\n </td>\r\n <ng-template #hiddenDetailsButton>\r\n <td class=\"list-view-td-details\"></td>\r\n </ng-template>\r\n </ng-container>\r\n <td *ngFor=\"let col of columns\"\r\n [class]=\"col.fullWidth ? fullWidthTDClass : 'list-view-td'\">\r\n <div class=\"w-full animate-pulse h-8 bg-gray-200 rounded\"></div>\r\n </td>\r\n </tr>\r\n <ng-container *ngIf=\"detailsSectionSupported\">\r\n <tr *ngIf=\"item.detailsExpanded\">\r\n <td [colSpan]=\"columns.length + 1\"\r\n class=\"list-view-td bg-gray-100\">\r\n <ng-template [ngTemplateOutlet]=\"detailsTemplate.template\"\r\n [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\r\n </td>\r\n </tr>\r\n </ng-container>\r\n </ng-container>\r\n </tbody>\r\n <tbody class=\"list-view-tbody\"\r\n *ngIf=\"!busy\">\r\n <ng-container *ngFor=\"let item of items;let i=index\">\r\n <tr class=\"list-view-tr\">\r\n <ng-container *ngIf=\"detailsSectionSupported\">\r\n <td class=\"list-view-td-details\"\r\n *ngIf=\"detailsSectionPropertyCount !== null ? item[detailsSectionPropertyCount] !== 0 : true; else hiddenDetailsButton\">\r\n <button (click)=\"toggleDetails(item)\"\r\n title=\"toggleDetails\"\r\n type=\"button\"\r\n class=\"expand-collapse-button\">\r\n <!-- Heroicon name: solid/plus -->\r\n <i [class]=\"item.detailsExpanded ? collapseIcon : expandIcon\"></i>\r\n </button>\r\n </td>\r\n <ng-template #hiddenDetailsButton>\r\n <td class=\"list-view-td-details\"></td>\r\n </ng-template>\r\n </ng-container>\r\n <td *ngFor=\"let col of columns\"\r\n [class]=\"col.fullWidth ? fullWidthTDClass : 'list-view-td'\">\r\n <ng-template [ngTemplateOutlet]=\"col.template\"\r\n [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\r\n </td>\r\n </tr>\r\n <ng-container *ngIf=\"detailsSectionSupported\">\r\n <tr *ngIf=\"item.detailsExpanded\">\r\n <td [colSpan]=\"columns.length + 1\"\r\n class=\"list-view-td bg-gray-100\">\r\n <ng-template [ngTemplateOutlet]=\"detailsTemplate.template\"\r\n [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\r\n </td>\r\n </tr>\r\n </ng-container>\r\n </ng-container>\r\n </tbody>\r\n </table>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"!busy && items && items.length === 0\">\r\n <div class=\"cards-deck-1\">\r\n <lib-list-view-empty-state></lib-list-view-empty-state>\r\n </div>\r\n </ng-container>\r\n</ng-container>\r\n\r\n<ng-content></ng-content>\r\n\r\n<div class=\"px-2 mt-2\"\r\n *ngIf=\"items && items.length !== 0 && showPager && (pagerPosition == 'bottom' || pagerPosition == 'both')\">\r\n <lib-pager [page]=\"page\"\r\n [page-size]=\"pageSize\"\r\n [count]=\"count\"\r\n [sort-options]=\"sortOptions\"\r\n [sort]=\"sort\"\r\n [sort-dir]=\"sortdir\"\r\n [busy]=\"busy\"\r\n (pageChanged)=\"emitPageChanged($event)\"\r\n (pageSizeChanged)=\"emitPageSizeChanged($event)\"\r\n (sortChanged)=\"emitSortChanged($event)\"\r\n (sortdirChanged)=\"emitSortdirChanged($event)\">\r\n </lib-pager>\r\n</div>\r\n","import { Component, Input, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-collapsible-panel',\r\n templateUrl: './collapsible-panel.component.html'\r\n})\r\nexport class CollapsiblePanelComponent implements OnInit {\r\n @Input() title: string | null = null;\r\n public visible = false;\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","<div class=\"collapsible-panel-container\">\r\n <div class=\"collapsible-panel-container-shadow\">\r\n <div class=\"collapsible-panel-container-inner\">\r\n <button type=\"button\" class=\"collapsible-panel-button\" (click)=\"visible = !visible\">\r\n <div class=\"collapsible-panel-button-content-container\">\r\n <span>{{ title }} </span>\r\n <span class=\"ico-plus\"></span>\r\n </div>\r\n </button>\r\n <div class=\"collapsible-panel-content-container\" *ngIf=\"visible\">\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-kpi-tile',\r\n templateUrl: './kpi-tile.component.html'\r\n})\r\nexport class KpiTileComponent implements OnInit {\r\n\r\n @Input() title: string | undefined = undefined;\r\n @Input() busy = false;\r\n @Input() kpi: any | undefined = undefined;\r\n @Input() hideBtn: boolean | undefined = false;\r\n @Input('action-text') actionText: string = 'Περισσότερα';\r\n // tslint:disable-next-line:no-output-rename\r\n @Output('tile-action') tileAction: EventEmitter<any> = new EventEmitter<any>();\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n public emitTileAction($event: any): boolean {\r\n $event.preventDefault();\r\n $event.stopPropagation();\r\n this.tileAction.emit($event);\r\n return false;\r\n }\r\n\r\n}\r\n","<div class=\"card\" [ngClass]=\"{'card-deck-busy' : busy }\">\r\n <div class=\"card-body\">\r\n <div class=\"kpi-tile-title-container\">\r\n <a href=\"#\" class=\"kpi-tile-action\" (click)=\"emitTileAction($event)\">{{title || '-'}}</a>\r\n </div>\r\n <div class=\"grid grid-cols-2 grid-flow-row gap-2 items-center\">\r\n <p class=\"kpi-tile-value\">{{kpi || '-'}}</p>\r\n <ng-content></ng-content>\r\n </div>\r\n <div class=\"card-footer\">\r\n <div class=\"text-xs\">\r\n <a href=\"#\" class=\"kpi-tile-action\" [ngClass]=\"{'invisible': hideBtn}\" (click)=\"emitTileAction($event)\">{{actionText}}</a>\r\n </div>\r\n </div>\r\n </div>\r\n</div>","import { Injectable } from '@angular/core';\r\n\r\nimport { BehaviorSubject, Observable } from 'rxjs';\r\nimport { filter } from 'rxjs/operators';\r\nimport { Toast, ToastType, NULL_TOAST } from '../types';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ToasterService {\r\n private _subject: BehaviorSubject<Toast>;\r\n\r\n constructor() {\r\n this._subject = new BehaviorSubject<Toast>(NULL_TOAST);\r\n this.toast$ = this\r\n ._subject\r\n .asObservable()\r\n .pipe(filter((toast: Toast) => toast !== null && toast.title !== NULL_TOAST.title));\r\n }\r\n \r\n public toast$: Observable<Toast>;\r\n\r\n public show(type: ToastType, title?: string, body?: string, delay?: number): void {\r\n this._subject.next({ type, title, body, delay } as Toast);\r\n }\r\n}\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { Toast } from '../../types';\r\n\r\n@Component({\r\n selector: 'lib-toaster',\r\n templateUrl: './toaster.component.html'\r\n})\r\nexport class ToasterComponent implements OnInit {\r\n\r\n @Input() toast: Toast | undefined;\r\n @Input() i = 0;\r\n @Output() remove = new EventEmitter<number>();\r\n public isMobile = false;\r\n public closed = false;\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n window.screen.width > 640 ? this.isMobile = false : this.isMobile = true;\r\n }\r\n\r\n public closeToast(index: number): void {\r\n this.closed = true;\r\n setTimeout(() => this.remove.emit(index), 100);\r\n }\r\n}\r\n","<div aria-live=\"assertive\"\r\n [ngClass]=\"closed ? 'toast-closed': 'toast z-50'\"\r\n [ngStyle]=\"isMobile ? { 'margin-bottom.px': i * 85 } : {'margin-top.px': i * 85 }\">\r\n <div class=\"toast-container\">\r\n <div class=\"toast-pill\">\r\n <div class=\"toast-context-padding\">\r\n <div class=\"toast-context\"\r\n [ngSwitch]=\"toast?.type\">\r\n <div class=\"toast-icon\"\r\n *ngSwitchCase=\"'info'\">\r\n <svg class=\"h-5 w-5 text-blue-400\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 20 20\"\r\n fill=\"currentColor\"\r\n aria-hidden=\"true\">\r\n <path fill-rule=\"evenodd\"\r\n d=\"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a1 1 0 000 2v3a1 1 0 001 1h1a1 1 0 100-2v-3a1 1 0 00-1-1H9z\"\r\n clip-rule=\"evenodd\" />\r\n </svg>\r\n </div>\r\n <div class=\"toast-icon\"\r\n *ngSwitchCase=\"'success'\">\r\n <svg class=\"h-5 w-5 text-green-400\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n fill=\"none\"\r\n viewBox=\"0 0 24 24\"\r\n stroke=\"currentColor\"\r\n aria-hidden=\"true\">\r\n <path stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n stroke-width=\"2\"\r\n d=\"M9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z\" />\r\n </svg>\r\n </div>\r\n <div class=\"toast-icon\"\r\n *ngSwitchCase=\"'error'\">\r\n <svg class=\"h-5 w-5 text-red-400\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 20 20\"\r\n fill=\"currentColor\"\r\n aria-hidden=\"true\">\r\n <path fill-rule=\"evenodd\"\r\n d=\"M10 18a8 8 0 100-16 8 8 0 000 16zM8.707 7.293a1 1 0 00-1.414 1.414L8.586 10l-1.293 1.293a1 1 0 101.414 1.414L10 11.414l1.293 1.293a1 1 0 001.414-1.414L11.414 10l1.293-1.293a1 1 0 00-1.414-1.414L10 8.586 8.707 7.293z\"\r\n clip-rule=\"evenodd\" />\r\n </svg>\r\n </div>\r\n <div class=\"toast-icon\"\r\n *ngSwitchCase=\"'warning'\">\r\n <svg class=\"h-5 w-5 text-yellow-400\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 20 20\"\r\n fill=\"currentColor\"\r\n aria-hidden=\"true\">\r\n <path fill-rule=\"evenodd\"\r\n d=\"M8.257 3.099c.765-1.36 2.722-1.36 3.486 0l5.58 9.92c.75 1.334-.213 2.98-1.742 2.98H4.42c-1.53 0-2.493-1.646-1.743-2.98l5.58-9.92zM11 13a1 1 0 11-2 0 1 1 0 012 0zm-1-8a1 1 0 00-1 1v3a1 1 0 002 0V6a1 1 0 00-1-1z\"\r\n clip-rule=\"evenodd\" />\r\n </svg>\r\n </div>\r\n <div class=\"toast-icon\"\r\n *ngSwitchDefault>\r\n <svg class=\"h-5 w-5 text-green-400\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n fill=\"none\"\r\n viewBox=\"0 0 24 24\"\r\n stroke=\"currentColor\"\r\n aria-hidden=\"true\">\r\n <path stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n stroke-width=\"2\"\r\n d=\"M9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z\" />\r\n </svg>\r\n </div>\r\n\r\n <div class=\"ml-3 w-0 flex-1\">\r\n <p class=\"toast-title\"\r\n *ngIf=\"toast?.title\">\r\n {{toast?.title}}\r\n </p>\r\n <p class=\"toast-body\">\r\n {{toast?.body}}\r\n </p>\r\n </div>\r\n <div class=\"toast-close-icon\">\r\n <button class=\"toast-close-button\"\r\n (click)=\"closeToast(i)\">\r\n <span class=\"sr-only\">Close</span>\r\n <!-- Heroicon name: solid/x -->\r\n <svg class=\"h-5 w-5\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 20 20\"\r\n fill=\"currentColor\"\r\n aria-hidden=\"true\">\r\n <path fill-rule=\"evenodd\"\r\n d=\"M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z\"\r\n clip-rule=\"evenodd\" />\r\n </svg>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>","import { Component, OnInit } from '@angular/core';\r\nimport { ToasterService } from '../../services/toaster.service';\r\nimport { Toast } from '../../types';\r\n\r\n@Component({\r\n selector: 'lib-toaster-container',\r\n templateUrl: './toaster-container.component.html'\r\n})\r\nexport class ToasterContainerComponent implements OnInit {\r\n\r\n toasts: Toast[] = [];\r\n\r\n constructor(private toaster: ToasterService) { }\r\n\r\n ngOnInit(): void {\r\n this.toaster.toast$\r\n .subscribe(toast => {\r\n this.toasts = [toast, ...this.toasts];\r\n setTimeout(() => this.toasts.pop(), toast.delay || 6000);\r\n });\r\n }\r\n\r\n remove(index: number): void {\r\n this.toasts = this.toasts.slice(0, index).concat(this.toasts.slice(index + 1));\r\n }\r\n\r\n}\r\n","<lib-toaster *ngFor=\"let toast of toasts; let i=index\" [toast]=\"toast\" [i]=\"i\" (remove)=\"remove($event)\"></lib-toaster>\r\n","import { Component, Input, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-avatar-initials',\r\n templateUrl: './avatar-initials.component.html'\r\n})\r\nexport class AvatarInitialsComponent implements OnInit {\r\n @Input()\r\n public name: string | null | undefined;\r\n @Input()\r\n public large = false;\r\n public initials?: string;\r\n public circleColor!: string;\r\n private colors = [\r\n '#EB7181', // red\r\n '#468547', // green\r\n '#FFD558', // yellow\r\n '#3670B2', // blue\r\n ];\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n this.createInititals();\r\n const randomIndex = Math.floor(Math.random() * Math.floor(this.colors.length));\r\n // assign this to a class if you want to randomly change background colors of the circle.\r\n this.circleColor = this.colors[randomIndex];\r\n }\r\n\r\n private createInititals(): void {\r\n if (this.name) {\r\n let initials = '';\r\n for (let i = 0; i < this.name.length; i++) {\r\n if (this.name.charAt(i) === ' ') {\r\n continue;\r\n }\r\n if (this.name.charAt(i) === this.name.charAt(i).toUpperCase()) {\r\n initials += this.name.charAt(i);\r\n if (initials.length === 2) {\r\n break;\r\n }\r\n }\r\n }\r\n this.initials = initials;\r\n }\r\n }\r\n}\r\n","<div [ngClass]=\"large ? 'avatar-container-large': 'avatar-container'\">\r\n <span [ngClass]=\"large ? 'avatar-text-large': 'avatar-text'\">{{ initials }}</span>\r\n</div>\r\n","import { Component, EventEmitter, forwardRef, Input, OnInit, Output } from '@angular/core';\r\nimport { NG_VALUE_ACCESSOR, ControlValueAccessor } from '@angular/forms';\r\n\r\n@Component({\r\n selector: 'lib-toggle',\r\n templateUrl: './toggle.component.html',\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => ToggleComponent),\r\n multi: true\r\n }\r\n ]\r\n})\r\nexport class ToggleComponent implements OnInit, ControlValueAccessor {\r\n @Input()\r\n public value: boolean | null | undefined;\r\n @Input()\r\n public disabled:boolean | null | undefined;\r\n @Output() valueChange: EventEmitter<Boolean> = new EventEmitter<Boolean>();\r\n\r\n private onChange$: any | undefined = undefined;\r\n private onTouched$: any | undefined = undefined;\r\n\r\n constructor() { }\r\n \r\n writeValue(obj: any): void {\r\n if(obj) {\r\n this.value = obj || false;\r\n }\r\n }\r\n registerOnChange(fn: any): void {\r\n this.onChange$ = fn;\r\n }\r\n registerOnTouched(fn: any): void {\r\n this.onTouched$ = fn;\r\n }\r\n\r\n public onBlur(event: any): void {\r\n if(this.onTouched$) {\r\n this.onTouched$();\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n public changeValue(){\r\n this.value = !this.value;\r\n this.valueChange.emit(this.value);\r\n if(this.onChange$) {\r\n this.onChange$(this.value);\r\n }\r\n if(this.onTouched$) {\r\n this.onTouched$();\r\n }\r\n }\r\n}","<button type=\"button\"\r\n [ngClass]=\"value ? (disabled ? 'on disabled' : 'on') : 'off'\"\r\n class=\"toggle-button\"\r\n role=\"switch\"\r\n aria-checked=\"false\"\r\n aria-labelledby=\"isPrivate\"\r\n (click)=\"changeValue()\"\r\n (blur)=\"onBlur($event)\"\r\n value=\"{{value}}\"\r\n [disabled]=\"disabled\"\r\n [title]=\"disabled ? 'Το αρχείο πρέπει να είναι ιδωτικό' : 'Ιδιωτικό'\">\r\n <span aria-hidden=\"true\"\r\n [ngClass]=\"value ? 'enabled-anim' : 'disabled-anim'\"\r\n class=\"toggle-span\"></span>\r\n</button>","import { SidePaneOverlayType, SidePaneSize } from './../../types';\r\nimport { Router } from '@angular/router';\r\nimport { Component, Input, OnInit, OnDestroy, Inject, EventEmitter, Output } from '@angular/core';\r\nimport { DOCUMENT } from '@angular/common';\r\n\r\n@Component({\r\n selector: 'lib-side-pane',\r\n templateUrl: './side-pane.component.html'\r\n})\r\nexport class SidePaneComponent implements OnInit, OnDestroy {\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('visible')\r\n protected showPane = false;\r\n public sizeContainerStyle = 'side-pane-box-size';\r\n public overlayStyle = 'side-pane-overlay';\r\n @Output() onComplete: EventEmitter<boolean> = new EventEmitter<boolean>();\r\n @Output() onOpen: EventEmitter<any> = new EventEmitter<any>();\r\n @Output() onClose: EventEmitter<any> = new EventEmitter<any>();\r\n \r\n constructor(private router: Router, @Inject(DOCUMENT) private document: any,) { }\r\n\r\n ngOnDestroy(): void {\r\n }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n public onSidePaneActivated(component: any): void {\r\n let sizeStyleSuffix = '';\r\n const state = this.router.getCurrentNavigation()?.extras.state;\r\n if (state) {\r\n if (state.paneSize) {\r\n if (state.paneSize === SidePaneSize.Small25) {\r\n sizeStyleSuffix = '-25';\r\n } else if (state.paneSize === SidePaneSize.Medium50) {\r\n sizeStyleSuffix = '-50';\r\n } else if (state.paneSize === SidePaneSize.Large75) {\r\n sizeStyleSuffix = '-75';\r\n }\r\n }\r\n if (state.paneOverlay) {\r\n if (state.paneOverlay === SidePaneOverlayType.None) {\r\n this.overlayStyle = 'side-pane-overlay-opacity-0';\r\n } else if (state.paneOverlay === SidePaneOverlayType.Dark) {\r\n this.overlayStyle = 'side-pane-overlay-opacity-50';\r\n } else {\r\n this.overlayStyle = 'side-pane-overlay';\r\n }\r\n }\r\n }\r\n this.sizeContainerStyle = `side-pane-box-size${sizeStyleSuffix}`;\r\n this.show();\r\n }\r\n\r\n public onSidePaneDeactivated($event: any): void { \r\n this.hide();\r\n }\r\n\r\n public show(): void {\r\n this.document.body.classList.add('modal-active');\r\n this.showPane = true;\r\n this.onOpen.emit(true);\r\n }\r\n\r\n public hide(): void {\r\n this.showPane = false;\r\n this.document.body.classList.remove('modal-active');\r\n this.onClose.emit(false);\r\n // prepei na allaxei auto!\r\n this.onComplete.emit(true);\r\n\r\n }\r\n\r\n}\r\n","<div *ngIf=\"showPane\" class=\"side-pane-outer-container\" aria-labelledby=\"slide-over\" role=\"dialog\" aria-modal=\"true\">\r\n <div [class]=\"showPane ? overlayStyle : 'hidden'\" aria-hidden=\"true\"></div>\r\n <div [class]=\"showPane ? 'side-pane-container' : 'hidden'\">\r\n <div [class]=\"sizeContainerStyle\">\r\n <div class=\"side-pane\">\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n","import { Observable, Subscription } from 'rxjs';\r\nimport { Component, Input, OnDestroy, OnInit } from '@angular/core';\r\nimport { NavLink } from '../../types';\r\n\r\n@Component({\r\n selector: 'lib-nav-links-list',\r\n templateUrl: './nav-links-list.component.html'\r\n})\r\nexport class NavLinksListComponent implements OnInit, OnDestroy {\r\n\r\n @Input() links: Observable<NavLink[]> | undefined;\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('active-fragment') activeFragment: Observable<string> | undefined;\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('link-class') navLinkClass: string | string = 'nav-link';\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('link-active-class') navLinkActiveClass: string | string[] = 'nav-link-active';\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('container-class') containerClass: string | string[] | undefined = undefined;\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('show-icons') showIcons: boolean | undefined = false;\r\n @Input('show-text') showText: boolean | undefined = true;\r\n @Input('large-icons') largeIcons: boolean = false;\r\n public fragmentValue: string | undefined;\r\n private fragmentSub$: Subscription | undefined;\r\n constructor() { }\r\n \r\n ngOnDestroy(): void {\r\n this.fragmentSub$?.unsubscribe();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.fragmentSub$ = this.activeFragment?.subscribe( fragment => this.fragmentValue = fragment);\r\n }\r\n\r\n}\r\n","\r\n<div [class]=\"containerClass ?? 'nav-link-list-container'\">\r\n <div class=\"nav-link-list-container-inner\" [class.icons-only]=\"!showText\">\r\n <ng-container *ngFor=\"let link of links | async\">\r\n <ng-container [ngSwitch]=\"link.type\">\r\n <a *ngSwitchCase=\"'router'\"\r\n href=\"#\"\r\n [routerLink]=\"[link.path]\"\r\n [routerLinkActive]=\"navLinkActiveClass\"\r\n [routerLinkActiveOptions]=\"{ exact: link.exact }\"\r\n [queryParams]=\"link.queryParams\"\r\n [class]=\"navLinkClass\"\r\n [class.min-nav-link-text-width]=\"showText\">\r\n <div class=\"inline-flex items-center\">\r\n <i *ngIf=\"showIcons && link.icon\" [class]=\"link.icon\" [class.text-2xl]=\"largeIcons\" [class.p-1]=\"largeIcons\"></i>\r\n <span [class.ml-3]=\"showIcons && link.icon\" *ngIf=\"showText\">{{ link.text }}</span>\r\n </div>\r\n </a>\r\n <a *ngSwitchCase=\"'external'\"\r\n [href]=\"link.path\"\r\n [attr.target]=\"link.external ? '_blank' : '_self'\"\r\n [class]=\"navLinkClass\"\r\n [class.min-nav-link-text-width]=\"showText\">\r\n <div class=\"inline-flex items-center\">\r\n <i *ngIf=\"showIcons && link.icon\" [class]=\"link.icon\" [class.text-2xl]=\"largeIcons\" [class.p-1]=\"largeIcons\"></i>\r\n <span [class.ml-3]=\"showIcons && link.icon\" *ngIf=\"showText\">{{ link.text }}</span>\r\n </div>\r\n </a>\r\n <a *ngSwitchCase=\"'fragment'\"\r\n routerLink=\".\"\r\n [fragment]=\"link.path\"\r\n [class]=\"fragmentValue === link.path ? navLinkClass + ' ' + navLinkActiveClass : navLinkClass\"\r\n [class.min-nav-link-text-width]=\"showText\">\r\n <div class=\"inline-flex items-center\">\r\n <i *ngIf=\"showIcons && link.icon\" [class]=\"link.icon\" [class.text-2xl]=\"largeIcons\" [class.p-1]=\"largeIcons\"></i>\r\n <span [class.ml-3]=\"showIcons && link.icon\" *ngIf=\"showText\">{{ link.text }}</span>\r\n </div>\r\n </a>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n</div>\r\n","import { Component, EventEmitter, Input, OnInit, Output, TemplateRef } from '@angular/core';\r\n\r\nimport { Subject } from 'rxjs';\r\nimport { debounceTime, distinctUntilChanged } from 'rxjs/operators';\r\n\r\n@Component({\r\n selector: 'lib-combobox',\r\n templateUrl: './combobox.component.html'\r\n})\r\nexport class ComboboxComponent implements OnInit {\r\n private _debouncer: Subject<string> = new Subject<string>();\r\n private _items: any[] = [];\r\n\r\n private _defaultItemsFilter = (item: any) => {\r\n const selectedItem = this.selectedItems.find(x => x == item);\r\n return selectedItem == null || selectedItem == undefined;\r\n };\r\n\r\n constructor() { }\r\n\r\n @Input() public id: string = 'combobox';\r\n @Input() public placeholder: string | undefined;\r\n\r\n @Input('items') public set items(items: any[]) {\r\n if (!this.itemTemplate) {\r\n this._items = items.filter(this._defaultItemsFilter);\r\n } else {\r\n this._items = items.filter(this.selectedItemsFilter);\r\n }\r\n }\r\n\r\n public get items(): any[] {\r\n if (!this.itemTemplate) {\r\n return this._items.filter(this._defaultItemsFilter);\r\n } else {\r\n return this._items.filter(this.selectedItemsFilter);\r\n }\r\n }\r\n\r\n @Input() public itemTemplate: TemplateRef<HTMLElement> | undefined = undefined;\r\n @Input() public selectedItemsFilter: (item: any) => boolean | null = () => true;\r\n @Input() public selectedItemTemplate: TemplateRef<HTMLElement> | undefined = undefined;\r\n @Input() public noResultsTemplate: TemplateRef<unknown> | undefined = undefined;\r\n @Input() public busy: boolean = false;\r\n @Input() public multiple: boolean = true;\r\n @Input() public debounceMs: number = 1000;\r\n @Output() public onSearch: EventEmitter<string | undefined> = new EventEmitter();\r\n @Output() public onItemSelected: EventEmitter<any> = new EventEmitter();\r\n public showResults: boolean = false;\r\n public selectedItems: any[] = [];\r\n public value: string | undefined;\r\n protected searchTerm: string = '';\r\n\r\n public ngOnInit(): void {\r\n if (this.itemTemplate && !this.multiple) {\r\n this.multiple = true;\r\n console.warn('You cannot have a custom item template with single selection.');\r\n }\r\n this.emitSearchEvent();\r\n this._debouncer\r\n .pipe(\r\n debounceTime(this.debounceMs),\r\n distinctUntilChanged()\r\n )\r\n .subscribe((value: string) => {\r\n this.searchTerm = value;\r\n this.emitSearchEvent(value);\r\n });\r\n }\r\n\r\n public onInputClick(): void {\r\n this.showResults = true;\r\n }\r\n\r\n public onClickOutside(): void {\r\n this.showResults = false;\r\n }\r\n\r\n public onInputKeyUp(event: any): void {\r\n this._debouncer.next(event.currentTarget.value);\r\n }\r\n\r\n public onListItemSelected(item: any): void {\r\n this.onItemSelected.emit(item);\r\n if (this.multiple) {\r\n this.selectedItems.push(item);\r\n } else {\r\n this.value = item;\r\n }\r\n }\r\n\r\n public removeItem(item: any): void {\r\n const index = this.selectedItems.indexOf(item);\r\n if (index > -1) {\r\n this.selectedItems.splice(index, 1);\r\n }\r\n }\r\n\r\n private emitSearchEvent(searchTerm: string | undefined = undefined): void {\r\n this.onSearch.emit(searchTerm);\r\n }\r\n}\r\n","<div class=\"combobox-wrapper\" (clickOutside)=\"onClickOutside()\">\r\n <form autocomplete=\"off\"\r\n [id]=\"id + '-form'\">\r\n <input [id]=\"id\"\r\n title=\"combobox input\"\r\n type=\"text\"\r\n (click)=\"onInputClick()\"\r\n (clickOutside)=\"onClickOutside()\"\r\n (keyup)=\"onInputKeyUp($event)\"\r\n class=\"combobox-input\"\r\n role=\"combobox\"\r\n aria-controls=\"options\"\r\n aria-expanded=\"false\"\r\n autocomplete=\"off\"\r\n list=\"autocomplete\"\r\n [value]=\"value || ''\"\r\n [placeholder]=\"placeholder || ''\">\r\n </form>\r\n <div class=\"combobox-icons\">\r\n <svg *ngIf=\"!busy\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n class=\"h-6 w-6 text-gray-400\"\r\n fill=\"none\"\r\n viewBox=\"0 0 24 24\"\r\n stroke=\"currentColor\"\r\n stroke-width=\"2\">\r\n <path stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n d=\"M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z\" />\r\n </svg>\r\n <svg *ngIf=\"busy\"\r\n class=\"animate-spin h-6 w-6 text-gray-400\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n fill=\"none\"\r\n viewBox=\"0 0 24 24\">\r\n <circle class=\"opacity-25\"\r\n cx=\"12\"\r\n cy=\"12\"\r\n r=\"10\"\r\n stroke=\"currentColor\"\r\n stroke-width=\"4\">\r\n </circle>\r\n <path class=\"opacity-75\"\r\n fill=\"currentColor\"\r\n d=\"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z\"></path>\r\n </svg>\r\n </div>\r\n <ul [id]=\"id + '-results'\"\r\n *ngIf=\"showResults && items.length > 0\"\r\n class=\"combobox-results\"\r\n role=\"listbox\">\r\n <li *ngFor=\"let item of items; let i = index;\"\r\n [id]=\"'option-'+ i\"\r\n (click)=\"onListItemSelected(item)\"\r\n role=\"option\"\r\n tabindex=\"-1\">\r\n <ng-container [ngTemplateOutlet]=\"itemTemplate || defaultItemTemplate\"\r\n [ngTemplateOutletContext]=\"{ $implicit: item }\">\r\n </ng-container>\r\n </li>\r\n </ul>\r\n <div class=\"combobox-results\"\r\n *ngIf=\"noResultsTemplate && items.length === 0 && !busy\">\r\n <ng-container [ngTemplateOutlet]=\"noResultsTemplate || defaultnoResultsTemplate\"\r\n [ngTemplateOutletContext]=\"{ $implicit: searchTerm }\">\r\n </ng-container>\r\n </div>\r\n</div>\r\n<ul *ngIf=\"selectedItems.length > 0\"\r\n role=\"list\"\r\n class=\"grid grid-cols-1\">\r\n <li *ngFor=\"let item of selectedItems; let i = index;\"\r\n class=\"mt-3\">\r\n <ng-container [ngTemplateOutlet]=\"selectedItemTemplate || defaultSelectedItemTemplate\"\r\n [ngTemplateOutletContext]=\"{ $implicit: item }\">\r\n </ng-container>\r\n </li>\r\n</ul>\r\n<ng-template #defaultnoResultsTemplate\r\n let-searchTerm>\r\n <span class=\"combobox-default-item-template\">No results found for <i>{{ searchTerm }}</i></span>\r\n</ng-template>\r\n<ng-template #defaultItemTemplate\r\n let-item>\r\n <span class=\"combobox-default-item-template\">{{ item }}</span>\r\n</ng-template>\r\n<ng-template #defaultSelectedItemTemplate\r\n let-item>\r\n <div class=\"grid grid-cols-1\">\r\n <div class=\"combobox-selected-item-wrapper\">\r\n <div class=\"flex-1 min-w-0\">\r\n <div class=\"focus:outline-none\">\r\n <span class=\"absolute\"\r\n aria-hidden=\"true\">\r\n </span>\r\n <p class=\"text-sm font-medium text-gray-900\">{{ item }}</p>\r\n </div>\r\n </div>\r\n <div class=\"ml-4 flex-shrink-0 flex\">\r\n <button type=\"button\"\r\n (click)=\"removeItem(item)\"\r\n class=\"combobox-selected-item-remove-btn\">\r\n <span class=\"sr-only\">Close</span>\r\n <svg class=\"h-5 w-5\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 20 20\"\r\n fill=\"currentColor\"\r\n aria-hidden=\"true\">\r\n <path fill-rule=\"evenodd\"\r\n d=\"M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z\"\r\n clip-rule=\"evenodd\" />\r\n </svg>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n</ng-template>","import { Directive, TemplateRef } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[libTabLabel]'\r\n})\r\nexport class LibTabLabelDirective {\r\n constructor(public template: TemplateRef<any>) { }\r\n}\r\n","import { ChangeDetectionStrategy, Component, ContentChild, Inject, Input, OnInit, Optional, TemplateRef, ViewChild, ViewEncapsulation } from '@angular/core';\r\n\r\nimport * as uuid from 'uuid';\r\nimport { LIBTABGROUP_ACCESSOR } from '../../tokens';\r\nimport { LibTabLabelDirective } from './lib-tab-label.directive';\r\n\r\n@Component({\r\n selector: 'lib-tab',\r\n template: `\r\n <ng-template>\r\n <ng-content></ng-content>\r\n </ng-template>\r\n `,\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class LibTabComponent implements OnInit {\r\n private _isActive: boolean = false;\r\n\r\n constructor(\r\n @Optional() @Inject(LIBTABGROUP_ACCESSOR) public readonly _tabGroup?: any\r\n ) { }\r\n\r\n /** The content provided for the tab. */\r\n @ViewChild(TemplateRef, { static: true }) public content: TemplateRef<any> | null = null;\r\n /** A label template for the tab header. */\r\n @ContentChild(LibTabLabelDirective) public label: LibTabLabelDirective | undefined;\r\n /** Indicates the unique id assigned in the tab. */\r\n @Input() public id: string | undefined;\r\n @Input() public labelText: string | undefined;\r\n\r\n /** Indicates the index of the tab. */\r\n public get index(): number {\r\n const index = this._tabGroup?.tabs.toArray()?.indexOf(this);\r\n return index;\r\n }\r\n\r\n /** Indicates whether the tab is active. */\r\n public get isActive(): boolean {\r\n return this._isActive;\r\n }\r\n\r\n /** Setter for LibTabComponent isActive property. */\r\n public set isActive(isActive: boolean) {\r\n this._isActive = isActive;\r\n }\r\n\r\n public ngOnInit(): void {\r\n this.id = this.id || uuid.v4();\r\n }\r\n}","import { AfterContentChecked, AfterContentInit, Component, ContentChildren, EventEmitter, forwardRef, OnInit, Output, QueryList } from '@angular/core';\r\n\r\nimport { LIBTABGROUP_ACCESSOR } from '../../tokens';\r\nimport { LibTabComponent } from './lib-tab.component';\r\n\r\n@Component({\r\n selector: 'lib-tab-group',\r\n templateUrl: './lib-tab-group.component.html',\r\n providers: [\r\n { provide: LIBTABGROUP_ACCESSOR, useExisting: forwardRef(() => LibTabGroupComponent) }\r\n ]\r\n})\r\nexport class LibTabGroupComponent implements OnInit, AfterContentInit, AfterContentChecked {\r\n constructor() { }\r\n\r\n /** The inner tabs of the group. */\r\n @ContentChildren(LibTabComponent, { descendants: true }) public tabs: QueryList<LibTabComponent> | undefined = undefined;\r\n /** Emmited when a step change occurs. */\r\n @Output() protected tabChanged: EventEmitter<LibTabComponent> = new EventEmitter<LibTabComponent>();\r\n\r\n /** The current tab. */\r\n public get currentTab(): LibTabComponent | undefined {\r\n return this.tabs?.find(x => x.isActive);\r\n }\r\n\r\n /** The index (starting from zero) of the current tab. */\r\n public get currentΤabIndex(): number | undefined {\r\n return this.currentTab?.index || undefined;\r\n }\r\n\r\n public ngOnInit(): void { }\r\n\r\n protected onTabChanged(selectedTab: LibTabComponent): void {\r\n if (selectedTab.isActive) {\r\n return;\r\n }\r\n this.tabs?.forEach((tab: LibTabComponent) => tab.isActive = tab.id === selectedTab.id);\r\n this.tabChanged.emit(selectedTab);\r\n }\r\n\r\n protected onTabSelectChanged(selectedTabIndex: number): void {\r\n if (selectedTabIndex === this.currentΤabIndex) {\r\n return;\r\n }\r\n this.tabs?.forEach((tab: LibTabComponent, index: number) => tab.isActive = index === selectedTabIndex);\r\n this.tabChanged.emit(this.tabs?.get(selectedTabIndex));\r\n }\r\n\r\n public ngAfterContentInit(): void {\r\n if (!this.tabs) {\r\n return;\r\n }\r\n }\r\n\r\n public ngAfterContentChecked(): void {\r\n if (this.tabs && this.tabs.length > 0) {\r\n const anyActive = this.tabs.filter(x => x.isActive).length > 0;\r\n if (!anyActive) {\r\n this.tabs.get(0)!.isActive = true;\r\n }\r\n }\r\n }\r\n}","<div class=\"tab-group-select-hidden\">\r\n <label for=\"tabs\"\r\n class=\"sr-only\">\r\n Select a tab\r\n </label>\r\n <select id=\"tabs\"\r\n name=\"tabs\"\r\n (change)=\"onTabSelectChanged(+tabsSelect.value)\"\r\n class=\"tab-group-select\"\r\n #tabsSelect>\r\n <option [value]=\"i\"\r\n *ngFor=\"let tab of tabs; let i = index\">\r\n {{ tab.labelText }}\r\n </option>\r\n </select>\r\n</div>\r\n<div class=\"tab-group-container-hidden\">\r\n <div class=\"tab-group-container\">\r\n <nav class=\"tab-group-container-nav\"\r\n aria-label=\"Tabs\">\r\n <a *ngFor=\"let tab of tabs\"\r\n href=\"javascript:void(0)\"\r\n [class.tab]=\"!tab.isActive\"\r\n [class.tab-active]=\"tab.isActive\"\r\n (click)=\"onTabChanged(tab)\">\r\n <ng-container *ngTemplateOutlet=\"tab.label ? tab.label.template: defaultTabLabel; context:{ $implicit: tab }\"></ng-container>\r\n </a>\r\n </nav>\r\n </div>\r\n</div>\r\n<div *ngIf=\"currentTab?.content\">\r\n <ng-container [ngTemplateOutlet]=\"currentTab?.content || emptyTemplate\"></ng-container>\r\n</div>\r\n<ng-template let-tab\r\n #defaultTabLabel>\r\n {{ tab.labelText || 'tab-' + (tab.index + 1) }}\r\n</ng-template>\r\n<ng-template #emptyTemplate></ng-template>","import { Directive, TemplateRef } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[libStepInfo]',\r\n})\r\nexport class LibStepInfoDirective {\r\n constructor(public template: TemplateRef<any>) { }\r\n}\r\n","import { Directive, TemplateRef } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[libStepLabel]'\r\n})\r\nexport class LibStepLabelDirective {\r\n constructor(public template: TemplateRef<any>) { }\r\n}\r\n","import { ChangeDetectionStrategy, Component, ContentChild, Inject, Input, Optional, TemplateRef, ViewChild, ViewEncapsulation } from '@angular/core';\r\nimport { AbstractControl } from '@angular/forms';\r\n\r\nimport { LIBSTEPPER_ACCESSOR } from '../../tokens';\r\nimport { LibStepInfoDirective } from './lib-step-info.directive';\r\nimport { LibStepLabelDirective } from './lib-step-label.directive';\r\n\r\nexport enum StepState {\r\n Active = 'Active',\r\n Completed = 'Completed',\r\n Upcoming = 'Upcoming'\r\n};\r\n\r\n@Component({\r\n selector: 'lib-step',\r\n template: `\r\n <ng-template>\r\n <ng-content></ng-content>\r\n </ng-template>\r\n `,\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class LibStepComponent {\r\n constructor(\r\n @Optional() @Inject(LIBSTEPPER_ACCESSOR) public readonly _stepper?: any\r\n ) { }\r\n\r\n /** The content provided for the step. */\r\n @ViewChild(TemplateRef, { static: true }) public content!: TemplateRef<any>;\r\n /** The label of the step displayed in header, if applicable. */\r\n @ContentChild(LibStepLabelDirective) public stepLabel: LibStepLabelDirective | undefined;\r\n /** The info of the step displayed in header, if applicable. */\r\n @ContentChild(LibStepInfoDirective) public stepInfo: LibStepInfoDirective | undefined;\r\n /** An optional CSS class for the step header. */\r\n @Input() public class: string | undefined;\r\n /** The abstract control of the step. */\r\n @Input() public stepControl: AbstractControl | undefined;\r\n\r\n /** Indicates the index of the step. */\r\n public get index(): number {\r\n return this._stepper ? this._stepper.steps.toArray().indexOf(this) : -1;\r\n }\r\n\r\n /** Indicates whether this step is the last step. */\r\n public get isLast(): boolean {\r\n return this._stepper ? this._stepper.steps.length - 1 === this.index : false;\r\n }\r\n\r\n /** Indicates whether you can navigate to the step or not. */\r\n public get isValid(): boolean {\r\n if (!this.stepControl) {\r\n return true;\r\n }\r\n return this.stepControl.valid;\r\n }\r\n\r\n /** Shows the current state of the step. */\r\n public get state(): StepState {\r\n const currentIndex = this._stepper?.currentStepIndex;\r\n if (currentIndex === this.index) {\r\n return StepState.Active;\r\n }\r\n if (currentIndex > this.index) {\r\n return StepState.Completed;\r\n }\r\n return StepState.Upcoming;\r\n }\r\n}\r\n","export enum StepperType {\r\n Bullets = 'Bullets',\r\n BulletsAndText = 'BulletsAndText',\r\n Circles = 'Circles',\r\n CirclesWithText = 'CirclesWithText',\r\n Panels = 'Panels',\r\n PanelsWithBorder = 'PanelsWithBorder',\r\n Progress = 'Progress',\r\n Simple = 'Simple'\r\n}","import { AfterViewChecked, ChangeDetectorRef, Component, ContentChildren, EventEmitter, forwardRef, Input, OnInit, Output, QueryList } from '@angular/core';\r\n\r\nimport { LibStepComponent, StepState } from './lib-step.component';\r\nimport { LIBSTEPPER_ACCESSOR } from '../../tokens';\r\nimport { StepperType } from './types/stepper-type';\r\nimport { StepSelectedEvent } from './types/step-selected-event';\r\n\r\n@Component({\r\n selector: 'lib-stepper',\r\n templateUrl: './lib-stepper.component.html',\r\n providers: [\r\n { provide: LIBSTEPPER_ACCESSOR, useExisting: forwardRef(() => LibStepperComponent) }\r\n ]\r\n})\r\nexport class LibStepperComponent implements OnInit, AfterViewChecked {\r\n // Private properties.\r\n private _currentStepIndex: number = 0;\r\n private _isCompleted = false;\r\n\r\n constructor(private _changeDetectorRef: ChangeDetectorRef) { }\r\n\r\n /** The inner steps of the wizard. */\r\n @ContentChildren(LibStepComponent, { descendants: true }) public steps!: QueryList<LibStepComponent>;\r\n /** Emmited when a step change occurs. */\r\n @Output() public readonly stepChanged = new EventEmitter<StepSelectedEvent>();\r\n /** Emmited when the stepper navigates away from the final step. Only emits once. */\r\n @Output() public readonly completed = new EventEmitter<void>();\r\n /** Indicates whether each step has to be validated before proceeding to the next. */\r\n @Input() public linear: boolean = false;\r\n /** The type of the stepper. */\r\n @Input() public type: StepperType = StepperType.Panels;\r\n public StepState = StepState;\r\n public StepperType = StepperType;\r\n\r\n /** The current wizard step. */\r\n public get currentStep(): LibStepComponent | undefined {\r\n return this.steps?.get(this._currentStepIndex);\r\n }\r\n\r\n /** The index (starting from zero) of the current wizard step. */\r\n public get currentStepIndex(): number {\r\n return this._currentStepIndex;\r\n }\r\n\r\n /** Indicates whether stepper can go a step back. */\r\n public get canGoBack(): boolean {\r\n return this._currentStepIndex > 0;\r\n }\r\n\r\n /** Indicates whether stepper can go a step forward. */\r\n public get canGoForward(): boolean {\r\n return this._currentStepIndex < this.steps?.length - 1;\r\n }\r\n\r\n /** Indicates whether */\r\n public get isCompleted(): boolean {\r\n return this._isCompleted;\r\n }\r\n\r\n public ngOnInit(): void { }\r\n\r\n public ngAfterViewChecked(): void {\r\n this._changeDetectorRef.detectChanges();\r\n }\r\n\r\n /** Proceeds to the next step, if any. */\r\n public goToNextStep(): void {\r\n if (this.currentStep?.isLast && !this._isCompleted) {\r\n this._isCompleted = true;\r\n this.completed.emit();\r\n }\r\n if (!this.canGoForward) {\r\n return;\r\n }\r\n this.updateCurrentStepIndex(this._currentStepIndex + 1);\r\n }\r\n\r\n /** Proceeds to the previous step, if any. */\r\n public goToPreviousStep(): void {\r\n if (!this.canGoBack) {\r\n return;\r\n }\r\n this.updateCurrentStepIndex(this._currentStepIndex - 1);\r\n }\r\n\r\n public onSelectStep(selectedStep: LibStepComponent): void {\r\n this.updateCurrentStepIndex(selectedStep.index);\r\n }\r\n\r\n private updateCurrentStepIndex(newIndex: number): void {\r\n const stepsArray = this.steps.toArray();\r\n const currentStep = stepsArray[this.currentStepIndex];\r\n const shouldStop = this.linear && (\r\n (!currentStep.isValid && newIndex >= this.currentStepIndex) || // If current step is invalid and want to go forward, then stop.\r\n (currentStep.isValid && newIndex > this.currentStepIndex + 1 && stepsArray.slice(this.currentStepIndex + 1, newIndex).some(x => !x.isValid)) // If going forward (more than 1 steps), check if there are any invalid steps in between.\r\n );\r\n if (shouldStop) {\r\n return;\r\n }\r\n this.stepChanged.emit({\r\n selectedIndex: newIndex,\r\n previouslySelectedIndex: this.currentStepIndex,\r\n selectedStep: stepsArray[newIndex],\r\n previouslySelectedStep: currentStep\r\n });\r\n this._currentStepIndex = newIndex;\r\n }\r\n}\r\n","<ng-container [ngSwitch]=\"type\">\r\n <!-- Bullets -->\r\n <nav class=\"stepper-bullets-container\"\r\n aria-label=\"Progress\"\r\n *ngSwitchCase=\"StepperType.Bullets\">\r\n <p class=\"stepper-bullets-counter\">Step {{ currentStepIndex + 1 }} of {{ steps.length }}</p>\r\n <ol role=\"list\"\r\n class=\"stepper-bullets-ol\">\r\n <li class=\"cursor-pointer\"\r\n *ngFor=\"let step of steps\"\r\n (click)=\"onSelectStep(step)\">\r\n <!-- Completed Step -->\r\n <div class=\"stepper-bullets-completed-step\"\r\n *ngIf=\"step.state === StepState.Completed\">\r\n <span class=\"sr-only\">Step {{ step.index }}</span>\r\n </div>\r\n <!-- Active Step -->\r\n <div class=\"stepper-bullets-active-step\"\r\n aria-current=\"step\"\r\n *ngIf=\"step.state === StepState.Active\">\r\n <span class=\"stepper-bullets-active-step-level1\"\r\n aria-hidden=\"true\">\r\n <span class=\"stepper-bullets-active-step-level1\"></span>\r\n </span>\r\n <span class=\"stepper-bullets-active-step-bullet\"\r\n aria-hidden=\"true\">\r\n </span>\r\n <span class=\"sr-only\">Step {{ step.index }}</span>\r\n </div>\r\n <!-- Upcoming Step -->\r\n <div href=\"#\"\r\n class=\"stepper-bullets-upcoming-step\"\r\n *ngIf=\"step.state === StepState.Upcoming\">\r\n <span class=\"sr-only\">Step {{ step.index }}</span>\r\n </div>\r\n </li>\r\n </ol>\r\n </nav>\r\n <!-- Bullets & Text -->\r\n <div class=\"stepper-bullets-and-text-container\"\r\n aria-label=\"Progress\"\r\n *ngSwitchCase=\"StepperType.BulletsAndText\">\r\n <nav aria-label=\"Progress\">\r\n <ol role=\"list\"\r\n class=\"stepper-bullets-and-text-ol\">\r\n <li class=\"cursor-pointer\"\r\n *ngFor=\"let step of steps\"\r\n (click)=\"onSelectStep(step)\">\r\n <!-- Complete Step -->\r\n <div class=\"group\"\r\n *ngIf=\"step.state === StepState.Completed\">\r\n <span class=\"stepper-bullets-and-text-completed-step\">\r\n <span class=\"stepper-bullets-and-text-completed-step-level1\">\r\n <svg class=\"h-full w-full text-blue-600 group-hover:text-blue-800\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 20 20\"\r\n fill=\"currentColor\"\r\n aria-hidden=\"true\">\r\n <path fill-rule=\"evenodd\"\r\n d=\"M10 18a8 8 0 100-16 8 8 0 000 16zm3.707-9.293a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z\"\r\n clip-rule=\"evenodd\" />\r\n </svg>\r\n </span>\r\n <span class=\"stepper-bullets-and-text-completed-step-container\"\r\n *ngIf=\"step.stepLabel\">\r\n <ng-container [ngTemplateOutlet]=\"step.stepLabel.template\"></ng-container>\r\n </span>\r\n </span>\r\n </div>\r\n <!-- Active Step -->\r\n <div class=\"stepper-bullets-and-text-active-step\"\r\n aria-current=\"step\"\r\n *ngIf=\"step.state === StepState.Active\">\r\n <span class=\"stepper-bullets-and-text-active-step-level1\"\r\n aria-hidden=\"true\">\r\n <span class=\"stepper-bullets-and-text-active-step-level11\"></span>\r\n <span class=\"stepper-bullets-and-text-active-step-level12\"></span>\r\n </span>\r\n <span class=\"stepper-bullets-and-text-active-step-container\"\r\n *ngIf=\"step.stepLabel\">\r\n <ng-container [ngTemplateOutlet]=\"step.stepLabel.template\"></ng-container>\r\n </span>\r\n </div>\r\n <!-- Upcoming Step -->\r\n <div class=\"group\"\r\n *ngIf=\"step.state === StepState.Upcoming\">\r\n <div class=\"stepper-bullets-and-text-upcoming-step\">\r\n <div class=\"stepper-bullets-and-text-upcoming-step-level1\"\r\n aria-hidden=\"true\">\r\n <div class=\"stepper-bullets-and-text-upcoming-step-level2\"></div>\r\n </div>\r\n <p class=\"stepper-bullets-and-text-upcoming-step-container\"\r\n *ngIf=\"step.stepLabel\">\r\n <ng-container [ngTemplateOutlet]=\"step.stepLabel.template\"></ng-container>\r\n </p>\r\n </div>\r\n </div>\r\n </li>\r\n </ol>\r\n </nav>\r\n </div>\r\n <!-- Circles -->\r\n <nav class=\"flex justify-center\"\r\n aria-label=\"Progress\"\r\n *ngSwitchCase=\"StepperType.Circles\">\r\n <ol class=\"flex items-center\"\r\n role=\"list\">\r\n <li *ngFor=\"let step of steps\"\r\n (click)=\"onSelectStep(step)\"\r\n class=\"relative pr-8 sm:pr-20 cursor-pointer\">\r\n <!-- Completed Step -->\r\n <ng-container *ngIf=\"step.state === StepState.Completed\">\r\n <div class=\"absolute inset-0 flex items-center\"\r\n aria-hidden=\"true\">\r\n <div class=\"h-0.5 w-full bg-blue-600\"></div>\r\n </div>\r\n <div class=\"relative w-8 h-8 flex items-center justify-center bg-blue-600 rounded-full hover:bg-blue-900\">\r\n <svg class=\"w-5 h-5 text-white\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 20 20\"\r\n fill=\"currentColor\"\r\n aria-hidden=\"true\">\r\n <path fill-rule=\"evenodd\"\r\n d=\"M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z\"\r\n clip-rule=\"evenodd\" />\r\n </svg>\r\n <span class=\"sr-only\">Step {{ step.index + 1 }}</span>\r\n </div>\r\n </ng-container>\r\n <!-- Active Step -->\r\n <ng-container *ngIf=\"step.state === StepState.Active\">\r\n <div class=\"absolute inset-0 flex items-center\"\r\n aria-hidden=\"true\">\r\n <div class=\"h-0.5 w-full bg-gray-200\"></div>\r\n </div>\r\n <div class=\"relative w-8 h-8 flex items-center justify-center bg-white border-2 border-blue-600 rounded-full\"\r\n aria-current=\"step\">\r\n <span class=\"h-2.5 w-2.5 bg-blue-600 rounded-full\"\r\n aria-hidden=\"true\"></span>\r\n <span class=\"sr-only\">Step {{ step.index + 1 }}</span>\r\n </div>\r\n </ng-container>\r\n <!-- Upcoming Step -->\r\n <ng-container *ngIf=\"step.state === StepState.Upcoming\">\r\n <div class=\"absolute inset-0 flex items-center\"\r\n aria-hidden=\"true\">\r\n <div class=\"h-0.5 w-full bg-gray-200\"></div>\r\n </div>\r\n <div class=\"group relative w-8 h-8 flex items-center justify-center bg-white border-2 border-gray-300 rounded-full hover:border-gray-400\">\r\n <span class=\"h-2.5 w-2.5 bg-transparent rounded-full group-hover:bg-gray-300\"\r\n aria-hidden=\"true\"></span>\r\n <span class=\"sr-only\">Step {{ step.index + 1 }}</span>\r\n </div>\r\n </ng-container>\r\n </li>\r\n </ol>\r\n </nav>\r\n <!-- Circles With Text -->\r\n <nav class=\"flex items-center justify-center\"\r\n aria-label=\"Progress\"\r\n *ngSwitchCase=\"StepperType.CirclesWithText\">\r\n <ol role=\"list\"\r\n class=\"overflow-hidden\">\r\n <li *ngFor=\"let step of steps\"\r\n (click)=\"onSelectStep(step)\"\r\n class=\"relative pb-10 cursor-pointer\">\r\n <!-- Complete Step -->\r\n <ng-container *ngIf=\"step.state === StepState.Completed\">\r\n <div class=\"-ml-px absolute mt-0.5 top-4 left-4 w-0.5 h-full bg-blue-600\"\r\n aria-hidden=\"true\"\r\n *ngIf=\"!step.isLast\"></div>\r\n <div class=\"relative flex items-start group\">\r\n <span class=\"h-9 flex items-center\">\r\n <span class=\"relative z-10 w-8 h-8 flex items-center justify-center bg-blue-600 rounded-full group-hover:bg-blue-800\">\r\n <svg class=\"w-5 h-5 text-white\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 20 20\"\r\n fill=\"currentColor\"\r\n aria-hidden=\"true\">\r\n <path fill-rule=\"evenodd\"\r\n d=\"M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z\"\r\n clip-rule=\"evenodd\" />\r\n </svg>\r\n </span>\r\n </span>\r\n <span class=\"ml-4 min-w-0 flex flex-col\">\r\n <span class=\"text-xs font-semibold tracking-wide uppercase\"\r\n *ngIf=\"step.stepLabel\">\r\n <ng-container [ngTemplateOutlet]=\"step.stepLabel.template\"></ng-container>\r\n </span>\r\n <span class=\"text-sm text-gray-500\"\r\n *ngIf=\"step.stepInfo\">\r\n <ng-container [ngTemplateOutlet]=\"step.stepInfo.template\"></ng-container>\r\n </span>\r\n </span>\r\n </div>\r\n </ng-container>\r\n <!-- Active Step -->\r\n <ng-container *ngIf=\"step.state === StepState.Active\">\r\n <div class=\"-ml-px absolute mt-0.5 top-4 left-4 w-0.5 h-full bg-gray-300\"\r\n aria-hidden=\"true\"\r\n *ngIf=\"!step.isLast\"></div>\r\n <div class=\"relative flex items-start group\"\r\n aria-current=\"step\">\r\n <span class=\"h-9 flex items-center\"\r\n aria-hidden=\"true\">\r\n <span class=\"relative z-10 w-8 h-8 flex items-center justify-center bg-white border-2 border-blue-600 rounded-full\">\r\n <span class=\"h-2.5 w-2.5 bg-blue-600 rounded-full\"></span>\r\n </span>\r\n </span>\r\n <span class=\"ml-4 min-w-0 flex flex-col\">\r\n <span class=\"text-xs font-semibold tracking-wide uppercase text-blue-600\"\r\n *ngIf=\"step.stepLabel\">\r\n <ng-container [ngTemplateOutlet]=\"step.stepLabel.template\"></ng-container>\r\n </span>\r\n <span class=\"text-sm text-gray-500\"\r\n *ngIf=\"step.stepInfo\">\r\n <ng-container [ngTemplateOutlet]=\"step.stepInfo.template\"></ng-container>\r\n </span>\r\n </span>\r\n </div>\r\n </ng-container>\r\n <!-- Upcoming Step -->\r\n <ng-container *ngIf=\"step.state === StepState.Upcoming\">\r\n <div class=\"-ml-px absolute mt-0.5 top-4 left-4 w-0.5 h-full bg-gray-300\"\r\n aria-hidden=\"true\"\r\n *ngIf=\"!step.isLast\"></div>\r\n <div href=\"#\"\r\n class=\"relative flex items-start group\">\r\n <span class=\"h-9 flex items-center\"\r\n aria-hidden=\"true\">\r\n <span class=\"relative z-10 w-8 h-8 flex items-center justify-center bg-white border-2 border-gray-300 rounded-full group-hover:border-gray-400\">\r\n <span class=\"h-2.5 w-2.5 bg-transparent rounded-full group-hover:bg-gray-300\"></span>\r\n </span>\r\n </span>\r\n <span class=\"ml-4 min-w-0 flex flex-col\">\r\n <span class=\"text-xs font-semibold tracking-wide uppercase text-gray-500\"\r\n *ngIf=\"step.stepLabel\">\r\n <ng-container [ngTemplateOutlet]=\"step.stepLabel.template\"></ng-container>\r\n </span>\r\n <span class=\"text-sm text-gray-500\"\r\n *ngIf=\"step.stepInfo\">\r\n <ng-container [ngTemplateOutlet]=\"step.stepInfo.template\"></ng-container>\r\n </span>\r\n </span>\r\n </div>\r\n </ng-container>\r\n </li>\r\n </ol>\r\n </nav>\r\n <!-- Panels -->\r\n <nav aria-label=\"Progress\"\r\n *ngSwitchCase=\"StepperType.Panels\">\r\n <ol role=\"list\"\r\n class=\"border border-gray-300 rounded-md divide-y divide-gray-300 md:flex md:divide-y-0\">\r\n <li *ngFor=\"let step of steps\"\r\n (click)=\"onSelectStep(step)\"\r\n class=\"relative md:flex-1 md:flex cursor-pointer\">\r\n <!-- Completed step -->\r\n <div class=\"group flex items-center w-full\"\r\n *ngIf=\"step.state === StepState.Completed\">\r\n <span class=\"px-6 py-4 flex items-center text-sm font-medium\">\r\n <span class=\"flex-shrink-0 w-10 h-10 flex items-center justify-center bg-blue-600 rounded-full group-hover:bg-blue-800\">\r\n <svg class=\"w-6 h-6 text-white\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 20 20\"\r\n fill=\"currentColor\"\r\n aria-hidden=\"true\">\r\n <path fill-rule=\"evenodd\"\r\n d=\"M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z\"\r\n clip-rule=\"evenodd\" />\r\n </svg>\r\n </span>\r\n <span class=\"ml-4 text-sm font-medium text-gray-900\"\r\n *ngIf=\"step.stepLabel\">\r\n <ng-container [ngTemplateOutlet]=\"step.stepLabel.template\"></ng-container>\r\n </span>\r\n </span>\r\n </div>\r\n <!-- Active step -->\r\n <div class=\"px-6 py-4 flex items-center text-sm font-medium\"\r\n *ngIf=\"step.state === StepState.Active\">\r\n <span class=\"flex-shrink-0 w-10 h-10 flex items-center justify-center border-2 border-blue-600 rounded-full\">\r\n <span class=\"text-blue-600\">{{ (step.index + 1) }}</span>\r\n </span>\r\n <span class=\"ml-4 text-sm font-medium text-blue-600\"\r\n *ngIf=\"step.stepLabel\">\r\n <ng-container [ngTemplateOutlet]=\"step.stepLabel.template\"></ng-container>\r\n </span>\r\n </div>\r\n <!-- Upcoming step -->\r\n <div class=\"group flex items-center\"\r\n *ngIf=\"step.state === StepState.Upcoming\">\r\n <span class=\"px-6 py-4 flex items-center text-sm font-medium\">\r\n <span class=\"flex-shrink-0 w-10 h-10 flex items-center justify-center border-2 border-gray-300 rounded-full group-hover:border-gray-400\">\r\n <span class=\"text-gray-500 group-hover:text-gray-900\">{{ (step.index + 1) }}</span>\r\n </span>\r\n <span class=\"ml-4 text-sm font-medium text-gray-500 group-hover:text-gray-900\"\r\n *ngIf=\"step.stepLabel\">\r\n <ng-container [ngTemplateOutlet]=\"step.stepLabel.template\"></ng-container>\r\n </span>\r\n </span>\r\n </div>\r\n <!-- Arrow separator for lg screens and up -->\r\n <div *ngIf=\"!step.isLast\"\r\n class=\"hidden md:block absolute top-0 right-0 h-full w-5\"\r\n aria-hidden=\"true\">\r\n <svg class=\"h-full w-full text-gray-300\"\r\n viewBox=\"0 0 22 80\"\r\n fill=\"none\"\r\n preserveAspectRatio=\"none\">\r\n <path d=\"M0 -2L20 40L0 82\"\r\n vector-effect=\"non-scaling-stroke\"\r\n stroke=\"currentcolor\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </div>\r\n </li>\r\n </ol>\r\n </nav>\r\n <!-- Panels With Border -->\r\n <div class=\"panels-with-border-container\"\r\n *ngSwitchCase=\"StepperType.PanelsWithBorder\">\r\n <nav class=\"panels-with-border-nav\"\r\n aria-label=\"Progress\">\r\n <ol role=\"list\"\r\n class=\"panels-with-border-ol\">\r\n <li *ngFor=\"let step of steps\"\r\n (click)=\"onSelectStep(step)\"\r\n class=\"panels-with-border-li\">\r\n <!-- Completed Step -->\r\n <div class=\"panels-with-border-completed-step\"\r\n *ngIf=\"step.state === StepState.Completed\">\r\n <div class=\"group\">\r\n <span class=\"panels-with-border-completed-step-level1\"\r\n aria-hidden=\"true\">\r\n </span>\r\n <span class=\"panels-with-border-completed-step-level2\">\r\n <span class=\"panels-with-border-completed-step-level21\">\r\n <span class=\"panels-with-border-completed-step-level211\">\r\n <svg class=\"w-6 h-6 text-white\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 20 20\"\r\n fill=\"currentColor\"\r\n aria-hidden=\"true\">\r\n <path fill-rule=\"evenodd\"\r\n d=\"M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z\"\r\n clip-rule=\"evenodd\" />\r\n </svg>\r\n </span>\r\n </span>\r\n <span class=\"panels-with-border-completed-step-level22\">\r\n <span class=\"panels-with-border-completed-step-level221\"\r\n *ngIf=\"step.stepLabel\">\r\n <ng-container [ngTemplateOutlet]=\"step.stepLabel.template\"></ng-container>\r\n </span>\r\n <span class=\"panels-with-border-completed-step-level222\"\r\n *ngIf=\"step.stepInfo\">\r\n <ng-container [ngTemplateOutlet]=\"step.stepInfo.template\"></ng-container>\r\n </span>\r\n </span>\r\n </span>\r\n </div>\r\n </div>\r\n <!-- Active Step -->\r\n <div class=\"panels-with-border-active-step\"\r\n *ngIf=\"step.state === StepState.Active\">\r\n <div aria-current=\"step\">\r\n <span class=\"panels-with-border-active-step-level1\"\r\n aria-hidden=\"true\">\r\n </span>\r\n <span class=\"panels-with-border-active-step-level2\">\r\n <span class=\"panels-with-border-active-step-level21\">\r\n <span class=\"panels-with-border-active-step-level211\">\r\n <span class=\"panels-with-border-active-step-level211-text\">{{ step.index + 1 }}</span>\r\n </span>\r\n </span>\r\n <span class=\"panels-with-border-active-step-level22\">\r\n <span class=\"panels-with-border-active-step-level221\"\r\n *ngIf=\"step.stepLabel\">\r\n <ng-container [ngTemplateOutlet]=\"step.stepLabel.template\"></ng-container>\r\n </span>\r\n <span class=\"panels-with-border-active-step-level222\"\r\n *ngIf=\"step.stepInfo\">\r\n <ng-container [ngTemplateOutlet]=\"step.stepInfo.template\"></ng-container>\r\n </span>\r\n </span>\r\n </span>\r\n </div>\r\n <!-- Separator -->\r\n <div class=\"panels-with-border-step-separator\"\r\n aria-hidden=\"true\"\r\n *ngIf=\"step.index !== 0\">\r\n <svg class=\"h-full w-full text-gray-300\"\r\n viewBox=\"0 0 12 82\"\r\n fill=\"none\"\r\n preserveAspectRatio=\"none\">\r\n <path d=\"M0.5 0V31L10.5 41L0.5 51V82\"\r\n stroke=\"currentcolor\"\r\n vector-effect=\"non-scaling-stroke\" />\r\n </svg>\r\n </div>\r\n </div>\r\n <!-- Upcoming Step -->\r\n <div class=\"panels-with-border-upcoming-step\"\r\n *ngIf=\"step.state === StepState.Upcoming\">\r\n <div class=\"group\">\r\n <span class=\"panels-with-border-upcoming-step-level1\"\r\n aria-hidden=\"true\">\r\n </span>\r\n <span class=\"panels-with-border-upcoming-step-level2\">\r\n <span class=\"panels-with-border-upcoming-step-level21\">\r\n <span class=\"panels-with-border-upcoming-step-level211\">\r\n <span class=\"panels-with-border-upcoming-step-level211-text\">{{ step.index + 1 }}</span>\r\n </span>\r\n </span>\r\n <span class=\"panels-with-border-upcoming-step-level22\">\r\n <span class=\"panels-with-border-upcoming-step-level221\"\r\n *ngIf=\"step.stepLabel\">\r\n <ng-container [ngTemplateOutlet]=\"step.stepLabel.template\"></ng-container>\r\n </span>\r\n <span class=\"text-sm font-medium text-gray-500\"\r\n *ngIf=\"step.stepInfo\">\r\n <ng-container [ngTemplateOutlet]=\"step.stepInfo.template\"></ng-container>\r\n </span>\r\n </span>\r\n </span>\r\n </div>\r\n <!-- Separator -->\r\n <div class=\"panels-with-border-step-separator\"\r\n aria-hidden=\"true\"\r\n *ngIf=\"step.index !== 0\">\r\n <svg class=\"h-full w-full text-gray-300\"\r\n viewBox=\"0 0 12 82\"\r\n fill=\"none\"\r\n preserveAspectRatio=\"none\">\r\n <path d=\"M0.5 0V31L10.5 41L0.5 51V82\"\r\n stroke=\"currentcolor\"\r\n vector-effect=\"non-scaling-stroke\" />\r\n </svg>\r\n </div>\r\n </div>\r\n </li>\r\n </ol>\r\n </nav>\r\n </div>\r\n <!-- Progress -->\r\n <div *ngSwitchCase=\"StepperType.Progress\">\r\n <div class=\"mt-6\"\r\n aria-hidden=\"true\">\r\n <div class=\"bg-gray-200 rounded-full overflow-hidden\">\r\n <div class=\"h-2 bg-blue-600 rounded-full\"\r\n [style.width]=\"(((currentStepIndex + 1) / steps.length) * 100) + '%'\">\r\n </div>\r\n </div>\r\n <div class=\"hidden sm:grid grid-cols-4 text-sm font-medium text-gray-600 mt-6\">\r\n <div *ngFor=\"let step of steps\"\r\n (click)=\"onSelectStep(step)\"\r\n class=\"text-blue-600 cursor-pointer\">\r\n <ng-container *ngIf=\"step.stepLabel\"\r\n [ngTemplateOutlet]=\"step.stepLabel.template\">\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <!-- Simple -->\r\n <nav aria-label=\"Progress\"\r\n *ngSwitchCase=\"StepperType.Simple\">\r\n <ol role=\"list\"\r\n class=\"space-y-4 md:flex md:space-y-0 md:space-x-8\">\r\n <li *ngFor=\"let step of steps\"\r\n (click)=\"onSelectStep(step)\"\r\n class=\"md:flex-1 cursor-pointer\">\r\n <!-- Completed Step -->\r\n <div class=\"group pl-4 py-2 flex flex-col border-l-4 border-blue-600 hover:border-blue-800 md:pl-0 md:pt-4 md:pb-0 md:border-l-0 md:border-t-4\"\r\n *ngIf=\"step.state === StepState.Completed\">\r\n <span class=\"text-xs text-blue-600 font-semibold tracking-wide uppercase group-hover:text-blue-800\">Step {{ step.index + 1 }}</span>\r\n <span class=\"text-sm font-medium\"\r\n *ngIf=\"step.stepLabel\">\r\n <ng-container [ngTemplateOutlet]=\"step.stepLabel.template\"></ng-container>\r\n </span>\r\n </div>\r\n <!-- Active Step -->\r\n <div class=\"pl-4 py-2 flex flex-col border-l-4 border-blue-600 md:pl-0 md:pt-4 md:pb-0 md:border-l-0 md:border-t-4\"\r\n aria-current=\"step\"\r\n *ngIf=\"step.state === StepState.Active\">\r\n <span class=\"text-xs text-blue-600 font-semibold tracking-wide uppercase\">Step {{ step.index + 1 }}</span>\r\n <span class=\"text-sm font-medium\"\r\n *ngIf=\"step.stepLabel\">\r\n <ng-container [ngTemplateOutlet]=\"step.stepLabel.template\"></ng-container>\r\n </span>\r\n </div>\r\n <!-- Upcoming Step -->\r\n <div class=\"group pl-4 py-2 flex flex-col border-l-4 border-gray-200 hover:border-gray-300 md:pl-0 md:pt-4 md:pb-0 md:border-l-0 md:border-t-4\"\r\n *ngIf=\"step.state === StepState.Upcoming\">\r\n <span class=\"text-xs text-gray-500 font-semibold tracking-wide uppercase group-hover:text-gray-700\">Step {{ step.index + 1 }}</span>\r\n <span class=\"text-sm font-medium\"\r\n *ngIf=\"step.stepLabel\">\r\n <ng-container [ngTemplateOutlet]=\"step.stepLabel.template\"></ng-container>\r\n </span>\r\n </div>\r\n </li>\r\n </ol>\r\n </nav>\r\n</ng-container>\r\n<ng-container *ngFor=\"let step of steps\">\r\n <ng-container *ngIf=\"step.state === StepState.Active\"\r\n [ngTemplateOutlet]=\"step.content\">\r\n </ng-container>\r\n</ng-container>","import { Component, EventEmitter, forwardRef, Input, OnInit, Output } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\n\n@Component({\n selector: 'lib-toggle-button',\n templateUrl: './toggle-button.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ToggleButtonComponent),\n multi: true\n }\n ]\n})\nexport class ToggleButtonComponent implements OnInit {\n @Input() value: boolean = false;\n @Input() disabled: boolean = false;\n @Input() icon: boolean = true;\n @Input('text') text: string | null | undefined;\n @Input('text-true') textTrue: string | null | undefined;\n @Input('text-false') textFalse: string | null | undefined;\n @Input('description') description: string | null | undefined;\n @Input('description-true') descriptionTrue: string | null | undefined;\n @Input('description-false') descriptionFalse: string | null | undefined;\n @Output() valueChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n private onChange$: any | undefined = undefined;\n private onTouched$: any | undefined = undefined;\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n writeValue(obj: any): void {\n if(obj) {\n this.value = obj || false;\n }\n }\n registerOnChange(fn: any): void {\n this.onChange$ = fn;\n }\n registerOnTouched(fn: any): void {\n this.onTouched$ = fn;\n }\n\n public onBlur(event: any): void {\n if(this.onTouched$) {\n this.onTouched$();\n }\n }\n\n public changeValue(){\n this.value = !this.value;\n this.valueChange.emit(this.value);\n if(this.onChange$) {\n this.onChange$(this.value);\n }\n if(this.onTouched$) {\n this.onTouched$();\n }\n }\n\n}\n","<!-- Enabled: \"bg-indigo-600\", Not Enabled: \"bg-gray-200\" -->\n<div class=\"flex items-center\">\n<button type=\"button\"\n (click)=\"changeValue()\"\n [disabled]=\"disabled\"\n class=\"toggle-button-button\" \n [class.toggle-button-bg-false] = \"!value\"\n [class.toggle-button-bg-true] = \"value\"\n [class.toggle-button-button-disabled]=\"disabled\"\n role=\"switch\" \n aria-checked=\"false\">\n <span class=\"sr-only\">{{value ? textTrue : textFalse}}</span>\n <!-- Enabled: \"translate-x-5\", Not Enabled: \"translate-x-0\" -->\n <span \n class=\"toggle-button-icon-container\"\n [class.toggle-button-icon-container-false] = \"!value\"\n [class.toggle-button-icon-container-true] = \"value\">\n <!-- Enabled: \"opacity-0 ease-out duration-100\", Not Enabled: \"opacity-100 ease-in duration-200\" -->\n <span \n [class.toggle-button-container-inner-true]=\"value\"\n [class.toggle-button-container-inner-false]=\"!value\"\n class=\"toggle-button-icon-container-inner\"\n aria-hidden=\"true\">\n <svg *ngIf=\"icon\" class=\"toggle-button-icon\" fill=\"none\" viewBox=\"0 0 12 12\">\n <path d=\"M4 8l2-2m0 0l2-2M6 6L4 4m2 2l2 2\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\n </svg>\n </span>\n <!-- Enabled: \"opacity-0 ease-out duration-100\", Not Enabled: \"opacity-100 ease-in duration-200\" -->\n <span \n [class.toggle-button-container-inner-true]=\"!value\"\n [class.toggle-button-container-inner-false]=\"value\"\n class=\"toggle-button-icon-container-inner\"\n aria-hidden=\"true\">\n <svg *ngIf=\"icon\" class=\"toggle-button-icon\" fill=\"currentColor\" viewBox=\"0 0 12 12\">\n <path d=\"M3.707 5.293a1 1 0 00-1.414 1.414l1.414-1.414zM5 8l-.707.707a1 1 0 001.414 0L5 8zm4.707-3.293a1 1 0 00-1.414-1.414l1.414 1.414zm-7.414 2l2 2 1.414-1.414-2-2-1.414 1.414zm3.414 2l4-4-1.414-1.414-4 4 1.414 1.414z\" />\n </svg>\n </span>\n </span>\n</button>\n<span class=\"ml-3\" id=\"toggle-button-labels\">\n <div class=\"toggle-button-text\">{{value ? textTrue : textFalse}}</div>\n <div *ngIf=\"text\" class=\"toggle-button-text\">{{text}}</div>\n <div *ngIf=\"description\" class=\"toggle-button-description\">{{description}}</div>\n <div class=\"toggle-button-description\">{{value ? descriptionTrue : descriptionFalse}}</div>\n</span>\n</div>","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\nimport { MenuOption } from '../../types';\n\n\n@Component({\n selector: 'lib-toggle-buttons-list',\n templateUrl: './toggle-buttons-list.component.html'\n})\nexport class ToggleButtonsListComponent implements OnInit {\n @Input() icon: string | undefined = undefined;\n @Input() options: MenuOption[] | undefined;\n @Input() value: any | undefined;\n @Input() compact: boolean = true;\n @Output() valueChange: EventEmitter<any> = new EventEmitter(undefined);\n constructor() { }\n\n ngOnInit(): void {\n }\n\n public selectOption(optionValue: any): void {\n this.value = optionValue;\n this.valueChange.emit(optionValue);\n }\n}\n","<div class=\"relative items-center inline-flex\">\n <div class=\"toggle-buttons-list-icon-container\" *ngIf=\"icon\">\n <i [class]=\"icon\"></i>\n </div>\n <div class=\"toggle-buttons-list-drop-down-compact-container\" *ngIf=\"compact\">\n <lib-drop-down-menu class=\"toggle-buttons-list-drop-down\" [(selected)]=\"value\" (selectedChange)=\"selectOption($event)\" [options]=\"options\">\n </lib-drop-down-menu>\n </div>\n <div class=\"toggle-buttons-list\" *ngIf=\"!compact\">\n <ng-template ngFor let-option [ngForOf]=\"options\" let-i=\"index\">\n <!-- [tooltip]=\"option.description\" -->\n <button type=\"button\"\n [disabled]=\"option.value === value\"\n [class.toggle-buttons-list-button-selected]=\"option.value === value\"\n class=\"toggle-buttons-list-button\"\n (click)=\"selectOption(option.value)\">\n <div class=\"toggle-buttons-list-button-icon-container\" *ngIf=\"option.icon\">\n <i [class]=\"option.icon\"></i>\n </div>\n <span class=\"toggle-buttons-list-button-button-text\">{{option.text}}</span>\n <span *ngIf=\"option.data && option.data.count\"\n class=\"toggle-buttons-list-button-button-count\">{{option.data.count}}\n </span>\n </button>\n </ng-template>\n </div>\n</div>","import { Component, ContentChild, TemplateRef } from '@angular/core';\n\n@Component({selector: 'lib-content-tile-header', template: '<ng-content></ng-content>'})\nexport class ContentTileHeaderComponent {\n @ContentChild(TemplateRef) template: any | undefined = undefined;\n constructor() { }\n}\n","import { Component, ContentChild, Input, OnInit, TemplateRef } from '@angular/core';\nimport { ContentTileHeaderComponent } from '../content-tile-header/content-tile-header.component';\n\n@Component({selector: 'lib-content-tile-item', template: '<ng-content></ng-content>'})\nexport class ContentTileItemComponent {\n @Input() title: string | undefined;\n @ContentChild(TemplateRef) template: any | undefined = undefined;\n constructor() { }\n}\n","import { Component, ContentChild, ContentChildren, EventEmitter, Input, OnInit, Output, QueryList, TemplateRef } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { ContentTileHeaderComponent } from './content-tile-header/content-tile-header.component';\r\nimport { ContentTileItemComponent } from './content-tile-item/content-tile-item.component';\r\n\r\n@Component({\r\n selector: 'lib-content-tile',\r\n templateUrl: './content-tile.component.html'\r\n})\r\nexport class ContentTileComponent implements OnInit {\r\n\r\n @Input() title: string | undefined = undefined;\r\n @Input() busy = false;\r\n @Input('show-action') showAction: boolean | undefined = true;\r\n @Input('show-footer') showFooter: boolean | undefined = true;\r\n @Input('action-text') actionText: string = 'Περισσότερα';\r\n // tslint:disable-next-line:no-output-rename\r\n @Output('tile-action') tileAction: EventEmitter<any> = new EventEmitter<any>();\r\n public selectedIndex = 0;\r\n\r\n public itemTemplates: any[] = [];\r\n @ContentChildren(ContentTileItemComponent, { read: ContentTileItemComponent })\r\n set items(refs: QueryList<ContentTileItemComponent>) {\r\n if (refs) {\r\n this.itemTemplates = refs.toArray();\r\n }\r\n }\r\n\r\n @ContentChild(ContentTileHeaderComponent) header: ContentTileHeaderComponent | undefined = undefined;\r\n constructor(private router: Router) { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n public emitTileAction($event: any): boolean {\r\n $event.preventDefault();\r\n $event.stopPropagation();\r\n this.tileAction.emit($event);\r\n return false;\r\n }\r\n\r\n}\r\n\r\n","<div class=\"card\" [class.card-deck-busy]=\"busy\">\r\n <div class=\"card-body\">\r\n <div class=\"kpi-tile-title-container flex align-top\">\r\n <a *ngIf=\"!header\" href=\"#\"\r\n class=\"kpi-tile-action flex-1\" (click)=\"emitTileAction($event)\">{{(this.itemTemplates[selectedIndex].title || title) || '-'}}</a>\r\n <ng-container *ngIf=\"header && header.template\">\r\n <div class=\"flex-1\">\r\n <ng-template [ngTemplateOutlet]=\"header.template\"></ng-template>\r\n </div>\r\n </ng-container>\r\n <div *ngIf=\"showAction\" class=\"float-right align-top\">\r\n <a href=\"#\" class=\"kpi-tile-action text-xs\" (click)=\"emitTileAction($event)\">{{actionText}}</a>\r\n </div>\r\n </div>\r\n <div class=\"flex items-center\" *ngIf=\"itemTemplates\">\r\n <ng-template [ngTemplateOutlet]=\"itemTemplates[selectedIndex].template\"></ng-template>\r\n </div>\r\n <div class=\"tile-card-footer opacity-25 hover:opacity-75\" *ngIf=\"itemTemplates && itemTemplates.length>1\">\r\n <nav class=\"flex items-center justify-between px-4 sm:px-0\">\r\n <div class=\"flex w-0 flex-1\"></div>\r\n <div class=\"flex items-center justify-between px-2\">\r\n <ng-container *ngFor=\"let item of itemTemplates; index as i\">\r\n <button type=\"button\"\r\n title=\"details\"\r\n (click)=\"selectedIndex=i\"\r\n [disabled]=\"selectedIndex===i\"\r\n class=\"tile-card-item-btn\"\r\n [class.tile-card-item-btn-available]=\"selectedIndex!==i\"\r\n [class.tile-card-item-btn-selected]=\"selectedIndex===i\">\r\n </button>\r\n </ng-container>\r\n </div>\r\n <div class=\"flex w-0 flex-1 justify-end\"></div>\r\n </nav>\r\n </div>\r\n </div>\r\n</div>\r\n","import { Component, Input, OnChanges, SimpleChanges } from '@angular/core';\n\n\n@Component({\n selector: 'lib-stats-grid',\n templateUrl: './stats-grid.component.html'\n})\nexport class StatsGridComponent implements OnChanges {\n @Input() busy = false;\n @Input() count = 6;\n public loader: any[] = ['', '', '', '', '', ''];\n @Input() mode: string = 'normal';\n @Input() labels: string[] = ['Online', 'Offline', 'Faulted'];\n @Input() values: number[] = [10, 20, 30];\n @Input() colors: string[] = [\n 'rgb(53, 177, 201, 0.6)',\n 'rgb(168, 162, 158, 0.2)',\n 'rgb(233, 96, 96, 0.8)'\n ];\n\n constructor() {\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.count) {\n this.loader = [];\n for (let i = 0; i <= this.count; i++) {\n this.loader.push('');\n }\n }\n }\n\n public isNumber(value: any): boolean {\n return !isNaN(Number(value));;\n }\n}\n","<div *ngIf=\"!busy\">\n <ul role=\"list\" class=\"grid gap-1\"\n [class.grid-cols-4]=\"mode==='normal'\"\n [class.grid-flow-col]=\"mode!=='normal'\">\n <ng-container *ngFor=\"let value of values; index as i\">\n <li class=\"col-span-1 flex pb-2\" *ngIf=\"mode==='normal'\">\n <div class=\"grid-cols-1 border-l-2 px-1\" [style]=\"'border-color:' + colors[i]\">\n <div class=\"text-xs text-ellipsis overflow-hidden\">{{labels[i]}}</div>\n <div *ngIf=\"isNumber(values[i])\" class=\"font-medium text-sm md:text-lg text-ellipsis overflow-hidden\">{{values[i] | number:'1.0-2':'el'}}</div>\n <div *ngIf=\"!isNumber(values[i])\" class=\"font-medium text-sm md:text-lg text-ellipsis overflow-hidden\">{{values[i]}}</div>\n </div>\n </li>\n <li class=\"col-span-1 flex pb-2\" *ngIf=\"mode!=='normal'\">\n <div class=\"grid-cols-1 border-l-2 pl-1 pr-2\" [style]=\"'border-color:' + colors[i]\">\n <div *ngIf=\"isNumber(values[i])\" class=\"font-medium text-xs lg:text-sm text-ellipsis overflow-hidden\">{{values[i] | number:'1.0-2':'el'}}</div>\n <div *ngIf=\"!isNumber(values[i])\" class=\"font-medium text-xs lg:text-sm text-ellipsis overflow-hidden\">{{values[i]}}</div>\n <div class=\"text-xs max-w-18 lg:w-auto truncate text-ellipsis overflow-hidden\">{{labels[i]}}</div>\n </div>\n </li>\n </ng-container>\n </ul>\n </div>\n <div *ngIf=\"busy\">\n <ul role=\"list\" class=\"grid gap-1\"\n [class.grid-cols-4]=\"mode==='normal'\"\n [class.grid-flow-col]=\"mode!=='normal'\">\n <ng-container *ngFor=\"let value of values; index as i\">\n <li class=\"animate-pulse col-span-1 flex pb-2\" *ngIf=\"mode==='normal'\">\n <div class=\"grid-cols-1 border-l-2 px-1\" style=\"border-color:rgb(168, 162, 158, 0.2)\">\n <div class=\"rounded-md bg-slate-400/25 h-3 w-14\"></div>\n <div class=\"rounded-md bg-slate-400/25 mt-2 h-4 w-6\"></div>\n </div>\n </li>\n <li class=\"animate-pulse col-span-1 flex pb-2\" *ngIf=\"mode!=='normal'\">\n <div class=\"grid-cols-1 border-l-2 pl-1 pr-2\" style=\"border-color:rgb(168, 162, 158, 0.2)\">\n <div class=\"rounded-md bg-slate-400/25 h-3 w-14\"></div>\n <div class=\"rounded-md bg-slate-400/25 mt-2 h-4 w-6\"></div>\n </div>\n </li>\n </ng-container>\n </ul>\n </div> ","import { Component, Input, OnChanges, SimpleChanges } from '@angular/core';\n\n@Component({\n selector: 'lib-progress-bar',\n templateUrl: './progress-bar.component.html'\n})\nexport class ProgressBarComponent implements OnChanges {\n @Input() value: number = 0;\n @Input('value-text') valueText: string | undefined;\n @Input() total: number = 0;\n @Input('total-text') totalText: string | undefined;\n @Input() text: string | undefined = undefined;\n @Input() busy: boolean = false;\n public percentage: number = 0;\n\n constructor() {\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.value || changes.total) {\n this.calcPercentage();\n }\n }\n\n private calcPercentage() {\n if (this.total > 0) {\n this.percentage = (this.value / this.total) * 100;\n } else {\n this.percentage = 0;\n }\n }\n}\n","<div class=\"progress-bar-container\">\n <div class=\"progress-bar-label\" *ngIf=\"!busy\">{{text}} {{valueText ?? value}}/{{totalText ?? total}}</div>\n <div class=\"progress-bar-backdrop progress-bar-label w-2/3\" *ngIf=\"busy\"></div>\n <div class=\"progress-bar-backdrop\">\n <div class=\"progress-bar-inner\" [style]=\"'width:' + percentage + '%' \"></div>\n </div>\n</div>\n ","import { Directive, ViewContainerRef, Input } from '@angular/core';\r\n\r\n@Directive({ selector: '[appDynamicComponentHost]' })\r\nexport class DynamicComponentHostDirective {\r\n @Input() hostName: string = '';\r\n constructor(public viewContainerRef: ViewContainerRef) {}\r\n}","import { ComponentRef, ViewRef } from '@angular/core';\r\n\r\n/**\r\n * Holds information about the dynamic content.\r\n * @remarks\r\n * `ComponentRef` is undefined in the case content is of `TemplateRef` type.\r\n */\r\nexport class ContentRef {\r\n constructor(public nodes: any[], public viewRef?: ViewRef, public componentRef?: ComponentRef<any>) {}\r\n}\r\n","import {\r\n ComponentFactoryResolver,\r\n ViewContainerRef,\r\n ComponentFactory,\r\n Type,\r\n ElementRef,\r\n StaticProvider,\r\n TemplateRef,\r\n ComponentRef,\r\n ApplicationRef,\r\n Injector,\r\n} from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\nimport { ComponentLoaderOptions } from './component-loader-options.class';\r\nimport { ContentRef } from './content-ref.class';\r\n\r\n/**\r\n * Provides ways of loading and handling dynamic content.\r\n *\r\n * @remarks\r\n * Do NOT use this directly, create an instance through {@link ComponentLoaderFactory}\r\n * You can use this loader in two ways:\r\n * - Attaches a component to `ViewContainerRef`.\r\n * - Attaches a component to `ViewContainerRef`. The attached component has a `<ng-content>` tag inside its view. The {@link ComponentLoaderOptions.content} will be drawn inside this tag.\r\n *\r\n * @internal\r\n */\r\nexport class ComponentLoader<T extends object> {\r\n /**\r\n * Before content is shown event.\r\n */\r\n onBeforeShow = new Subject();\r\n /**\r\n * After show content event.\r\n * @returns The id of newly created component ref.\r\n */\r\n onShown = new Subject();\r\n /**\r\n * Before content is hidden event.\r\n * @returns The instance of attached component;\r\n */\r\n onBeforeHide = new Subject();\r\n /**\r\n * After content is hidden event.\r\n * @returns The id of destroyed component ref.\r\n */\r\n onHidden = new Subject();\r\n\r\n public instance?: T;\r\n public componentRef?: ComponentRef<T>;\r\n private componentFactory?: ComponentFactory<T>;\r\n private container: string | ElementRef | any;\r\n private providers: StaticProvider[] = [];\r\n private contentRef?: ContentRef;\r\n private containerDefaultSelector = 'body';\r\n private innerComponent?: ComponentRef<T>;\r\n constructor(\r\n private vcr: ViewContainerRef | undefined,\r\n private cfr: ComponentFactoryResolver,\r\n private applicationRef: ApplicationRef,\r\n private injector: Injector\r\n ) {}\r\n\r\n /**\r\n * Attaches component.\r\n * @param componentType - The type component to attach.\r\n * @returns Current instance of {@link ComponentLoader}\r\n */\r\n public attach(componentType: Type<T>): ComponentLoader<T> {\r\n this.componentFactory = this.cfr.resolveComponentFactory<T>(componentType);\r\n return this;\r\n }\r\n\r\n /**\r\n * Body will be used in nothing is provided.\r\n * @param container - The element in which dynamic content will be drawn inside to. For string case a query to the dom will be executed to find the element.\r\n * @returns Current instance of {@link ComponentLoader}\r\n */\r\n public to(container?: string | ElementRef): ComponentLoader<T> {\r\n this.container = container || this.container;\r\n return this;\r\n }\r\n\r\n /**\r\n * Adds provider to the providers array. These providers will be injected to the attached component.\r\n *\r\n * @see {@link https://angular.io/guide/glossary#di-token | Injection Token}\r\n *\r\n * @param provider - Provider to inject.\r\n * @returns Current instance of {@link ComponentLoader}\r\n */\r\n public provide(provider: StaticProvider): ComponentLoader<T> {\r\n this.providers.push(provider);\r\n return this;\r\n }\r\n\r\n /**\r\n * Attaches attached component to dom and any dynamic content if provided.\r\n * @remarks\r\n * Also triggers the {@link ComponentLoader.onBeforeShow} and {@link ComponentLoader.onShown} events.\r\n *\r\n * @param options - {@link ComponentLoaderOptions}.\r\n * @returns A reference to the created content.\r\n */\r\n public show(options: ComponentLoaderOptions = {}): ComponentRef<T> | undefined {\r\n if (this.componentRef) {\r\n throw Error('Component is already shown');\r\n }\r\n if (!this.componentFactory) {\r\n throw Error('You must attach a component');\r\n }\r\n this.onBeforeShow.next({});\r\n\r\n if (options.content) {\r\n this.contentRef = this.getContentRef(options.content, options.context, options.initialState);\r\n }\r\n this.createComponentAndAttachToView(options);\r\n this.appendContentToContainer();\r\n this.markComponentsForCheck();\r\n\r\n this.onShown.next(options.id);\r\n\r\n return this.componentRef;\r\n }\r\n\r\n /**\r\n * Removes attached component from dom.\r\n * @remarks\r\n * Also triggers the {@link ComponentLoader.onBeforeHide} and {@link ComponentLoader.onHidden} events.\r\n *\r\n * @param id - If provided it is returned through the {@link ComponentLoader.onHidden}.\r\n * @returns Current instance of {@link ComponentLoader}\r\n */\r\n public hide(id?: number | string, result?: any): ComponentLoader<T> {\r\n if (!this.componentRef) {\r\n throw Error('No attached component found to hide');\r\n }\r\n\r\n this.onBeforeHide.next(this.componentRef.instance);\r\n\r\n const componentEl = this.componentRef.location.nativeElement;\r\n componentEl.parentNode.removeChild(componentEl);\r\n if (this.contentRef?.componentRef) {\r\n this.contentRef.componentRef.destroy();\r\n }\r\n if (this.vcr && this.contentRef?.viewRef) {\r\n this.vcr.remove(this.vcr.indexOf(this.contentRef.viewRef));\r\n }\r\n if (this.contentRef?.viewRef) {\r\n this.contentRef.viewRef.destroy();\r\n }\r\n this.contentRef = void 0;\r\n this.componentRef = void 0;\r\n\r\n this.onHidden.next(id ? { id, result } : null);\r\n\r\n return this;\r\n }\r\n\r\n getInnerComponent(): ComponentRef<T> | undefined {\r\n return this.innerComponent;\r\n }\r\n\r\n private markComponentsForCheck() {\r\n if (this.contentRef?.componentRef) {\r\n this.innerComponent = this.contentRef.componentRef.instance;\r\n this.contentRef.componentRef.changeDetectorRef.markForCheck();\r\n this.contentRef.componentRef.changeDetectorRef.detectChanges();\r\n }\r\n this.componentRef!.changeDetectorRef.markForCheck();\r\n this.componentRef!.changeDetectorRef.detectChanges();\r\n }\r\n\r\n private createComponentAndAttachToView(options: ComponentLoaderOptions) {\r\n const injector = Injector.create({\r\n providers: this.providers,\r\n parent: this.injector,\r\n });\r\n this.componentRef = this.componentFactory!.create(injector, this.contentRef?.nodes);\r\n this.applicationRef.attachView(this.componentRef.hostView);\r\n this.instance = this.componentRef.instance;\r\n Object.assign(this.componentRef.instance, options);\r\n }\r\n\r\n private appendContentToContainer() {\r\n if (this.container instanceof ElementRef) {\r\n this.container.nativeElement.appendChild(this.componentRef?.location.nativeElement);\r\n }\r\n if (typeof this.container === 'string' && typeof document !== 'undefined') {\r\n const selectedElement = document.querySelector(this.container) || document.querySelector(this.containerDefaultSelector);\r\n if (!selectedElement) {\r\n return;\r\n }\r\n selectedElement.appendChild(this.componentRef?.location.nativeElement);\r\n }\r\n }\r\n\r\n private getContentRef(content?: string | TemplateRef<any>, context?: any, initialState?: any): ContentRef {\r\n //TemplateRef case\r\n if (content instanceof TemplateRef) {\r\n if (this.vcr) {\r\n const viewRef = this.vcr.createEmbeddedView<TemplateRef<T>>(content, context);\r\n viewRef.markForCheck();\r\n return new ContentRef([viewRef.rootNodes], viewRef);\r\n }\r\n const viewRef = content.createEmbeddedView({});\r\n this.applicationRef.attachView(viewRef);\r\n return new ContentRef([viewRef.rootNodes], viewRef);\r\n }\r\n\r\n //Component case\r\n if (typeof content === 'function') {\r\n const contentCf = this.cfr.resolveComponentFactory(content);\r\n const injector = Injector.create({\r\n providers: this.providers,\r\n parent: this.injector,\r\n });\r\n const componentRef = contentCf.create(injector);\r\n // Object.assign(componentRef.instance, initialState);\r\n this.applicationRef.attachView(componentRef.hostView);\r\n return new ContentRef([[componentRef.location.nativeElement]], componentRef.hostView, componentRef);\r\n }\r\n\r\n throw Error('Unsupported content type');\r\n }\r\n}\r\n","import { ApplicationRef, ComponentFactoryResolver, Injectable, Injector, ViewContainerRef } from '@angular/core';\r\nimport { ComponentLoader } from './component-loader.class';\r\n\r\n/**\r\n * Use to create instances of {@link ComponentLoader}.\r\n *\r\n * @public\r\n */\r\n@Injectable({ providedIn: 'root' })\r\nexport class ComponentLoaderFactory {\r\n constructor(\r\n private componentFactoryResolver: ComponentFactoryResolver,\r\n private injector: Injector,\r\n private applicationRef: ApplicationRef\r\n ) {}\r\n\r\n /**\r\n * Returns a new instance of {@link ComponentLoader}\r\n * @param viewContainerRef - The view container the dynamic content will be attached to.\r\n * @returns A new instance of {@link ComponentLoader}.\r\n *\r\n * @public\r\n */\r\n createLoader<T extends object>(viewContainerRef?: ViewContainerRef): ComponentLoader<T> {\r\n return new ComponentLoader<T>(viewContainerRef, this.componentFactoryResolver, this.applicationRef, this.injector);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\nimport { UserSettingKey } from '../types';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class UserSettingsService {\r\n private static SETTINGS_KEY = '@indice/ng-components_user-settings';\r\n\r\n private _defaultPreferences: { [key in UserSettingKey]: any } = {\r\n 'MobileSideBar': true\r\n };\r\n\r\n public getAll(): { [key in UserSettingKey]: any } {\r\n const settingsJson = localStorage.getItem(UserSettingsService.SETTINGS_KEY);\r\n if (settingsJson) {\r\n return JSON.parse(settingsJson);\r\n }\r\n return this._defaultPreferences;\r\n }\r\n\r\n public get(key: UserSettingKey): any { \r\n const settings = this.getAll();\r\n return settings[key];\r\n }\r\n\r\n public set(key: UserSettingKey, value: any): void {\r\n const settings = this.getAll();\r\n settings[key] = value;\r\n localStorage.setItem(UserSettingsService.SETTINGS_KEY, JSON.stringify(settings));\r\n }\r\n}\r\n","import { IShellConfig, NavLink } from './../../../types';\r\nimport { Component, Inject, Input, OnInit } from '@angular/core';\r\nimport { Observable } from 'rxjs/internal/Observable';\r\nimport { of } from 'rxjs';\r\nimport { APP_LINKS } from '../../../tokens';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { share } from 'rxjs/operators';\r\n\r\n@Component({\r\n selector: 'lib-shell-sidebar',\r\n templateUrl: './shell-sidebar.component.html'\r\n})\r\nexport class ShellSidebarComponent implements OnInit {\r\n constructor(\r\n @Inject(Router) protected router: Router,\r\n @Inject(ActivatedRoute) protected route: ActivatedRoute,\r\n @Inject(APP_LINKS) public links: any\r\n ) { }\r\n\r\n @Input('section-links') sectionLinksPath = 'main';\r\n @Input('config') shellConfig: IShellConfig | undefined = undefined;\r\n @Input('sticky') sticky: boolean = false;\r\n public sectionLinks: Observable<NavLink[]> = of([]);\r\n public activeFragment: any | null = null;\r\n\r\n public get activeNavLinkClass(): string {\r\n const linkClasses = 'sidebar ' + (this.sticky ? 'nav-link-active-b' : 'nav-link-active-l') + ' group';\r\n console.log('activeNavLinkClass getter ', linkClasses);\r\n return linkClasses;\r\n }\r\n\r\n public ngOnInit(): void {\r\n this.activeFragment = this.route.fragment.pipe(share());\r\n this.sectionLinks = this.links[this.sectionLinksPath] as Observable<NavLink[]>;\r\n }\r\n}\r\n","<!-- Sidebar component, swap this element with another sidebar if you like -->\r\n<div class=\"shell-sidebar-component-container\">\r\n <div class=\"shell-sidebar-component-links-container sidebar\">\r\n <lib-nav-links-list [show-icons]=\"true\"\r\n [show-text]=\"!sticky\"\r\n [large-icons]=\"sticky\"\r\n [links]=\"sectionLinks\"\r\n [active-fragment]=\"activeFragment\"\r\n [link-class]=\"'sidebar nav-link group'\"\r\n [link-active-class]=\"'sidebar nav-link-active-b group'\">\r\n </lib-nav-links-list>\r\n </div>\r\n</div>","import { MenuOption } from './../../types';\r\nimport { Component, Inject, OnInit } from '@angular/core';\r\nimport { APP_LANGUAGES } from '../../tokens';\r\nimport { IAppLanguagesService } from '../../types';\r\n\r\n@Component({\r\n selector: 'lib-language-selection',\r\n templateUrl: './language-selection.component.html'\r\n})\r\nexport class LanguageSelectionComponent implements OnInit {\r\n\r\n public menuExpanded = false;\r\n constructor(@Inject(APP_LANGUAGES) public langsService: IAppLanguagesService | undefined) { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n public selectLang(option: MenuOption): void {\r\n if (this.langsService?.setSelected) {\r\n this.langsService.setSelected(option.value);\r\n }\r\n }\r\n\r\n public onClickOutside($event: any): void {\r\n this.menuExpanded = false;\r\n }\r\n}\r\n","<div class=\"relative\" (clickOutside)=\"onClickOutside($event)\">\r\n <button class=\"langs-button\" (click)=\"menuExpanded = !menuExpanded\">\r\n <i class=\"text-xs mr-1 ms-Icon ms-Icon--Globe\"></i>\r\n <ng-container *ngFor=\"let lang of langsService?.options | async\">\r\n <span *ngIf=\"lang.value === langsService?.selected\">{{lang.text}}</span>\r\n </ng-container>\r\n </button>\r\n\r\n <div\r\n [class]=\"menuExpanded ? 'langs-menu-expanded':'langs-menu-collapsed'\" role=\"menu\" aria-orientation=\"vertical\" aria-labelledby=\"menu-button\" tabindex=\"-1\">\r\n <div class=\"py-1\" role=\"none\">\r\n <ng-container *ngFor=\"let lang of langsService?.options | async\">\r\n <a (click)=\"selectLang(lang)\" *ngIf=\"lang.value != langsService?.selected\" class=\"nav-link-profile\" role=\"menuitem\" tabindex=\"-1\" id=\"menu-item-0\">\r\n <i class=\"text-xs mr-1 ms-Icon ms-Icon--GlobeFavorite\"></i>\r\n {{lang.description}}\r\n </a>\r\n </ng-container>\r\n </div>\r\n </div>\r\n</div>\r\n","import { IAppNotifications, NavLink } from './../../types';\r\nimport { Component, Inject, OnInit, OnDestroy } from '@angular/core';\r\nimport { Observable, of, Subscription } from 'rxjs';\r\nimport { APP_LINKS, APP_NOTIFICATIONS } from '../../tokens';\r\n\r\n@Component({\r\n selector: 'lib-notifications-indicator',\r\n templateUrl: './notifications-indicator.component.html'\r\n})\r\nexport class NotificationsIndicatorComponent implements OnInit, OnDestroy {\r\n\r\n public menuExpanded = false;\r\n public unreadCount = 0;\r\n public items: any[] = [];\r\n public allNotificationsLink?: NavLink;\r\n private notificationsSub$: Subscription | undefined;\r\n private inboxAction: any | undefined = undefined;\r\n public newArrival = false;\r\n constructor(@Inject(APP_NOTIFICATIONS) public notifications?: IAppNotifications, @Inject(APP_LINKS) public links?: any) { }\r\n\r\n ngOnDestroy(): void {\r\n if (this.notificationsSub$) {\r\n this.notificationsSub$.unsubscribe();\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n if(this.links && this.links['notifications']) {\r\n (this.links['notifications'] as Observable<NavLink>).subscribe(notificationsLink => {\r\n this.allNotificationsLink = notificationsLink;\r\n });\r\n }\r\n if(this.notifications) {\r\n this.notificationsSub$ = this.notifications?.messages.subscribe(result => {\r\n if (result.items){\r\n this.newArrival = true;\r\n this.unreadCount = result.count;\r\n this.items = result.items;\r\n setTimeout( () => { this.newArrival = false; }, 1000 );\r\n }\r\n });\r\n }\r\n }\r\n\r\n public doInboxAction(): void {\r\n if (this.notifications?.inboxAction) {\r\n this.notifications.inboxAction();\r\n } else {\r\n this.menuExpanded = !this.menuExpanded;\r\n this.ngOnDestroy();\r\n this.ngOnInit();\r\n }\r\n this.unreadCount = 0;\r\n }\r\n\r\n public removeItem(index:number){\r\n this.items.splice(index,1);\r\n }\r\n\r\n // this.notificationsSub$ = this.links.notifications?.pipe(map(result => {\r\n // this.allItemsLink = result.allNotifications;\r\n // this.items = result.items;\r\n // this.unreadCount = result.count;\r\n // }));\r\n\r\n // [this.notificationsLinksPath] as Observable<NotificationNavLink[]>;\r\n // this.allNotificationsLink = this.links[this.allNotificationsLinkPath] as Observable<NavLink>;\r\n // this.unreadNotificationsCountObs = this.links[this.notificationsCounterLinksPath] as Observable<number>;\r\n // this.getUnreadNotificationsCount();\r\n\r\n // tslint:disable-next-line:typedef\r\n public onClickOutside($event: any) {\r\n this.menuExpanded = false;\r\n }\r\n\r\n}\r\n","<div class=\"relative\"\r\n(clickOutside)=\"onClickOutside($event)\">\r\n <!-- Notifications Button -->\r\n <button type=\"button\"\r\n (click)=\"doInboxAction()\"\r\n aria-expanded=\"false\"\r\n aria-haspopup=\"true\">\r\n <span class=\"sr-only\">View notifications</span>\r\n <span class=\"avatar-container\">\r\n <span class=\"avatar-text\">\r\n <i class=\"ms-Icon hover:text-blue-400\"\r\n [class.ms-Icon--MessageFill]=\"unreadCount > 0\"\r\n [class.text-sky-400]=\"unreadCount > 0\"\r\n [class.animate-notification]=\"newArrival\"\r\n [class.ms-Icon--Message]=\"unreadCount === 0\">\r\n </i>\r\n </span>\r\n <span\r\n *ngIf=\"unreadCount > 0\"\r\n [class.animate-pulse]=\"newArrival\"\r\n class=\"absolute top-0 right-0 inline-flex items-center justify-center -mt-1 ml-1 text-xs leading-none text-gray-100 ordinal\">\r\n {{ unreadCount }}\r\n </span>\r\n </span>\r\n </button>\r\n\r\n <!-- Notifications dropdown -->\r\n <div *ngIf=\"menuExpanded\" class=\"header-notifications-dropdown-with-username\" role=\"menu\" aria-orientation=\"vertical\" aria-labelledby=\"messages-menu\">\r\n <div class=\"max-h-64 overflow-y-auto notification-messages min-h\">\r\n <ng-container *ngIf=\"!items; else messagesDropDown\" class=\"py-5\">\r\n <div class=\"notifications-nav-link hover:bg-transparent\">Δεν έχετε νέες ειδοποιήσεις</div>\r\n </ng-container>\r\n <ng-template #messagesDropDown>\r\n <ul class=\"pr-1.5\">\r\n <ng-container *ngIf=\"items; else loading\">\r\n <ng-container *ngIf=\"items.length <= 0\" class=\"py-5\">\r\n <div class=\"notifications-nav-link hover:bg-transparent\">Δεν έχετε νέες ειδοποιήσεις</div>\r\n </ng-container>\r\n <ng-container *ngFor=\"let message of items; let i = index\">\r\n <li class=\"mb-2\" [ngClass]=\"{ 'border-l-2 border-blue-500 bg-blue-50 hover:bg-blue-50': !message.data.isRead }\">\r\n <div class=\"flex justify-between\">\r\n <div class=\"flex-grow\">\r\n <a\r\n [routerLink]=\"message.path\"\r\n (click)=\"removeItem(i)\"\r\n class=\"notifications-nav-link grid\"\r\n [ngClass]=\"!message.data.isRead ? ' hover:bg-blue-50' : 'border-b border-gray-100'\"\r\n >\r\n <div class=\"flex flex-col\">\r\n <div class=\"font-thin tracking-tighter\">\r\n {{ message.data.creationDate | date: \"EEE, d MMMM\" }}\r\n </div>\r\n <div class=\"font-bold\">\r\n {{ message.data.text }}\r\n </div>\r\n </div>\r\n </a>\r\n </div>\r\n </div>\r\n </li>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <ng-template #loading>\r\n <div class=\"h-32 flex items-center justify-center\">\r\n <div class=\"animate-pulse text-s text-gray-600\">Loading...</div>\r\n </div>\r\n </ng-template>\r\n </ul>\r\n </ng-template>\r\n </div>\r\n <div class=\"p-1 rounded-sm\">\r\n <a [routerLink]=\"allNotificationsLink!.path\" (click)=\"onClickOutside($event)\">\r\n <button type=\"button\" class=\"header-notifications-dropdown-view-all-button\">{{allNotificationsLink!.text}}</button>\r\n </a>\r\n </div>\r\n </div>\r\n</div>\r\n","import { Component, Inject, Input, OnInit } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { AuthService } from '@indice/ng-auth';\r\nimport { APP_LINKS } from '../../tokens';\r\nimport { User } from 'oidc-client-ts';\r\nimport { Subscription } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'lib-user-profile-menu',\r\n templateUrl: './user-profile-menu.component.html'\r\n})\r\nexport class UserProfileMenuComponent implements OnInit {\r\n\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('show-user-name') showUserName: boolean | undefined = false;\r\n protected userSub$: Subscription | null = null;\r\n protected statusSub$: Subscription | null = null;\r\n public user: User | null = null;\r\n public avatarName: string | null = null;\r\n public userMenuExpanded = false;\r\n\r\n constructor(@Inject(AuthService) protected authService: AuthService,\r\n @Inject(Router) protected router: Router,\r\n @Inject(APP_LINKS) public links: any) { }\r\n\r\n ngOnInit(): void {\r\n this.authService.loadUser().subscribe((user) => {\r\n this.setCurrentUser(user);\r\n }, error => {\r\n console.error(error);\r\n });\r\n // Detect user changes and display / or not user info accordingly...\r\n this.userSub$ = this.authService.user$.subscribe((user: any) => {\r\n // console.log('ShellHeaderComponent user subscription');\r\n this.setCurrentUser(user);\r\n });\r\n }\r\n\r\n public signin(event: any | null | undefined): void {\r\n if (event) {\r\n event.preventDefault();\r\n }\r\n this.authService.signinRedirect();\r\n }\r\n\r\n private setCurrentUser(user: any): void {\r\n this.user = user;\r\n if (user && user.profile && user.profile.given_name && user.profile.family_name) {\r\n this.avatarName = `${user.profile.given_name.charAt(0)}${user.profile.family_name.charAt(0)}`.toUpperCase();\r\n }\r\n }\r\n\r\n // tslint:disable-next-line:typedef\r\n public onClickOutside($event: any) {\r\n this.userMenuExpanded = false;\r\n }\r\n\r\n}\r\n","<div class=\"relative\" (clickOutside)=\"onClickOutside($event)\">\r\n\r\n <div class=\"inline-flex\">\r\n <!-- Username -->\r\n <div [ngClass]=\"{'shell-header-profile': showUserName}\">\r\n <div *ngIf=\"user && showUserName\" class=\"shell-header-profile-userName\">\r\n {{ user.profile.name }}\r\n </div>\r\n </div>\r\n\r\n <div [class.ml-2]=\"showUserName\">\r\n <button type=\"button\" \r\n *ngIf=\"user\"\r\n class=\"shell-header-profile-dropdown-button\"\r\n id=\"user-menu\"\r\n aria-expanded=\"false\"\r\n aria-haspopup=\"true\"\r\n (click)=\"userMenuExpanded = !userMenuExpanded\">\r\n <span class=\"sr-only\">Open user menu</span>\r\n <span class=\"avatar-container\">\r\n <span class=\"avatar-text\">{{this.avatarName}}</span>\r\n </span>\r\n </button>\r\n\r\n <button type=\"button\"\r\n *ngIf=\"!user\"\r\n (click)=\"signin($event)\"\r\n class=\"shell-header-profile-dropdown-button\"\r\n id=\"user-menu\"\r\n aria-expanded=\"false\"\r\n aria-haspopup=\"true\">\r\n <span class=\"sr-only\">sign in</span>\r\n <span class=\"avatar-container\">\r\n <span class=\"avatar-text\"><i class=\"ms-Icon ms-Icon--Signin\"></i></span>\r\n </span>\r\n </button>\r\n </div>\r\n </div>\r\n\r\n <div [class]=\"userMenuExpanded ?\r\n 'transition ease-out duration-200 origin-top-right z-30 absolute right-0 mt-2 w-56 rounded-sm shadow-lg bg-white ring-1 ring-black ring-opacity-5 focus:outline-none'\r\n :\r\n 'hidden transition ease-in duration-75 origin-top-right z-30 right-0 mt-2 w-56 rounded-sm shadow-lg bg-white ring-1 ring-black ring-opacity-5 focus:outline-none'\"\r\n role=\"menu\" aria-orientation=\"vertical\" aria-labelledby=\"menu-button\" tabindex=\"-1\">\r\n <lib-nav-links-list\r\n [links]=\"links.profile\"\r\n [link-class]=\"'nav-link-profile'\"\r\n [link-active-class]=\"'nav-link-profile-active'\">\r\n </lib-nav-links-list>\r\n </div>\r\n\r\n</div>\r\n\r\n","import { AuthService } from '@indice/ng-auth';\r\nimport { Component, OnInit, OnDestroy, Inject, Input } from '@angular/core';\r\nimport { ActivatedRoute, Event, NavigationStart, Router } from '@angular/router';\r\nimport { filter, share } from 'rxjs/operators';\r\nimport { NavLink } from '../../../types';\r\nimport { APP_LINKS, SHELL_CONFIG } from '../../../tokens';\r\nimport { Observable, Subscription, of } from 'rxjs';\r\nimport { User } from 'oidc-client-ts';\r\n\r\n@Component({\r\n // tslint:disable-next-line:component-selector\r\n selector: 'lib-shell-header',\r\n templateUrl: './shell-header.component.html',\r\n})\r\nexport class ShellHeaderComponent implements OnInit, OnDestroy {\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('section-links') sectionLinksPath = 'main';\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('profile-menu') profileMenuVisible = true;\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('show-userName') showUserNameOnHeader: boolean | undefined = false;\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('show-alerts') showAlerts: boolean | undefined = false;\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('show-langs') showLangs: boolean | undefined = false;\r\n @Input() border = true;\r\n public sectionLinks: Observable<NavLink[]> = of([]);\r\n public mobileMenuExpanded = false;\r\n public userMenuExpanded = false;\r\n protected routeSubject: Observable<Event>;\r\n protected routerSub$: Subscription | null = null;\r\n protected userSub$: Subscription | null = null;\r\n protected statusSub$: Subscription | null = null;\r\n public user: User | null = null;\r\n public avatarName: string | null = null;\r\n public activeFragment: any | null = null;\r\n\r\n constructor(\r\n @Inject(AuthService) protected authService: AuthService,\r\n @Inject(Router) protected router: Router,\r\n @Inject(ActivatedRoute) protected route: ActivatedRoute,\r\n @Inject(SHELL_CONFIG) public config: any,\r\n @Inject(APP_LINKS) public links: any) {\r\n this.routeSubject = this.router.events.pipe(filter((event) => event instanceof NavigationStart));\r\n }\r\n\r\n ngOnInit(): void {\r\n this.activeFragment = this.route.fragment.pipe(share());\r\n this.sectionLinks = this.links[this.sectionLinksPath] as Observable<NavLink[]>;\r\n this.routerSub$ = this.routeSubject.subscribe((event) => {\r\n this.mobileMenuExpanded = false;\r\n this.userMenuExpanded = false;\r\n });\r\n this.authService.loadUser().subscribe((user) => {\r\n this.setCurrentUser(user);\r\n }, error => {\r\n console.error(error);\r\n });\r\n // Detect user changes and display / or not user info accordingly...\r\n this.userSub$ = this.authService.user$.subscribe((user: any) => {\r\n // console.log('ShellHeaderComponent user subscription');\r\n this.setCurrentUser(user);\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n\r\n if (this.routerSub$) {\r\n this.routerSub$.unsubscribe();\r\n }\r\n // TODO: check authenticated user here before we start polling server status\r\n if (this.statusSub$) {\r\n this.statusSub$.unsubscribe();\r\n }\r\n if (this.userSub$) {\r\n this.userSub$.unsubscribe();\r\n }\r\n }\r\n\r\n // tslint:disable-next-line:typedef\r\n public onClickOutside($event: any) {\r\n this.userMenuExpanded = false;\r\n }\r\n\r\n public signin(event: any | null | undefined): void {\r\n if (event) {\r\n event.preventDefault();\r\n }\r\n this.authService.signinRedirect();\r\n }\r\n\r\n private setCurrentUser(user: any): void {\r\n this.user = user;\r\n if (user && user.profile && user.profile.given_name && user.profile.family_name) {\r\n this.avatarName = `${user.profile.given_name.charAt(0)}${user.profile.family_name.charAt(0)}`.toUpperCase();\r\n }\r\n }\r\n\r\n}\r\n\r\n","<nav>\r\n <div class=\"shell-header-paddings\">\r\n <div class=\"shell-header-border\">\r\n <div class=\"shell-header-menu-container\">\r\n <div class=\"shell-header-logo-container\">\r\n <div>\r\n <a href=\"#\" [routerLink]=\"['/']\"><img alt=\"app logo\" class=\"app-logo\" [src]=\"config.appLogo\" [alt]=\"config.appLogoAlt\" /></a>\r\n </div>\r\n </div>\r\n\r\n <div class=\"shell-header-link-container\">\r\n <div class=\"shell-header-link-container-inner\">\r\n <lib-nav-links-list\r\n [links]=\"sectionLinks\"\r\n [active-fragment]=\"activeFragment\"\r\n [link-class]=\"'nav-link'\"\r\n [link-active-class]=\"'nav-link-active'\">\r\n </lib-nav-links-list>\r\n </div>\r\n </div>\r\n\r\n <div class=\"shell-header-md-visible\">\r\n\r\n <div class=\"shell-header-links-far-container\" (clickOutside)=\"onClickOutside($event)\">\r\n\r\n <lib-nav-links-list\r\n [links]=\"links.profileActions\"\r\n [active-fragment]=\"activeFragment\"\r\n [link-class]=\"'shell-header-menu-rounded-button'\"\r\n [link-active-class]=\"'shell-header-menu-rounded-button-active'\">\r\n </lib-nav-links-list>\r\n\r\n\r\n <!-- Profile dropdown -->\r\n <div *ngIf=\"profileMenuVisible\" class=\"ml-4\">\r\n <lib-user-profile-menu [show-user-name]=\"showUserNameOnHeader\"></lib-user-profile-menu>\r\n </div>\r\n\r\n <!-- Notifications dropdown -->\r\n <div *ngIf=\"showAlerts && user\" class=\"ml-4\">\r\n <lib-notifications-indicator></lib-notifications-indicator>\r\n </div>\r\n\r\n <!-- languages dropdown -->\r\n <div *ngIf=\"showLangs\" class=\"ml-4\">\r\n <lib-language-selection></lib-language-selection>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"mobile-menu-button-container\">\r\n <!-- Mobile menu button -->\r\n <button type=\"button\"\r\n (click)=\"mobileMenuExpanded = !mobileMenuExpanded\"\r\n class=\"mobile-menu-button\"\r\n aria-controls=\"mobile-menu\"\r\n [attr.aria-expanded]=\"mobileMenuExpanded\">\r\n <span class=\"sr-only\">Open main menu</span>\r\n <!--Heroicon name: outline/menu Menu open: \"hidden\", Menu closed: \"block\"-->\r\n <svg xmlns=\"http://www.w3.org/2000/svg\"\r\n fill=\"none\"\r\n viewBox=\"0 0 24 24\"\r\n stroke=\"currentColor\"\r\n aria-hidden=\"true\"\r\n [class]=\"mobileMenuExpanded ? 'hidden':'block h-6 w-6'\">\r\n <path stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n stroke-width=\"2\"\r\n d=\"M4 6h16M4 12h16M4 18h16\" />\r\n </svg>\r\n <!--Heroicon name: outline/x Menu open: \"block\", Menu closed: \"hidden\"-->\r\n <svg xmlns=\"http://www.w3.org/2000/svg\"\r\n fill=\"none\"\r\n viewBox=\"0 0 24 24\"\r\n stroke=\"currentColor\"\r\n aria-hidden=\"true\"\r\n [class]=\"mobileMenuExpanded ? 'block h-6 w-6':'hidden'\">\r\n <path stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n stroke-width=\"2\"\r\n d=\"M6 18L18 6M6 6l12 12\" />\r\n </svg>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <!-- Mobile menu, show/hide based on menu state. -->\r\n <div class=\"mobile-menu-container\" *ngIf=\"mobileMenuExpanded\" id=\"mobile-menu\">\r\n <lib-nav-links-list\r\n [links]=\"sectionLinks\"\r\n [active-fragment]=\"activeFragment\"\r\n [link-class]=\"'nav-link-mobile'\"\r\n [link-active-class]=\"'nav-link-mobile-active'\"\r\n [container-class]=\"'mobile-menu-link-container'\">\r\n </lib-nav-links-list>\r\n\r\n <div *ngIf=\"!user\">\r\n <a href=\"#\" (click)=\"signin($event)\" class=\"nav-link-mobile\">\r\n <i class=\"ms-Icon ms-Icon--Signin mr-2\"></i>Σύνδεση\r\n </a>\r\n </div>\r\n\r\n <div class=\"mobile-menu-user-info-container\" *ngIf=\"user\">\r\n <div class=\"mobile-menu-user-info-container-inner\">\r\n <div class=\"flex-shrink-0\">\r\n <span class=\"mobile-menu-avatar-container\">\r\n <span class=\"mobile-menu-avatar-name\">{{ this.avatarName }}</span>\r\n </span>\r\n </div>\r\n <div class=\"ml-3\">\r\n <div class=\"mobile-menu-user-name\">{{ user.profile.name }}</div>\r\n <div class=\"mobile-menu-user-email\">{{ user.profile.email }}</div>\r\n </div>\r\n <!--\r\n <button class=\"mobile-menu-rounded-button\">\r\n <span class=\"sr-only\">View notifications</span>\r\n <svg class=\"mobile-menu-rounded-button-icon-style\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n fill=\"none\"\r\n viewBox=\"0 0 24 24\"\r\n stroke=\"currentColor\"\r\n aria-hidden=\"true\">\r\n <path stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n stroke-width=\"2\"\r\n d=\"M15 17h5l-1.405-1.405A2.032 2.032 0 0118 14.158V11a6.002 6.002 0 00-4-5.659V5a2 2 0 10-4 0v.341C7.67 6.165 6 8.388 6 11v3.159c0 .538-.214 1.055-.595 1.436L4 17h5m6 0v1a3 3 0 11-6 0v-1m6 0H9\" />\r\n </svg>\r\n </button>\r\n -->\r\n </div>\r\n </div>\r\n\r\n <lib-nav-links-list\r\n [links]=\"links.profile\"\r\n [active-fragment]=\"activeFragment\"\r\n [link-class]=\"'nav-link-mobile'\"\r\n [link-active-class]=\"'nav-link-mobile-active'\"\r\n [container-class]=\"'mobile-menu-link-container'\">\r\n </lib-nav-links-list>\r\n </div>\r\n</nav>\r\n","\r\nimport { AuthService } from '@indice/ng-auth';\r\nimport { Component, Inject, Input } from '@angular/core';\r\nimport { ActivatedRoute, Event, NavigationStart, Router } from '@angular/router';\r\nimport { APP_LINKS, SHELL_CONFIG } from '../../../tokens';\r\nimport { ShellHeaderComponent } from '../shell-header/shell-header.component';\r\nimport { ShellLayoutType } from '../../../types';\r\n\r\n@Component({\r\n selector: 'lib-shell-sidebar-header',\r\n templateUrl: './shell-sidebar-header.component.html'\r\n})\r\nexport class ShellSidebarHeaderComponent extends ShellHeaderComponent {\r\n constructor(@Inject(AuthService) protected authService: AuthService,\r\n @Inject(Router) protected router: Router,\r\n @Inject(ActivatedRoute) protected route: ActivatedRoute,\r\n @Inject(SHELL_CONFIG) public config: any,\r\n @Inject(APP_LINKS) public links: any) {\r\n super(authService, router, route, config, links);\r\n }\r\n\r\n}\r\n","<div class=\"shell-header-paddings\">\r\n <div class=\"shell-header-border\">\r\n <div class=\"shell-header-menu-container\">\r\n <div class=\"shell-header-md-visible\">\r\n <div class=\"shell-header-links-far-container\" (clickOutside)=\"onClickOutside($event)\">\r\n <!-- Profile dropdown -->\r\n <div *ngIf=\"profileMenuVisible\" class=\"ml-4\">\r\n <lib-user-profile-menu [show-user-name]=\"showUserNameOnHeader\"></lib-user-profile-menu>\r\n </div>\r\n <!-- Notifications dropdown -->\r\n <div *ngIf=\"showAlerts && user\" class=\"ml-4\">\r\n <lib-notifications-indicator></lib-notifications-indicator>\r\n </div>\r\n <!-- languages dropdown -->\r\n <div *ngIf=\"showLangs\" class=\"ml-4\">\r\n <lib-language-selection></lib-language-selection>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n \r\n","import { Component, Inject, Input, OnInit, Optional, TemplateRef } from '@angular/core';\r\n\r\nimport { IShellConfig } from '../../../types';\r\nimport { UserSettingsService } from '../../../services/user-settings.service';\r\n\r\n@Component({\r\n selector: 'lib-shell-sidebar-layout',\r\n templateUrl: './shell-sidebar-layout.component.html'\r\n})\r\nexport class ShellSidebarLayoutComponent implements OnInit {\r\n constructor(\r\n private _userSettings: UserSettingsService\r\n ) {\r\n this.showMobileSidebar = this._userSettings.get('MobileSideBar');\r\n }\r\n\r\n @Input() config: IShellConfig | undefined;\r\n @Input() public sidebarFooterTemplate?: TemplateRef<any>;\r\n public showMobileSidebar: boolean;\r\n\r\n public ngOnInit(): void { }\r\n\r\n public toggleMobileSidebar(): void {\r\n this.showMobileSidebar = !this.showMobileSidebar;\r\n this._userSettings.set('MobileSideBar', this.showMobileSidebar);\r\n }\r\n}\r\n","<div>\r\n <div class=\"sidebar-off-canvas-menu-container\"\r\n role=\"dialog\"\r\n aria-modal=\"true\">\r\n <div class=\"sidebar-off-canvas-menu-backdrop\"\r\n [class.sidebar-off-canvas-menu-backdrop-opacity-100]=\"!showMobileSidebar\">\r\n </div>\r\n <div class=\"sidebar-off-canvas-menu-container-inner\"\r\n [class.sidebar-off-canvas-menu-container-inner-active]=\"!showMobileSidebar\"\r\n [class.sidebar-off-canvas-menu-container-inner-not-active]=\"showMobileSidebar\">\r\n <div class=\"sidebar-off-canvas-layout-container\">\r\n <div class=\"sidebar-off-canvas-toggle-button-container\">\r\n <button type=\"button\"\r\n class=\"sidebar-off-canvas-toggle-button\"\r\n (click)=\"toggleMobileSidebar()\">\r\n <span class=\"sr-only\">Close sidebar</span>\r\n <svg class=\"h-6 w-6 text-white\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n fill=\"none\"\r\n viewBox=\"0 0 24 24\"\r\n stroke-width=\"2\"\r\n stroke=\"currentColor\"\r\n aria-hidden=\"true\">\r\n <path stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n d=\"M6 18L18 6M6 6l12 12\" />\r\n </svg>\r\n </button>\r\n </div>\r\n <div class=\"sidebar-off-canvas-app-logo-container\">\r\n <img alt=\"image\" class=\"shell-sidebar-logo\"\r\n [src]=\"config?.appLogo\"\r\n [alt]=\"config?.appLogoAlt\">\r\n </div>\r\n <lib-shell-sidebar></lib-shell-sidebar>\r\n </div>\r\n <div class=\"sidebar-dummy-element\"\r\n aria-hidden=\"true\">\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"sidebar-static-menu-outer-container\">\r\n <div class=\"sidebar-static-menu-container\"\r\n [class.sidebar-static-menu-container-active]=\"!showMobileSidebar\"\r\n [class.sidebar-static-menu-container-not-active]=\"showMobileSidebar\">\r\n <div class=\"sidebar-static-menu-container-inner\">\r\n <div class=\"sidebar-static-menu-app-logo-container\">\r\n <img alt=\"image\" *ngIf=\"!showMobileSidebar\"\r\n class=\"shell-sidebar-logo\"\r\n [src]=\"config?.appLogo\"\r\n [alt]=\"config?.appLogoAlt\">\r\n <button *ngIf=\"showMobileSidebar\"\r\n type=\"button\"\r\n class=\"sidebar-static-menu-toggle-button\"\r\n (click)=\"toggleMobileSidebar()\">\r\n <span class=\"sr-only\">Toggle sidebar</span>\r\n <svg class=\"h-6 w-6\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n fill=\"none\"\r\n viewBox=\"0 0 24 24\"\r\n stroke-width=\"2\"\r\n stroke=\"currentColor\"\r\n aria-hidden=\"true\">\r\n <path stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n d=\"M4 6h16M4 12h16M4 18h7\" />\r\n </svg>\r\n </button>\r\n </div>\r\n <lib-shell-sidebar [sticky]=\"showMobileSidebar\"></lib-shell-sidebar>\r\n </div>\r\n <div class=\"flex flex-shrink-0 bg-gray-700 p-4\"\r\n *ngIf=\"!showMobileSidebar && sidebarFooterTemplate\">\r\n <div class=\"group block flex-shrink-0\">\r\n <div class=\"flex items-center\">\r\n <div>\r\n <p class=\"text-sm font-medium text-gray-400\">\r\n <ng-container [ngTemplateOutlet]=\"sidebarFooterTemplate\"></ng-container>\r\n </p>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"sidebar-static-menu-wrapper\"\r\n [class.sidebar-static-menu-wrapper-expanded]=\"!showMobileSidebar\">\r\n <div class=\"sidebar-static-menu-sticky-header-container\"\r\n *ngIf=\"config?.showHeader\">\r\n <button *ngIf=\"showMobileSidebar\"\r\n type=\"button\"\r\n class=\"sidebar-static-menu-toggle-button-md\"\r\n (click)=\"toggleMobileSidebar()\">\r\n <span class=\"sr-only\">Toggle sidebar</span>\r\n <svg class=\"h-6 w-6\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n fill=\"none\"\r\n viewBox=\"0 0 24 24\"\r\n stroke-width=\"2\"\r\n stroke=\"currentColor\"\r\n aria-hidden=\"true\">\r\n <path stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n d=\"M4 6h16M4 12h16M4 18h7\" />\r\n </svg>\r\n </button>\r\n <button *ngIf=\"!showMobileSidebar\"\r\n type=\"button\"\r\n class=\"sidebar-static-menu-toggle-button\"\r\n (click)=\"toggleMobileSidebar()\">\r\n <span class=\"sr-only\">Toggle sidebar</span>\r\n <svg class=\"h-6 w-6\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n fill=\"none\"\r\n viewBox=\"0 0 24 24\"\r\n stroke-width=\"2\"\r\n stroke=\"currentColor\"\r\n aria-hidden=\"true\">\r\n <path stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n d=\"M4 6h16M4 12h16M4 18h7\" />\r\n </svg>\r\n </button>\r\n <div class=\"sidebar-static-menu-header-container\">\r\n <div class=\"sidebar-static-menu-header-near-container\">\r\n <div class=\"sidebar-static-menu-header-app-logo-container\"\r\n *ngIf=\"showMobileSidebar\">\r\n <img alt=\"image\" class=\"shell-sidebar-logo\"\r\n [src]=\"config?.appLogo\"\r\n [alt]=\"config?.appLogoAlt\">\r\n </div>\r\n </div>\r\n <div class=\"sidebar-static-menu-header-far-container\">\r\n <lib-shell-sidebar-header [show-userName]=\"config?.showUserNameOnHeader\"\r\n [show-alerts]=\"config?.showAlertsOnHeader\"\r\n [show-langs]=\"config?.showLangsOnHeader\">\r\n </lib-shell-sidebar-header>\r\n </div>\r\n </div>\r\n </div>\r\n <div flex-1>\r\n <main class=\"shell-content-container-fluid\">\r\n <lib-breadcrumb *ngIf=\"config?.breadcrumb || false\"></lib-breadcrumb>\r\n <div class=\"shell-content-container-inner\">\r\n <router-outlet *ngIf=\"(config && config.layout === 'Sidebar')\"></router-outlet>\r\n </div>\r\n </main>\r\n </div>\r\n </div>\r\n</div>","import { Component, Inject } from '@angular/core';\r\nimport { APP_LINKS } from '../../../tokens';\r\nimport { IAppLinks } from '../../../types';\r\n\r\n@Component({\r\n selector: 'lib-shell-footer',\r\n templateUrl: './shell-footer.component.html'\r\n\r\n})\r\n\r\nexport class ShellFooterComponent {\r\n constructor(@Inject(APP_LINKS) public links: IAppLinks) {\r\n }\r\n}\r\n","<footer class=\"shell-footer-component-container\">\r\n <div class=\"shell-footer-paddings\">\r\n <div class=\"shell-footer-component-container-inner\">\r\n <div class=\"shell-footer-sections-container\">\r\n <div class=\"shell-footer-section\">\r\n <img class=\"shell-footer-logo-h\" src=\"assets/images/branding/indice.png\" alt=\"INDICE logo\" />\r\n <nav class=\"mt-4\">\r\n <ul class=\"space-y-2\">\r\n <ng-container *ngFor=\"let link of links.brand | async\">\r\n <li>\r\n <a [href]=\"link.path\" class=\"shell-footer-link\">{{ link.text }}</a>\r\n </li>\r\n </ng-container>\r\n </ul>\r\n </nav>\r\n </div>\r\n <div class=\"shell-footer-section-links\">\r\n <h5 class=\"shell-footer-section-title\">Legal</h5>\r\n <nav class=\"mt-4\">\r\n <ul class=\"grid lg:grid-cols-2\">\r\n <ng-container *ngFor=\"let link of links.legal | async\">\r\n <li class=\"mb-2\">\r\n <a [href]=\"link.path\" class=\"shell-footer-link\">{{ link.text }}</a>\r\n </li>\r\n </ng-container>\r\n </ul>\r\n </nav>\r\n </div>\r\n <div class=\"shell-footer-section-links\">\r\n <h5 class=\"shell-footer-section-title\">Follow us</h5>\r\n <nav class=\"mt-4\">\r\n <ul class=\"grid lg:grid-cols-2\">\r\n <li class=\"mb-2\">\r\n <a href=\"#\" class=\"shell-footer-social\">\r\n <svg class=\"shell-footer-social-icon\" aria-hidden=\"true\" fill=\"currentColor\" viewBox=\"0 0 24 24\">\r\n <path d=\"M8.29 20.251c7.547 0 11.675-6.253 11.675-11.675 0-.178 0-.355-.012-.53A8.348 8.348 0 0022 5.92a8.19 8.19 0 01-2.357.646 4.118 4.118 0 001.804-2.27 8.224 8.224 0 01-2.605.996 4.107 4.107 0 00-6.993 3.743 11.65 11.65 0 01-8.457-4.287 4.106 4.106 0 001.27 5.477A4.072 4.072 0 012.8 9.713v.052a4.105 4.105 0 003.292 4.022 4.095 4.095 0 01-1.853.07 4.108 4.108 0 003.834 2.85A8.233 8.233 0 012 18.407a11.616 11.616 0 006.29 1.84\"/>\r\n </svg>\r\n <span> Twitter </span>\r\n </a>\r\n </li>\r\n <li class=\"mb-2\">\r\n <a href=\"#\" class=\"shell-footer-social\">\r\n <svg class=\"shell-footer-social-icon\" aria-hidden=\"true\" fill=\"currentColor\" viewBox=\"0 0 24 24\">\r\n <path fill-rule=\"evenodd\" d=\"M12.315 2c2.43 0 2.784.013 3.808.06 1.064.049 1.791.218 2.427.465a4.902 4.902 0 011.772 1.153 4.902 4.902 0 011.153 1.772c.247.636.416 1.363.465 2.427.048 1.067.06 1.407.06 4.123v.08c0 2.643-.012 2.987-.06 4.043-.049 1.064-.218 1.791-.465 2.427a4.902 4.902 0 01-1.153 1.772 4.902 4.902 0 01-1.772 1.153c-.636.247-1.363.416-2.427.465-1.067.048-1.407.06-4.123.06h-.08c-2.643 0-2.987-.012-4.043-.06-1.064-.049-1.791-.218-2.427-.465a4.902 4.902 0 01-1.772-1.153 4.902 4.902 0 01-1.153-1.772c-.247-.636-.416-1.363-.465-2.427-.047-1.024-.06-1.379-.06-3.808v-.63c0-2.43.013-2.784.06-3.808.049-1.064.218-1.791.465-2.427a4.902 4.902 0 011.153-1.772A4.902 4.902 0 015.45 2.525c.636-.247 1.363-.416 2.427-.465C8.901 2.013 9.256 2 11.685 2h.63zm-.081 1.802h-.468c-2.456 0-2.784.011-3.807.058-.975.045-1.504.207-1.857.344-.467.182-.8.398-1.15.748-.35.35-.566.683-.748 1.15-.137.353-.3.882-.344 1.857-.047 1.023-.058 1.351-.058 3.807v.468c0 2.456.011 2.784.058 3.807.045.975.207 1.504.344 1.857.182.466.399.8.748 1.15.35.35.683.566 1.15.748.353.137.882.3 1.857.344 1.054.048 1.37.058 4.041.058h.08c2.597 0 2.917-.01 3.96-.058.976-.045 1.505-.207 1.858-.344.466-.182.8-.398 1.15-.748.35-.35.566-.683.748-1.15.137-.353.3-.882.344-1.857.048-1.055.058-1.37.058-4.041v-.08c0-2.597-.01-2.917-.058-3.96-.045-.976-.207-1.505-.344-1.858a3.097 3.097 0 00-.748-1.15 3.098 3.098 0 00-1.15-.748c-.353-.137-.882-.3-1.857-.344-1.023-.047-1.351-.058-3.807-.058zM12 6.865a5.135 5.135 0 110 10.27 5.135 5.135 0 010-10.27zm0 1.802a3.333 3.333 0 100 6.666 3.333 3.333 0 000-6.666zm5.338-3.205a1.2 1.2 0 110 2.4 1.2 1.2 0 010-2.4z\" clip-rule=\"evenodd\"/>\r\n </svg>\r\n <span> Instagram </span>\r\n </a>\r\n </li>\r\n <li class=\"mb-2\">\r\n <a href=\"#\" class=\"shell-footer-social\">\r\n <svg class=\"shell-footer-social-icon\" aria-hidden=\"true\" fill=\"currentColor\" viewBox=\"0 0 24 24\" >\r\n <path fill-rule=\"evenodd\" d=\"M22 12c0-5.523-4.477-10-10-10S2 6.477 2 12c0 4.991 3.657 9.128 8.438 9.878v-6.987h-2.54V12h2.54V9.797c0-2.506 1.492-3.89 3.777-3.89 1.094 0 2.238.195 2.238.195v2.46h-1.26c-1.243 0-1.63.771-1.63 1.562V12h2.773l-.443 2.89h-2.33v6.988C18.343 21.128 22 16.991 22 12z\" clip-rule=\"evenodd\"/>\r\n </svg>\r\n <span> Facebook </span>\r\n </a>\r\n </li>\r\n </ul>\r\n </nav>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"shell-footer-copyright\">\r\n <!--<nav class=\"flex flex-wrap justify-center space-x-6\">\r\n <a href=\"#\" class=\"font-normal text-sm hover:text-gray-100 mb-2\">Cookie settings</a>\r\n </nav>-->\r\n <p class=\"text-sm text-center sm:text-right\">\r\n © 2021 INDICE. All rights reserved.\r\n </p>\r\n </div>\r\n </div>\r\n</footer>\r\n","import { Component, Input, OnInit } from '@angular/core';\r\n\r\nimport { IShellConfig } from '../../../types';\r\n\r\n@Component({\r\n selector: 'lib-shell-stacked-layout',\r\n templateUrl: './shell-stacked-layout.component.html'\r\n})\r\nexport class ShellStackedLayoutComponent implements OnInit {\r\n constructor() { }\r\n\r\n @Input() config: IShellConfig | undefined;\r\n\r\n public ngOnInit(): void { }\r\n}\r\n","<div class=\"shell-header-container\"\r\n *ngIf=\"config?.showHeader\">\r\n <div [class]=\"config?.fluid ? 'shell-header-container-inner-fluid' : 'shell-header-container-inner'\">\r\n <ng-container *ngIf=\"config?.customHeaderComponent\">\r\n <div appDynamicComponentHost=\"Header\"></div>\r\n </ng-container>\r\n <lib-shell-header *ngIf=\"!config?.customHeaderComponent\"\r\n [show-userName]=\"config?.showUserNameOnHeader\"\r\n [show-alerts]=\"config?.showAlertsOnHeader\"\r\n [show-langs]=\"config?.showLangsOnHeader\">\r\n </lib-shell-header>\r\n </div>\r\n</div>\r\n<main [class]=\"config?.showHeader ? 'shell-content-container' : 'shell-content-container-no-header'\">\r\n <div [class]=\"config?.fluid ? 'shell-content-container-inner-fluid' : 'shell-content-container-inner'\">\r\n <router-outlet *ngIf=\"(!config || config.layout === 'Stacked' || !config.layout)\"></router-outlet>\r\n </div>\r\n</main>\r\n<div class=\"shell-footer-container\"\r\n *ngIf=\"config?.showFooter\">\r\n <div [class]=\"config?.fluid ? 'shell-footer-container-inner-fluid' : 'shell-footer-container-inner'\">\r\n <ng-container *ngIf=\"config?.customFooterComponent\">\r\n <div appDynamicComponentHost\r\n hostName=\"Footer\"></div>\r\n </ng-container>\r\n <lib-shell-footer *ngIf=\"!config?.customFooterComponent\"></lib-shell-footer>\r\n </div>\r\n</div>","import { AfterViewInit, Component, OnInit, OnDestroy, Inject, ViewChildren, QueryList, AfterViewChecked, TemplateRef, Input, ViewChild } from '@angular/core';\r\nimport { ActivationStart, Router } from '@angular/router';\r\n\r\nimport { Subscription } from 'rxjs';\r\nimport { filter } from 'rxjs/operators';\r\nimport { SHELL_CONFIG } from './../../../tokens';\r\nimport { IShellConfig, DefaultShellConfig } from './../../../types';\r\nimport { DynamicComponentHostDirective } from '../../../directives/dynamic-component-host.directive';\r\nimport { ComponentLoaderFactory } from '../../../services/component-loader/component-loader.factory';\r\n\r\n@Component({\r\n selector: 'lib-shell-layout',\r\n templateUrl: './shell-layout.component.html',\r\n})\r\nexport class ShellLayoutComponent implements OnInit, OnDestroy, AfterViewInit, AfterViewChecked {\r\n @ViewChildren(DynamicComponentHostDirective) private _dynamicComponentHosts: QueryList<DynamicComponentHostDirective> | null = null;\r\n private _routerSub$: Subscription | null = null;\r\n\r\n constructor(\r\n private _router: Router,\r\n private _componentLoaderFactory: ComponentLoaderFactory,\r\n @Inject(SHELL_CONFIG) private _config: IShellConfig | undefined\r\n ) {\r\n if (!_config) {\r\n _config = new DefaultShellConfig();\r\n }\r\n this.activeConfig = _config;\r\n }\r\n\r\n @Input() public sidebarFooterTemplate?: TemplateRef<any>;\r\n public showRightPaneSM = false;\r\n public activeConfig: IShellConfig = new DefaultShellConfig();\r\n public loaded = false;\r\n public hideSidebar = false;\r\n\r\n public ngAfterViewChecked(): void {\r\n setTimeout(() => { this.loaded = true; }, 200);\r\n }\r\n\r\n public ngOnInit(): void {\r\n this._routerSub$ = this._router\r\n .events\r\n .pipe(\r\n filter((event) => event instanceof ActivationStart)\r\n ).subscribe((event) => {\r\n if ((event as ActivationStart)?.snapshot) {\r\n if ((event as ActivationStart)?.snapshot?.data) {\r\n if ((event as ActivationStart)?.snapshot?.data.shell) {\r\n this.activeConfig = (event as ActivationStart)?.snapshot.data.shell as IShellConfig;\r\n if (this.activeConfig.customHeaderComponent) {\r\n this.initCustomComponents();\r\n }\r\n } else {\r\n this.activeConfig = this._config ? this._config : new DefaultShellConfig();\r\n }\r\n }\r\n }\r\n });\r\n }\r\n\r\n public ngAfterViewInit(): void {\r\n this.initCustomComponents();\r\n }\r\n\r\n private initCustomComponents(): void {\r\n if (this._dynamicComponentHosts && this._dynamicComponentHosts.length > 0) {\r\n this.loadCustomComponent(this._dynamicComponentHosts.find((_) => _.hostName === 'Header'));\r\n }\r\n }\r\n\r\n public ngOnDestroy(): void {\r\n if (this._routerSub$) {\r\n this._routerSub$.unsubscribe();\r\n }\r\n }\r\n\r\n private loadCustomComponent(host: DynamicComponentHostDirective | undefined): void {\r\n if (host) {\r\n const viewContainerRef = host.viewContainerRef;\r\n if (viewContainerRef && this.activeConfig.customHeaderComponent) {\r\n const clf = this._componentLoaderFactory.createLoader(viewContainerRef);\r\n clf.attach(this.activeConfig.customHeaderComponent).to(viewContainerRef.element).show();\r\n }\r\n }\r\n }\r\n}\r\n","<div [class.hidden]=\"!loaded\"\r\n [class.block]=\"loaded\">\r\n <!-- STACKED LAYOUT -->\r\n <div *ngIf=\"(activeConfig.layout === 'Stacked' || !activeConfig.layout)\"\r\n class=\"shell-container active-side-pane\">\r\n <lib-shell-stacked-layout [config]=\"activeConfig\"></lib-shell-stacked-layout>\r\n </div>\r\n <!-- SIDEBAR LAYOUT -->\r\n <div *ngIf=\"activeConfig.layout === 'Sidebar'\"\r\n class=\"sidebar shell-container active-side-pane\">\r\n <lib-shell-sidebar-layout [config]=\"activeConfig\"\r\n [sidebarFooterTemplate]=\"sidebarFooterTemplate\">\r\n </lib-shell-sidebar-layout>\r\n </div>\r\n <lib-side-pane #rightPane>\r\n <router-outlet name=\"rightpane\"\r\n (activate)=\"rightPane.onSidePaneActivated($event)\"\r\n (deactivate)=\"rightPane.onSidePaneDeactivated($event)\">\r\n </router-outlet>\r\n </lib-side-pane>\r\n <lib-toaster-container></lib-toaster-container>\r\n</div>","import { SwitchViewAction } from '../../../types';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { Component, Input, OnInit, Output, EventEmitter, ViewChild, ElementRef } from '@angular/core';\r\nimport { fromEvent } from 'rxjs';\r\nimport { debounceTime, distinctUntilChanged, filter, map } from 'rxjs/operators';\r\nimport { HeaderMetaItem, RouterViewAction, ViewAction } from '../../../types';\r\n\r\n@Component({\r\n selector: 'lib-view-layout',\r\n templateUrl: './view-layout.component.html'\r\n})\r\nexport class ViewLayoutComponent implements OnInit {\r\n // tslint:disable-next-line:no-input-rename\r\n @ViewChild('search') private searchInput$?: ElementRef;\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('show-header') header = true;\r\n @Input() fluid = false;\r\n @Input() title = 'no title';\r\n @Input() icon: string | null = null;\r\n @Input() actions: ViewAction[] | null = null;\r\n @Input() busy = false;\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('search-placeholder') searchPlaceholder: string | null = 'αναζήτηση';\r\n @Input() view: string | null = null;\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('meta-items') metaItems: HeaderMetaItem[] | null = [];\r\n // tslint:disable-next-line:no-output-on-prefix\r\n @Output() onAction: EventEmitter<ViewAction> = new EventEmitter<ViewAction>();\r\n // tslint:disable-next-line:no-output-on-prefix\r\n @Output() onSearch: EventEmitter<string> = new EventEmitter<string>();\r\n\r\n constructor(private route$: ActivatedRoute, private router$: Router) { }\r\n\r\n ngOnInit(): void {\r\n if (this.searchInput$?.nativeElement){\r\n fromEvent(this.searchInput$.nativeElement, 'keyup').pipe(\r\n map((event: any) => {\r\n return event.target.value; // Get input value.\r\n }),\r\n filter(inputValue => inputValue.length >= 3 || inputValue.length === 0),\r\n // If character length greater than minimumSearchCharacters setting.\r\n debounceTime(1000), // Time in milliseconds between key events.\r\n distinctUntilChanged() // If previous query is different from current.\r\n ).subscribe();\r\n }\r\n }\r\n\r\n public emitActionClick(action: ViewAction): void {\r\n this.onAction.emit(action);\r\n }\r\n\r\n public routerLinkActionClick(action: RouterViewAction | any): void {\r\n // console.log('routerLinkActionClick', action);\r\n if (action.outlet) {\r\n this.router$.navigate(['', { outlets: { rightpane: action.link } }]);\r\n } else {\r\n this.router$.navigate([action.link]);\r\n }\r\n }\r\n\r\n searchActionClick(action: ViewAction, text: string): void {\r\n this.onSearch.emit(text);\r\n }\r\n\r\n searchActionType(text: string): void {\r\n this.onSearch.emit(this.searchInput$?.nativeElement.value);\r\n }\r\n\r\n public handleClear(event: any): void {\r\n console.log('handle clear!!!');\r\n event.stopPropagation();\r\n this.onSearch.emit(event.target?.value);\r\n }\r\n\r\n public switchViewActionClick(action: SwitchViewAction | any): void {\r\n // console.log('switchViewActionClick', action);\r\n this.view = action.param;\r\n if (action && action.param) {\r\n this.router$.navigate([], { queryParams: { view: action.param }, queryParamsHandling: 'merge', skipLocationChange: false });\r\n }\r\n }\r\n}\r\n","<header *ngIf=\"header\" class=\"view-layout-paddings\">\r\n <div class=\"view-layout-title-container\">\r\n <div class=\"view-layout-title-container-inner\">\r\n <div class=\"flex items-center\">\r\n <i *ngIf=\"icon\" [class]=\"icon + ' title-icon'\" aria-hidden=\"true\"></i>\r\n <h1 [class]=\"busy ? 'view-layout-title-busy' : 'view-layout-title'\">{{title}}</h1>\r\n </div>\r\n <div *ngIf=\"metaItems && metaItems.length > 0\" class=\"meta-container\">\r\n <ng-container *ngFor=\"let meta of metaItems\">\r\n <div class=\"meta-item-container\">\r\n <i *ngIf=\"meta.icon\" [class]=\"meta.icon + ' meta-icon'\" aria-hidden=\"true\"></i>\r\n <span class=\"meta-text\">{{meta.text}}</span>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n <div class=\"view-layout-title-container-far\">\r\n <ng-container *ngFor=\"let action of actions\" [ngSwitch]=\"action.type\">\r\n\r\n <ng-container *ngSwitchCase=\"'search'\">\r\n <label for=\"search\" class=\"sr-only\">Search</label>\r\n <div class=\"search-container mr-1\">\r\n <input id=\"text\"\r\n #search\r\n title=\"search\"\r\n class=\"search-input\"\r\n [placeholder]=\"searchPlaceholder\"\r\n name=\"search\"\r\n (input)=\"searchActionType(search.value)\"\r\n (onsearch)=\"handleClear($event)\">\r\n <button type=\"button\"\r\n href=\"#\"\r\n class=\"search-button\"\r\n [title]=\"action.tooltip\"\r\n (click)=\"searchActionClick(action, search.value)\">\r\n <i [class]=\"action.icon\"></i>\r\n </button>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'switch-view'\">\r\n <button [disabled]=\"view === action.param\"\r\n type=\"button\"\r\n href=\"#\"\r\n class=\"p-2 disabled:opacity-75 btn-view-header\"\r\n (click)=\"switchViewActionClick(action)\">\r\n <span class=\"inline-block relative\">\r\n <i [class]=\"action.icon\"></i>\r\n <span *ngIf=\"view === action.param\"\r\n class=\"selected-view-indicator\">\r\n </span>\r\n </span>\r\n </button>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'router-link'\">\r\n <button type=\"button\"\r\n href=\"#\"\r\n class=\"p-2 btn-view-header\"\r\n [title]=\"action.tooltip\"\r\n (click)=\"routerLinkActionClick(action)\">\r\n <i [class]=\"action.icon\"\r\n [ngClass]=\"{'pr-1': action.text}\"></i>\r\n {{ action.text }}\r\n </button>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchDefault>\r\n <button type=\"button\"\r\n class=\"p-2 btn-view-header\"\r\n [title]=\"action.tooltip\"\r\n (click)=\"emitActionClick(action)\">\r\n <i [class]=\"action.icon\"\r\n [ngClass]=\"{'pr-1': action.text}\"></i>\r\n {{ action.text }}\r\n </button>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n </div>\r\n</header>\r\n<div [class]=\"fluid ? 'view-container-fluid' : 'view-container'\">\r\n <ng-content></ng-content>\r\n</div>","import { Component, Input, OnDestroy, OnInit } from '@angular/core';\r\nimport { Location } from '@angular/common';\r\nimport { HeaderMetaItem, MenuOption, ViewAction } from '../../../types';\r\nimport { ActivatedRoute, NavigationEnd, NavigationStart, Router } from '@angular/router';\r\nimport { Subscription } from 'rxjs';\r\n\r\n@Component({\r\n // tslint:disable-next-line:component-selector\r\n selector: 'lib-model-view-layout',\r\n templateUrl: './model-view-layout.component.html'\r\n})\r\nexport class ModelViewLayoutComponent implements OnInit, OnDestroy {\r\n public showRightPaneSM = false;\r\n @Input() title = 'no title';\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('primary-links') primary: { text: string, link: string, icon?: string, exact? : boolean }[] | null = null;\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('secondary-links') secondary: { text: string, link: string, icon?: string, exact? : boolean }[] | null = null;\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('meta-items') metaItems: HeaderMetaItem[] | null = [\r\n // { key: 'test', icon: Icons.Badges, text: 'βρέθηκαν 200 αποτελέσματα' }\r\n ];\r\n @Input() icon: string | null = null;\r\n @Input() busy = false;\r\n @Input() actions: ViewAction[] | null = null;\r\n private optionsLoaded = false;\r\n private _options: MenuOption[] = [];\r\n public selectedTab: any;\r\n private selectedTabSub$: Subscription | undefined;\r\n public get tabsOptions(): MenuOption[] {\r\n if(!this.optionsLoaded) {\r\n this.optionsLoaded = true;\r\n if(this.primary) {\r\n this.primary.forEach(p => {\r\n this._options.push(new MenuOption(p.text, p.link, undefined, undefined, p.icon));\r\n });\r\n }\r\n\r\n if(this.secondary) {\r\n this.secondary.forEach(p => {\r\n this._options.push(new MenuOption(p.text, p.link, undefined, undefined, p.icon));\r\n });\r\n }\r\n this.selectedTab = this._options[0].value; \r\n }\r\n return this._options;\r\n }\r\n constructor( private location: Location, private router: Router, private route: ActivatedRoute) { }\r\n \r\n ngOnInit(): void {\r\n this.selectedTabSub$ = this.router.events.subscribe(event => {\r\n if(event instanceof NavigationEnd ) {\r\n if(event.urlAfterRedirects) {\r\n var urlParts = event.urlAfterRedirects.split('/');\r\n if(urlParts && urlParts.length > 0) {\r\n const lastPart = urlParts[urlParts.length-1];\r\n this.selectedTab = lastPart.split('?')[0];\r\n }\r\n }\r\n }\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if(this.selectedTabSub$) {\r\n this.selectedTabSub$.unsubscribe();\r\n }\r\n }\r\n\r\n\r\n public onSidePaneActivated($event: any): void {\r\n this.showRightPaneSM = true;\r\n }\r\n\r\n public onSidePaneDeactivated($event: any): void {\r\n this.showRightPaneSM = false;\r\n }\r\n\r\n public closeSidePane(): void {\r\n this.location.back();\r\n }\r\n\r\n public navigateLink(link: any): void {\r\n this.router.navigate([link], {relativeTo: this.route});\r\n }\r\n}\r\n","<lib-view-layout [title]=\"title\" [meta-items]=\"metaItems\" [actions]=\"actions\" [icon]=\"icon\" [busy]=\"busy\">\r\n <main class=\"model-view-container\">\r\n <div class=\"model-view-container-inner\">\r\n <aside class=\"model-view-aside\">\r\n <section aria-labelledby=\"menu\" class=\"details-view-aside-header-section\">\r\n <div class=\"model-view-aside-header-container\">\r\n <div class=\"model-view-aside-header-container-inner\">\r\n <ng-content *ngIf=\"!busy\"></ng-content>\r\n <div *ngIf=\"busy\" class=\"max-w-64 animate-pulse flex space-x-4\">\r\n <div class=\"rounded-full bg-slate-700 h-10 w-10\"></div>\r\n <div class=\"flex-1 space-y-6 py-1\">\r\n <div class=\"h-2 bg-slate-700 rounded\"></div>\r\n <div class=\"space-y-3\">\r\n <div class=\"grid grid-cols-3 gap-4\">\r\n <div class=\"h-2 bg-slate-700 rounded col-span-2\"></div>\r\n <div class=\"h-2 bg-slate-700 rounded col-span-1\"></div>\r\n </div>\r\n <div class=\"h-2 bg-slate-700 rounded\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <!-- menu items -->\r\n <div class=\"model-view-menu-container-mobile\">\r\n <lib-drop-down-menu [options]=\"tabsOptions\" [selected]=\"selectedTab\" (selectedChange)=\"navigateLink($event)\"></lib-drop-down-menu>\r\n </div>\r\n <div class=\"model-view-menu-container\">\r\n <nav class=\"model-view-menu-nav\">\r\n <div class=\"model-view-menu-item\">\r\n <ng-container *ngFor=\"let section of primary\">\r\n <a href=\"#\"\r\n [routerLinkActive]=\"['view-nav-link-active']\"\r\n [routerLink]=\"section.link\"\r\n [routerLinkActiveOptions]=\"{ exact: false }\"\r\n class=\"view-nav-link\">\r\n <i *ngIf=\"section.icon\" [class]=\"section.icon + ' mr-2'\"></i>\r\n {{section.text}}\r\n </a>\r\n </ng-container>\r\n </div>\r\n <div class=\"model-view-menu-item-far\">\r\n <ng-container *ngFor=\"let section of secondary\">\r\n <a href=\"#\"\r\n [routerLinkActive]=\"['view-nav-link-active']\"\r\n [routerLink]=\"section.link\"\r\n [routerLinkActiveOptions]=\"{ exact: false }\"\r\n class=\"view-nav-link\">\r\n <i *ngIf=\"section.icon\" [class]=\"section.icon + ' mr-2'\"></i>\r\n {{section.text}}\r\n </a>\r\n </ng-container>\r\n </div>\r\n </nav>\r\n </div>\r\n </div>\r\n </section>\r\n </aside>\r\n <div class=\"model-view-details-container\">\r\n <router-outlet></router-outlet>\r\n </div>\r\n </div>\r\n </main>\r\n","import { Router } from '@angular/router';\r\nimport { Component, Input, OnInit, Output, EventEmitter } from '@angular/core';\r\nimport { Location } from '@angular/common';\r\n\r\n@Component({\r\n selector: 'lib-side-view-layout',\r\n templateUrl: './side-view-layout.component.html'\r\n})\r\nexport class SideViewLayoutComponent implements OnInit {\r\n @Input() title: string | null = 'Πληροφορίες';\r\n @Input() showActions = true;\r\n @Input() disabled = false;\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('return-path') returnPath: string | undefined;\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('ok-label') okLabel = 'Αποθήκευση';\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('ok-show') okShow = true;\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('ok-close-dialog') closeOnOk = true;\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('cancel-label') cancelLabel = 'Ακύρωση';\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('cancel-show') cancelShow = true;\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('force-location-back') forceLocationBack = false;\r\n @Input('redirect-on-close') redirectOnClose = true;\r\n // @Output() close = new EventEmitter<any>();\r\n @Output() cancel: EventEmitter<boolean> = new EventEmitter();\r\n @Output() ok: EventEmitter<boolean> = new EventEmitter();\r\n\r\n constructor(private location: Location, private router: Router) { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n public closeSidePane(): void {\r\n if (this.returnPath) {\r\n this.router.navigateByUrl('/', { skipLocationChange: true }).then(() => this.router.navigateByUrl(this.returnPath || '/'));\r\n } else {\r\n if ((this.router.url.split('/(')[0] !== this.router.url) && !this.forceLocationBack) {\r\n this.router.navigateByUrl(this.router.url.split('/(')[0]);\r\n } else if ((this.router.url.split('(')[0] !== this.router.url) && !this.forceLocationBack) {\r\n this.router.navigateByUrl(this.router.url.split('(')[0]);\r\n } else {\r\n this.location.back();\r\n }\r\n }\r\n }\r\n\r\n public emitClose(): void {\r\n this.cancel.emit(false);\r\n if(this.redirectOnClose) {\r\n this.closeSidePane();\r\n }\r\n }\r\n\r\n public emitCancel(): void {\r\n this.cancel.emit(false);\r\n if(this.redirectOnClose) {\r\n this.closeSidePane();\r\n }\r\n }\r\n\r\n public emitOK(): void {\r\n this.ok.emit(true);\r\n if (this.closeOnOk && this.redirectOnClose) {\r\n this.closeSidePane();\r\n }\r\n }\r\n\r\n}\r\n","<div class=\"side-view-layout-size-box\">\r\n <div class=\"side-view-layout-container\">\r\n <div class=\"side-view-layout-container-inner\">\r\n <div class=\"side-view-layout-header-margins\">\r\n <div class=\"side-view-layout-header-container\">\r\n <h2 class=\"side-view-layout-header-title\" id=\"slide-over-title\">\r\n {{title}}\r\n </h2>\r\n <div class=\"side-view-layout-close-button-container\">\r\n <button (click)=\"emitClose()\" class=\"side-view-layout-close-button\">\r\n <span class=\"sr-only\">Close panel</span>\r\n <!-- Heroicon name: outline/x -->\r\n <svg class=\"side-view-layout-close-button-icon\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" aria-hidden=\"true\">\r\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M6 18L18 6M6 6l12 12\" />\r\n </svg>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"side-view-layout-content-container\">\r\n <!-- Replace with your content -->\r\n <ng-content></ng-content>\r\n <!-- /End replace -->\r\n </div>\r\n </div>\r\n <div *ngIf=\"showActions\" class=\"side-view-layout-actions-container\">\r\n <button *ngIf=\"cancelShow\" (click)=\"emitCancel()\" type=\"button\" class=\"side-view-layout-action-button-cancel\">\r\n {{cancelLabel}}\r\n </button>\r\n <button *ngIf=\"okShow\" (click)=\"emitOK()\" class=\"side-view-layout-action-button-submit\" [disabled]=\"disabled\">\r\n {{okLabel}}\r\n </button>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n","import { Component, ElementRef, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { fromEvent } from 'rxjs';\r\nimport { map, filter, debounceTime, distinctUntilChanged } from 'rxjs/operators';\r\nimport { RouterViewAction, ViewAction } from '../../../types';\r\n\r\n@Component({\r\n selector: 'lib-form-layout',\r\n templateUrl: './form-layout.component.html'\r\n})\r\nexport class FormLayoutComponent implements OnInit {\r\n // tslint:disable-next-line:no-input-rename\r\n @ViewChild('search') private searchInput$?: ElementRef;\r\n @Input() title: string | null = null;\r\n @Input() image: string | null = null;\r\n @Input() icon: string | null = null;\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('search-placeholder') searchPlaceholder: string | null = 'αναζήτηση'\r\n @Input() actions: ViewAction[] | null = null;\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('sub-title') subTitle: string | null = null;\r\n // tslint:disable-next-line:no-output-on-prefix\r\n @Output() onAction: EventEmitter<ViewAction> = new EventEmitter<ViewAction>();\r\n // tslint:disable-next-line:no-output-on-prefix\r\n @Output() onSearch: EventEmitter<string> = new EventEmitter<string>();\r\n @Output() onComplete: EventEmitter<boolean> = new EventEmitter<boolean>();\r\n\r\n constructor(private router$: Router) { }\r\n\r\n ngOnInit(): void {\r\n if (this.searchInput$?.nativeElement){\r\n fromEvent(this.searchInput$.nativeElement, 'keyup').pipe(\r\n map((event: any) => {\r\n return event.target.value; // Get input value.\r\n }),\r\n filter(inputValue => inputValue.length >= 3 || inputValue.length === 0),\r\n // If character length greater than minimumSearchCharacters setting.\r\n debounceTime(1000), // Time in milliseconds between key events.\r\n distinctUntilChanged() // If previous query is different from current.\r\n ).subscribe();\r\n }\r\n }\r\n\r\n public onSidePaneDeactivated($event: any): void {\r\n this.onComplete.emit(true);\r\n }\r\n\r\n public emitActionClick(action: ViewAction): void {\r\n this.onAction.emit(action);\r\n }\r\n\r\n searchActionClick(action: ViewAction, text: string): void {\r\n this.onSearch.emit(text);\r\n }\r\n\r\n searchActionType(text: string): void {\r\n this.onSearch.emit(this.searchInput$?.nativeElement.value);\r\n }\r\n\r\n public routerLinkActionClick(action: RouterViewAction | any, relative: boolean = false): void {\r\n if (action.outlet) {\r\n this.router$.navigate(['', { outlets: { formRightPane: action.link } }]);\r\n } else {\r\n this.router$.navigate([action.link]);\r\n }\r\n }\r\n\r\n}\r\n","<div class=\"form-layout-container\">\r\n <div class=\"form-header\" *ngIf=\"title || subTitle || actions\">\r\n <div class=\"flex\">\r\n <div class=\"mr-4 flex-shrink-0\" *ngIf=\"image\">\r\n <img alt=\"form tab image\" class=\"form-header-image\" [src]=\"image\">\r\n </div>\r\n <div class=\"mr-4 flex-shrink-0\" *ngIf=\"icon\">\r\n <i [class]=\"icon\" class=\"form-header-icon\"></i>\r\n </div>\r\n <div class=\"form-header-inner\">\r\n <h3 class=\"form-title\">{{ title }}</h3>\r\n <p class=\"form-subtitle\">{{ subTitle }}</p>\r\n </div>\r\n </div>\r\n \r\n <div class=\"form-header-actions\">\r\n <ng-container *ngFor=\"let action of actions\" [ngSwitch]=\"action.type\">\r\n <ng-container *ngSwitchCase=\"'search'\">\r\n <label for=\"search\" class=\"sr-only\">Search</label>\r\n <div class=\"search-container\">\r\n <div class=\"pointer-events-none absolute inset-y-0 left-0 pl-3 flex items-center\">\r\n <!--<svg class=\"h-5 w-5\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\">\r\n <path fill-rule=\"evenodd\" d=\"M8 4a4 4 0 100 8 4 4 0 000-8zM2 8a6 6 0 1110.89 3.476l4.817 4.817a1 1 0 01-1.414 1.414l-4.816-4.816A6 6 0 012 8z\" clip-rule=\"evenodd\" />\r\n </svg>-->\r\n </div>\r\n <input id=\"search\"\r\n #search\r\n class=\"form-search-input\"\r\n [placeholder]=\"searchPlaceholder\"\r\n type=\"search\"\r\n name=\"search\"\r\n (input)=\"searchActionType(search.value)\">\r\n </div>\r\n <button type=\"button\"\r\n href=\"#\"\r\n class=\"btn-form-view-header-search\"\r\n [title]=\"action.tooltip\"\r\n (click)=\"searchActionClick(action, search.value)\">\r\n <i [class]=\"action.icon\"></i>\r\n </button>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'router-link'\">\r\n <button type=\"button\"\r\n href=\"#\"\r\n class=\"ml-1 btn-form-view-header\"\r\n [title]=\"action.tooltip\"\r\n (click)=\"routerLinkActionClick(action)\">\r\n <i [class]=\"action.icon\"></i>\r\n </button>\r\n </ng-container>\r\n <ng-container *ngSwitchDefault>\r\n <button type=\"button\"\r\n class=\"ml-1 btn-form-view-header\"\r\n [title]=\"action.tooltip\"\r\n (click)=\"emitActionClick(action)\">\r\n <i [class]=\"action.icon\"></i>\r\n </button>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n </div>\r\n <div class=\"form-content-container\">\r\n <div [ngClass]=\"{'form-content-container-inner': actions}\">\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n <lib-side-pane #formPane (onComplete)=\"onSidePaneDeactivated($event)\">\r\n <router-outlet name=\"formRightPane\"\r\n (activate)=\"formPane.onSidePaneActivated($event)\"\r\n (deactivate)=\"formPane.onSidePaneDeactivated($event)\"></router-outlet>\r\n </lib-side-pane>\r\n</div>\r\n","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\n\r\nimport { AuthService } from '@indice/ng-auth';\r\n\r\n@Component({\r\n selector: 'lib-auth-callback',\r\n templateUrl: './auth-callback.component.html'\r\n})\r\nexport class AuthCallbackComponent implements OnInit {\r\n constructor(@Inject(AuthService) private authService: AuthService, private router: Router) { }\r\n\r\n public status = 'παρακαλώ περιμένετε...';\r\n\r\n public ngOnInit(): void {\r\n this.authService.signinRedirectCallback().subscribe((user) => {\r\n if (user) {\r\n this.router.navigateByUrl((user.state as any)?.url || '/');\r\n }\r\n });\r\n }\r\n}\r\n","<lib-view-layout [title]=\"status\" [busy]=\"true\"></lib-view-layout>","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\n\r\nimport { AuthService } from '@indice/ng-auth';\r\n\r\n@Component({\r\n selector: 'lib-auth-renew',\r\n template: ''\r\n})\r\nexport class AuthRenewComponent implements OnInit {\r\n constructor(@Inject(AuthService) private authService: AuthService, private router: Router) { }\r\n\r\n public ngOnInit(): void {\r\n this.authService.signinSilentCallback().subscribe(user => {\r\n if (!user) {\r\n this.router.navigate(['/unauthorized']);\r\n }\r\n });\r\n }\r\n}\r\n","import { AuthService } from '@indice/ng-auth';\r\nimport { Component, Inject, OnInit } from '@angular/core';\r\n\r\n\r\n@Component({\r\n // tslint:disable-next-line:component-selector\r\n selector: 'lib-logged-out',\r\n templateUrl: './logged-out.component.html'\r\n})\r\nexport class LoggedOutComponent implements OnInit {\r\n constructor(@Inject(AuthService) private authService: AuthService) { }\r\n\r\n public status = 'working on it, please give me a sec...';\r\n public finished = false;\r\n\r\n public ngOnInit(): void {\r\n this.authService.removeUser().subscribe(() => {\r\n this.status = 'Thank you!';\r\n this.finished = true;\r\n });\r\n }\r\n}\r\n","<lib-view-layout title=\"Έχετε αποσυνδεθεί με επιτυχία!\"></lib-view-layout>","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-error',\r\n templateUrl: './error.component.html'\r\n})\r\nexport class ErrorComponent implements OnInit {\r\n public error = 'Error!';\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","<lib-view-layout [show-header]=\"false\" title=\"500 - παρουσιάστηκε σφάλμα!\">\r\n <div class=\"bg-gray-600 view-container\">\r\n <div class=\"max-w-2xl mx-auto text-center py-16 px-4 sm:py-20 sm:px-6 lg:px-8\">\r\n <h2 class=\"text-3xl font-extrabold text-white sm:text-4xl\">\r\n <span class=\"block\">500</span>\r\n </h2>\r\n <p class=\"mt-4 text-lg leading-6 text-gray-200\">σφάλμα, κατι δεν πήγε καλά...!</p>\r\n <a href=\"/\" class=\"mt-8 inline-flex items-center justify-center px-5 py-3 border border-transparent text-base font-sm rounded-sm text-gray-600 bg-white hover:bg-gray-50 sm:w-auto\">\r\n πατήστε εδώ για να επιστρέψετε\r\n </a>\r\n </div>\r\n </div>\r\n</lib-view-layout>\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-page-not-found',\r\n templateUrl: './page-not-found.component.html'\r\n})\r\nexport class PageNotFoundComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","<lib-view-layout [show-header]=\"false\" title=\"404 - δεν βρέθηκε!\">\r\n <div class=\"text-gray-900\">\r\n <div class=\"max-w-4xl mx-auto text-center py-16 px-4 sm:py-20 sm:px-6 lg:px-8\">\r\n <h2 class=\"text-3xl font-extrabold sm:text-4xl\">\r\n <span class=\"block\">404</span>\r\n </h2>\r\n <p class=\"mt-4 text-lg leading-6 text-gray-800\">δεν βρέθηκε η σελίδα που ζητήσατε!</p>\r\n <a href=\"/\"\r\n class=\"mt-8 inline-flex items-center justify-center px-5 py-3 border border-transparent text-base font-sm rounded-sm text-gray-600 bg-white hover:bg-gray-50 sm:w-auto\">\r\n πατήστε εδώ για να επιστρέψετε\r\n </a>\r\n </div>\r\n </div>\r\n</lib-view-layout>\r\n","import { Component, Inject, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-unauthorized',\r\n templateUrl: './unauthorized.component.html'\r\n})\r\nexport class UnauthorizedComponent implements OnInit {\r\n constructor() { }\r\n\r\n public ngOnInit(): void { }\r\n}\r\n","<lib-view-layout [show-header]=\"false\" title=\"401 - δεν επιτρέπεται η πρόσβαση!\">\r\n <div class=\"bg-gray-600 view-container\">\r\n <div class=\"max-w-2xl mx-auto text-center py-16 px-4 sm:py-20 sm:px-6 lg:px-8\">\r\n <h2 class=\"text-3xl font-extrabold text-white sm:text-4xl\">\r\n <span class=\"block\">401</span>\r\n </h2>\r\n <p class=\"mt-4 text-lg leading-6 text-gray-200\">δεν έχετε τα κατάλληλα δικαιώματα πρόσβασης!</p>\r\n <a href=\"/\" class=\"mt-8 inline-flex items-center justify-center px-5 py-3 border border-transparent text-base font-sm rounded-sm text-gray-600 bg-white hover:bg-gray-50 sm:w-auto\">\r\n πατήστε εδώ για να επιστρέψετε\r\n </a>\r\n </div>\r\n </div>\r\n </lib-view-layout>\r\n\r\n\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { IAddress } from '../types';\r\n\r\n@Pipe({\r\n name: 'address',\r\n pure: false\r\n})\r\nexport class AddressPipe implements PipeTransform {\r\n\r\n transform(value: IAddress | undefined): string {\r\n if (value === undefined || null || '') {\r\n return '';\r\n }\r\n // tslint:disable-next-line:no-non-null-assertion\r\n return `${value.street || ''}${value.streetNumber ? ' ' + value.streetNumber : ''}${value.city ? ', ' + value.city : ''}${+value.postalCode! ? ', ' + +value.postalCode! : ''}`;\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'durationFormat',\r\n pure: false\r\n})\r\nexport class DurationFormatPipe implements PipeTransform {\r\n\r\n transform(value: any, arg1: any, arg2: any): string {\r\n\r\n let days: any;\r\n let seconds: any;\r\n let minutes: any;\r\n let hours: any;\r\n\r\n if (arg1 === 'ms' && arg2 === 'hhmmss') {\r\n seconds = Math.floor((value / 1000) % 60);\r\n minutes = Math.floor(((value / (1000 * 60)) % 60));\r\n hours = Math.floor((value / (1000 * 60 * 60)));\r\n return this.format(arg2, seconds, minutes, hours, days);\r\n\r\n } else if (arg1 === 's' && arg2 === 'hhmmss') {\r\n seconds = Math.floor((value % 60));\r\n minutes = Math.floor(((value / 60) % 60));\r\n hours = Math.floor(((value / 60) / 60));\r\n return this.format(arg2, seconds, minutes, hours, days);\r\n\r\n } else if (arg1 === 'ms' && (arg2 === 'ddhhmmss' || arg2 === 'ddhhmmssLong')) {\r\n seconds = Math.floor(((value / 1000) % 60));\r\n minutes = Math.floor((value / (1000 * 60) % 60));\r\n hours = Math.floor((value / (1000 * 60 * 60) % 24));\r\n days = Math.floor((value / (1000 * 60 * 60 * 24)));\r\n return this.format(arg2, seconds, minutes, hours, days);\r\n\r\n } else if (arg1 === 's' && (arg2 === 'ddhhmmss' || arg2 === 'ddhhmmssLong')) {\r\n seconds = Math.floor(value % 60);\r\n minutes = Math.floor(((value / 60) % 60));\r\n hours = Math.floor(((value / 60) / 60) % 24);\r\n days = Math.floor((((value / 60) / 60) / 24));\r\n return this.format(arg2, seconds, minutes, hours, days);\r\n\r\n }\r\n else {\r\n return value;\r\n }\r\n }\r\n\r\n private format(arg2: string, seconds: any, minutes: any, hours: any, days: any): any {\r\n (days < 10) ? days = '0' + days : days;\r\n (hours < 10) ? hours = '0' + hours : hours;\r\n (minutes < 10) ? minutes = '0' + minutes : minutes;\r\n (seconds < 10) ? seconds = '0' + seconds : seconds;\r\n\r\n switch (arg2) {\r\n case 'hhmmss':\r\n return `${hours}:${minutes}:${seconds}`;\r\n\r\n case 'ddhhmmss':\r\n return `${days}d, ${hours}h, ${minutes}m, ${seconds}s`;\r\n\r\n case 'ddhhmmssLong':\r\n return `${days} days, ${hours} hours, ${minutes} minutes, ${seconds} seconds`;\r\n }\r\n return undefined;\r\n }\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'shortNumber',\r\n pure: false\r\n })\r\nexport class ShortNumberPipe implements PipeTransform {\r\n\r\n transform(number: number, args?: any): any {\r\n if (isNaN(number)) return null; // will only work value is a number\r\n if (number === null) return null;\r\n if (number === 0) return null;\r\n let abs = Math.abs(number);\r\n const rounder = Math.pow(10, 1);\r\n const isNegative = number < 0; // will also work for Negative numbers\r\n let key = '';\r\n\r\n const powers = [\r\n {key: 'Q', value: Math.pow(10, 15)},\r\n {key: 'T', value: Math.pow(10, 12)},\r\n {key: 'B', value: Math.pow(10, 9)},\r\n {key: 'M', value: Math.pow(10, 6)},\r\n {key: 'K', value: 1000}\r\n ];\r\n\r\n for (let i = 0; i < powers.length; i++) {\r\n let reduced = abs / powers[i].value;\r\n reduced = Math.round(reduced * rounder) / rounder;\r\n if (reduced >= 1) {\r\n abs = reduced;\r\n key = powers[i].key;\r\n break;\r\n }\r\n }\r\n return (isNegative ? '-' : '') + abs + key;\r\n }\r\n}","import { FilterClause, QueryParameters, SearchOption } from './../controls/advanced-search/models';\r\nimport { Observable, Subscription, of } from 'rxjs';\r\nimport { Component, OnInit, OnDestroy } from '@angular/core';\r\nimport { ActivatedRoute, ParamMap, Router } from '@angular/router';\r\nimport { HeaderMetaItem, IResultSet, MenuOption, RouterViewAction, ViewAction, ListViewType } from '../types';\r\nimport { Icons } from '../icons';\r\n\r\n@Component({ template: '' })\r\nexport abstract class BaseListComponent<T> implements OnInit, OnDestroy {\r\n public items: T[] | null | undefined = null;\r\n public view: string = ListViewType.Tiles;\r\n public title: string | null = null;\r\n public actions: ViewAction[] = [];\r\n public loaderItems: any[] = [1, 2, 3, 4, 5];\r\n public page = 1;\r\n public pageSize = 20;\r\n public count = 0;\r\n public sort: string | null = '';\r\n public sortdir: string | null = '';\r\n public search: string | null = '';\r\n public filters: FilterClause[] = [];\r\n public searchOptions: SearchOption[] = [];\r\n public sortOptions: MenuOption[] = [];\r\n public metaItems: HeaderMetaItem[] = [];\r\n public abstract newItemLink: string | null;\r\n private routeSub$: Subscription | undefined;\r\n private loadSub$: Subscription | undefined;\r\n\r\n constructor(private route$: ActivatedRoute, private router$: Router) {\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.routeSub$) {\r\n this.routeSub$.unsubscribe();\r\n }\r\n if(this.loadSub$) {\r\n this.loadSub$.unsubscribe();\r\n }\r\n }\r\n\r\n public getViewActions(): Observable<ViewAction[]> {\r\n const actions = [\r\n new ViewAction('search', null, null, Icons.Search, 'αναζήτηση'),\r\n new ViewAction('refresh', null, null, Icons.Refresh, 'ανανέωση στοιχείων')\r\n ];\r\n if (this.newItemLink) {\r\n actions.push(new RouterViewAction(Icons.Add, this.newItemLink, 'rightpane', 'προσθήκη νέας εγγραφής;'));\r\n }\r\n return of(actions);\r\n }\r\n\r\n ngOnInit(): void {\r\n this.getViewActions().subscribe(actions => {\r\n this.actions = actions || [];\r\n });\r\n\r\n this.metaItems = [\r\n { key: 'count', icon: Icons.ItemsCount, text: 'παρακαλώ περιμένετε...' }\r\n ];\r\n\r\n // disabled external route changes monitoring due to sync issues - which is bad :) - refresh from url will not work\r\n // until i come up with a solution...\r\n\r\n this.routeSub$ = this.route$.queryParamMap.subscribe(params => {\r\n if (params.keys.length === 0) {\r\n return;\r\n }\r\n\r\n // changing the view mode does not require reloading...\r\n this.view = params.get('view') || ListViewType.Tiles;\r\n // console.log('route changes ', this.view);\r\n\r\n if (params.get('search') !== null && params.get('search') !== this.search) {\r\n this.searchChanged(params.get('search'));\r\n }\r\n\r\n const page = +(params.get('page') || 1);\r\n if (page !== this.page) {\r\n this.page = page;\r\n }\r\n\r\n const size = +(params.get('pagesize') || 20);\r\n if (this.pageSize !== size) {\r\n this.pageSize = size;\r\n }\r\n\r\n if (params.get('search') !== this.search) {\r\n this.search = params.get('search');\r\n }\r\n\r\n if (params.get('sort') !== this.sort) {\r\n this.sort = params.get('sort');\r\n }\r\n\r\n if (params.get('dir') !== this.sortdir) {\r\n this.sortdir = params.get('dir');\r\n }\r\n // initialize filters that may reside in the query string\r\n this.filters = this.getFiltersFrom(params);\r\n });\r\n // just to sync params in query\r\n this.setRouteParams(true);\r\n this.load();\r\n }\r\n\r\n /**\r\n * Get filters from a querystring\r\n * @param queryParamMap\r\n * @returns filters found from a paramMap\r\n */\r\n private getFiltersFrom(queryParamMap: ParamMap): FilterClause[] {\r\n let filterResult: FilterClause[] = [];\r\n if (queryParamMap.has(QueryParameters.FILTER) && queryParamMap.get(QueryParameters.FILTER)!.length > 0) {\r\n let filterValue = queryParamMap.get(QueryParameters.FILTER);\r\n const filterValues = filterValue?.split(\",\"); // we may have multiple filters in filter query param\r\n if (filterValues && filterValues.length > 0) {\r\n // create the filterClauses derived from the query params\r\n for (var index in filterValues) {\r\n let filterClause = FilterClause.parse(filterValues[index]);\r\n const parsed = new FilterClause(filterClause!.member, filterClause!.value, filterClause!.operator, filterClause!.dataType, this.searchOptions);\r\n if (parsed !== undefined) {\r\n filterResult.push(parsed);\r\n }\r\n }\r\n }\r\n }\r\n return filterResult;\r\n }\r\n\r\n private setRouteParams(locationChange: boolean = false): void {\r\n this.router$.navigate([], {\r\n relativeTo: this.route$, queryParams: {\r\n view: this.view,\r\n page: this.page,\r\n pagesize: this.pageSize,\r\n search: this.search,\r\n sort: this.sort,\r\n dir: this.sortdir,\r\n filter: this.filterClausesToString(this.filters)\r\n }, queryParamsHandling: 'merge', skipLocationChange: locationChange\r\n });\r\n }\r\n\r\n private filterClausesToString(filters: FilterClause[] | undefined) {\r\n return filters?.map((f: FilterClause) => {\r\n if (f.dataType === 'datetime') {\r\n f.value = (new Date(f.value)).toISOString();\r\n }\r\n return f.toString();\r\n }).join(',');\r\n }\r\n\r\n public actionHandler($event: ViewAction): void {\r\n // console.log('BaseListComponent actionHandler', $event);\r\n if ($event.key === 'refresh') {\r\n this.refresh();\r\n }\r\n }\r\n\r\n private load(): void {\r\n // console.log('BaseListComponent LOAD');\r\n this.count = 0;\r\n this.items = null;\r\n this.loadSub$ = this.loadItems().subscribe(result => {\r\n this.count = result ? result.count : 0;\r\n this.items = result?.items;\r\n this.updateHeaderMeta();\r\n }, err => {\r\n this.count = 0;\r\n this.items = null;\r\n this.updateHeaderMeta();\r\n });\r\n }\r\n\r\n private updateHeaderMeta(): void {\r\n const count = this.metaItems?.filter(m => m.key === 'count')[0];\r\n if (count) {\r\n this.count === 1 ? count.text = `${this.count} αποτέλεσμα` : count.text = `${this.count} αποτελέσματα`;\r\n }\r\n }\r\n\r\n public abstract loadItems(): Observable<IResultSet<T> | null | undefined>;\r\n\r\n public clear(): void {\r\n this.count = 0;\r\n this.page = 1;\r\n this.items = null;\r\n this.search = null;\r\n this.setRouteParams();\r\n this.load();\r\n }\r\n\r\n public refresh(): void {\r\n this.count = 0;\r\n this.updateHeaderMeta();\r\n this.page = 1;\r\n this.items = null;\r\n this.setRouteParams();\r\n this.load();\r\n }\r\n\r\n public pageChanged(page: number): void {\r\n if (this.page !== page) {\r\n this.page = page;\r\n this.setRouteParams();\r\n this.load();\r\n }\r\n }\r\n\r\n public pageSizeChanged(pageSize: number): void {\r\n if (this.pageSize !== pageSize) {\r\n this.pageSize = pageSize;\r\n this.page = 1;\r\n this.setRouteParams();\r\n this.refresh();\r\n }\r\n }\r\n\r\n public sortChanged(sort: string): void {\r\n // console.log('base-list sortChanged', sort);\r\n if (this.sort !== sort) {\r\n this.page = 1;\r\n this.sort = sort;\r\n this.setRouteParams();\r\n this.refresh();\r\n }\r\n }\r\n\r\n public sortdirChanged(sortdir: string): void {\r\n if (this.sortdir !== sortdir) {\r\n this.page = 1;\r\n this.sortdir = sortdir;\r\n this.setRouteParams();\r\n this.refresh();\r\n }\r\n }\r\n\r\n public advancedSearchChanged(filters: FilterClause[]): void {\r\n this.count = 0;\r\n this.page = 1;\r\n this.items = null;\r\n this.filters = filters;\r\n this.setRouteParams();\r\n this.load();\r\n }\r\n\r\n public searchChanged(searchText: string | null): void {\r\n this.count = 0;\r\n this.page = 1;\r\n this.items = null;\r\n this.search = searchText;\r\n this.setRouteParams();\r\n this.load();\r\n }\r\n}\r\n","export const cssClassNames = {\r\n backdrop: 'modal-backdrop',\r\n show: 'show',\r\n fade: 'fade',\r\n\tmodalOpen: 'modal-open'\r\n};\r\n\r\nexport const animationTime = {\r\n backdrop: 150,\r\n modal: 300,\r\n};\r\n","import { Component, ElementRef, OnInit, Renderer2, ViewEncapsulation } from '@angular/core';\r\nimport { ComponentLoader } from '../component-loader/component-loader.class';\r\nimport { animationTime, cssClassNames } from './modal-styles.class';\r\n\r\n/**\r\n * Background layer for modals.\r\n * Override class name to theme it.\r\n * @see {@link cssClassNames}\r\n * @internal\r\n */\r\n@Component({\r\n selector: 'lib-modal-backdrop',\r\n encapsulation: ViewEncapsulation.None,\r\n template: '',\r\n host: {\r\n class: cssClassNames.backdrop,\r\n },\r\n})\r\nexport class ModalBackdropComponent implements OnInit {\r\n private animationsEnabled = false;\r\n private backdropLoader: ComponentLoader<ModalBackdropComponent> | undefined;\r\n constructor(private element: ElementRef, private renderer: Renderer2) {}\r\n\r\n ngOnInit(): void {\r\n if (this.animationsEnabled) {\r\n this.renderer.addClass(this.element.nativeElement, cssClassNames.fade);\r\n this.reflow(this.element.nativeElement);\r\n }\r\n this.renderer.addClass(this.element.nativeElement, cssClassNames.show);\r\n }\r\n\r\n public hide() {\r\n this.renderer.removeClass(this.element.nativeElement, cssClassNames.show);\r\n setTimeout(() => this.backdropLoader?.hide(), this.animationsEnabled ? animationTime.backdrop : 0);\r\n }\r\n\r\n reflow(element: any): void {\r\n ((bs: any): void => bs)(element.offsetHeight);\r\n }\r\n}\r\n","import { Injectable, InjectionToken, StaticProvider } from '@angular/core';\r\n\r\n/**\r\n * Modals option can be passed to a specific modal from {@link ModalService.show} or\r\n * set globbaly using the injection token {@link MODAL_CONFIG_DEFAULT_OVERRIDE}.\r\n * @remarks\r\n * Modal specific options are merged with global options.\r\n * @see {@link modalConfigDefaults} for defaults.\r\n * @public\r\n */\r\n@Injectable()\r\nexport class ModalOptions<T = Record<string, unknown>> {\r\n /**\r\n * Id for opened modal. If not set a random one is generated.\r\n */\r\n id?: number | string;\r\n /**\r\n * If static is set the modal will not close when clicking outside of modal.\r\n * @remarks\r\n * Keyboard event (escape key) stills applies. If you must get a result then also set keyboard to false.\r\n */\r\n backdrop?: boolean | 'static';\r\n /**\r\n * Closes the modal when escape key is pressed.\r\n */\r\n keyboard?: boolean;\r\n /**\r\n * Shows the modal when initialized.\r\n */\r\n show?: boolean;\r\n /**\r\n * Ignore the backdrop click. Pretty much the same as backdrop static.\r\n */\r\n ignoreBackdropClick?: boolean;\r\n /**\r\n * Css class for opened modal.\r\n */\r\n class?: string;\r\n /**\r\n * Toggle animation.\r\n */\r\n animated?: boolean;\r\n /**\r\n * Modal initial data.\r\n * @remarks\r\n * This data must be known properties of content component.\r\n */\r\n initialState?: Partial<T>;\r\n /**\r\n * Function to intercept the closure.\r\n * @remarks\r\n * You can use to catch the close event and even prevent it from closing.\r\n */\r\n closeInterceptor?: CloseInterceptorFn;\r\n /**\r\n * Modal static providers.\r\n * @see {@link https://angular.io/guide/glossary#di-token | Injection Token}\r\n */\r\n providers?: StaticProvider[];\r\n /**\r\n * aria-labelledby attribute value to set on the modal window.\r\n */\r\n ariaLabelledBy?: string;\r\n /**\r\n * aria-describedby attribute value to set on the modal window.\r\n */\r\n ariaDescribedby?: string;\r\n}\r\n\r\n/**\r\n * Default option values.\r\n */\r\nexport const modalConfigDefaults: ModalOptions = {\r\n backdrop: true,\r\n keyboard: true,\r\n show: false,\r\n ignoreBackdropClick: false,\r\n class: '',\r\n animated: true,\r\n initialState: {},\r\n closeInterceptor: void 0,\r\n};\r\n\r\n/**\r\n * Use this injection token to set global options.\r\n */\r\nexport const MODAL_CONFIG_DEFAULT_OVERRIDE: InjectionToken<ModalOptions> = new InjectionToken<ModalOptions>('override-default-config');\r\n\r\n/**\r\n * Close interceptor promise.\r\n */\r\nexport type CloseInterceptorFn = () => Promise<void>;\r\n","import { Component, ElementRef, HostListener, OnDestroy, OnInit, Renderer2 } from '@angular/core';\r\nimport { animationTime, cssClassNames } from './modal-styles.class';\r\nimport { ModalOptions } from './modal-options.class';\r\nimport { ModalService } from './modal-service';\r\n\r\n/**\r\n * Modal container component.\r\n * @remarks\r\n * All dynamic content `TemplateRef` or `Component` case will be drawn inside this.\r\n * You can override css classes to theme it {@link cssClassNames}\r\n * @internal\r\n */\r\n@Component({\r\n selector: 'lib-modal-container',\r\n template: `\r\n <div [class]=\"'modal-dialog' + (config.class ? ' ' + config.class : '')\" role=\"document\" focusTrap>\r\n <div class=\"modal-content\">\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n `,\r\n host: {\r\n class: 'modal',\r\n role: 'dialog',\r\n tabindex: '-1',\r\n '[attr.aria-modal]': 'true',\r\n '[attr.aria-labelledby]': 'config.ariaLabelledBy',\r\n '[attr.aria-describedby]': 'config.ariaDescribedby',\r\n },\r\n})\r\nexport class ModalContainerComponent implements OnInit, OnDestroy {\r\n public level?: number;\r\n public config: ModalOptions;\r\n public modalService?: ModalService;\r\n private isShown = false;\r\n private animationsEnabled = false;\r\n private isModalHiding = false;\r\n private clickStartedInContent = false;\r\n constructor(options: ModalOptions, protected _element: ElementRef, private renderer: Renderer2) {\r\n this.config = Object.assign({}, options);\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.animationsEnabled) {\r\n this.renderer.addClass(this._element.nativeElement, cssClassNames.fade);\r\n }\r\n this.renderer.setStyle(this._element.nativeElement, 'display', 'block');\r\n setTimeout(\r\n () => {\r\n this.isShown = true;\r\n this.renderer.addClass(this._element.nativeElement, cssClassNames.show);\r\n },\r\n this.animationsEnabled ? animationTime.backdrop : 0\r\n );\r\n if (this._element.nativeElement) {\r\n this._element.nativeElement.focus();\r\n }\r\n }\r\n\r\n @HostListener('mousedown', ['$event'])\r\n onClickStarted(event: MouseEvent): void {\r\n this.clickStartedInContent = event.target !== this._element.nativeElement;\r\n }\r\n\r\n @HostListener('click', ['$event'])\r\n onClickStop(event: MouseEvent): void {\r\n const clickedInBackdrop = event.target === this._element.nativeElement && !this.clickStartedInContent;\r\n if (this.config.ignoreBackdropClick || this.config.backdrop === 'static' || !clickedInBackdrop) {\r\n this.clickStartedInContent = false;\r\n return;\r\n }\r\n this.hide();\r\n }\r\n\r\n @HostListener('window:popstate')\r\n onPopState(): void {\r\n this.hide();\r\n }\r\n\r\n @HostListener('window:keydown.esc', ['$event'])\r\n onEsc(event: KeyboardEvent): void {\r\n if (!this.isShown) {\r\n return;\r\n }\r\n if (event.keyCode === 27 || event.key === 'Escape' || event.key === 'Esc') {\r\n event.preventDefault();\r\n }\r\n if (this.config.keyboard && this.config.id === this.modalService?.getActiveModal().config.id) {\r\n this.hide();\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.isShown) {\r\n this._hide();\r\n }\r\n }\r\n\r\n hide(result?: any): void {\r\n if (this.isModalHiding || !this.isShown) {\r\n return;\r\n }\r\n if (this.config.closeInterceptor) {\r\n this.config.closeInterceptor().then(\r\n () => this._hide(),\r\n () => undefined\r\n );\r\n return;\r\n }\r\n this._hide(result);\r\n }\r\n\r\n private _hide(result?: any): void {\r\n this.isModalHiding = true;\r\n this.renderer.removeClass(this._element.nativeElement, cssClassNames.show);\r\n setTimeout(\r\n () => {\r\n this.isShown = false;\r\n this.modalService?.hide(this.config.id, result);\r\n this.isModalHiding = false;\r\n },\r\n this.animationsEnabled ? animationTime.modal : 0\r\n );\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\n\r\n/**\r\n * Modal class.\r\n * @remarks\r\n * This is returned from {@link ModalService.show}.\r\n * @public\r\n */\r\n@Injectable()\r\nexport class Modal<T = any> {\r\n /**\r\n * Event that is fired when the modal behind the ref starts hiding.\r\n * @returns\r\n * Modal component instance.\r\n */\r\n onBeforeHide?: Subject<unknown>;\r\n /**\r\n * Event that is fired when the modal behind the ref finishes hiding.\r\n * @returns\r\n * An object containing the id of the closed modal and result.\r\n */\r\n onHidden?: Subject<unknown>;\r\n /**\r\n * Id of this modal.\r\n */\r\n id?: number | string;\r\n\r\n /**\r\n * Reference to a component inside the modal. Null if modal's been created with TemplateRef.\r\n * @remarks\r\n * You can use this to do nasty stuff with opened modal instance.\r\n */\r\n content?: T;\r\n\r\n /**\r\n * Hides the modal\r\n * @param result - A result to the observers.\r\n */\r\n hide: (result?: any) => void = () => void 0;\r\n /**\r\n * Sets new class to modal window.\r\n */\r\n setClass: (newClass: string) => void = () => void 0;\r\n}\r\n","import { DOCUMENT } from '@angular/common';\r\nimport { ComponentRef, Inject, Injectable, OnDestroy, Optional, Renderer2, RendererFactory2, TemplateRef } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\nimport { ComponentLoader } from '../component-loader/component-loader.class';\r\nimport { animationTime, cssClassNames } from './modal-styles.class';\r\nimport { ModalBackdropComponent } from './modal-backdrop-component';\r\nimport { ModalContainerComponent } from './modal-container-component';\r\nimport { modalConfigDefaults, ModalOptions, MODAL_CONFIG_DEFAULT_OVERRIDE } from './modal-options.class';\r\nimport { Modal } from './modal.class';\r\nimport { ComponentLoaderFactory } from '../component-loader/component-loader.factory';\r\n\r\n/**\r\n * A service for using modals.\r\n *\r\n * @public\r\n */\r\n@Injectable()\r\nexport class ModalService implements OnDestroy {\r\n private onBeforeShow = new Subject();\r\n private onShown = new Subject();\r\n private onBeforeHide = new Subject();\r\n private onHidden = new Subject();\r\n\r\n private backdropRef?: ComponentRef<ModalBackdropComponent>;\r\n private defaultConfig: ModalOptions;\r\n private backdropLoader: ComponentLoader<ModalBackdropComponent>;\r\n private loaders: ComponentLoader<ModalContainerComponent>[] = [];\r\n private renderer: Renderer2;\r\n private modalsCount = 0;\r\n private initialPadding = '0px';\r\n constructor(\r\n private clf: ComponentLoaderFactory,\r\n rendererFactory: RendererFactory2,\r\n @Inject(DOCUMENT) private document: any,\r\n @Optional() @Inject(MODAL_CONFIG_DEFAULT_OVERRIDE) modalDefaultOption: ModalOptions\r\n ) {\r\n this.backdropLoader = this.clf.createLoader<ModalBackdropComponent>();\r\n this.defaultConfig = { ...modalConfigDefaults, ...modalDefaultOption };\r\n this.renderer = rendererFactory.createRenderer(null, null);\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.loaders.forEach((loader) => loader.instance?.hide());\r\n }\r\n\r\n /**\r\n * Opens a new modal.\r\n *\r\n * @param content - `Component` or `TemplateRef` type.\r\n * @param config - Specific {@link ModalOptions | options} for this modal. Global and specific options are merged.\r\n * @returns An instance of {@link Modal}\r\n */\r\n public show<T>(content: string | TemplateRef<any> | { new (...args: any[]): T }, config?: ModalOptions<T>) {\r\n this.modalsCount++;\r\n const combinedConfig = { ...this.defaultConfig, ...config };\r\n combinedConfig.id = config?.id || new Date().getUTCMilliseconds();\r\n console.log('show', combinedConfig);\r\n this.createLoaders();\r\n\r\n this.addBodyPadding();\r\n if (this.modalsCount === 1) {\r\n this.renderer.addClass(this.document.body, cssClassNames.modalOpen);\r\n }\r\n this.showBackdrop(combinedConfig);\r\n return this.showModal<T>(content, combinedConfig);\r\n }\r\n\r\n /**\r\n * Hide an active modal.\r\n * @param id - Id of modal to hide. If not provided all active modals are hidden.\r\n * @param result - A result to be sent to observers.\r\n */\r\n public hide(id?: number | string, result?: any) {\r\n if (this.modalsCount === 1 || id == null) {\r\n this.hideBackdrop();\r\n this.revertScrollbar();\r\n this.renderer.removeClass(this.document.body, cssClassNames.modalOpen);\r\n }\r\n this.modalsCount = this.modalsCount >= 1 && id != null ? this.modalsCount - 1 : 0;\r\n setTimeout(\r\n () => {\r\n this.hideModal(id, result);\r\n this.removeLoaders(id);\r\n },\r\n //Bug\r\n //Should use combined config but for the moment is not possible to pass it this parameter.\r\n //If config is an instance variable then every newly opened modal will override the config\r\n //resulting in opened modals to get a new configuration\r\n this.defaultConfig.animated ? animationTime.backdrop : 0\r\n );\r\n }\r\n\r\n public getActiveModal(): ModalContainerComponent {\r\n return this.loaders[this.modalsCount - 1].instance as ModalContainerComponent;\r\n }\r\n\r\n private showModal<T>(content: any, combinedConfig: ModalOptions): Modal<T> {\r\n const modalLoader = this.loaders[this.loaders.length - 1];\r\n if (combinedConfig && combinedConfig.providers) {\r\n combinedConfig.providers.forEach((provider) => modalLoader.provide(provider));\r\n }\r\n\r\n const modal = new Modal<any>();\r\n const modalContainerRef = modalLoader\r\n .provide({ provide: ModalOptions, useValue: combinedConfig })\r\n .provide({ provide: Modal, useValue: modal })\r\n .attach(ModalContainerComponent)\r\n .to('body');\r\n\r\n modal.setClass = (newClass: string) => {\r\n if (modalContainerRef.instance) {\r\n modalContainerRef.instance.config.class = newClass;\r\n }\r\n };\r\n\r\n modal.onBeforeHide = new Subject();\r\n modal.onHidden = new Subject();\r\n this.copyEvent(modalLoader.onBeforeHide, modal.onBeforeHide);\r\n this.copyEvent(modalLoader.onHidden, modal.onHidden);\r\n modalContainerRef.show({\r\n content,\r\n animationsEnabled: combinedConfig.animated,\r\n initialState: combinedConfig.initialState,\r\n modalService: this,\r\n id: combinedConfig.id,\r\n });\r\n\r\n if (modalContainerRef.instance) {\r\n modalContainerRef.instance.level = this.modalsCount;\r\n modal.content = modalLoader.getInnerComponent();\r\n modal.id = modalContainerRef.instance.config?.id;\r\n modal.hide = (res) => modalContainerRef.instance?.hide(res);\r\n }\r\n\r\n return modal;\r\n }\r\n\r\n private hideModal(id?: number | string, result?: any): void {\r\n if (id != null) {\r\n const indexToRemove = this.loaders.findIndex((loader) => loader.instance?.config.id === id);\r\n const modalLoader = this.loaders[indexToRemove];\r\n if (modalLoader) {\r\n modalLoader.hide(id, result);\r\n }\r\n } else {\r\n this.loaders.forEach((loader: ComponentLoader<ModalContainerComponent>) => {\r\n if (loader.instance) {\r\n loader.hide(loader.instance.config.id);\r\n }\r\n });\r\n }\r\n }\r\n\r\n private showBackdrop(combinedConfig: ModalOptions): void {\r\n const isBackdropEnabled = combinedConfig.backdrop === true || combinedConfig.backdrop === 'static';\r\n const isBackdropInDOM = this.backdropRef != null;\r\n if (isBackdropEnabled && !isBackdropInDOM) {\r\n this.backdropLoader\r\n .attach(ModalBackdropComponent)\r\n .to('body')\r\n .show({ animationsEnabled: combinedConfig.animated, backdropLoader: this.backdropLoader });\r\n this.backdropRef = this.backdropLoader.componentRef;\r\n }\r\n }\r\n\r\n private hideBackdrop(): void {\r\n if (!this.backdropRef) {\r\n return;\r\n }\r\n this.backdropRef.instance.hide();\r\n this.backdropRef = void 0;\r\n }\r\n\r\n private removeLoaders(id?: number | string): void {\r\n if (id != null) {\r\n const indexToRemove = this.loaders.findIndex((loader) => loader.instance?.config.id === id);\r\n if (indexToRemove >= 0) {\r\n this.loaders.splice(indexToRemove, 1);\r\n this.loaders.forEach((loader: ComponentLoader<ModalContainerComponent>, i: number) => {\r\n if (loader.instance) {\r\n loader.instance.level = i + 1;\r\n }\r\n });\r\n }\r\n } else {\r\n this.loaders.splice(0, this.loaders.length);\r\n }\r\n }\r\n\r\n private addBodyPadding() {\r\n if (this.modalsCount === 1) {\r\n const width = this.getScrollbarWidth();\r\n if (this.isScrollBarPresent(width)) {\r\n this.initialPadding = this.document.body.style.paddingRight;\r\n const actualPadding = parseFloat(window.getComputedStyle(this.document.body).paddingRight);\r\n this.document.body.style.paddingRight = `${actualPadding + width}px`;\r\n }\r\n }\r\n }\r\n\r\n private revertScrollbar() {\r\n this.document.body.style.paddingRight = this.initialPadding;\r\n }\r\n\r\n private getScrollbarWidth(): number {\r\n const measurer = this.document.createElement('div');\r\n measurer.className = 'modal-scrollbar-measure';\r\n\r\n const body = this.document.body;\r\n body.appendChild(measurer);\r\n const width = measurer.getBoundingClientRect().width - measurer.clientWidth;\r\n body.removeChild(measurer);\r\n\r\n return width;\r\n }\r\n\r\n private isScrollBarPresent(scrollbarWidth: number) {\r\n const rect = this.document.body.getBoundingClientRect();\r\n const bodyToViewportGap = window.innerWidth - (rect.left + rect.right);\r\n const uncertainty = 0.1 * scrollbarWidth;\r\n return bodyToViewportGap >= scrollbarWidth - uncertainty;\r\n }\r\n\r\n private createLoaders(): void {\r\n const loader = this.clf.createLoader<ModalContainerComponent>();\r\n this.copyEvent(loader.onBeforeShow, this.onBeforeShow);\r\n this.copyEvent(loader.onShown, this.onShown);\r\n this.copyEvent(loader.onBeforeHide, this.onBeforeHide);\r\n this.copyEvent(loader.onHidden, this.onHidden);\r\n this.loaders.push(loader);\r\n }\r\n\r\n private copyEvent(from: Subject<unknown>, to: Subject<unknown>) {\r\n from.subscribe((data) => {\r\n to.next(data);\r\n });\r\n }\r\n}\r\n","\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { RouterModule } from '@angular/router';\r\n\r\nimport { AddressPipe } from './pipes/address.pipe';\r\nimport { AdvancedSearchComponent } from './controls/advanced-search/advanced-search.component';\r\nimport { AuthCallbackComponent } from './pages/auth/auth-callback/auth-callback.component';\r\nimport { AuthRenewComponent } from './pages/auth/auth-renew/auth-renew.component';\r\nimport { AvatarInitialsComponent } from './controls/avatar-initials/avatar-initials.component';\r\nimport { BreadcrumbComponent } from './controls/breadcrumb/breadcrumb.component';\r\nimport { BreadcrumbService } from './services/breadcrumb.service';\r\nimport { ClickOutsideDirective } from './directives/click-outside.directive';\r\nimport { CollapsiblePanelComponent } from './controls/collapsible-panel/collapsible-panel.component';\r\nimport { ComboboxComponent } from './controls/combobox/combobox.component';\r\nimport { DatepickerComponent } from './controls/date-picker/date-picker.component';\r\nimport { DropDownMenuComponent } from './controls/drop-down-menu/drop-down-menu.component';\r\nimport { DurationFormatPipe } from './pipes/duration-format.pipe';\r\nimport { DynamicComponentHostDirective } from './directives/dynamic-component-host.directive';\r\nimport { ErrorComponent } from './pages/http-status/error/error.component';\r\nimport { FormLayoutComponent } from './layouts/views/form-layout/form-layout.component';\r\nimport { IndiceAuthModule } from '@indice/ng-auth';\r\nimport { KpiTileComponent } from './controls/kpi-tile/kpi-tile.component';\r\nimport { LanguageSelectionComponent } from './controls/language-selection/language-selection.component';\r\nimport { LibStepComponent } from './controls/stepper/lib-step.component';\r\nimport { LibStepInfoDirective } from './controls/stepper/lib-step-info.directive';\r\nimport { LibStepLabelDirective } from './controls/stepper/lib-step-label.directive';\r\nimport { LibStepperComponent } from './controls/stepper/lib-stepper.component';\r\nimport { LibTabComponent } from './controls/tabs/lib-tab.component';\r\nimport { LibTabGroupComponent } from './controls/tabs/lib-tab-group.component';\r\nimport { ListColumnComponent } from './controls/list-view/list-column.component';\r\nimport { ListDetailsSectionComponent } from './controls/list-view/list-details-section.component';\r\nimport { ListTileComponent } from './controls/list-view/list-tile.component';\r\nimport { ListViewComponent } from './controls/list-view/list-view.component';\r\nimport { ListViewEmptyStateComponent } from './controls/list-view/list-view-empty-state.component';\r\nimport { LoggedOutComponent } from './pages/auth/logged-out/logged-out.component';\r\nimport { ModelViewLayoutComponent } from './layouts/views/model-view-layout/model-view-layout.component';\r\nimport { NavLinksListComponent } from './controls/nav-links-list/nav-links-list.component';\r\nimport { NotificationsIndicatorComponent } from './controls/notifications-indicator/notifications-indicator.component';\r\nimport { PageNotFoundComponent } from './pages/http-status/page-not-found/page-not-found.component';\r\nimport { PagerComponent } from './controls/pager/pager.component';\r\nimport { ShellFooterComponent } from './layouts/shell/shell-footer/shell-footer.component';\r\nimport { ShellHeaderComponent } from './layouts/shell/shell-header/shell-header.component';\r\nimport { ShellLayoutComponent } from './layouts/shell/shell-layout/shell-layout.component';\r\nimport { ShellSidebarComponent } from './layouts/shell/shell-sidebar/shell-sidebar.component';\r\nimport { ShellSidebarHeaderComponent } from './layouts/shell/shell-sidebar-header/shell-sidebar-header.component';\r\nimport { ShellSidebarLayoutComponent } from './layouts/shell/shell-sidebar-layout/shell-sidebar-layout.component';\r\nimport { ShellStackedLayoutComponent } from './layouts/shell/shell-stacked-layout/shell-stacked-layout.component';\r\nimport { SidePaneComponent } from './controls/side-pane/side-pane.component';\r\nimport { SideViewLayoutComponent } from './layouts/views/side-view-layout/side-view-layout.component';\r\nimport { SkeletonLoaderComponent } from './controls/skeleton-loader/skeleton-loader.component';\r\nimport { ToasterComponent } from './controls/toaster/toaster.component';\r\nimport { ToasterContainerComponent } from './controls/toaster/toaster-container.component';\r\nimport { ToasterService } from './services/toaster.service';\r\nimport { ToggleComponent } from './controls/toggle/toggle.component';\r\nimport { UnauthorizedComponent } from './pages/http-status/unauthorized/unauthorized.component';\r\nimport { UserProfileMenuComponent } from './controls/user-profile-menu/user-profile-menu.component';\r\nimport { ViewLayoutComponent } from './layouts/views/view-layout/view-layout.component';\r\nimport { LibTabLabelDirective, UserSettingsService } from '../public-api';\r\nimport { ToggleButtonComponent } from './controls/toggle-button/toggle-button.component';\r\nimport { ToggleButtonsListComponent } from './controls/toggle-buttons-list/toggle-buttons-list.component';\r\nimport { ContentTileComponent } from './controls/content-tile/content-tile.component';\r\nimport { ContentTileItemComponent } from './controls/content-tile/content-tile-item/content-tile-item.component';\r\nimport { ContentTileHeaderComponent } from './controls/content-tile/content-tile-header/content-tile-header.component';\r\nimport { ShortNumberPipe } from './pipes/short-number.pipe';\r\nimport { StatsGridComponent } from './controls/stats-grid/stats-grid.component';\r\nimport { ProgressBarComponent } from './controls/progress-bar/progress-bar.component';\r\n\r\n@NgModule({\r\n declarations: [\r\n AddressPipe,\r\n AdvancedSearchComponent,\r\n AuthCallbackComponent,\r\n AuthRenewComponent,\r\n AvatarInitialsComponent,\r\n BreadcrumbComponent,\r\n ClickOutsideDirective,\r\n CollapsiblePanelComponent,\r\n ComboboxComponent,\r\n DatepickerComponent,\r\n DropDownMenuComponent,\r\n DurationFormatPipe,\r\n ShortNumberPipe,\r\n DynamicComponentHostDirective,\r\n ErrorComponent,\r\n FormLayoutComponent,\r\n KpiTileComponent,\r\n LanguageSelectionComponent,\r\n LibStepComponent,\r\n LibStepInfoDirective,\r\n LibStepLabelDirective,\r\n LibStepperComponent,\r\n LibTabComponent,\r\n LibTabGroupComponent,\r\n LibTabLabelDirective,\r\n ListColumnComponent,\r\n ListDetailsSectionComponent,\r\n ListTileComponent,\r\n ListViewComponent,\r\n ListViewEmptyStateComponent,\r\n LoggedOutComponent,\r\n ModelViewLayoutComponent,\r\n NavLinksListComponent,\r\n NotificationsIndicatorComponent,\r\n PageNotFoundComponent,\r\n PagerComponent,\r\n ShellFooterComponent,\r\n ShellHeaderComponent,\r\n ShellLayoutComponent,\r\n ShellSidebarComponent,\r\n ShellSidebarHeaderComponent,\r\n ShellSidebarLayoutComponent,\r\n ShellStackedLayoutComponent,\r\n SidePaneComponent,\r\n SideViewLayoutComponent,\r\n SkeletonLoaderComponent,\r\n ToasterComponent,\r\n ToasterContainerComponent,\r\n ToggleComponent,\r\n UnauthorizedComponent,\r\n UserProfileMenuComponent,\r\n ViewLayoutComponent,\r\n ToggleButtonComponent,\r\n ToggleButtonsListComponent,\r\n ContentTileComponent,\r\n ContentTileItemComponent,\r\n ContentTileHeaderComponent,\r\n StatsGridComponent,\r\n ProgressBarComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n RouterModule,\r\n IndiceAuthModule,\r\n FormsModule\r\n ],\r\n exports: [\r\n AddressPipe,\r\n AdvancedSearchComponent,\r\n AuthCallbackComponent,\r\n AuthRenewComponent,\r\n AvatarInitialsComponent,\r\n BreadcrumbComponent,\r\n ClickOutsideDirective,\r\n CollapsiblePanelComponent,\r\n ComboboxComponent,\r\n DatepickerComponent,\r\n DropDownMenuComponent,\r\n DurationFormatPipe,\r\n ShortNumberPipe,\r\n ErrorComponent,\r\n FormLayoutComponent,\r\n KpiTileComponent,\r\n LibStepComponent,\r\n LibStepInfoDirective,\r\n LibStepLabelDirective,\r\n LibStepperComponent,\r\n LibTabComponent,\r\n LibTabGroupComponent,\r\n LibTabLabelDirective,\r\n ListColumnComponent,\r\n ListDetailsSectionComponent,\r\n ListTileComponent,\r\n ListViewComponent,\r\n ListViewEmptyStateComponent,\r\n LoggedOutComponent,\r\n ModelViewLayoutComponent,\r\n PageNotFoundComponent,\r\n PagerComponent,\r\n ShellFooterComponent,\r\n ShellHeaderComponent,\r\n ShellLayoutComponent,\r\n SidePaneComponent,\r\n SideViewLayoutComponent,\r\n SkeletonLoaderComponent,\r\n ToasterComponent,\r\n ToasterContainerComponent,\r\n ToggleComponent,\r\n UnauthorizedComponent,\r\n ViewLayoutComponent,\r\n ToggleButtonComponent,\r\n ToggleButtonsListComponent,\r\n ContentTileComponent,\r\n ContentTileItemComponent,\r\n ContentTileHeaderComponent,\r\n StatsGridComponent,\r\n ProgressBarComponent\r\n ]\r\n})\r\nexport class IndiceComponentsModule {\r\n static forRoot(): ModuleWithProviders<IndiceComponentsModule> {\r\n return {\r\n ngModule: IndiceComponentsModule,\r\n providers: [\r\n BreadcrumbService,\r\n ToasterService,\r\n UserSettingsService\r\n ]\r\n };\r\n }\r\n}\r\n","// Public API Surface of @indice/ng-components\r\n// directives\r\nexport * from './lib/directives/click-outside.directive';\r\n\r\n// controls\r\nexport * from './lib/controls/drop-down-menu/drop-down-menu.component';\r\nexport * from './lib/controls/pager/pager.component';\r\nexport * from './lib/controls/breadcrumb/breadcrumb.component';\r\nexport * from './lib/controls/breadcrumb/breadcrumb-item';\r\nexport * from './lib/controls/list-view/list-view.component';\r\nexport * from './lib/controls/list-view/list-column.component';\r\nexport * from './lib/controls/list-view/list-tile.component';\r\nexport * from './lib/controls/list-view/list-details-section.component';\r\nexport * from './lib/controls/list-view/list-view-empty-state.component';\r\nexport * from './lib/controls/skeleton-loader/skeleton-loader.component';\r\nexport * from './lib/controls/collapsible-panel/collapsible-panel.component';\r\nexport * from './lib/controls/kpi-tile/kpi-tile.component';\r\nexport * from './lib/controls/date-picker/date-picker.component';\r\nexport * from './lib/controls/toaster/toaster-container.component';\r\nexport * from './lib/controls/toaster/toaster.component';\r\nexport * from './lib/controls/avatar-initials/avatar-initials.component';\r\nexport * from './lib/controls/toggle/toggle.component';\r\nexport * from './lib/controls/side-pane/side-pane.component';\r\nexport * from './lib/controls/nav-links-list/nav-links-list.component';\r\nexport * from './lib/controls/combobox/combobox.component';\r\nexport * from './lib/controls/tabs/lib-tab.component';\r\nexport * from './lib/controls/tabs/lib-tab-group.component';\r\nexport * from './lib/controls/tabs/lib-tab-label.directive';\r\nexport * from './lib/controls/stepper/lib-stepper.component';\r\nexport * from './lib/controls/stepper/lib-step.component';\r\nexport * from './lib/controls/stepper/lib-step-label.directive';\r\nexport * from './lib/controls/stepper/lib-step-info.directive';\r\nexport * from './lib/controls/stepper/types/stepper-type';\r\nexport * from './lib/controls/toggle-button/toggle-button.component';\r\nexport * from './lib/controls/toggle-buttons-list/toggle-buttons-list.component';\r\nexport * from './lib/controls/content-tile/content-tile-header/content-tile-header.component';\r\nexport * from './lib/controls/content-tile/content-tile-item/content-tile-item.component';\r\nexport * from './lib/controls/content-tile/content-tile.component';\r\nexport * from './lib/controls/stats-grid/stats-grid.component';\r\nexport * from './lib/controls/progress-bar/progress-bar.component';\r\nexport * from './lib/controls/advanced-search/advanced-search.component';\r\nexport * from './lib/controls/advanced-search/models';\r\n\r\n// shell layout\r\nexport * from './lib/layouts/shell/shell-layout/shell-layout.component';\r\nexport * from './lib/layouts/shell/shell-header/shell-header.component';\r\nexport * from './lib/layouts/shell/shell-footer/shell-footer.component';\r\nexport * from './lib/layouts/shell/shell-sidebar/shell-sidebar.component';\r\nexport * from './lib/layouts/shell/shell-sidebar-header/shell-sidebar-header.component';\r\n\r\n// view layouts\r\nexport * from './lib/layouts/views/view-layout/view-layout.component';\r\nexport * from './lib/layouts/views/model-view-layout/model-view-layout.component';\r\nexport * from './lib/layouts/views/side-view-layout/side-view-layout.component';\r\nexport * from './lib/layouts/views/form-layout/form-layout.component';\r\n\r\n// pages\r\nexport * from './lib/pages/auth/auth-callback/auth-callback.component';\r\nexport * from './lib/pages/auth/auth-renew/auth-renew.component';\r\nexport * from './lib/pages/auth/logged-out/logged-out.component';\r\nexport * from './lib/pages/http-status/error/error.component';\r\nexport * from './lib/pages/http-status/page-not-found/page-not-found.component';\r\nexport * from './lib/pages/http-status/unauthorized/unauthorized.component';\r\n\r\n\r\n// pipes\r\nexport * from './lib/pipes/address.pipe';\r\nexport * from './lib/pipes/duration-format.pipe';\r\nexport * from './lib/pipes/short-number.pipe';\r\n\r\n// common stuff (tokens, types, helper classes)\r\nexport * from './lib/tokens';\r\nexport * from './lib/types';\r\nexport * from './lib/icons';\r\nexport * from './lib/helpers/base-list.component';\r\n\r\n// services\r\nexport * from './lib/services/component-loader/component-loader.factory';\r\nexport * from './lib/services/modal-service/modal-service';\r\nexport { ModalOptions, MODAL_CONFIG_DEFAULT_OVERRIDE, CloseInterceptorFn } from './lib/services/modal-service/modal-options.class';\r\nexport * from './lib/services/modal-service/modal.class';\r\nexport * from './lib/services/toaster.service';\r\nexport * from './lib/services/breadcrumb.service';\r\nexport * from './lib/services/user-settings.service';\r\n\r\nexport * from './lib/ng-components.module';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2.ClickOutsideDirective","i1","i2","i3.DropDownMenuComponent","i1.BreadcrumbService","i3","i3.DatepickerComponent","i4.DropDownMenuComponent","i2.AdvancedSearchComponent","i3.ListViewEmptyStateComponent","i4.PagerComponent","i5.SkeletonLoaderComponent","i1.ToasterService","i3.ToasterComponent","i3.ClickOutsideDirective","i2.DropDownMenuComponent","i1.NavLinksListComponent","i3.NavLinksListComponent","i4.LanguageSelectionComponent","i5.NavLinksListComponent","i6.NotificationsIndicatorComponent","i7.UserProfileMenuComponent","i3.LanguageSelectionComponent","i4.NotificationsIndicatorComponent","i5.UserProfileMenuComponent","i1.UserSettingsService","i4.BreadcrumbComponent","i5.ShellSidebarComponent","i6.ShellSidebarHeaderComponent","i3.DynamicComponentHostDirective","i4.ShellFooterComponent","i5.ShellHeaderComponent","i4.ShellSidebarLayoutComponent","i5.ShellStackedLayoutComponent","i6.SidePaneComponent","i7.ToasterContainerComponent","i4.ViewLayoutComponent","i3.SidePaneComponent","i2.ViewLayoutComponent","i1.ViewLayoutComponent","i1.ModalOptions","i1.ComponentLoaderFactory"],"mappings":";;;;;;;;;;;;;;AAAA;AACA;AACA;AACA;AAiBA;MAEa,qBAAqB,CAAA;AAoBhC,IAAA,WAAA;;IAEU,GAAe;;AAEf,IAAA,OAAe,EACM,UAAe,EAAA;QAHpC,IAAG,CAAA,GAAA,GAAH,GAAG,CAAY;QAEf,IAAO,CAAA,OAAA,GAAP,OAAO,CAAQ;QACM,IAAU,CAAA,UAAA,GAAV,UAAU,CAAK;QAvBrC,IAAmB,CAAA,mBAAA,GAAG,IAAI,CAAC;QAE3B,IAAoB,CAAA,oBAAA,GAAG,KAAK,CAAC;QAC7B,IAAqB,CAAA,qBAAA,GAAG,KAAK,CAAC;QAC9B,IAAU,CAAA,UAAA,GAAG,KAAK,CAAC;QAEnB,IAAO,CAAA,OAAA,GAAG,EAAE,CAAC;QACb,IAAkB,CAAA,kBAAA,GAAG,KAAK,CAAC;QAE3B,IAAkB,CAAA,kBAAA,GAAG,EAAE,CAAC;AAEvB,QAAA,IAAA,CAAA,YAAY,GAAwB,IAAI,YAAY,EAAS,CAAC;;QAGhE,IAAc,CAAA,cAAA,GAAuB,EAAE,CAAC;;AAExC,QAAA,IAAA,CAAA,OAAO,GAAkB,CAAC,OAAO,CAAC,CAAC;QAQzC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KACpD;IAED,QAAQ,GAAA;QACN,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;YAAE,OAAO;SAAE;QAEpD,IAAI,CAAC,KAAK,EAAE,CAAC;KACd;IAED,WAAW,GAAA;QACT,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;YAAE,OAAO;SAAE;QAEpD,IAAI,CAAC,2BAA2B,EAAE,CAAC;QACnC,IAAI,CAAC,mCAAmC,EAAE,CAAC;QAC3C,IAAI,CAAC,yBAAyB,EAAE,CAAC;KAClC;AAED,IAAA,WAAW,CAAC,OAAsB,EAAA;QAChC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;YAAE,OAAO;SAAE;;AAGpD,QAAA,IAAI,OAAO,CAAC,sBAAsB,CAAC,IAAI,OAAO,CAAC,SAAS,CAAC,IAAI,OAAO,CAAC,YAAY,CAAC,EAAE;YAClF,IAAI,CAAC,KAAK,EAAE,CAAC;SACd;KACF;IAEO,KAAK,GAAA;AACX,QAAA,IAAI,IAAI,CAAC,kBAAkB,KAAK,EAAE,EAAE;YAClC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;SACtE;QAED,IAAI,CAAC,aAAa,EAAE,CAAC;AAErB,QAAA,IAAI,IAAI,CAAC,oBAAoB,EAAE;YAC7B,IAAI,CAAC,iCAAiC,EAAE,CAAC;SAC1C;aAAM;YACL,IAAI,CAAC,gBAAgB,EAAE,CAAC;SACzB;AAED,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE;YACnB,IAAI,CAAC,uBAAuB,EAAE,CAAC;SAChC;KACF;IAEO,gBAAgB,GAAA;AACtB,QAAA,IAAI,IAAI,CAAC,qBAAqB,EAAE;YAC9B,UAAU,CAAC,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;SACvD;aAAM;YACL,IAAI,CAAC,yBAAyB,EAAE,CAAC;SAClC;KACF;IAEO,aAAa,GAAA;AACnB,QAAA,IAAI,IAAI,CAAC,OAAO,EAAE;AAChB,YAAA,IAAI;AACF,gBAAA,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAuB,CAAC;gBACxF,IAAI,KAAK,EAAE;AACT,oBAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;iBAC7B;aACF;YAAC,OAAO,GAAG,EAAE;AACZ,gBAAA,OAAO,CAAC,KAAK,CAAC,wDAAwD,EAAE,GAAG,CAAC,CAAC;aAC9E;SACF;KACF;AAEO,IAAA,YAAY,CAAC,EAAS,EAAA;AAC5B,QAAA,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE;YAAE,OAAO;SAAE;AAE1C,QAAA,IAAI,IAAI,CAAC,kBAAkB,EAAE;YAC3B,IAAI,CAAC,aAAa,EAAE,CAAC;SACtB;QAED,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE;AAClF,YAAA,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;AAEf,YAAA,IAAI,IAAI,CAAC,oBAAoB,EAAE;gBAC7B,IAAI,CAAC,2BAA2B,EAAE,CAAC;aACpC;SACF;KACF;AAED;;;AAGG;AACK,IAAA,aAAa,CAAC,EAAS,EAAA;QAC7B,UAAU,CAAC,MAAK;AACd,YAAA,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE;AACpB,gBAAA,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;aAChB;AACH,SAAC,CAAC,CAAC;KACJ;AAEO,IAAA,KAAK,CAAC,EAAS,EAAA;AACrB,QAAA,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE;YAAE,OAAO;SAAE;AAE1C,QAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;KACpD;AAEO,IAAA,cAAc,CAAC,MAAW,EAAA;;AAEhC,QAAA,KAAK,IAAI,YAAY,IAAI,IAAI,CAAC,cAAc,EAAE;AAC5C,YAAA,IAAI,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;AACjC,gBAAA,OAAO,IAAI,CAAC;aACb;SACF;AAED,QAAA,OAAO,KAAK,CAAC;KACd;IAEO,yBAAyB,GAAA;AAC/B,QAAA,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,MAAK;YAClC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,QAAQ,CAAC,gBAAgB,CAAC,CAAC,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;AAC7E,SAAC,CAAC,CAAC;KACJ;IAEO,2BAA2B,GAAA;AACjC,QAAA,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,MAAK;YAClC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,QAAQ,CAAC,mBAAmB,CAAC,CAAC,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;AAChF,SAAC,CAAC,CAAC;KACJ;IAEO,iCAAiC,GAAA;AACvC,QAAA,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,MAAK;YAClC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;AAC/F,SAAC,CAAC,CAAC;KACJ;IAEO,mCAAmC,GAAA;AACzC,QAAA,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,MAAK;YAClC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,mBAAmB,CAAC,CAAC,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;AAClG,SAAC,CAAC,CAAC;KACJ;IAEO,uBAAuB,GAAA;AAC7B,QAAA,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,MAAK;YAClC,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;AACtD,SAAC,CAAC,CAAC;KACJ;IAEO,yBAAyB,GAAA;AAC/B,QAAA,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,MAAK;YAClC,MAAM,CAAC,mBAAmB,CAAC,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;AACzD,SAAC,CAAC,CAAC;KACJ;AA5KU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,qBAAqB,kEAyBtB,WAAW,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAzBV,qBAAqB,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,qBAAA,EAAA,uBAAA,EAAA,UAAA,EAAA,YAAA,EAAA,OAAA,EAAA,SAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,EAAA,OAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAArB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBADjC,SAAS;mBAAC,EAAE,QAAQ,EAAE,gBAAgB,EAAE,CAAA;;0BA0BpC,MAAM;2BAAC,WAAW,CAAA;yCAvBZ,mBAAmB,EAAA,CAAA;sBAA3B,KAAK;gBAEG,oBAAoB,EAAA,CAAA;sBAA5B,KAAK;gBACG,qBAAqB,EAAA,CAAA;sBAA7B,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBAEG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,kBAAkB,EAAA,CAAA;sBAA1B,KAAK;gBAEG,kBAAkB,EAAA,CAAA;sBAA1B,KAAK;gBAEI,YAAY,EAAA,CAAA;sBAArB,MAAM;;;MC3BI,qBAAqB,CAAA;AAShC,IAAA,IAAW,cAAc,GAAA;QACvB,OAAO,IAAI,CAAC,eAAe,CAAC;KAC7B;IACD,IAAW,cAAc,CAAC,MAAyB,EAAA;AACjD,QAAA,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC;AAC9B,QAAA,IAAI,CAAC,aAAa,GAAG,MAAM,GAAG,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC;AAClD,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;KACvB;AAMD,IAAA,IAAW,QAAQ,GAAA;QACjB,OAAO,IAAI,CAAC,SAAS,CAAC;KACvB;IACD,IAAW,QAAQ,CAAC,KAAc,EAAA;AAChC,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;KACxB;AACD,IAAA,WAAA,GAAA;QA3BS,IAAO,CAAA,OAAA,GAA6B,EAAE,CAAC;;QAE7B,IAAa,CAAA,aAAA,GAA2B,SAAS,CAAC;QAC5D,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;QACjB,IAAW,CAAA,WAAA,GAAW,sBAAsB,CAAC;QACjC,IAAS,CAAA,SAAA,GAAG,IAAI,CAAC;QAE9B,IAAe,CAAA,eAAA,GAAsB,IAAI,CAAC;AAUxC,QAAA,IAAA,CAAA,cAAc,GAAsB,IAAI,YAAY,EAAO,CAAC;AAC5D,QAAA,IAAA,CAAA,eAAe,GAAsB,IAAI,YAAY,EAAO,CAAC;QAE/D,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;KAOV;AAEhB,IAAA,WAAW,CAAC,OAAsB,EAAA;QAChC,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,aAAa,KAAK,IAAI,IAAI,IAAI,CAAC,aAAa,KAAK,SAAS,EAAE;YAC9G,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;SACtF;KACF;AAED,IAAA,QAAQ,MAAW;AAEZ,IAAA,UAAU,CAAC,MAAkB,EAAA;AAClC,QAAA,OAAO,MAAM,IAAI,IAAI,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,IAAI,MAAM,CAAC,KAAK,KAAK,IAAI,CAAC,aAAa,CAAC;KAC5F;AAEM,IAAA,cAAc,CAAC,MAAW,EAAA;AAC/B,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;KACvB;AAEM,IAAA,YAAY,CAAC,MAAkB,EAAA;AACpC,QAAA,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC;QAC7B,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACvC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;KACzC;8GAlDU,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,QAAA,EAAA,IAAA,EAAA,qBAAqB,0UCRlC,ioFA8DA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,qBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,qBAAA,EAAA,sBAAA,EAAA,uBAAA,EAAA,YAAA,EAAA,SAAA,EAAA,oBAAA,EAAA,oBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FDtDa,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBALjC,SAAS;+BAEE,oBAAoB,EAAA,QAAA,EAAA,ioFAAA,EAAA,CAAA;wDAIrB,OAAO,EAAA,CAAA;sBAAf,KAAK;gBAEa,aAAa,EAAA,CAAA;sBAA/B,KAAK;uBAAC,UAAU,CAAA;gBACR,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACe,SAAS,EAAA,CAAA;sBAA7B,KAAK;uBAAC,YAAY,CAAA;gBAYT,cAAc,EAAA,CAAA;sBAAvB,MAAM;gBACG,eAAe,EAAA,CAAA;sBAAxB,MAAM;;;ME3BI,KAAK,CAAA;;aAEF,IAAS,CAAA,SAAA,GAAG,6BAA6B,CAAC,EAAA;aAC1C,IAAS,CAAA,SAAA,GAAG,0BAA0B,CAAC,EAAA;aACvC,IAAY,CAAA,YAAA,GAAG,2BAA2B,CAAC,EAAA;aAC3C,IAAW,CAAA,WAAA,GAAG,iCAAiC,CAAC,EAAA;aAChD,IAAM,CAAA,MAAA,GAAG,2BAA2B,CAAC,EAAA;aAErC,IAAW,CAAA,WAAA,GAAG,uBAAuB,CAAC,EAAA;aACtC,IAAO,CAAA,OAAA,GAAG,0BAA0B,CAAC,EAAA;aACrC,IAAM,CAAA,MAAA,GAAG,yBAAyB,CAAC,EAAA;aACnC,IAAG,CAAA,GAAA,GAAG,sBAAsB,CAAC,EAAA;aAC7B,IAAM,CAAA,MAAA,GAAG,yBAAyB,CAAC,EAAA;aACnC,IAAS,CAAA,SAAA,GAAG,0BAA0B,CAAC,EAAA;aACvC,IAAM,CAAA,MAAA,GAAG,yBAAyB,CAAC,EAAA;aACnC,IAAM,CAAA,MAAA,GAAG,gCAAgC,CAAC,EAAA;aAC1C,IAAM,CAAA,MAAA,GAAG,4BAA4B,CAAC,EAAA;aAEtC,IAAS,CAAA,SAAA,GAAG,iCAAiC,CAAC,EAAA;aAC9C,IAAS,CAAA,SAAA,GAAG,wBAAwB,CAAC,EAAA;aACrC,IAAO,CAAA,OAAA,GAAG,yBAAyB,CAAC,EAAA;aACpC,IAAS,CAAA,SAAA,GAAG,4BAA4B,CAAC,EAAA;aAEzC,IAAS,CAAA,SAAA,GAAG,uCAAuC,CAAC,EAAA;aAEpD,IAAU,CAAA,UAAA,GAAG,yBAAyB,CAAC,EAAA;aAEvC,IAAK,CAAA,KAAA,GAAG,wBAAwB,CAAC,EAAA;aACjC,IAAW,CAAA,WAAA,GAAG,8BAA8B,CAAC,EAAA;aAC7C,IAAQ,CAAA,QAAA,GAAG,+BAA+B,CAAC,EAAA;aAE3C,IAAM,CAAA,MAAA,GAAG,8BAA8B,CAAC,EAAA;aACxC,IAAQ,CAAA,QAAA,GAAG,4BAA4B,CAAC,EAAA;aAExC,IAAO,CAAA,OAAA,GAAG,4BAA4B,CAAC,EAAA;aACvC,IAAQ,CAAA,QAAA,GAAG,6BAA6B,CAAC,EAAA;aAEzC,IAAO,CAAA,OAAA,GAAG,mCAAmC,CAAC,EAAA;aAE9C,IAAQ,CAAA,QAAA,GAAG,2BAA2B,CAAC,EAAA;aACvC,IAAc,CAAA,cAAA,GAAG,+BAA+B,CAAC,EAAA;aAEjD,IAAQ,CAAA,QAAA,GAAG,+BAA+B,CAAC,EAAA;aAC3C,IAAU,CAAA,UAAA,GAAG,+BAA+B,CAAC,EAAA;;;MCZhD,OAAO,CAAA;AAClB,IAAA,WAAA,CAAY,IAAY,EAAE,IAAY,EAAE,QAAiB,KAAK,EAAE,QAAoB,GAAA,KAAK,EAAE,IAAa,EAAE,IAAU,EAAE,WAAoB,EAAA;QAcnI,IAAI,CAAA,IAAA,GAAG,QAAQ,CAAC;AAbrB,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;AACjB,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;AACjB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;AACnB,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;AACzB,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;AACjB,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;AACjB,QAAA,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;KAChC;AASF,CAAA;AAEK,MAAO,eAAgB,SAAQ,OAAO,CAAA;AAC1C,IAAA,WAAA,CAAY,IAAY,EAAE,IAAY,EAAE,YAAsB,EAAE,IAAa,EAAA;AAC3E,QAAA,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAC;QAEzD,IAAI,CAAA,IAAA,GAAG,UAAU,CAAC;KADxB;AAEF,CAAA;AAEK,MAAO,eAAgB,SAAQ,OAAO,CAAA;AAC1C,IAAA,WAAA,CAAY,IAAY,EAAE,IAAY,EAAE,IAAa,EAAA;QACnD,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QAE/B,IAAI,CAAA,IAAA,GAAG,UAAU,CAAC;KADxB;AAEF,CAAA;AAEK,MAAO,mBAAoB,SAAQ,OAAO,CAAA;AAC9C,IAAA,WAAA,CAAY,IAAY,EAAE,IAAY,EAAS,MAAe,EAAS,YAAmB,EAAA;QACxF,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;QADG,IAAM,CAAA,MAAA,GAAN,MAAM,CAAS;QAAS,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAO;KAEzF;AACF,CAAA;MAEY,UAAU,CAAA;IAQrB,WAAY,CAAA,IAAY,EAAE,GAAkB,EAAE,KAAU,EAAE,IAAY,EAAE,OAAsB,EAAE,IAAa,EAAA;AAC3G,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;AACjB,QAAA,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;AACf,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;AACnB,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;AACjB,QAAA,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;AACvB,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;KAClB;AACF,CAAA;MAEY,YAAY,CAAA;aACT,IAAK,CAAA,KAAA,GAAG,OAAO,CAAC,EAAA;aAChB,IAAK,CAAA,KAAA,GAAG,OAAO,CAAC,EAAA;aAChB,IAAG,CAAA,GAAA,GAAG,KAAK,CAAC,EAAA;aACZ,IAAO,CAAA,OAAA,GAAG,SAAS,CAAC,EAAA;;AAG9B,MAAO,gBAAiB,SAAQ,UAAU,CAAA;IAG9C,WAAY,CAAA,IAAY,EAAE,IAAY,EAAE,MAAqB,EAAE,OAAsB,EAAE,IAAa,EAAA;AAClG,QAAA,KAAK,CAAC,aAAa,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;QAHjD,IAAM,CAAA,MAAA,GAAkB,IAAI,CAAC;QAC7B,IAAI,CAAA,IAAA,GAAkB,IAAI,CAAC;AAGhC,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;AACrB,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;KAClB;AACF,CAAA;AAGK,MAAO,gBAAiB,SAAQ,UAAU,CAAA;AAC9C,IAAA,WAAA,CAAY,IAAY,EAAE,IAAY,EAAE,OAAsB,EAAA;QAC5D,KAAK,CAAC,aAAa,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;KACjD;AACF,CAAA;MAOY,cAAc,CAAA;AAA3B,IAAA,WAAA,GAAA;QACS,IAAG,CAAA,GAAA,GAAkB,IAAI,CAAC;QAC1B,IAAI,CAAA,IAAA,GAAkB,IAAI,CAAC;QAC3B,IAAI,CAAA,IAAA,GAAkB,IAAI,CAAC;KACnC;AAAA,CAAA;MAEY,UAAU,CAAA;IACrB,WAAY,CAAA,IAAY,EAAE,KAAU,EAAE,WAAoB,EAAE,IAAU,EAAE,IAAa,EAAA;AACnF,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;AACjB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;AACnB,QAAA,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;AAC/B,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;AACjB,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;KAClB;AAMF,CAAA;IAEW,cAIX;AAJD,CAAA,UAAY,aAAa,EAAA;AACvB,IAAA,aAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,aAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,aAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACf,CAAC,EAJW,aAAa,KAAb,aAAa,GAIxB,EAAA,CAAA,CAAA,CAAA;IA2BW,gBAGX;AAHD,CAAA,UAAY,eAAe,EAAA;AACzB,IAAA,eAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,IAAA,eAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACrB,CAAC,EAHW,eAAe,KAAf,eAAe,GAG1B,EAAA,CAAA,CAAA,CAAA;MAEY,kBAAkB,CAAA;AAA/B,IAAA,WAAA,GAAA;QACE,IAAO,CAAA,OAAA,GAAG,gEAAgE,CAAC;QAC3E,IAAU,CAAA,UAAA,GAAG,oBAAoB,CAAC;QAClC,IAAU,CAAA,UAAA,GAAG,KAAK,CAAC;QACnB,IAAK,CAAA,KAAA,GAAG,KAAK,CAAC;AACd,QAAA,IAAA,CAAA,MAAM,GAAG,eAAe,CAAC,OAAO,CAAC;QACjC,IAAkB,CAAA,kBAAA,GAAG,KAAK,CAAC;QAC3B,IAAU,CAAA,UAAA,GAAG,IAAI,CAAC;QAClB,IAAU,CAAA,UAAA,GAAG,IAAI,CAAC;QAClB,IAAoB,CAAA,oBAAA,GAAG,KAAK,CAAC;KAC9B;AAAA,CAAA;IAEW,YAMX;AAND,CAAA,UAAY,WAAW,EAAA;AACrB,IAAA,WAAA,CAAA,WAAA,CAAA,IAAA,CAAA,GAAA,CAAA,CAAA,GAAA,IAAE,CAAA;AACF,IAAA,WAAA,CAAA,WAAA,CAAA,IAAA,CAAA,GAAA,CAAA,CAAA,GAAA,IAAE,CAAA;AACF,IAAA,WAAA,CAAA,WAAA,CAAA,IAAA,CAAA,GAAA,CAAA,CAAA,GAAA,IAAE,CAAA;AACF,IAAA,WAAA,CAAA,WAAA,CAAA,IAAA,CAAA,GAAA,CAAA,CAAA,GAAA,IAAE,CAAA;AACF,IAAA,WAAA,CAAA,WAAA,CAAA,IAAA,CAAA,GAAA,CAAA,CAAA,GAAA,IAAE,CAAA;AACJ,CAAC,EANW,WAAW,KAAX,WAAW,GAMtB,EAAA,CAAA,CAAA,CAAA;IAQW,UAKX;AALD,CAAA,UAAY,SAAS,EAAA;AACnB,IAAA,SAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,SAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,IAAA,SAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,SAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACrB,CAAC,EALW,SAAS,KAAT,SAAS,GAKpB,EAAA,CAAA,CAAA,CAAA;MAEY,UAAU,GAAG,EAAE,KAAK,EAAE,gBAAgB,GAAY;IASnD,aAKX;AALD,CAAA,UAAY,YAAY,EAAA;AACtB,IAAA,YAAA,CAAA,SAAA,CAAA,GAAA,EAAY,CAAA;AACZ,IAAA,YAAA,CAAA,SAAA,CAAA,GAAA,KAAe,CAAA;AACf,IAAA,YAAA,CAAA,UAAA,CAAA,GAAA,KAAgB,CAAA;AAChB,IAAA,YAAA,CAAA,SAAA,CAAA,GAAA,KAAe,CAAA;AACjB,CAAC,EALW,YAAY,KAAZ,YAAY,GAKvB,EAAA,CAAA,CAAA,CAAA;IAEW,oBAKX;AALD,CAAA,UAAY,mBAAmB,EAAA;AAC7B,IAAA,mBAAA,CAAA,SAAA,CAAA,GAAA,EAAY,CAAA;AACZ,IAAA,mBAAA,CAAA,MAAA,CAAA,GAAA,YAAmB,CAAA;AACnB,IAAA,mBAAA,CAAA,OAAA,CAAA,GAAA,EAAU,CAAA;AACV,IAAA,mBAAA,CAAA,MAAA,CAAA,GAAA,aAAoB,CAAA;AACtB,CAAC,EALW,mBAAmB,KAAnB,mBAAmB,GAK9B,EAAA,CAAA,CAAA;;MC5NY,cAAc,CAAA;AAiCzB,IAAA,WAAA,CAAoB,MAAc,EAAA;QAAd,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;;QA/BzB,IAAI,CAAA,IAAA,GAAG,KAAK,CAAC;;QAEb,IAAK,CAAA,KAAA,GAAkB,IAAI,CAAC;QAC5B,IAAI,CAAA,IAAA,GAAG,CAAC,CAAC;;QAEE,IAAQ,CAAA,QAAA,GAAG,EAAE,CAAC;;AAEN,QAAA,IAAA,CAAA,eAAe,GAAiB;AAC1D,YAAA,IAAI,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC;AACxB,YAAA,IAAI,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC;AACxB,YAAA,IAAI,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC;AACxB,YAAA,IAAI,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC;AACxB,YAAA,IAAI,UAAU,CAAC,KAAK,EAAE,GAAG,CAAC;SAC3B,CAAC;QACK,IAAK,CAAA,KAAA,GAAiB,EAAE,CAAC;AACtB,QAAA,IAAA,CAAA,WAAW,GAAyB,IAAI,YAAY,EAAU,CAAC;AAC/D,QAAA,IAAA,CAAA,eAAe,GAAyB,IAAI,YAAY,EAAU,CAAC;QACtE,IAAe,CAAA,eAAA,GAAG,KAAK,CAAC;QACxB,IAAW,CAAA,WAAA,GAAG,KAAK,CAAC;;;QAIJ,IAAW,CAAA,WAAA,GAAiB,EAAE,CAAC;;QAEvC,IAAI,CAAA,IAAA,GAAkB,IAAI,CAAC;;QAEvB,IAAO,CAAA,OAAA,GAAkB,MAAM,CAAC;AACzC,QAAA,IAAA,CAAA,WAAW,GAAyB,IAAI,YAAY,EAAU,CAAC;AAC/D,QAAA,IAAA,CAAA,cAAc,GAAyB,IAAI,YAAY,EAAU,CAAC;AACrE,QAAA,IAAA,CAAA,WAAW,GAAG,KAAK,CAAC,QAAQ,CAAC;KAEG;AAEvC,IAAA,WAAW,CAAC,OAAsB,EAAA;QAChC,IAAI,CAAC,SAAS,EAAE,CAAC;KAClB;IAED,QAAQ,GAAA;KACP;IAEO,SAAS,GAAA;AACf,QAAA,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAChB,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE;YAChC,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC;AAC7C,YAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE,EAAE;AAClC,gBAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;aACpD;SACF;QACD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;AACrC,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;KAClD;IAEM,QAAQ,GAAA;AACb,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;AAC3B,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;KACrB;IAEM,YAAY,GAAA;AACjB,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;AAC/B,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;KACzB;AAEM,IAAA,QAAQ,CAAC,IAAY,EAAA;AAC1B,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;AACjB,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5B,IAAI,CAAC,SAAS,EAAE,CAAC;KAClB;AAEM,IAAA,qBAAqB,CAAC,QAAgB,EAAA;AAC3C,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACpC,IAAI,CAAC,SAAS,EAAE,CAAC;KAClB;AAEM,IAAA,iBAAiB,CAAC,IAAY,EAAA;AACnC,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5B,IAAI,CAAC,SAAS,EAAE,CAAC;KAClB;AAEM,IAAA,iBAAiB,CAAC,IAAY,EAAA;AACnC,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAC7B;IAEM,aAAa,GAAA;QAClB,IAAI,OAAO,GAAG,MAAM,CAAC;AACrB,QAAA,IAAI,IAAI,CAAC,OAAO,KAAK,MAAM,EAAE;YAC3B,OAAO,GAAG,KAAK,CAAC;AAChB,YAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC;SAClC;aAAM;YACL,OAAO,GAAG,MAAM,CAAC;AACjB,YAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,QAAQ,CAAC;SACnC;AACD,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;KACnC;8GA9FU,cAAc,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,IAAA,CAAA,MAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAd,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,cAAc,ucCT3B,izEAqCA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,qBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,UAAA,EAAA,UAAA,EAAA,aAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,gBAAA,EAAA,iBAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FD5Ba,cAAc,EAAA,UAAA,EAAA,CAAA;kBAJ1B,SAAS;+BACE,WAAW,EAAA,QAAA,EAAA,izEAAA,EAAA,CAAA;6EAKZ,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBAEG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBAEc,QAAQ,EAAA,CAAA;sBAA3B,KAAK;uBAAC,WAAW,CAAA;gBAEU,eAAe,EAAA,CAAA;sBAA1C,KAAK;uBAAC,mBAAmB,CAAA;gBAQhB,WAAW,EAAA,CAAA;sBAApB,MAAM;gBACG,eAAe,EAAA,CAAA;sBAAxB,MAAM;gBAMgB,WAAW,EAAA,CAAA;sBAAjC,KAAK;uBAAC,cAAc,CAAA;gBAEN,IAAI,EAAA,CAAA;sBAAlB,KAAK;uBAAC,MAAM,CAAA;gBAEM,OAAO,EAAA,CAAA;sBAAzB,KAAK;uBAAC,UAAU,CAAA;gBACP,WAAW,EAAA,CAAA;sBAApB,MAAM;gBACG,cAAc,EAAA,CAAA;sBAAvB,MAAM;;;MEvCI,cAAc,CAAA;IACvB,WAAmB,CAAA,KAAc,EAAS,GAAY,EAAA;QAAnC,IAAK,CAAA,KAAA,GAAL,KAAK,CAAS;QAAS,IAAG,CAAA,GAAA,GAAH,GAAG,CAAS;AAClD,QAAA,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;KAClB;AAID,IAAA,IAAW,WAAW,GAAA;AAClB,QAAA,IAAI,IAAI,CAAC,GAAG,EAAE;AACV,YAAA,OAAO,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;SACrD;AACD,QAAA,OAAO,SAAS,CAAC;KACpB;AACJ;;MCPY,aAAa,GAAG,IAAI,cAAc,CAAuB,eAAe,EAAE;MAC1E,SAAS,GAAG,IAAI,cAAc,CAAY,WAAW,EAAE;MACvD,iBAAiB,GAAG,IAAI,cAAc,CAAoB,mBAAmB,EAAE;MAC/E,mBAAmB,GAAG,IAAI,cAAc,CAAsB,oBAAoB,EAAE;MACpF,oBAAoB,GAAG,IAAI,cAAc,CAAuB,qBAAqB,EAAE;MACvF,YAAY,GAAG,IAAI,cAAc,CAAe,cAAc;;MCJ9D,gBAAgB,CAAA;AAC3B,IAAA,WAAA,GAAA,GAAiB;AAIjB,IAAA,IAAW,gBAAgB,GAAA;QACzB,MAAM,QAAQ,GAAa,EAAE,CAAC;QAC9B,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC;AACjE,QAAA,KAAK,MAAM,QAAQ,IAAI,MAAM,EAAE;YAC7B,IAAI,QAAQ,EAAE;AACZ,gBAAA,MAAM,gBAAgB,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;AAC1C,gBAAA,gBAAgB,CAAC,OAAO,CAAC,CAAC,OAAe,KAAI;AAC3C,oBAAA,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACzB,iBAAC,CAAC,CAAC;aACJ;iBAAM;AACL,gBAAA,MAAM,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,IAAG;AAC5C,oBAAA,OAAO,CAAC,OAAO,CAAC,CAAC,IAAG;AAClB,wBAAA,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACnB,qBAAC,CAAC,CAAC;AACL,iBAAC,CAAC,CAAC;aACJ;SACF;AACD,QAAA,OAAO,QAAQ,CAAC;KACjB;AAEM,IAAA,2BAA2B,CAAC,cAAyC,EAAA;AAC1E,QAAA,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;AACrC,QAAA,IAAI,IAAI,CAAC,gBAAgB,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE;AACnE,YAAA,OAAO,IAAI,KAAK,CAAS,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;SAC7D;QACD,OAAO,IAAI,CAAC,gBAAgB,CAAC;KAC9B;AAEM,IAAA,cAAc,CAAC,GAAW,EAAA;QAC/B,IAAI,CAAC,GAAG,EAAE;AACR,YAAA,OAAO,SAAS,CAAC;SAClB;QACD,OAAO,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;KAC7B;8GAtCU,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,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,cAFf,MAAM,EAAA,CAAA,CAAA,EAAA;;2FAEP,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAH5B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;MCMY,iBAAiB,CAAA;AAI1B,IAAA,WAAA,CACY,OAAe,EACf,UAA4B,EACK,YAAkB,EAAA;QAFnD,IAAO,CAAA,OAAA,GAAP,OAAO,CAAQ;QACf,IAAU,CAAA,UAAA,GAAV,UAAU,CAAkB;QACK,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAM;AALvD,QAAA,IAAA,CAAA,YAAY,GAA8B,IAAI,OAAO,EAAoB,CAAC;AAsB3E,QAAA,IAAA,CAAA,UAAU,GAAiC,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,CAAC;AAf/E,QAAA,IAAI,YAAY,EAAE,UAAU,EAAE;AAC1B,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC;AAC/C,YAAA,IAAI,CAAC,OAAO;iBACP,MAAM;AACN,iBAAA,IAAI,CACD,MAAM,CAAC,KAAK,IAAI,KAAK,YAAY,aAAa,CAAC,EAC/C,oBAAoB,EAAE,CACzB;iBACA,SAAS,CAAC,CAAC,IAAG;gBACX,MAAM,UAAU,GAAG,CAAC,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;AAChD,gBAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AACvC,aAAC,CAAC,CAAC;SACV;KACJ;IAIO,mBAAmB,GAAA;AACvB,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;QACzC,MAAM,kBAAkB,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,KAAY,KAAK,KAAK,CAAC,IAAI,EAAE,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC,CAAC;AAC1G,QAAA,IAAI,kBAAkB,CAAC,MAAM,GAAG,CAAC,EAAE;AAC/B,YAAA,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;SAC9D;AACD,QAAA,IAAI,SAA4B,CAAC;AACjC,QAAA,IAAI,kBAAkB,CAAC,MAAM,KAAK,CAAC,EAAE;AACjC,YAAA,SAAS,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAAC;SACrC;aAAM;AACH,YAAA,SAAS,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,KAAY,KAAK,KAAK,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC;YACnE,IAAI,CAAC,SAAS,EAAE;AACZ,gBAAA,OAAO,SAAS,CAAC;aACpB;AACD,YAAA,MAAM,cAAc,GAAG,SAAS,CAAC,UAAU,CAAC;YAC5C,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,IAAI,cAAc,EAAE;AACvD,gBAAA,SAAS,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,KAAY,KAAK,KAAK,CAAC,IAAI,KAAK,cAAc,CAAC,CAAC;gBAC/E,IAAI,CAAC,SAAS,EAAE;AACZ,oBAAA,OAAO,SAAS,CAAC;iBACpB;aACJ;SACJ;AACD,QAAA,OAAO,IAAI,cAAc,CAAC,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;KACnF;AAEO,IAAA,cAAc,CAAC,KAAY,EAAA;QAC/B,OAAO,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,IAAI,KAAK,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;KAC3F;IAEO,gBAAgB,GAAA;QACpB,MAAM,UAAU,GAAqB,EAAE,CAAC;AACxC,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE;AACnB,YAAA,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;SACtC;AACD,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC;AAC7B,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QACvD,MAAM,WAAW,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;QACjD,MAAM,YAAY,GAAG,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;AACzD,QAAA,UAAU,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,CAAC;AACjC,QAAA,IAAI,WAAW,IAAI,WAAW,EAAE,IAAI,KAAK,IAAI,CAAC,YAAY,EAAE,GAAG,EAAE;YAC7D,MAAM,SAAS,GAAG,IAAI,CAAC,uBAAuB,CAAC,WAAW,CAAC,CAAC;YAC5D,UAAU,CAAC,IAAI,CAAC,IAAI,cAAc,CAAC,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,GAAG,SAAS,CAAC,SAAS,IAAI,WAAW,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC,CAAC;SAC1H;AACD,QAAA,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC,KAAqB,KAAI;AAC5C,YAAA,MAAM,aAAa,GAAG,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;YAClD,aAAa,CAAC,OAAO,CAAC,CAAC,OAAe,EAAE,KAAa,KAAI;AACrD,gBAAA,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;oBACzB,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,EAAE,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;iBACtE;AACL,aAAC,CAAC,CAAC;AACH,YAAA,OAAO,KAAK,CAAC;AACjB,SAAC,CAAC,CAAC;KACN;AAEO,IAAA,iBAAiB,CAAC,GAAW,EAAA;QACjC,MAAM,WAAW,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,OAAe,KAAK,OAAO,KAAK,EAAE,CAAC,CAAC;AAC/E,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;QACzC,MAAM,qBAAqB,GAAG,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;QAChE,MAAM,oBAAoB,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC,KAAY,KAAI;YACvE,MAAM,SAAS,GAAG,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC;YACtD,OAAO,CAAC,SAAS,CAAC,SAAS,IAAI,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,WAAW,CAAC,MAAM,CAAC;AACzF,SAAC,CAAC,CAAC;QACH,MAAM,KAAK,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAC,KAAY,KAAI;YACrD,MAAM,SAAS,GAAG,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC;AACtD,YAAA,MAAM,aAAa,GAAG,CAAC,SAAS,CAAC,SAAS,IAAI,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;YAC5E,IAAI,eAAe,GAAG,KAAK,CAAC;AAC5B,YAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC3C,gBAAA,MAAM,cAAc,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;gBACxC,MAAM,gBAAgB,GAAG,cAAc,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;gBACxD,IAAI,CAAC,gBAAgB,EAAE;AACnB,oBAAA,eAAe,GAAG,cAAc,KAAK,WAAW,CAAC,CAAC,CAAC,CAAC;iBACvD;aACJ;YACD,OAAO,eAAe,GAAG,KAAK,GAAG,SAAS,CAAC;AAC/C,SAAC,CAAC,CAAC;AACH,QAAA,OAAO,KAAK,CAAC;KAChB;AAEO,IAAA,iBAAiB,CAAC,WAA8B,EAAE,KAAA,GAA0B,EAAE,EAAA;QAClF,IAAI,CAAC,WAAW,EAAE;AACd,YAAA,OAAO,EAAE,CAAC;SACb;QACD,MAAM,SAAS,GAAG,IAAI,CAAC,uBAAuB,CAAC,WAAW,CAAC,CAAC;AAC5D,QAAA,IAAI,WAAW,GAAG,CAAC,SAAS,CAAC,SAAS,IAAI,WAAW,CAAC,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,OAAe,KAAK,OAAO,KAAK,EAAE,CAAC,IAAI,EAAE,CAAC;AAC1H,QAAA,IAAI,WAAW,EAAE,MAAM,IAAI,CAAC,EAAE;AAC1B,YAAA,OAAO,CAAC,GAAG,KAAK,CAAC,CAAC;SACrB;AACD,QAAA,MAAM,WAAW,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACvD,MAAM,KAAK,GAAG,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;QAClD,IAAI,KAAK,EAAE;YACP,MAAM,SAAS,GAAG,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC;YACtD,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,EAAE;gBAC1E,KAAK,CAAC,IAAI,CAAC,IAAI,cAAc,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;gBAC9F,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;aAC7C;SACJ;AACD,QAAA,OAAO,CAAC,GAAG,KAAK,CAAC,CAAC;KACrB;IAEO,cAAc,CAAC,MAAe,EAAE,KAAc,EAAA;QAClD,IAAI,QAAQ,GAAY,EAAE,CAAC;AAC3B,QAAA,KAAK,GAAG,KAAK,IAAI,CAAC,CAAC;AACnB,QAAA,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,KAAY,KAAI;YAC/B,MAAM,SAAS,GAAG,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC;AACtD,YAAA,SAAS,CAAC,MAAM,GAAG,KAAM,CAAC;YAC1B,IAAI,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE;gBACzC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,KAAY,KAAI;oBACpC,MAAM,cAAc,GAAG,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC;oBAC3D,MAAM,SAAS,GAAG,SAAS,CAAC,SAAS,IAAI,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC;AAC1D,oBAAA,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC;oBACnF,cAAc,CAAC,SAAS,GAAG,SAAS,EAAE,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,GAAG,CAAG,EAAA,SAAS,CAAI,CAAA,EAAA,SAAS,EAAE,GAAG,SAAS,CAAC;AAC9G,iBAAC,CAAC,CAAC;gBACH,QAAQ,GAAG,CAAC,GAAG,QAAQ,EAAE,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC;aAC/C;AACD,YAAA,OAAO,KAAK,CAAC;SAChB,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,KAAK,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC;KACpF;AAEO,IAAA,uBAAuB,CAAC,KAAwB,EAAA;QACpD,IAAI,CAAC,KAAK,EAAE;AACR,YAAA,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;SACzC;AACD,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,UAAU,EAAE;AACzB,YAAA,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;AACb,gBAAA,KAAK,CAAC,IAAI,GAAG,EAAE,CAAC;aACnB;AACD,YAAA,KAAK,CAAC,IAAI,CAAC,UAAU,GAAG,IAAI,mBAAmB,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;SACxE;AACD,QAAA,OAAO,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC;KAChC;AA3JQ,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,uEAOF,YAAY,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAP3B,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,cAFd,MAAM,EAAA,CAAA,CAAA,EAAA;;2FAET,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAH7B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,UAAU,EAAE,MAAM;AACrB,iBAAA,CAAA;;0BAQQ,QAAQ;;0BAAI,MAAM;2BAAC,YAAY,CAAA;;MAuJ3B,mBAAmB,CAAA;AAC5B,IAAA,WAAA,CAAmB,MAAc,EAAS,MAAe,EAAS,SAA8B,EAAA;QAA7E,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;QAAS,IAAM,CAAA,MAAA,GAAN,MAAM,CAAS;QAAS,IAAS,CAAA,SAAA,GAAT,SAAS,CAAqB;KAAK;AACxG;;MCnKY,mBAAmB,CAAA;AAC5B,IAAA,WAAA,CACY,kBAAqC,EAAA;QAArC,IAAkB,CAAA,kBAAA,GAAlB,kBAAkB,CAAmB;QAW1C,IAAU,CAAA,UAAA,GAAqB,EAAE,CAAC;KAVpC;IAEE,QAAQ,GAAA;AACX,QAAA,IAAI,CAAC,kBAAkB;aAClB,UAAU;AACV,aAAA,SAAS,CAAC,CAAC,UAA4B,KAAI;AACxC,YAAA,IAAI,CAAC,UAAU,GAAG,CAAC,GAAG,UAAU,EAAE,IAAI,cAAc,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;AAClE,SAAC,CAAC,CAAC;KACV;8GAXQ,mBAAmB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,iBAAA,EAAA,CAAA,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,QAAA,EAAA,IAAA,EAAA,mBAAmB,sDCThC,4tDAyCc,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAF,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAG,IAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,aAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,OAAA,EAAA,MAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,YAAA,EAAA,YAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FDhCD,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAJ/B,SAAS;+BACI,gBAAgB,EAAA,QAAA,EAAA,4tDAAA,EAAA,CAAA;;;MEHjB,mBAAmB,CAAA;AAK9B,IAAA,WAAA,GAAA;QAJS,IAAK,CAAA,KAAA,GAAkB,IAAI,CAAC;;QAEhB,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;QACZ,IAAQ,CAAA,QAAA,GAAe,IAAI,CAAC;KACtC;8GALN,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAAnB,mBAAmB,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,SAAA,EAAA,CAAA,YAAA,EAAA,WAAA,CAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,UAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAIhB,WAAW,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EALwB,2BAA2B,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;2FACjE,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAD/B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA,EAAC,QAAQ,EAAE,iBAAiB,EAAE,QAAQ,EAAE,2BAA2B,EAAC,CAAA;wDAEpE,KAAK,EAAA,CAAA;sBAAb,KAAK;gBAEe,SAAS,EAAA,CAAA;sBAA7B,KAAK;uBAAC,YAAY,CAAA;gBACQ,QAAQ,EAAA,CAAA;sBAAlC,YAAY;uBAAC,WAAW,CAAA;;;MCJd,iBAAiB,CAAA;AAE5B,IAAA,WAAA,GAAA;QAD2B,IAAQ,CAAA,QAAA,GAAe,IAAI,CAAC;KAEtD;8GAHU,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAAjB,iBAAiB,EAAA,QAAA,EAAA,eAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,UAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EACd,WAAW,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAFuB,2BAA2B,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;2FAChE,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAD7B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA,EAAE,QAAQ,EAAE,eAAe,EAAE,QAAQ,EAAE,2BAA2B,EAAE,CAAA;wDAElD,QAAQ,EAAA,CAAA;sBAAlC,YAAY;uBAAC,WAAW,CAAA;;;MCDd,2BAA2B,CAAA;AAEtC,IAAA,WAAA,GAAA;QAD2B,IAAQ,CAAA,QAAA,GAAe,IAAI,CAAC;KAEtD;8GAHU,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAA3B,2BAA2B,EAAA,QAAA,EAAA,0BAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,UAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EACxB,WAAW,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAFkC,2BAA2B,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;2FAC3E,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBADvC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA,EAAE,QAAQ,EAAE,0BAA0B,EAAE,QAAQ,EAAE,2BAA2B,EAAE,CAAA;wDAE7D,QAAQ,EAAA,CAAA;sBAAlC,YAAY;uBAAC,WAAW,CAAA;;;ACFrB,IAAW,UAShB;AATD,CAAA,UAAiB,SAAS,EAAA;AACX,IAAA,SAAA,CAAA,MAAM,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC;AAC5D,IAAA,SAAA,CAAA,UAAU,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,CAAC;AACtE,IAAA,SAAA,CAAA,YAAY,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,gBAAgB,EAAE,CAAC;AAC1E,IAAA,SAAA,CAAA,SAAS,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,CAAC;AACtE,IAAA,SAAA,CAAA,kBAAkB,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,qBAAqB,EAAE,CAAC;AACtF,IAAA,SAAA,CAAA,eAAe,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,oBAAoB,EAAE,CAAC;AAClF,IAAA,SAAA,CAAA,QAAQ,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC;AACtE,IAAA,SAAA,CAAA,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC;AAC3E,CAAC,EATgB,SAAS,KAAT,SAAS,GASzB,EAAA,CAAA,CAAA,CAAA;IAEW,gBAUX;AAVD,CAAA,UAAY,eAAe,EAAA;AACzB,IAAA,eAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,eAAA,CAAA,WAAA,CAAA,GAAA,UAAsB,CAAA;AACtB,IAAA,eAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,eAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,eAAA,CAAA,YAAA,CAAA,GAAA,MAAmB,CAAA;AACnB,IAAA,eAAA,CAAA,gBAAA,CAAA,GAAA,KAAsB,CAAA;AACtB,IAAA,eAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,eAAA,CAAA,aAAA,CAAA,GAAA,MAAoB,CAAA;AACpB,IAAA,eAAA,CAAA,WAAA,CAAA,GAAA,IAAgB,CAAA;AAClB,CAAC,EAVW,eAAe,KAAf,eAAe,GAU1B,EAAA,CAAA,CAAA,CAAA;AA4BY,MAAA,eAAe,GAA0E;AACpG,IAAA,QAAQ,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,UAAU,EAAE,SAAS,CAAC,QAAQ,CAAC;IACtE,OAAO,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,UAAU,CAAC;EACjD;MAEW,YAAY,CAAA;IAcvB,WAAmB,CAAA,MAAc,EAAE,KAAU,EAAE,QAA0B,EAAE,QAA0B,EAAE,aAA8B,EAAA;AACnI,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;AACrB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,QAAQ,GAAG,QAAQ,IAAI,SAAS,CAAC,MAAM,CAAC,KAAwB,CAAC;AACtE,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ,KAAK,SAAS,GAAG,QAAQ,GAAG,QAAQ,CAAC;;QAE7D,IAAI,IAAI,CAAC,QAAQ,KAAK,UAAU,EAAE;AAChC,YAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,KAAK,eAAe,CAAC,WAAW,GAAG,KAAK,GAAG,KAAK,CAAC;SAC3E;aAAM;AACL,YAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YAC1B,IAAI,EAAE,GAAQ,EAAE,CAAC;YACjB,IAAI,aAAa,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC7C,EAAE,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,KAAI;AAC5B,oBAAA,OAAO,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,MAAM,CAAC;AACjC,iBAAC,CAAC,CAAC;aACJ;YAED,IAAI,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC,EAAE;AAC9B,gBAAA,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC,IAAI,CAAC;aACvB;SACF;;AAED,QAAA,IAAI,IAAI,CAAC,QAAQ,KAAK,UAAU,EAAE;AAChC,YAAA,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;SACtB;aAAM;AACL,YAAA,QAAQ,IAAI,CAAC,QAAQ;AACnB,gBAAA,MAAM,SAAS,CAAC,MAAM,CAAC,KAAK;oBAC1B,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC;oBACzC,MAAM;AACR,gBAAA,MAAM,SAAS,CAAC,UAAU,CAAC,KAAK;oBAC9B,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC;oBAC7C,MAAM;AACR,gBAAA,MAAM,SAAS,CAAC,QAAQ,CAAC,KAAK;oBAC5B,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC;oBAC3C,MAAM;aACT;SACF;;AAED,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC;QAC1B,KAAK,IAAI,CAAC,QAAQ,KAAK,UAAU,GAAG;AAClC,YAAA,IAAI,CAAC,OAAO,GAAG,UAAU,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC;SACxE;AACD,QAAA,IAAI,EAA4B,CAAC;QACjC,IAAI,aAAa,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE;YAC7C,EAAE,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,KAAI;AAC5B,gBAAA,OAAO,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,MAAM,CAAC;AACjC,aAAC,CAAC,CAAC;SACJ;QACD,IAAI,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE;AACpB,YAAA,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;AACxB,YAAA,IAAI,CAAC,OAAO,GAAG,EAAG,CAAC,OAAQ,CAAC,IAAI,CAAC,CAAC,MAAM,KAAI;AAC1C,gBAAA,OAAO,MAAM,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,CAAC;aACpC,CAAC,EAAE,KAAK,CAAC;SACX;KACF;IAEM,OAAO,KAAK,CAAC,IAAY,EAAA;QAC9B,MAAM,OAAO,GAAG,+HAA+H,CAAC;AAChJ,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;YAChB,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACnC,YAAA,IAAI,OAAO,IAAI,IAAI,EAAE;AACnB,gBAAA,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AACxB,gBAAA,MAAM,EAAE,GAAoB,OAAO,CAAC,CAAC,CAAC,CAAC;AACvC,gBAAA,MAAM,EAAE,GAAoB,OAAO,CAAC,CAAC,CAAC,CAAC;AACvC,gBAAA,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;gBAErB,OAAO,IAAI,YAAY,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;aAC1C;SACF;AACD,QAAA,OAAO,SAAS,CAAC;KAClB;IAEM,QAAQ,GAAA;AACb,QAAA,IAAI,IAAI,CAAC,QAAQ,KAAK,QAAQ,IAAI,IAAI,CAAC,QAAQ,KAAK,OAAO,EAAE;AAC3D,YAAA,OAAO,GAAG,IAAI,CAAC,MAAM,CAAA,EAAA,EAAK,IAAI,CAAC,QAAQ,CAAM,GAAA,EAAA,IAAI,CAAC,QAAQ,CAAA,CAAA,EAAI,IAAI,CAAC,KAAK,EAAE,CAAC;SAC5E;aAAM;AACL,YAAA,OAAO,CAAG,EAAA,IAAI,CAAC,MAAM,CAAK,EAAA,EAAA,IAAI,CAAC,QAAQ,CAAK,EAAA,EAAA,IAAI,CAAC,KAAK,EAAE,CAAC;SAC1D;KACF;AACF;;ACjJD;MAYa,mBAAmB,CAAA;IA4B9B,QAAQ,GAAA;AACN,QAAA,IAAI,KAAK,GAAG,IAAI,IAAI,EAAE,CAAC;AACvB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;AAC9B,QAAA,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;QAChC,IAAI,CAAC,aAAa,GAAG,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;QACpF,IAAI,CAAC,aAAa,GAAG,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,WAAW,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;QACpG,MAAM,UAAU,GAAG,EAAE,CAAC;AACtB,QAAA,KAAK,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,IAAI,KAAK,CAAC,WAAW,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AACpD,YAAA,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE,WAAW,EAAE,EAAE,CAAC,CAAC;SAClH;AACD,QAAA,IAAI,CAAC,aAAa,GAAG,UAAU,CAAC;AAChC,QAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;QAC9D,IAAI,CAAC,QAAQ,EAAE,CAAC;KACjB;AAED,IAAA,WAAA,CAAsC,MAAc,EAAA;QAAd,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;QA1C3C,IAAQ,CAAA,QAAA,GAAY,KAAK,CAAC;QAC1B,IAAQ,CAAA,QAAA,GAAY,KAAK,CAAC;QAC1B,IAAM,CAAA,MAAA,GAAY,KAAK,CAAC;QACR,IAAa,CAAA,aAAA,GAAuB,YAAY,CAAC;QACjE,IAAW,CAAA,WAAA,GAAuB,EAAE,CAAC;QACrC,IAAK,CAAA,KAAA,GAA4B,IAAI,CAAC;AACrC,QAAA,IAAA,CAAA,WAAW,GAAuB,IAAI,YAAY,EAAQ,CAAC;QAE5D,IAAO,CAAA,OAAA,GAAqB,SAAS,CAAC;QACtC,IAAO,CAAA,OAAA,GAAqB,SAAS,CAAC;QACxC,IAAY,CAAA,YAAA,GAAG,KAAK,CAAC;QACrB,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;AAClB,QAAA,IAAA,CAAA,UAAU,GAAG,mBAAmB,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,UAAU,EAAE,gBAAgB,CAAC,IAAI,CAAC,CAAC;AAC3F,QAAA,IAAA,CAAA,QAAQ,GAAG,iBAAiB,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,UAAU,EAAE,gBAAgB,CAAC,WAAW,CAAC,CAAC;QAE9F,IAAK,CAAA,KAAA,GAAW,CAAC,CAAC,CAAC;QACnB,IAAI,CAAA,IAAA,GAAW,CAAC,CAAC,CAAC;QAClB,IAAa,CAAA,aAAA,GAAU,EAAE,CAAC;QAC1B,IAAa,CAAA,aAAA,GAAU,EAAE,CAAC;QAC1B,IAAiB,CAAA,iBAAA,GAAU,EAAE,CAAC;QAC9B,IAAS,CAAA,SAAA,GAAU,EAAE,CAAC;QACtB,IAAgB,CAAA,gBAAA,GAAG,CAAC,CAAC;QACpB,IAAY,CAAA,YAAA,GAAG,EAAE,CAAC;QAElB,IAAS,CAAA,SAAA,GAAoB,SAAS,CAAC;QACvC,IAAU,CAAA,UAAA,GAAoB,SAAS,CAAC;KAiBS;AAEzD,IAAA,UAAU,CAAC,GAAQ,EAAA;QACjB,IAAI,GAAG,EAAE;YACP,IAAI,CAAC,KAAK,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC;YAC3B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;YACnC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;SACtC;KACF;AAED,IAAA,gBAAgB,CAAC,EAAoB,EAAA;AACnC,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;KACrB;AAED,IAAA,iBAAiB,CAAC,EAAO,EAAA;AACvB,QAAA,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;KACtB;AAEM,IAAA,MAAM,CAAC,KAAU,EAAA;AACtB,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE;YACnB,IAAI,CAAC,UAAU,EAAE,CAAC;SACnB;QACD,IAAI,CAAC,gBAAgB,EAAE,CAAC;KACzB;AAEM,IAAA,eAAe,CAAC,IAAS,EAAA;;QAE9B,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;YAClC,IAAI,YAAY,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACzE,YAAA,IAAI,CAAC,KAAK,GAAG,YAAY,CAAC;YAC1B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAClC,YAAA,IAAI,IAAI,CAAC,SAAS,EAAE;AAClB,gBAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;aAC5B;YACD,IAAI,CAAC,UAAU,EAAE,CAAC;AAClB,YAAA,IAAI,IAAI,CAAC,UAAU,EAAE;gBACnB,IAAI,CAAC,UAAU,EAAE,CAAC;aACnB;YACD,IAAI,CAAC,QAAQ,EAAE,CAAC;AAChB,YAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;SAC3B;KACF;AAEM,IAAA,eAAe,CAAC,IAAS,EAAA;;AAE9B,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC;AAC3B,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;AACtB,QAAA,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,IAAI,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE;YACzF,IAAI,YAAY,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,IAAI,CAAC,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,IAAI,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAChI,YAAA,IAAI,CAAC,KAAK,GAAG,YAAY,CAAC;YAC1B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAClC,YAAA,IAAI,IAAI,CAAC,SAAS,EAAE;AAClB,gBAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;aAC5B;YACD,IAAI,CAAC,UAAU,EAAE,CAAC;AAClB,YAAA,IAAI,IAAI,CAAC,UAAU,EAAE;gBACnB,IAAI,CAAC,UAAU,EAAE,CAAC;aACnB;AACD,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AACvB,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;YACzB,IAAI,CAAC,QAAQ,EAAE,CAAC;SACjB;aAAM;AACL,YAAA,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC;AACrB,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AACvB,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;SAC1B;KACF;IAEM,aAAa,GAAA;AAClB,QAAA,IAAI,IAAI,CAAC,KAAK,KAAK,CAAC,EAAE;YACpB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;YAC5B,IAAI,CAAC,QAAQ,EAAE,CAAC;SACjB;aAAM;AACL,YAAA,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;YAChB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;YAC1B,IAAI,CAAC,QAAQ,EAAE,CAAC;SACjB;AACD,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE;YACnB,IAAI,CAAC,UAAU,EAAE,CAAC;SACnB;KACF;IAEM,SAAS,GAAA;AACd,QAAA,IAAI,IAAI,CAAC,KAAK,KAAK,EAAE,EAAE;YACrB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;YAC5B,IAAI,CAAC,QAAQ,EAAE,CAAC;SACjB;aAAM;AACL,YAAA,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;YACf,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;YAC1B,IAAI,CAAC,QAAQ,EAAE,CAAC;SACjB;AACD,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE;YACnB,IAAI,CAAC,UAAU,EAAE,CAAC;SACnB;KACF;IAEM,YAAY,GAAA;AACjB,QAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,QAAQ,CACpC,IAAI,CAAC,aAAa,EAClB,IAAI,CAAC,gBAAgB,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC,CAAC;QAC3D,IAAI,CAAC,QAAQ,EAAE,CAAC;AAChB,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE;YACnB,IAAI,CAAC,UAAU,EAAE,CAAC;SACnB;KACF;IAEM,QAAQ,GAAA;QACb,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,QAAQ,CACpC,IAAI,CAAC,aAAa,EAClB,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,IAAI,CAAC,YAAY;AACpE,cAAE,EAAE,IAAI,CAAC,gBAAgB;AACzB,cAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAC7B,IAAI,CAAC,QAAQ,EAAE,CAAC;AAChB,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE;YACnB,IAAI,CAAC,UAAU,EAAE,CAAC;SACnB;KACF;AAEO,IAAA,YAAY,CAAC,KAA8B,EAAE,GAA8B,EAAE,IAA+B,EAAA;QAClH,IAAI,CAAC,KAAK,EAAE;AACV,YAAA,OAAO,KAAK,CAAC;SACd;QACD,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,GAAG,IAAI,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QAC/E,OAAO,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC,YAAY,EAAE,CAAC;KAClD;;IAEO,QAAQ,GAAA;QACd,MAAM,WAAW,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;;AAErE,QAAA,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC;AAC3D,QAAA,MAAM,cAAc,GAAG,IAAI,KAAK,EAAU,CAAC;AAC3C,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,SAAS,EAAE,CAAC,EAAE,EAAE;;YAEnC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;AAC3D,YAAA,cAAc,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,CAAC;SACjC;QACD,MAAM,SAAS,GAAG,EAAE,CAAC;AACrB,QAAA,MAAM,KAAK,GAAG,IAAI,IAAI,EAAE,CAAC;AACzB,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,WAAW,EAAE,CAAC,EAAE,EAAE;AACrC,YAAA,SAAS,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,IAAI,KAAK,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;SACjI;QACD,MAAM,UAAU,GAAG,EAAE,CAAC;AACtB,QAAA,KAAK,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,IAAI,KAAK,CAAC,WAAW,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AACpD,YAAA,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;SAClG;AACD,QAAA,IAAI,CAAC,aAAa,GAAG,UAAU,CAAC;AAChC,QAAA,IAAI,CAAC,SAAS,GAAG,cAAc,CAAC;AAChC,QAAA,IAAI,CAAC,aAAa,GAAG,SAAS,CAAC;KAChC;IAEO,UAAU,GAAA;AAChB,QAAA,MAAM,KAAK,GAAG,IAAI,IAAI,EAAE,CAAC;AACzB,QAAA,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,IAAG;AAC7B,YAAA,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;AACjD,YAAA,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;AAC3D,SAAC,CAAC,CAAC;KACJ;IAEO,QAAQ,CAAC,KAAY,EAAE,WAAmB,EAAA;QAChD,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,WAAW,GAAG,CAAC,IAAI,IAAI,CAAC,YAAY,EAAE,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC;KAC5F;IAEO,gBAAgB,GAAA;AACtB,QAAA,IAAG,CAAC,IAAI,CAAC,SAAS,EAAE,aAAa,CAAC,KAAK,IAAI,IAAI,CAAC,SAAS,EAAE,aAAa,CAAC,KAAK,KAAK,EAAE,EAAE;AACrF,YAAA,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;YACvB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAClC,YAAA,IAAI,IAAI,CAAC,SAAS,EAAE;AAClB,gBAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;aAC5B;YACD,OAAO;SACR;AAED,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE,aAAa,CAAC,KAAK,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;AAC9D,YAAA,IAAI,SAAS,GAAG,IAAI,CAAC,SAAS,EAAE,aAAa,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAC/D,YAAA,IAAI,cAAc,GAAG,IAAI,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACvF,YAAA,IAAI,cAAc,CAAC,QAAQ,EAAE,KAAK,cAAc,EAAE;AAChD,gBAAA,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,CAAA;gBAC/B,IAAI,CAAC,QAAQ,EAAE,CAAC;AAChB,gBAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;aACvC;AACD,YAAA,IAAI,IAAI,CAAC,SAAS,EAAE;AAClB,gBAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;aAC5B;YACD,IAAI,CAAC,UAAU,EAAE,CAAC;AAClB,YAAA,IAAI,IAAI,CAAC,UAAU,EAAE;gBACnB,IAAI,CAAC,UAAU,EAAE,CAAC;aACnB;SACF;AACD,QAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;KAC3B;IAEM,SAAS,GAAA;AACd,QAAA,IAAI,CAAC,SAAS,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC;AACjC,QAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC;QAC9G,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,gBAAgB,KAAK,CAAC,GAAG,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC,CAAC;QACpH,IAAI,CAAC,QAAQ,EAAE,CAAC;KACjB;IAEM,YAAY,GAAA;AACjB,QAAA,IAAI,CAAC,YAAY,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC;QACvC,IAAI,CAAC,QAAQ,EAAE,CAAC;KACjB;IAEM,aAAa,GAAA;AAClB,QAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;;KAE3B;AAED,IAAA,cAAc,CAAC,IAAS,EAAA;QACtB,IAAI,UAAU,GAAY,KAAK,CAAC;QAChC,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,EAAE;AAChC,YAAA,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;AACpD,YAAA,MAAM,YAAY,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;AACjC,YAAA,IAAI,IAAI,CAAC,OAAO,EAAE;gBAChB,IAAI,OAAO,GAAW,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;AAC7C,gBAAA,IAAI,YAAY,GAAG,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC,YAAY,EAAE,EAAE;oBAC9E,UAAU,GAAG,IAAI,CAAC;iBACnB;aACF;AACD,YAAA,IAAI,IAAI,CAAC,OAAO,EAAE;gBAChB,IAAI,OAAO,GAAW,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;AAC7C,gBAAA,IAAI,YAAY,GAAG,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC,YAAY,EAAE,EAAE;oBAC9E,UAAU,GAAG,IAAI,CAAC;iBACnB;aACF;SACF;AACD,QAAA,OAAO,UAAU,CAAC;KACnB;AA9QU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,kBA2CV,SAAS,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AA3ClB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,mBAAmB,EARnB,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,aAAA,EAAA,CAAA,gBAAA,EAAA,eAAA,CAAA,EAAA,WAAA,EAAA,aAAA,EAAA,KAAA,EAAA,OAAA,EAAA,OAAA,EAAA,SAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,SAAA,EAAA;AACT,YAAA;AACE,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,mBAAmB,CAAC;AAClD,gBAAA,KAAK,EAAE,IAAI;AACZ,aAAA;AACF,SAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,WAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,WAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECdH,q6JAuIM,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAL,qBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,qBAAA,EAAA,sBAAA,EAAA,uBAAA,EAAA,YAAA,EAAA,SAAA,EAAA,oBAAA,EAAA,oBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FDvHO,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAX/B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,iBAAiB,EAEhB,SAAA,EAAA;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAE,UAAU,CAAC,yBAAyB,CAAC;AAClD,4BAAA,KAAK,EAAE,IAAI;AACZ,yBAAA;AACF,qBAAA,EAAA,QAAA,EAAA,q6JAAA,EAAA,CAAA;;0BA6CY,MAAM;2BAAC,SAAS,CAAA;yCA1CpB,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,MAAM,EAAA,CAAA;sBAAd,KAAK;gBACmB,aAAa,EAAA,CAAA;sBAArC,KAAK;uBAAC,gBAAgB,CAAA;gBACd,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACI,WAAW,EAAA,CAAA;sBAApB,MAAM;gBACiB,SAAS,EAAA,CAAA;sBAAhC,SAAS;uBAAC,WAAW,CAAA;gBACb,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;;;MElBK,uBAAuB,CAAA;AAgBlC,IAAA,WAAA,GAAA;AAfU,QAAA,IAAA,CAAA,qBAAqB,GAAiC,IAAI,YAAY,EAAkB,CAAC;QACtE,IAAiB,CAAA,iBAAA,GAAY,KAAK,CAAC;QACvC,IAAa,CAAA,aAAA,GAAmB,EAAE,CAAC;QACnD,IAAO,CAAA,OAAA,GAAmB,EAAE,CAAC;QAC/B,IAAW,CAAA,WAAA,GAAiB,EAAE,CAAC;QAC/B,IAAmB,CAAA,mBAAA,GAAiB,EAAE,CAAC;QACvC,IAAe,CAAA,eAAA,GAAG,eAAe,CAAC;QAClC,IAAS,CAAA,SAAA,GAAoC,EAAE,CAAC;QAMhD,IAAqB,CAAA,qBAAA,GAAoC,EAAE,CAAC;KAElD;IAEV,QAAQ,GAAA;KACd;AAEM,IAAA,WAAW,CAAC,OAAsB,EAAA;AACvC,QAAA,IAAI,OAAO,CAAC,eAAe,CAAC,EAAE;YAC5B,IAAI,CAAC,gBAAgB,EAAE,CAAC;SACzB;KACF;IAEM,gBAAgB,GAAA;QACrB,MAAM,oBAAoB,GAAG,EAAE,CAAC;AAChC,QAAA,KAAK,MAAM,YAAY,IAAI,IAAI,CAAC,aAAa,EAAE;YAC7C,oBAAoB,CAAC,IAAI,CAAC;gBACxB,IAAI,EAAE,YAAY,CAAC,IAAI;gBACvB,KAAK,EAAE,YAAY,CAAC,KAAK;gBACzB,IAAI,EAAE,YAAY,CAAC,QAAQ;gBAC3B,WAAW,EAAE,YAAY,CAAC,WAAW;AACrC,gBAAA,IAAI,EAAE,SAAS;AAChB,aAAA,CAAC,CAAC;YACH,IAAI,YAAY,CAAC,QAAQ,KAAK,OAAO,IAAI,YAAY,CAAC,OAAO,EAAE;AAC7D,gBAAA,IAAI,CAAC,qBAAqB,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,KAAK;oBACnF,IAAI,EAAE,MAAM,CAAC,KAAK;oBAClB,KAAK,EAAE,MAAM,CAAC,KAAK;AACnB,oBAAA,IAAI,EAAE,SAAS;oBACf,WAAW,EAAE,MAAM,CAAC,WAAW;AAC/B,oBAAA,IAAI,EAAE,SAAS;AAChB,iBAAA,CAAC,CAAC,CAAC;aACL;SACF;AACD,QAAA,IAAI,CAAC,WAAW,GAAG,oBAAoB,CAAC;KACzC;AAEM,IAAA,oBAAoB,CAAC,KAAa,EAAA;QACvC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,YAAY,KAAK,YAAY,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC;AAC7F,QAAA,IAAI,CAAC,gBAAgB,GAAG,SAAS,CAAC;;QAElC,IAAI,IAAI,CAAC,aAAa,EAAE,QAAQ,IAAI,WAAW,EAAE;YAC/C,IAAI,gBAAgB,GAAiB,EAAE,CAAC;;AAExC,YAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,aAAa,EAAE,QAAQ,IAAI,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,IAAG;gBACzE,gBAAgB,CAAC,IAAI,CAAC;AACpB,oBAAA,IAAI,EAAE,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,KAAK;oBAC9B,KAAK,EAAE,CAAC,CAAC,KAAK;AACd,oBAAA,IAAI,EAAE,SAAS;oBACf,WAAW,EAAE,CAAC,CAAC,WAAW;AAC1B,oBAAA,IAAI,EAAE,SAAS;AAChB,iBAAA,CAAC,CAAA;AACJ,aAAC,CAAC,CAAA;AACF,YAAA,IAAI,CAAC,mBAAmB,GAAG,gBAAgB,CAAC;;YAE5C,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;SAC3D;AACD,QAAA,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;KAC7B;AAEM,IAAA,uBAAuB,CAAC,QAAa,EAAA;AAC1C,QAAA,IAAI,CAAC,gBAAgB,GAAG,QAAQ,CAAC;KAClC;AAEM,IAAA,yBAAyB,CAAC,UAAkB,EAAA;AACjD,QAAA,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;KAC9B;IAEM,MAAM,GAAA;AACX,QAAA,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE;YACvD,OAAO;SACR;;QAED,IAAI,IAAI,CAAC,aAAa,CAAC,QAAQ,KAAK,WAAW,EAAE;AAC/C,YAAA,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE;AACjC,gBAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,KAAI;AACvC,oBAAA,OAAO,CAAC,CAAC,QAAQ,KAAK,UAAU,CAAC;AACnC,iBAAC,CAAC,CAAC;aACJ;AACD,YAAA,IAAI,IAAI,CAAC,kBAAkB,EAAE;gBAC3B,MAAM,gBAAgB,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,kBAAkB,EAAE,SAAS,CAAC,kBAAkB,CAAC,KAAwB,EAAE,UAAU,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;AACpL,gBAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;aACrC;AAED,YAAA,IAAI,IAAI,CAAC,gBAAgB,EAAE;gBACzB,MAAM,cAAc,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,gBAAgB,EAAE,SAAS,CAAC,eAAe,CAAC,KAAwB,EAAE,UAAU,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;AAC7K,gBAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;aACnC;SACF;;aAEI;YACH,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,EAAE;gBACjC,OAAO;aACR;;AAED,YAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,IAAI,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC;;AAExE,YAAA,MAAM,YAAY,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,gBAAmC,EAAE,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;YAC5K,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE;AACjC,gBAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,KAAI;oBACvC,OAAO,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,aAAc,CAAC,KAAK,CAAC;AAChD,iBAAC,CAAC,CAAC;aACJ;AAAM,iBAAA;gBACL,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,KAAK,YAAY,CAAC,QAAQ,EAAE,CAAC,CAAC;gBACrF,IAAI,WAAW,EAAE;oBACf,OAAO;iBACR;aACF;AAED,YAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AAChC,YAAA,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;SAC7B;QACD,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;KAC/C;AAEM,IAAA,YAAY,CAAC,KAAa,EAAA;AAC/B,QAAA,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,KAAK,EAAE;YAChD,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YAC9B,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;SAC/C;KACF;IAEM,mBAAmB,GAAA;QACxB,OAAO,IAAI,CAAC,kBAAkB,KAAK,SAAS,IAAI,IAAI,CAAC,gBAAgB,KAAK,SAAS,CAAC;KACrF;IAEM,0BAA0B,GAAA;;QAE/B,OAAO,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,UAAU,KAAK,SAAS,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,IAAI,IAAI,CAAC,gBAAgB,KAAK,SAAS,CAAC,CAAC;KACxI;IAEM,KAAK,GAAA;AACV,QAAA,IAAI,CAAC,kBAAkB,GAAG,SAAS,CAAC;AACpC,QAAA,IAAI,CAAC,gBAAgB,GAAG,SAAS,CAAC;AAClC,QAAA,IAAI,CAAC,aAAa,GAAG,SAAS,CAAC;AAC/B,QAAA,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;AAC5B,QAAA,IAAI,CAAC,gBAAgB,GAAG,SAAS,CAAC;AAClC,QAAA,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;QAClB,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;KAC/C;8GAxJU,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,QAAA,EAAA,IAAA,EAAA,uBAAuB,iSCRpC,i2KA4GA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,4EAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,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,EAAAM,mBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,aAAA,EAAA,OAAA,EAAA,SAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,qBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,UAAA,EAAA,UAAA,EAAA,aAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,gBAAA,EAAA,iBAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FDpGa,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAJnC,SAAS;+BACE,qBAAqB,EAAA,QAAA,EAAA,i2KAAA,EAAA,CAAA;wDAIrB,qBAAqB,EAAA,CAAA;sBAA9B,MAAM;gBACsB,iBAAiB,EAAA,CAAA;sBAA7C,KAAK;uBAAC,oBAAoB,CAAA;gBACF,aAAa,EAAA,CAAA;sBAArC,KAAK;uBAAC,gBAAgB,CAAA;gBACd,OAAO,EAAA,CAAA;sBAAf,KAAK;;;MENK,2BAA2B,CAAA;AAOtC,IAAA,WAAA,GAAA;QALS,IAAK,CAAA,KAAA,GAAG,wBAAwB,CAAC;;QAEtB,IAAQ,CAAA,QAAA,GAAG,sFAAsF,CAAC;;QAE7F,IAAY,CAAA,YAAA,GAAG,aAAa,CAAC;KACrC;IAEjB,QAAQ,GAAA;KACP;8GAVU,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA3B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,2BAA2B,oLCNxC,m9CAqBM,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FDfO,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBAJvC,SAAS;+BACE,2BAA2B,EAAA,QAAA,EAAA,m9CAAA,EAAA,CAAA;wDAK5B,KAAK,EAAA,CAAA;sBAAb,KAAK;gBAEc,QAAQ,EAAA,CAAA;sBAA3B,KAAK;uBAAC,WAAW,CAAA;gBAEO,YAAY,EAAA,CAAA;sBAApC,KAAK;uBAAC,gBAAgB,CAAA;;;MELZ,uBAAuB,CAAA;AAIlC,IAAA,WAAA,GAAA;QAHS,IAAK,CAAA,KAAA,GAAG,CAAC,CAAC;AACV,QAAA,IAAA,CAAA,IAAI,GAAG,OAAO,CAAC;AACH,QAAA,IAAA,CAAA,SAAS,GAAG,cAAc,CAAC;KAC/B;IAEjB,QAAQ,GAAA;KACP;AAEM,IAAA,OAAO,CAAC,CAAS,EAAA;AACtB,QAAA,OAAO,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC;KACrB;8GAXU,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,QAAA,EAAA,IAAA,EAAA,uBAAuB,6ICPpC,shDAiCM,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FD1BO,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBALnC,SAAS;+BAEE,qBAAqB,EAAA,QAAA,EAAA,shDAAA,EAAA,CAAA;wDAItB,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACe,SAAS,EAAA,CAAA;sBAA7B,KAAK;uBAAC,YAAY,CAAA;;;AEHrB,CAAC;MAMY,iBAAiB,CAAA;;IAiC5B,IACI,IAAI,CAAC,IAAoC,EAAA;AAC3C,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,EAAE,OAAO,EAAE,CAAC;AAC/B,QAAA,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;AAC3C,YAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;SAChC;QACD,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;AAC1E,QAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,iBAAiB,GAAG,mBAAmB,GAAG,mBAAmB,CAAC;AAC3F,QAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,iBAAiB,GAAG,mBAAmB,GAAG,mBAAmB,CAAC;KAC5F;;IAED,IACI,KAAK,CAAC,GAAsB,EAAA;AAC9B,QAAA,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC;AACxB,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE;AACrB,YAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;SAChC;KACF;IAED,IACI,OAAO,CAAC,GAAgC,EAAA;AAC1C,QAAA,IAAI,CAAC,eAAe,GAAG,GAAG,CAAC;AAC3B,QAAA,IAAI,IAAI,CAAC,eAAe,EAAE;AACxB,YAAA,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC;SACrC;KACF;AAuBD,IAAA,WAAA,GAAA;QAhFyB,IAAa,CAAA,aAAA,GAAmB,EAAE,CAAC;QACnD,IAAO,CAAA,OAAA,GAAmB,EAAE,CAAC;;QAE7B,IAAI,CAAA,IAAA,GAAG,KAAK,CAAC;;QAIb,IAAK,CAAA,KAAA,GAAkB,IAAI,CAAC;QAC5B,IAAI,CAAA,IAAA,GAAG,CAAC,CAAC;AACT,QAAA,IAAA,CAAA,IAAI,GAAG,YAAY,CAAC,KAAK,CAAC;QAC1B,IAAI,CAAA,IAAA,GAAkB,IAAI,CAAC;;QAEhB,IAAQ,CAAA,QAAA,GAAG,EAAE,CAAC;;QAEN,IAAe,CAAA,eAAA,GAAiB,EAAE,CAAC;;;QAGxC,IAAW,CAAA,WAAA,GAAiB,EAAE,CAAC;QACzB,IAAiB,CAAA,iBAAA,GAAY,KAAK,CAAC;;QAE7C,IAAO,CAAA,OAAA,GAAkB,GAAG,CAAC;;QAE1B,IAAU,CAAA,UAAA,GAAG,CAAC,CAAC;;QAEhB,IAAS,CAAA,SAAA,GAAG,IAAI,CAAC;;AAEb,QAAA,IAAA,CAAA,aAAa,GAAoB,aAAa,CAAC,GAAG,CAAC;;;;QAInC,IAA2B,CAAA,2BAAA,GAAkB,IAAI,CAAC;AA6BjF,QAAA,IAAA,CAAA,WAAW,GAAyB,IAAI,YAAY,EAAU,CAAC;AAC/D,QAAA,IAAA,CAAA,eAAe,GAAyB,IAAI,YAAY,EAAU,CAAC;AACnE,QAAA,IAAA,CAAA,aAAa,GAA+C,IAAI,YAAY,EAAgC,CAAC;AAC7G,QAAA,IAAA,CAAA,WAAW,GAAyB,IAAI,YAAY,EAAU,CAAC;AAC/D,QAAA,IAAA,CAAA,cAAc,GAAyB,IAAI,YAAY,EAAU,CAAC;AAClE,QAAA,IAAA,CAAA,qBAAqB,GAAiC,IAAI,YAAY,EAAkB,CAAC;QAE3F,IAAiB,CAAA,iBAAA,GAAG,KAAK,CAAC;AAC3B,QAAA,IAAA,CAAA,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC;AAC1B,QAAA,IAAA,CAAA,YAAY,GAAG,KAAK,CAAC,QAAQ,CAAC;QAC9B,IAAkB,CAAA,kBAAA,GAAG,KAAK,CAAC;QAC3B,IAAgB,CAAA,gBAAA,GAAG,mBAAmB,CAAC;QACvC,IAAgB,CAAA,gBAAA,GAAG,mBAAmB,CAAC;QACvC,IAAkB,CAAA,kBAAA,GAAG,KAAK,CAAC;QAC3B,IAAuB,CAAA,uBAAA,GAAG,KAAK,CAAC;QAChC,IAAW,CAAA,WAAA,GAAU,EAAE,CAAC;QACxB,IAAO,CAAA,OAAA,GAAU,EAAE,CAAC;QACpB,IAAc,CAAA,cAAA,GAAG,cAAc,CAAC;QAChC,IAAY,CAAA,YAAA,GAA2B,IAAI,CAAC;QAC5C,IAAe,CAAA,eAAA,GAA2B,IAAI,CAAC;AAGpD,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AAC1B,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;SAC3B;AACD,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE;AACtB,YAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAA8B,CAAC;SAC1D;KACF;AAED,IAAA,WAAW,CAAC,OAAsB,EAAA;QAChC,MAAM,gBAAgB,GAAG,OAAO,CAAC,aAAa,CAAC,IAAI,OAAO,CAAC,UAAU,CAAC;QACtE,IAAI,gBAAgB,EAAE;AACpB,YAAA,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;SACvD;KACF;;AAGM,IAAA,eAAe,CAAC,MAAc,EAAA;AACnC,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;KAC/B;AAEM,IAAA,mBAAmB,CAAC,MAAc,EAAA;AACvC,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;KACnC;AAEM,IAAA,eAAe,CAAC,MAAc,EAAA;AACnC,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;KAC/B;AACM,IAAA,kBAAkB,CAAC,MAAc,EAAA;AACtC,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;KAClC;AACM,IAAA,yBAAyB,CAAC,MAAsB,EAAA;AACrD,QAAA,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;KACzC;AAEM,IAAA,aAAa,CAAC,IAAS,EAAA;AAC5B,QAAA,IAAI,CAAC,eAAe,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC;AAC7C,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC;KAC/D;;AAGO,IAAA,iBAAiB,CAAC,KAAa,EAAA;QACrC,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE;AAC5B,YAAA,IAAI,CAAC,cAAc;AACjB,gBAAA,IAAI,CAAC,IAAI,KAAK,YAAY,CAAC,OAAO;sBAC9B,CAAc,WAAA,EAAA,KAAK,CAAE,CAAA;sBACrB,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC;0BACjC,CAAgB,aAAA,EAAA,KAAK,CAAE,CAAA;0BACvB,cAAc,CAAC;SACxB;aAAM;AACL,YAAA,IAAI,CAAC,cAAc;AACjB,gBAAA,IAAI,CAAC,IAAI,KAAK,YAAY,CAAC,OAAO;AAChC,sBAAE,cAAc;sBACd,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC;AACnC,0BAAE,gBAAgB;0BAChB,cAAc,CAAC;SACxB;KACF;8GA1IU,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAjB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,iBAAiB,EA4Cd,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,EAAA,aAAA,EAAA,CAAA,gBAAA,EAAA,eAAA,CAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,MAAA,EAAA,KAAA,EAAA,OAAA,EAAA,KAAA,EAAA,OAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,MAAA,EAAA,QAAA,EAAA,CAAA,WAAA,EAAA,UAAA,CAAA,EAAA,eAAA,EAAA,CAAA,mBAAA,EAAA,iBAAA,CAAA,EAAA,WAAA,EAAA,CAAA,cAAA,EAAA,aAAA,CAAA,EAAA,iBAAA,EAAA,CAAA,oBAAA,EAAA,mBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,EAAA,SAAA,CAAA,EAAA,UAAA,EAAA,CAAA,aAAA,EAAA,YAAA,CAAA,EAAA,SAAA,EAAA,CAAA,YAAA,EAAA,WAAA,CAAA,EAAA,aAAA,EAAA,CAAA,gBAAA,EAAA,eAAA,CAAA,EAAA,2BAAA,EAAA,CAAA,gCAAA,EAAA,6BAAA,CAAA,EAAA,EAAA,OAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,eAAA,EAAA,WAAA,EAAA,aAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,qBAAA,EAAA,uBAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,OAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,iBAAiB,EAAU,WAAA,EAAA,IAAA,EAAA,IAAA,EAAA,iBAAiB,EAQ5C,EAAA,EAAA,YAAA,EAAA,SAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,2BAA2B,EAAU,WAAA,EAAA,IAAA,EAAA,IAAA,EAAA,2BAA2B,EAnB7D,EAAA,EAAA,YAAA,EAAA,MAAA,EAAA,SAAA,EAAA,mBAAmB,EAAU,IAAA,EAAA,mBAAmB,kDC9CnE,8oQAgLA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,uBAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,gBAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,uBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,2BAAA,EAAA,QAAA,EAAA,2BAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,WAAA,EAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,cAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,OAAA,EAAA,MAAA,EAAA,WAAA,EAAA,mBAAA,EAAA,cAAA,EAAA,MAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,uBAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,YAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FDnKa,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAJ7B,SAAS;+BACE,eAAe,EAAA,QAAA,EAAA,8oQAAA,EAAA,CAAA;wDAIA,aAAa,EAAA,CAAA;sBAArC,KAAK;uBAAC,gBAAgB,CAAA;gBACd,OAAO,EAAA,CAAA;sBAAf,KAAK;gBAEG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBAEG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBAEG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBAEc,QAAQ,EAAA,CAAA;sBAA3B,KAAK;uBAAC,WAAW,CAAA;gBAEU,eAAe,EAAA,CAAA;sBAA1C,KAAK;uBAAC,mBAAmB,CAAA;gBAGH,WAAW,EAAA,CAAA;sBAAjC,KAAK;uBAAC,cAAc,CAAA;gBACQ,iBAAiB,EAAA,CAAA;sBAA7C,KAAK;uBAAC,oBAAoB,CAAA;gBAER,OAAO,EAAA,CAAA;sBAAzB,KAAK;uBAAC,UAAU,CAAA;gBAEK,UAAU,EAAA,CAAA;sBAA/B,KAAK;uBAAC,aAAa,CAAA;gBAEC,SAAS,EAAA,CAAA;sBAA7B,KAAK;uBAAC,YAAY,CAAA;gBAEM,aAAa,EAAA,CAAA;sBAArC,KAAK;uBAAC,gBAAgB,CAAA;gBAIkB,2BAA2B,EAAA,CAAA;sBAAnE,KAAK;uBAAC,gCAAgC,CAAA;gBAGnC,IAAI,EAAA,CAAA;sBADP,eAAe;AAAC,gBAAA,IAAA,EAAA,CAAA,mBAAmB,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,CAAA;gBAY/D,KAAK,EAAA,CAAA;sBADR,YAAY;AAAC,gBAAA,IAAA,EAAA,CAAA,iBAAiB,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAA;gBASxD,OAAO,EAAA,CAAA;sBADV,YAAY;AAAC,gBAAA,IAAA,EAAA,CAAA,2BAA2B,EAAE,EAAE,IAAI,EAAE,2BAA2B,EAAE,CAAA;gBAQtE,WAAW,EAAA,CAAA;sBAApB,MAAM;gBACG,eAAe,EAAA,CAAA;sBAAxB,MAAM;gBACG,aAAa,EAAA,CAAA;sBAAtB,MAAM;gBACG,WAAW,EAAA,CAAA;sBAApB,MAAM;gBACG,cAAc,EAAA,CAAA;sBAAvB,MAAM;gBACG,qBAAqB,EAAA,CAAA;sBAA9B,MAAM;;;MExEI,yBAAyB,CAAA;AAIpC,IAAA,WAAA,GAAA;QAHS,IAAK,CAAA,KAAA,GAAkB,IAAI,CAAC;QAC9B,IAAO,CAAA,OAAA,GAAG,KAAK,CAAC;KAEN;IAEjB,QAAQ,GAAA;KACP;8GAPU,yBAAyB,EAAA,IAAA,EAAA,EAAA,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,QAAA,EAAA,IAAA,EAAA,yBAAyB,yFCNtC,8mBAeA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FDTa,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAJrC,SAAS;+BACE,uBAAuB,EAAA,QAAA,EAAA,8mBAAA,EAAA,CAAA;wDAIxB,KAAK,EAAA,CAAA;sBAAb,KAAK;;;MEDK,gBAAgB,CAAA;AAS3B,IAAA,WAAA,GAAA;QAPS,IAAK,CAAA,KAAA,GAAuB,SAAS,CAAC;QACtC,IAAI,CAAA,IAAA,GAAG,KAAK,CAAC;QACb,IAAG,CAAA,GAAA,GAAoB,SAAS,CAAC;QACjC,IAAO,CAAA,OAAA,GAAwB,KAAK,CAAC;QACxB,IAAU,CAAA,UAAA,GAAW,aAAa,CAAC;;AAElC,QAAA,IAAA,CAAA,UAAU,GAAsB,IAAI,YAAY,EAAO,CAAC;KAC9D;IAEjB,QAAQ,GAAA;KACP;AAEM,IAAA,cAAc,CAAC,MAAW,EAAA;QAC/B,MAAM,CAAC,cAAc,EAAE,CAAC;QACxB,MAAM,CAAC,eAAe,EAAE,CAAC;AACzB,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC7B,QAAA,OAAO,KAAK,CAAC;KACd;8GAnBU,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAhB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,gBAAgB,iNCN7B,6rBAeM,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FDTO,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAJ5B,SAAS;+BACE,cAAc,EAAA,QAAA,EAAA,6rBAAA,EAAA,CAAA;wDAKf,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,GAAG,EAAA,CAAA;sBAAX,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACgB,UAAU,EAAA,CAAA;sBAA/B,KAAK;uBAAC,aAAa,CAAA;gBAEG,UAAU,EAAA,CAAA;sBAAhC,MAAM;uBAAC,aAAa,CAAA;;;MELV,cAAc,CAAA;AAGzB,IAAA,WAAA,GAAA;QACE,IAAI,CAAC,QAAQ,GAAG,IAAI,eAAe,CAAQ,UAAU,CAAC,CAAC;QACvD,IAAI,CAAC,MAAM,GAAG,IAAI;aACf,QAAQ;AACR,aAAA,YAAY,EAAE;aACd,IAAI,CAAC,MAAM,CAAC,CAAC,KAAY,KAAK,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,KAAK,KAAK,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;KACvF;AAIM,IAAA,IAAI,CAAC,IAAe,EAAE,KAAc,EAAE,IAAa,EAAE,KAAc,EAAA;AACxE,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAW,CAAC,CAAC;KAC3D;8GAfU,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAd,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,cAFb,MAAM,EAAA,CAAA,CAAA,EAAA;;2FAEP,cAAc,EAAA,UAAA,EAAA,CAAA;kBAH1B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;MCDY,gBAAgB,CAAA;AAQ3B,IAAA,WAAA,GAAA;QALS,IAAC,CAAA,CAAA,GAAG,CAAC,CAAC;AACL,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,YAAY,EAAU,CAAC;QACvC,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;QACjB,IAAM,CAAA,MAAA,GAAG,KAAK,CAAC;KAEL;IAEjB,QAAQ,GAAA;QACN,MAAM,CAAC,MAAM,CAAC,KAAK,GAAG,GAAG,GAAG,IAAI,CAAC,QAAQ,GAAG,KAAK,GAAG,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;KAC1E;AAEM,IAAA,UAAU,CAAC,KAAa,EAAA;AAC7B,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AACnB,QAAA,UAAU,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;KAChD;8GAjBU,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAhB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,gBAAgB,sHCP7B,yvJAsGM,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FD/FO,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAJ5B,SAAS;+BACE,aAAa,EAAA,QAAA,EAAA,yvJAAA,EAAA,CAAA;wDAKd,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,CAAC,EAAA,CAAA;sBAAT,KAAK;gBACI,MAAM,EAAA,CAAA;sBAAf,MAAM;;;MEHI,yBAAyB,CAAA;AAIpC,IAAA,WAAA,CAAoB,OAAuB,EAAA;QAAvB,IAAO,CAAA,OAAA,GAAP,OAAO,CAAgB;QAF3C,IAAM,CAAA,MAAA,GAAY,EAAE,CAAC;KAE2B;IAEhD,QAAQ,GAAA;QACN,IAAI,CAAC,OAAO,CAAC,MAAM;aAChB,SAAS,CAAC,KAAK,IAAG;YACjB,IAAI,CAAC,MAAM,GAAG,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;AACtC,YAAA,UAAU,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,KAAK,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC;AAC3D,SAAC,CAAC,CAAC;KACN;AAED,IAAA,MAAM,CAAC,KAAa,EAAA;QAClB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;KAChF;8GAhBU,yBAAyB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,cAAA,EAAA,CAAA,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,QAAA,EAAA,IAAA,EAAA,yBAAyB,6DCRtC,qIACA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAV,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAW,gBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,GAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FDOa,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAJrC,SAAS;+BACE,uBAAuB,EAAA,QAAA,EAAA,qIAAA,EAAA,CAAA;;;MECtB,uBAAuB,CAAA;AAclC,IAAA,WAAA,GAAA;QAVO,IAAK,CAAA,KAAA,GAAG,KAAK,CAAC;AAGb,QAAA,IAAA,CAAA,MAAM,GAAG;AACf,YAAA,SAAS;AACT,YAAA,SAAS;AACT,YAAA,SAAS;AACT,YAAA,SAAS;SACV,CAAC;KAEe;IAEjB,QAAQ,GAAA;QACN,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;;QAE/E,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;KAC7C;IAEO,eAAe,GAAA;AACrB,QAAA,IAAI,IAAI,CAAC,IAAI,EAAE;YACb,IAAI,QAAQ,GAAG,EAAE,CAAC;AAClB,YAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACzC,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;oBAC/B,SAAS;iBACV;gBACD,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,EAAE;oBAC7D,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAChC,oBAAA,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;wBACzB,MAAM;qBACP;iBACF;aACF;AACD,YAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;SAC1B;KACF;8GAvCU,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,QAAA,EAAA,IAAA,EAAA,uBAAuB,qGCNpC,oLAGA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FDGa,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAJnC,SAAS;+BACE,qBAAqB,EAAA,QAAA,EAAA,oLAAA,EAAA,CAAA;wDAKxB,IAAI,EAAA,CAAA;sBADV,KAAK;gBAGC,KAAK,EAAA,CAAA;sBADX,KAAK;;;MEKK,eAAe,CAAA;AAU1B,IAAA,WAAA,GAAA;AALU,QAAA,IAAA,CAAA,WAAW,GAA0B,IAAI,YAAY,EAAW,CAAC;QAEnE,IAAS,CAAA,SAAA,GAAoB,SAAS,CAAC;QACvC,IAAU,CAAA,UAAA,GAAoB,SAAS,CAAC;KAE/B;AAEjB,IAAA,UAAU,CAAC,GAAQ,EAAA;QACjB,IAAG,GAAG,EAAE;AACN,YAAA,IAAI,CAAC,KAAK,GAAG,GAAG,IAAI,KAAK,CAAC;SAC3B;KACF;AACD,IAAA,gBAAgB,CAAC,EAAO,EAAA;AACtB,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;KACrB;AACD,IAAA,iBAAiB,CAAC,EAAO,EAAA;AACvB,QAAA,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;KACtB;AAEM,IAAA,MAAM,CAAC,KAAU,EAAA;AACtB,QAAA,IAAG,IAAI,CAAC,UAAU,EAAE;YAClB,IAAI,CAAC,UAAU,EAAE,CAAC;SACnB;KACF;IAED,QAAQ,GAAA;KACP;IAEM,WAAW,GAAA;AAChB,QAAA,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC;QACzB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAClC,QAAA,IAAG,IAAI,CAAC,SAAS,EAAE;AACjB,YAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAC5B;AACD,QAAA,IAAG,IAAI,CAAC,UAAU,EAAE;YAClB,IAAI,CAAC,UAAU,EAAE,CAAC;SACnB;KACF;8GA1CU,eAAe,EAAA,IAAA,EAAA,EAAA,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,QAAA,EAAA,IAAA,EAAA,eAAe,EARf,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,SAAA,EAAA;AACT,YAAA;AACE,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,eAAe,CAAC;AAC9C,gBAAA,KAAK,EAAE,IAAI;AACZ,aAAA;AACF,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECZH,+xBAcS,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FDAI,eAAe,EAAA,UAAA,EAAA,CAAA;kBAX3B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,YAAY,EAEX,SAAA,EAAA;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAE,UAAU,CAAC,qBAAqB,CAAC;AAC9C,4BAAA,KAAK,EAAE,IAAI;AACZ,yBAAA;AACF,qBAAA,EAAA,QAAA,EAAA,+xBAAA,EAAA,CAAA;wDAIM,KAAK,EAAA,CAAA;sBADX,KAAK;gBAGC,QAAQ,EAAA,CAAA;sBADd,KAAK;gBAEI,WAAW,EAAA,CAAA;sBAApB,MAAM;;;MEVI,iBAAiB,CAAA;IAU5B,WAAoB,CAAA,MAAc,EAA4B,QAAa,EAAA;QAAvD,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;QAA4B,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAK;;QAPjE,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;QACpB,IAAkB,CAAA,kBAAA,GAAG,oBAAoB,CAAC;QAC1C,IAAY,CAAA,YAAA,GAAG,mBAAmB,CAAC;AAChC,QAAA,IAAA,CAAA,UAAU,GAA0B,IAAI,YAAY,EAAW,CAAC;AAChE,QAAA,IAAA,CAAA,MAAM,GAAsB,IAAI,YAAY,EAAO,CAAC;AACpD,QAAA,IAAA,CAAA,OAAO,GAAsB,IAAI,YAAY,EAAO,CAAC;KAEkB;IAEjF,WAAW,GAAA;KACV;IAED,QAAQ,GAAA;KACP;AAEM,IAAA,mBAAmB,CAAC,SAAc,EAAA;QACvC,IAAI,eAAe,GAAG,EAAE,CAAC;AACzB,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,oBAAoB,EAAE,EAAE,MAAM,CAAC,KAAK,CAAC;QAC/D,IAAI,KAAK,EAAE;AACT,YAAA,IAAI,KAAK,CAAC,QAAQ,EAAE;gBAClB,IAAI,KAAK,CAAC,QAAQ,KAAK,YAAY,CAAC,OAAO,EAAE;oBAC3C,eAAe,GAAG,KAAK,CAAC;iBACzB;qBAAM,IAAI,KAAK,CAAC,QAAQ,KAAK,YAAY,CAAC,QAAQ,EAAE;oBACnD,eAAe,GAAG,KAAK,CAAC;iBACzB;qBAAM,IAAI,KAAK,CAAC,QAAQ,KAAK,YAAY,CAAC,OAAO,EAAE;oBAClD,eAAe,GAAG,KAAK,CAAC;iBACzB;aACF;AACD,YAAA,IAAI,KAAK,CAAC,WAAW,EAAE;gBACrB,IAAI,KAAK,CAAC,WAAW,KAAK,mBAAmB,CAAC,IAAI,EAAG;AACnD,oBAAA,IAAI,CAAC,YAAY,GAAG,6BAA6B,CAAC;iBACnD;qBAAM,IAAI,KAAK,CAAC,WAAW,KAAK,mBAAmB,CAAC,IAAI,EAAE;AACzD,oBAAA,IAAI,CAAC,YAAY,GAAG,8BAA8B,CAAC;iBACpD;qBAAM;AACL,oBAAA,IAAI,CAAC,YAAY,GAAG,mBAAmB,CAAC;iBACzC;aACF;SACF;AACD,QAAA,IAAI,CAAC,kBAAkB,GAAG,CAAqB,kBAAA,EAAA,eAAe,EAAE,CAAC;QACjE,IAAI,CAAC,IAAI,EAAE,CAAC;KACb;AAEM,IAAA,qBAAqB,CAAC,MAAW,EAAA;QACtC,IAAI,CAAC,IAAI,EAAE,CAAC;KACb;IAEM,IAAI,GAAA;QACT,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;AACjD,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AACrB,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KACxB;IAEM,IAAI,GAAA;AACT,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QACtB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;AACpD,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;;AAEzB,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAE5B;AA9DU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,0CAUgB,QAAQ,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAVzC,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,iBAAiB,iLCT9B,qcAUA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAX,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FDDa,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAJ7B,SAAS;+BACE,eAAe,EAAA,QAAA,EAAA,qcAAA,EAAA,CAAA;;0BAaY,MAAM;2BAAC,QAAQ,CAAA;yCAP1C,QAAQ,EAAA,CAAA;sBADjB,KAAK;uBAAC,SAAS,CAAA;gBAIN,UAAU,EAAA,CAAA;sBAAnB,MAAM;gBACG,MAAM,EAAA,CAAA;sBAAf,MAAM;gBACG,OAAO,EAAA,CAAA;sBAAhB,MAAM;;;METI,qBAAqB,CAAA;AAiBhC,IAAA,WAAA,GAAA;;QAXqB,IAAY,CAAA,YAAA,GAAoB,UAAU,CAAC;;QAEpC,IAAkB,CAAA,kBAAA,GAAsB,iBAAiB,CAAC;;QAE5D,IAAc,CAAA,cAAA,GAAkC,SAAS,CAAC;;QAE/D,IAAS,CAAA,SAAA,GAAwB,KAAK,CAAC;QACxC,IAAQ,CAAA,QAAA,GAAwB,IAAI,CAAC;QACnC,IAAU,CAAA,UAAA,GAAY,KAAK,CAAC;KAGjC;IAEjB,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,YAAY,EAAE,WAAW,EAAE,CAAC;KAClC;IAED,QAAQ,GAAA;AACJ,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,cAAc,EAAE,SAAS,CAAE,QAAQ,IAAI,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC,CAAC;KAClG;8GAzBU,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,QAAA,EAAA,IAAA,EAAA,qBAAqB,2aCRlC,iqEA0CA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,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,MAAA,EAAA,CAAA,QAAA,EAAA,aAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,OAAA,EAAA,MAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,YAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,uBAAA,EAAA,kBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FDlCa,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAJjC,SAAS;+BACE,oBAAoB,EAAA,QAAA,EAAA,iqEAAA,EAAA,CAAA;wDAKrB,KAAK,EAAA,CAAA;sBAAb,KAAK;gBAEoB,cAAc,EAAA,CAAA;sBAAvC,KAAK;uBAAC,iBAAiB,CAAA;gBAEH,YAAY,EAAA,CAAA;sBAAhC,KAAK;uBAAC,YAAY,CAAA;gBAES,kBAAkB,EAAA,CAAA;sBAA7C,KAAK;uBAAC,mBAAmB,CAAA;gBAEA,cAAc,EAAA,CAAA;sBAAvC,KAAK;uBAAC,iBAAiB,CAAA;gBAEH,SAAS,EAAA,CAAA;sBAA7B,KAAK;uBAAC,YAAY,CAAA;gBACC,QAAQ,EAAA,CAAA;sBAA3B,KAAK;uBAAC,WAAW,CAAA;gBACI,UAAU,EAAA,CAAA;sBAA/B,KAAK;uBAAC,aAAa,CAAA;;;MEbT,iBAAiB,CAAA;AAS1B,IAAA,WAAA,GAAA;AARQ,QAAA,IAAA,CAAA,UAAU,GAAoB,IAAI,OAAO,EAAU,CAAC;QACpD,IAAM,CAAA,MAAA,GAAU,EAAE,CAAC;AAEnB,QAAA,IAAA,CAAA,mBAAmB,GAAG,CAAC,IAAS,KAAI;AACxC,YAAA,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC;AAC7D,YAAA,OAAO,YAAY,IAAI,IAAI,IAAI,YAAY,IAAI,SAAS,CAAC;AAC7D,SAAC,CAAC;QAIc,IAAE,CAAA,EAAA,GAAW,UAAU,CAAC;QAmBxB,IAAY,CAAA,YAAA,GAAyC,SAAS,CAAC;AAC/D,QAAA,IAAA,CAAA,mBAAmB,GAAkC,MAAM,IAAI,CAAC;QAChE,IAAoB,CAAA,oBAAA,GAAyC,SAAS,CAAC;QACvE,IAAiB,CAAA,iBAAA,GAAqC,SAAS,CAAC;QAChE,IAAI,CAAA,IAAA,GAAY,KAAK,CAAC;QACtB,IAAQ,CAAA,QAAA,GAAY,IAAI,CAAC;QACzB,IAAU,CAAA,UAAA,GAAW,IAAI,CAAC;AACzB,QAAA,IAAA,CAAA,QAAQ,GAAqC,IAAI,YAAY,EAAE,CAAC;AAChE,QAAA,IAAA,CAAA,cAAc,GAAsB,IAAI,YAAY,EAAE,CAAC;QACjE,IAAW,CAAA,WAAA,GAAY,KAAK,CAAC;QAC7B,IAAa,CAAA,aAAA,GAAU,EAAE,CAAC;QAEvB,IAAU,CAAA,UAAA,GAAW,EAAE,CAAC;KAjCjB;IAKjB,IAA2B,KAAK,CAAC,KAAY,EAAA;AACzC,QAAA,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;YACpB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;SACxD;aAAM;YACH,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;SACxD;KACJ;AAED,IAAA,IAAW,KAAK,GAAA;AACZ,QAAA,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;YACpB,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;SACvD;aAAM;YACH,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;SACvD;KACJ;IAgBM,QAAQ,GAAA;QACX,IAAI,IAAI,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AACrC,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AACrB,YAAA,OAAO,CAAC,IAAI,CAAC,+DAA+D,CAAC,CAAC;SACjF;QACD,IAAI,CAAC,eAAe,EAAE,CAAC;AACvB,QAAA,IAAI,CAAC,UAAU;aACV,IAAI,CACD,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,EAC7B,oBAAoB,EAAE,CACzB;AACA,aAAA,SAAS,CAAC,CAAC,KAAa,KAAI;AACzB,YAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;AACxB,YAAA,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;AAChC,SAAC,CAAC,CAAC;KACV;IAEM,YAAY,GAAA;AACf,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;KAC3B;IAEM,cAAc,GAAA;AACjB,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;KAC5B;AAEM,IAAA,YAAY,CAAC,KAAU,EAAA;QAC1B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;KACnD;AAEM,IAAA,kBAAkB,CAAC,IAAS,EAAA;AAC/B,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC/B,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;AACf,YAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACjC;aAAM;AACH,YAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;SACrB;KACJ;AAEM,IAAA,UAAU,CAAC,IAAS,EAAA;QACvB,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAC/C,QAAA,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE;YACZ,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;SACvC;KACJ;IAEO,eAAe,CAAC,aAAiC,SAAS,EAAA;AAC9D,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;KAClC;8GA3FQ,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAjB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,iBAAiB,yZCT9B,2nKAoHc,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,8CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,wDAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAY,qBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,qBAAA,EAAA,sBAAA,EAAA,uBAAA,EAAA,YAAA,EAAA,SAAA,EAAA,oBAAA,EAAA,oBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FD3GD,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAJ7B,SAAS;+BACI,cAAc,EAAA,QAAA,EAAA,2nKAAA,EAAA,CAAA;wDAcR,EAAE,EAAA,CAAA;sBAAjB,KAAK;gBACU,WAAW,EAAA,CAAA;sBAA1B,KAAK;gBAEqB,KAAK,EAAA,CAAA;sBAA/B,KAAK;uBAAC,OAAO,CAAA;gBAgBE,YAAY,EAAA,CAAA;sBAA3B,KAAK;gBACU,mBAAmB,EAAA,CAAA;sBAAlC,KAAK;gBACU,oBAAoB,EAAA,CAAA;sBAAnC,KAAK;gBACU,iBAAiB,EAAA,CAAA;sBAAhC,KAAK;gBACU,IAAI,EAAA,CAAA;sBAAnB,KAAK;gBACU,QAAQ,EAAA,CAAA;sBAAvB,KAAK;gBACU,UAAU,EAAA,CAAA;sBAAzB,KAAK;gBACW,QAAQ,EAAA,CAAA;sBAAxB,MAAM;gBACU,cAAc,EAAA,CAAA;sBAA9B,MAAM;;;ME1CE,oBAAoB,CAAA;AAC7B,IAAA,WAAA,CAAmB,QAA0B,EAAA;QAA1B,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAkB;KAAK;8GADzC,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;kGAApB,oBAAoB,EAAA,QAAA,EAAA,eAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAApB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAHhC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,eAAe;AAC5B,iBAAA,CAAA;;;MCYY,eAAe,CAAA;AAGxB,IAAA,WAAA,CAC8D,SAAe,EAAA;QAAf,IAAS,CAAA,SAAA,GAAT,SAAS,CAAM;QAHrE,IAAS,CAAA,SAAA,GAAY,KAAK,CAAC;;QAOc,IAAO,CAAA,OAAA,GAA4B,IAAI,CAAC;KAHpF;;AAWL,IAAA,IAAW,KAAK,GAAA;AACZ,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;AAC5D,QAAA,OAAO,KAAK,CAAC;KAChB;;AAGD,IAAA,IAAW,QAAQ,GAAA;QACf,OAAO,IAAI,CAAC,SAAS,CAAC;KACzB;;IAGD,IAAW,QAAQ,CAAC,QAAiB,EAAA;AACjC,QAAA,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;KAC7B;IAEM,QAAQ,GAAA;QACX,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC;KAClC;AAjCQ,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,kBAIA,oBAAoB,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAJnC,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,eAAe,EAUV,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,EAAA,EAAA,EAAA,IAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,OAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,oBAAoB,EAFvB,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,SAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,WAAW,EAhBZ,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;AAIT,IAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;2FAIQ,eAAe,EAAA,UAAA,EAAA,CAAA;kBAV3B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,SAAS;AACnB,oBAAA,QAAQ,EAAE,CAAA;;;;AAIT,IAAA,CAAA;oBACD,aAAa,EAAE,iBAAiB,CAAC,IAAI;oBACrC,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAClD,iBAAA,CAAA;;0BAKQ,QAAQ;;0BAAI,MAAM;2BAAC,oBAAoB,CAAA;yCAIK,OAAO,EAAA,CAAA;sBAAvD,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,WAAW,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;gBAEG,KAAK,EAAA,CAAA;sBAA/C,YAAY;uBAAC,oBAAoB,CAAA;gBAElB,EAAE,EAAA,CAAA;sBAAjB,KAAK;gBACU,SAAS,EAAA,CAAA;sBAAxB,KAAK;;;MCjBG,oBAAoB,CAAA;AAC7B,IAAA,WAAA,GAAA;;QAGgE,IAAI,CAAA,IAAA,GAA2C,SAAS,CAAC;;AAErG,QAAA,IAAA,CAAA,UAAU,GAAkC,IAAI,YAAY,EAAmB,CAAC;KALnF;;AAQjB,IAAA,IAAW,UAAU,GAAA;AACjB,QAAA,OAAO,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC;KAC3C;;AAGD,IAAA,IAAW,eAAe,GAAA;AACtB,QAAA,OAAO,IAAI,CAAC,UAAU,EAAE,KAAK,IAAI,SAAS,CAAC;KAC9C;AAEM,IAAA,QAAQ,MAAY;AAEjB,IAAA,YAAY,CAAC,WAA4B,EAAA;AAC/C,QAAA,IAAI,WAAW,CAAC,QAAQ,EAAE;YACtB,OAAO;SACV;QACD,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,GAAoB,KAAK,GAAG,CAAC,QAAQ,GAAG,GAAG,CAAC,EAAE,KAAK,WAAW,CAAC,EAAE,CAAC,CAAC;AACvF,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;KACrC;AAES,IAAA,kBAAkB,CAAC,gBAAwB,EAAA;AACjD,QAAA,IAAI,gBAAgB,KAAK,IAAI,CAAC,eAAe,EAAE;YAC3C,OAAO;SACV;QACD,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,GAAoB,EAAE,KAAa,KAAK,GAAG,CAAC,QAAQ,GAAG,KAAK,KAAK,gBAAgB,CAAC,CAAC;AACvG,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC;KAC1D;IAEM,kBAAkB,GAAA;AACrB,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACZ,OAAO;SACV;KACJ;IAEM,qBAAqB,GAAA;AACxB,QAAA,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;YACnC,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;YAC/D,IAAI,CAAC,SAAS,EAAE;gBACZ,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAE,CAAC,QAAQ,GAAG,IAAI,CAAC;aACrC;SACJ;KACJ;8GAjDQ,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,QAAA,EAAA,IAAA,EAAA,oBAAoB,EAJlB,QAAA,EAAA,eAAA,EAAA,OAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,SAAA,EAAA;AACP,YAAA,EAAE,OAAO,EAAE,oBAAoB,EAAE,WAAW,EAAE,UAAU,CAAC,MAAM,oBAAoB,CAAC,EAAE;SACzF,EAMgB,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,MAAA,EAAA,SAAA,EAAA,eAAe,gDChBpC,q7CAqC0C,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,OAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FDzB7B,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAPhC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,eAAe,EAEd,SAAA,EAAA;AACP,wBAAA,EAAE,OAAO,EAAE,oBAAoB,EAAE,WAAW,EAAE,UAAU,CAAC,MAA0B,oBAAA,CAAC,EAAE;AACzF,qBAAA,EAAA,QAAA,EAAA,q7CAAA,EAAA,CAAA;wDAM+D,IAAI,EAAA,CAAA;sBAAnE,eAAe;AAAC,gBAAA,IAAA,EAAA,CAAA,eAAe,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAA;gBAEnC,UAAU,EAAA,CAAA;sBAA7B,MAAM;;;MEbE,oBAAoB,CAAA;AAC7B,IAAA,WAAA,CAAmB,QAA0B,EAAA;QAA1B,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAkB;KAAK;8GADzC,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;kGAApB,oBAAoB,EAAA,QAAA,EAAA,eAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAApB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAHhC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,eAAe;AAC5B,iBAAA,CAAA;;;MCCY,qBAAqB,CAAA;AAC9B,IAAA,WAAA,CAAmB,QAA0B,EAAA;QAA1B,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAkB;KAAK;8GADzC,qBAAqB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAArB,qBAAqB,EAAA,QAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAArB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAHjC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,gBAAgB;AAC7B,iBAAA,CAAA;;;ICGW,UAIX;AAJD,CAAA,UAAY,SAAS,EAAA;AACjB,IAAA,SAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,SAAA,CAAA,WAAA,CAAA,GAAA,WAAuB,CAAA;AACvB,IAAA,SAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACzB,CAAC,EAJW,SAAS,KAAT,SAAS,GAIpB,EAAA,CAAA,CAAA,CAAA;AAAA,CAAC;MAYW,gBAAgB,CAAA;AACzB,IAAA,WAAA,CAC6D,QAAc,EAAA;QAAd,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAM;KACtE;;AAcL,IAAA,IAAW,KAAK,GAAA;QACZ,OAAO,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;KAC3E;;AAGD,IAAA,IAAW,MAAM,GAAA;QACb,OAAO,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,KAAK,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;KAChF;;AAGD,IAAA,IAAW,OAAO,GAAA;AACd,QAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;AACnB,YAAA,OAAO,IAAI,CAAC;SACf;AACD,QAAA,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;KACjC;;AAGD,IAAA,IAAW,KAAK,GAAA;AACZ,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,EAAE,gBAAgB,CAAC;AACrD,QAAA,IAAI,YAAY,KAAK,IAAI,CAAC,KAAK,EAAE;YAC7B,OAAO,SAAS,CAAC,MAAM,CAAC;SAC3B;AACD,QAAA,IAAI,YAAY,GAAG,IAAI,CAAC,KAAK,EAAE;YAC3B,OAAO,SAAS,CAAC,SAAS,CAAC;SAC9B;QACD,OAAO,SAAS,CAAC,QAAQ,CAAC;KAC7B;AA5CQ,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,kBAED,mBAAmB,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAFlC,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,gBAAgB,+IAQX,qBAAqB,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,UAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAErB,oBAAoB,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,SAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAJvB,WAAW,EAdZ,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;AAIT,IAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;2FAIQ,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAV5B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,UAAU;AACpB,oBAAA,QAAQ,EAAE,CAAA;;;;AAIT,IAAA,CAAA;oBACD,aAAa,EAAE,iBAAiB,CAAC,IAAI;oBACrC,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAClD,iBAAA,CAAA;;0BAGQ,QAAQ;;0BAAI,MAAM;2BAAC,mBAAmB,CAAA;yCAIM,OAAO,EAAA,CAAA;sBAAvD,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,WAAW,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;gBAEI,SAAS,EAAA,CAAA;sBAApD,YAAY;uBAAC,qBAAqB,CAAA;gBAEQ,QAAQ,EAAA,CAAA;sBAAlD,YAAY;uBAAC,oBAAoB,CAAA;gBAElB,KAAK,EAAA,CAAA;sBAApB,KAAK;gBAEU,WAAW,EAAA,CAAA;sBAA1B,KAAK;;;ICrCE,YASX;AATD,CAAA,UAAY,WAAW,EAAA;AACnB,IAAA,WAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,IAAA,WAAA,CAAA,gBAAA,CAAA,GAAA,gBAAiC,CAAA;AACjC,IAAA,WAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,IAAA,WAAA,CAAA,iBAAA,CAAA,GAAA,iBAAmC,CAAA;AACnC,IAAA,WAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,WAAA,CAAA,kBAAA,CAAA,GAAA,kBAAqC,CAAA;AACrC,IAAA,WAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACrB,IAAA,WAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACrB,CAAC,EATW,WAAW,KAAX,WAAW,GAStB,EAAA,CAAA,CAAA;;MCKY,mBAAmB,CAAA;AAK5B,IAAA,WAAA,CAAoB,kBAAqC,EAAA;QAArC,IAAkB,CAAA,kBAAA,GAAlB,kBAAkB,CAAmB;;QAHjD,IAAiB,CAAA,iBAAA,GAAW,CAAC,CAAC;QAC9B,IAAY,CAAA,YAAA,GAAG,KAAK,CAAC;;AAOH,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAqB,CAAC;;AAEpD,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,YAAY,EAAQ,CAAC;;QAE/C,IAAM,CAAA,MAAA,GAAY,KAAK,CAAC;;AAExB,QAAA,IAAA,CAAA,IAAI,GAAgB,WAAW,CAAC,MAAM,CAAC;QAChD,IAAS,CAAA,SAAA,GAAG,SAAS,CAAC;QACtB,IAAW,CAAA,WAAA,GAAG,WAAW,CAAC;KAb6B;;AAgB9D,IAAA,IAAW,WAAW,GAAA;QAClB,OAAO,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;KAClD;;AAGD,IAAA,IAAW,gBAAgB,GAAA;QACvB,OAAO,IAAI,CAAC,iBAAiB,CAAC;KACjC;;AAGD,IAAA,IAAW,SAAS,GAAA;AAChB,QAAA,OAAO,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC;KACrC;;AAGD,IAAA,IAAW,YAAY,GAAA;QACnB,OAAO,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,CAAC,CAAC;KAC1D;;AAGD,IAAA,IAAW,WAAW,GAAA;QAClB,OAAO,IAAI,CAAC,YAAY,CAAC;KAC5B;AAEM,IAAA,QAAQ,MAAY;IAEpB,kBAAkB,GAAA;AACrB,QAAA,IAAI,CAAC,kBAAkB,CAAC,aAAa,EAAE,CAAC;KAC3C;;IAGM,YAAY,GAAA;QACf,IAAI,IAAI,CAAC,WAAW,EAAE,MAAM,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;AAChD,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;AACzB,YAAA,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;SACzB;AACD,QAAA,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;YACpB,OAAO;SACV;QACD,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC,CAAC;KAC3D;;IAGM,gBAAgB,GAAA;AACnB,QAAA,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACjB,OAAO;SACV;QACD,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC,CAAC;KAC3D;AAEM,IAAA,YAAY,CAAC,YAA8B,EAAA;AAC9C,QAAA,IAAI,CAAC,sBAAsB,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;KACnD;AAEO,IAAA,sBAAsB,CAAC,QAAgB,EAAA;QAC3C,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;QACxC,MAAM,WAAW,GAAG,UAAU,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACtD,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,KAC1B,CAAC,CAAC,WAAW,CAAC,OAAO,IAAI,QAAQ,IAAI,IAAI,CAAC,gBAAgB;AAC1D,aAAC,WAAW,CAAC,OAAO,IAAI,QAAQ,GAAG,IAAI,CAAC,gBAAgB,GAAG,CAAC,IAAI,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,GAAG,CAAC,EAAE,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;SAC/I,CAAC;QACF,IAAI,UAAU,EAAE;YACZ,OAAO;SACV;AACD,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;AAClB,YAAA,aAAa,EAAE,QAAQ;YACvB,uBAAuB,EAAE,IAAI,CAAC,gBAAgB;AAC9C,YAAA,YAAY,EAAE,UAAU,CAAC,QAAQ,CAAC;AAClC,YAAA,sBAAsB,EAAE,WAAW;AACtC,SAAA,CAAC,CAAC;AACH,QAAA,IAAI,CAAC,iBAAiB,GAAG,QAAQ,CAAC;KACrC;8GA5FQ,mBAAmB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,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,QAAA,EAAA,IAAA,EAAA,mBAAmB,EAJjB,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,SAAA,EAAA;AACP,YAAA,EAAE,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,UAAU,CAAC,MAAM,mBAAmB,CAAC,EAAE;SACvF,EAUgB,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,OAAA,EAAA,SAAA,EAAA,gBAAgB,gDCtBrC,2k9BA8fe,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FDhfF,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAP/B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,aAAa,EAEZ,SAAA,EAAA;AACP,wBAAA,EAAE,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,UAAU,CAAC,MAAyB,mBAAA,CAAC,EAAE;AACvF,qBAAA,EAAA,QAAA,EAAA,2k9BAAA,EAAA,CAAA;sFAUgE,KAAK,EAAA,CAAA;sBAArE,eAAe;AAAC,gBAAA,IAAA,EAAA,CAAA,gBAAgB,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAA;gBAE9B,WAAW,EAAA,CAAA;sBAApC,MAAM;gBAEmB,SAAS,EAAA,CAAA;sBAAlC,MAAM;gBAES,MAAM,EAAA,CAAA;sBAArB,KAAK;gBAEU,IAAI,EAAA,CAAA;sBAAnB,KAAK;;;MEhBG,qBAAqB,CAAA;AAehC,IAAA,WAAA,GAAA;QAdS,IAAK,CAAA,KAAA,GAAY,KAAK,CAAC;QACvB,IAAQ,CAAA,QAAA,GAAY,KAAK,CAAC;QAC1B,IAAI,CAAA,IAAA,GAAY,IAAI,CAAC;AAOpB,QAAA,IAAA,CAAA,WAAW,GAA0B,IAAI,YAAY,EAAW,CAAC;QAEnE,IAAS,CAAA,SAAA,GAAoB,SAAS,CAAC;QACvC,IAAU,CAAA,UAAA,GAAoB,SAAS,CAAC;KAE/B;IAEjB,QAAQ,GAAA;KACP;AAED,IAAA,UAAU,CAAC,GAAQ,EAAA;QACjB,IAAG,GAAG,EAAE;AACN,YAAA,IAAI,CAAC,KAAK,GAAG,GAAG,IAAI,KAAK,CAAC;SAC3B;KACF;AACD,IAAA,gBAAgB,CAAC,EAAO,EAAA;AACtB,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;KACrB;AACD,IAAA,iBAAiB,CAAC,EAAO,EAAA;AACvB,QAAA,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;KACtB;AAEM,IAAA,MAAM,CAAC,KAAU,EAAA;AACtB,QAAA,IAAG,IAAI,CAAC,UAAU,EAAE;YAClB,IAAI,CAAC,UAAU,EAAE,CAAC;SACnB;KACF;IAEM,WAAW,GAAA;AAChB,QAAA,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC;QACzB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAClC,QAAA,IAAG,IAAI,CAAC,SAAS,EAAE;AACjB,YAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAC5B;AACD,QAAA,IAAG,IAAI,CAAC,UAAU,EAAE;YAClB,IAAI,CAAC,UAAU,EAAE,CAAC;SACnB;KACF;8GA/CU,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,QAAA,EAAA,IAAA,EAAA,qBAAqB,EARrB,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,MAAA,EAAA,QAAA,EAAA,CAAA,WAAA,EAAA,UAAA,CAAA,EAAA,SAAA,EAAA,CAAA,YAAA,EAAA,WAAA,CAAA,EAAA,WAAA,EAAA,aAAA,EAAA,eAAA,EAAA,CAAA,kBAAA,EAAA,iBAAA,CAAA,EAAA,gBAAA,EAAA,CAAA,mBAAA,EAAA,kBAAA,CAAA,EAAA,EAAA,OAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,SAAA,EAAA;AACT,YAAA;AACE,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,qBAAqB,CAAC;AACpD,gBAAA,KAAK,EAAE,IAAI;AACZ,aAAA;AACF,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECZH,shFA6CM,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FD/BO,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAXjC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,mBAAmB,EAElB,SAAA,EAAA;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAE,UAAU,CAAC,2BAA2B,CAAC;AACpD,4BAAA,KAAK,EAAE,IAAI;AACZ,yBAAA;AACF,qBAAA,EAAA,QAAA,EAAA,shFAAA,EAAA,CAAA;wDAGQ,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACS,IAAI,EAAA,CAAA;sBAAlB,KAAK;uBAAC,MAAM,CAAA;gBACO,QAAQ,EAAA,CAAA;sBAA3B,KAAK;uBAAC,WAAW,CAAA;gBACG,SAAS,EAAA,CAAA;sBAA7B,KAAK;uBAAC,YAAY,CAAA;gBACG,WAAW,EAAA,CAAA;sBAAhC,KAAK;uBAAC,aAAa,CAAA;gBACO,eAAe,EAAA,CAAA;sBAAzC,KAAK;uBAAC,kBAAkB,CAAA;gBACG,gBAAgB,EAAA,CAAA;sBAA3C,KAAK;uBAAC,mBAAmB,CAAA;gBAChB,WAAW,EAAA,CAAA;sBAApB,MAAM;;;MEhBI,0BAA0B,CAAA;AAMrC,IAAA,WAAA,GAAA;QALS,IAAI,CAAA,IAAA,GAAuB,SAAS,CAAC;QAGrC,IAAO,CAAA,OAAA,GAAY,IAAI,CAAC;AACvB,QAAA,IAAA,CAAA,WAAW,GAAsB,IAAI,YAAY,CAAC,SAAS,CAAC,CAAC;KACtD;IAEjB,QAAQ,GAAA;KACP;AAEM,IAAA,YAAY,CAAC,WAAgB,EAAA;AAClC,QAAA,IAAI,CAAC,KAAK,GAAG,WAAW,CAAC;AACzB,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;KACpC;8GAdU,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,QAAA,EAAA,IAAA,EAAA,0BAA0B,0LCRvC,u6CA0BM,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,qBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,UAAA,EAAA,UAAA,EAAA,aAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,gBAAA,EAAA,iBAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FDlBO,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBAJtC,SAAS;+BACE,yBAAyB,EAAA,QAAA,EAAA,u6CAAA,EAAA,CAAA;wDAI1B,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACI,WAAW,EAAA,CAAA;sBAApB,MAAM;;;MEVI,0BAA0B,CAAA;AAErC,IAAA,WAAA,GAAA;QAD2B,IAAQ,CAAA,QAAA,GAAoB,SAAS,CAAC;KAChD;8GAFN,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAA1B,0BAA0B,EAAA,QAAA,EAAA,yBAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,UAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EACvB,WAAW,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAFgC,2BAA2B,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;2FACzE,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBADtC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA,EAAC,QAAQ,EAAE,yBAAyB,EAAE,QAAQ,EAAE,2BAA2B,EAAC,CAAA;wDAE1D,QAAQ,EAAA,CAAA;sBAAlC,YAAY;uBAAC,WAAW,CAAA;;;MCAd,wBAAwB,CAAA;AAGnC,IAAA,WAAA,GAAA;QAD2B,IAAQ,CAAA,QAAA,GAAoB,SAAS,CAAC;KAChD;8GAHN,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAAxB,wBAAwB,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,UAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAErB,WAAW,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAH+B,2BAA2B,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;2FACxE,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBADpC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA,EAAC,QAAQ,EAAE,uBAAuB,EAAG,QAAQ,EAAE,2BAA2B,EAAC,CAAA;wDAE3E,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACqB,QAAQ,EAAA,CAAA;sBAAlC,YAAY;uBAAC,WAAW,CAAA;;;MCGd,oBAAoB,CAAA;IAY/B,IACI,KAAK,CAAC,IAAyC,EAAA;QACjD,IAAI,IAAI,EAAE;AACR,YAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;SACrC;KACF;AAGD,IAAA,WAAA,CAAoB,MAAc,EAAA;QAAd,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;QAlBzB,IAAK,CAAA,KAAA,GAAuB,SAAS,CAAC;QACtC,IAAI,CAAA,IAAA,GAAG,KAAK,CAAC;QACA,IAAU,CAAA,UAAA,GAAwB,IAAI,CAAC;QACvC,IAAU,CAAA,UAAA,GAAwB,IAAI,CAAC;QACvC,IAAU,CAAA,UAAA,GAAW,aAAa,CAAC;;AAElC,QAAA,IAAA,CAAA,UAAU,GAAsB,IAAI,YAAY,EAAO,CAAC;QACxE,IAAa,CAAA,aAAA,GAAG,CAAC,CAAC;QAElB,IAAa,CAAA,aAAA,GAAU,EAAE,CAAC;QAQS,IAAM,CAAA,MAAA,GAA2C,SAAS,CAAC;KAC9D;IAEvC,QAAQ,GAAA;KACP;AAEM,IAAA,cAAc,CAAC,MAAW,EAAA;QAC/B,MAAM,CAAC,cAAc,EAAE,CAAC;QACxB,MAAM,CAAC,eAAe,EAAE,CAAC;AACzB,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC7B,QAAA,OAAO,KAAK,CAAC;KACd;8GA9BU,oBAAoB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAd,IAAA,CAAA,MAAA,EAAA,CAAA,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,QAAA,EAAA,IAAA,EAAA,oBAAoB,+SAmBjB,0BAA0B,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,OAAA,EAAA,SAAA,EAPvB,wBAAwB,EAAU,IAAA,EAAA,wBAAwB,6BCrB7E,03DAqCA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FD5Ba,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAJhC,SAAS;+BACE,kBAAkB,EAAA,QAAA,EAAA,03DAAA,EAAA,CAAA;6EAKnB,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACgB,UAAU,EAAA,CAAA;sBAA/B,KAAK;uBAAC,aAAa,CAAA;gBACE,UAAU,EAAA,CAAA;sBAA/B,KAAK;uBAAC,aAAa,CAAA;gBACE,UAAU,EAAA,CAAA;sBAA/B,KAAK;uBAAC,aAAa,CAAA;gBAEG,UAAU,EAAA,CAAA;sBAAhC,MAAM;uBAAC,aAAa,CAAA;gBAKjB,KAAK,EAAA,CAAA;sBADR,eAAe;AAAC,gBAAA,IAAA,EAAA,CAAA,wBAAwB,EAAE,EAAE,IAAI,EAAE,wBAAwB,EAAE,CAAA;gBAOnC,MAAM,EAAA,CAAA;sBAA/C,YAAY;uBAAC,0BAA0B,CAAA;;;MErB7B,kBAAkB,CAAA;AAa7B,IAAA,WAAA,GAAA;QAZS,IAAI,CAAA,IAAA,GAAG,KAAK,CAAC;QACb,IAAK,CAAA,KAAA,GAAG,CAAC,CAAC;AACZ,QAAA,IAAA,CAAA,MAAM,GAAU,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;QACvC,IAAI,CAAA,IAAA,GAAW,QAAQ,CAAC;QACxB,IAAM,CAAA,MAAA,GAAa,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;QACpD,IAAM,CAAA,MAAA,GAAa,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;AAChC,QAAA,IAAA,CAAA,MAAM,GAAa;YAC1B,wBAAwB;YACxB,yBAAyB;YACzB,uBAAuB;SACxB,CAAC;KAGD;AAED,IAAA,WAAW,CAAC,OAAsB,EAAA;AAChC,QAAA,IAAI,OAAO,CAAC,KAAK,EAAE;AACjB,YAAA,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;AACjB,YAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE;AACpC,gBAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;aACtB;SACF;KACF;AAEM,IAAA,QAAQ,CAAC,KAAU,EAAA;QACxB,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QAAA,CAAC;KAC/B;8GA3BU,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,QAAA,EAAA,IAAA,EAAA,kBAAkB,yLCP/B,m8EAyCU,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FDlCG,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAJ9B,SAAS;+BACE,gBAAgB,EAAA,QAAA,EAAA,m8EAAA,EAAA,CAAA;wDAIjB,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBAEG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,MAAM,EAAA,CAAA;sBAAd,KAAK;gBACG,MAAM,EAAA,CAAA;sBAAd,KAAK;gBACG,MAAM,EAAA,CAAA;sBAAd,KAAK;;;MERK,oBAAoB,CAAA;AAS/B,IAAA,WAAA,GAAA;QARS,IAAK,CAAA,KAAA,GAAW,CAAC,CAAC;QAElB,IAAK,CAAA,KAAA,GAAW,CAAC,CAAC;QAElB,IAAI,CAAA,IAAA,GAAuB,SAAS,CAAC;QACrC,IAAI,CAAA,IAAA,GAAY,KAAK,CAAC;QACxB,IAAU,CAAA,UAAA,GAAW,CAAC,CAAC;KAG7B;AAED,IAAA,WAAW,CAAC,OAAsB,EAAA;QAChC,IAAI,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,EAAE;YAClC,IAAI,CAAC,cAAc,EAAE,CAAC;SACvB;KACF;IAEO,cAAc,GAAA;AACpB,QAAA,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE;AAClB,YAAA,IAAI,CAAC,UAAU,GAAG,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,GAAG,CAAC;SACnD;aAAM;AACL,YAAA,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;SACrB;KACF;8GAxBU,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,QAAA,EAAA,IAAA,EAAA,oBAAoB,qOCNjC,iZAOE,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FDDW,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAJhC,SAAS;+BACE,kBAAkB,EAAA,QAAA,EAAA,iZAAA,EAAA,CAAA;wDAInB,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACe,SAAS,EAAA,CAAA;sBAA7B,KAAK;uBAAC,YAAY,CAAA;gBACV,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACe,SAAS,EAAA,CAAA;sBAA7B,KAAK;uBAAC,YAAY,CAAA;gBACV,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,IAAI,EAAA,CAAA;sBAAZ,KAAK;;;METK,6BAA6B,CAAA;AAExC,IAAA,WAAA,CAAmB,gBAAkC,EAAA;QAAlC,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAkB;QAD5C,IAAQ,CAAA,QAAA,GAAW,EAAE,CAAC;KAC0B;8GAF9C,6BAA6B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAA7B,6BAA6B,EAAA,QAAA,EAAA,2BAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAA7B,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBADzC,SAAS;mBAAC,EAAE,QAAQ,EAAE,2BAA2B,EAAE,CAAA;qFAEzC,QAAQ,EAAA,CAAA;sBAAhB,KAAK;;;ACFR;;;;AAIG;MACU,UAAU,CAAA;AACrB,IAAA,WAAA,CAAmB,KAAY,EAAS,OAAiB,EAAS,YAAgC,EAAA;QAA/E,IAAK,CAAA,KAAA,GAAL,KAAK,CAAO;QAAS,IAAO,CAAA,OAAA,GAAP,OAAO,CAAU;QAAS,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAoB;KAAI;AACvG;;ACOD;;;;;;;;;;AAUG;MACU,eAAe,CAAA;AA6B1B,IAAA,WAAA,CACU,GAAiC,EACjC,GAA6B,EAC7B,cAA8B,EAC9B,QAAkB,EAAA;QAHlB,IAAG,CAAA,GAAA,GAAH,GAAG,CAA8B;QACjC,IAAG,CAAA,GAAA,GAAH,GAAG,CAA0B;QAC7B,IAAc,CAAA,cAAA,GAAd,cAAc,CAAgB;QAC9B,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAU;AAhC5B;;AAEG;AACH,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,OAAO,EAAE,CAAC;AAC7B;;;AAGG;AACH,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AACxB;;;AAGG;AACH,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,OAAO,EAAE,CAAC;AAC7B;;;AAGG;AACH,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,OAAO,EAAE,CAAC;QAMjB,IAAS,CAAA,SAAA,GAAqB,EAAE,CAAC;QAEjC,IAAwB,CAAA,wBAAA,GAAG,MAAM,CAAC;KAOtC;AAEJ;;;;AAIG;AACI,IAAA,MAAM,CAAC,aAAsB,EAAA;QAClC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAAC,uBAAuB,CAAI,aAAa,CAAC,CAAC;AAC3E,QAAA,OAAO,IAAI,CAAC;KACb;AAED;;;;AAIG;AACI,IAAA,EAAE,CAAC,SAA+B,EAAA;QACvC,IAAI,CAAC,SAAS,GAAG,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC;AAC7C,QAAA,OAAO,IAAI,CAAC;KACb;AAED;;;;;;;AAOG;AACI,IAAA,OAAO,CAAC,QAAwB,EAAA;AACrC,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC9B,QAAA,OAAO,IAAI,CAAC;KACb;AAED;;;;;;;AAOG;IACI,IAAI,CAAC,UAAkC,EAAE,EAAA;AAC9C,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE;AACrB,YAAA,MAAM,KAAK,CAAC,4BAA4B,CAAC,CAAC;SAC3C;AACD,QAAA,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE;AAC1B,YAAA,MAAM,KAAK,CAAC,6BAA6B,CAAC,CAAC;SAC5C;AACD,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAE3B,QAAA,IAAI,OAAO,CAAC,OAAO,EAAE;AACnB,YAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;SAC9F;AACD,QAAA,IAAI,CAAC,8BAA8B,CAAC,OAAO,CAAC,CAAC;QAC7C,IAAI,CAAC,wBAAwB,EAAE,CAAC;QAChC,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAE9B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAE9B,OAAO,IAAI,CAAC,YAAY,CAAC;KAC1B;AAED;;;;;;;AAOG;IACI,IAAI,CAAC,EAAoB,EAAE,MAAY,EAAA;AAC5C,QAAA,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;AACtB,YAAA,MAAM,KAAK,CAAC,qCAAqC,CAAC,CAAC;SACpD;QAED,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QAEnD,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,aAAa,CAAC;AAC7D,QAAA,WAAW,CAAC,UAAU,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;AAChD,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE,YAAY,EAAE;AACjC,YAAA,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;SACxC;QACD,IAAI,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,UAAU,EAAE,OAAO,EAAE;AACxC,YAAA,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;SAC5D;AACD,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE,OAAO,EAAE;AAC5B,YAAA,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;SACnC;AACD,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,CAAC;AACzB,QAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,CAAC;AAE3B,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC;AAE/C,QAAA,OAAO,IAAI,CAAC;KACb;IAED,iBAAiB,GAAA;QACf,OAAO,IAAI,CAAC,cAAc,CAAC;KAC5B;IAEO,sBAAsB,GAAA;AAC5B,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE,YAAY,EAAE;YACjC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,QAAQ,CAAC;YAC5D,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,iBAAiB,CAAC,YAAY,EAAE,CAAC;YAC9D,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC;SAChE;AACD,QAAA,IAAI,CAAC,YAAa,CAAC,iBAAiB,CAAC,YAAY,EAAE,CAAC;AACpD,QAAA,IAAI,CAAC,YAAa,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC;KACtD;AAEO,IAAA,8BAA8B,CAAC,OAA+B,EAAA;AACpE,QAAA,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC;YAC/B,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,MAAM,EAAE,IAAI,CAAC,QAAQ;AACtB,SAAA,CAAC,CAAC;AACH,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,gBAAiB,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;QACpF,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QAC3D,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC;QAC3C,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;KACpD;IAEO,wBAAwB,GAAA;AAC9B,QAAA,IAAI,IAAI,CAAC,SAAS,YAAY,UAAU,EAAE;AACxC,YAAA,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAC,aAAa,CAAC,CAAC;SACrF;AACD,QAAA,IAAI,OAAO,IAAI,CAAC,SAAS,KAAK,QAAQ,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE;AACzE,YAAA,MAAM,eAAe,GAAG,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;YACxH,IAAI,CAAC,eAAe,EAAE;gBACpB,OAAO;aACR;YACD,eAAe,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAC,aAAa,CAAC,CAAC;SACxE;KACF;AAEO,IAAA,aAAa,CAAC,OAAmC,EAAE,OAAa,EAAE,YAAkB,EAAA;;AAE1F,QAAA,IAAI,OAAO,YAAY,WAAW,EAAE;AAClC,YAAA,IAAI,IAAI,CAAC,GAAG,EAAE;AACZ,gBAAA,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,kBAAkB,CAAiB,OAAO,EAAE,OAAO,CAAC,CAAC;gBAC9E,OAAO,CAAC,YAAY,EAAE,CAAC;gBACvB,OAAO,IAAI,UAAU,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC,CAAC;aACrD;YACD,MAAM,OAAO,GAAG,OAAO,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC;AAC/C,YAAA,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;YACxC,OAAO,IAAI,UAAU,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC,CAAC;SACrD;;AAGD,QAAA,IAAI,OAAO,OAAO,KAAK,UAAU,EAAE;YACjC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAC;AAC5D,YAAA,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC;gBAC/B,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,MAAM,EAAE,IAAI,CAAC,QAAQ;AACtB,aAAA,CAAC,CAAC;YACH,MAAM,YAAY,GAAG,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;;YAEhD,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;AACtD,YAAA,OAAO,IAAI,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,EAAE,YAAY,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;SACrG;AAED,QAAA,MAAM,KAAK,CAAC,0BAA0B,CAAC,CAAC;KACzC;AACF;;AC9ND;;;;AAIG;MAEU,sBAAsB,CAAA;AACjC,IAAA,WAAA,CACU,wBAAkD,EAClD,QAAkB,EAClB,cAA8B,EAAA;QAF9B,IAAwB,CAAA,wBAAA,GAAxB,wBAAwB,CAA0B;QAClD,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAU;QAClB,IAAc,CAAA,cAAA,GAAd,cAAc,CAAgB;KACpC;AAEJ;;;;;;AAMG;AACH,IAAA,YAAY,CAAmB,gBAAmC,EAAA;AAChE,QAAA,OAAO,IAAI,eAAe,CAAI,gBAAgB,EAAE,IAAI,CAAC,wBAAwB,EAAE,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;KACpH;8GAhBU,sBAAsB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,wBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,QAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,cAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,sBAAsB,cADT,MAAM,EAAA,CAAA,CAAA,EAAA;;2FACnB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBADlC,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAA;;;MCDrB,mBAAmB,CAAA;AAHhC,IAAA,WAAA,GAAA;AAMY,QAAA,IAAA,CAAA,mBAAmB,GAAqC;AAC5D,YAAA,eAAe,EAAE,IAAI;SACxB,CAAC;AAoBL,KAAA;aAxBkB,IAAY,CAAA,YAAA,GAAG,qCAAH,CAAyC,EAAA;IAM7D,MAAM,GAAA;QACT,MAAM,YAAY,GAAG,YAAY,CAAC,OAAO,CAAC,mBAAmB,CAAC,YAAY,CAAC,CAAC;QAC5E,IAAI,YAAY,EAAE;AACd,YAAA,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;SACnC;QACD,OAAO,IAAI,CAAC,mBAAmB,CAAC;KACnC;AAEM,IAAA,GAAG,CAAC,GAAmB,EAAA;AAC1B,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;AAC/B,QAAA,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC;KACxB;IAEM,GAAG,CAAC,GAAmB,EAAE,KAAU,EAAA;AACtC,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;AAC/B,QAAA,QAAQ,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AACtB,QAAA,YAAY,CAAC,OAAO,CAAC,mBAAmB,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;KACpF;8GAxBQ,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,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,cAFhB,MAAM,EAAA,CAAA,CAAA,EAAA;;2FAET,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAH/B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,UAAU,EAAE,MAAM;AACrB,iBAAA,CAAA;;;MCMY,qBAAqB,CAAA;AAChC,IAAA,WAAA,CAC4B,MAAc,EACN,KAAqB,EAC7B,KAAU,EAAA;QAFV,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;QACN,IAAK,CAAA,KAAA,GAAL,KAAK,CAAgB;QAC7B,IAAK,CAAA,KAAA,GAAL,KAAK,CAAK;QAGd,IAAgB,CAAA,gBAAA,GAAG,MAAM,CAAC;QACjC,IAAW,CAAA,WAAA,GAA6B,SAAS,CAAC;QAClD,IAAM,CAAA,MAAA,GAAY,KAAK,CAAC;AAClC,QAAA,IAAA,CAAA,YAAY,GAA0B,EAAE,CAAC,EAAE,CAAC,CAAC;QAC7C,IAAc,CAAA,cAAA,GAAe,IAAI,CAAC;KANpC;AAQL,IAAA,IAAW,kBAAkB,GAAA;AAC3B,QAAA,MAAM,WAAW,GAAG,UAAU,IAAI,IAAI,CAAC,MAAM,GAAG,mBAAmB,GAAG,mBAAmB,CAAC,GAAG,QAAQ,CAAC;AACtG,QAAA,OAAO,CAAC,GAAG,CAAC,4BAA4B,EAAE,WAAW,CAAC,CAAC;AACvD,QAAA,OAAO,WAAW,CAAC;KACpB;IAEM,QAAQ,GAAA;AACb,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;QACxD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAA0B,CAAC;KAChF;AAtBU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,qBAAqB,EAEtB,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,MAAM,EACN,EAAA,EAAA,KAAA,EAAA,cAAc,aACd,SAAS,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAJR,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,qBAAqB,wLCZlC,oqBAYM,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAc,qBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,mBAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,WAAA,EAAA,aAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FDAO,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAJjC,SAAS;+BACE,mBAAmB,EAAA,QAAA,EAAA,oqBAAA,EAAA,CAAA;;0BAK1B,MAAM;2BAAC,MAAM,CAAA;;0BACb,MAAM;2BAAC,cAAc,CAAA;;0BACrB,MAAM;2BAAC,SAAS,CAAA;yCAGK,gBAAgB,EAAA,CAAA;sBAAvC,KAAK;uBAAC,eAAe,CAAA;gBACL,WAAW,EAAA,CAAA;sBAA3B,KAAK;uBAAC,QAAQ,CAAA;gBACE,MAAM,EAAA,CAAA;sBAAtB,KAAK;uBAAC,QAAQ,CAAA;;;MEZJ,0BAA0B,CAAA;AAGrC,IAAA,WAAA,CAA0C,YAA8C,EAAA;QAA9C,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAkC;QADjF,IAAY,CAAA,YAAA,GAAG,KAAK,CAAC;KACiE;IAE7F,QAAQ,GAAA;KACP;AAEM,IAAA,UAAU,CAAC,MAAkB,EAAA;AAClC,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE,WAAW,EAAE;YAClC,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;SAC7C;KACF;AAEM,IAAA,cAAc,CAAC,MAAW,EAAA;AAC/B,QAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;KAC3B;AAhBU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,0BAA0B,kBAGjB,aAAa,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAHtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,0BAA0B,8DCTvC,8iCAoBA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAhB,qBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,qBAAA,EAAA,sBAAA,EAAA,uBAAA,EAAA,YAAA,EAAA,SAAA,EAAA,oBAAA,EAAA,oBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FDXa,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBAJtC,SAAS;+BACE,wBAAwB,EAAA,QAAA,EAAA,8iCAAA,EAAA,CAAA;;0BAMrB,MAAM;2BAAC,aAAa,CAAA;;;MEHtB,+BAA+B,CAAA;IAS1C,WAA8C,CAAA,aAAiC,EAA4B,KAAW,EAAA;QAAxE,IAAa,CAAA,aAAA,GAAb,aAAa,CAAoB;QAA4B,IAAK,CAAA,KAAA,GAAL,KAAK,CAAM;QAP/G,IAAY,CAAA,YAAA,GAAG,KAAK,CAAC;QACrB,IAAW,CAAA,WAAA,GAAG,CAAC,CAAC;QAChB,IAAK,CAAA,KAAA,GAAU,EAAE,CAAC;QAGjB,IAAW,CAAA,WAAA,GAAoB,SAAS,CAAC;QAC1C,IAAU,CAAA,UAAA,GAAG,KAAK,CAAC;KACiG;IAE3H,WAAW,GAAA;AACT,QAAA,IAAI,IAAI,CAAC,iBAAiB,EAAE;AAC1B,YAAA,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE,CAAC;SACtC;KACF;IAED,QAAQ,GAAA;QACN,IAAG,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,EAAE;YAC3C,IAAI,CAAC,KAAK,CAAC,eAAe,CAAyB,CAAC,SAAS,CAAC,iBAAiB,IAAG;AACjF,gBAAA,IAAI,CAAC,oBAAoB,GAAG,iBAAiB,CAAC;AAChD,aAAC,CAAC,CAAC;SACJ;AACD,QAAA,IAAG,IAAI,CAAC,aAAa,EAAE;AACrB,YAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,aAAa,EAAE,QAAQ,CAAC,SAAS,CAAC,MAAM,IAAG;AACvE,gBAAA,IAAI,MAAM,CAAC,KAAK,EAAC;AACf,oBAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;AACvB,oBAAA,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC;AAChC,oBAAA,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;AAC1B,oBAAA,UAAU,CAAE,MAAK,EAAG,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,EAAE,EAAE,IAAI,CAAE,CAAC;iBACxD;AACH,aAAC,CAAC,CAAC;SACJ;KACF;IAEM,aAAa,GAAA;AAClB,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE,WAAW,EAAE;AACnC,YAAA,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC;SAClC;aAAM;AACL,YAAA,IAAI,CAAC,YAAY,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC;YACvC,IAAI,CAAC,WAAW,EAAE,CAAC;YACnB,IAAI,CAAC,QAAQ,EAAE,CAAC;SACjB;AACD,QAAA,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;KACtB;AAEM,IAAA,UAAU,CAAC,KAAY,EAAA;QAC5B,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAC,CAAC,CAAC,CAAC;KAC5B;;;;;;;;;;;AAcM,IAAA,cAAc,CAAC,MAAW,EAAA;AAC/B,QAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;KAC3B;8GAhEU,+BAA+B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAStB,iBAAiB,EAAA,EAAA,EAAA,KAAA,EAAoD,SAAS,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AATvF,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,+BAA+B,mECT5C,g2HA8EA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,IAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,aAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,OAAA,EAAA,MAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,YAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAY,qBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,qBAAA,EAAA,sBAAA,EAAA,uBAAA,EAAA,YAAA,EAAA,SAAA,EAAA,oBAAA,EAAA,oBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FDrEa,+BAA+B,EAAA,UAAA,EAAA,CAAA;kBAJ3C,SAAS;+BACE,6BAA6B,EAAA,QAAA,EAAA,g2HAAA,EAAA,CAAA;;0BAY1B,MAAM;2BAAC,iBAAiB,CAAA;;0BAA6C,MAAM;2BAAC,SAAS,CAAA;;;MEPvF,wBAAwB,CAAA;AAUnC,IAAA,WAAA,CAA2C,WAAwB,EAC7B,MAAc,EACd,KAAU,EAAA;QAFL,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;QAC7B,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;QACd,IAAK,CAAA,KAAA,GAAL,KAAK,CAAK;;QATvB,IAAY,CAAA,YAAA,GAAwB,KAAK,CAAC;QACzD,IAAQ,CAAA,QAAA,GAAwB,IAAI,CAAC;QACrC,IAAU,CAAA,UAAA,GAAwB,IAAI,CAAC;QAC1C,IAAI,CAAA,IAAA,GAAgB,IAAI,CAAC;QACzB,IAAU,CAAA,UAAA,GAAkB,IAAI,CAAC;QACjC,IAAgB,CAAA,gBAAA,GAAG,KAAK,CAAC;KAIqB;IAErD,QAAQ,GAAA;QACN,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,SAAS,CAAC,CAAC,IAAI,KAAI;AAC7C,YAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;SAC3B,EAAE,KAAK,IAAG;AACT,YAAA,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AACvB,SAAC,CAAC,CAAC;;AAEH,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,IAAS,KAAI;;AAE7D,YAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;AAC5B,SAAC,CAAC,CAAC;KACJ;AAEM,IAAA,MAAM,CAAC,KAA6B,EAAA;QACzC,IAAI,KAAK,EAAE;YACT,KAAK,CAAC,cAAc,EAAE,CAAC;SACxB;AACD,QAAA,IAAI,CAAC,WAAW,CAAC,cAAc,EAAE,CAAC;KACnC;AAEO,IAAA,cAAc,CAAC,IAAS,EAAA;AAC9B,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;AACjB,QAAA,IAAI,IAAI,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE;AAC/E,YAAA,IAAI,CAAC,UAAU,GAAG,CAAA,EAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAG,EAAA,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA,CAAE,CAAC,WAAW,EAAE,CAAC;SAC7G;KACF;;AAGM,IAAA,cAAc,CAAC,MAAW,EAAA;AAC/B,QAAA,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;KAC/B;AA5CU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,wBAAwB,EAUf,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,WAAW,EACX,EAAA,EAAA,KAAA,EAAA,MAAM,aACN,SAAS,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAZlB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,wBAAwB,2HCXrC,mqEAqDA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAd,qBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,qBAAA,EAAA,sBAAA,EAAA,uBAAA,EAAA,YAAA,EAAA,SAAA,EAAA,oBAAA,EAAA,oBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAiB,qBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,mBAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,WAAA,EAAA,aAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FD1Ca,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAJpC,SAAS;+BACE,uBAAuB,EAAA,QAAA,EAAA,mqEAAA,EAAA,CAAA;;0BAapB,MAAM;2BAAC,WAAW,CAAA;;0BAClB,MAAM;2BAAC,MAAM,CAAA;;0BACb,MAAM;2BAAC,SAAS,CAAA;yCATJ,YAAY,EAAA,CAAA;sBAApC,KAAK;uBAAC,gBAAgB,CAAA;;;MEAZ,oBAAoB,CAAA;IAuB/B,WACiC,CAAA,WAAwB,EAC7B,MAAc,EACN,KAAqB,EAC1B,MAAW,EACd,KAAU,EAAA;QAJL,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;QAC7B,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;QACN,IAAK,CAAA,KAAA,GAAL,KAAK,CAAgB;QAC1B,IAAM,CAAA,MAAA,GAAN,MAAM,CAAK;QACd,IAAK,CAAA,KAAA,GAAL,KAAK,CAAK;;QA1Bd,IAAgB,CAAA,gBAAA,GAAG,MAAM,CAAC;;QAE3B,IAAkB,CAAA,kBAAA,GAAG,IAAI,CAAC;;QAEzB,IAAoB,CAAA,oBAAA,GAAwB,KAAK,CAAC;;QAEpD,IAAU,CAAA,UAAA,GAAwB,KAAK,CAAC;;QAEzC,IAAS,CAAA,SAAA,GAAwB,KAAK,CAAC;QACnD,IAAM,CAAA,MAAA,GAAG,IAAI,CAAC;AAChB,QAAA,IAAA,CAAA,YAAY,GAA0B,EAAE,CAAC,EAAE,CAAC,CAAC;QAC7C,IAAkB,CAAA,kBAAA,GAAG,KAAK,CAAC;QAC3B,IAAgB,CAAA,gBAAA,GAAG,KAAK,CAAC;QAEtB,IAAU,CAAA,UAAA,GAAwB,IAAI,CAAC;QACvC,IAAQ,CAAA,QAAA,GAAwB,IAAI,CAAC;QACrC,IAAU,CAAA,UAAA,GAAwB,IAAI,CAAC;QAC1C,IAAI,CAAA,IAAA,GAAgB,IAAI,CAAC;QACzB,IAAU,CAAA,UAAA,GAAkB,IAAI,CAAC;QACjC,IAAc,CAAA,cAAA,GAAe,IAAI,CAAC;QAQvC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,KAAK,KAAK,YAAY,eAAe,CAAC,CAAC,CAAC;KAClG;IAED,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;QACxD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAA0B,CAAC;AAC/E,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,KAAK,KAAI;AACtD,YAAA,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;AAChC,YAAA,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;AAChC,SAAC,CAAC,CAAC;QACH,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,SAAS,CAAC,CAAC,IAAI,KAAI;AAC7C,YAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;SAC3B,EAAE,KAAK,IAAG;AACT,YAAA,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AACvB,SAAC,CAAC,CAAC;;AAEH,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,IAAS,KAAI;;AAE7D,YAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;AAC5B,SAAC,CAAC,CAAC;KACJ;IAED,WAAW,GAAA;AAET,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE;AACnB,YAAA,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;SAC/B;;AAED,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE;AACnB,YAAA,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;SAC/B;AACD,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;AACjB,YAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;SAC7B;KACF;;AAGM,IAAA,cAAc,CAAC,MAAW,EAAA;AAC/B,QAAA,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;KAC/B;AAEM,IAAA,MAAM,CAAC,KAA6B,EAAA;QACzC,IAAI,KAAK,EAAE;YACT,KAAK,CAAC,cAAc,EAAE,CAAC;SACxB;AACD,QAAA,IAAI,CAAC,WAAW,CAAC,cAAc,EAAE,CAAC;KACnC;AAEO,IAAA,cAAc,CAAC,IAAS,EAAA;AAC9B,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;AACjB,QAAA,IAAI,IAAI,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE;AAC/E,YAAA,IAAI,CAAC,UAAU,GAAG,CAAA,EAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAG,EAAA,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA,CAAE,CAAC,WAAW,EAAE,CAAC;SAC7G;KACF;8GAlFU,oBAAoB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAwBrB,WAAW,EACX,EAAA,EAAA,KAAA,EAAA,MAAM,aACN,cAAc,EAAA,EAAA,EAAA,KAAA,EACd,YAAY,EAAA,EAAA,EAAA,KAAA,EACZ,SAAS,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AA5BR,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,oBAAoB,+VCdjC,klMA8IA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAf,IAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,aAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,OAAA,EAAA,MAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,YAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAY,qBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,qBAAA,EAAA,sBAAA,EAAA,uBAAA,EAAA,YAAA,EAAA,SAAA,EAAA,oBAAA,EAAA,oBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAI,0BAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,qBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,mBAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,WAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,+BAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,wBAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FDhIa,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBALhC,SAAS;+BAEE,kBAAkB,EAAA,QAAA,EAAA,klMAAA,EAAA,CAAA;;0BA2BzB,MAAM;2BAAC,WAAW,CAAA;;0BAClB,MAAM;2BAAC,MAAM,CAAA;;0BACb,MAAM;2BAAC,cAAc,CAAA;;0BACrB,MAAM;2BAAC,YAAY,CAAA;;0BACnB,MAAM;2BAAC,SAAS,CAAA;yCA1BK,gBAAgB,EAAA,CAAA;sBAAvC,KAAK;uBAAC,eAAe,CAAA;gBAEC,kBAAkB,EAAA,CAAA;sBAAxC,KAAK;uBAAC,cAAc,CAAA;gBAEG,oBAAoB,EAAA,CAAA;sBAA3C,KAAK;uBAAC,eAAe,CAAA;gBAEA,UAAU,EAAA,CAAA;sBAA/B,KAAK;uBAAC,aAAa,CAAA;gBAEC,SAAS,EAAA,CAAA;sBAA7B,KAAK;uBAAC,YAAY,CAAA;gBACV,MAAM,EAAA,CAAA;sBAAd,KAAK;;;AEbF,MAAO,2BAA4B,SAAQ,oBAAoB,CAAA;IACnE,WAA2C,CAAA,WAAwB,EACzC,MAAc,EACN,KAAqB,EAC1B,MAAW,EACd,KAAU,EAAA;QAClC,KAAK,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;QALR,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;QACzC,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;QACN,IAAK,CAAA,KAAA,GAAL,KAAK,CAAgB;QAC1B,IAAM,CAAA,MAAA,GAAN,MAAM,CAAK;QACd,IAAK,CAAA,KAAA,GAAL,KAAK,CAAK;KAEnC;8GAPU,2BAA2B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAClB,WAAW,EACvB,EAAA,EAAA,KAAA,EAAA,MAAM,aACN,cAAc,EAAA,EAAA,EAAA,KAAA,EACd,YAAY,EAAA,EAAA,EAAA,KAAA,EACZ,SAAS,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AALN,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,2BAA2B,uFCZxC,ikCAuBA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAArB,qBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,qBAAA,EAAA,sBAAA,EAAA,uBAAA,EAAA,YAAA,EAAA,SAAA,EAAA,oBAAA,EAAA,oBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAsB,0BAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,+BAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,wBAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FDXa,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBAJvC,SAAS;+BACE,0BAA0B,EAAA,QAAA,EAAA,ikCAAA,EAAA,CAAA;;0BAIvB,MAAM;2BAAC,WAAW,CAAA;;0BAC9B,MAAM;2BAAC,MAAM,CAAA;;0BACb,MAAM;2BAAC,cAAc,CAAA;;0BACrB,MAAM;2BAAC,YAAY,CAAA;;0BACnB,MAAM;2BAAC,SAAS,CAAA;;;MERN,2BAA2B,CAAA;AACtC,IAAA,WAAA,CACU,aAAkC,EAAA;QAAlC,IAAa,CAAA,aAAA,GAAb,aAAa,CAAqB;QAE1C,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;KAClE;AAMM,IAAA,QAAQ,MAAY;IAEpB,mBAAmB,GAAA;AACxB,QAAA,IAAI,CAAC,iBAAiB,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC;QACjD,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,eAAe,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;KACjE;8GAhBU,2BAA2B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,mBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA3B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,2BAA2B,8ICTxC,siNAqJM,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAvB,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAG,IAAA,CAAA,YAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,QAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAqB,mBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,qBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,2BAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FD5IO,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBAJvC,SAAS;+BACE,0BAA0B,EAAA,QAAA,EAAA,siNAAA,EAAA,CAAA;qFAU3B,MAAM,EAAA,CAAA;sBAAd,KAAK;gBACU,qBAAqB,EAAA,CAAA;sBAApC,KAAK;;;MEPK,oBAAoB,CAAA;AAC7B,IAAA,WAAA,CAAsC,KAAgB,EAAA;QAAhB,IAAK,CAAA,KAAA,GAAL,KAAK,CAAW;KACrD;AAFQ,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,oBAAoB,kBACT,SAAS,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AADpB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,oBAAoB,wDCVjC,k4KAuEA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FD7Da,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBANhC,SAAS;+BACE,kBAAkB,EAAA,QAAA,EAAA,k4KAAA,EAAA,CAAA;;0BAMb,MAAM;2BAAC,SAAS,CAAA;;;MEHpB,2BAA2B,CAAA;AACtC,IAAA,WAAA,GAAA,GAAiB;AAIV,IAAA,QAAQ,MAAY;8GALhB,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA3B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,2BAA2B,8FCRxC,kgDA2BM,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA1B,IAAA,CAAA,YAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,QAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA2B,6BAAA,EAAA,QAAA,EAAA,2BAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,oBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,oBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,cAAA,EAAA,eAAA,EAAA,aAAA,EAAA,YAAA,EAAA,QAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FDnBO,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBAJvC,SAAS;+BACE,0BAA0B,EAAA,QAAA,EAAA,kgDAAA,EAAA,CAAA;wDAM3B,MAAM,EAAA,CAAA;sBAAd,KAAK;;;MEGK,oBAAoB,CAAA;AAI/B,IAAA,WAAA,CACU,OAAe,EACf,uBAA+C,EACzB,OAAiC,EAAA;QAFvD,IAAO,CAAA,OAAA,GAAP,OAAO,CAAQ;QACf,IAAuB,CAAA,uBAAA,GAAvB,uBAAuB,CAAwB;QACzB,IAAO,CAAA,OAAA,GAAP,OAAO,CAA0B;QANZ,IAAsB,CAAA,sBAAA,GAAoD,IAAI,CAAC;QAC5H,IAAW,CAAA,WAAA,GAAwB,IAAI,CAAC;QAczC,IAAe,CAAA,eAAA,GAAG,KAAK,CAAC;AACxB,QAAA,IAAA,CAAA,YAAY,GAAiB,IAAI,kBAAkB,EAAE,CAAC;QACtD,IAAM,CAAA,MAAA,GAAG,KAAK,CAAC;QACf,IAAW,CAAA,WAAA,GAAG,KAAK,CAAC;QAVzB,IAAI,CAAC,OAAO,EAAE;AACZ,YAAA,OAAO,GAAG,IAAI,kBAAkB,EAAE,CAAC;SACpC;AACD,QAAA,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC;KAC7B;IAQM,kBAAkB,GAAA;AACvB,QAAA,UAAU,CAAC,MAAK,EAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;KAChD;IAEM,QAAQ,GAAA;AACb,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO;aAC5B,MAAM;AACN,aAAA,IAAI,CACH,MAAM,CAAC,CAAC,KAAK,KAAK,KAAK,YAAY,eAAe,CAAC,CACpD,CAAC,SAAS,CAAC,CAAC,KAAK,KAAI;AACpB,YAAA,IAAK,KAAyB,EAAE,QAAQ,EAAE;AACxC,gBAAA,IAAK,KAAyB,EAAE,QAAQ,EAAE,IAAI,EAAE;oBAC9C,IAAK,KAAyB,EAAE,QAAQ,EAAE,IAAI,CAAC,KAAK,EAAE;wBACpD,IAAI,CAAC,YAAY,GAAI,KAAyB,EAAE,QAAQ,CAAC,IAAI,CAAC,KAAqB,CAAC;AACpF,wBAAA,IAAI,IAAI,CAAC,YAAY,CAAC,qBAAqB,EAAE;4BAC3C,IAAI,CAAC,oBAAoB,EAAE,CAAC;yBAC7B;qBACF;yBAAM;AACL,wBAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,kBAAkB,EAAE,CAAC;qBAC5E;iBACF;aACF;AACH,SAAC,CAAC,CAAC;KACN;IAEM,eAAe,GAAA;QACpB,IAAI,CAAC,oBAAoB,EAAE,CAAC;KAC7B;IAEO,oBAAoB,GAAA;AAC1B,QAAA,IAAI,IAAI,CAAC,sBAAsB,IAAI,IAAI,CAAC,sBAAsB,CAAC,MAAM,GAAG,CAAC,EAAE;YACzE,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC;SAC5F;KACF;IAEM,WAAW,GAAA;AAChB,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE;AACpB,YAAA,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC;SAChC;KACF;AAEO,IAAA,mBAAmB,CAAC,IAA+C,EAAA;QACzE,IAAI,IAAI,EAAE;AACR,YAAA,MAAM,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC;YAC/C,IAAI,gBAAgB,IAAI,IAAI,CAAC,YAAY,CAAC,qBAAqB,EAAE;gBAC/D,MAAM,GAAG,GAAG,IAAI,CAAC,uBAAuB,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC;AACxE,gBAAA,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,qBAAqB,CAAC,CAAC,EAAE,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;aACzF;SACF;KACF;AAtEU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,oBAAoB,6EAOrB,YAAY,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAPX,oBAAoB,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,EAAA,qBAAA,EAAA,uBAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,wBAAA,EAAA,SAAA,EACjB,6BAA6B,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECf7C,y+BAqBM,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA1B,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAJ,IAAA,CAAA,YAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,QAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA+B,2BAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,uBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,2BAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,iBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,yBAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FDPO,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAJhC,SAAS;+BACE,kBAAkB,EAAA,QAAA,EAAA,y+BAAA,EAAA,CAAA;;0BAUzB,MAAM;2BAAC,YAAY,CAAA;yCAN+B,sBAAsB,EAAA,CAAA;sBAA1E,YAAY;uBAAC,6BAA6B,CAAA;gBAc3B,qBAAqB,EAAA,CAAA;sBAApC,KAAK;;;MElBK,mBAAmB,CAAA;IAoB9B,WAAoB,CAAA,MAAsB,EAAU,OAAe,EAAA;QAA/C,IAAM,CAAA,MAAA,GAAN,MAAM,CAAgB;QAAU,IAAO,CAAA,OAAA,GAAP,OAAO,CAAQ;;QAhB7C,IAAM,CAAA,MAAA,GAAG,IAAI,CAAC;QAC3B,IAAK,CAAA,KAAA,GAAG,KAAK,CAAC;QACd,IAAK,CAAA,KAAA,GAAG,UAAU,CAAC;QACnB,IAAI,CAAA,IAAA,GAAkB,IAAI,CAAC;QAC3B,IAAO,CAAA,OAAA,GAAwB,IAAI,CAAC;QACpC,IAAI,CAAA,IAAA,GAAG,KAAK,CAAC;;QAEO,IAAiB,CAAA,iBAAA,GAAkB,WAAW,CAAC;QACnE,IAAI,CAAA,IAAA,GAAkB,IAAI,CAAC;;QAEf,IAAS,CAAA,SAAA,GAA4B,EAAE,CAAC;;AAEnD,QAAA,IAAA,CAAA,QAAQ,GAA6B,IAAI,YAAY,EAAc,CAAC;;AAEpE,QAAA,IAAA,CAAA,QAAQ,GAAyB,IAAI,YAAY,EAAU,CAAC;KAEE;IAExE,QAAQ,GAAA;AACN,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE,aAAa,EAAC;AACnC,YAAA,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC,IAAI,CACtD,GAAG,CAAC,CAAC,KAAU,KAAI;AACjB,gBAAA,OAAO,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;AAC5B,aAAC,CAAC,EACF,MAAM,CAAC,UAAU,IAAI,UAAU,CAAC,MAAM,IAAI,CAAC,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,CAAC;;AAEvE,YAAA,YAAY,CAAC,IAAI,CAAC;YAClB,oBAAoB,EAAE;aACvB,CAAC,SAAS,EAAE,CAAC;SACf;KACF;AAEM,IAAA,eAAe,CAAC,MAAkB,EAAA;AACvC,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;KAC5B;AAEM,IAAA,qBAAqB,CAAC,MAA8B,EAAA;;AAEzD,QAAA,IAAI,MAAM,CAAC,MAAM,EAAE;YACjB,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,SAAS,EAAE,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;SACtE;aAAM;YACL,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;SACtC;KACF;IAED,iBAAiB,CAAC,MAAkB,EAAE,IAAY,EAAA;AAChD,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAC1B;AAED,IAAA,gBAAgB,CAAC,IAAY,EAAA;AAC3B,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC;KAC5D;AAEM,IAAA,WAAW,CAAC,KAAU,EAAA;AAC3B,QAAA,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;QAC/B,KAAK,CAAC,eAAe,EAAE,CAAC;QACxB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;KACzC;AAEM,IAAA,qBAAqB,CAAC,MAA8B,EAAA;;AAEzD,QAAA,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC;AACzB,QAAA,IAAI,MAAM,IAAI,MAAM,CAAC,KAAK,EAAE;YAC1B,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,KAAK,EAAE,EAAE,mBAAmB,EAAE,OAAO,EAAE,kBAAkB,EAAE,KAAK,EAAE,CAAC,CAAC;SAC7H;KACF;8GArEU,mBAAmB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAlC,IAAA,CAAA,cAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,MAAA,EAAA,CAAA,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,QAAA,EAAA,IAAA,EAAA,mBAAmB,6cCXhC,qhHAmFM,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FDxEO,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAJ/B,SAAS;+BACE,iBAAiB,EAAA,QAAA,EAAA,qhHAAA,EAAA,CAAA;4GAKE,YAAY,EAAA,CAAA;sBAAxC,SAAS;uBAAC,QAAQ,CAAA;gBAEG,MAAM,EAAA,CAAA;sBAA3B,KAAK;uBAAC,aAAa,CAAA;gBACX,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBAEuB,iBAAiB,EAAA,CAAA;sBAA7C,KAAK;uBAAC,oBAAoB,CAAA;gBAClB,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBAEe,SAAS,EAAA,CAAA;sBAA7B,KAAK;uBAAC,YAAY,CAAA;gBAET,QAAQ,EAAA,CAAA;sBAAjB,MAAM;gBAEG,QAAQ,EAAA,CAAA;sBAAjB,MAAM;;;MElBI,wBAAwB,CAAA;AAkBnC,IAAA,IAAW,WAAW,GAAA;AACpB,QAAA,IAAG,CAAC,IAAI,CAAC,aAAa,EAAE;AACtB,YAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;AAC1B,YAAA,IAAG,IAAI,CAAC,OAAO,EAAE;AACf,gBAAA,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,IAAG;oBACvB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AACnF,iBAAC,CAAC,CAAC;aACJ;AAED,YAAA,IAAG,IAAI,CAAC,SAAS,EAAE;AACjB,gBAAA,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,IAAG;oBACzB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AACnF,iBAAC,CAAC,CAAC;aACJ;YACD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;SAC3C;QACD,OAAO,IAAI,CAAC,QAAQ,CAAC;KACtB;AACD,IAAA,WAAA,CAAqB,QAAkB,EAAU,MAAc,EAAU,KAAqB,EAAA;QAAzE,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAU;QAAU,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;QAAU,IAAK,CAAA,KAAA,GAAL,KAAK,CAAgB;QAnCvF,IAAe,CAAA,eAAA,GAAG,KAAK,CAAC;QACtB,IAAK,CAAA,KAAA,GAAG,UAAU,CAAC;;QAEJ,IAAO,CAAA,OAAA,GAA6E,IAAI,CAAC;;QAEvF,IAAS,CAAA,SAAA,GAA6E,IAAI,CAAC;;AAEhG,QAAA,IAAA,CAAA,SAAS,GAA4B;;SAEzD,CAAC;QACO,IAAI,CAAA,IAAA,GAAkB,IAAI,CAAC;QAC3B,IAAI,CAAA,IAAA,GAAG,KAAK,CAAC;QACb,IAAO,CAAA,OAAA,GAAwB,IAAI,CAAC;QACrC,IAAa,CAAA,aAAA,GAAG,KAAK,CAAC;QACtB,IAAQ,CAAA,QAAA,GAAiB,EAAE,CAAC;KAqB+D;IAEnG,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,IAAG;AAC1D,YAAA,IAAG,KAAK,YAAY,aAAa,EAAG;AAClC,gBAAA,IAAG,KAAK,CAAC,iBAAiB,EAAE;oBAC1B,IAAI,QAAQ,GAAG,KAAK,CAAC,iBAAiB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;oBAClD,IAAG,QAAQ,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;wBAClC,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAC,CAAC,CAAC,CAAC;AAC7C,wBAAA,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;qBAC3C;iBACF;aACF;AACH,SAAC,CAAC,CAAC;KACJ;IAED,WAAW,GAAA;AACT,QAAA,IAAG,IAAI,CAAC,eAAe,EAAE;AACvB,YAAA,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE,CAAC;SACpC;KACF;AAGM,IAAA,mBAAmB,CAAC,MAAW,EAAA;AACpC,QAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;KAC7B;AAEM,IAAA,qBAAqB,CAAC,MAAW,EAAA;AACtC,QAAA,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;KAC9B;IAEM,aAAa,GAAA;AAClB,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;KACtB;AAEM,IAAA,YAAY,CAAC,IAAS,EAAA;AAC3B,QAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,EAAE,EAAC,UAAU,EAAE,IAAI,CAAC,KAAK,EAAC,CAAC,CAAC;KACxD;8GAzEU,wBAAwB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,QAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,MAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,cAAA,EAAA,CAAA,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,QAAA,EAAA,IAAA,EAAA,wBAAwB,qQCXrC,0pGA8DA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,YAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,QAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,aAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,OAAA,EAAA,MAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,YAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,uBAAA,EAAA,kBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,qBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,UAAA,EAAA,UAAA,EAAA,aAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,gBAAA,EAAA,iBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAiC,mBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,OAAA,EAAA,OAAA,EAAA,MAAA,EAAA,SAAA,EAAA,MAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FDnDa,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBALpC,SAAS;+BAEE,uBAAuB,EAAA,QAAA,EAAA,0pGAAA,EAAA,CAAA;mIAKxB,KAAK,EAAA,CAAA;sBAAb,KAAK;gBAEkB,OAAO,EAAA,CAAA;sBAA9B,KAAK;uBAAC,eAAe,CAAA;gBAEI,SAAS,EAAA,CAAA;sBAAlC,KAAK;uBAAC,iBAAiB,CAAA;gBAEH,SAAS,EAAA,CAAA;sBAA7B,KAAK;uBAAC,YAAY,CAAA;gBAGV,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;;;MEhBK,uBAAuB,CAAA;IAuBlC,WAAoB,CAAA,QAAkB,EAAU,MAAc,EAAA;QAA1C,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAU;QAAU,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;QAtBrD,IAAK,CAAA,KAAA,GAAkB,aAAa,CAAC;QACrC,IAAW,CAAA,WAAA,GAAG,IAAI,CAAC;QACnB,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;;QAIP,IAAO,CAAA,OAAA,GAAG,YAAY,CAAC;;QAExB,IAAM,CAAA,MAAA,GAAG,IAAI,CAAC;;QAEN,IAAS,CAAA,SAAA,GAAG,IAAI,CAAC;;QAEpB,IAAW,CAAA,WAAA,GAAG,SAAS,CAAC;;QAEzB,IAAU,CAAA,UAAA,GAAG,IAAI,CAAC;;QAEV,IAAiB,CAAA,iBAAA,GAAG,KAAK,CAAC;QAC5B,IAAe,CAAA,eAAA,GAAG,IAAI,CAAC;;AAEzC,QAAA,IAAA,CAAA,MAAM,GAA0B,IAAI,YAAY,EAAE,CAAC;AACnD,QAAA,IAAA,CAAA,EAAE,GAA0B,IAAI,YAAY,EAAE,CAAC;KAEU;IAEnE,QAAQ,GAAA;KACP;IAEM,aAAa,GAAA;AAClB,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE;AACnB,YAAA,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,EAAE,EAAE,kBAAkB,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,IAAI,GAAG,CAAC,CAAC,CAAC;SAC5H;aAAM;YACL,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,iBAAiB,EAAE;AACnF,gBAAA,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;aAC3D;iBAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,iBAAiB,EAAE;AACzF,gBAAA,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;aAC1D;iBAAM;AACL,gBAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;aACtB;SACF;KACF;IAEM,SAAS,GAAA;AACd,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACxB,QAAA,IAAG,IAAI,CAAC,eAAe,EAAE;YACvB,IAAI,CAAC,aAAa,EAAE,CAAC;SACtB;KACF;IAEM,UAAU,GAAA;AACf,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACxB,QAAA,IAAG,IAAI,CAAC,eAAe,EAAE;YACvB,IAAI,CAAC,aAAa,EAAE,CAAC;SACtB;KACF;IAEM,MAAM,GAAA;AACX,QAAA,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnB,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,eAAe,EAAE;YAC1C,IAAI,CAAC,aAAa,EAAE,CAAC;SACtB;KACF;8GA7DU,uBAAuB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,QAAA,EAAA,EAAA,EAAA,KAAA,EAAAlC,IAAA,CAAA,MAAA,EAAA,CAAA,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,QAAA,EAAA,IAAA,EAAA,uBAAuB,iiBCRpC,mtDAoCA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FD5Ba,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAJnC,SAAS;+BACE,sBAAsB,EAAA,QAAA,EAAA,mtDAAA,EAAA,CAAA;oGAIvB,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBAEgB,UAAU,EAAA,CAAA;sBAA/B,KAAK;uBAAC,aAAa,CAAA;gBAED,OAAO,EAAA,CAAA;sBAAzB,KAAK;uBAAC,UAAU,CAAA;gBAEC,MAAM,EAAA,CAAA;sBAAvB,KAAK;uBAAC,SAAS,CAAA;gBAEU,SAAS,EAAA,CAAA;sBAAlC,KAAK;uBAAC,iBAAiB,CAAA;gBAED,WAAW,EAAA,CAAA;sBAAjC,KAAK;uBAAC,cAAc,CAAA;gBAEC,UAAU,EAAA,CAAA;sBAA/B,KAAK;uBAAC,aAAa,CAAA;gBAEU,iBAAiB,EAAA,CAAA;sBAA9C,KAAK;uBAAC,qBAAqB,CAAA;gBACA,eAAe,EAAA,CAAA;sBAA1C,KAAK;uBAAC,mBAAmB,CAAA;gBAEhB,MAAM,EAAA,CAAA;sBAAf,MAAM;gBACG,EAAE,EAAA,CAAA;sBAAX,MAAM;;;MEnBI,mBAAmB,CAAA;AAiB9B,IAAA,WAAA,CAAoB,OAAe,EAAA;QAAf,IAAO,CAAA,OAAA,GAAP,OAAO,CAAQ;QAd1B,IAAK,CAAA,KAAA,GAAkB,IAAI,CAAC;QAC5B,IAAK,CAAA,KAAA,GAAkB,IAAI,CAAC;QAC5B,IAAI,CAAA,IAAA,GAAkB,IAAI,CAAC;;QAEP,IAAiB,CAAA,iBAAA,GAAkB,WAAW,CAAA;QAClE,IAAO,CAAA,OAAA,GAAwB,IAAI,CAAC;;QAEzB,IAAQ,CAAA,QAAA,GAAkB,IAAI,CAAC;;AAEzC,QAAA,IAAA,CAAA,QAAQ,GAA6B,IAAI,YAAY,EAAc,CAAC;;AAEpE,QAAA,IAAA,CAAA,QAAQ,GAAyB,IAAI,YAAY,EAAU,CAAC;AAC5D,QAAA,IAAA,CAAA,UAAU,GAA0B,IAAI,YAAY,EAAW,CAAC;KAElC;IAExC,QAAQ,GAAA;AACN,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE,aAAa,EAAC;AACnC,YAAA,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC,IAAI,CACtD,GAAG,CAAC,CAAC,KAAU,KAAI;AACjB,gBAAA,OAAO,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;AAC5B,aAAC,CAAC,EACF,MAAM,CAAC,UAAU,IAAI,UAAU,CAAC,MAAM,IAAI,CAAC,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,CAAC;;AAEvE,YAAA,YAAY,CAAC,IAAI,CAAC;YAClB,oBAAoB,EAAE;aACvB,CAAC,SAAS,EAAE,CAAC;SACf;KACF;AAEM,IAAA,qBAAqB,CAAC,MAAW,EAAA;AACtC,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAC5B;AAEM,IAAA,eAAe,CAAC,MAAkB,EAAA;AACvC,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;KAC5B;IAED,iBAAiB,CAAC,MAAkB,EAAE,IAAY,EAAA;AAChD,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAC1B;AAED,IAAA,gBAAgB,CAAC,IAAY,EAAA;AAC3B,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC;KAC5D;AAEM,IAAA,qBAAqB,CAAC,MAA8B,EAAE,QAAA,GAAoB,KAAK,EAAA;AACpF,QAAA,IAAI,MAAM,CAAC,MAAM,EAAE;YACjB,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,aAAa,EAAE,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;SAC1E;aAAM;YACL,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;SACtC;KACF;8GAvDU,mBAAmB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAD,IAAA,CAAA,MAAA,EAAA,CAAA,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,QAAA,EAAA,IAAA,EAAA,mBAAmB,qaCVhC,00GAwEA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,IAAA,CAAA,YAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,QAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAoC,iBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FD9Da,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAJ/B,SAAS;+BACE,iBAAiB,EAAA,QAAA,EAAA,00GAAA,EAAA,CAAA;6EAKE,YAAY,EAAA,CAAA;sBAAxC,SAAS;uBAAC,QAAQ,CAAA;gBACV,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBAEuB,iBAAiB,EAAA,CAAA;sBAA7C,KAAK;uBAAC,oBAAoB,CAAA;gBAClB,OAAO,EAAA,CAAA;sBAAf,KAAK;gBAEc,QAAQ,EAAA,CAAA;sBAA3B,KAAK;uBAAC,WAAW,CAAA;gBAER,QAAQ,EAAA,CAAA;sBAAjB,MAAM;gBAEG,QAAQ,EAAA,CAAA;sBAAjB,MAAM;gBACG,UAAU,EAAA,CAAA;sBAAnB,MAAM;;;MEhBI,qBAAqB,CAAA;IAChC,WAAyC,CAAA,WAAwB,EAAU,MAAc,EAAA;QAAhD,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;QAAU,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;QAElF,IAAM,CAAA,MAAA,GAAG,wBAAwB,CAAC;KAFqD;IAIvF,QAAQ,GAAA;QACb,IAAI,CAAC,WAAW,CAAC,sBAAsB,EAAE,CAAC,SAAS,CAAC,CAAC,IAAI,KAAI;YAC3D,IAAI,IAAI,EAAE;AACR,gBAAA,IAAI,CAAC,MAAM,CAAC,aAAa,CAAE,IAAI,CAAC,KAAa,EAAE,GAAG,IAAI,GAAG,CAAC,CAAC;aAC5D;AACH,SAAC,CAAC,CAAC;KACJ;AAXU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,qBAAqB,kBACZ,WAAW,EAAA,EAAA,EAAA,KAAA,EAAApC,IAAA,CAAA,MAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AADpB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,qBAAqB,yDCTlC,wEAAkE,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAqC,mBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,OAAA,EAAA,OAAA,EAAA,MAAA,EAAA,SAAA,EAAA,MAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FDSrD,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAJjC,SAAS;+BACE,mBAAmB,EAAA,QAAA,EAAA,wEAAA,EAAA,CAAA;;0BAIhB,MAAM;2BAAC,WAAW,CAAA;;;MEDpB,kBAAkB,CAAA;IAC7B,WAAyC,CAAA,WAAwB,EAAU,MAAc,EAAA;QAAhD,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;QAAU,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;KAAK;IAEvF,QAAQ,GAAA;QACb,IAAI,CAAC,WAAW,CAAC,oBAAoB,EAAE,CAAC,SAAS,CAAC,IAAI,IAAG;YACvD,IAAI,CAAC,IAAI,EAAE;gBACT,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC;aACzC;AACH,SAAC,CAAC,CAAC;KACJ;AATU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,kBACT,WAAW,EAAA,EAAA,EAAA,KAAA,EAAArC,IAAA,CAAA,MAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AADpB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,kBAAkB,sDAFnB,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;2FAED,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAJ9B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,gBAAgB;AAC1B,oBAAA,QAAQ,EAAE,EAAE;AACb,iBAAA,CAAA;;0BAEc,MAAM;2BAAC,WAAW,CAAA;;;MCDpB,kBAAkB,CAAA;AAC7B,IAAA,WAAA,CAAyC,WAAwB,EAAA;QAAxB,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;QAE1D,IAAM,CAAA,MAAA,GAAG,wCAAwC,CAAC;QAClD,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;KAH8C;IAK/D,QAAQ,GAAA;QACb,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,CAAC,SAAS,CAAC,MAAK;AAC3C,YAAA,IAAI,CAAC,MAAM,GAAG,YAAY,CAAC;AAC3B,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AACvB,SAAC,CAAC,CAAC;KACJ;AAXU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,kBACT,WAAW,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AADpB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,kBAAkB,sDCT/B,gNAA0E,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAsC,mBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,OAAA,EAAA,OAAA,EAAA,MAAA,EAAA,SAAA,EAAA,MAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FDS7D,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAL9B,SAAS;+BAEE,gBAAgB,EAAA,QAAA,EAAA,gNAAA,EAAA,CAAA;;0BAIb,MAAM;2BAAC,WAAW,CAAA;;;MEJpB,cAAc,CAAA;AAJ3B,IAAA,WAAA,GAAA;QAKS,IAAK,CAAA,KAAA,GAAG,QAAQ,CAAC;AAKzB,KAAA;IAHC,QAAQ,GAAA;KACP;8GAJU,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAd,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,cAAc,iDCN3B,kjCAaA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,mBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,OAAA,EAAA,OAAA,EAAA,MAAA,EAAA,SAAA,EAAA,MAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FDPa,cAAc,EAAA,UAAA,EAAA,CAAA;kBAJ1B,SAAS;+BACE,WAAW,EAAA,QAAA,EAAA,kjCAAA,EAAA,CAAA;;;MEGV,qBAAqB,CAAA;AAEhC,IAAA,WAAA,GAAA,GAAiB;IAEjB,QAAQ,GAAA;KACP;8GALU,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,QAAA,EAAA,IAAA,EAAA,qBAAqB,0DCNlC,uhCAcA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,mBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,OAAA,EAAA,OAAA,EAAA,MAAA,EAAA,SAAA,EAAA,MAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FDRa,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAJjC,SAAS;+BACE,oBAAoB,EAAA,QAAA,EAAA,uhCAAA,EAAA,CAAA;;;MEGnB,qBAAqB,CAAA;AAChC,IAAA,WAAA,GAAA,GAAiB;AAEV,IAAA,QAAQ,MAAY;8GAHhB,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,QAAA,EAAA,IAAA,EAAA,qBAAqB,wDCNlC,yrCAeA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,mBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,OAAA,EAAA,OAAA,EAAA,MAAA,EAAA,SAAA,EAAA,MAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FDTa,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAJjC,SAAS;+BACE,kBAAkB,EAAA,QAAA,EAAA,yrCAAA,EAAA,CAAA;;;MEIjB,WAAW,CAAA;AAEpB,IAAA,SAAS,CAAC,KAA2B,EAAA;QACjC,IAAI,KAAK,KAAK,SAAS,IAAI,IAAI,IAAI,EAAE,EAAE;AACnC,YAAA,OAAO,EAAE,CAAC;SACb;;QAED,OAAO,CAAA,EAAG,KAAK,CAAC,MAAM,IAAI,EAAE,CAAA,EAAG,KAAK,CAAC,YAAY,GAAG,GAAG,GAAG,KAAK,CAAC,YAAY,GAAG,EAAE,CAAG,EAAA,KAAK,CAAC,IAAI,GAAG,IAAI,GAAG,KAAK,CAAC,IAAI,GAAG,EAAE,CAAA,EAAG,CAAC,KAAK,CAAC,UAAW,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,UAAW,GAAG,EAAE,CAAA,CAAE,CAAC;KACnL;8GARQ,WAAW,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;4GAAX,WAAW,EAAA,IAAA,EAAA,SAAA,EAAA,IAAA,EAAA,KAAA,EAAA,CAAA,CAAA,EAAA;;2FAAX,WAAW,EAAA,UAAA,EAAA,CAAA;kBAJvB,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACF,oBAAA,IAAI,EAAE,SAAS;AACf,oBAAA,IAAI,EAAE,KAAK;AACd,iBAAA,CAAA;;;MCAY,kBAAkB,CAAA;AAE7B,IAAA,SAAS,CAAC,KAAU,EAAE,IAAS,EAAE,IAAS,EAAA;AAExC,QAAA,IAAI,IAAS,CAAC;AACd,QAAA,IAAI,OAAY,CAAC;AACjB,QAAA,IAAI,OAAY,CAAC;AACjB,QAAA,IAAI,KAAU,CAAC;QAEf,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,QAAQ,EAAE;AACtC,YAAA,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,GAAG,IAAI,IAAI,EAAE,CAAC,CAAC;AAC1C,YAAA,OAAO,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC;AACnD,YAAA,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;AAC/C,YAAA,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;SAEzD;aAAM,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,QAAQ,EAAE;YAC5C,OAAO,GAAG,IAAI,CAAC,KAAK,EAAE,KAAK,GAAG,EAAE,EAAE,CAAC;AACnC,YAAA,OAAO,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC;AAC1C,YAAA,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC;AACxC,YAAA,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;SAEzD;AAAM,aAAA,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,UAAU,IAAI,IAAI,KAAK,cAAc,CAAC,EAAE;AAC5E,YAAA,OAAO,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,GAAG,IAAI,IAAI,EAAE,EAAE,CAAC;AAC5C,YAAA,OAAO,GAAG,IAAI,CAAC,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC;AACjD,YAAA,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC;AACpD,YAAA,IAAI,GAAG,IAAI,CAAC,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;AACnD,YAAA,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;SAEzD;AAAM,aAAA,IAAI,IAAI,KAAK,GAAG,KAAK,IAAI,KAAK,UAAU,IAAI,IAAI,KAAK,cAAc,CAAC,EAAE;YAC3E,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC;AACjC,YAAA,OAAO,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC;AAC1C,YAAA,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;AAC7C,YAAA,IAAI,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC;AAC9C,YAAA,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;SAEzD;aACI;AACH,YAAA,OAAO,KAAK,CAAC;SACd;KACF;IAEO,MAAM,CAAC,IAAY,EAAE,OAAY,EAAE,OAAY,EAAE,KAAU,EAAE,IAAS,EAAA;AAC5E,QAAA,CAAC,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,CAAC;AACvC,QAAA,CAAC,KAAK,GAAG,EAAE,IAAI,KAAK,GAAG,GAAG,GAAG,KAAK,GAAG,KAAK,CAAC;AAC3C,QAAA,CAAC,OAAO,GAAG,EAAE,IAAI,OAAO,GAAG,GAAG,GAAG,OAAO,GAAG,OAAO,CAAC;AACnD,QAAA,CAAC,OAAO,GAAG,EAAE,IAAI,OAAO,GAAG,GAAG,GAAG,OAAO,GAAG,OAAO,CAAC;QAEnD,QAAQ,IAAI;AACV,YAAA,KAAK,QAAQ;AACX,gBAAA,OAAO,GAAG,KAAK,CAAA,CAAA,EAAI,OAAO,CAAI,CAAA,EAAA,OAAO,EAAE,CAAC;AAE1C,YAAA,KAAK,UAAU;gBACb,OAAO,CAAA,EAAG,IAAI,CAAM,GAAA,EAAA,KAAK,MAAM,OAAO,CAAA,GAAA,EAAM,OAAO,CAAA,CAAA,CAAG,CAAC;AAEzD,YAAA,KAAK,cAAc;gBACjB,OAAO,CAAA,EAAG,IAAI,CAAU,OAAA,EAAA,KAAK,WAAW,OAAO,CAAA,UAAA,EAAa,OAAO,CAAA,QAAA,CAAU,CAAC;SACjF;AACD,QAAA,OAAO,SAAS,CAAC;KAClB;8GA1DU,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;4GAAlB,kBAAkB,EAAA,IAAA,EAAA,gBAAA,EAAA,IAAA,EAAA,KAAA,EAAA,CAAA,CAAA,EAAA;;2FAAlB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAJ9B,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,gBAAgB;AACtB,oBAAA,IAAI,EAAE,KAAK;AACZ,iBAAA,CAAA;;;MCCY,eAAe,CAAA;IAExB,SAAS,CAAC,MAAc,EAAE,IAAU,EAAA;QAChC,IAAI,KAAK,CAAC,MAAM,CAAC;YAAE,OAAO,IAAI,CAAC;QAC/B,IAAI,MAAM,KAAK,IAAI;AAAE,YAAA,OAAO,IAAI,CAAC;QACjC,IAAI,MAAM,KAAK,CAAC;AAAE,YAAA,OAAO,IAAI,CAAC;QAC9B,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC3B,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;AAChC,QAAA,MAAM,UAAU,GAAG,MAAM,GAAG,CAAC,CAAC;QAC9B,IAAI,GAAG,GAAG,EAAE,CAAC;AAEb,QAAA,MAAM,MAAM,GAAG;AACX,YAAA,EAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,EAAC;AACnC,YAAA,EAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,EAAC;AACnC,YAAA,EAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,EAAC;AAClC,YAAA,EAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,EAAC;AAClC,YAAA,EAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAC;SAC1B,CAAC;AAEF,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACpC,IAAI,OAAO,GAAG,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;YACpC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC,GAAG,OAAO,CAAC;AAClD,YAAA,IAAI,OAAO,IAAI,CAAC,EAAE;gBACd,GAAG,GAAG,OAAO,CAAC;AACd,gBAAA,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;gBACpB,MAAM;aACT;SACJ;AACD,QAAA,OAAO,CAAC,UAAU,GAAG,GAAG,GAAG,EAAE,IAAI,GAAG,GAAG,GAAG,CAAC;KAC9C;8GA7BQ,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;4GAAf,eAAe,EAAA,IAAA,EAAA,aAAA,EAAA,IAAA,EAAA,KAAA,EAAA,CAAA,CAAA,EAAA;;2FAAf,eAAe,EAAA,UAAA,EAAA,CAAA;kBAJ3B,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACF,oBAAA,IAAI,EAAE,aAAa;AACnB,oBAAA,IAAI,EAAE,KAAK;AACZ,iBAAA,CAAA;;;MCGmB,iBAAiB,CAAA;IAoBrC,WAAoB,CAAA,MAAsB,EAAU,OAAe,EAAA;QAA/C,IAAM,CAAA,MAAA,GAAN,MAAM,CAAgB;QAAU,IAAO,CAAA,OAAA,GAAP,OAAO,CAAQ;QAnB5D,IAAK,CAAA,KAAA,GAA2B,IAAI,CAAC;AACrC,QAAA,IAAA,CAAA,IAAI,GAAW,YAAY,CAAC,KAAK,CAAC;QAClC,IAAK,CAAA,KAAA,GAAkB,IAAI,CAAC;QAC5B,IAAO,CAAA,OAAA,GAAiB,EAAE,CAAC;AAC3B,QAAA,IAAA,CAAA,WAAW,GAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACrC,IAAI,CAAA,IAAA,GAAG,CAAC,CAAC;QACT,IAAQ,CAAA,QAAA,GAAG,EAAE,CAAC;QACd,IAAK,CAAA,KAAA,GAAG,CAAC,CAAC;QACV,IAAI,CAAA,IAAA,GAAkB,EAAE,CAAC;QACzB,IAAO,CAAA,OAAA,GAAkB,EAAE,CAAC;QAC5B,IAAM,CAAA,MAAA,GAAkB,EAAE,CAAC;QAC3B,IAAO,CAAA,OAAA,GAAmB,EAAE,CAAC;QAC7B,IAAa,CAAA,aAAA,GAAmB,EAAE,CAAC;QACnC,IAAW,CAAA,WAAA,GAAiB,EAAE,CAAC;QAC/B,IAAS,CAAA,SAAA,GAAqB,EAAE,CAAC;KAMvC;IAED,WAAW,GAAA;AACT,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE;AAClB,YAAA,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC;SAC9B;AACD,QAAA,IAAG,IAAI,CAAC,QAAQ,EAAE;AAChB,YAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;SAC7B;KACF;IAEM,cAAc,GAAA;AACnB,QAAA,MAAM,OAAO,GAAG;AACd,YAAA,IAAI,UAAU,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,MAAM,EAAE,WAAW,CAAC;AAC/D,YAAA,IAAI,UAAU,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,oBAAoB,CAAC;SAC3E,CAAC;AACF,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE;AACpB,YAAA,OAAO,CAAC,IAAI,CAAC,IAAI,gBAAgB,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,WAAW,EAAE,WAAW,EAAE,yBAAyB,CAAC,CAAC,CAAC;SACzG;AACD,QAAA,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC;KACpB;IAED,QAAQ,GAAA;QACN,IAAI,CAAC,cAAc,EAAE,CAAC,SAAS,CAAC,OAAO,IAAG;AACxC,YAAA,IAAI,CAAC,OAAO,GAAG,OAAO,IAAI,EAAE,CAAC;AAC/B,SAAC,CAAC,CAAC;QAEH,IAAI,CAAC,SAAS,GAAG;AACf,YAAA,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,UAAU,EAAE,IAAI,EAAE,wBAAwB,EAAE;SACzE,CAAC;;;AAKF,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC,MAAM,IAAG;YAC5D,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;gBAC5B,OAAO;aACR;;AAGD,YAAA,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,YAAY,CAAC,KAAK,CAAC;;YAGrD,IAAI,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,IAAI,IAAI,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAC,MAAM,EAAE;gBACzE,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;aAC1C;AAED,YAAA,MAAM,IAAI,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;AACxC,YAAA,IAAI,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE;AACtB,gBAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;aAClB;AAED,YAAA,MAAM,IAAI,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC;AAC7C,YAAA,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,EAAE;AAC1B,gBAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;aACtB;YAED,IAAI,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAC,MAAM,EAAE;gBACxC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;aACpC;YAED,IAAI,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,IAAI,EAAE;gBACpC,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;aAChC;YAED,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,OAAO,EAAE;gBACtC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;aAClC;;YAED,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;AAC7C,SAAC,CAAC,CAAC;;AAEH,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QAC1B,IAAI,CAAC,IAAI,EAAE,CAAC;KACb;AAED;;;;AAIC;AACO,IAAA,cAAc,CAAC,aAAuB,EAAA;QAC5C,IAAI,YAAY,GAAmB,EAAE,CAAC;QACtC,IAAI,aAAa,CAAC,GAAG,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,aAAa,CAAC,GAAG,CAAC,eAAe,CAAC,MAAM,CAAE,CAAC,MAAM,GAAG,CAAC,EAAE;YACtG,IAAI,WAAW,GAAG,aAAa,CAAC,GAAG,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;YAC5D,MAAM,YAAY,GAAG,WAAW,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;YAC7C,IAAI,YAAY,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE;;AAE3C,gBAAA,KAAK,IAAI,KAAK,IAAI,YAAY,EAAE;oBAC9B,IAAI,YAAY,GAAG,YAAY,CAAC,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;oBAC3D,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC,YAAa,CAAC,MAAM,EAAE,YAAa,CAAC,KAAK,EAAE,YAAa,CAAC,QAAQ,EAAE,YAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;AAC/I,oBAAA,IAAI,MAAM,KAAK,SAAS,EAAE;AACxB,wBAAA,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;qBAC3B;iBACF;aACF;SACF;AACD,QAAA,OAAO,YAAY,CAAC;KACrB;IAEO,cAAc,CAAC,iBAA0B,KAAK,EAAA;AACpD,QAAA,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE;AACxB,YAAA,UAAU,EAAE,IAAI,CAAC,MAAM,EAAE,WAAW,EAAE;gBACpC,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,GAAG,EAAE,IAAI,CAAC,OAAO;gBACjB,MAAM,EAAE,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,OAAO,CAAC;AACjD,aAAA,EAAE,mBAAmB,EAAE,OAAO,EAAE,kBAAkB,EAAE,cAAc;AACpE,SAAA,CAAC,CAAC;KACJ;AAEO,IAAA,qBAAqB,CAAC,OAAmC,EAAA;AAC/D,QAAA,OAAO,OAAO,EAAE,GAAG,CAAC,CAAC,CAAe,KAAI;AACtC,YAAA,IAAI,CAAC,CAAC,QAAQ,KAAK,UAAU,EAAE;AAC7B,gBAAA,CAAC,CAAC,KAAK,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,WAAW,EAAE,CAAC;aAC7C;AACD,YAAA,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC;AACtB,SAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KACd;AAEM,IAAA,aAAa,CAAC,MAAkB,EAAA;;AAErC,QAAA,IAAI,MAAM,CAAC,GAAG,KAAK,SAAS,EAAE;YAC5B,IAAI,CAAC,OAAO,EAAE,CAAC;SAChB;KACF;IAEO,IAAI,GAAA;;AAEV,QAAA,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;AACf,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;AAClB,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC,SAAS,CAAC,MAAM,IAAG;AAClD,YAAA,IAAI,CAAC,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC;AACvC,YAAA,IAAI,CAAC,KAAK,GAAG,MAAM,EAAE,KAAK,CAAC;YAC3B,IAAI,CAAC,gBAAgB,EAAE,CAAC;SACzB,EAAE,GAAG,IAAG;AACP,YAAA,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;AACf,YAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;YAClB,IAAI,CAAC,gBAAgB,EAAE,CAAC;AAC1B,SAAC,CAAC,CAAC;KACJ;IAEO,gBAAgB,GAAA;QACtB,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;QAChE,IAAI,KAAK,EAAE;AACT,YAAA,IAAI,CAAC,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,GAAG,CAAA,EAAG,IAAI,CAAC,KAAK,CAAA,WAAA,CAAa,GAAG,KAAK,CAAC,IAAI,GAAG,CAAA,EAAG,IAAI,CAAC,KAAK,CAAA,aAAA,CAAe,CAAC;SACxG;KACF;IAIM,KAAK,GAAA;AACV,QAAA,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;AACf,QAAA,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;AACd,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;AAClB,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,IAAI,CAAC,IAAI,EAAE,CAAC;KACb;IAEM,OAAO,GAAA;AACZ,QAAA,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;QACf,IAAI,CAAC,gBAAgB,EAAE,CAAC;AACxB,QAAA,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;AACd,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,IAAI,CAAC,IAAI,EAAE,CAAC;KACb;AAEM,IAAA,WAAW,CAAC,IAAY,EAAA;AAC7B,QAAA,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,EAAE;AACtB,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;YACjB,IAAI,CAAC,cAAc,EAAE,CAAC;YACtB,IAAI,CAAC,IAAI,EAAE,CAAC;SACb;KACF;AAEM,IAAA,eAAe,CAAC,QAAgB,EAAA;AACrC,QAAA,IAAI,IAAI,CAAC,QAAQ,KAAK,QAAQ,EAAE;AAC9B,YAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;AACzB,YAAA,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;YACd,IAAI,CAAC,cAAc,EAAE,CAAC;YACtB,IAAI,CAAC,OAAO,EAAE,CAAC;SAChB;KACF;AAEM,IAAA,WAAW,CAAC,IAAY,EAAA;;AAE7B,QAAA,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,EAAE;AACtB,YAAA,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;AACd,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;YACjB,IAAI,CAAC,cAAc,EAAE,CAAC;YACtB,IAAI,CAAC,OAAO,EAAE,CAAC;SAChB;KACF;AAEM,IAAA,cAAc,CAAC,OAAe,EAAA;AACnC,QAAA,IAAI,IAAI,CAAC,OAAO,KAAK,OAAO,EAAE;AAC5B,YAAA,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;AACd,YAAA,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;YACvB,IAAI,CAAC,cAAc,EAAE,CAAC;YACtB,IAAI,CAAC,OAAO,EAAE,CAAC;SAChB;KACF;AAEM,IAAA,qBAAqB,CAAC,OAAuB,EAAA;AAClD,QAAA,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;AACf,QAAA,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;AACd,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;AAClB,QAAA,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,IAAI,CAAC,IAAI,EAAE,CAAC;KACb;AAEM,IAAA,aAAa,CAAC,UAAyB,EAAA;AAC5C,QAAA,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;AACf,QAAA,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;AACd,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;AAClB,QAAA,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC;QACzB,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,IAAI,CAAC,IAAI,EAAE,CAAC;KACb;8GArPmB,iBAAiB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAtC,IAAA,CAAA,cAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,MAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAjB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,iBAAiB,oDADhB,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;2FACH,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBADtC,SAAS;mBAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAA;;;ACPpB,MAAM,aAAa,GAAG;AAC3B,IAAA,QAAQ,EAAE,gBAAgB;AAC1B,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,IAAI,EAAE,MAAM;AACb,IAAA,SAAS,EAAE,YAAY;CACvB,CAAC;AAEK,MAAM,aAAa,GAAG;AAC3B,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,KAAK,EAAE,GAAG;CACX;;ACND;;;;;AAKG;MASU,sBAAsB,CAAA;IAGjC,WAAoB,CAAA,OAAmB,EAAU,QAAmB,EAAA;QAAhD,IAAO,CAAA,OAAA,GAAP,OAAO,CAAY;QAAU,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAW;QAF5D,IAAiB,CAAA,iBAAA,GAAG,KAAK,CAAC;KAEsC;IAExE,QAAQ,GAAA;AACN,QAAA,IAAI,IAAI,CAAC,iBAAiB,EAAE;AAC1B,YAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC;YACvE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;SACzC;AACD,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC;KACxE;IAEM,IAAI,GAAA;AACT,QAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC;QAC1E,UAAU,CAAC,MAAM,IAAI,CAAC,cAAc,EAAE,IAAI,EAAE,EAAE,IAAI,CAAC,iBAAiB,GAAG,aAAa,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;KACpG;AAED,IAAA,MAAM,CAAC,OAAY,EAAA;AACjB,QAAA,CAAC,CAAC,EAAO,KAAW,EAAE,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;KAC/C;8GApBU,sBAAsB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,SAAA,EAAA,CAAA,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,QAAA,EAAA,IAAA,EAAA,sBAAsB,sGALvB,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;2FAKD,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBARlC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,oBAAoB;oBAC9B,aAAa,EAAE,iBAAiB,CAAC,IAAI;AACrC,oBAAA,QAAQ,EAAE,EAAE;AACZ,oBAAA,IAAI,EAAE;wBACJ,KAAK,EAAE,aAAa,CAAC,QAAQ;AAC9B,qBAAA;AACF,iBAAA,CAAA;;;ACfD;;;;;;;AAOG;MAEU,YAAY,CAAA;8GAAZ,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;kHAAZ,YAAY,EAAA,CAAA,CAAA,EAAA;;2FAAZ,YAAY,EAAA,UAAA,EAAA,CAAA;kBADxB,UAAU;;AA2DX;;AAEG;AACI,MAAM,mBAAmB,GAAiB;AAC/C,IAAA,QAAQ,EAAE,IAAI;AACd,IAAA,QAAQ,EAAE,IAAI;AACd,IAAA,IAAI,EAAE,KAAK;AACX,IAAA,mBAAmB,EAAE,KAAK;AAC1B,IAAA,KAAK,EAAE,EAAE;AACT,IAAA,QAAQ,EAAE,IAAI;AACd,IAAA,YAAY,EAAE,EAAE;IAChB,gBAAgB,EAAE,KAAK,CAAC;CACzB,CAAC;AAEF;;AAEG;MACU,6BAA6B,GAAiC,IAAI,cAAc,CAAe,yBAAyB;;ACjFrI;;;;;;AAMG;MAmBU,uBAAuB,CAAA;AAQlC,IAAA,WAAA,CAAY,OAAqB,EAAY,QAAoB,EAAU,QAAmB,EAAA;QAAjD,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAY;QAAU,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAW;QAJtF,IAAO,CAAA,OAAA,GAAG,KAAK,CAAC;QAChB,IAAiB,CAAA,iBAAA,GAAG,KAAK,CAAC;QAC1B,IAAa,CAAA,aAAA,GAAG,KAAK,CAAC;QACtB,IAAqB,CAAA,qBAAA,GAAG,KAAK,CAAC;QAEpC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;KAC1C;IAED,QAAQ,GAAA;AACN,QAAA,IAAI,IAAI,CAAC,iBAAiB,EAAE;AAC1B,YAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC;SACzE;AACD,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;QACxE,UAAU,CACR,MAAK;AACH,YAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;AACpB,YAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC;AAC1E,SAAC,EACD,IAAI,CAAC,iBAAiB,GAAG,aAAa,CAAC,QAAQ,GAAG,CAAC,CACpD,CAAC;AACF,QAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE;AAC/B,YAAA,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;SACrC;KACF;AAGD,IAAA,cAAc,CAAC,KAAiB,EAAA;AAC9B,QAAA,IAAI,CAAC,qBAAqB,GAAG,KAAK,CAAC,MAAM,KAAK,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC;KAC3E;AAGD,IAAA,WAAW,CAAC,KAAiB,EAAA;AAC3B,QAAA,MAAM,iBAAiB,GAAG,KAAK,CAAC,MAAM,KAAK,IAAI,CAAC,QAAQ,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC;AACtG,QAAA,IAAI,IAAI,CAAC,MAAM,CAAC,mBAAmB,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,KAAK,QAAQ,IAAI,CAAC,iBAAiB,EAAE;AAC9F,YAAA,IAAI,CAAC,qBAAqB,GAAG,KAAK,CAAC;YACnC,OAAO;SACR;QACD,IAAI,CAAC,IAAI,EAAE,CAAC;KACb;IAGD,UAAU,GAAA;QACR,IAAI,CAAC,IAAI,EAAE,CAAC;KACb;AAGD,IAAA,KAAK,CAAC,KAAoB,EAAA;AACxB,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YACjB,OAAO;SACR;AACD,QAAA,IAAI,KAAK,CAAC,OAAO,KAAK,EAAE,IAAI,KAAK,CAAC,GAAG,KAAK,QAAQ,IAAI,KAAK,CAAC,GAAG,KAAK,KAAK,EAAE;YACzE,KAAK,CAAC,cAAc,EAAE,CAAC;SACxB;QACD,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,IAAI,CAAC,MAAM,CAAC,EAAE,KAAK,IAAI,CAAC,YAAY,EAAE,cAAc,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE;YAC5F,IAAI,CAAC,IAAI,EAAE,CAAC;SACb;KACF;IAED,WAAW,GAAA;AACT,QAAA,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,IAAI,CAAC,KAAK,EAAE,CAAC;SACd;KACF;AAED,IAAA,IAAI,CAAC,MAAY,EAAA;QACf,IAAI,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YACvC,OAAO;SACR;AACD,QAAA,IAAI,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE;YAChC,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC,IAAI,CACjC,MAAM,IAAI,CAAC,KAAK,EAAE,EAClB,MAAM,SAAS,CAChB,CAAC;YACF,OAAO;SACR;AACD,QAAA,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;KACpB;AAEO,IAAA,KAAK,CAAC,MAAY,EAAA;AACxB,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;AAC1B,QAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC;QAC3E,UAAU,CACR,MAAK;AACH,YAAA,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;AACrB,YAAA,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;AAChD,YAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;AAC7B,SAAC,EACD,IAAI,CAAC,iBAAiB,GAAG,aAAa,CAAC,KAAK,GAAG,CAAC,CACjD,CAAC;KACH;8GA7FU,uBAAuB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAuC,YAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,SAAA,EAAA,CAAA,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,QAAA,EAAA,IAAA,EAAA,uBAAuB,EAhBxB,QAAA,EAAA,qBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,UAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,WAAA,EAAA,wBAAA,EAAA,OAAA,EAAA,qBAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,oBAAA,EAAA,eAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,sBAAA,EAAA,uBAAA,EAAA,uBAAA,EAAA,wBAAA,EAAA,EAAA,cAAA,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;AAMT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;2FAUU,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAlBnC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,qBAAqB;AAC/B,oBAAA,QAAQ,EAAE,CAAA;;;;;;AAMT,EAAA,CAAA;AACD,oBAAA,IAAI,EAAE;AACJ,wBAAA,KAAK,EAAE,OAAO;AACd,wBAAA,IAAI,EAAE,QAAQ;AACd,wBAAA,QAAQ,EAAE,IAAI;AACd,wBAAA,mBAAmB,EAAE,MAAM;AAC3B,wBAAA,wBAAwB,EAAE,uBAAuB;AACjD,wBAAA,yBAAyB,EAAE,wBAAwB;AACpD,qBAAA;AACF,iBAAA,CAAA;+HA+BC,cAAc,EAAA,CAAA;sBADb,YAAY;uBAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,CAAA;gBAMrC,WAAW,EAAA,CAAA;sBADV,YAAY;uBAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,CAAA;gBAWjC,UAAU,EAAA,CAAA;sBADT,YAAY;uBAAC,iBAAiB,CAAA;gBAM/B,KAAK,EAAA,CAAA;sBADJ,YAAY;uBAAC,oBAAoB,EAAE,CAAC,QAAQ,CAAC,CAAA;;;AC5EhD;;;;;AAKG;MAEU,KAAK,CAAA;AADlB,IAAA,WAAA,GAAA;AA0BE;;;AAGG;AACH,QAAA,IAAA,CAAA,IAAI,GAA2B,MAAM,KAAK,CAAC,CAAC;AAC5C;;AAEG;AACH,QAAA,IAAA,CAAA,QAAQ,GAA+B,MAAM,KAAK,CAAC,CAAC;AACrD,KAAA;8GAlCY,KAAK,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;kHAAL,KAAK,EAAA,CAAA,CAAA,EAAA;;2FAAL,KAAK,EAAA,UAAA,EAAA,CAAA;kBADjB,UAAU;;;ACEX;;;;AAIG;MAEU,YAAY,CAAA;AAavB,IAAA,WAAA,CACU,GAA2B,EACnC,eAAiC,EACP,QAAa,EACY,kBAAgC,EAAA;QAH3E,IAAG,CAAA,GAAA,GAAH,GAAG,CAAwB;QAET,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAK;AAfjC,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,OAAO,EAAE,CAAC;AAC7B,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AACxB,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,OAAO,EAAE,CAAC;AAC7B,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,OAAO,EAAE,CAAC;QAKzB,IAAO,CAAA,OAAA,GAA+C,EAAE,CAAC;QAEzD,IAAW,CAAA,WAAA,GAAG,CAAC,CAAC;QAChB,IAAc,CAAA,cAAA,GAAG,KAAK,CAAC;QAO7B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,EAA0B,CAAC;QACtE,IAAI,CAAC,aAAa,GAAG,EAAE,GAAG,mBAAmB,EAAE,GAAG,kBAAkB,EAAE,CAAC;QACvE,IAAI,CAAC,QAAQ,GAAG,eAAe,CAAC,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;KAC5D;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;KAC3D;AAED;;;;;;AAMG;IACI,IAAI,CAAI,OAAgE,EAAE,MAAwB,EAAA;QACvG,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,MAAM,cAAc,GAAG,EAAE,GAAG,IAAI,CAAC,aAAa,EAAE,GAAG,MAAM,EAAE,CAAC;AAC5D,QAAA,cAAc,CAAC,EAAE,GAAG,MAAM,EAAE,EAAE,IAAI,IAAI,IAAI,EAAE,CAAC,kBAAkB,EAAE,CAAC;AAClE,QAAA,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;QACpC,IAAI,CAAC,aAAa,EAAE,CAAC;QAErB,IAAI,CAAC,cAAc,EAAE,CAAC;AACtB,QAAA,IAAI,IAAI,CAAC,WAAW,KAAK,CAAC,EAAE;AAC1B,YAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC;SACrE;AACD,QAAA,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC;QAClC,OAAO,IAAI,CAAC,SAAS,CAAI,OAAO,EAAE,cAAc,CAAC,CAAC;KACnD;AAED;;;;AAIG;IACI,IAAI,CAAC,EAAoB,EAAE,MAAY,EAAA;QAC5C,IAAI,IAAI,CAAC,WAAW,KAAK,CAAC,IAAI,EAAE,IAAI,IAAI,EAAE;YACxC,IAAI,CAAC,YAAY,EAAE,CAAC;YACpB,IAAI,CAAC,eAAe,EAAE,CAAC;AACvB,YAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC;SACxE;QACD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,EAAE,IAAI,IAAI,GAAG,IAAI,CAAC,WAAW,GAAG,CAAC,GAAG,CAAC,CAAC;QAClF,UAAU,CACR,MAAK;AACH,YAAA,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;AAC3B,YAAA,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;SACxB;;;;;AAKD,QAAA,IAAI,CAAC,aAAa,CAAC,QAAQ,GAAG,aAAa,CAAC,QAAQ,GAAG,CAAC,CACzD,CAAC;KACH;IAEM,cAAc,GAAA;AACnB,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC,QAAmC,CAAC;KAC/E;IAEO,SAAS,CAAI,OAAY,EAAE,cAA4B,EAAA;AAC7D,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AAC1D,QAAA,IAAI,cAAc,IAAI,cAAc,CAAC,SAAS,EAAE;AAC9C,YAAA,cAAc,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,KAAK,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;SAC/E;AAED,QAAA,MAAM,KAAK,GAAG,IAAI,KAAK,EAAO,CAAC;QAC/B,MAAM,iBAAiB,GAAG,WAAW;aAClC,OAAO,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,cAAc,EAAE,CAAC;aAC5D,OAAO,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;aAC5C,MAAM,CAAC,uBAAuB,CAAC;aAC/B,EAAE,CAAC,MAAM,CAAC,CAAC;AAEd,QAAA,KAAK,CAAC,QAAQ,GAAG,CAAC,QAAgB,KAAI;AACpC,YAAA,IAAI,iBAAiB,CAAC,QAAQ,EAAE;gBAC9B,iBAAiB,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,GAAG,QAAQ,CAAC;aACpD;AACH,SAAC,CAAC;AAEF,QAAA,KAAK,CAAC,YAAY,GAAG,IAAI,OAAO,EAAE,CAAC;AACnC,QAAA,KAAK,CAAC,QAAQ,GAAG,IAAI,OAAO,EAAE,CAAC;QAC/B,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,YAAY,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;QAC7D,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;QACrD,iBAAiB,CAAC,IAAI,CAAC;YACrB,OAAO;YACP,iBAAiB,EAAE,cAAc,CAAC,QAAQ;YAC1C,YAAY,EAAE,cAAc,CAAC,YAAY;AACzC,YAAA,YAAY,EAAE,IAAI;YAClB,EAAE,EAAE,cAAc,CAAC,EAAE;AACtB,SAAA,CAAC,CAAC;AAEH,QAAA,IAAI,iBAAiB,CAAC,QAAQ,EAAE;YAC9B,iBAAiB,CAAC,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC;AACpD,YAAA,KAAK,CAAC,OAAO,GAAG,WAAW,CAAC,iBAAiB,EAAE,CAAC;YAChD,KAAK,CAAC,EAAE,GAAG,iBAAiB,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC;AACjD,YAAA,KAAK,CAAC,IAAI,GAAG,CAAC,GAAG,KAAK,iBAAiB,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;SAC7D;AAED,QAAA,OAAO,KAAK,CAAC;KACd;IAEO,SAAS,CAAC,EAAoB,EAAE,MAAY,EAAA;AAClD,QAAA,IAAI,EAAE,IAAI,IAAI,EAAE;YACd,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;YAC5F,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;YAChD,IAAI,WAAW,EAAE;AACf,gBAAA,WAAW,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;aAC9B;SACF;aAAM;YACL,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAgD,KAAI;AACxE,gBAAA,IAAI,MAAM,CAAC,QAAQ,EAAE;oBACnB,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;iBACxC;AACH,aAAC,CAAC,CAAC;SACJ;KACF;AAEO,IAAA,YAAY,CAAC,cAA4B,EAAA;AAC/C,QAAA,MAAM,iBAAiB,GAAG,cAAc,CAAC,QAAQ,KAAK,IAAI,IAAI,cAAc,CAAC,QAAQ,KAAK,QAAQ,CAAC;AACnG,QAAA,MAAM,eAAe,GAAG,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC;AACjD,QAAA,IAAI,iBAAiB,IAAI,CAAC,eAAe,EAAE;AACzC,YAAA,IAAI,CAAC,cAAc;iBAChB,MAAM,CAAC,sBAAsB,CAAC;iBAC9B,EAAE,CAAC,MAAM,CAAC;AACV,iBAAA,IAAI,CAAC,EAAE,iBAAiB,EAAE,cAAc,CAAC,QAAQ,EAAE,cAAc,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC;YAC7F,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC;SACrD;KACF;IAEO,YAAY,GAAA;AAClB,QAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;YACrB,OAAO;SACR;AACD,QAAA,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;AACjC,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,CAAC;KAC3B;AAEO,IAAA,aAAa,CAAC,EAAoB,EAAA;AACxC,QAAA,IAAI,EAAE,IAAI,IAAI,EAAE;YACd,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;AAC5F,YAAA,IAAI,aAAa,IAAI,CAAC,EAAE;gBACtB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;gBACtC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAgD,EAAE,CAAS,KAAI;AACnF,oBAAA,IAAI,MAAM,CAAC,QAAQ,EAAE;wBACnB,MAAM,CAAC,QAAQ,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC;qBAC/B;AACH,iBAAC,CAAC,CAAC;aACJ;SACF;aAAM;AACL,YAAA,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;SAC7C;KACF;IAEO,cAAc,GAAA;AACpB,QAAA,IAAI,IAAI,CAAC,WAAW,KAAK,CAAC,EAAE;AAC1B,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;AACvC,YAAA,IAAI,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,EAAE;AAClC,gBAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC;AAC5D,gBAAA,MAAM,aAAa,GAAG,UAAU,CAAC,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,CAAC;AAC3F,gBAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,CAAG,EAAA,aAAa,GAAG,KAAK,IAAI,CAAC;aACtE;SACF;KACF;IAEO,eAAe,GAAA;AACrB,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC;KAC7D;IAEO,iBAAiB,GAAA;QACvB,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AACpD,QAAA,QAAQ,CAAC,SAAS,GAAG,yBAAyB,CAAC;AAE/C,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;AAChC,QAAA,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;AAC3B,QAAA,MAAM,KAAK,GAAG,QAAQ,CAAC,qBAAqB,EAAE,CAAC,KAAK,GAAG,QAAQ,CAAC,WAAW,CAAC;AAC5E,QAAA,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;AAE3B,QAAA,OAAO,KAAK,CAAC;KACd;AAEO,IAAA,kBAAkB,CAAC,cAAsB,EAAA;QAC/C,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC;AACxD,QAAA,MAAM,iBAAiB,GAAG,MAAM,CAAC,UAAU,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;AACvE,QAAA,MAAM,WAAW,GAAG,GAAG,GAAG,cAAc,CAAC;AACzC,QAAA,OAAO,iBAAiB,IAAI,cAAc,GAAG,WAAW,CAAC;KAC1D;IAEO,aAAa,GAAA;QACnB,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,EAA2B,CAAC;QAChE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,YAAY,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QACvD,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAC7C,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,YAAY,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QACvD,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC/C,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;KAC3B;IAEO,SAAS,CAAC,IAAsB,EAAE,EAAoB,EAAA;AAC5D,QAAA,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,KAAI;AACtB,YAAA,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAChB,SAAC,CAAC,CAAC;KACJ;8GA3NU,YAAY,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,sBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,EAAA,EAAA,KAAA,EAgBb,QAAQ,EAAA,EAAA,EAAA,KAAA,EACI,6BAA6B,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;kHAjBxC,YAAY,EAAA,CAAA,CAAA,EAAA;;2FAAZ,YAAY,EAAA,UAAA,EAAA,CAAA;kBADxB,UAAU;;0BAiBN,MAAM;2BAAC,QAAQ,CAAA;;0BACf,QAAQ;;0BAAI,MAAM;2BAAC,6BAA6B,CAAA;;;MC4JxC,sBAAsB,CAAA;AACjC,IAAA,OAAO,OAAO,GAAA;QACZ,OAAO;AACL,YAAA,QAAQ,EAAE,sBAAsB;AAChC,YAAA,SAAS,EAAE;gBACT,iBAAiB;gBACjB,cAAc;gBACd,mBAAmB;AACpB,aAAA;SACF,CAAC;KACH;8GAVU,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,sBAAsB,iBAvH/B,WAAW;YACX,uBAAuB;YACvB,qBAAqB;YACrB,kBAAkB;YAClB,uBAAuB;YACvB,mBAAmB;YACnB,qBAAqB;YACrB,yBAAyB;YACzB,iBAAiB;YACjB,mBAAmB;YACnB,qBAAqB;YACrB,kBAAkB;YAClB,eAAe;YACf,6BAA6B;YAC7B,cAAc;YACd,mBAAmB;YACnB,gBAAgB;YAChB,0BAA0B;YAC1B,gBAAgB;YAChB,oBAAoB;YACpB,qBAAqB;YACrB,mBAAmB;YACnB,eAAe;YACf,oBAAoB;YACpB,oBAAoB;YACpB,mBAAmB;YACnB,2BAA2B;YAC3B,iBAAiB;YACjB,iBAAiB;YACjB,2BAA2B;YAC3B,kBAAkB;YAClB,wBAAwB;YACxB,qBAAqB;YACrB,+BAA+B;YAC/B,qBAAqB;YACrB,cAAc;YACd,oBAAoB;YACpB,oBAAoB;YACpB,oBAAoB;YACpB,qBAAqB;YACrB,2BAA2B;YAC3B,2BAA2B;YAC3B,2BAA2B;YAC3B,iBAAiB;YACjB,uBAAuB;YACvB,uBAAuB;YACvB,gBAAgB;YAChB,yBAAyB;YACzB,eAAe;YACf,qBAAqB;YACrB,wBAAwB;YACxB,mBAAmB;YACnB,qBAAqB;YACrB,0BAA0B;YAC1B,oBAAoB;YACpB,wBAAwB;YACxB,0BAA0B;YAC1B,kBAAkB;AAClB,YAAA,oBAAoB,aAGpB,YAAY;YACZ,YAAY;YACZ,gBAAgB;AAChB,YAAA,WAAW,aAGX,WAAW;YACX,uBAAuB;YACvB,qBAAqB;YACrB,kBAAkB;YAClB,uBAAuB;YACvB,mBAAmB;YACnB,qBAAqB;YACrB,yBAAyB;YACzB,iBAAiB;YACjB,mBAAmB;YACnB,qBAAqB;YACrB,kBAAkB;YAClB,eAAe;YACf,cAAc;YACd,mBAAmB;YACnB,gBAAgB;YAChB,gBAAgB;YAChB,oBAAoB;YACpB,qBAAqB;YACrB,mBAAmB;YACnB,eAAe;YACf,oBAAoB;YACpB,oBAAoB;YACpB,mBAAmB;YACnB,2BAA2B;YAC3B,iBAAiB;YACjB,iBAAiB;YACjB,2BAA2B;YAC3B,kBAAkB;YAClB,wBAAwB;YACxB,qBAAqB;YACrB,cAAc;YACd,oBAAoB;YACpB,oBAAoB;YACpB,oBAAoB;YACpB,iBAAiB;YACjB,uBAAuB;YACvB,uBAAuB;YACvB,gBAAgB;YAChB,yBAAyB;YACzB,eAAe;YACf,qBAAqB;YACrB,mBAAmB;YACnB,qBAAqB;YACrB,0BAA0B;YAC1B,oBAAoB;YACpB,wBAAwB;YACxB,0BAA0B;YAC1B,kBAAkB;YAClB,oBAAoB,CAAA,EAAA,CAAA,CAAA,EAAA;AAGX,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,sBAAsB,YA1D/B,YAAY;YACZ,YAAY;YACZ,gBAAgB;YAChB,WAAW,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAuDF,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAzHlC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE;wBACZ,WAAW;wBACX,uBAAuB;wBACvB,qBAAqB;wBACrB,kBAAkB;wBAClB,uBAAuB;wBACvB,mBAAmB;wBACnB,qBAAqB;wBACrB,yBAAyB;wBACzB,iBAAiB;wBACjB,mBAAmB;wBACnB,qBAAqB;wBACrB,kBAAkB;wBAClB,eAAe;wBACf,6BAA6B;wBAC7B,cAAc;wBACd,mBAAmB;wBACnB,gBAAgB;wBAChB,0BAA0B;wBAC1B,gBAAgB;wBAChB,oBAAoB;wBACpB,qBAAqB;wBACrB,mBAAmB;wBACnB,eAAe;wBACf,oBAAoB;wBACpB,oBAAoB;wBACpB,mBAAmB;wBACnB,2BAA2B;wBAC3B,iBAAiB;wBACjB,iBAAiB;wBACjB,2BAA2B;wBAC3B,kBAAkB;wBAClB,wBAAwB;wBACxB,qBAAqB;wBACrB,+BAA+B;wBAC/B,qBAAqB;wBACrB,cAAc;wBACd,oBAAoB;wBACpB,oBAAoB;wBACpB,oBAAoB;wBACpB,qBAAqB;wBACrB,2BAA2B;wBAC3B,2BAA2B;wBAC3B,2BAA2B;wBAC3B,iBAAiB;wBACjB,uBAAuB;wBACvB,uBAAuB;wBACvB,gBAAgB;wBAChB,yBAAyB;wBACzB,eAAe;wBACf,qBAAqB;wBACrB,wBAAwB;wBACxB,mBAAmB;wBACnB,qBAAqB;wBACrB,0BAA0B;wBAC1B,oBAAoB;wBACpB,wBAAwB;wBACxB,0BAA0B;wBAC1B,kBAAkB;wBAClB,oBAAoB;AACrB,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,YAAY;wBACZ,gBAAgB;wBAChB,WAAW;AACZ,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,WAAW;wBACX,uBAAuB;wBACvB,qBAAqB;wBACrB,kBAAkB;wBAClB,uBAAuB;wBACvB,mBAAmB;wBACnB,qBAAqB;wBACrB,yBAAyB;wBACzB,iBAAiB;wBACjB,mBAAmB;wBACnB,qBAAqB;wBACrB,kBAAkB;wBAClB,eAAe;wBACf,cAAc;wBACd,mBAAmB;wBACnB,gBAAgB;wBAChB,gBAAgB;wBAChB,oBAAoB;wBACpB,qBAAqB;wBACrB,mBAAmB;wBACnB,eAAe;wBACf,oBAAoB;wBACpB,oBAAoB;wBACpB,mBAAmB;wBACnB,2BAA2B;wBAC3B,iBAAiB;wBACjB,iBAAiB;wBACjB,2BAA2B;wBAC3B,kBAAkB;wBAClB,wBAAwB;wBACxB,qBAAqB;wBACrB,cAAc;wBACd,oBAAoB;wBACpB,oBAAoB;wBACpB,oBAAoB;wBACpB,iBAAiB;wBACjB,uBAAuB;wBACvB,uBAAuB;wBACvB,gBAAgB;wBAChB,yBAAyB;wBACzB,eAAe;wBACf,qBAAqB;wBACrB,mBAAmB;wBACnB,qBAAqB;wBACrB,0BAA0B;wBAC1B,oBAAoB;wBACpB,wBAAwB;wBACxB,0BAA0B;wBAC1B,kBAAkB;wBAClB,oBAAoB;AACrB,qBAAA;AACF,iBAAA,CAAA;;;AC7LD;AACA;;ACDA;;AAEG;;;;"}
|