boruto-xrmui 1.22.13 → 1.22.15

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.
@@ -2319,11 +2319,11 @@ class XrmuiTabs {
2319
2319
  constructor() {
2320
2320
  }
2321
2321
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: XrmuiTabs, deps: [], target: i0.ɵɵFactoryTarget.Component });
2322
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.1", type: XrmuiTabs, isStandalone: true, selector: "xrmui-tabs", inputs: { tabs: { classPropertyName: "tabs", publicName: "tabs", isSignal: true, isRequired: true, transformFunction: null }, burgers: { classPropertyName: "burgers", publicName: "burgers", isSignal: true, isRequired: false, transformFunction: null }, current: { classPropertyName: "current", publicName: "current", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { current: "currentChange" }, providers: [], ngImport: i0, template: "<div class=\"xrmui-tabs\">\r\n@for (tab of tabs(); track tab; let idx = $index) {\r\n @if (tab.visible == undefined || tab.visible()) {\r\n <div class=\"xrmui-tab\" [ngClass]=\"{ 'current' : tab == current(), 'disabled': tab.disabled, error: tab != current() && tab.error != undefined && tab.error()}\" (click)=\"current.set(tab)\">\r\n @if (tab.badget != undefined && tab.badget > 0) {\r\n <div [matBadge]=\"tab.badget\" [matBadgeOverlap]=\"false\">\r\n @if (tab.icon != undefined && tab.icon != null && tab.icon != ''){<div class=\"icon\"><mat-icon fontSet=\"material-symbols-outlined\" class=\"mat-icon-14\">{{ tab.icon }}</mat-icon></div>}\r\n <span>\r\n @if (tab.label != undefined && tab.label != null && tab.label != '') { {{ tab.label }} }\r\n @if (tab.label == undefined || tab.label == null || tab.label == '') { {{ tab.id }} }\r\n </span>\r\n </div>\r\n }\r\n\r\n @if (tab.badget == undefined || tab.badget == 0) {\r\n @if (tab.icon != undefined && tab.icon != null && tab.icon != ''){<div class=\"icon\"><mat-icon class=\"mat-icon-14\">{{ tab.icon }}</mat-icon></div>}\r\n <span>\r\n @if (tab.label != undefined && tab.label != null && tab.label != '') { {{ tab.label }} }\r\n @if (tab.label == undefined || tab.label == null || tab.label == '') { {{ tab.id }} }\r\n </span>\r\n }\r\n </div>\r\n }\r\n}\r\n</div>", styles: [":host div.xrmui-tabs{display:flex}:host div.xrmui-tab{margin:10px 5px 5px;padding:10px 10px 8px;font-family:var(--mat-sys-body-medium-font);border:solid;border-width:0 0 2px 0;border-color:#d3d3d3;color:gray;cursor:pointer;font-size:small}:host div.xrmui-tab.current{border-color:#0f6cbd;color:#0f6cbd}:host div.xrmui-tab.disabled{border-color:#d3d3d3;color:#d3d3d3;cursor:auto}:host div.xrmui-tab.space{flex-grow:1;border-color:transparent;cursor:default}:host div.xrmui-burger{padding-top:15px;width:20px;cursor:pointer}:host button.xrmui-burger-button{border:none;background-color:transparent;height:25px;overflow:hidden;margin:0;padding:0}:host div.icon{float:left;padding-right:3px}:host mat-icon.mat-icon-14{font-size:14px;width:14px;height:14px}:host .error{--color1: #FF6347;--color2: #f7f7f7;--duration: 3s;background-color:var(--color1);-webkit-animation-name:colorPulser;-webkit-animation-duration:var(--duration);animation-name:colorPulser;animation-duration:var(--duration);animation-iteration-count:infinite}@-webkit-keyframes colorPulser{0%{background-color:var(--color1)}50%{background-color:var(--color2)}to{background-color:var(--color1)}}@keyframes colorPulser{0%{background-color:var(--color1)}50%{background-color:var(--color2)}to{background-color:var(--color1)}}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: MatBadge, selector: "[matBadge]", inputs: ["matBadgeColor", "matBadgeOverlap", "matBadgeDisabled", "matBadgePosition", "matBadge", "matBadgeDescription", "matBadgeSize", "matBadgeHidden"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "ngmodule", type: MatMenuModule }, { kind: "ngmodule", type: MatIconModule }], changeDetection: i0.ChangeDetectionStrategy.Eager });
2322
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.1", type: XrmuiTabs, isStandalone: true, selector: "xrmui-tabs", inputs: { tabs: { classPropertyName: "tabs", publicName: "tabs", isSignal: true, isRequired: true, transformFunction: null }, burgers: { classPropertyName: "burgers", publicName: "burgers", isSignal: true, isRequired: false, transformFunction: null }, current: { classPropertyName: "current", publicName: "current", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { current: "currentChange" }, providers: [], ngImport: i0, template: "<div class=\"xrmui-tabs\">\r\n@for (tab of tabs(); track tab; let idx = $index) {\r\n @if (tab.visible == undefined || tab.visible()) {\r\n <div class=\"xrmui-tab\" [ngClass]=\"{ 'current' : tab == current(), 'disabled': tab.disabled, error: tab != current() && tab.error != undefined && tab.error()}\" (click)=\"current.set(tab)\">\r\n @if (tab.badget != undefined && tab.badget > 0) {\r\n <div [matBadge]=\"tab.badget\" [matBadgeOverlap]=\"false\">\r\n @if (tab.icon != undefined && tab.icon != null && tab.icon != ''){<div class=\"icon\"><mat-icon fontSet=\"material-symbols-outlined\" class=\"mat-icon-14\">{{ tab.icon }}</mat-icon></div>}\r\n <span>\r\n @if (tab.label != undefined && tab.label != null && tab.label != '') { {{ tab.label }} }\r\n @if (tab.label == undefined || tab.label == null || tab.label == '') { {{ tab.id }} }\r\n </span>\r\n </div>\r\n }\r\n\r\n @if (tab.badget == undefined || tab.badget == 0) {\r\n @if (tab.icon != undefined && tab.icon != null && tab.icon != ''){<div class=\"icon\"><mat-icon fontSet=\"material-symbols-outlined\" class=\"mat-icon-14\">{{ tab.icon }}</mat-icon></div>}\r\n <span>\r\n @if (tab.label != undefined && tab.label != null && tab.label != '') { {{ tab.label }} }\r\n @if (tab.label == undefined || tab.label == null || tab.label == '') { {{ tab.id }} }\r\n </span>\r\n }\r\n </div>\r\n }\r\n}\r\n</div>", styles: [":host div.xrmui-tabs{display:flex}:host div.xrmui-tab{margin:10px 5px 5px;padding:10px 10px 8px;font-family:var(--mat-sys-body-medium-font);border:solid;border-width:0 0 2px 0;border-color:#d3d3d3;color:gray;cursor:pointer;font-size:small}:host div.xrmui-tab.current{border-color:#0f6cbd;color:#0f6cbd}:host div.xrmui-tab.disabled{border-color:#d3d3d3;color:#d3d3d3;cursor:auto}:host div.xrmui-tab.space{flex-grow:1;border-color:transparent;cursor:default}:host div.xrmui-burger{padding-top:15px;width:20px;cursor:pointer}:host button.xrmui-burger-button{border:none;background-color:transparent;height:25px;overflow:hidden;margin:0;padding:0}:host div.icon{float:left;padding-right:3px}:host mat-icon.mat-icon-14{font-size:14px;width:14px;height:14px}:host .error{--color1: #FF6347;--color2: #f7f7f7;--duration: 3s;background-color:var(--color1);-webkit-animation-name:colorPulser;-webkit-animation-duration:var(--duration);animation-name:colorPulser;animation-duration:var(--duration);animation-iteration-count:infinite}@-webkit-keyframes colorPulser{0%{background-color:var(--color1)}50%{background-color:var(--color2)}to{background-color:var(--color1)}}@keyframes colorPulser{0%{background-color:var(--color1)}50%{background-color:var(--color2)}to{background-color:var(--color1)}}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: MatBadge, selector: "[matBadge]", inputs: ["matBadgeColor", "matBadgeOverlap", "matBadgeDisabled", "matBadgePosition", "matBadge", "matBadgeDescription", "matBadgeSize", "matBadgeHidden"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "ngmodule", type: MatMenuModule }, { kind: "ngmodule", type: MatIconModule }], changeDetection: i0.ChangeDetectionStrategy.Eager });
2323
2323
  }
2324
2324
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.1", ngImport: i0, type: XrmuiTabs, decorators: [{
2325
2325
  type: Component,
2326
- args: [{ selector: 'xrmui-tabs', imports: [NgClass, MatIcon, MatBadge, MatButtonModule, MatMenuModule, MatIconModule], changeDetection: ChangeDetectionStrategy.Eager, providers: [], template: "<div class=\"xrmui-tabs\">\r\n@for (tab of tabs(); track tab; let idx = $index) {\r\n @if (tab.visible == undefined || tab.visible()) {\r\n <div class=\"xrmui-tab\" [ngClass]=\"{ 'current' : tab == current(), 'disabled': tab.disabled, error: tab != current() && tab.error != undefined && tab.error()}\" (click)=\"current.set(tab)\">\r\n @if (tab.badget != undefined && tab.badget > 0) {\r\n <div [matBadge]=\"tab.badget\" [matBadgeOverlap]=\"false\">\r\n @if (tab.icon != undefined && tab.icon != null && tab.icon != ''){<div class=\"icon\"><mat-icon fontSet=\"material-symbols-outlined\" class=\"mat-icon-14\">{{ tab.icon }}</mat-icon></div>}\r\n <span>\r\n @if (tab.label != undefined && tab.label != null && tab.label != '') { {{ tab.label }} }\r\n @if (tab.label == undefined || tab.label == null || tab.label == '') { {{ tab.id }} }\r\n </span>\r\n </div>\r\n }\r\n\r\n @if (tab.badget == undefined || tab.badget == 0) {\r\n @if (tab.icon != undefined && tab.icon != null && tab.icon != ''){<div class=\"icon\"><mat-icon class=\"mat-icon-14\">{{ tab.icon }}</mat-icon></div>}\r\n <span>\r\n @if (tab.label != undefined && tab.label != null && tab.label != '') { {{ tab.label }} }\r\n @if (tab.label == undefined || tab.label == null || tab.label == '') { {{ tab.id }} }\r\n </span>\r\n }\r\n </div>\r\n }\r\n}\r\n</div>", styles: [":host div.xrmui-tabs{display:flex}:host div.xrmui-tab{margin:10px 5px 5px;padding:10px 10px 8px;font-family:var(--mat-sys-body-medium-font);border:solid;border-width:0 0 2px 0;border-color:#d3d3d3;color:gray;cursor:pointer;font-size:small}:host div.xrmui-tab.current{border-color:#0f6cbd;color:#0f6cbd}:host div.xrmui-tab.disabled{border-color:#d3d3d3;color:#d3d3d3;cursor:auto}:host div.xrmui-tab.space{flex-grow:1;border-color:transparent;cursor:default}:host div.xrmui-burger{padding-top:15px;width:20px;cursor:pointer}:host button.xrmui-burger-button{border:none;background-color:transparent;height:25px;overflow:hidden;margin:0;padding:0}:host div.icon{float:left;padding-right:3px}:host mat-icon.mat-icon-14{font-size:14px;width:14px;height:14px}:host .error{--color1: #FF6347;--color2: #f7f7f7;--duration: 3s;background-color:var(--color1);-webkit-animation-name:colorPulser;-webkit-animation-duration:var(--duration);animation-name:colorPulser;animation-duration:var(--duration);animation-iteration-count:infinite}@-webkit-keyframes colorPulser{0%{background-color:var(--color1)}50%{background-color:var(--color2)}to{background-color:var(--color1)}}@keyframes colorPulser{0%{background-color:var(--color1)}50%{background-color:var(--color2)}to{background-color:var(--color1)}}\n"] }]
2326
+ args: [{ selector: 'xrmui-tabs', imports: [NgClass, MatIcon, MatBadge, MatButtonModule, MatMenuModule, MatIconModule], changeDetection: ChangeDetectionStrategy.Eager, providers: [], template: "<div class=\"xrmui-tabs\">\r\n@for (tab of tabs(); track tab; let idx = $index) {\r\n @if (tab.visible == undefined || tab.visible()) {\r\n <div class=\"xrmui-tab\" [ngClass]=\"{ 'current' : tab == current(), 'disabled': tab.disabled, error: tab != current() && tab.error != undefined && tab.error()}\" (click)=\"current.set(tab)\">\r\n @if (tab.badget != undefined && tab.badget > 0) {\r\n <div [matBadge]=\"tab.badget\" [matBadgeOverlap]=\"false\">\r\n @if (tab.icon != undefined && tab.icon != null && tab.icon != ''){<div class=\"icon\"><mat-icon fontSet=\"material-symbols-outlined\" class=\"mat-icon-14\">{{ tab.icon }}</mat-icon></div>}\r\n <span>\r\n @if (tab.label != undefined && tab.label != null && tab.label != '') { {{ tab.label }} }\r\n @if (tab.label == undefined || tab.label == null || tab.label == '') { {{ tab.id }} }\r\n </span>\r\n </div>\r\n }\r\n\r\n @if (tab.badget == undefined || tab.badget == 0) {\r\n @if (tab.icon != undefined && tab.icon != null && tab.icon != ''){<div class=\"icon\"><mat-icon fontSet=\"material-symbols-outlined\" class=\"mat-icon-14\">{{ tab.icon }}</mat-icon></div>}\r\n <span>\r\n @if (tab.label != undefined && tab.label != null && tab.label != '') { {{ tab.label }} }\r\n @if (tab.label == undefined || tab.label == null || tab.label == '') { {{ tab.id }} }\r\n </span>\r\n }\r\n </div>\r\n }\r\n}\r\n</div>", styles: [":host div.xrmui-tabs{display:flex}:host div.xrmui-tab{margin:10px 5px 5px;padding:10px 10px 8px;font-family:var(--mat-sys-body-medium-font);border:solid;border-width:0 0 2px 0;border-color:#d3d3d3;color:gray;cursor:pointer;font-size:small}:host div.xrmui-tab.current{border-color:#0f6cbd;color:#0f6cbd}:host div.xrmui-tab.disabled{border-color:#d3d3d3;color:#d3d3d3;cursor:auto}:host div.xrmui-tab.space{flex-grow:1;border-color:transparent;cursor:default}:host div.xrmui-burger{padding-top:15px;width:20px;cursor:pointer}:host button.xrmui-burger-button{border:none;background-color:transparent;height:25px;overflow:hidden;margin:0;padding:0}:host div.icon{float:left;padding-right:3px}:host mat-icon.mat-icon-14{font-size:14px;width:14px;height:14px}:host .error{--color1: #FF6347;--color2: #f7f7f7;--duration: 3s;background-color:var(--color1);-webkit-animation-name:colorPulser;-webkit-animation-duration:var(--duration);animation-name:colorPulser;animation-duration:var(--duration);animation-iteration-count:infinite}@-webkit-keyframes colorPulser{0%{background-color:var(--color1)}50%{background-color:var(--color2)}to{background-color:var(--color1)}}@keyframes colorPulser{0%{background-color:var(--color1)}50%{background-color:var(--color2)}to{background-color:var(--color1)}}\n"] }]
2327
2327
  }], ctorParameters: () => [], propDecorators: { tabs: [{ type: i0.Input, args: [{ isSignal: true, alias: "tabs", required: true }] }], burgers: [{ type: i0.Input, args: [{ isSignal: true, alias: "burgers", required: false }] }], current: [{ type: i0.Input, args: [{ isSignal: true, alias: "current", required: true }] }, { type: i0.Output, args: ["currentChange"] }] } });
2328
2328
 
2329
2329
  class XrmuiSection {
@@ -1 +1 @@
1
- {"version":3,"file":"boruto-xrmui.mjs","sources":["../../../projects/xrmui/src/lib/ko/forms/kobuttongroup/kobuttongroup.component.ts","../../../projects/xrmui/src/lib/ko/forms/kobuttongroup/kobuttongroup.component.html","../../../projects/xrmui/src/lib/ko/forms/kodecimal.directive.ts","../../../projects/xrmui/src/lib/ko/forms/kofocus.directive.ts","../../../projects/xrmui/src/lib/ko/message/koalert/koaleret.component.ts","../../../projects/xrmui/src/lib/ko/message/koalert/koalert.component.html","../../../projects/xrmui/src/lib/ko/message/koheader/koheader.component.ts","../../../projects/xrmui/src/lib/ko/message/koheader/koheader.component.html","../../../projects/xrmui/src/lib/ko/message/kowrite.directive.ts","../../../projects/xrmui/src/lib/ko/models/navigation.interface.ts","../../../projects/xrmui/src/lib/ko/navigation/koleftmenu/koleftmenu.component.ts","../../../projects/xrmui/src/lib/ko/navigation/koleftmenu/koleftmenu.component.html","../../../projects/xrmui/src/lib/ko/navigation/kotopmenu/kotopmenu.component.ts","../../../projects/xrmui/src/lib/ko/navigation/kotopmenu/kotopmenu.component.html","../../../projects/xrmui/src/lib/ko/navigation/koover.directive.ts","../../../projects/xrmui/src/lib/ko/panels/koexpansionpanel/koexpansionpanel.component.ts","../../../projects/xrmui/src/lib/ko/panels/koexpansionpanel/koexpansionpanel.component.html","../../../projects/xrmui/src/lib/ko/panels/kohorizontalscroll/kohorizontalscroll.component.ts","../../../projects/xrmui/src/lib/ko/panels/kohorizontalscroll/kohorizontalscroll.component.html","../../../projects/xrmui/src/lib/ko/panels/kohorizontalsplit/kohorizontalsplit.component.ts","../../../projects/xrmui/src/lib/ko/panels/kohorizontalsplit/kohorizontalsplit.component.html","../../../projects/xrmui/src/lib/ko/panels/komain/komain.component.ts","../../../projects/xrmui/src/lib/ko/panels/komain/komain.component.html","../../../projects/xrmui/src/lib/ko/panels/kotablepanel/kotablepanel.component.ts","../../../projects/xrmui/src/lib/ko/panels/kotablepanel/kotablepanel.component.html","../../../projects/xrmui/src/lib/ko/panels/kotitlepanel/kotitlepanel.component.ts","../../../projects/xrmui/src/lib/ko/panels/kotitlepanel/kotitlepanel.component.html","../../../projects/xrmui/src/lib/ko/panels/koverticalscroll/koverticalscroll.component.ts","../../../projects/xrmui/src/lib/ko/panels/koverticalscroll/koverticalscroll.component.html","../../../projects/xrmui/src/lib/ko/panels/koview/koview.component.ts","../../../projects/xrmui/src/lib/ko/panels/koview/koview.component.html","../../../projects/xrmui/src/lib/ko/panels/koverticalsplit/koverticalsplit.component.ts","../../../projects/xrmui/src/lib/ko/panels/koverticalsplit/koverticalsplit.component.html","../../../projects/xrmui/src/lib/ko/kipon-ui.module.ts","../../../projects/xrmui/src/lib/bo/models/dkcustomdateadapter.model.ts","../../../projects/xrmui/src/lib/bo/models/nformat.model.ts","../../../projects/xrmui/src/lib/bo/services/selected.service.ts","../../../projects/xrmui/src/lib/bo/info/info.xrmui.ts","../../../projects/xrmui/src/lib/bo/info/info.xrmui.html","../../../projects/xrmui/src/lib/bo/models/xrmuipanel.model.ts","../../../projects/xrmui/src/lib/bo/layout/layout.xrmui.ts","../../../projects/xrmui/src/lib/bo/layout/layout.xrmui.html","../../../projects/xrmui/src/lib/bo/panel/panel.xrmui.ts","../../../projects/xrmui/src/lib/bo/panel/panel.xrmui.html","../../../projects/xrmui/src/lib/bo/icon/icon.xrmui.ts","../../../projects/xrmui/src/lib/bo/icon/icon.xrmui.html","../../../projects/xrmui/src/lib/bo/changedscope/changedscope.directive.ts","../../../projects/xrmui/src/lib/bo/form/formscope.directive.ts","../../../projects/xrmui/src/lib/bo/input/input.xrmui.ts","../../../projects/xrmui/src/lib/bo/input/input.xrmui.html","../../../projects/xrmui/src/lib/bo/ribbon/ribbon.xrmui.ts","../../../projects/xrmui/src/lib/bo/ribbon/ribbon.xrmui.html","../../../projects/xrmui/src/lib/bo/spinner/spinner.xrmui.ts","../../../projects/xrmui/src/lib/bo/spinner/spinner.xrmui.html","../../../projects/xrmui/src/lib/bo/button/button.xrmui.ts","../../../projects/xrmui/src/lib/bo/button/button.xrmui.html","../../../projects/xrmui/src/lib/bo/devider/devider.xrmui.ts","../../../projects/xrmui/src/lib/bo/devider/devider.xrmui.html","../../../projects/xrmui/src/lib/bo/tabs/tabs.xrmui.ts","../../../projects/xrmui/src/lib/bo/tabs/tabs.xrmui.html","../../../projects/xrmui/src/lib/bo/section/section.xrmui.ts","../../../projects/xrmui/src/lib/bo/section/section.xrmui.html","../../../projects/xrmui/src/lib/bo/boruto-xrmui.module.ts","../../../projects/xrmui/src/public-api.ts","../../../projects/xrmui/src/boruto-xrmui.ts"],"sourcesContent":["import { Component, ViewEncapsulation, ChangeDetectionStrategy } from '@angular/core';\r\n\r\n\r\n@Component({\r\n selector: 'ko-button-group',\r\n templateUrl: './kobuttongroup.component.html',\r\n styleUrls: ['./kobuttongroup.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.Eager,\n encapsulation: ViewEncapsulation.None\r\n})\r\n\r\nexport class KoButtonGroupComponent {\r\n constructor() {\r\n }\r\n}\r\n","<ng-content></ng-content>","import { Directive, ElementRef, HostListener, input, Output, EventEmitter, SimpleChanges, output, effect } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[ko-decimal]'\r\n})\r\nexport class KoDecimalDirective {\r\n constructor(private el: ElementRef) {\r\n effect(() => {\r\n const align = this.align();\r\n if (this.el.nativeElement) {\r\n this.el.nativeElement.style['text-align'] = this.align();\r\n }\r\n });\r\n\r\n effect(() => {\r\n const v = this.value();\r\n this.setValueString();\r\n })\r\n }\r\n\r\n\r\n decimals = input<number>(2, { alias: 'ko-decimals' });\r\n value = input<number | null>(null, { alias: 'ko-value' });\r\n valueChanged = output<number | null>({ alias: 'ko-valueChange' });\r\n align = input<string>('right');\r\n\r\n controlDown: boolean = false;\r\n syncThread!: any;\r\n\r\n @HostListener('keydown', ['$event']) onKeydown($event: KeyboardEvent) {\r\n switch ($event.key) {\r\n case 'Backspace':\r\n case 'Tab':\r\n case 'ArrowLeft':\r\n case 'ArrowRight':\r\n case 'Delete':\r\n case '0':\r\n case '1':\r\n case '2':\r\n case '3':\r\n case '4':\r\n case '5':\r\n case '6':\r\n case '7':\r\n case '8':\r\n case '9':\r\n case '-': {\r\n this.bindValueBack();\r\n return true;\r\n }\r\n case ',': {\r\n if (this.decimals() == 0) {\r\n return false;\r\n }\r\n this.bindValueBack();\r\n return true;\r\n }\r\n case 'Control': {\r\n this.controlDown = true;\r\n this.bindValueBack();\r\n return true;\r\n }\r\n case 'c':\r\n case 'C':\r\n case 'v':\r\n case 'V': {\r\n if (this.controlDown == true) {\r\n this.bindValueBack();\r\n return true;\r\n }\r\n $event.stopPropagation();\r\n return false;\r\n }\r\n default: {\r\n $event.stopPropagation();\r\n return false;\r\n }\r\n }\r\n }\r\n\r\n @HostListener('blur') onBlur() {\r\n if (this.syncThread != null) clearTimeout(this.syncThread);\r\n this.syncThread = null;\r\n this.doBindValueBack();\r\n this.setValueString();\r\n }\r\n\r\n private setValueString(): void {\r\n if (this.el.nativeElement != null) {\r\n const v = this.value();\r\n if (v != null) {\r\n this.el.nativeElement.value = this.numberToString(v, this.decimals());\r\n } else {\r\n this.el.nativeElement.value = \"\";\r\n }\r\n }\r\n }\r\n\r\n private bindValueBack(): void;\r\n private bindValueBack(timeout: number): void;\r\n private bindValueBack(timeout: number = 3000): void {\r\n if (this.syncThread != null) clearTimeout(this.syncThread);\r\n this.syncThread = setTimeout(() => {\r\n this.syncThread = null;\r\n this.doBindValueBack();\r\n }, timeout);\r\n }\r\n\r\n private doBindValueBack(): void {\r\n if (this.el.nativeElement != null) {\r\n let v = this.el.nativeElement.value;\r\n if (v == null || v == '') {\r\n this.valueChanged.emit(null);\r\n return;\r\n } else {\r\n this.valueChanged.emit(Number(v.replace(',','.')))\r\n }\r\n }\r\n }\r\n\r\n private numberToString(value: number, decimals: number): string {\r\n if (value == null) {\r\n return '';\r\n }\r\n\r\n if (decimals == null) {\r\n return value.toString().replace('.', ',');\r\n }\r\n\r\n let result = value.toString().replace('.', ',');\r\n if (decimals <= 0) {\r\n var split = result.split(',');\r\n if (split.length == 2 && Number(split[1]) > 0) {\r\n return Math.round(value).toString().replace(\".\", \",\").split(',')[0];\r\n }\r\n return result.split(',')[0];\r\n }\r\n\r\n if (result.indexOf(',') < 0) {\r\n result += ',0';\r\n }\r\n\r\n let decimalPart = result.split(',')[1];\r\n if (decimalPart.length == decimals) {\r\n return result;\r\n }\r\n\r\n if (decimalPart.length <= decimals) {\r\n return result.split(',')[0] + ',' + String(decimalPart + '00000000000000000' + decimalPart).substring(0, decimals);\r\n }\r\n\r\n var round = Number('1' + String('00000000000000000').slice((-1) * decimals));\r\n\r\n var roundedValue = Math.round(value * round) / round;\r\n\r\n return this.numberToString(roundedValue, decimals);\r\n }\r\n\r\n}\r\n","import { Directive, ElementRef, input, output, effect, inject } from '@angular/core';\r\n\r\n@Directive({ selector: '[ko-focus]' })\r\nexport class KoFocusDirective {\r\n\r\nprivate hostElement: ElementRef = inject(ElementRef);\r\n\r\n focus = input<boolean>(false, { alias: 'ko-focus' });\r\n focusChange = output<boolean>({ alias: 'ko-focusChange' });\r\n\r\n constructor() { \r\n effect(() => {\r\n const isFocused = this.focus();\r\n if (isFocused) {\r\n setTimeout(() => {\r\n this.hostElement.nativeElement.focus();\r\n this.focusChange.emit(false);\r\n },10);\r\n }\r\n })\r\n }\r\n}\r\n","import { NgClass } from '@angular/common';\r\nimport { Component, Input, ViewEncapsulation, ChangeDetectionStrategy } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'ko-alert',\r\n templateUrl: './koalert.component.html',\r\n styleUrls: ['./koalert.component.scss'],\r\n imports:[NgClass],\r\n changeDetection: ChangeDetectionStrategy.Eager,\n encapsulation: ViewEncapsulation.None\r\n})\r\n\r\nexport class KoAlertComponent {\r\n\r\n @Input('align') align: string = 'left';\r\n constructor() {\r\n }\r\n}\r\n","<div [ngClass]=\"align\"><ng-content></ng-content></div>\r\n","import { NgClass } from '@angular/common';\r\nimport { Component, input, ViewEncapsulation, ChangeDetectionStrategy } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'ko-header',\r\n templateUrl: './koheader.component.html',\r\n styleUrls: ['./koheader.component.scss'],\r\n imports:[NgClass],\r\n changeDetection: ChangeDetectionStrategy.Eager,\n encapsulation: ViewEncapsulation.None\r\n})\r\n\r\nexport class KoHeaderComponent {\r\n\r\n align = input<string>('left');\r\n\r\n}\r\n","<div [ngClass]=\"align()\"><ng-content></ng-content></div>\r\n","import { Directive, ElementRef, HostListener, input, AfterViewInit, inject, effect } from '@angular/core';\r\n\r\n@Directive({ selector: '[ko-write]' })\r\nexport class KoWriteDirective {\r\n\r\n direction = input<string>('up', { alias: 'ko-write' });\r\n private hostElement: ElementRef = inject(ElementRef);\r\n\r\n constructor() { \r\n effect(() => {\r\n const dir = this.direction();\r\n this.render();\r\n });\r\n }\r\n\r\n\r\n\r\n\r\n private render(): void {\r\n var host = this.hostElement.nativeElement as HTMLElement;\r\n if (host.parentElement) {\r\n var parent = host.parentElement as HTMLElement;\r\n\r\n parent.style.overflow = \"hidden\"; \r\n\r\n var h = parent.offsetHeight;\r\n var w = parent.offsetWidth;\r\n\r\n\r\n if (h && w) {\r\n host.style.width = h.toString() + \"px\";\r\n host.style.height = w.toString() + \"px\";\r\n host.style.lineHeight = w.toString() + \"px\";\r\n host.style.textAlign = \"center\";\r\n host.style.position = \"relative\";\r\n host.style.transformOrigin = \"0% 0%\";\r\n host.style.display = \"inline-block\";\r\n\r\n if (this.direction() == \"up\") {\r\n host.style.transform = \"rotate(-90deg)\";\r\n host.style.top = h.toString() + \"px\";\r\n } else {\r\n host.style.transform = \"rotate(90deg)\";\r\n host.style.left = w.toString() + \"px\";\r\n }\r\n }\r\n }\r\n }\r\n}\r\n","\r\nexport interface KoNavigation {\r\n id: string;\r\n title: string | null;\r\n disabled: boolean;\r\n click: any;\r\n over: boolean | null;\r\n cssClass: string | null;\r\n imgUrl: string | null;\r\n }\r\n \r\n export class KoDivider implements KoNavigation {\r\n id: string;\r\n title: string | null;\r\n disabled: boolean;\r\n click: any = null;\r\n over: boolean | null = null;\r\n cssClass: string | null = null;\r\n imgUrl: string | null = null;\r\n \r\n constructor() {\r\n this.id = \"##divider##\";\r\n this.title = \"\";\r\n this.disabled = true;\r\n }\r\n }\r\n \r\n export class KoNavigationByCssClass implements KoNavigation {\r\n id: string;\r\n title: string | null = null;\r\n disabled: boolean;\r\n cssClass: string;\r\n click: any;\r\n over: boolean | null = null;\r\n imgUrl: string | null = null;\r\n \r\n constructor(id: string, cssClass: string)\r\n constructor(id: string, cssClass: string, disabled: boolean)\r\n constructor(id: string, cssClass: string, disabled: boolean, title: string)\r\n constructor(id: string, cssClass: string, disabled: boolean, title: string, click: any)\r\n constructor(id: string, cssClass: string, disabled: boolean = false, title: string | null = null, click: any = null ) {\r\n this.id = id;\r\n this.title = title;\r\n this.disabled = disabled;\r\n this.cssClass = cssClass;\r\n this.click = click;\r\n }\r\n }\r\n \r\n export class KoNavigationByImageUrl implements KoNavigation {\r\n id: string;\r\n title: string | null = null;\r\n disabled: boolean;\r\n imgUrl: string;\r\n click: any;\r\n over: boolean | null = null;\r\n cssClass: string | null = null;\r\n \r\n constructor(id: string, imgUrl: string)\r\n constructor(id: string, imgUrl: string, disabled: boolean)\r\n constructor(id: string, imgUrl: string, disabled: boolean, title: string)\r\n constructor(id: string, imgUrl: string, disabled: boolean, title: string, click: any)\r\n constructor(id: string, imgUrl: string, disabled: boolean = false, title: string | null = null, click: any = null) {\r\n this.id = id;\r\n this.title = null;\r\n this.disabled = disabled;\r\n this.imgUrl = imgUrl;\r\n this.click = null;\r\n }\r\n }\r\n ","import { Component, input, output, ElementRef, AfterViewInit, inject, ViewEncapsulation, signal, ChangeDetectionStrategy } from '@angular/core';\r\n\r\nimport { KoDivider, KoNavigation, KoNavigationByCssClass, KoNavigationByImageUrl } from '../../models/navigation.interface';\r\nimport { NgClass } from '@angular/common';\r\n\r\n@Component({\r\n selector: 'ko-left-menu',\r\n templateUrl: './koleftmenu.component.html',\r\n styleUrls: ['./koleftmenu.component.scss'],\r\n imports: [NgClass],\r\n changeDetection: ChangeDetectionStrategy.Eager,\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class KoLeftMenuComponent implements AfterViewInit {\r\n private er: ElementRef = inject(ElementRef);\r\n\r\n items = input<(KoNavigation)[]>([]);\r\n current = input<string | null>(null);\r\n currentChange = output<string | null>();\r\n\r\n private itemheight$ = signal<string>('');\r\n over = signal<KoNavigation | null>(null);\r\n\r\n constructor() {\r\n }\r\n\r\n\r\n itemheight(v: KoNavigation) {\r\n if (v.id == \"##divider##\") {\r\n return '2px';\r\n }\r\n return this.itemheight$();\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n setTimeout(() => {\r\n this.itemheight$.set( (this.er.nativeElement.offsetWidth - 40).toString() + \"px\");\r\n }, 1);\r\n }\r\n\r\n setCurrent(item: KoNavigation): void {\r\n if (!item.disabled) {\r\n if (item.click == null) {\r\n this.currentChange.emit(item.id);\r\n } else {\r\n item.click();\r\n }\r\n }\r\n }\r\n\r\n overItem(v: KoNavigation | null): void {\r\n if (v != null && !v.disabled) {\r\n this.over.set(v);\r\n }\r\n }\r\n\r\n outItem(): void {\r\n this.over.set(null);\r\n }\r\n}\r\n","@for(item of items(); track item) {\r\n<div\r\n (click)=\"setCurrent(item)\"\r\n class=\"ko-left-menu-item\"\r\n [ngClass]=\"{ current: item.id == current(), disabled: item.disabled == true && item.id != '##divider##', over: item == over(), divider: item.id == '##divider##' }\"\r\n (mouseover)=\"overItem(item)\"\r\n (mouseleave)=\"outItem()\"\r\n [style.height]=\"itemheight(item)\"\r\n >\r\n @if (item.title != null && item.title != '' && item.id != '##divider##' && item.cssClass == null && item.imgUrl == null){<span>{{ item.title }}</span>}\r\n @if (item.cssClass != null && item.cssClass != ''){ <span class=\"byclass\" [ngClass]=\"item.cssClass\" [title]=\"item.title\"></span> }\r\n @if (item.imgUrl != null){<img [src]=\"item.imgUrl\" [alt]=\"item.title\" />}\r\n</div>\r\n}\r\n<ng-content></ng-content>\r\n","import { Component, input, output, signal, inject, ElementRef, AfterViewInit, ViewEncapsulation, ChangeDetectionStrategy } from '@angular/core';\r\n\r\nimport { KoNavigation } from '../../models/navigation.interface';\r\nimport { NgClass } from '@angular/common';\r\n\r\n@Component({\r\n selector: 'ko-top-menu',\r\n templateUrl: './kotopmenu.component.html',\r\n styleUrls: ['./kotopmenu.component.scss'],\r\n imports: [NgClass],\r\n changeDetection: ChangeDetectionStrategy.Eager,\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class KoTopMenuComponent implements AfterViewInit {\r\n\r\n private er: ElementRef = inject(ElementRef);\r\n\r\n items = input<(KoNavigation)[]>([]);\r\n current = input<string | null>(null);\r\n currentChange = output<string | null>();\r\n\r\n over = signal<KoNavigation | null>(null);\r\n\r\n topcornerwidth = signal<string>('');\r\n\r\n constructor() {\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n setTimeout(() => {\r\n this.topcornerwidth.set(this.er.nativeElement.offsetHeight.toString() + \"px\");\r\n }, 1);\r\n }\r\n\r\n setCurrent(item: KoNavigation): void {\r\n if (!item.disabled) {\r\n if (item.click == null) {\r\n this.currentChange.emit(item.id);\r\n } else {\r\n item.click();\r\n }\r\n }\r\n }\r\n\r\n itemwidth(v: KoNavigation) {\r\n if (v.id == \"##divider##\") {\r\n return '0';\r\n }\r\n return this.topcornerwidth();\r\n }\r\n\r\n\r\n overItem(v: KoNavigation | null): void {\r\n if (v != null && !v.disabled) {\r\n this.over.set(v);\r\n }\r\n }\r\n\r\n outItem(): void {\r\n this.over.set(null);\r\n }\r\n}\r\n","<div class=\"ko-top-menu-corner\" [style.width]=\"topcornerwidth()\"></div>\r\n@for (item of items(); track item) {\r\n<div (click)=\"setCurrent(item)\"\r\n class=\"ko-top-menu-item\"\r\n [ngClass]=\"{ current: item.id == current(), disabled: item.disabled == true && item.id != '##divider##', over: item == over(), divider: item.id == '##divider##' }\"\r\n (mouseover)=\"overItem(item)\"\r\n (mouseleave)=\"outItem()\"\r\n [style.width]=\"itemwidth(item)\">\r\n @if (item.title != null && item.title != '' && item.id != '##divider##' && item.cssClass==null && item.imgUrl==null) {<span>{{ item.title }}</span>}\r\n @if (item.cssClass != null && item.cssClass != ''){<span class=\"byclass\" [ngClass]=\"item.cssClass\" [title]=\"item.title\"></span>}\r\n @if (item.imgUrl != null) {<img [src]=\"item.imgUrl\" [alt]=\"item.title\" />}\r\n</div>\r\n}\r\n<ng-content></ng-content>\r\n","import { Directive, ElementRef, HostListener, input, Output, EventEmitter, SimpleChanges, inject } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[ko-over]'\r\n})\r\nexport class KoOverDirective {\r\n\r\n private el: ElementRef = inject(ElementRef);\r\n\r\n constructor() {\r\n }\r\n\r\n current = input.required<any>({alias:'ko-over'});\r\n\r\n @HostListener('mouseover', ['$event']) onMouseover($event: MouseEvent) {\r\n const me = this.current();\r\n if (this.current != null) {\r\n me['over'] = true;\r\n }\r\n }\r\n\r\n @HostListener('mouseleave', ['$event']) onMouseleave($event: MouseEvent) {\r\n const me = this.current();\r\n if (this.current != null) {\r\n delete me['over'];\r\n }\r\n }\r\n}\r\n","import { Component, effect, input, output, signal, ViewEncapsulation, ChangeDetectionStrategy } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'ko-expansion-panel',\r\n templateUrl: './koexpansionpanel.component.html',\r\n styleUrls: ['./koexpansionpanel.component.scss'],\r\n imports: [],\r\n changeDetection: ChangeDetectionStrategy.Eager,\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class KoExpansionPanelComponent {\r\n\r\n expanded = input<boolean>(false);\r\n expandedChange = output<boolean>();\r\n\r\n isExpanded = signal<boolean>(false);\r\n\r\n constructor() {\r\n effect(() => {\r\n this.isExpanded.set(this.expanded());\r\n });\r\n }\r\n\r\n toggle(): void {\r\n this.isExpanded.set(!this.isExpanded());\r\n this.expandedChange.emit(this.isExpanded());\r\n }\r\n}\r\n","<div class=\"ko-container\">\r\n <div class=\"ko-title\">\r\n <div style=\"position: relative; width: 100%\">\r\n <div style=\"position: absolute; left: -25px; height: 40px; width: 20px; text-align: center; vertical-align: middle; cursor: pointer\" (click)=\"toggle()\">\r\n @if (!isExpanded()){<span class=\"fa fa-angle-up\"></span>}\r\n @if (isExpanded()){<span class=\"fa fa-angle-down\"></span>}\r\n </div>\r\n </div>\r\n <div (click)=\"toggle()\" style=\"cursor: pointer\"><ng-content select=\"[ko-title]\"></ng-content></div>\r\n </div>\r\n @if (isExpanded()) {\r\n <div class=\"ko-body\">\r\n <ng-content select=\"[ko-body]\"></ng-content>\r\n </div>\r\n }\r\n</div>\r\n","import { Component, ViewEncapsulation, ChangeDetectionStrategy } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'ko-horizontal-scroll',\r\n templateUrl: './kohorizontalscroll.component.html',\r\n styleUrls: ['./kohorizontalscroll.component.scss'],\r\n imports: [],\r\n changeDetection: ChangeDetectionStrategy.Eager,\n encapsulation: ViewEncapsulation.None\r\n \r\n})\r\n\r\nexport class KoHorizontalScrollComponent {\r\n constructor() {\r\n }\r\n}\r\n","<ng-content></ng-content>","import { NgStyle } from '@angular/common';\r\nimport { Component, effect, input, Signal, signal, ViewEncapsulation, ChangeDetectionStrategy } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'ko-horizontal-split',\r\n templateUrl: './kohorizontalsplit.component.html',\r\n styleUrls: ['./kohorizontalsplit.component.scss'],\r\n imports: [NgStyle],\r\n changeDetection: ChangeDetectionStrategy.Eager,\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class KoHorizontalSplitComponent {\r\n\r\n height = input<string>(\"50%\");\r\n fixed = input<'top' | 'bottom'>('top');\r\n\r\n constructor() {\r\n effect(() => {\r\n const h = this.height();\r\n const f = this.fixed();\r\n this.init();\r\n });\r\n }\r\n\r\n topStyle = signal<any>({});\r\n bottomStyle = signal<any>({});\r\n\r\n private init(): void {\r\n if (this.fixed() == 'top') {\r\n this.topStyle.set({\r\n height: this.height()\r\n });\r\n this.bottomStyle.set( {\r\n top: this.height()\r\n });\r\n } else {\r\n this.topStyle.set({\r\n bottom: this.height()\r\n });\r\n this.bottomStyle.set({\r\n height: this.height()\r\n });\r\n }\r\n }\r\n}\r\n","<div class=\"ko-top\" [ngStyle]=\"topStyle()\">\r\n <ng-content select=\"[ko-top]\"></ng-content>\r\n</div>\r\n<div class=\"ko-bottom\" [ngStyle]=\"bottomStyle()\">\r\n <ng-content select=\"[ko-bottom]\"></ng-content>\r\n</div>\r\n","import { Component, ViewEncapsulation, ChangeDetectionStrategy } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'ko-main',\r\n templateUrl: './komain.component.html',\r\n styleUrls: ['./komain.component.scss'],\r\n imports: [],\r\n changeDetection: ChangeDetectionStrategy.Eager,\n encapsulation: ViewEncapsulation.None\r\n\r\n\r\n})\r\nexport class KoMainComponent {\r\n constructor() {\r\n }\r\n}\r\n","<ng-content></ng-content>","import { NgStyle } from '@angular/common';\r\nimport { Component, input, ElementRef, ViewChild, ViewEncapsulation, OnChanges, AfterViewInit, ChangeDetectorRef, inject, effect, signal, ChangeDetectionStrategy } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'ko-table-panel',\r\n templateUrl: './kotablepanel.component.html',\r\n styleUrls: ['./kotablepanel.component.scss'],\r\n imports: [NgStyle],\r\n changeDetection: ChangeDetectionStrategy.Eager,\n encapsulation: ViewEncapsulation.None\r\n\r\n})\r\n\r\nexport class KoTablePanelComponent implements AfterViewInit {\r\n\r\n @ViewChild('tableheader') tableheader!: ElementRef;\r\n @ViewChild('tablebody') tablebody!: ElementRef;\r\n @ViewChild('tablefooter') tablefooter!: ElementRef;\r\n\r\n height = input<string>('40px');\r\n\r\n private cdRef: ChangeDetectorRef = inject(ChangeDetectorRef);\r\n\r\n constructor() {\r\n effect(() => {\r\n const h = this.height();\r\n this.doSetStyle();\r\n\r\n });\r\n }\r\n\r\n\r\n private topHeight!: string;\r\n private fotHeight!: string;\r\n\r\n private hasTop: boolean = true;\r\n private hasFot: boolean = true;\r\n\r\n topStyle = signal<any>({});\r\n bodStyle = signal<any>({});\r\n fotStyle = signal<any>({});\r\n\r\n ngAfterViewInit(): void {\r\n this.hasTop = this.tableheader.nativeElement != null && this.tableheader.nativeElement.children.length > 0;\r\n this.hasFot = this.tablefooter.nativeElement != null && this.tablefooter.nativeElement.children.length > 0;\r\n this.cdRef.detectChanges();\r\n\r\n this.setStyle();\r\n }\r\n\r\n updateScroll() {\r\n const header = this.tableheader.nativeElement as HTMLElement;\r\n const body = this.tablebody.nativeElement as HTMLElement;\r\n const footer = this.tablefooter.nativeElement as HTMLElement;\r\n\r\n var toScroll = this.hasFot ? footer.scrollLeft : body.scrollLeft;\r\n\r\n if (this.hasTop) {\r\n header.scrollLeft = toScroll;\r\n }\r\n\r\n if (this.hasFot) {\r\n footer.scrollLeft = toScroll;\r\n }\r\n\r\n body.scrollLeft = toScroll;\r\n }\r\n\r\n private setStyle(): void {\r\n\r\n var spl = this.height().split(' ');\r\n if (spl.length == 2) {\r\n this.topHeight = spl[0];\r\n this.fotHeight = spl[1];\r\n } else {\r\n this.topHeight = spl[0];\r\n this.fotHeight = spl[0];\r\n }\r\n setTimeout(() => this.doSetStyle(), 10);\r\n }\r\n\r\n private doSetStyle(): void {\r\n if (this.hasTop && this.hasFot) {\r\n this.topStyle.set({\r\n height: this.topHeight,\r\n display: 'block'\r\n });\r\n\r\n this.bodStyle.set({\r\n top: this.topHeight,\r\n bottom: this.fotHeight,\r\n \"overflow-x\": \"hidden\"\r\n });\r\n\r\n this.fotStyle.set({\r\n height: this.fotHeight,\r\n display:' block'\r\n })\r\n return;\r\n }\r\n\r\n if (this.hasTop && !this.hasFot) {\r\n this.topStyle.set({\r\n height: this.topHeight,\r\n display: 'block'\r\n });\r\n\r\n this.bodStyle.set({\r\n top: this.topHeight,\r\n bottom: 0,\r\n \"overflow-x\" : \"auto\"\r\n });\r\n\r\n this.fotStyle.set({\r\n display: 'none'\r\n });\r\n return;\r\n }\r\n\r\n if (!this.hasTop && this.hasFot) {\r\n this.topStyle.set({\r\n display: 'none'\r\n });\r\n\r\n this.bodStyle.set({\r\n top: 0,\r\n bottom: this.fotHeight\r\n });\r\n\r\n this.fotStyle.set({\r\n height: this.fotHeight,\r\n display: 'block'\r\n });\r\n return;\r\n }\r\n\r\n if (!this.hasTop && !this.hasFot) {\r\n this.topStyle.set({\r\n display: 'none'\r\n });\r\n\r\n this.bodStyle.set({\r\n top: 0,\r\n bottom: 0\r\n });\r\n\r\n this.fotStyle.set({\r\n display: 'none'\r\n })\r\n }\r\n }\r\n}\r\n","<div class=\"ko-table\">\r\n <div class=\"ko-table-header\" [ngStyle]=\"topStyle()\" #tableheader>\r\n <ng-content select=\"[ko-table-header]\"></ng-content>\r\n </div>\r\n <div class=\"ko-table-body\" [ngStyle]=\"bodStyle()\" #tablebody (scroll)=\"updateScroll()\">\r\n <ng-content select=\"[ko-table-body]\"></ng-content>\r\n </div>\r\n <div class=\"ko-table-footer\" [ngStyle]=\"fotStyle()\" #tablefooter (scroll)=\"updateScroll()\">\r\n <ng-content select=\"[ko-table-footer]\"></ng-content>\r\n </div>\r\n</div>\r\n","import { Component, ViewEncapsulation, ChangeDetectionStrategy } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'ko-title-panel',\r\n templateUrl: './kotitlepanel.component.html',\r\n styleUrls: ['./kotitlepanel.component.scss'],\r\n imports: [],\r\n changeDetection: ChangeDetectionStrategy.Eager,\n encapsulation: ViewEncapsulation.None\r\n \r\n})\r\n\r\nexport class KoTitlePanelComponent {\r\n constructor() {\r\n }\r\n}\r\n","<div class=\"ko-container\">\r\n <div class=\"ko-title\">\r\n <ng-content select=\"[ko-title]\"></ng-content>\r\n </div>\r\n <div class=\"ko-body\">\r\n <ng-content select=\"[ko-body]\"></ng-content>\r\n </div>\r\n</div>\r\n","import { Component, ViewEncapsulation, ChangeDetectionStrategy } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'ko-vertical-scroll',\r\n templateUrl: './koverticalscroll.component.html',\r\n styleUrls: ['./koverticalscroll.component.scss'],\r\n imports: [],\r\n changeDetection: ChangeDetectionStrategy.Eager,\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class KoVerticalScrollComponent {\r\n constructor() {\r\n }\r\n}\r\n","<ng-content></ng-content>","import { Component, ViewEncapsulation, ChangeDetectionStrategy } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'ko-view',\r\n templateUrl: './koview.component.html',\r\n styleUrls: ['./koview.component.scss'],\r\n imports: [],\r\n changeDetection: ChangeDetectionStrategy.Eager,\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class KoViewComponent {\r\n constructor() {\r\n }\r\n}\r\n","<ng-content></ng-content>","import { NgStyle } from '@angular/common';\r\nimport { Component, effect, input, signal, ViewEncapsulation, ChangeDetectionStrategy } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'ko-vertical-split',\r\n templateUrl: './koverticalsplit.component.html',\r\n styleUrls: ['./koverticalsplit.component.scss'],\r\n imports: [NgStyle],\r\n changeDetection: ChangeDetectionStrategy.Eager,\n encapsulation: ViewEncapsulation.None\r\n\r\n})\r\nexport class KoVerticalSplitComponent {\r\n\r\n width = input<string>('50%');\r\n fixed = input<'left' | 'right'>('left');\r\n\r\n constructor() {\r\n effect(() => {\r\n const w = this.width();\r\n const f = this.fixed();\r\n this.init();\r\n });\r\n }\r\n\r\n leftStyle = signal<any>({});\r\n rightStyle = signal<any>({});\r\n\r\n\r\n private init(): void {\r\n if (this.fixed() == 'left') {\r\n this.leftStyle.set({\r\n width: this.width()\r\n });\r\n\r\n this.rightStyle.set({\r\n left: this.width()\r\n });\r\n } else {\r\n this.leftStyle.set({\r\n right: this.width()\r\n });\r\n this.rightStyle.set({\r\n width: this.width()\r\n });\r\n }\r\n }\r\n}\r\n","<div class=\"ko-left\" [ngStyle]=\"leftStyle()\">\r\n <ng-content select=\"[ko-left]\"></ng-content>\r\n</div>\r\n<div class=\"ko-right\" [ngStyle]=\"rightStyle()\">\r\n <ng-content select=\"[ko-right]\"></ng-content>\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { KoHorizontalScrollComponent } from './panels/kohorizontalscroll/kohorizontalscroll.component';\r\nimport { KoHorizontalSplitComponent } from './panels/kohorizontalsplit/kohorizontalsplit.component';\r\nimport { KoMainComponent } from './panels/komain/komain.component';\r\nimport { KoTitlePanelComponent } from './panels/kotitlepanel/kotitlepanel.component';\r\nimport { KoVerticalScrollComponent } from './panels/koverticalscroll/koverticalscroll.component';\r\nimport { KoVerticalSplitComponent } from './panels/koverticalsplit/koverticalsplit.component';\r\nimport { KoViewComponent } from './panels/koview/koview.component';\r\nimport { KoExpansionPanelComponent } from './panels/koexpansionpanel/koexpansionpanel.component';\r\nimport { KoTablePanelComponent } from './panels/kotablepanel/kotablepanel.component';\r\nimport { KoButtonGroupComponent } from './forms/kobuttongroup/kobuttongroup.component';\r\nimport { KoDecimalDirective } from './forms/kodecimal.directive';\r\nimport { KoFocusDirective } from './forms/kofocus.directive';\r\nimport { KoAlertComponent } from './message/koalert/koaleret.component';\r\nimport { KoHeaderComponent } from './message/koheader/koheader.component';\r\nimport { KoOverDirective } from './navigation/koover.directive';\r\nimport { KoTopMenuComponent } from './navigation/kotopmenu/kotopmenu.component';\r\nimport { KoLeftMenuComponent } from './navigation/koleftmenu/koleftmenu.component';\r\nimport { KoWriteDirective } from './message/kowrite.directive';\r\n\r\n\r\n@NgModule({\r\n imports: [\r\n KoHorizontalScrollComponent,\r\n KoHorizontalSplitComponent,\r\n KoMainComponent,\r\n KoTitlePanelComponent,\r\n KoVerticalScrollComponent,\r\n KoVerticalSplitComponent,\r\n KoViewComponent,\r\n KoExpansionPanelComponent,\r\n KoTablePanelComponent,\r\n KoButtonGroupComponent,\r\n KoDecimalDirective,\r\n KoFocusDirective,\r\n KoAlertComponent,\r\n KoHeaderComponent,\r\n KoOverDirective,\r\n KoTopMenuComponent,\r\n KoLeftMenuComponent,\r\n KoWriteDirective\r\n ],\r\n exports: [\r\n KoHorizontalScrollComponent,\r\n KoHorizontalSplitComponent,\r\n KoMainComponent,\r\n KoTitlePanelComponent,\r\n KoVerticalScrollComponent,\r\n KoVerticalSplitComponent,\r\n KoViewComponent,\r\n KoExpansionPanelComponent,\r\n KoTablePanelComponent,\r\n KoButtonGroupComponent,\r\n KoDecimalDirective,\r\n KoFocusDirective,\r\n KoAlertComponent,\r\n KoHeaderComponent,\r\n KoOverDirective,\r\n KoTopMenuComponent,\r\n KoLeftMenuComponent,\r\n KoWriteDirective\r\n ]\r\n})\r\nexport class KiponUiModule { }\r\n","import { Injectable } from \"@angular/core\";\r\nimport { NativeDateAdapter } from \"@angular/material/core\";\r\n\r\n@Injectable({providedIn:\"root\"})\r\nexport class DKCustomDateAdapter extends NativeDateAdapter {\r\n\r\n override format(date: Date | null, displayFormat: Object): string {\r\n if (!date) return '';\r\n\r\n const day = this.pad(date.getDate());\r\n const month = this.pad(date.getMonth() + 1);\r\n const year = date.getFullYear();\r\n\r\n return `${day}-${month}-${year}`;\r\n }\r\n\r\n override parse(value: any): Date | null {\r\n if (typeof value !== 'string' || !value.trim()) return null;\r\n\r\n const parts = value.split('-');\r\n if (parts.length !== 3) return null;\r\n\r\n const day = Number(parts[0]);\r\n const month = Number(parts[1]) - 1;\r\n const year = Number(parts[2]);\r\n\r\n const date = new Date(year, month, day);\r\n\r\n return isNaN(date.getTime()) ? null : date;\r\n }\r\n\r\n private pad(n: number): string {\r\n return n < 10 ? `0${n}` : `${n}`;\r\n }\r\n}\r\n","const formatters = new Map<number, Intl.NumberFormat>();\r\n\r\nexport const nFormater = {\r\n localizer: \"da-DK\",\r\n format(value: number, decimals: number): string {\r\n\r\n let formatter = formatters.get(decimals);\r\n\r\n if (!formatter) {\r\n formatter = new Intl.NumberFormat(this.localizer, {\r\n minimumFractionDigits: decimals,\r\n maximumFractionDigits: decimals,\r\n });\r\n\r\n formatters.set(decimals, formatter);\r\n }\r\n return formatter.format(value);\r\n },\r\n flex(value: number): string {\r\n let formatter = formatters.get(9999);\r\n\r\n if (!formatter) {\r\n formatter = new Intl.NumberFormat(this.localizer, {\r\n minimumFractionDigits: 0,\r\n maximumFractionDigits: 10});\r\n\r\n formatters.set(9999, formatter);\r\n }\r\n return formatter.format(value);\r\n }\r\n };","import { Injectable, signal, Signal, WritableSignal } from '@angular/core';\r\nimport { BehaviorSubject, Subject } from 'rxjs';\r\nimport { ISelectable, ISelectableService } from '../api/iselectable.interface';\r\n\r\nexport interface SelectedListContainer {\r\n selected: string[],\r\n empty: boolean,\r\n loaded: boolean\r\n}\r\n\r\nexport interface SelectedLists {\r\n [key: string]: BehaviorSubject<SelectedListContainer>\r\n}\r\n\r\nexport interface NotSelectedLists {\r\n [key: string]: BehaviorSubject<boolean>\r\n}\r\n\r\nexport interface LastSelectedItems {\r\n [key: string]: SelectedListContainer;\r\n}\r\n\r\nexport interface ServiceBinds {\r\n [key: string]: ISelectableService;\r\n}\r\n\r\nexport interface Counts {\r\n [key: string]: WritableSignal<number>;\r\n}\r\n\r\n\r\n@Injectable({providedIn:'root'})\r\nexport class SelectedService {\r\n\r\n private selectedItems: SelectedLists = {} as SelectedLists;\r\n private notSelectedItems: NotSelectedLists = {} as NotSelectedLists;\r\n private lastSelectedItems: LastSelectedItems = {} as LastSelectedItems;\r\n private binds: ServiceBinds = {} as ServiceBinds;\r\n private keys: string[] = [];\r\n private nots: string[] = [];\r\n private counts: Counts = {};\r\n\r\n private resetFilter$: Subject<void>;\r\n\r\n constructor() {\r\n this.resetFilter$ = new Subject<void>();\r\n }\r\n\r\n resetAll() {\r\n this.resetFilter$.next();\r\n }\r\n\r\n reset(): Subject<void> {\r\n return this.resetFilter$;\r\n }\r\n\r\n get(key: string): BehaviorSubject<SelectedListContainer> {\r\n if (this.selectedItems[key] != null) {\r\n return this.selectedItems[key];\r\n }\r\n this.selectedItems[key] = new BehaviorSubject<SelectedListContainer>({ selected: [], empty: false, loaded: false });\r\n this.lastSelectedItems[key] = { selected: [], empty: false, loaded: false };\r\n this.keys.push(key);\r\n return this.selectedItems[key];\r\n }\r\n\r\n count(key: string): Signal<number> {\r\n if (this.counts[key] != null) {\r\n return this.counts[key];\r\n }\r\n\r\n const con = this.get(key);\r\n this.counts[key] = signal<number>(con.value.selected.length);\r\n return this.counts[key];\r\n }\r\n\r\n bind(service: ISelectableService): void {\r\n this.binds[service.key] = service;\r\n }\r\n\r\n not(key: string): BehaviorSubject<boolean> {\r\n if (this.notSelectedItems[key] != null) {\r\n return this.notSelectedItems[key];\r\n }\r\n this.notSelectedItems[key] = new BehaviorSubject<boolean>(false);\r\n this.nots.push(key);\r\n return this.notSelectedItems[key];\r\n }\r\n\r\n push(key: string, values: string[]) {\r\n const selector = this.binds[key];\r\n if (selector != null && selector != undefined) {\r\n selector.items().value.forEach(r => {\r\n r.selected = values.find(v => v == r.id) != null;\r\n });\r\n const tobepublished = selector.items().value.filter(r => r.selected == true).map(r => r.id);\r\n this.publish(key, tobepublished, false);\r\n } else {\r\n throw '[' + key + ']' + ' er ikke blevet bundet til service';\r\n }\r\n }\r\n\r\n publish(key: string, values: string[], empty: boolean) {\r\n var beh = this.get(key);\r\n var value = beh.value;\r\n value.selected = values;\r\n value.empty = empty;\r\n\r\n var las = this.lastSelectedItems[key];\r\n\r\n if (!las.loaded || !this.isSame(value, las)) {\r\n las.loaded = true;\r\n las.empty = value.empty;\r\n las.selected = value.selected;\r\n beh.next(value);\r\n }\r\n\r\n if (this.counts[key] != null) {\r\n this.counts[key].set(values.length);\r\n }\r\n }\r\n\r\n silentUnselectAll(items?: BehaviorSubject<ISelectable[]>) {\r\n if (items != undefined) {\r\n items.value.forEach(r => { r.selected = false; });\r\n }\r\n }\r\n\r\n toggleNot(k: string) {\r\n const n = this.not(k);\r\n const next = !n.value;\r\n n.next(next);\r\n }\r\n\r\n clearAllNots() {\r\n this.nots.forEach(n => {\r\n if (this.notSelectedItems[n].value == true) {\r\n this.notSelectedItems[n].next(false);\r\n }\r\n });\r\n }\r\n\r\n private isSame(next: SelectedListContainer,last: SelectedListContainer): boolean {\r\n if (next.empty != last.empty) return false;\r\n if (next.selected.length != last.selected.length) return false;\r\n\r\n for (var i=0;i<next.selected.length;i++) {\r\n if (next.selected[i] != last.selected[i]) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n } \r\n}\r\n","import { NgClass } from '@angular/common';\r\nimport { Component, input, output, OnInit, OnDestroy, inject, ChangeDetectionStrategy } from '@angular/core';\r\nimport { MatIcon } from '@angular/material/icon';\r\nimport { Subscription } from 'rxjs';\r\nimport { MatBadge } from '@angular/material/badge';\r\nimport { ISelectable, ISelectableService } from '../api/iselectable.interface';\r\nimport { SelectedService } from '../services/selected.service';\r\n\r\n\r\nexport interface IGroupedSelectable {\r\n group?: string;\r\n items: ISelectable[];\r\n}\r\n\r\n@Component({\r\n selector: 'xrmui-info',\r\n templateUrl: './info.xrmui.html',\r\n styleUrl: './info.xrmui.scss',\r\n changeDetection: ChangeDetectionStrategy.Eager,\n imports: [MatIcon,MatBadge]\r\n})\r\nexport class XrmuiInfo implements OnInit, OnDestroy {\r\n\r\n private selectedService: SelectedService = inject(SelectedService);\r\n\r\n label = input<string>();\r\n onlyshowselected = input<boolean>(false);\r\n items = input<ISelectableService>();\r\n icon = input<string>();\r\n click = output<void>();\r\n clear = output<void>();\r\n badget = input<number>();\r\n\r\n list$?: Subscription;\r\n list: ISelectable[] = [];\r\n\r\n select$?: Subscription;\r\n\r\n grouped: IGroupedSelectable[] = [];\r\n\r\n over: ISelectable | null = null;\r\n\r\n isnot: boolean = false;\r\n isnot$?: Subscription;\r\n\r\n constructor() {\r\n }\r\n\r\n ngOnInit() {\r\n const service = this.items();\r\n\r\n if (service != null) {\r\n this.select$ = this.selectedService.get(service.key).subscribe(v => {\r\n this.list = this.list.filter(v => v.selected == true);\r\n });\r\n\r\n this.list$ = service.items().subscribe(r => {\r\n this.list = r.filter(v => v.selected == true);\r\n this.doGrouping();\r\n });\r\n } else {\r\n this.list$?.unsubscribe();\r\n this.select$?.unsubscribe();\r\n this.isnot$?.unsubscribe();\r\n this.list = [];\r\n this.doGrouping();\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.list$?.unsubscribe();\r\n this.isnot$?.unsubscribe();\r\n this.select$?.unsubscribe();\r\n }\r\n\r\n onClick() {\r\n this.click.emit();\r\n }\r\n\r\n doClear() {\r\n this.clear.emit();\r\n }\r\n\r\n isover(v: ISelectable) {\r\n this.over = v;\r\n }\r\n\r\n isout() {\r\n this.over = null;\r\n }\r\n\r\n remove(e: Event, v: ISelectable) {\r\n e.stopImmediatePropagation();\r\n const it = this.items();\r\n if (it) {\r\n v.selected = false;\r\n this.list = this.list.filter(r => r.selected == true);\r\n const sn = this.list.filter(r => r.selected == true).map(r => r.id);\r\n this.selectedService.publish(it.key, sn, false);\r\n this.doGrouping();\r\n }\r\n }\r\n\r\n private doGrouping() {\r\n this.grouped = [];\r\n let lastGroup: IGroupedSelectable | undefined = undefined; \r\n const result: IGroupedSelectable[] = [];\r\n\r\n this.list.forEach(v => {\r\n if (v.selected == true) {\r\n if (lastGroup == undefined) {\r\n lastGroup = { group: v.group, items: [v] };\r\n result.push(lastGroup);\r\n return;\r\n }\r\n if (lastGroup.group == v.group) {\r\n lastGroup.items.push(v);\r\n return;\r\n }\r\n\r\n lastGroup = { group: v.group, items: [v] };\r\n result.push(lastGroup);\r\n }\r\n });\r\n this.grouped = result;\r\n }\r\n}\r\n","@if (!onlyshowselected() || list.length > 0) {\r\n <div class=\"line\" (click)=\"onClick()\">\r\n @if (icon() != undefined){\r\n <div class=\"ic\">\r\n @let bad = badget() ?? 0;\r\n @if ( bad == 0) {<mat-icon fontSet=\"material-symbols-outlined\">{{ icon() }}</mat-icon>}\r\n @if (bad > 0) {<mat-icon fontSet=\"material-symbols-outlined\" [matBadge]=\"badget()\" aria-hidden=\"false\">{{ icon()\r\n }}</mat-icon>}\r\n </div>}\r\n @if (label() != undefined){<div class=\"lab\">{{ label() }}</div>}\r\n <div class=\"con\">\r\n <ng-content></ng-content>\r\n @if (list.length > 0) {\r\n @for(gr of grouped; track gr) {\r\n @if (gr.group != undefined && gr.group != '') {\r\n <div class=\"selected-item\"><b>{{ gr.group }}</b></div>\r\n }\r\n @for(li of gr.items; track li) {\r\n <div class=\"selected-item\" (mouseover)=\"isover(li)\" (mouseleave)=\"isout()\">\r\n <div class=\"selected-item-name\">{{ li.name }}</div>\r\n @if (over == li){<div class=\"selected-item-tool\" title=\"Fjern fra valgt listen\"\r\n (click)=\"remove($event, li)\"><mat-icon fontSet=\"material-symbols-outlined\"\r\n style=\"color: gray; font-size: small; height: 16px\">delete</mat-icon></div>}\r\n </div>\r\n }\r\n }\r\n }\r\n </div>\r\n </div>\r\n }","export class XrmuiPanel {\r\n orientation: 'horizontal' | 'vertical' = 'horizontal';\r\n top: string = '';\r\n bottom: string = '';\r\n height: string = '';\r\n left: string = '';\r\n right: string = '';\r\n width: string = '';\r\n style: string = '';\r\n resizeStyle: string = '';\r\n dyn: boolean = false;\r\n index: number = 0;\r\n private initialWidth: number = 0;\r\n private initialHeight: number = 0;\r\n\r\n render(isresize: boolean = false) {\r\n this.style = '';\r\n this.add('top', this.top);\r\n this.add('bottom', this.bottom);\r\n this.add('height', this.height);\r\n this.add('left', this.left);\r\n this.add('right', this.right);\r\n this.add('width', this.width);\r\n\r\n if (!isresize && this.orientation == 'vertical') {\r\n this.resizeStyle = 'left: ' + this.width;\r\n this.initialWidth = Number(this.width.replace('px',''));\r\n }\r\n\r\n if (!isresize && this.orientation == 'horizontal') {\r\n this.resizeStyle = 'top: ' + this.height;\r\n this.initialHeight = Number(this.height.replace('px',''));\r\n }\r\n }\r\n\r\n private add(s: string, v: string) {\r\n if (v != '') {\r\n if (this.style.length > 0) {\r\n this.style += \";\";\r\n }\r\n this.style += s + \": \" + v;\r\n }\r\n }\r\n\r\n moveTo(pixel: number, next: XrmuiPanel) {\r\n\r\n if (this.orientation == 'vertical') {\r\n // vertical increase/decrease width on current\r\n // vertical increase/decrease left on next\r\n const newWidth = this.initialWidth + pixel;\r\n this.width = newWidth + 'px';\r\n next.left = newWidth + 'px';\r\n this.render(true);\r\n next.render(true);\r\n }\r\n\r\n if (this.orientation == 'horizontal') {\r\n const newHeight = this.initialHeight + pixel;\r\n this.height = newHeight + 'px';\r\n next.top = newHeight + 'px';\r\n this.render(true);\r\n next.render(true);\r\n }\r\n }\r\n\r\n endResize() {\r\n if (this.orientation == 'vertical') {\r\n this.initialWidth = Number(this.width.replace('px',''));\r\n }\r\n\r\n if (this.orientation == 'horizontal') {\r\n this.initialHeight = Number(this.height.replace('px',''));\r\n }\r\n }\r\n}\r\n","import { CdkDrag } from '@angular/cdk/drag-drop';\r\nimport { NgClass } from '@angular/common';\r\nimport { AfterViewInit, Component, computed, effect, ElementRef, inject, input, OnDestroy, signal, ChangeDetectionStrategy } from '@angular/core';\r\nimport { XrmuiPanel } from '../models/xrmuipanel.model';\r\nimport { IDistance } from '../api/idistance.interface';\r\n\r\n\r\ninterface IStyle {\r\n style: string;\r\n dyn: boolean;\r\n}\r\n\r\n@Component({\r\n selector: 'xrmui-layout',\r\n templateUrl: './layout.xrmui.html',\r\n styleUrl: './layout.xrmui.scss',\r\n changeDetection: ChangeDetectionStrategy.Eager,\n imports: [CdkDrag,NgClass]\r\n})\r\nexport class XrmuiLayout implements AfterViewInit, OnDestroy {\r\n\r\n _panels = input<string>('', { alias: 'panels' });\r\n _orientation = input<'horizontal' | 'vertical'>('horizontal', {alias: 'orientation'});\r\n _resizeable = input<boolean>(false, { alias:'resizeable' });\r\n\r\n panels = signal<string>('');\r\n orientation = signal<'horizontal' | 'vertical'>('horizontal');\r\n resizeable = signal<boolean>(false);\r\n\r\n\r\n private totalHeight: number = 0;\r\n private totalWidth: number = 0;\r\n\r\n private unit: 'px' | '%' = 'px';\r\n\r\n private panellist$ = signal<XrmuiPanel[]>([]);\r\n private resized = signal<number>(0);\r\n panellist = this.panellist$.asReadonly();\r\n\r\n private viewInitialized: boolean = false;\r\n\r\n style0 = computed(() => { return this.styleFor(0) });\r\n style1 = computed(() => { return this.styleFor(1) });\r\n style2 = computed(() => { return this.styleFor(2) });\r\n style3 = computed(() => { return this.styleFor(3) });\r\n style4 = computed(() => { return this.styleFor(4) });\r\n\r\n private styleFor(i: number) : IStyle {\r\n const panels = this.panellist();\r\n const resize = this.resized();\r\n\r\n\r\n if (panels.length > i) {\r\n return { style: panels[i].style, dyn: panels[i].dyn }\r\n }\r\n return { style: \"display: none;\", dyn: false }\r\n }\r\n\r\n\r\n private element: ElementRef = inject(ElementRef);\r\n \r\n constructor() {\r\n effect(() => {\r\n this.panels.set(this._panels());\r\n this.orientation.set(this._orientation());\r\n this.resizeable.set(this._resizeable());\r\n \r\n if (this.viewInitialized) {\r\n this.render();\r\n }\r\n })\r\n }\r\n\r\n private resizeObserver?: ResizeObserver;\r\n\r\n ngAfterViewInit(): void {\r\n this.resizeObserver = new ResizeObserver(entries => {\r\n const width = entries[0].contentRect.width;\r\n \r\n if (width > 0) {\r\n this.render();\r\n this.viewInitialized = true;\r\n }\r\n });\r\n \r\n this.resizeObserver.observe(this.element.nativeElement); \r\n}\r\n\r\n ngOnDestroy(): void {\r\n this.resizeObserver?.disconnect();\r\n \r\n }\r\n \r\n private render(): void {\r\n this.totalWidth = this.element.nativeElement.offsetWidth;\r\n this.totalHeight = this.element.nativeElement.clientHeight;\r\n\r\n const nextpanellist: XrmuiPanel[] = [];\r\n\r\n // If panels are resizeable, we will work in px only\r\n if (this.resizeable() && this.panels() != null && this.panels().length > 1) {\r\n const ps: string[] = [];\r\n let used = 0;\r\n this.panels().split(',').forEach(r => {\r\n if (r == '?') {\r\n ps.push(r);\r\n return;\r\n }\r\n\r\n if (r.indexOf('px') >= 0) {\r\n used += this.sizeToNumber(r);\r\n ps.push(r);\r\n return;\r\n }\r\n const pct = this.sizeToNumber(r);\r\n if (this.orientation() == 'vertical') {\r\n const next = Math.round(this.totalWidth * pct / 100);\r\n used += next;\r\n ps.push(next.toString() + 'px');\r\n } else {\r\n const next = Math.round(this.totalHeight * pct / 100);\r\n used += next;\r\n ps.push(next.toString() + 'px');\r\n }\r\n });\r\n\r\n let left = this.totalHeight - used;\r\n if (this.orientation() == 'vertical') {\r\n left = this.totalWidth - used;\r\n }\r\n\r\n var freeIndex = ps.indexOf('?');\r\n if (freeIndex >= 0 && freeIndex < (ps.length - 1)) {\r\n ps[freeIndex] = left.toString() + 'px';\r\n ps[ps.length - 1] = '?';\r\n }\r\n\r\n this.panels.set(ps.join(','));\r\n }\r\n\r\n if (this.panels().length > 0) {\r\n var numbers = this.getNumbers();\r\n var countOpen = numbers.filter(r => r == -1).length;\r\n\r\n if (numbers.length > 5) {\r\n throw new Error(\"A maximum of 5 containers is supported\");\r\n }\r\n\r\n var bind: 'top' | 'bottom' = 'top';\r\n var currentcursor: number = 0;\r\n\r\n if (countOpen > 1) {\r\n throw new Error('Only one open container is supported');\r\n }\r\n\r\n for (var i=0;i<numbers.length;i++) {\r\n var num = numbers[i];\r\n var next = new XrmuiPanel();\r\n next.index = i;\r\n next.orientation = this.orientation();\r\n\r\n if (num > 0 && bind == 'top') {\r\n\r\n if (this.orientation() == 'horizontal') {\r\n next.top = currentcursor.toString() + this.toUnit(currentcursor);\r\n next.height = num.toString() + this.unit;\r\n } else {\r\n next.left = currentcursor.toString() + this.toUnit(currentcursor);\r\n next.width = num.toString() + this.unit;\r\n }\r\n currentcursor += num;\r\n nextpanellist.push(next);\r\n continue;\r\n }\r\n\r\n if (num == -1) {\r\n var sum = this.sumAfter(numbers, i);\r\n if (this.orientation() == 'horizontal') {\r\n next.top = currentcursor.toString() + this.toUnit(currentcursor);\r\n next.bottom = sum.toString() + this.toUnit(sum);\r\n } else {\r\n next.left = currentcursor.toString() + this.toUnit(currentcursor);\r\n next.right = sum.toString() + this.toUnit(sum);\r\n }\r\n next.dyn = true;\r\n nextpanellist.push(next);\r\n bind = 'bottom';\r\n continue;\r\n }\r\n\r\n if (num >= 0 && bind == 'bottom') {\r\n var sum = this.sumAfter(numbers,i);\r\n if (this.orientation() == 'horizontal') {\r\n next.bottom = sum.toString() + this.toUnit(sum);\r\n next.height = num.toString() + this.unit;\r\n } else {\r\n next.right = sum.toString() + this.toUnit(sum);\r\n next.width = num.toString() + this.unit;\r\n }\r\n nextpanellist.push(next);\r\n continue;\r\n }\r\n throw new Error(\"Unexpected handle of elements\");\r\n }\r\n\r\n nextpanellist.forEach(p => p.render());\r\n this.panellist$.set(nextpanellist);\r\n }\r\n }\r\n\r\n resize(e: any, panel: XrmuiPanel) {\r\n const d = e['distance'] as IDistance;\r\n if (panel.orientation == 'vertical') \r\n {\r\n panel.moveTo(d.x, this.panellist$()[panel.index + 1]);\r\n }\r\n\r\n if (panel.orientation == 'horizontal') {\r\n panel.moveTo(d.y, this.panellist$()[panel.index + 1]);\r\n }\r\n\r\n const r = this.resized();\r\n this.resized.set(r + 1);\r\n }\r\n\r\n drop(e: any, panel: XrmuiPanel) {\r\n panel.endResize();\r\n }\r\n\r\n private toUnit(n: number): string {\r\n if (n > 0) {\r\n return this.unit;\r\n }\r\n return '';\r\n }\r\n\r\n private getNumbers(): number[] {\r\n this.unit = 'px';\r\n var result = [] as number[];\r\n if (this.panels().length > 0) {\r\n var unitAssigned = false;\r\n this.panels().split(',').forEach(r => {\r\n if (r.indexOf('px') >= 0) {\r\n if (unitAssigned && this.unit != 'px') {\r\n throw new Error(\"unit can only be assigned once and must be consistent. Unit already set to \" + this.unit);\r\n }\r\n this.unit = 'px';\r\n unitAssigned = true;\r\n }\r\n\r\n if (r.indexOf('%') >= 0) {\r\n if (unitAssigned && this.unit != '%') {\r\n throw new Error(\"unit can only be assigned once and must be consistent. Unit already set to \" + this.unit);\r\n }\r\n this.unit = '%';\r\n unitAssigned = true;\r\n }\r\n if (r == '?') {\r\n result.push(-1);\r\n } else {\r\n result.push(this.sizeToNumber(r));\r\n }\r\n });\r\n }\r\n return result;\r\n }\r\n\r\n private sizeToNumber(r: string) {\r\n return Number(r.replace('px','').replace('%',''));\r\n }\r\n\r\n\r\n private sumAfter(numbers: number[], index: number): number {\r\n var result = 0;\r\n for (var i=index+1;i<numbers.length;i++) {\r\n result += numbers[i];\r\n }\r\n return result;\r\n }\r\n}\r\n","<div [style]=\"style0().style\" [ngClass]=\"{ dynamics: style0().dyn, horizontal: orientation() == 'horizontal', vertical: orientation() == 'vertical'}\">\r\n <ng-content select=\"[c1]\"></ng-content>\r\n</div>\r\n\r\n@if (panellist().length > 1 && resizeable()) {\r\n <div \r\n [style]=\"panellist()[0].resizeStyle\" \r\n class=\"resizer\" \r\n cdkDrag \r\n [cdkDragLockAxis]=\"orientation() == 'horizontal' ? 'y' : 'x'\" \r\n (cdkDragMoved)=\"resize($event, panellist()[0])\"\r\n (cdkDragEnded)=\"drop($event, panellist()[0])\"\r\n [ngClass]=\"{ horizontal: orientation() == 'horizontal', vertical: orientation() == 'vertical'}\"></div>\r\n}\r\n <div [style]=\"style1().style\" [ngClass]=\"{ dynamics: style1().dyn, horizontal: orientation() == 'horizontal', vertical: orientation() == 'vertical'}\"><ng-content select=\"[c2]\"></ng-content></div>\r\n <div [style]=\"style2().style\" [ngClass]=\"{ dynamics: style2().dyn, horizontal: orientation() == 'horizontal', vertical: orientation() == 'vertical'}\"><ng-content select=\"[c3]\"></ng-content></div>\r\n <div [style]=\"style3().style\" [ngClass]=\"{ dynamics: style3().dyn, horizontal: orientation() == 'horizontal', vertical: orientation() == 'vertical'}\"><ng-content select=\"[c4]\"></ng-content></div>\r\n <div [style]=\"style4().style\" [ngClass]=\"{ dynamics: style4().dyn, horizontal: orientation() == 'horizontal', vertical: orientation() == 'vertical'}\"><ng-content select=\"[c5]\"></ng-content></div>\r\n","import { Component, ChangeDetectionStrategy } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'xrmui-panel',\r\n templateUrl: './panel.xrmui.html',\r\n styleUrl: './panel.xrmui.scss',\r\n changeDetection: ChangeDetectionStrategy.Eager,\n imports: []\r\n})\r\nexport class XrmuiPanel {\r\n constructor() {\r\n }\r\n}\r\n","<ng-content></ng-content>","import { NgClass } from '@angular/common';\r\nimport { AfterContentInit, Component, computed, effect, ElementRef, inject, input, signal, ChangeDetectionStrategy } from '@angular/core';\r\nimport { MatIcon } from '@angular/material/icon';\r\n\r\n@Component({\r\n selector: 'xrmui-icon',\r\n templateUrl: './icon.xrmui.html',\r\n styleUrl: './icon.xrmui.scss',\r\n changeDetection: ChangeDetectionStrategy.Eager,\r\n imports: [NgClass,MatIcon]\r\n})\r\nexport class XrmuiIcon implements AfterContentInit {\r\n\r\n private host: ElementRef = inject(ElementRef);\r\n _icon = input<string>('', { alias: 'icon' });\r\n disabled = input<boolean>(false);\r\n type = input<'mat' | 'fa'>('mat');\r\n size = input<'12'|'24'|'36'|'48' | undefined>();\r\n\r\n icon = signal<string>('');\r\n\r\n classes = computed(() => {\r\n const i = this.icon();\r\n const d = this.disabled();\r\n const t = this.type();\r\n const f = this.size();\r\n\r\n const res = [] as string[];\r\n\r\n if (f) {\r\n res.push('f'+f);\r\n }\r\n\r\n if (d) {\r\n res.push('disabled')\r\n }\r\n\r\n if (t == 'mat') {\r\n return res;\r\n }\r\n\r\n res.push('fa');\r\n res.push(i);\r\n return res;\r\n });\r\n\r\n constructor() {\r\n effect(() => {\r\n const i = this._icon();\r\n if (i != '') {\r\n this.icon.set(i);\r\n }\r\n });\r\n }\r\n\r\n ngAfterContentInit(): void {\r\n const i = this._icon();\r\n if (i == '') {\r\n const content = this.host.nativeElement.textContent?.trim() ?? '';\r\n if (content != '') {\r\n this.icon.set(content);\r\n }\r\n }\r\n }\r\n\r\n}\r\n","<span style=\"display: none;\"><ng-content></ng-content></span>\r\n@if (icon() != '') {\r\n@if (type() == 'mat') {\r\n <mat-icon [ngClass]=\"classes()\" fontSet=\"material-symbols-outlined\">{{ icon() }}</mat-icon>\r\n}\r\n@if (type() == 'fa') {\r\n <i [ngClass]=\"classes()\"></i>\r\n}\r\n}","import { Directive, input } from \"@angular/core\";\r\nimport { ChangedNotifier } from \"../api/changednotifier.interface\";\r\n\r\n@Directive({\r\n selector: '[changeScope]',\r\n exportAs: 'changeScope',\r\n standalone: true,\r\n})\r\nexport class ChangeScopeDirective {\r\n changeScope = input.required<ChangedNotifier>();\r\n \r\n notifyChanged(): void {\r\n const cp = this.changeScope();\r\n if (cp) {\r\n cp.notifyOnChanged.call(cp);\r\n const oc = cp.onChanged;\r\n\r\n if (oc) {\r\n oc.call(cp);\r\n }\r\n }\r\n }\r\n}","import { computed, Directive, input, signal } from \"@angular/core\";\r\nimport { Form } from '../api/form.interface';\r\n\r\n@Directive({\r\n selector: '[formScope]',\r\n exportAs: 'formScope',\r\n standalone: true,\r\n})\r\nexport class FormScopeDirective {\r\n formScope = input.required<Form>();\r\n}","import { NgClass, NgTemplateOutlet } from '@angular/common';\r\nimport { Component, computed, DestroyRef, effect, ElementRef, EventEmitter, inject, input, Input, isSignal, model, OnChanges, output, Output, QueryList, Signal, signal, SimpleChanges, ViewChild, ViewChildren, ChangeDetectionStrategy, TemplateRef, ViewEncapsulation } from '@angular/core';\r\nimport { Overlay, OverlayRef } from '@angular/cdk/overlay';\r\nimport { TemplatePortal } from '@angular/cdk/portal';\r\nimport { ViewContainerRef } from '@angular/core';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { MatIcon } from '@angular/material/icon';\r\nimport { ISelectable } from '../api/iselectable.interface';\r\nimport { ISearchService } from '../api/isearchservice.interface';\r\nimport { TextFieldModule } from '@angular/cdk/text-field';\r\nimport { MatDatepickerInputEvent, MatDatepickerModule } from '@angular/material/datepicker';\r\nimport { OptionSetValue } from '../api/optionsetvalue.interface';\r\nimport { ChangeScopeDirective } from '../changedscope/changedscope.directive';\r\nimport { EntityReference } from '../api/entityreference.interface';\r\nimport { FormScopeDirective } from '../form/formscope.directive';\r\nimport { nFormater } from '../models/nformat.model';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { XrmuiIcon } from \"../icon/icon.xrmui\";\r\n\r\nexport const NAVIGATIONKEYS = ['ArrowUp','ArrowDown','ArrowLeft','ArrowRight','Escape','Tab','Enter','Backspace','Delete','End','Home','Shift','CapsLock','Insert','PageUp','PageDown','PageDown','PageDown'];\r\nexport const NUMBERS = ['0','1','2','3','4','5','6','7','8','9'];\r\nexport const DECIMALS = ['0','1','2','3','4','5','6','7','8','9',','];\r\nexport const CTRL_KEYS = ['c','C','v','V','x','X'];\r\n\r\n@Component({\r\n selector: 'xrmui-input',\r\n templateUrl: './input.xrmui.html',\r\n styleUrl: './input.xrmui.scss',\r\n changeDetection: ChangeDetectionStrategy.Eager,\r\n encapsulation: ViewEncapsulation.None,\r\n imports: [FormsModule, NgClass, MatIcon,TextFieldModule,MatDatepickerModule,MatCheckboxModule,XrmuiIcon,NgTemplateOutlet]\r\n})\r\nexport class XrmuiInput {\r\n @ViewChild('inputfield') searchElement?: ElementRef;\r\n @ViewChild('textareafield') textareaElement?: ElementRef;\r\n @ViewChild('datefield') datefieldElement?: ElementRef;\r\n @ViewChildren('option') options!: QueryList<ElementRef<HTMLDivElement>>;\r\n @ViewChild('suggestionsTemplate') suggestionsTemplate!: TemplateRef<unknown>;\r\n\r\n private overlay = inject(Overlay);\r\n private viewContainerRef = inject(ViewContainerRef);\r\n private overlayRef?: OverlayRef;\r\n\r\n private changeScope = inject(ChangeScopeDirective, {optional: true,host: true });\r\n private formScope = inject(FormScopeDirective, {optional: true,host: true });\r\n\r\n private destroyRef = inject(DestroyRef);\r\n private blurThead? : any;\r\n\r\n label = input<string>('');\r\n _shortLabel = input<boolean | 'above' | undefined>(undefined, {alias: 'short-label'});\r\n\r\n shortLabel = computed(() => {\r\n const sl = this._shortLabel();\r\n if (sl) return sl;\r\n if (this.formScope) {\r\n if (this.formScope.formScope().labeltype == \"short\") return true;\r\n if (this.formScope.formScope().labeltype == \"above\") return \"above\";\r\n }\r\n return false;\r\n });\r\n\r\n placeholder = input<string>('');\r\n\r\n value = model<string | number | Date | boolean | null | undefined>(null);\r\n _disabled = input<boolean | undefined>(undefined, { alias: 'disabled'});\r\n disabled = computed(() => {\r\n\r\n const d = this._disabled();\r\n if (d != undefined) {\r\n return d;\r\n }\r\n\r\n if (this.formScope && this.formScope.formScope().disabled != undefined) {\r\n return this.formScope.formScope().disabled ?? false;\r\n }\r\n\r\n return false;\r\n });\r\n\r\n _showlock = input<boolean | undefined>(undefined, {alias: 'showlock'});\r\n showlock = computed(() => {\r\n const sl = this._showlock();\r\n if (sl != undefined) {\r\n return sl;\r\n }\r\n\r\n if (this.formScope && this.formScope.formScope().showlock != undefined) {\r\n return this.formScope.formScope().showlock ?? true;\r\n }\r\n return true;\r\n });\r\n\r\n required = input<boolean>(false);\r\n type = input<'text' | 'number' | 'password' | 'checkbox'>('text');\r\n setfocus = model<boolean>(false);\r\n autocomplete = input<ISearchService | null>( null);\r\n selectable = input<ISelectable[] | null>(null);\r\n selected = model<ISelectable | undefined>(undefined);\r\n optionsetvalue = input<OptionSetValue | null>(null);\r\n entityreference = input<EntityReference | null>(null);\r\n onselect = output<ISelectable | undefined>();\r\n error = input<boolean>(false);\r\n validate = model<'number' | 'decimal' | 'date' | 'checkbox' | null>(null);\r\n decimals = input<number | undefined>(undefined);\r\n onfocusEvent = output<void>({ alias:'focus' });\r\n onblurEvent = output<void>({alias: 'blur'});\r\n click = output<void>();\r\n resizeable = input<boolean>(true);\r\n info = input<string | null>(null);\r\n notdark = input<boolean>(false);\r\n _autoopenonblank = input<boolean | undefined>(undefined, { alias: \"autoopenonblank\" });\r\n nullable = input<boolean>(true);\r\n\r\n release = input<number | null>(null);\r\n released = output<void>();\r\n\r\n autoopenonblank = computed(() => {\r\n const au = this._autoopenonblank();\r\n if (au != undefined) {\r\n return au;\r\n }\r\n\r\n if (this.formScope && this.formScope.formScope().autoopenonblank != undefined) {\r\n return this.formScope.formScope().autoopenonblank ?? false;\r\n }\r\n return false;\r\n });\r\n\r\n itemTemplate = input<TemplateRef<{ $implicit: ISelectable }> | undefined>();\r\n\r\n decimalsUsed = output<number>();\r\n onEnter = output<void>();\r\n\r\n toolIcon = input<string | null>(null);\r\n toolClick = output<void>();\r\n\r\n numberoflines = input(1);\r\n maxlength = input<number | null>(null);\r\n\r\n hasfocus = signal(false);\r\n search: string = '';\r\n\r\n // private items: ISelectable[] | null = null;\r\n itemlist = signal<ISelectable[]>([]);\r\n showitems = signal(false);\r\n searchthread: any | null = null;\r\n searchnumber: number = 0;\r\n\r\n current?: ISelectable;\r\n currentindex: number = -1;\r\n\r\n shadowValue = signal<string>('');\r\n shadowDate = signal<Date | null>(null);\r\n\r\n shadowBool = signal<boolean>(false);\r\n\r\n isselect = computed(() => {\r\n const s = this.selectable();\r\n if (s && s.length > 0) return true;\r\n return false;\r\n });\r\n\r\n isnumber = computed(() => this.validate() == 'decimal' || this.validate() == 'number');\r\n\r\n inputclasses = computed(() => {\r\n if (!this.isnumber()) return this.type();\r\n return this.type() + ' ' + 'number';\r\n }); \r\n\r\n constructor() {\r\n this.destroyRef.onDestroy(() => {\r\n if (this.blurThead) {\r\n clearTimeout(this.blurThead);\r\n }\r\n });\r\n\r\n effect(() => {\r\n const sf = this.setfocus();\r\n if (sf == true) {\r\n this.focusMe(undefined);\r\n setTimeout(() => {\r\n this.setfocus.set(false);\r\n },10);\r\n }\r\n });\r\n\r\n effect(() => {\r\n const type = this.type();\r\n const validate = this.validate();\r\n if (type == 'number' && validate == null) {\r\n this.validate.set('decimal');\r\n }\r\n\r\n if (type == 'checkbox' && validate != 'checkbox') {\r\n this.validate.set('checkbox');\r\n }\r\n });\r\n\r\n effect(() => {\r\n const value = this.value();\r\n if (value == null) {\r\n this.shadowValue.set('');\r\n this.shadowDate.set(null);\r\n this.shadowBool.set(false);\r\n return;\r\n }\r\n\r\n if (this.validate() == 'decimal' || this.validate() == 'number') {\r\n this.setNumberValueString();\r\n return;\r\n }\r\n\r\n if (this.validate() == 'date') {\r\n this.shadowDate.set(value as Date);\r\n return;\r\n }\r\n\r\n if (this.validate() == 'checkbox') {\r\n this.shadowBool.set(value as boolean);\r\n return;\r\n }\r\n\r\n this.shadowValue.set(value.toString());\r\n });\r\n\r\n effect(()=> {\r\n const sel = this.selected();\r\n if (sel) {\r\n this.shadowValue.set(sel.name ?? '');\r\n }\r\n });\r\n\r\n effect(() => {\r\n const osv = this.optionsetvalue();\r\n const sels = this.selectable();\r\n if (osv) {\r\n const n = osv.name$();\r\n this.shadowValue.set(n ?? '');\r\n }\r\n \r\n if (osv && sels && sels.length > 0) {\r\n const v = osv.value$();\r\n if (v != undefined) {\r\n const sel = sels.find(r => r.id == v.toString());\r\n if (sel) {\r\n this.selected.set(sel);\r\n }\r\n }\r\n };\r\n });\r\n\r\n effect(() => {\r\n const re = this.entityreference();\r\n if (re) {\r\n const name = re.name$() ?? '';\r\n this.shadowValue.set(name);\r\n }\r\n });\r\n\r\n effect(() => {\r\n const ap = this.autocomplete();\r\n\r\n if (ap) {\r\n this.bindItems(ap.items());\r\n }\r\n });\r\n\r\n effect(() => {\r\n const si = this.showitems();\r\n if (si) {\r\n this.showSuggestions();\r\n } else {\r\n this.hideSuggestions();\r\n }\r\n });\r\n }\r\n\r\n private lastBind = [] as ISelectable[];\r\n\r\n private bindItems(values: ISelectable[]) {\r\n const same = values.length === this.lastBind.length &&\r\n values.every(v => this.lastBind.includes(v));\r\n\r\n if (same) {\r\n return;\r\n }\r\n\r\n this.lastBind = values;\r\n this.itemlist.set(values);\r\n this.expandedItems = new Map<ISelectable,ISelectable[]>();\r\n }\r\n\r\n\r\n pickDate(d: MatDatepickerInputEvent<any,any>) {\r\n this.shadowDate.set(d.value);\r\n this.value.set(d.value);\r\n this.notifyOnChange();\r\n }\r\n\r\n formatNumber(n: number): string {\r\n if (Math.abs(n) < 1e21) {\r\n return n.toLocaleString('fullwide', { useGrouping: false });\r\n } else {\r\n // fallback for very large numbers beyond JS number precision\r\n return n.toString();\r\n }\r\n }\r\n\r\n onValueChanged() {\r\n const sv = this.shadowValue();\r\n if (sv == '') {\r\n if (this.nullable() == true) {\r\n this.value.set(null);\r\n } else {\r\n this.value.set('');\r\n }\r\n } else {\r\n const next = sv.replaceAll('.','').replace(',','.');\r\n switch (this.validate()) {\r\n case 'number': {\r\n // sync value on blue ... this is to early\r\n break;\r\n }\r\n case 'decimal': {\r\n // syncvalue on blur ... this is to early\r\n break;\r\n }\r\n default:\r\n this.value.set(sv);\r\n\r\n }\r\n }\r\n this.searchbyname();\r\n }\r\n\r\n onCheckboxToggle() {\r\n this.value.set(this.shadowBool());\r\n this.notifyOnChange();\r\n }\r\n\r\n onFocus() {\r\n this.hasfocus.set(true);\r\n this.onfocusEvent.emit();\r\n\r\n if (this.autoopenonblank() && this.autocomplete()) {\r\n const cv = this.shadowValue() ?? '';\r\n if (cv == '') {\r\n this.searchbyname(true);\r\n }\r\n }\r\n }\r\n\r\n onBlur() {\r\n this.handleNumber();\r\n this.blurThead = setTimeout(() => {\r\n if (this.expanding) {\r\n this.expanding = false;\r\n this.focusMe(undefined, false);\r\n return;\r\n }\r\n\r\n this.hasfocus.set(false);\r\n this.showitems.set(false);\r\n\r\n const sel = this.selected();\r\n\r\n const sv = this.shadowValue();\r\n\r\n if (sel && sel.name != sv) {\r\n this.selected.set(undefined);\r\n this.onselect.emit(undefined); \r\n this.shadowValue.set('');\r\n this.notifyOnChange();\r\n }\r\n\r\n const re = this.entityreference();\r\n if (re && re.name$() != sv) {\r\n re.set(undefined, undefined);\r\n this.onselect.emit(undefined);\r\n this.shadowValue.set('');\r\n this.notifyOnChange();\r\n }\r\n\r\n const validate = this.validate();\r\n if (validate == 'decimal' || validate == 'number') {\r\n this.setNumberValueString();\r\n }\r\n this.onblurEvent.emit();\r\n },200);\r\n }\r\n\r\n onBlurCheckbox() {\r\n setTimeout(() => {\r\n this.hasfocus.set(false);\r\n this.onblurEvent.emit();\r\n },200);\r\n }\r\n\r\n onBlurDate() {\r\n setTimeout(() => {\r\n this.hasfocus.set(false);\r\n this.onblurEvent.emit();\r\n },200);\r\n }\r\n\r\n ondown(e: Event) {\r\n e.stopPropagation();\r\n e.preventDefault();\r\n this.next(1);\r\n\r\n }\r\n\r\n onup(e: Event) {\r\n e.stopPropagation();\r\n e.preventDefault();\r\n this.next(-1);\r\n }\r\n\r\n onenter(e: Event) {\r\n e.stopPropagation();\r\n e.preventDefault();\r\n\r\n if (this.current && this.current.expandable == true && !this.isexpanded(this.current)) {\r\n this.expand(e, this.current);\r\n return;\r\n }\r\n\r\n if (this.current && this.current.completeOnly == true) {\r\n this.complete(e, this.current);\r\n return;\r\n }\r\n\r\n this.onEnter.emit();\r\n\r\n if (this.showitems() == false) {\r\n this.searchbyname();\r\n return;\r\n }\r\n\r\n if (this.current != null) {\r\n this.value.set(this.current.name ?? '');\r\n\r\n const re = this.entityreference();\r\n if (re) {\r\n re.set(this.current.id, this.current.name);\r\n }\r\n\r\n this.selected.set(this.current);\r\n this.onselect.emit(this.current);\r\n this.showitems.set(false);\r\n this.shadowValue.set(this.current.name ?? '');\r\n }\r\n }\r\n\r\n onesc(e: Event) {\r\n this.showitems.set(false);\r\n }\r\n\r\n onClick() {\r\n this.click.emit();\r\n }\r\n\r\n onkeydown(e: Event) {\r\n const k = e as KeyboardEvent;\r\n if (this.validate() != null) {\r\n if (NAVIGATIONKEYS.indexOf(k.key) >= 0) {\r\n return;\r\n }\r\n\r\n if (k.ctrlKey) {\r\n if (CTRL_KEYS.indexOf(k.key) >= 0) {\r\n return;\r\n }\r\n }\r\n\r\n if (this.validate() == 'number') {\r\n if (NUMBERS.indexOf(k.key) < 0) {\r\n e.preventDefault();\r\n e.stopPropagation(); \r\n }\r\n }\r\n\r\n if (this.validate() == 'decimal') {\r\n if (DECIMALS.indexOf(k.key) < 0) {\r\n e.preventDefault();\r\n e.stopPropagation(); \r\n }\r\n }\r\n }\r\n }\r\n\r\n\r\n setchoice(v: Event) {\r\n const sel = this.selectable();\r\n if (sel && sel.length > 0) {\r\n const value = (v.target as HTMLSelectElement).value;\r\n const next = sel.find(r => r.id == value);\r\n if (next) {\r\n const osv = this.optionsetvalue();\r\n if (osv) {\r\n osv.set(Number(next.id), next.name)\r\n }\r\n this.selected.set(next);\r\n this.notifyOnChange();\r\n }\r\n }\r\n }\r\n\r\n select(e: Event, v: ISelectable) {\r\n e.stopImmediatePropagation();\r\n e.stopPropagation();\r\n this.value.set(v.name ?? '');\r\n\r\n const re = this.entityreference();\r\n if (re) {\r\n re.set(v.id, v.name);\r\n }\r\n\r\n this.selected.set(v);\r\n this.onselect.emit(v);\r\n this.notifyOnChange();\r\n }\r\n\r\n private next(e: number) {\r\n const items = this.itemlist();\r\n if (items.length > 0) {\r\n this.currentindex = this.currentindex + e;\r\n if (this.currentindex >= items.length) {\r\n this.currentindex = 0;\r\n }\r\n\r\n if (this.currentindex == -1) {\r\n this.currentindex = items.length - 1;\r\n }\r\n\r\n if (this.currentindex == -2) {\r\n this.currentindex = items.length - 1;\r\n }\r\n this.current = items[this.currentindex]\r\n }\r\n this.ensureCurrentVisible();\r\n }\r\n\r\n private ensureCurrentVisible(): void {\r\n\r\n if (this.current != undefined) {\r\n const index = this.itemlist().indexOf(this.current);\r\n if (index < 0) {\r\n return;\r\n }\r\n\r\n this.options.get(index)?.nativeElement.scrollIntoView({\r\n block: 'nearest',\r\n inline: 'nearest'\r\n });\r\n }\r\n}\r\n\r\n focusMe(e?: Event, clicked = true) {\r\n e?.stopPropagation();\r\n\r\n if (!this.disabled() && this.searchElement != null) {\r\n this.searchElement.nativeElement.focus();\r\n }\r\n\r\n if (!this.disabled() && this.textareaElement != null) {\r\n this.textareaElement.nativeElement.focus();\r\n }\r\n\r\n if (!this.disabled() && this.datefieldElement != null) {\r\n this.datefieldElement.nativeElement.focus();\r\n }\r\n\r\n if (clicked) {\r\n this.click.emit();\r\n }\r\n }\r\n\r\n toolClicked(e: Event) {\r\n e.stopPropagation();\r\n this.toolClick.emit();\r\n }\r\n\r\n private searchbyname(ommitcm?: boolean) {\r\n if (this.searchthread != null) {\r\n clearTimeout(this.searchthread);\r\n }\r\n\r\n this.searchthread = setTimeout(() => {\r\n this.dosearchbyname();\r\n }, 600)\r\n }\r\n\r\n private async dosearchbyname(ommitcm?: boolean) {\r\n const ap = this.autocomplete();\r\n if (ap) {\r\n await ap.search(this.shadowValue());\r\n this.currentindex = -1;\r\n this.current = undefined;\r\n this.showitems.set(true);\r\n }\r\n\r\n if (!ap && ommitcm != true) {\r\n this.notifyOnChange();\r\n } \r\n }\r\n\r\n private notifyOnChange() {\r\n this.changeScope?.notifyChanged();\r\n this.releaseOnChanged();\r\n }\r\n\r\n private releaseThread?: number;\r\n private releaseOnChanged() {\r\n if (this.releaseThread) {\r\n clearTimeout(this.releaseThread);\r\n }\r\n\r\n const mSec = this.release();\r\n if (mSec && mSec > 0) {\r\n this.releaseThread = setTimeout(() => {\r\n this.released.emit();\r\n }, mSec);\r\n }\r\n }\r\n\r\n private handleNumber() {\r\n let sv = this.shadowValue();\r\n if (sv == '') {\r\n this.value.set(null);\r\n } else {\r\n const next = sv.replaceAll('.','').replace(',','.');\r\n switch (this.validate()) {\r\n case 'number': {\r\n this.value.set(Number(next));\r\n break;\r\n }\r\n case 'decimal': {\r\n this.value.set(Number(next));\r\n break;\r\n }\r\n default:\r\n this.value.set(sv);\r\n\r\n }\r\n\r\n if (this.type() == 'number' && this.validate() == 'decimal') {\r\n var spl = next.split('.');\r\n if (spl.length <= 1) {\r\n this.decimalsUsed.emit(0);\r\n } else {\r\n this.decimalsUsed.emit(spl[1].length);\r\n }\r\n }\r\n }\r\n }\r\n\r\n private expandedItems = new Map<ISelectable, ISelectable[]>();\r\n private expanding = false;\r\n\r\n async expand(ev: Event, e: ISelectable) {\r\n this.expanding = true;\r\n ev.stopImmediatePropagation();\r\n\r\n if (this.expandedItems.get(e)) {\r\n return;\r\n }\r\n\r\n if (e.expand) {\r\n const children = await e.expand();\r\n if (!children || children.length == 0) {\r\n e.expandable = false;\r\n return;\r\n }\r\n\r\n const nextlist = [] as ISelectable[];\r\n\r\n for (const n of this.itemlist()) {\r\n nextlist.push(n);\r\n if (n == e) {\r\n children.forEach(c => nextlist.push(c));\r\n }\r\n }\r\n this.expandedItems.set(e, children);\r\n\r\n this.itemlist.set(nextlist);\r\n }\r\n }\r\n\r\n async complete(ev: Event, e: ISelectable) {\r\n ev.stopImmediatePropagation();\r\n this.shadowValue.set(e.name ?? '');\r\n this.onValueChanged();\r\n this.setfocus.set(true);\r\n }\r\n\r\n isexpanded(e:ISelectable): boolean {\r\n return this.expandedItems.get(e) != undefined;\r\n }\r\n expandedvalues(e: ISelectable): ISelectable[] | null {\r\n return this.expandedItems.get(e) ?? null;\r\n }\r\n\r\n\r\n private setNumberValueString() {\r\n const v = Number(this.value());\r\n let decimals = this.decimals();\r\n\r\n if (decimals == undefined && this.validate() == 'number') {\r\n decimals = 0;\r\n }\r\n\r\n if (decimals != undefined) {\r\n this.shadowValue.set(nFormater.format(v, decimals))\r\n } else {\r\n this.shadowValue.set(nFormater.flex(v));\r\n }\r\n }\r\n\r\n private showSuggestions(): void {\r\n if (!this.overlayRef && this.searchElement) {\r\n\r\n const positionStrategy = this.overlay\r\n .position()\r\n .flexibleConnectedTo(this.searchElement.nativeElement)\r\n .withPositions([\r\n {\r\n originX: 'start',\r\n originY: 'bottom',\r\n overlayX: 'start',\r\n overlayY: 'top'\r\n }\r\n ]);\r\n\r\n this.overlayRef = this.overlay.create({\r\n positionStrategy,\r\n width: this.searchElement.nativeElement.offsetWidth,\r\n maxHeight: '200px',\r\n scrollStrategy: this.overlay.scrollStrategies.reposition()\r\n });\r\n }\r\n\r\n if (this.searchElement && this.overlayRef && !this.overlayRef.hasAttached()) {\r\n const portal = new TemplatePortal(\r\n this.suggestionsTemplate,\r\n this.viewContainerRef\r\n );\r\n this.overlayRef.attach(portal);\r\n\r\n const autocomplete = this.overlayRef.overlayElement\r\n .querySelector('.autocomplete') as HTMLElement;\r\n\r\n if (autocomplete) {\r\n autocomplete.style.width =\r\n `${this.searchElement.nativeElement.offsetWidth}px`;\r\n }\r\n }\r\n }\r\n\r\n private hideSuggestions(): void {\r\n this.overlayRef?.detach();\r\n }\r\n}\r\n","<div class=\"boruto-ui\">\r\n@if (label() != '' && label().length > 0 && shortLabel() != 'above') {\r\n<div class=\"label\" [ngClass]=\"{ short: shortLabel() == true }\" (click)=\"focusMe($event)\">{{ label() }}</div>\r\n}\r\n@if ((label() != '' || type() == 'number') && showlock()) {\r\n<div class=\"locked\">\r\n @if (required() && shortLabel() != 'above') {\r\n <div style=\"display: inline-block;height: 10px;color: red; position: relative; top: -8px; right: 0\">*</div>\r\n }\r\n @if (disabled()) {\r\n <mat-icon fontSet=\"material-symbols-outlined\">lock</mat-icon>\r\n }\r\n</div>\r\n}\r\n<div class=\"input\" [ngClass]=\"{ focus: hasfocus(), error: error(), textarea: numberoflines() > 1, labelabove: shortLabel() == 'above', toolicon: toolIcon()?.length ?? 0 > 0 }\" (click)=\"focusMe($event)\">\r\n @if (shortLabel() == 'above' && label() != '') {\r\n <div class=\"label-above\">\r\n {{ label() }}\r\n @if (required()) {<span style=\"color: red\">&nbsp;*</span>}\r\n </div>\r\n }\r\n @if (numberoflines() == 1 && validate() != 'date' && validate() != 'checkbox' && !isselect()) {\r\n <input \r\n #inputfield \r\n [ngClass]=\"inputclasses()\"\r\n [type]=\"type() != 'password'? 'text' : 'password'\"\r\n [disabled]=\"disabled()\" \r\n [placeholder]=\"placeholder()\" \r\n [(ngModel)]=\"shadowValue\" \r\n (ngModelChange)=\"onValueChanged()\" \r\n (focus)=\"onFocus()\" \r\n (blur)=\"onBlur()\"\r\n (keydown.arrowdown)=\"ondown($event)\"\r\n (keydown.arrowup)=\"onup($event)\"\r\n (keydown.enter)=\"onenter($event)\"\r\n (keydown.esc)=\"onesc($event)\"\r\n (keydown)=\"onkeydown($event)\"\r\n [maxlength]=\"maxlength()\"/>\r\n }\r\n @if (validate() == 'checkbox') {\r\n <div class=\"checkbox\">\r\n <input \r\n type=\"checkbox\"\r\n class=\"text checkbox\"\r\n [(ngModel)]=\"shadowBool\"\r\n [disabled]=\"disabled()\"\r\n (ngModelChange)=\"onCheckboxToggle()\" \r\n (focus)=\"onFocus()\" \r\n (blur)=\"onBlurCheckbox()\"\r\n />\r\n </div>\r\n }\r\n @if (numberoflines() == 1 && validate() == 'date' && !isselect()) {\r\n <input\r\n #datefield\r\n class=\"text datepicker\"\r\n [matDatepicker]=\"picker\"\r\n [value]=\"shadowDate()\"\r\n (dateChange)=\"pickDate($event)\"\r\n [disabled]=\"disabled()\" \r\n [placeholder]=\"placeholder()\" \r\n (focus)=\"onFocus()\"\r\n (blur)=\"onBlurDate()\"/>\r\n @if (!disabled()) {\r\n <mat-icon \r\n class=\"calendar-icon\" \r\n fontSet=\"material-symbols-outlined\"\r\n (click)=\"picker.open()\">calendar_month</mat-icon>\r\n }\r\n <mat-datepicker #picker></mat-datepicker>\r\n }\r\n @if (numberoflines() > 1 && !isselect()) {\r\n <textarea\r\n #textareafield\r\n [maxlength]=\"maxlength()\"\r\n [rows]=\"numberoflines()\"\r\n [disabled]=\"disabled()\" \r\n [placeholder]=\"placeholder()\" \r\n [(ngModel)]=\"shadowValue\" \r\n [ngClass]=\"{ noresize: !resizeable() }\"\r\n (ngModelChange)=\"onValueChanged()\" \r\n (focus)=\"onFocus()\" \r\n (blur)=\"onBlur()\"\r\n (keydown.arrowdown)=\"ondown($event)\"\r\n (keydown.arrowup)=\"onup($event)\"\r\n (keydown.enter)=\"onenter($event)\"\r\n (keydown.esc)=\"onesc($event)\"\r\n (keydown)=\"onkeydown($event)\"></textarea>\r\n }\r\n @let options = selectable();\r\n @if (options && options.length > 0) {\r\n <select \r\n (change)=\"setchoice($event)\"\r\n (focus)=\"onFocus()\"\r\n (blur)=\"onBlur()\"\r\n [disabled]=\"disabled()\">\r\n @for (option of options; track option) {\r\n <option [value]=\"option.id\" [selected]=\"option == selected()\">{{ option.name }}</option>\r\n }\r\n </select>\r\n @if (!disabled()) {\r\n <mat-icon class=\"dropdown\" fontSet=\"material-symbols-outlined\">arrow_drop_down</mat-icon>\r\n }\r\n }\r\n @let ti = toolIcon();\r\n @if (!disabled() && ti && ti.length > 0) {\r\n <mat-icon class=\"toolicon\" fontSet=\"material-symbols-outlined\" (click)=\"toolClicked($event)\">{{ ti }}</mat-icon>\r\n }\r\n</div>\r\n\r\n@if (label() == '' && type() != 'number' && showlock()) {\r\n <div class=\"locked\" style=\"text-align: left;\">\r\n @if (disabled()) {\r\n <mat-icon fontSet=\"material-symbols-outlined\">lock</mat-icon>\r\n }\r\n </div>\r\n}\r\n\r\n@if (info()) {<div class=\"info\" [title]=\"info()\"><mat-icon class=\"info\">info</mat-icon></div>}\r\n</div>\r\n\r\n<ng-template #suggestionsTemplate>\r\n <div class=\"boruto-ui\">\r\n <div class=\"autocomplete\" [ngClass]=\"{ nolabel: (!label() || label().length == 0 || shortLabel() == 'above'), shortLabel: shortLabel() == true, notdark: notdark() }\">\r\n @if (itemlist().length == 0) {\r\n <div class=\"element\"><div class=\"item\">Ingen fundet</div></div>\r\n }\r\n @for (elm of itemlist(); track elm) {\r\n <div #option class=\"element\" [ngClass]=\"{ current: current == elm, selectable: !elm.disabled }\" (click)=\"select($event, elm)\">\r\n <div class=\"item\">\r\n @if (itemTemplate(); as template) {\r\n <ng-container *ngTemplateOutlet=\"template; context: { $implicit: elm }\"></ng-container>\r\n } @else {\r\n {{ elm.name }}\r\n }\r\n </div>\r\n @if (elm.expandable == true) {\r\n <div class=\"icon expand\" (click)=\"expand($event, elm)\">\r\n <xrmui-icon icon=\"arrow_drop_down\" size=\"24\"></xrmui-icon>\r\n </div>\r\n }\r\n @if (elm.completeOnly == true) {\r\n <div class=\"icon complete\" (click)=\"complete($event, elm)\">\r\n <xrmui-icon icon=\"search\" size=\"24\"></xrmui-icon>\r\n </div>\r\n }\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n</ng-template>\r\n","import { Component, input, ChangeDetectionStrategy } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'xrmui-ribbon',\r\n templateUrl: './ribbon.xrmui.html',\r\n changeDetection: ChangeDetectionStrategy.Eager,\n styleUrl: './ribbon.xrmui.scss'\r\n})\r\nexport class XrmuiRibbon {\r\n\r\n fill = input<boolean>(true);\r\n\r\n constructor() {\r\n }\r\n\r\n}\r\n","<ng-content></ng-content>\r\n@if (fill()) {<div class=\"therest\">&nbsp;</div>}","import { NgClass } from '@angular/common';\r\nimport { Component, ElementRef, Input, OnInit, ChangeDetectionStrategy } from '@angular/core';\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\r\n\r\n@Component({\r\n selector: 'xrmui-spinner',\r\n templateUrl: './spinner.xrmui.html',\r\n styleUrl: './spinner.xrmui.scss',\r\n changeDetection: ChangeDetectionStrategy.Eager,\n imports: [MatProgressSpinnerModule]\r\n})\r\nexport class XrmuiSpinner implements OnInit {\r\n\r\n @Input('diameter') diameter: number = 50;\r\n\r\n constructor(private elm: ElementRef) {\r\n }\r\n\r\n ngOnInit() {\r\n if (this.elm != undefined) {\r\n var native = this.elm.nativeElement as HTMLElement;\r\n var parent = native.parentElement;\r\n if (parent != null) {\r\n var top = Math.round((parent.offsetHeight - this.diameter) / 2);\r\n var left = Math.round((parent.offsetWidth - this.diameter) / 2);\r\n if (top > 0 && left > 0) {\r\n native.style.position = \"absolute\";\r\n native.style.top = top + 'px';\r\n native.style.left = left + 'px';\r\n }\r\n }\r\n }\r\n }\r\n}\r\n","<mat-progress-spinner mode=\"indeterminate\" [diameter]=\"diameter\" />","import { NgClass } from '@angular/common';\r\nimport { Component, EventEmitter, Input, OnChanges, Output, SimpleChanges, ChangeDetectionStrategy } from '@angular/core';\r\nimport { MatIcon } from '@angular/material/icon';\r\nimport { MatMenuModule } from '@angular/material/menu';\r\nimport { IMenu } from '../api/imenu.interface';\r\nimport { XrmuiSpinner } from '../spinner/spinner.xrmui';\r\n\r\n@Component({\r\n selector: 'xrmui-button',\r\n templateUrl: './button.xrmui.html',\r\n styleUrl: './button.xrmui.scss',\r\n changeDetection: ChangeDetectionStrategy.Eager,\n imports: [MatMenuModule, NgClass, MatIcon, XrmuiSpinner]\r\n})\r\nexport class XrmuiButton implements OnChanges {\r\n search: string = '';\r\n @Input('label') label: string = '';\r\n @Input('icon') icon: string = '';\r\n @Input('disabled') disabled: boolean = false;\r\n @Input('working') working: boolean = false;\r\n @Output('click') clicked: EventEmitter<void | IMenu> = new EventEmitter<void | IMenu>();\r\n\r\n @Input('menu') menu: IMenu[] = [];\r\n @Input('current') current?: IMenu;\r\n @Input('selected') selected: boolean = false;\r\n\r\n isCurrent: boolean = false;\r\n\r\n constructor() {\r\n }\r\n\r\n ignore(e: Event) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n }\r\n\r\n onClick(e: Event, m?: IMenu) {\r\n if (!this.disabled) {\r\n if (m != undefined) {\r\n this.clicked.emit(m);\r\n } else {\r\n e.stopPropagation();\r\n this.clicked.emit();\r\n }\r\n }\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n this.isCurrent = this.menu.length > 0 && this.current != undefined && this.menu.find(m => m == this.current) != null;\r\n }\r\n}\r\n","@if (menu == undefined || menu.length == 0 || disabled) {\r\n<button [disabled]=\"disabled\" (click)=\"onClick($event)\" [ngClass]=\"{ selected: selected }\">\r\n @if (working) {\r\n <div class=\"spin\">\r\n <xrmui-spinner [diameter]=\"20\"></xrmui-spinner>\r\n </div>\r\n }\r\n @if (icon != ''){<mat-icon fontSet=\"material-symbols-outlined\">{{ icon }}</mat-icon>}\r\n @if (label != ''){ {{ label }} }\r\n </button>\r\n}\r\n@if (menu != null && menu.length > 0 && !disabled) {\r\n <button [matMenuTriggerFor]=\"menupopup\" [ngClass]=\"{ selected: isCurrent || selected }\" (click)=\"ignore($event)\">\r\n @if (!isCurrent) {\r\n @if (icon != '') {<mat-icon fontSet=\"material-symbols-outlined\">{{ icon }}</mat-icon>}\r\n @if (label != '') { {{ label }} }\r\n }\r\n @if (current != undefined && isCurrent) {\r\n @if (current.icon != undefined && current.icon != '') {<mat-icon fontSet=\"material-symbols-outlined\">{{ current.icon }}</mat-icon>}\r\n @if (current.label != undefined && current.label != '') { {{ current.label }} }\r\n }\r\n </button>\r\n <mat-menu #menupopup>\r\n @for (m of menu; track m.label) {\r\n <button mat-menu-item (click)=\"onClick($event, m)\">\r\n @if (m.icon != undefined && m.icon != '') {<mat-icon fontSet=\"material-symbols-outlined\">{{ m.icon }}</mat-icon>}\r\n @if (m.label != undefined && m.label != '') { {{ m.label }} }\r\n </button>\r\n }\r\n </mat-menu>\r\n}\r\n","import { NgClass } from '@angular/common';\r\nimport { Component, input, ChangeDetectionStrategy } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'xrmui-devider',\r\n templateUrl: './devider.xrmui.html',\r\n styleUrl: './devider.xrmui.scss',\r\n changeDetection: ChangeDetectionStrategy.Eager,\n imports: [NgClass]\r\n})\r\nexport class XrmuiDevider {\r\n orientation = input<'horizontal' | 'vertical'>('vertical');\r\n constructor() {\r\n }\r\n\r\n}\r\n","<div [ngClass]=\"orientation()\">&nbsp;</div>","import { NgClass } from '@angular/common';\r\nimport { Component, input, model, ChangeDetectionStrategy } from '@angular/core';\r\nimport { IMenu } from '../api/imenu.interface';\r\nimport { MatIcon, MatIconModule } from '@angular/material/icon';\r\nimport { MatBadge } from '@angular/material/badge';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatMenuModule } from '@angular/material/menu';\r\n\r\n@Component({\r\n selector: 'xrmui-tabs',\r\n templateUrl: './tabs.xrmui.html',\r\n styleUrl: './tabs.xrmui.scss',\r\n imports: [NgClass,MatIcon,MatBadge,MatButtonModule, MatMenuModule, MatIconModule],\r\n changeDetection: ChangeDetectionStrategy.Eager,\n providers: []\r\n})\r\nexport class XrmuiTabs {\r\n tabs = input.required<IMenu[]>();\r\n burgers = input<IMenu[]>([]);\r\n current = model.required<IMenu>();\r\n\r\n constructor() {\r\n }\r\n}\r\n","<div class=\"xrmui-tabs\">\r\n@for (tab of tabs(); track tab; let idx = $index) {\r\n @if (tab.visible == undefined || tab.visible()) {\r\n <div class=\"xrmui-tab\" [ngClass]=\"{ 'current' : tab == current(), 'disabled': tab.disabled, error: tab != current() && tab.error != undefined && tab.error()}\" (click)=\"current.set(tab)\">\r\n @if (tab.badget != undefined && tab.badget > 0) {\r\n <div [matBadge]=\"tab.badget\" [matBadgeOverlap]=\"false\">\r\n @if (tab.icon != undefined && tab.icon != null && tab.icon != ''){<div class=\"icon\"><mat-icon fontSet=\"material-symbols-outlined\" class=\"mat-icon-14\">{{ tab.icon }}</mat-icon></div>}\r\n <span>\r\n @if (tab.label != undefined && tab.label != null && tab.label != '') { {{ tab.label }} }\r\n @if (tab.label == undefined || tab.label == null || tab.label == '') { {{ tab.id }} }\r\n </span>\r\n </div>\r\n }\r\n\r\n @if (tab.badget == undefined || tab.badget == 0) {\r\n @if (tab.icon != undefined && tab.icon != null && tab.icon != ''){<div class=\"icon\"><mat-icon class=\"mat-icon-14\">{{ tab.icon }}</mat-icon></div>}\r\n <span>\r\n @if (tab.label != undefined && tab.label != null && tab.label != '') { {{ tab.label }} }\r\n @if (tab.label == undefined || tab.label == null || tab.label == '') { {{ tab.id }} }\r\n </span>\r\n }\r\n </div>\r\n }\r\n}\r\n</div>","import { NgClass } from '@angular/common';\r\nimport { Component, ElementRef, EventEmitter, input, Input, OnChanges, output, Output, SimpleChanges, ViewChild } from '@angular/core';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { MatIcon } from '@angular/material/icon';\r\n\r\n@Component({\r\n selector: 'xrmui-section',\r\n templateUrl: './section.xrmui.html',\r\n styleUrl: './section.xrmui.scss',\r\n imports: [FormsModule, MatIcon,NgClass]\r\n})\r\nexport class XrmuiSection implements OnChanges {\r\n @ViewChild('searchelement') searchElement?: ElementRef;\r\n\r\n @Input('title') title: string = '';\r\n @Input('top-title') topTitle: string = '';\r\n @Input('searchable') searchable: boolean = false;\r\n @Input('search') search: string = '';\r\n @Input('placeholder') placeholder: string = ''\r\n @Output('searchChange') searchChange: EventEmitter<string> = new EventEmitter<string>();\r\n\r\n @Input('focusSearch') focusSearchTrigger: boolean = false;\r\n @Output('focusSearchChange') focusSearchTriggerChange: EventEmitter<boolean> = new EventEmitter<boolean>();\r\n\r\n @Input('checkable') checkable: boolean = false;\r\n @Input('checked') checked: boolean = false;\r\n @Output('checkedChange') checkChange: EventEmitter<boolean> = new EventEmitter<boolean>();\r\n @Output('prev') prev: EventEmitter<void> = new EventEmitter<void>();\r\n @Output('next') next: EventEmitter<void> = new EventEmitter<void>();\r\n @Output('enter') enter: EventEmitter<void> = new EventEmitter();\r\n @Output('esc') esc: EventEmitter<void> = new EventEmitter();\r\n\r\n private release$ = 0;\r\n searchReleaseAfter = input<number | null>(null);\r\n searchReleased = output<void>();\r\n\r\n constructor() {\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (this.focusSearchTrigger == true) {\r\n setTimeout(() => {\r\n this.focusSearch();\r\n this.focusSearchTriggerChange.emit(false);\r\n }, 10);\r\n }\r\n }\r\n\r\n searchChanged() {\r\n this.searchChange.emit(this.search);\r\n this.doRelease();\r\n }\r\n\r\n check() {\r\n this.checked = true;\r\n this.checkChange.emit(this.checked);\r\n this.focusSearch();\r\n }\r\n\r\n uncheck() {\r\n this.checked = false;\r\n this.checkChange.emit(this.checked);\r\n this.focusSearch();\r\n }\r\n\r\n onkeydown(e: Event) {\r\n if (this.prev.observed) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n this.prev.emit();\r\n }\r\n }\r\n\r\n onkeyup(e: Event) {\r\n if (this.next.observed) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n this.next.emit();\r\n }\r\n }\r\n\r\n onkeyenter(e: Event) {\r\n if (this.enter.observed) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n this.enter.emit();\r\n }\r\n }\r\n\r\n onkeyesc(e: Event) {\r\n if (this.esc.observed) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n this.esc.emit();\r\n }\r\n }\r\n\r\n private focusSearch() {\r\n if (this.searchElement != null) {\r\n this.searchElement.nativeElement.focus();\r\n }\r\n }\r\n\r\n private doRelease() {\r\n const re = this.searchReleaseAfter();\r\n if (re && re > 0) {\r\n if (this.release$ > 0) {\r\n clearTimeout(this.release$);\r\n }\r\n\r\n this.release$ = setTimeout(() => {\r\n this.searchReleased.emit();\r\n }, re);\r\n }\r\n }\r\n}\r\n","@if (topTitle != '') {<div class=\"toptitle-container\">\r\n <div class=\"toptitle\">{{ topTitle }}</div>\r\n</div>}\r\n@if(title != '' && !searchable) {<div class=\"header\">{{ title }}</div>}\r\n@if (searchable) {\r\n<div class=\"search\">\r\n @if (checkable) {\r\n <div class=\"chexkbox\">\r\n @if (checked){<mat-icon title=\"Fravælg alle\" (click)=\"uncheck()\">check_box</mat-icon>}\r\n @if(!checked) {<mat-icon title=\"Vælg alle\" (click)=\"check()\">check_box_outline_blank</mat-icon>}\r\n </div>\r\n }\r\n <input #searchelement [(ngModel)]=\"search\" (ngModelChange)=\"searchChanged()\" [placeholder]=\"title\"\r\n (keydown.esc)=\"onkeyesc($event)\" (keydown.arrowdown)=\"onkeydown($event)\" (keydown.arrowup)=\"onkeyup($event)\"\r\n (keydown.enter)=\"onkeyenter($event)\" \r\n [placeholder]=\"placeholder\" />\r\n <div class=\"therest\"></div>\r\n</div>\r\n}\r\n<div class=\"xrmui-section-content\" [ngClass]=\"{'nosearchortitle': searchable == false && title == ''}\"><ng-content></ng-content></div>","import { NgModule } from '@angular/core';\r\nimport { XrmuiInfo } from './info/info.xrmui';\r\nimport { XrmuiPanel } from './panel/panel.xrmui'\r\nimport { XrmuiLayout } from './layout/layout.xrmui';\r\nimport { XrmuiIcon } from './icon/icon.xrmui';\r\nimport { XrmuiInput } from './input/input.xrmui';\r\nimport { XrmuiRibbon } from './ribbon/ribbon.xrmui';\r\nimport { XrmuiSpinner } from './spinner/spinner.xrmui';\r\nimport { XrmuiButton } from './button/button.xrmui';\r\nimport { XrmuiDevider } from './devider/devider.xrmui';\r\nimport { XrmuiTabs } from './tabs/tabs.xrmui';\r\nimport { ChangeScopeDirective } from './changedscope/changedscope.directive';\r\nimport { FormScopeDirective } from './form/formscope.directive';\r\nimport { XrmuiSection } from './section/section.xrmui';\r\n\r\n@NgModule({\r\n imports: [\r\n XrmuiInfo,\r\n XrmuiLayout,\r\n XrmuiPanel,\r\n XrmuiIcon,\r\n XrmuiInput,\r\n XrmuiRibbon,\r\n XrmuiSpinner,\r\n XrmuiButton,\r\n XrmuiDevider,\r\n XrmuiTabs,\r\n XrmuiSection,\r\n ChangeScopeDirective,\r\n FormScopeDirective,\r\n ],\r\n exports: [\r\n XrmuiInfo,\r\n XrmuiLayout,\r\n XrmuiPanel,\r\n XrmuiIcon,\r\n XrmuiInput,\r\n XrmuiRibbon,\r\n XrmuiSpinner,\r\n XrmuiButton,\r\n XrmuiDevider,\r\n XrmuiTabs,\r\n XrmuiSection,\r\n ChangeScopeDirective,\r\n FormScopeDirective\r\n ]\r\n})\r\nexport class BorutoXrmUIModule { }\r\n","/*\r\n * Public API Surface of Old Kipon UI\r\n */\r\n\r\nexport * from './lib/ko/forms/kobuttongroup/kobuttongroup.component';\r\nexport * from './lib/ko/forms/kodecimal.directive';\r\nexport * from './lib/ko/forms/kofocus.directive';\r\n\r\nexport * from './lib/ko/message/koalert/koaleret.component';\r\nexport * from './lib/ko/message/koheader/koheader.component';\r\nexport * from './lib/ko/message/kowrite.directive';\r\n\r\nexport * from './lib/ko/models/navigation.interface';\r\n\r\nexport * from './lib/ko/navigation/koleftmenu/koleftmenu.component';\r\nexport * from './lib/ko/navigation/kotopmenu/kotopmenu.component';\r\nexport * from './lib/ko/navigation/koover.directive';\r\n\r\nexport * from './lib/ko/panels/koexpansionpanel/koexpansionpanel.component';\r\nexport * from './lib/ko/panels/kohorizontalscroll/kohorizontalscroll.component';\r\nexport * from './lib/ko/panels/kohorizontalsplit/kohorizontalsplit.component';\r\nexport * from './lib/ko/panels/komain/komain.component';\r\nexport * from './lib/ko/panels/kotablepanel/kotablepanel.component';\r\nexport * from './lib/ko/panels/kotitlepanel/kotitlepanel.component';\r\nexport * from './lib/ko/panels/koverticalscroll/koverticalscroll.component';\r\nexport * from './lib/ko/panels/koview/koview.component';\r\nexport * from './lib/ko/panels/koverticalsplit/koverticalsplit.component';\r\n\r\nexport * from './lib/ko/kipon-ui.module';\r\n\r\n/*\r\n * Public API Surface of Xrmui\r\n */\r\n\r\nexport * from './lib/bo/api/imenu.interface';\r\nexport * from './lib/bo/api/iselectable.interface';\r\nexport * from './lib/bo/api/optionsetvalue.interface';\r\nexport * from './lib/bo/api/optionvalue.interface';\r\nexport * from './lib/bo/api/entityreference.interface';\r\nexport * from './lib/bo/api/isearchservice.interface';\r\nexport * from './lib/bo/api/changednotifier.interface';\r\nexport * from './lib/bo/api/form.interface';\r\nexport * from './lib/bo/models/dkcustomdateadapter.model';\r\nexport * from './lib/bo/models/nformat.model';\r\n\r\nexport * from './lib/bo/info/info.xrmui';\r\nexport * from './lib/bo/layout/layout.xrmui';\r\nexport * from './lib/bo/panel/panel.xrmui'; \r\nexport * from './lib/bo/icon/icon.xrmui';\r\nexport * from './lib/bo/input/input.xrmui';\r\nexport * from './lib/bo/ribbon/ribbon.xrmui';\r\nexport * from './lib/bo/spinner/spinner.xrmui';\r\nexport * from './lib/bo/button/button.xrmui';\r\nexport * from './lib/bo/devider/devider.xrmui';\r\nexport * from './lib/bo/tabs/tabs.xrmui';\r\nexport * from './lib/bo/changedscope/changedscope.directive';\r\nexport * from './lib/bo/form/formscope.directive';\r\nexport * from './lib/bo/section/section.xrmui';\r\n\r\nexport * from './lib/bo/boruto-xrmui.module';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["XrmuiPanel","i1"],"mappings":";;;;;;;;;;;;;;;;;;;;;;MAWa,sBAAsB,CAAA;AAC/B,IAAA,WAAA,GAAA;IACA;uGAFS,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAtB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,sBAAsB,2ECXnC,2BAAyB,EAAA,MAAA,EAAA,CAAA,+qBAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,KAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA;;2FDWZ,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBARlC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,iBAAiB,mBAGV,uBAAuB,CAAC,KAAK,EAAA,aAAA,EAC/B,iBAAiB,CAAC,IAAI,EAAA,QAAA,EAAA,2BAAA,EAAA,MAAA,EAAA,CAAA,+qBAAA,CAAA,EAAA;;;MEH5B,kBAAkB,CAAA;AACT,IAAA,EAAA;AAApB,IAAA,WAAA,CAAoB,EAAc,EAAA;QAAd,IAAA,CAAA,EAAE,GAAF,EAAE;QACpB,MAAM,CAAC,MAAK;AACV,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE;AAC1B,YAAA,IAAI,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE;AACzB,gBAAA,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE;YAC1D;AACF,QAAA,CAAC,CAAC;QAEF,MAAM,CAAC,MAAK;AACV,YAAA,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE;YACtB,IAAI,CAAC,cAAc,EAAE;AACvB,QAAA,CAAC,CAAC;IACJ;IAGA,QAAQ,GAAG,KAAK,CAAS,CAAC,gFAAI,KAAK,EAAE,aAAa,EAAA,CAAG;IACrD,KAAK,GAAG,KAAK,CAAgB,IAAI,6EAAI,KAAK,EAAE,UAAU,EAAA,CAAG;IACzD,YAAY,GAAG,MAAM,CAAgB,EAAE,KAAK,EAAE,gBAAgB,EAAE,CAAC;IACjE,KAAK,GAAG,KAAK,CAAS,OAAO;8EAAC;IAE9B,WAAW,GAAY,KAAK;AAC5B,IAAA,UAAU;AAE2B,IAAA,SAAS,CAAC,MAAqB,EAAA;AAClE,QAAA,QAAQ,MAAM,CAAC,GAAG;AAChB,YAAA,KAAK,WAAW;AAChB,YAAA,KAAK,KAAK;AACV,YAAA,KAAK,WAAW;AAChB,YAAA,KAAK,YAAY;AACjB,YAAA,KAAK,QAAQ;AACb,YAAA,KAAK,GAAG;AACR,YAAA,KAAK,GAAG;AACR,YAAA,KAAK,GAAG;AACR,YAAA,KAAK,GAAG;AACR,YAAA,KAAK,GAAG;AACR,YAAA,KAAK,GAAG;AACR,YAAA,KAAK,GAAG;AACR,YAAA,KAAK,GAAG;AACR,YAAA,KAAK,GAAG;AACR,YAAA,KAAK,GAAG;YACR,KAAK,GAAG,EAAE;gBACR,IAAI,CAAC,aAAa,EAAE;AACpB,gBAAA,OAAO,IAAI;YACb;YACA,KAAK,GAAG,EAAE;AACR,gBAAA,IAAI,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE;AACxB,oBAAA,OAAO,KAAK;gBACd;gBACA,IAAI,CAAC,aAAa,EAAE;AACpB,gBAAA,OAAO,IAAI;YACb;YACA,KAAK,SAAS,EAAE;AACd,gBAAA,IAAI,CAAC,WAAW,GAAG,IAAI;gBACvB,IAAI,CAAC,aAAa,EAAE;AACpB,gBAAA,OAAO,IAAI;YACb;AACA,YAAA,KAAK,GAAG;AACR,YAAA,KAAK,GAAG;AACR,YAAA,KAAK,GAAG;YACR,KAAK,GAAG,EAAE;AACR,gBAAA,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,EAAE;oBAC5B,IAAI,CAAC,aAAa,EAAE;AACpB,oBAAA,OAAO,IAAI;gBACb;gBACA,MAAM,CAAC,eAAe,EAAE;AACxB,gBAAA,OAAO,KAAK;YACd;YACA,SAAS;gBACP,MAAM,CAAC,eAAe,EAAE;AACxB,gBAAA,OAAO,KAAK;YACd;;IAEJ;IAEsB,MAAM,GAAA;AAC1B,QAAA,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI;AAAE,YAAA,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC;AAC1D,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI;QACtB,IAAI,CAAC,eAAe,EAAE;QACtB,IAAI,CAAC,cAAc,EAAE;IACvB;IAEQ,cAAc,GAAA;QACpB,IAAI,IAAI,CAAC,EAAE,CAAC,aAAa,IAAI,IAAI,EAAE;AACjC,YAAA,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE;AACtB,YAAA,IAAI,CAAC,IAAI,IAAI,EAAE;AACb,gBAAA,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;YACvE;iBAAO;gBACL,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,KAAK,GAAG,EAAE;YAClC;QACF;IACF;IAIQ,aAAa,CAAC,UAAkB,IAAI,EAAA;AAC1C,QAAA,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI;AAAE,YAAA,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC;AAC1D,QAAA,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,MAAK;AAChC,YAAA,IAAI,CAAC,UAAU,GAAG,IAAI;YACtB,IAAI,CAAC,eAAe,EAAE;QACxB,CAAC,EAAE,OAAO,CAAC;IACb;IAEQ,eAAe,GAAA;QACrB,IAAI,IAAI,CAAC,EAAE,CAAC,aAAa,IAAI,IAAI,EAAE;YACjC,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,KAAK;YACnC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,EAAE;AACxB,gBAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC;gBAC5B;YACF;iBAAO;AACL,gBAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAC,GAAG,CAAC,CAAC,CAAC;YACpD;QACF;IACF;IAEQ,cAAc,CAAC,KAAa,EAAE,QAAgB,EAAA;AACpD,QAAA,IAAI,KAAK,IAAI,IAAI,EAAE;AACjB,YAAA,OAAO,EAAE;QACX;AAEA,QAAA,IAAI,QAAQ,IAAI,IAAI,EAAE;YACpB,OAAO,KAAK,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC;QAC3C;AAEA,QAAA,IAAI,MAAM,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC;AAC/C,QAAA,IAAI,QAAQ,IAAI,CAAC,EAAE;YACjB,IAAI,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC;AAC7B,YAAA,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE;gBAC7C,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACrE;YACA,OAAO,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAC7B;QAEA,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;YAC3B,MAAM,IAAI,IAAI;QAChB;QAEA,IAAI,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACtC,QAAA,IAAI,WAAW,CAAC,MAAM,IAAI,QAAQ,EAAE;AAClC,YAAA,OAAO,MAAM;QACf;AAEA,QAAA,IAAI,WAAW,CAAC,MAAM,IAAI,QAAQ,EAAE;YAClC,OAAO,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,MAAM,CAAC,WAAW,GAAG,mBAAmB,GAAG,WAAW,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,QAAQ,CAAC;QACpH;QAEA,IAAI,KAAK,GAAG,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC,mBAAmB,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC;AAE5E,QAAA,IAAI,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,GAAG,KAAK;QAEpD,OAAO,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,QAAQ,CAAC;IACpD;uGAvJW,kBAAkB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAlB,kBAAkB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,SAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;2FAAlB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAH9B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE;AACX,iBAAA;;sBAyBE,YAAY;uBAAC,SAAS,EAAE,CAAC,QAAQ,CAAC;;sBAmDlC,YAAY;uBAAC,MAAM;;;MC7ET,gBAAgB,CAAA;AAErB,IAAA,WAAW,GAAe,MAAM,CAAC,UAAU,CAAC;IAEhD,KAAK,GAAG,KAAK,CAAU,KAAK,6EAAI,KAAK,EAAE,UAAU,EAAA,CAAG;IACpD,WAAW,GAAG,MAAM,CAAU,EAAE,KAAK,EAAE,gBAAgB,EAAE,CAAC;AAE1D,IAAA,WAAA,GAAA;QACI,MAAM,CAAC,MAAK;AACR,YAAA,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,EAAE;YAC9B,IAAI,SAAS,EAAE;gBACX,UAAU,CAAC,MAAK;AACZ,oBAAA,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,KAAK,EAAE;AACtC,oBAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC;gBAChC,CAAC,EAAC,EAAE,CAAC;YACT;AACJ,QAAA,CAAC,CAAC;IACN;uGAjBS,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAhB,gBAAgB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;2FAAhB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAD5B,SAAS;mBAAC,EAAE,QAAQ,EAAE,YAAY,EAAE;;;MCUxB,gBAAgB,CAAA;IAEX,KAAK,GAAW,MAAM;AACpC,IAAA,WAAA,GAAA;IACA;uGAJS,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAhB,gBAAgB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECZ7B,8DACA,EAAA,MAAA,EAAA,CAAA,smBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDMa,OAAO,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,KAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA;;2FAKP,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAT5B,SAAS;+BACI,UAAU,EAAA,OAAA,EAGZ,CAAC,OAAO,CAAC,EAAA,eAAA,EACA,uBAAuB,CAAC,KAAK,EAAA,aAAA,EAC/B,iBAAiB,CAAC,IAAI,EAAA,QAAA,EAAA,8DAAA,EAAA,MAAA,EAAA,CAAA,smBAAA,CAAA,EAAA;;sBAKtC,KAAK;uBAAC,OAAO;;;MEFH,iBAAiB,CAAA;IAE5B,KAAK,GAAG,KAAK,CAAS,MAAM;8EAAC;uGAFlB,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAjB,iBAAiB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECZ9B,gEACA,EAAA,MAAA,EAAA,CAAA,ydAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDMa,OAAO,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,KAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA;;2FAKP,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAT7B,SAAS;+BACI,WAAW,EAAA,OAAA,EAGb,CAAC,OAAO,CAAC,EAAA,eAAA,EACA,uBAAuB,CAAC,KAAK,EAAA,aAAA,EAC/B,iBAAiB,CAAC,IAAI,EAAA,QAAA,EAAA,gEAAA,EAAA,MAAA,EAAA,CAAA,ydAAA,CAAA,EAAA;;;MEN5B,gBAAgB,CAAA;IAE3B,SAAS,GAAG,KAAK,CAAS,IAAI,iFAAI,KAAK,EAAE,UAAU,EAAA,CAAG;AAC9C,IAAA,WAAW,GAAe,MAAM,CAAC,UAAU,CAAC;AAEpD,IAAA,WAAA,GAAA;QACE,MAAM,CAAC,MAAK;AACV,YAAA,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,EAAE;YAC5B,IAAI,CAAC,MAAM,EAAE;AACf,QAAA,CAAC,CAAC;IACJ;IAKQ,MAAM,GAAA;AACZ,QAAA,IAAI,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,aAA4B;AACxD,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE;AACtB,YAAA,IAAI,MAAM,GAAG,IAAI,CAAC,aAA4B;AAE9C,YAAA,MAAM,CAAC,KAAK,CAAC,QAAQ,GAAG,QAAQ;AAEhC,YAAA,IAAI,CAAC,GAAG,MAAM,CAAC,YAAY;AAC3B,YAAA,IAAI,CAAC,GAAG,MAAM,CAAC,WAAW;AAG1B,YAAA,IAAI,CAAC,IAAI,CAAC,EAAE;gBACV,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,QAAQ,EAAE,GAAG,IAAI;gBACtC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,QAAQ,EAAE,GAAG,IAAI;gBACvC,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC,CAAC,QAAQ,EAAE,GAAG,IAAI;AAC3C,gBAAA,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,QAAQ;AAC/B,gBAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,UAAU;AAChC,gBAAA,IAAI,CAAC,KAAK,CAAC,eAAe,GAAG,OAAO;AACpC,gBAAA,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,cAAc;AAEnC,gBAAA,IAAI,IAAI,CAAC,SAAS,EAAE,IAAI,IAAI,EAAE;AAC5B,oBAAA,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,gBAAgB;oBACvC,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,QAAQ,EAAE,GAAG,IAAI;gBACtC;qBAAO;AACL,oBAAA,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,eAAe;oBACtC,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE,GAAG,IAAI;gBACvC;YACF;QACF;IACF;uGA5CW,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAhB,gBAAgB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;2FAAhB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAD5B,SAAS;mBAAC,EAAE,QAAQ,EAAE,YAAY,EAAE;;;MCStB,SAAS,CAAA;AACpB,IAAA,EAAE;AACF,IAAA,KAAK;AACL,IAAA,QAAQ;IACR,KAAK,GAAQ,IAAI;IACjB,IAAI,GAAmB,IAAI;IAC3B,QAAQ,GAAkB,IAAI;IAC9B,MAAM,GAAkB,IAAI;AAE5B,IAAA,WAAA,GAAA;AACE,QAAA,IAAI,CAAC,EAAE,GAAG,aAAa;AACvB,QAAA,IAAI,CAAC,KAAK,GAAG,EAAE;AACf,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI;IACtB;AACD;MAEY,sBAAsB,CAAA;AACjC,IAAA,EAAE;IACF,KAAK,GAAkB,IAAI;AAC3B,IAAA,QAAQ;AACR,IAAA,QAAQ;AACR,IAAA,KAAK;IACL,IAAI,GAAmB,IAAI;IAC3B,MAAM,GAAkB,IAAI;IAM5B,WAAA,CAAY,EAAU,EAAE,QAAgB,EAAE,QAAA,GAAoB,KAAK,EAAE,KAAA,GAAuB,IAAI,EAAE,KAAA,GAAa,IAAI,EAAA;AACjH,QAAA,IAAI,CAAC,EAAE,GAAG,EAAE;AACZ,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK;AAClB,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ;AACxB,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ;AACxB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK;IACpB;AACD;MAEY,sBAAsB,CAAA;AACjC,IAAA,EAAE;IACF,KAAK,GAAkB,IAAI;AAC3B,IAAA,QAAQ;AACR,IAAA,MAAM;AACN,IAAA,KAAK;IACL,IAAI,GAAmB,IAAI;IAC3B,QAAQ,GAAkB,IAAI;IAM9B,WAAA,CAAY,EAAU,EAAE,MAAc,EAAE,QAAA,GAAoB,KAAK,EAAE,KAAA,GAAuB,IAAI,EAAE,KAAA,GAAa,IAAI,EAAA;AAC/G,QAAA,IAAI,CAAC,EAAE,GAAG,EAAE;AACZ,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI;AACjB,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ;AACxB,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM;AACpB,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI;IACnB;AACD;;MCxDU,mBAAmB,CAAA;AACtB,IAAA,EAAE,GAAe,MAAM,CAAC,UAAU,CAAC;IAE3C,KAAK,GAAG,KAAK,CAAmB,EAAE;8EAAC;IACnC,OAAO,GAAG,KAAK,CAAgB,IAAI;gFAAC;IACpC,aAAa,GAAG,MAAM,EAAiB;IAE/B,WAAW,GAAG,MAAM,CAAS,EAAE;oFAAC;IACxC,IAAI,GAAG,MAAM,CAAsB,IAAI;6EAAC;AAExC,IAAA,WAAA,GAAA;IACA;AAGA,IAAA,UAAU,CAAC,CAAe,EAAA;AACxB,QAAA,IAAI,CAAC,CAAC,EAAE,IAAI,aAAa,EAAE;AACzB,YAAA,OAAO,KAAK;QACd;AACA,QAAA,OAAO,IAAI,CAAC,WAAW,EAAE;IAC3B;IAEA,eAAe,GAAA;QACb,UAAU,CAAC,MAAK;YACd,IAAI,CAAC,WAAW,CAAC,GAAG,CAAE,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,WAAW,GAAG,EAAE,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;QACnF,CAAC,EAAE,CAAC,CAAC;IACP;AAEA,IAAA,UAAU,CAAC,IAAkB,EAAA;AAC3B,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AAClB,YAAA,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,EAAE;gBACtB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAClC;iBAAO;gBACL,IAAI,CAAC,KAAK,EAAE;YACd;QACF;IACF;AAEA,IAAA,QAAQ,CAAC,CAAsB,EAAA;QAC7B,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAE;AAC5B,YAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QAClB;IACF;IAEA,OAAO,GAAA;AACL,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;IACrB;uGA7CW,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAnB,mBAAmB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,aAAA,EAAA,eAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECbhC,k1BAeA,EAAA,MAAA,EAAA,CAAA,kwBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDNY,OAAO,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,KAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA;;2FAIN,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAR/B,SAAS;+BACE,cAAc,EAAA,OAAA,EAGf,CAAC,OAAO,CAAC,EAAA,eAAA,EACD,uBAAuB,CAAC,KAAK,EAAA,aAAA,EAC/B,iBAAiB,CAAC,IAAI,EAAA,QAAA,EAAA,k1BAAA,EAAA,MAAA,EAAA,CAAA,kwBAAA,CAAA,EAAA;;;MEE1B,kBAAkB,CAAA;AAErB,IAAA,EAAE,GAAe,MAAM,CAAC,UAAU,CAAC;IAE3C,KAAK,GAAG,KAAK,CAAmB,EAAE;8EAAC;IACnC,OAAO,GAAG,KAAK,CAAgB,IAAI;gFAAC;IACpC,aAAa,GAAG,MAAM,EAAiB;IAEvC,IAAI,GAAG,MAAM,CAAsB,IAAI;6EAAC;IAExC,cAAc,GAAG,MAAM,CAAS,EAAE;uFAAC;AAEnC,IAAA,WAAA,GAAA;IACA;IAEA,eAAe,GAAA;QACb,UAAU,CAAC,MAAK;AACd,YAAA,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,YAAY,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC;QAC/E,CAAC,EAAE,CAAC,CAAC;IACP;AAEA,IAAA,UAAU,CAAC,IAAkB,EAAA;AAC3B,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AAClB,YAAA,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,EAAE;gBACtB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAClC;iBAAO;gBACL,IAAI,CAAC,KAAK,EAAE;YACd;QACF;IACF;AAEA,IAAA,SAAS,CAAC,CAAe,EAAA;AACvB,QAAA,IAAI,CAAC,CAAC,EAAE,IAAI,aAAa,EAAE;AACzB,YAAA,OAAO,GAAG;QACZ;AACA,QAAA,OAAO,IAAI,CAAC,cAAc,EAAE;IAC9B;AAGA,IAAA,QAAQ,CAAC,CAAsB,EAAA;QAC7B,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAE;AAC5B,YAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QAClB;IACF;IAEA,OAAO,GAAA;AACL,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;IACrB;uGA/CW,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAlB,kBAAkB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,aAAA,EAAA,eAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECb/B,04BAcA,EAAA,MAAA,EAAA,CAAA,61BAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDLY,OAAO,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,KAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA;;2FAIN,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAR9B,SAAS;+BACE,aAAa,EAAA,OAAA,EAGd,CAAC,OAAO,CAAC,EAAA,eAAA,EACD,uBAAuB,CAAC,KAAK,EAAA,aAAA,EAC/B,iBAAiB,CAAC,IAAI,EAAA,QAAA,EAAA,04BAAA,EAAA,MAAA,EAAA,CAAA,61BAAA,CAAA,EAAA;;;MEN1B,eAAe,CAAA;AAElB,IAAA,EAAE,GAAe,MAAM,CAAC,UAAU,CAAC;AAE3C,IAAA,WAAA,GAAA;IACA;IAEA,OAAO,GAAG,KAAK,CAAC,QAAQ,8EAAO,KAAK,EAAC,SAAS,EAAA,CAAE;AAET,IAAA,WAAW,CAAC,MAAkB,EAAA;AACnE,QAAA,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE;AACzB,QAAA,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,EAAE;AACxB,YAAA,EAAE,CAAC,MAAM,CAAC,GAAG,IAAI;QACnB;IACF;AAEwC,IAAA,YAAY,CAAC,MAAkB,EAAA;AACrE,QAAA,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE;AACzB,QAAA,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,EAAE;AACxB,YAAA,OAAO,EAAE,CAAC,MAAM,CAAC;QACnB;IACF;uGArBW,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAf,eAAe,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,WAAA,EAAA,qBAAA,EAAA,YAAA,EAAA,sBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;2FAAf,eAAe,EAAA,UAAA,EAAA,CAAA;kBAH3B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE;AACX,iBAAA;;sBAUE,YAAY;uBAAC,WAAW,EAAE,CAAC,QAAQ,CAAC;;sBAOpC,YAAY;uBAAC,YAAY,EAAE,CAAC,QAAQ,CAAC;;;MCX3B,yBAAyB,CAAA;IAEpC,QAAQ,GAAG,KAAK,CAAU,KAAK;iFAAC;IAChC,cAAc,GAAG,MAAM,EAAW;IAElC,UAAU,GAAG,MAAM,CAAU,KAAK;mFAAC;AAEnC,IAAA,WAAA,GAAA;QACE,MAAM,CAAC,MAAK;YACV,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;AACtC,QAAA,CAAC,CAAC;IACJ;IAEA,MAAM,GAAA;QACJ,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;QACvC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;IAC7C;uGAhBW,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAzB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,yBAAyB,0QCVtC,itBAgBA,EAAA,MAAA,EAAA,CAAA,4TAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,KAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA;;2FDNa,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBARrC,SAAS;+BACE,oBAAoB,EAAA,OAAA,EAGrB,EAAE,EAAA,eAAA,EACM,uBAAuB,CAAC,KAAK,EAAA,aAAA,EAC/B,iBAAiB,CAAC,IAAI,EAAA,QAAA,EAAA,itBAAA,EAAA,MAAA,EAAA,CAAA,4TAAA,CAAA,EAAA;;;MEI1B,2BAA2B,CAAA;AACpC,IAAA,WAAA,GAAA;IACA;uGAFS,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAA3B,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,2BAA2B,gFCZxC,2BAAyB,EAAA,MAAA,EAAA,CAAA,qGAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,KAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA;;2FDYZ,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBAVvC,SAAS;+BACI,sBAAsB,EAAA,OAAA,EAGvB,EAAE,EAAA,eAAA,EACM,uBAAuB,CAAC,KAAK,EAAA,aAAA,EAC/B,iBAAiB,CAAC,IAAI,EAAA,QAAA,EAAA,2BAAA,EAAA,MAAA,EAAA,CAAA,qGAAA,CAAA,EAAA;;;MEG5B,0BAA0B,CAAA;IAErC,MAAM,GAAG,KAAK,CAAS,KAAK;+EAAC;IAC7B,KAAK,GAAG,KAAK,CAAmB,KAAK;8EAAC;AAEtC,IAAA,WAAA,GAAA;QACE,MAAM,CAAC,MAAK;AACV,YAAA,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE;AACvB,YAAA,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE;YACtB,IAAI,CAAC,IAAI,EAAE;AACb,QAAA,CAAC,CAAC;IACJ;IAEA,QAAQ,GAAG,MAAM,CAAM,EAAE;iFAAC;IAC1B,WAAW,GAAG,MAAM,CAAM,EAAE;oFAAC;IAErB,IAAI,GAAA;AACV,QAAA,IAAI,IAAI,CAAC,KAAK,EAAE,IAAI,KAAK,EAAE;AACzB,YAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;AAChB,gBAAA,MAAM,EAAE,IAAI,CAAC,MAAM;AACpB,aAAA,CAAC;AACF,YAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAE;AACpB,gBAAA,GAAG,EAAE,IAAI,CAAC,MAAM;AACjB,aAAA,CAAC;QACJ;aAAO;AACL,YAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;AAChB,gBAAA,MAAM,EAAE,IAAI,CAAC,MAAM;AACpB,aAAA,CAAC;AACF,YAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC;AACnB,gBAAA,MAAM,EAAE,IAAI,CAAC,MAAM;AACpB,aAAA,CAAC;QACJ;IACF;uGAhCW,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAA1B,0BAA0B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECXvC,+OAMA,EAAA,MAAA,EAAA,CAAA,uWAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDCY,OAAO,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,KAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA;;2FAIN,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBARtC,SAAS;+BACE,qBAAqB,EAAA,OAAA,EAGtB,CAAC,OAAO,CAAC,EAAA,eAAA,EACD,uBAAuB,CAAC,KAAK,EAAA,aAAA,EAC/B,iBAAiB,CAAC,IAAI,EAAA,QAAA,EAAA,+OAAA,EAAA,MAAA,EAAA,CAAA,uWAAA,CAAA,EAAA;;;MEG1B,eAAe,CAAA;AAC1B,IAAA,WAAA,GAAA;IACA;uGAFW,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAf,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,eAAe,mECZ5B,2BAAyB,EAAA,MAAA,EAAA,CAAA,oEAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,KAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA;;2FDYZ,eAAe,EAAA,UAAA,EAAA,CAAA;kBAV3B,SAAS;+BACE,SAAS,EAAA,OAAA,EAGV,EAAE,EAAA,eAAA,EACM,uBAAuB,CAAC,KAAK,EAAA,aAAA,EAC/B,iBAAiB,CAAC,IAAI,EAAA,QAAA,EAAA,2BAAA,EAAA,MAAA,EAAA,CAAA,oEAAA,CAAA,EAAA;;;MEK1B,qBAAqB,CAAA;AAEN,IAAA,WAAW;AACb,IAAA,SAAS;AACP,IAAA,WAAW;IAErC,MAAM,GAAG,KAAK,CAAS,MAAM;+EAAC;AAEtB,IAAA,KAAK,GAAsB,MAAM,CAAC,iBAAiB,CAAC;AAE5D,IAAA,WAAA,GAAA;QACE,MAAM,CAAC,MAAK;AACV,YAAA,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE;YACvB,IAAI,CAAC,UAAU,EAAE;AAEnB,QAAA,CAAC,CAAC;IACJ;AAGQ,IAAA,SAAS;AACT,IAAA,SAAS;IAET,MAAM,GAAY,IAAI;IACtB,MAAM,GAAY,IAAI;IAE9B,QAAQ,GAAG,MAAM,CAAM,EAAE;iFAAC;IAC1B,QAAQ,GAAG,MAAM,CAAM,EAAE;iFAAC;IAC1B,QAAQ,GAAG,MAAM,CAAM,EAAE;iFAAC;IAE1B,eAAe,GAAA;QACb,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,IAAI,IAAI,IAAI,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC;QAC1G,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,IAAI,IAAI,IAAI,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC;AAC1G,QAAA,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE;QAE1B,IAAI,CAAC,QAAQ,EAAE;IACjB;IAEA,YAAY,GAAA;AACV,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,aAA4B;AAC5D,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,aAA4B;AACxD,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,aAA4B;AAE5D,QAAA,IAAI,QAAQ,GAAG,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU;AAEhE,QAAA,IAAI,IAAI,CAAC,MAAM,EAAE;AACf,YAAA,MAAM,CAAC,UAAU,GAAG,QAAQ;QAC9B;AAEA,QAAA,IAAI,IAAI,CAAC,MAAM,EAAE;AACf,YAAA,MAAM,CAAC,UAAU,GAAG,QAAQ;QAC9B;AAEA,QAAA,IAAI,CAAC,UAAU,GAAG,QAAQ;IAC5B;IAEQ,QAAQ,GAAA;QAEd,IAAI,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC;AAClC,QAAA,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,EAAE;AACnB,YAAA,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC,CAAC,CAAC;AACvB,YAAA,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC,CAAC,CAAC;QACzB;aAAO;AACL,YAAA,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC,CAAC,CAAC;AACvB,YAAA,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC,CAAC,CAAC;QACzB;QACA,UAAU,CAAC,MAAM,IAAI,CAAC,UAAU,EAAE,EAAE,EAAE,CAAC;IACzC;IAEQ,UAAU,GAAA;QAChB,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,EAAE;AAC9B,YAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;gBAChB,MAAM,EAAE,IAAI,CAAC,SAAS;AACtB,gBAAA,OAAO,EAAE;AACV,aAAA,CAAC;AAEF,YAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;gBAChB,GAAG,EAAE,IAAI,CAAC,SAAS;gBACnB,MAAM,EAAE,IAAI,CAAC,SAAS;AACtB,gBAAA,YAAY,EAAE;AACf,aAAA,CAAC;AAEF,YAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;gBAChB,MAAM,EAAE,IAAI,CAAC,SAAS;AACtB,gBAAA,OAAO,EAAC;AACT,aAAA,CAAC;YACF;QACF;QAEA,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;AAC/B,YAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;gBAChB,MAAM,EAAE,IAAI,CAAC,SAAS;AACtB,gBAAA,OAAO,EAAE;AACV,aAAA,CAAC;AAEF,YAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;gBAChB,GAAG,EAAE,IAAI,CAAC,SAAS;AACnB,gBAAA,MAAM,EAAE,CAAC;AACT,gBAAA,YAAY,EAAG;AAChB,aAAA,CAAC;AAEF,YAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;AAChB,gBAAA,OAAO,EAAE;AACV,aAAA,CAAC;YACF;QACF;QAEA,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,EAAE;AAC/B,YAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;AAChB,gBAAA,OAAO,EAAE;AACV,aAAA,CAAC;AAEF,YAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;AAChB,gBAAA,GAAG,EAAE,CAAC;gBACN,MAAM,EAAE,IAAI,CAAC;AACd,aAAA,CAAC;AAEF,YAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;gBAChB,MAAM,EAAE,IAAI,CAAC,SAAS;AACtB,gBAAA,OAAO,EAAE;AACV,aAAA,CAAC;YACF;QACF;QAEA,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;AAChC,YAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;AAChB,gBAAA,OAAO,EAAE;AACV,aAAA,CAAC;AAEF,YAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;AAChB,gBAAA,GAAG,EAAE,CAAC;AACN,gBAAA,MAAM,EAAE;AACT,aAAA,CAAC;AAEF,YAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;AAChB,gBAAA,OAAO,EAAE;AACV,aAAA,CAAC;QACJ;IACF;uGAzIW,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAArB,qBAAqB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,aAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,aAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,WAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,WAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,aAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,aAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECblC,yhBAWA,EAAA,MAAA,EAAA,CAAA,+hBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDJY,OAAO,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,KAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA;;2FAMN,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAVjC,SAAS;+BACE,gBAAgB,EAAA,OAAA,EAGjB,CAAC,OAAO,CAAC,EAAA,eAAA,EACD,uBAAuB,CAAC,KAAK,EAAA,aAAA,EAC/B,iBAAiB,CAAC,IAAI,EAAA,QAAA,EAAA,yhBAAA,EAAA,MAAA,EAAA,CAAA,+hBAAA,CAAA,EAAA;;sBAMpC,SAAS;uBAAC,aAAa;;sBACvB,SAAS;uBAAC,WAAW;;sBACrB,SAAS;uBAAC,aAAa;;;MELb,qBAAqB,CAAA;AAC9B,IAAA,WAAA,GAAA;IACA;uGAFS,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAArB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,qBAAqB,0ECZlC,4PAQA,EAAA,MAAA,EAAA,CAAA,uzBAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,KAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA;;2FDIa,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAVjC,SAAS;+BACI,gBAAgB,EAAA,OAAA,EAGjB,EAAE,EAAA,eAAA,EACM,uBAAuB,CAAC,KAAK,EAAA,aAAA,EAC/B,iBAAiB,CAAC,IAAI,EAAA,QAAA,EAAA,4PAAA,EAAA,MAAA,EAAA,CAAA,uzBAAA,CAAA,EAAA;;;MEE5B,yBAAyB,CAAA;AAClC,IAAA,WAAA,GAAA;IACA;uGAFS,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAzB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,yBAAyB,8ECVtC,2BAAyB,EAAA,MAAA,EAAA,CAAA,mGAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,KAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA;;2FDUZ,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBARrC,SAAS;+BACI,oBAAoB,EAAA,OAAA,EAGrB,EAAE,EAAA,eAAA,EACM,uBAAuB,CAAC,KAAK,EAAA,aAAA,EAC/B,iBAAiB,CAAC,IAAI,EAAA,QAAA,EAAA,2BAAA,EAAA,MAAA,EAAA,CAAA,mGAAA,CAAA,EAAA;;;MEE5B,eAAe,CAAA;AACxB,IAAA,WAAA,GAAA;IACA;uGAFS,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAf,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,eAAe,mECV5B,2BAAyB,EAAA,MAAA,EAAA,CAAA,kOAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,KAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA;;2FDUZ,eAAe,EAAA,UAAA,EAAA,CAAA;kBAR3B,SAAS;+BACI,SAAS,EAAA,OAAA,EAGV,EAAE,EAAA,eAAA,EACM,uBAAuB,CAAC,KAAK,EAAA,aAAA,EAC/B,iBAAiB,CAAC,IAAI,EAAA,QAAA,EAAA,2BAAA,EAAA,MAAA,EAAA,CAAA,kOAAA,CAAA,EAAA;;;MEI5B,wBAAwB,CAAA;IAEnC,KAAK,GAAG,KAAK,CAAS,KAAK;8EAAC;IAC5B,KAAK,GAAG,KAAK,CAAmB,MAAM;8EAAC;AAEvC,IAAA,WAAA,GAAA;QACE,MAAM,CAAC,MAAK;AACV,YAAA,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE;AACtB,YAAA,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE;YACtB,IAAI,CAAC,IAAI,EAAE;AACb,QAAA,CAAC,CAAC;IACJ;IAEA,SAAS,GAAG,MAAM,CAAM,EAAE;kFAAC;IAC3B,UAAU,GAAG,MAAM,CAAM,EAAE;mFAAC;IAGpB,IAAI,GAAA;AACV,QAAA,IAAI,IAAI,CAAC,KAAK,EAAE,IAAI,MAAM,EAAE;AAC1B,YAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC;AACjB,gBAAA,KAAK,EAAE,IAAI,CAAC,KAAK;AAClB,aAAA,CAAC;AAEF,YAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;AAClB,gBAAA,IAAI,EAAE,IAAI,CAAC,KAAK;AACjB,aAAA,CAAC;QACJ;aAAO;AACL,YAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC;AACjB,gBAAA,KAAK,EAAE,IAAI,CAAC,KAAK;AAClB,aAAA,CAAC;AACF,YAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;AAClB,gBAAA,KAAK,EAAE,IAAI,CAAC,KAAK;AAClB,aAAA,CAAC;QACJ;IACF;uGAlCW,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAxB,wBAAwB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECZrC,+OAMA,EAAA,MAAA,EAAA,CAAA,+UAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDCY,OAAO,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,KAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA;;2FAKN,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBATpC,SAAS;+BACE,mBAAmB,EAAA,OAAA,EAGpB,CAAC,OAAO,CAAC,EAAA,eAAA,EACD,uBAAuB,CAAC,KAAK,EAAA,aAAA,EAC/B,iBAAiB,CAAC,IAAI,EAAA,QAAA,EAAA,+OAAA,EAAA,MAAA,EAAA,CAAA,+UAAA,CAAA,EAAA;;;MEsD1B,aAAa,CAAA;uGAAb,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;AAAb,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,YAxCtB,2BAA2B;YAC3B,0BAA0B;YAC1B,eAAe;YACf,qBAAqB;YACrB,yBAAyB;YACzB,wBAAwB;YACxB,eAAe;YACf,yBAAyB;YACzB,qBAAqB;YACrB,sBAAsB;YACtB,kBAAkB;YAClB,gBAAgB;YAChB,gBAAgB;YAChB,iBAAiB;YACjB,eAAe;YACf,kBAAkB;YAClB,mBAAmB;AACnB,YAAA,gBAAgB,aAGhB,2BAA2B;YAC3B,0BAA0B;YAC1B,eAAe;YACf,qBAAqB;YACrB,yBAAyB;YACzB,wBAAwB;YACxB,eAAe;YACf,yBAAyB;YACzB,qBAAqB;YACrB,sBAAsB;YACtB,kBAAkB;YAClB,gBAAgB;YAChB,gBAAgB;YAChB,iBAAiB;YACjB,eAAe;YACf,kBAAkB;YAClB,mBAAmB;YACnB,gBAAgB,CAAA,EAAA,CAAA;wGAGP,aAAa,EAAA,CAAA;;2FAAb,aAAa,EAAA,UAAA,EAAA,CAAA;kBA1CzB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE;wBACP,2BAA2B;wBAC3B,0BAA0B;wBAC1B,eAAe;wBACf,qBAAqB;wBACrB,yBAAyB;wBACzB,wBAAwB;wBACxB,eAAe;wBACf,yBAAyB;wBACzB,qBAAqB;wBACrB,sBAAsB;wBACtB,kBAAkB;wBAClB,gBAAgB;wBAChB,gBAAgB;wBAChB,iBAAiB;wBACjB,eAAe;wBACf,kBAAkB;wBAClB,mBAAmB;wBACnB;AACD,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,2BAA2B;wBAC3B,0BAA0B;wBAC1B,eAAe;wBACf,qBAAqB;wBACrB,yBAAyB;wBACzB,wBAAwB;wBACxB,eAAe;wBACf,yBAAyB;wBACzB,qBAAqB;wBACrB,sBAAsB;wBACtB,kBAAkB;wBAClB,gBAAgB;wBAChB,gBAAgB;wBAChB,iBAAiB;wBACjB,eAAe;wBACf,kBAAkB;wBAClB,mBAAmB;wBACnB;AACD;AACF,iBAAA;;;AC1DK,MAAO,mBAAoB,SAAQ,iBAAiB,CAAA;IAE/C,MAAM,CAAC,IAAiB,EAAE,aAAqB,EAAA;AACtD,QAAA,IAAI,CAAC,IAAI;AAAE,YAAA,OAAO,EAAE;QAEpB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;AACpC,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;AAC3C,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE;AAE/B,QAAA,OAAO,GAAG,GAAG,CAAA,CAAA,EAAI,KAAK,CAAA,CAAA,EAAI,IAAI,EAAE;IAClC;AAES,IAAA,KAAK,CAAC,KAAU,EAAA;QACvB,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;AAAE,YAAA,OAAO,IAAI;QAE3D,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC;AAC9B,QAAA,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;AAAE,YAAA,OAAO,IAAI;QAEnC,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC5B,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;QAClC,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAE7B,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC;AAEvC,QAAA,OAAO,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,GAAG,IAAI,GAAG,IAAI;IAC5C;AAEQ,IAAA,GAAG,CAAC,CAAS,EAAA;AACnB,QAAA,OAAO,CAAC,GAAG,EAAE,GAAG,CAAA,CAAA,EAAI,CAAC,CAAA,CAAE,GAAG,CAAA,EAAG,CAAC,EAAE;IAClC;uGA7BW,mBAAmB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAAnB,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,cADR,MAAM,EAAA,CAAA;;2FACjB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAD/B,UAAU;mBAAC,EAAC,UAAU,EAAC,MAAM,EAAC;;;ACH/B,MAAM,UAAU,GAAG,IAAI,GAAG,EAA6B;AAEhD,MAAM,SAAS,GAAG;AACrB,IAAA,SAAS,EAAE,OAAO;IAClB,MAAM,CAAC,KAAa,EAAE,QAAgB,EAAA;QAEjC,IAAI,SAAS,GAAG,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC;QAExC,IAAI,CAAC,SAAS,EAAE;YACb,SAAS,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE;AAClD,gBAAA,qBAAqB,EAAE,QAAQ;AAC/B,gBAAA,qBAAqB,EAAE,QAAQ;AAC9B,aAAA,CAAC;AAEF,YAAA,UAAU,CAAC,GAAG,CAAC,QAAQ,EAAE,SAAS,CAAC;QACtC;AACD,QAAA,OAAO,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC;IAClC,CAAC;AACD,IAAA,IAAI,CAAC,KAAa,EAAA;QACd,IAAI,SAAS,GAAG,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC;QAEnC,IAAI,CAAC,SAAS,EAAE;YACb,SAAS,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE;AAClD,gBAAA,qBAAqB,EAAE,CAAC;AACxB,gBAAA,qBAAqB,EAAE;AAAG,aAAA,CAAC;AAE3B,YAAA,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC;QAClC;AACD,QAAA,OAAO,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC;IAClC;;;MCGS,eAAe,CAAA;IAElB,aAAa,GAAkB,EAAmB;IAClD,gBAAgB,GAAqB,EAAsB;IAC3D,iBAAiB,GAAsB,EAAuB;IAC9D,KAAK,GAAiB,EAAkB;IACxC,IAAI,GAAa,EAAE;IACnB,IAAI,GAAa,EAAE;IACnB,MAAM,GAAW,EAAE;AAEnB,IAAA,YAAY;AAEpB,IAAA,WAAA,GAAA;AACE,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,OAAO,EAAQ;IACzC;IAEA,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE;IAC1B;IAEA,KAAK,GAAA;QACH,OAAO,IAAI,CAAC,YAAY;IAC1B;AAEA,IAAA,GAAG,CAAC,GAAW,EAAA;QACb,IAAI,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE;AACnC,YAAA,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC;QAChC;QACA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,IAAI,eAAe,CAAwB,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;AACnH,QAAA,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE;AAC3E,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;AACnB,QAAA,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC;IAChC;AAEA,IAAA,KAAK,CAAC,GAAW,EAAA;QACf,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE;AAC5B,YAAA,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;QACzB;QAEA,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;AACzB,QAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAS,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC;AAC5D,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;IACzB;AAEA,IAAA,IAAI,CAAC,OAA2B,EAAA;QAC9B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,OAAO;IACnC;AAEA,IAAA,GAAG,CAAC,GAAW,EAAA;QACb,IAAI,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE;AACtC,YAAA,OAAO,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC;QACnC;QACA,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,IAAI,eAAe,CAAU,KAAK,CAAC;AAChE,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;AACnB,QAAA,OAAO,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC;IACnC;IAEA,IAAI,CAAC,GAAW,EAAE,MAAgB,EAAA;QAChC,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;QAChC,IAAI,QAAQ,IAAI,IAAI,IAAI,QAAQ,IAAI,SAAS,EAAE;YAC7C,QAAQ,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAG;AACjC,gBAAA,CAAC,CAAC,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,IAAI,IAAI;AAClD,YAAA,CAAC,CAAC;AACF,YAAA,MAAM,aAAa,GAAG,QAAQ,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;YAC3F,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,aAAa,EAAE,KAAK,CAAC;QACzC;aAAO;AACL,YAAA,MAAM,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,oCAAoC;QAC9D;IACF;AAEA,IAAA,OAAO,CAAC,GAAW,EAAE,MAAgB,EAAE,KAAc,EAAA;QACnD,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;AACvB,QAAA,IAAI,KAAK,GAAG,GAAG,CAAC,KAAK;AACrB,QAAA,KAAK,CAAC,QAAQ,GAAG,MAAM;AACvB,QAAA,KAAK,CAAC,KAAK,GAAG,KAAK;QAEnB,IAAI,GAAG,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC;AAErC,QAAA,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE;AAC3C,YAAA,GAAG,CAAC,MAAM,GAAG,IAAI;AACjB,YAAA,GAAG,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK;AACvB,YAAA,GAAG,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ;AAC7B,YAAA,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC;QACjB;QAEA,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE;AAC5B,YAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC;QACrC;IACF;AAEA,IAAA,iBAAiB,CAAC,KAAsC,EAAA;AACtD,QAAA,IAAI,KAAK,IAAI,SAAS,EAAE;AACtB,YAAA,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAG,EAAG,CAAC,CAAC,QAAQ,GAAG,KAAK,CAAC,CAAE,CAAC,CAAC;QACpD;IACF;AAEA,IAAA,SAAS,CAAC,CAAS,EAAA;QACjB,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AACrB,QAAA,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK;AACrB,QAAA,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;IACd;IAEA,YAAY,GAAA;AACV,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAG;YACpB,IAAI,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,EAAE;gBAC1C,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;YACtC;AACF,QAAA,CAAC,CAAC;IACJ;IAEQ,MAAM,CAAC,IAA2B,EAAC,IAA2B,EAAA;AACpE,QAAA,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK;AAAE,YAAA,OAAO,KAAK;QAC1C,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM;AAAE,YAAA,OAAO,KAAK;AAE9D,QAAA,KAAK,IAAI,CAAC,GAAC,CAAC,EAAC,CAAC,GAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAC,CAAC,EAAE,EAAE;AACvC,YAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE;AACxC,gBAAA,OAAO,KAAK;YACd;QACF;AACA,QAAA,OAAO,IAAI;IACb;uGAxHW,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAAf,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,cADJ,MAAM,EAAA,CAAA;;2FACjB,eAAe,EAAA,UAAA,EAAA,CAAA;kBAD3B,UAAU;mBAAC,EAAC,UAAU,EAAC,MAAM,EAAC;;;MCVlB,SAAS,CAAA;AAEZ,IAAA,eAAe,GAAoB,MAAM,CAAC,eAAe,CAAC;AAEhE,IAAA,KAAK,GAAG,KAAK;yFAAU;IACvB,gBAAgB,GAAG,KAAK,CAAU,KAAK;yFAAC;AACxC,IAAA,KAAK,GAAG,KAAK;yFAAsB;AACnC,IAAA,IAAI,GAAG,KAAK;wFAAU;IACtB,KAAK,GAAG,MAAM,EAAQ;IACtB,KAAK,GAAG,MAAM,EAAQ;AACtB,IAAA,MAAM,GAAG,KAAK;0FAAU;AAExB,IAAA,KAAK;IACL,IAAI,GAAkB,EAAE;AAExB,IAAA,OAAO;IAEP,OAAO,GAAyB,EAAE;IAElC,IAAI,GAAuB,IAAI;IAE/B,KAAK,GAAY,KAAK;AACtB,IAAA,MAAM;AAER,IAAA,WAAA,GAAA;IACA;IAEA,QAAQ,GAAA;AACN,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,EAAE;AAE5B,QAAA,IAAI,OAAO,IAAI,IAAI,EAAE;AACnB,YAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,IAAG;AACjE,gBAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,IAAI,IAAI,CAAC;AACvD,YAAA,CAAC,CAAC;AAEF,YAAA,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,SAAS,CAAC,CAAC,IAAG;AACzC,gBAAA,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,IAAI,IAAI,CAAC;gBAC7C,IAAI,CAAC,UAAU,EAAE;AACnB,YAAA,CAAC,CAAC;QACJ;aAAO;AACL,YAAA,IAAI,CAAC,KAAK,EAAE,WAAW,EAAE;AACzB,YAAA,IAAI,CAAC,OAAO,EAAE,WAAW,EAAE;AAC3B,YAAA,IAAI,CAAC,MAAM,EAAE,WAAW,EAAE;AAC1B,YAAA,IAAI,CAAC,IAAI,GAAG,EAAE;YACd,IAAI,CAAC,UAAU,EAAE;QACnB;IACF;IAEA,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,KAAK,EAAE,WAAW,EAAE;AACzB,QAAA,IAAI,CAAC,MAAM,EAAE,WAAW,EAAE;AAC1B,QAAA,IAAI,CAAC,OAAO,EAAE,WAAW,EAAE;IAC7B;IAEA,OAAO,GAAA;AACL,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;IACnB;IAEA,OAAO,GAAA;AACL,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;IACnB;AAEA,IAAA,MAAM,CAAC,CAAc,EAAA;AACnB,QAAA,IAAI,CAAC,IAAI,GAAG,CAAC;IACf;IAEA,KAAK,GAAA;AACH,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI;IAClB;IAEA,MAAM,CAAC,CAAQ,EAAE,CAAc,EAAA;QAC7B,CAAC,CAAC,wBAAwB,EAAE;AAC5B,QAAA,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE;QACvB,IAAI,EAAE,EAAE;AACN,YAAA,CAAC,CAAC,QAAQ,GAAG,KAAK;AAClB,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,IAAI,IAAI,CAAC;AACrD,YAAA,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;AACnE,YAAA,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,KAAK,CAAC;YAC/C,IAAI,CAAC,UAAU,EAAE;QACnB;IACF;IAEQ,UAAU,GAAA;AAChB,QAAA,IAAI,CAAC,OAAO,GAAG,EAAE;QACjB,IAAI,SAAS,GAAmC,SAAS;QACzD,MAAM,MAAM,GAAyB,EAAE;AAEvC,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAG;AACpB,YAAA,IAAI,CAAC,CAAC,QAAQ,IAAI,IAAI,EAAE;AACtB,gBAAA,IAAI,SAAS,IAAI,SAAS,EAAE;AAC1B,oBAAA,SAAS,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE;AAC1C,oBAAA,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;oBACtB;gBACF;gBACA,IAAI,SAAS,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,EAAE;AAC9B,oBAAA,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;oBACvB;gBACF;AAEA,gBAAA,SAAS,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE;AAC1C,gBAAA,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;YACxB;AACF,QAAA,CAAC,CAAC;AACF,QAAA,IAAI,CAAC,OAAO,GAAG,MAAM;IACvB;uGAxGW,SAAS,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAT,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,SAAS,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,gBAAA,EAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECrBtB,2/CA6BK,EAAA,MAAA,EAAA,CAAA,ylBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDVS,OAAO,2IAAC,QAAQ,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,cAAA,EAAA,gBAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,KAAA,EAAA,CAAA;;2FAEjB,SAAS,EAAA,UAAA,EAAA,CAAA;kBAPrB,SAAS;+BACI,YAAY,EAAA,eAAA,EAGL,uBAAuB,CAAC,KAAK,WACrC,CAAC,OAAO,EAAC,QAAQ,CAAC,EAAA,QAAA,EAAA,2/CAAA,EAAA,MAAA,EAAA,CAAA,ylBAAA,CAAA,EAAA;;;yBEnBlB,UAAU,CAAA;IACnB,WAAW,GAA8B,YAAY;IACrD,GAAG,GAAW,EAAE;IAChB,MAAM,GAAW,EAAE;IACnB,MAAM,GAAW,EAAE;IACnB,IAAI,GAAW,EAAE;IACjB,KAAK,GAAW,EAAE;IAClB,KAAK,GAAW,EAAE;IAClB,KAAK,GAAW,EAAE;IAClB,WAAW,GAAW,EAAE;IACxB,GAAG,GAAY,KAAK;IACpB,KAAK,GAAW,CAAC;IACT,YAAY,GAAW,CAAC;IACxB,aAAa,GAAW,CAAC;IAEjC,MAAM,CAAC,WAAoB,KAAK,EAAA;AAC5B,QAAA,IAAI,CAAC,KAAK,GAAG,EAAE;QACf,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC;QACzB,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC;QAC/B,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC;QAC/B,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC;QAC3B,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC;QAC7B,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC;QAE7B,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,WAAW,IAAI,UAAU,EAAE;YAC7C,IAAI,CAAC,WAAW,GAAG,QAAQ,GAAG,IAAI,CAAC,KAAK;AACxC,YAAA,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAC,EAAE,CAAC,CAAC;QAC3D;QAEA,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,WAAW,IAAI,YAAY,EAAE;YAC/C,IAAI,CAAC,WAAW,GAAG,OAAO,GAAG,IAAI,CAAC,MAAM;AACxC,YAAA,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAC,EAAE,CAAC,CAAC;QAC7D;IACJ;IAEQ,GAAG,CAAC,CAAS,EAAE,CAAS,EAAA;AAC5B,QAAA,IAAI,CAAC,IAAI,EAAE,EAAE;YACT,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;AACvB,gBAAA,IAAI,CAAC,KAAK,IAAI,GAAG;YACrB;YACA,IAAI,CAAC,KAAK,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC;QAC9B;IACJ;IAEA,MAAM,CAAC,KAAa,EAAE,IAAgB,EAAA;AAElC,QAAA,IAAI,IAAI,CAAC,WAAW,IAAI,UAAU,EAAE;;;AAGhC,YAAA,MAAM,QAAQ,GAAI,IAAI,CAAC,YAAY,GAAG,KAAK;AAC3C,YAAA,IAAI,CAAC,KAAK,GAAG,QAAQ,GAAG,IAAI;AAC5B,YAAA,IAAI,CAAC,IAAI,GAAG,QAAQ,GAAG,IAAI;AAC3B,YAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;AACjB,YAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;QACrB;AAEA,QAAA,IAAI,IAAI,CAAC,WAAW,IAAI,YAAY,EAAE;AAClC,YAAA,MAAM,SAAS,GAAI,IAAI,CAAC,aAAa,GAAG,KAAK;AAC7C,YAAA,IAAI,CAAC,MAAM,GAAG,SAAS,GAAG,IAAI;AAC9B,YAAA,IAAI,CAAC,GAAG,GAAG,SAAS,GAAG,IAAI;AAC3B,YAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;AACjB,YAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;QACrB;IACJ;IAEA,SAAS,GAAA;AACL,QAAA,IAAI,IAAI,CAAC,WAAW,IAAI,UAAU,EAAE;AAChC,YAAA,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAC,EAAE,CAAC,CAAC;QAC3D;AAEA,QAAA,IAAI,IAAI,CAAC,WAAW,IAAI,YAAY,EAAE;AAClC,YAAA,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAC,EAAE,CAAC,CAAC;QAC7D;IACJ;AACH;;MCvDY,WAAW,CAAA;IAEpB,OAAO,GAAG,KAAK,CAAS,EAAE,+EAAI,KAAK,EAAE,QAAQ,EAAA,CAAG;IAChD,YAAY,GAAG,KAAK,CAA4B,YAAY,oFAAG,KAAK,EAAE,aAAa,EAAA,CAAE;IACrF,WAAW,GAAG,KAAK,CAAU,KAAK,mFAAI,KAAK,EAAC,YAAY,EAAA,CAAG;IAE3D,MAAM,GAAG,MAAM,CAAS,EAAE;+EAAC;IAC3B,WAAW,GAAG,MAAM,CAA4B,YAAY;oFAAC;IAC7D,UAAU,GAAG,MAAM,CAAU,KAAK;mFAAC;IAG3B,WAAW,GAAW,CAAC;IACvB,UAAU,GAAW,CAAC;IAEtB,IAAI,GAAe,IAAI;IAEvB,UAAU,GAAG,MAAM,CAAe,EAAE;mFAAC;IACrC,OAAO,GAAG,MAAM,CAAS,CAAC;gFAAC;AACnC,IAAA,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE;IAEhC,eAAe,GAAY,KAAK;AAExC,IAAA,MAAM,GAAG,QAAQ,CAAC,MAAK,EAAG,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA,CAAC,CAAC;+EAAC;AACpD,IAAA,MAAM,GAAG,QAAQ,CAAC,MAAK,EAAG,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA,CAAC,CAAC;+EAAC;AACpD,IAAA,MAAM,GAAG,QAAQ,CAAC,MAAK,EAAG,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA,CAAC,CAAC;+EAAC;AACpD,IAAA,MAAM,GAAG,QAAQ,CAAC,MAAK,EAAG,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA,CAAC,CAAC;+EAAC;AACpD,IAAA,MAAM,GAAG,QAAQ,CAAC,MAAK,EAAG,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA,CAAC,CAAC;+EAAC;AAE5C,IAAA,QAAQ,CAAC,CAAS,EAAA;AACtB,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE;AAC/B,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE;AAG7B,QAAA,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;AACnB,YAAA,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE;QACzD;QACA,OAAO,EAAE,KAAK,EAAE,gBAAgB,EAAE,GAAG,EAAE,KAAK,EAAE;IAClD;AAGQ,IAAA,OAAO,GAAe,MAAM,CAAC,UAAU,CAAC;AAElD,IAAA,WAAA,GAAA;QACE,MAAM,CAAC,MAAK;YACR,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAC/B,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YACzC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;AAEvC,YAAA,IAAI,IAAI,CAAC,eAAe,EAAE;gBACtB,IAAI,CAAC,MAAM,EAAE;YACjB;AACJ,QAAA,CAAC,CAAC;IACJ;AAEQ,IAAA,cAAc;IAEtB,eAAe,GAAA;QACb,IAAI,CAAC,cAAc,GAAG,IAAI,cAAc,CAAC,OAAO,IAAG;YAC/C,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK;AAE1C,YAAA,IAAI,KAAK,GAAG,CAAC,EAAE;gBACb,IAAI,CAAC,MAAM,EAAE;AACb,gBAAA,IAAI,CAAC,eAAe,GAAG,IAAI;YAC7B;AACF,QAAA,CAAC,CAAC;QAEF,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC;IAC7D;IAEE,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,cAAc,EAAE,UAAU,EAAE;IAEnC;IAEQ,MAAM,GAAA;QACZ,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,WAAW;QACxD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,YAAY;QAE1D,MAAM,aAAa,GAAiB,EAAE;;QAGtC,IAAI,IAAI,CAAC,UAAU,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE;YACxE,MAAM,EAAE,GAAa,EAAE;YACvB,IAAI,IAAI,GAAG,CAAC;AACZ,YAAA,IAAI,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,IAAG;AACjC,gBAAA,IAAI,CAAC,IAAI,GAAG,EAAE;AACV,oBAAA,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;oBACV;gBACJ;gBAEA,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;AACtB,oBAAA,IAAI,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;AAC5B,oBAAA,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;oBACV;gBACJ;gBACA,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;AAChC,gBAAA,IAAI,IAAI,CAAC,WAAW,EAAE,IAAI,UAAU,EAAE;AAClC,oBAAA,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,GAAG,GAAG,GAAG,GAAG,CAAC;oBACpD,IAAI,IAAI,IAAI;oBACZ,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC;gBACnC;qBAAO;AACH,oBAAA,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,GAAG,GAAG,GAAG,GAAG,CAAC;oBACrD,IAAI,IAAI,IAAI;oBACZ,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC;gBACnC;AACJ,YAAA,CAAC,CAAC;AAEF,YAAA,IAAI,IAAI,GAAG,IAAI,CAAC,WAAW,GAAG,IAAI;AAClC,YAAA,IAAI,IAAI,CAAC,WAAW,EAAE,IAAI,UAAU,EAAE;AAClC,gBAAA,IAAI,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI;YACjC;YAEA,IAAI,SAAS,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC;AAC/B,YAAA,IAAI,SAAS,IAAI,CAAC,IAAI,SAAS,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE;gBAC/C,EAAE,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,IAAI;gBACtC,EAAE,CAAC,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,GAAG;YAC3B;AAEA,YAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACjC;QAEA,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE;AAC1B,YAAA,IAAI,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE;AAC/B,YAAA,IAAI,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM;AAEnD,YAAA,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;AACpB,gBAAA,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC;YAC7D;YAEA,IAAI,IAAI,GAAqB,KAAK;YAClC,IAAI,aAAa,GAAW,CAAC;AAE7B,YAAA,IAAI,SAAS,GAAG,CAAC,EAAE;AACf,gBAAA,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC;YAC3D;AAEA,YAAA,KAAK,IAAI,CAAC,GAAC,CAAC,EAAC,CAAC,GAAC,OAAO,CAAC,MAAM,EAAC,CAAC,EAAE,EAAE;AAC/B,gBAAA,IAAI,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC;AACpB,gBAAA,IAAI,IAAI,GAAG,IAAIA,YAAU,EAAE;AAC3B,gBAAA,IAAI,CAAC,KAAK,GAAG,CAAC;AACd,gBAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,EAAE;gBAErC,IAAI,GAAG,GAAG,CAAC,IAAI,IAAI,IAAI,KAAK,EAAE;AAE1B,oBAAA,IAAI,IAAI,CAAC,WAAW,EAAE,IAAI,YAAY,EAAE;AACpC,wBAAA,IAAI,CAAC,GAAG,GAAG,aAAa,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC;wBAChE,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,IAAI;oBAC5C;yBAAO;AACH,wBAAA,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC;wBACjE,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,IAAI;oBAC3C;oBACA,aAAa,IAAI,GAAG;AACpB,oBAAA,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;oBACxB;gBACJ;AAEA,gBAAA,IAAI,GAAG,IAAI,CAAC,CAAC,EAAE;oBACX,IAAI,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;AACnC,oBAAA,IAAI,IAAI,CAAC,WAAW,EAAE,IAAI,YAAY,EAAE;AACpC,wBAAA,IAAI,CAAC,GAAG,GAAG,aAAa,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC;AAChE,wBAAA,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;oBACnD;yBAAO;AACH,wBAAA,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC;AACjE,wBAAA,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;oBAClD;AACA,oBAAA,IAAI,CAAC,GAAG,GAAG,IAAI;AACf,oBAAA,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;oBACxB,IAAI,GAAG,QAAQ;oBACf;gBACJ;gBAEA,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,QAAQ,EAAE;oBAC9B,IAAI,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAC,CAAC,CAAC;AAClC,oBAAA,IAAI,IAAI,CAAC,WAAW,EAAE,IAAI,YAAY,EAAE;AACpC,wBAAA,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;wBAC/C,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,IAAI;oBAC5C;yBAAO;AACH,wBAAA,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;wBAC9C,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,IAAI;oBAC3C;AACA,oBAAA,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;oBACxB;gBACJ;AACA,gBAAA,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC;YACpD;AAEA,YAAA,aAAa,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;AACtC,YAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,aAAa,CAAC;QACtC;IACF;IAEA,MAAM,CAAC,CAAM,EAAE,KAAiB,EAAA;AAC9B,QAAA,MAAM,CAAC,GAAG,CAAC,CAAC,UAAU,CAAc;AACpC,QAAA,IAAI,KAAK,CAAC,WAAW,IAAI,UAAU,EACnC;AACI,YAAA,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;QACzD;AAEA,QAAA,IAAI,KAAK,CAAC,WAAW,IAAI,YAAY,EAAE;AACnC,YAAA,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;QACzD;AAEA,QAAA,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE;QACxB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;IACzB;IAEA,IAAI,CAAC,CAAM,EAAE,KAAiB,EAAA;QAC5B,KAAK,CAAC,SAAS,EAAE;IACnB;AAEQ,IAAA,MAAM,CAAC,CAAS,EAAA;AACtB,QAAA,IAAI,CAAC,GAAG,CAAC,EAAE;YACP,OAAO,IAAI,CAAC,IAAI;QACpB;AACA,QAAA,OAAO,EAAE;IACX;IAEQ,UAAU,GAAA;AAChB,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI;QAChB,IAAI,MAAM,GAAG,EAAc;QAC3B,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE;YAC1B,IAAI,YAAY,GAAG,KAAK;AACxB,YAAA,IAAI,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,IAAG;gBACjC,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;oBACtB,IAAI,YAAY,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,EAAE;wBACnC,MAAM,IAAI,KAAK,CAAC,6EAA6E,GAAG,IAAI,CAAC,IAAI,CAAC;oBAC9G;AACA,oBAAA,IAAI,CAAC,IAAI,GAAG,IAAI;oBAChB,YAAY,GAAG,IAAI;gBACvB;gBAEA,IAAI,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;oBACrB,IAAI,YAAY,IAAI,IAAI,CAAC,IAAI,IAAI,GAAG,EAAE;wBAClC,MAAM,IAAI,KAAK,CAAC,6EAA6E,GAAG,IAAI,CAAC,IAAI,CAAC;oBAC9G;AACA,oBAAA,IAAI,CAAC,IAAI,GAAG,GAAG;oBACf,YAAY,GAAG,IAAI;gBACvB;AACA,gBAAA,IAAI,CAAC,IAAI,GAAG,EAAE;AACV,oBAAA,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBACnB;qBAAO;oBACH,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;gBACrC;AACJ,YAAA,CAAC,CAAC;QACN;AACA,QAAA,OAAO,MAAM;IACf;AAEQ,IAAA,YAAY,CAAC,CAAS,EAAA;AAC5B,QAAA,OAAO,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAC,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,EAAC,EAAE,CAAC,CAAC;IACnD;IAGQ,QAAQ,CAAC,OAAiB,EAAE,KAAa,EAAA;QAC/C,IAAI,MAAM,GAAG,CAAC;AACd,QAAA,KAAK,IAAI,CAAC,GAAC,KAAK,GAAC,CAAC,EAAC,CAAC,GAAC,OAAO,CAAC,MAAM,EAAC,CAAC,EAAE,EAAE;AACrC,YAAA,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC;QACxB;AACA,QAAA,OAAO,MAAM;IACf;uGAnQW,WAAW,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAX,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,WAAW,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,YAAA,EAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECnBxB,ogDAkBA,EAAA,MAAA,EAAA,CAAA,2rBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDDc,OAAO,wcAAC,OAAO,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,KAAA,EAAA,CAAA;;2FAEhB,WAAW,EAAA,UAAA,EAAA,CAAA;kBAPvB,SAAS;+BACI,cAAc,EAAA,eAAA,EAGP,uBAAuB,CAAC,KAAK,WACrC,CAAC,OAAO,EAAC,OAAO,CAAC,EAAA,QAAA,EAAA,ogDAAA,EAAA,MAAA,EAAA,CAAA,2rBAAA,CAAA,EAAA;;;MERjB,UAAU,CAAA;AACrB,IAAA,WAAA,GAAA;IACA;uGAFW,UAAU,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAV,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAU,uECTvB,2BAAyB,EAAA,MAAA,EAAA,CAAA,uGAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,KAAA,EAAA,CAAA;;2FDSZ,UAAU,EAAA,UAAA,EAAA,CAAA;kBAPtB,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,aAAa,EAAA,eAAA,EAGN,uBAAuB,CAAC,KAAK,WACrC,EAAE,EAAA,QAAA,EAAA,2BAAA,EAAA,MAAA,EAAA,CAAA,uGAAA,CAAA,EAAA;;;MEIF,SAAS,CAAA;AAEZ,IAAA,IAAI,GAAe,MAAM,CAAC,UAAU,CAAC;IAC3C,KAAK,GAAG,KAAK,CAAS,EAAE,6EAAI,KAAK,EAAE,MAAM,EAAA,CAAG;IAC9C,QAAQ,GAAG,KAAK,CAAU,KAAK;iFAAC;IAChC,IAAI,GAAG,KAAK,CAAe,KAAK;6EAAC;AACjC,IAAA,IAAI,GAAG,KAAK;wFAAmC;IAE/C,IAAI,GAAG,MAAM,CAAS,EAAE;6EAAC;AAEzB,IAAA,OAAO,GAAG,QAAQ,CAAC,MAAK;AACtB,QAAA,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE;AACrB,QAAA,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE;AACzB,QAAA,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE;AACrB,QAAA,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE;QAErB,MAAM,GAAG,GAAG,EAAc;QAE1B,IAAI,CAAC,EAAE;AACL,YAAA,GAAG,CAAC,IAAI,CAAC,GAAG,GAAC,CAAC,CAAC;QACjB;QAEA,IAAI,CAAC,EAAE;AACL,YAAA,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC;QACtB;AAEA,QAAA,IAAI,CAAC,IAAI,KAAK,EAAE;AACd,YAAA,OAAO,GAAG;QACZ;AAEA,QAAA,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;AACd,QAAA,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;AACX,QAAA,OAAO,GAAG;IACZ,CAAC;gFAAC;AAEF,IAAA,WAAA,GAAA;QACE,MAAM,CAAC,MAAK;AACV,YAAA,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE;AACtB,YAAA,IAAI,CAAC,IAAI,EAAE,EAAE;AACX,gBAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YAClB;AACF,QAAA,CAAC,CAAC;IACJ;IAEA,kBAAkB,GAAA;AAChB,QAAA,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE;AACtB,QAAA,IAAI,CAAC,IAAI,EAAE,EAAE;AACX,YAAA,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE;AACjE,YAAA,IAAI,OAAO,IAAI,EAAE,EAAE;AACjB,gBAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC;YACxB;QACF;IACF;uGApDW,SAAS,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAT,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,SAAS,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECXtB,2SAQC,EAAA,MAAA,EAAA,CAAA,qJAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDCa,OAAO,oFAAC,OAAO,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,KAAA,EAAA,CAAA;;2FAEhB,SAAS,EAAA,UAAA,EAAA,CAAA;kBAPrB,SAAS;+BACI,YAAY,EAAA,eAAA,EAGL,uBAAuB,CAAC,KAAK,WACrC,CAAC,OAAO,EAAC,OAAO,CAAC,EAAA,QAAA,EAAA,2SAAA,EAAA,MAAA,EAAA,CAAA,qJAAA,CAAA,EAAA;;;MEDjB,oBAAoB,CAAA;IAC7B,WAAW,GAAG,KAAK,CAAC,QAAQ;oFAAmB;IAE/C,aAAa,GAAA;AACT,QAAA,MAAM,EAAE,GAAG,IAAI,CAAC,WAAW,EAAE;QAC7B,IAAI,EAAE,EAAE;AACJ,YAAA,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;AAC3B,YAAA,MAAM,EAAE,GAAG,EAAE,CAAC,SAAS;YAEvB,IAAI,EAAE,EAAE;AACJ,gBAAA,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;YACf;QACJ;IACJ;uGAbS,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAApB,oBAAoB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA,aAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;2FAApB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBALhC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,eAAe;AACzB,oBAAA,QAAQ,EAAE,aAAa;AACvB,oBAAA,UAAU,EAAE,IAAI;AACnB,iBAAA;;;MCCY,kBAAkB,CAAA;IAC3B,SAAS,GAAG,KAAK,CAAC,QAAQ;kFAAQ;uGADzB,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAlB,kBAAkB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;2FAAlB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAL9B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,aAAa;AACvB,oBAAA,QAAQ,EAAE,WAAW;AACrB,oBAAA,UAAU,EAAE,IAAI;AACnB,iBAAA;;;ACYM,MAAM,cAAc,GAAG,CAAC,SAAS,EAAC,WAAW,EAAC,WAAW,EAAC,YAAY,EAAC,QAAQ,EAAC,KAAK,EAAC,OAAO,EAAC,WAAW,EAAC,QAAQ,EAAC,KAAK,EAAC,MAAM,EAAC,OAAO,EAAC,UAAU,EAAC,QAAQ,EAAC,QAAQ,EAAC,UAAU,EAAC,UAAU,EAAC,UAAU;AACrM,MAAM,OAAO,GAAG,CAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG;AACxD,MAAM,QAAQ,GAAG,CAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG;AAC7D,MAAM,SAAS,GAAG,CAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG;MAUpC,UAAU,CAAA;AACM,IAAA,aAAa;AACV,IAAA,eAAe;AACnB,IAAA,gBAAgB;AAChB,IAAA,OAAO;AACG,IAAA,mBAAmB;AAE7C,IAAA,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;AACzB,IAAA,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,CAAC;AAC3C,IAAA,UAAU;AAEV,IAAA,WAAW,GAAG,MAAM,CAAC,oBAAoB,EAAE,EAAC,QAAQ,EAAE,IAAI,EAAC,IAAI,EAAE,IAAI,EAAE,CAAC;AACxE,IAAA,SAAS,GAAG,MAAM,CAAC,kBAAkB,EAAE,EAAC,QAAQ,EAAE,IAAI,EAAC,IAAI,EAAE,IAAI,EAAE,CAAC;AAEpE,IAAA,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;AAC/B,IAAA,SAAS;IAEjB,KAAK,GAAG,KAAK,CAAS,EAAE;8EAAC;IACzB,WAAW,GAAG,KAAK,CAAgC,SAAS,mFAAG,KAAK,EAAE,aAAa,EAAA,CAAE;AAErF,IAAA,UAAU,GAAG,QAAQ,CAAC,MAAK;AACzB,QAAA,MAAM,EAAE,GAAG,IAAI,CAAC,WAAW,EAAE;AAC7B,QAAA,IAAI,EAAE;AAAE,YAAA,OAAO,EAAE;AACjB,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,IAAI,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC,SAAS,IAAI,OAAO;AAAE,gBAAA,OAAO,IAAI;YAChE,IAAI,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC,SAAS,IAAI,OAAO;AAAE,gBAAA,OAAO,OAAO;QACrE;AACA,QAAA,OAAO,KAAK;IACd,CAAC;mFAAC;IAEF,WAAW,GAAG,KAAK,CAAS,EAAE;oFAAC;IAE/B,KAAK,GAAG,KAAK,CAAsD,IAAI;8EAAC;IACxE,SAAS,GAAG,KAAK,CAAsB,SAAS,iFAAI,KAAK,EAAE,UAAU,EAAA,CAAE;AACvE,IAAA,QAAQ,GAAG,QAAQ,CAAC,MAAK;AAEvB,QAAA,MAAM,CAAC,GAAG,IAAI,CAAC,SAAS,EAAE;AAC1B,QAAA,IAAI,CAAC,IAAI,SAAS,EAAE;AAClB,YAAA,OAAO,CAAC;QACV;AAEA,QAAA,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC,QAAQ,IAAI,SAAS,EAAE;YACtE,OAAO,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC,QAAQ,IAAI,KAAK;QACrD;AAEA,QAAA,OAAO,KAAK;IACd,CAAC;iFAAC;IAEF,SAAS,GAAG,KAAK,CAAsB,SAAS,iFAAG,KAAK,EAAE,UAAU,EAAA,CAAE;AACtE,IAAA,QAAQ,GAAG,QAAQ,CAAC,MAAK;AACvB,QAAA,MAAM,EAAE,GAAG,IAAI,CAAC,SAAS,EAAE;AAC3B,QAAA,IAAI,EAAE,IAAI,SAAS,EAAE;AACnB,YAAA,OAAO,EAAE;QACX;AAEA,QAAA,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC,QAAQ,IAAI,SAAS,EAAE;YACtE,OAAO,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC,QAAQ,IAAI,IAAI;QACpD;AACA,QAAA,OAAO,IAAI;IACb,CAAC;iFAAC;IAEF,QAAQ,GAAG,KAAK,CAAU,KAAK;iFAAC;IAChC,IAAI,GAAG,KAAK,CAA8C,MAAM;6EAAC;IACjE,QAAQ,GAAG,KAAK,CAAU,KAAK;iFAAC;IAChC,YAAY,GAAG,KAAK,CAAyB,IAAI;qFAAC;IAClD,UAAU,GAAG,KAAK,CAAuB,IAAI;mFAAC;IAC9C,QAAQ,GAAG,KAAK,CAA0B,SAAS;iFAAC;IACpD,cAAc,GAAG,KAAK,CAAwB,IAAI;uFAAC;IACnD,eAAe,GAAG,KAAK,CAAyB,IAAI;wFAAC;IACrD,QAAQ,GAAG,MAAM,EAA2B;IAC5C,KAAK,GAAG,KAAK,CAAU,KAAK;8EAAC;IAC7B,QAAQ,GAAG,KAAK,CAAoD,IAAI;iFAAC;IACzE,QAAQ,GAAG,KAAK,CAAqB,SAAS;iFAAC;IAC/C,YAAY,GAAG,MAAM,CAAO,EAAE,KAAK,EAAC,OAAO,EAAE,CAAC;IAC9C,WAAW,GAAG,MAAM,CAAO,EAAC,KAAK,EAAE,MAAM,EAAC,CAAC;IAC3C,KAAK,GAAG,MAAM,EAAQ;IACtB,UAAU,GAAG,KAAK,CAAU,IAAI;mFAAC;IACjC,IAAI,GAAG,KAAK,CAAgB,IAAI;6EAAC;IACjC,OAAO,GAAG,KAAK,CAAU,KAAK;gFAAC;IAC/B,gBAAgB,GAAG,KAAK,CAAsB,SAAS,wFAAI,KAAK,EAAE,iBAAiB,EAAA,CAAG;IACtF,QAAQ,GAAG,KAAK,CAAU,IAAI;iFAAC;IAE/B,OAAO,GAAG,KAAK,CAAgB,IAAI;gFAAC;IACpC,QAAQ,GAAG,MAAM,EAAQ;AAEzB,IAAA,eAAe,GAAG,QAAQ,CAAC,MAAK;AAC9B,QAAA,MAAM,EAAE,GAAG,IAAI,CAAC,gBAAgB,EAAE;AAClC,QAAA,IAAI,EAAE,IAAI,SAAS,EAAE;AACnB,YAAA,OAAO,EAAE;QACX;AAEA,QAAA,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC,eAAe,IAAI,SAAS,EAAE;YAC7E,OAAO,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC,eAAe,IAAI,KAAK;QAC5D;AACA,QAAA,OAAO,KAAK;IACd,CAAC;wFAAC;AAEF,IAAA,YAAY,GAAG,KAAK;gGAAuD;IAE3E,YAAY,GAAG,MAAM,EAAU;IAC/B,OAAO,GAAG,MAAM,EAAQ;IAExB,QAAQ,GAAG,KAAK,CAAgB,IAAI;iFAAC;IACrC,SAAS,GAAG,MAAM,EAAQ;IAE1B,aAAa,GAAG,KAAK,CAAC,CAAC;sFAAC;IACxB,SAAS,GAAG,KAAK,CAAgB,IAAI;kFAAC;IAEtC,QAAQ,GAAG,MAAM,CAAC,KAAK;iFAAC;IACxB,MAAM,GAAW,EAAE;;IAGnB,QAAQ,GAAG,MAAM,CAAgB,EAAE;iFAAC;IACpC,SAAS,GAAG,MAAM,CAAC,KAAK;kFAAC;IACzB,YAAY,GAAe,IAAI;IAC/B,YAAY,GAAW,CAAC;AAExB,IAAA,OAAO;IACP,YAAY,GAAW,CAAC,CAAC;IAEzB,WAAW,GAAG,MAAM,CAAS,EAAE;oFAAC;IAChC,UAAU,GAAG,MAAM,CAAc,IAAI;mFAAC;IAEtC,UAAU,GAAG,MAAM,CAAU,KAAK;mFAAC;AAEnC,IAAA,QAAQ,GAAG,QAAQ,CAAC,MAAK;AACvB,QAAA,MAAM,CAAC,GAAG,IAAI,CAAC,UAAU,EAAE;AAC3B,QAAA,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC;AAAE,YAAA,OAAO,IAAI;AAClC,QAAA,OAAO,KAAK;IACd,CAAC;iFAAC;AAEF,IAAA,QAAQ,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,QAAQ,EAAE,IAAI,SAAS,IAAI,IAAI,CAAC,QAAQ,EAAE,IAAI,QAAQ;iFAAC;AAEtF,IAAA,YAAY,GAAG,QAAQ,CAAC,MAAK;AAC3B,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AAAE,YAAA,OAAO,IAAI,CAAC,IAAI,EAAE;QACxC,OAAO,IAAI,CAAC,IAAI,EAAE,GAAG,GAAG,GAAG,QAAQ;IACrC,CAAC;qFAAC;AAEJ,IAAA,WAAA,GAAA;AACE,QAAA,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,MAAK;AAC7B,YAAA,IAAI,IAAI,CAAC,SAAS,EAAE;AAClB,gBAAA,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC;YAC9B;AACF,QAAA,CAAC,CAAC;QAEF,MAAM,CAAC,MAAK;AACV,YAAA,MAAM,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE;AAC1B,YAAA,IAAI,EAAE,IAAI,IAAI,EAAE;AACd,gBAAA,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;gBACvB,UAAU,CAAC,MAAK;AACd,oBAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC;gBAC1B,CAAC,EAAC,EAAE,CAAC;YACP;AACF,QAAA,CAAC,CAAC;QAEF,MAAM,CAAC,MAAK;AACV,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE;AACxB,YAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE;YAChC,IAAI,IAAI,IAAI,QAAQ,IAAI,QAAQ,IAAI,IAAI,EAAE;AACxC,gBAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC;YAC9B;YAEA,IAAI,IAAI,IAAI,UAAU,IAAI,QAAQ,IAAI,UAAU,EAAE;AAChD,gBAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC;YAC/B;AACF,QAAA,CAAC,CAAC;QAEF,MAAM,CAAC,MAAK;AACV,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE;AAC1B,YAAA,IAAI,KAAK,IAAI,IAAI,EAAE;AACjB,gBAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC;AACxB,gBAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC;AACzB,gBAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC;gBAC1B;YACF;AAEA,YAAA,IAAI,IAAI,CAAC,QAAQ,EAAE,IAAI,SAAS,IAAI,IAAI,CAAC,QAAQ,EAAE,IAAI,QAAQ,EAAE;gBAC/D,IAAI,CAAC,oBAAoB,EAAE;gBAC3B;YACF;AAEA,YAAA,IAAI,IAAI,CAAC,QAAQ,EAAE,IAAI,MAAM,EAAE;AAC7B,gBAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAa,CAAC;gBAClC;YACF;AAEA,YAAA,IAAI,IAAI,CAAC,QAAQ,EAAE,IAAI,UAAU,EAAE;AACjC,gBAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAgB,CAAC;gBACrC;YACF;YAEA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;AACxC,QAAA,CAAC,CAAC;QAEF,MAAM,CAAC,MAAI;AACT,YAAA,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,EAAE;YAC3B,IAAI,GAAG,EAAE;gBACP,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;YACtC;AACF,QAAA,CAAC,CAAC;QAEF,MAAM,CAAC,MAAK;AACV,YAAA,MAAM,GAAG,GAAG,IAAI,CAAC,cAAc,EAAE;AACjC,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,EAAE;YAC9B,IAAI,GAAG,EAAE;AACP,gBAAA,MAAM,CAAC,GAAG,GAAG,CAAC,KAAK,EAAE;gBACrB,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;YAC/B;YAEA,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;AAClC,gBAAA,MAAM,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE;AACtB,gBAAA,IAAI,CAAC,IAAI,SAAS,EAAE;AAClB,oBAAA,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;oBAChD,IAAI,GAAG,EAAE;AACP,wBAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC;oBACxB;gBACF;YACF;YAAC;AACH,QAAA,CAAC,CAAC;QAEF,MAAM,CAAC,MAAK;AACV,YAAA,MAAM,EAAE,GAAG,IAAI,CAAC,eAAe,EAAE;YACjC,IAAI,EAAE,EAAE;gBACN,MAAM,IAAI,GAAG,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE;AAC7B,gBAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC;YAC5B;AACF,QAAA,CAAC,CAAC;QAEF,MAAM,CAAC,MAAK;AACV,YAAA,MAAM,EAAE,GAAG,IAAI,CAAC,YAAY,EAAE;YAE9B,IAAI,EAAE,EAAE;gBACN,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;YAC5B;AACF,QAAA,CAAC,CAAC;QAEF,MAAM,CAAC,MAAK;AACV,YAAA,MAAM,EAAE,GAAG,IAAI,CAAC,SAAS,EAAE;YAC3B,IAAI,EAAE,EAAE;gBACN,IAAI,CAAC,eAAe,EAAE;YACxB;iBAAO;gBACL,IAAI,CAAC,eAAe,EAAE;YACxB;AACF,QAAA,CAAC,CAAC;IACJ;IAEQ,QAAQ,GAAG,EAAmB;AAE9B,IAAA,SAAS,CAAC,MAAqB,EAAA;QACrC,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,KAAK,IAAI,CAAC,QAAQ,CAAC,MAAM;AACzC,YAAA,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAEtD,IAAI,IAAI,EAAE;YACR;QACF;AAEA,QAAA,IAAI,CAAC,QAAQ,GAAG,MAAM;AACtB,QAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC;AACzB,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,GAAG,EAA6B;IAC3D;AAGA,IAAA,QAAQ,CAAC,CAAmC,EAAA;QAC1C,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC;QAC5B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC;QACvB,IAAI,CAAC,cAAc,EAAE;IACvB;AAEA,IAAA,YAAY,CAAC,CAAS,EAAA;QACpB,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,EAAE;AACtB,YAAA,OAAO,CAAC,CAAC,cAAc,CAAC,UAAU,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC;QAC7D;aAAO;;AAEL,YAAA,OAAO,CAAC,CAAC,QAAQ,EAAE;QACrB;IACF;IAEA,cAAc,GAAA;AACZ,QAAA,MAAM,EAAE,GAAG,IAAI,CAAC,WAAW,EAAE;AAC7B,QAAA,IAAI,EAAE,IAAI,EAAE,EAAE;AACZ,YAAA,IAAI,IAAI,CAAC,QAAQ,EAAE,IAAI,IAAI,EAAE;AAC3B,gBAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;YACtB;iBAAO;AACL,gBAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;YACpB;QACF;aAAO;AACL,YAAA,MAAM,IAAI,GAAG,EAAE,CAAC,UAAU,CAAC,GAAG,EAAC,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,EAAC,GAAG,CAAC;AACnD,YAAA,QAAQ,IAAI,CAAC,QAAQ,EAAE;gBACrB,KAAK,QAAQ,EAAE;;oBAEb;gBACF;gBACA,KAAK,SAAS,EAAE;;oBAEd;gBACF;AACA,gBAAA;AACE,oBAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;;QAGxB;QACA,IAAI,CAAC,YAAY,EAAE;IACrB;IAEA,gBAAgB,GAAA;QACd,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;QACjC,IAAI,CAAC,cAAc,EAAE;IACvB;IAEA,OAAO,GAAA;AACL,QAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC;AACvB,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE;QAExB,IAAI,IAAI,CAAC,eAAe,EAAE,IAAI,IAAI,CAAC,YAAY,EAAE,EAAE;YACjD,MAAM,EAAE,GAAG,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE;AACnC,YAAA,IAAI,EAAE,IAAI,EAAE,EAAE;AACZ,gBAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;YACzB;QACF;IACF;IAEA,MAAM,GAAA;QACJ,IAAI,CAAC,YAAY,EAAE;AACnB,QAAA,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC,MAAK;AAC/B,YAAA,IAAI,IAAI,CAAC,SAAS,EAAE;AAClB,gBAAA,IAAI,CAAC,SAAS,GAAG,KAAK;AACtB,gBAAA,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,KAAK,CAAC;gBAC9B;YACF;AAEA,YAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC;AACxB,YAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC;AAEzB,YAAA,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,EAAE;AAE3B,YAAA,MAAM,EAAE,GAAG,IAAI,CAAC,WAAW,EAAE;YAE7B,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,IAAI,EAAE,EAAE;AACzB,gBAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC;AAC5B,gBAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC;AAC7B,gBAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC;gBACxB,IAAI,CAAC,cAAc,EAAE;YACvB;AAEE,YAAA,MAAM,EAAE,GAAG,IAAI,CAAC,eAAe,EAAE;YACjC,IAAI,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;AAC1B,gBAAA,EAAE,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC;AAC5B,gBAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC;AAC7B,gBAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC;gBACxB,IAAI,CAAC,cAAc,EAAE;YACvB;AAEA,YAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE;YAChC,IAAI,QAAQ,IAAI,SAAS,IAAI,QAAQ,IAAI,QAAQ,EAAE;gBACjD,IAAI,CAAC,oBAAoB,EAAE;YAC7B;AACA,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE;QAC3B,CAAC,EAAC,GAAG,CAAC;IACR;IAEA,cAAc,GAAA;QACZ,UAAU,CAAC,MAAK;AACZ,YAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC;AACxB,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE;QAC3B,CAAC,EAAC,GAAG,CAAC;IACR;IAEA,UAAU,GAAA;QACR,UAAU,CAAC,MAAK;AACZ,YAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC;AACxB,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE;QAC3B,CAAC,EAAC,GAAG,CAAC;IACR;AAEA,IAAA,MAAM,CAAC,CAAQ,EAAA;QACb,CAAC,CAAC,eAAe,EAAE;QACnB,CAAC,CAAC,cAAc,EAAE;AAClB,QAAA,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAEd;AAEA,IAAA,IAAI,CAAC,CAAQ,EAAA;QACX,CAAC,CAAC,eAAe,EAAE;QACnB,CAAC,CAAC,cAAc,EAAE;AAClB,QAAA,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACf;AAEA,IAAA,OAAO,CAAC,CAAQ,EAAA;QACd,CAAC,CAAC,eAAe,EAAE;QACnB,CAAC,CAAC,cAAc,EAAE;QAElB,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;YACrF,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC;YAC5B;QACF;AAEA,QAAA,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,YAAY,IAAI,IAAI,EAAE;YACrD,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC;YAC9B;QACF;AAEA,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;AAEnB,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE,IAAI,KAAK,EAAE;YAC7B,IAAI,CAAC,YAAY,EAAE;YACnB;QACF;AAEA,QAAA,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,EAAE;AACxB,YAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC;AAEvC,YAAA,MAAM,EAAE,GAAG,IAAI,CAAC,eAAe,EAAE;YACjC,IAAI,EAAE,EAAE;AACN,gBAAA,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;YAC5C;YAEA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC;YAC/B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;AAChC,YAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC;AACzB,YAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC;QAC/C;IACF;AAEA,IAAA,KAAK,CAAC,CAAQ,EAAA;AACZ,QAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC;IAC3B;IAEA,OAAO,GAAA;AACL,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;IACnB;AAEA,IAAA,SAAS,CAAC,CAAQ,EAAA;QAChB,MAAM,CAAC,GAAG,CAAkB;AAC5B,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE,IAAI,IAAI,EAAE;YAC3B,IAAI,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;gBACtC;YACF;AAEA,YAAA,IAAI,CAAC,CAAC,OAAO,EAAE;gBACb,IAAI,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;oBACjC;gBACF;YACF;AAEA,YAAA,IAAI,IAAI,CAAC,QAAQ,EAAE,IAAI,QAAQ,EAAE;gBAC/B,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;oBAC9B,CAAC,CAAC,cAAc,EAAE;oBAClB,CAAC,CAAC,eAAe,EAAE;gBACrB;YACF;AAEA,YAAA,IAAI,IAAI,CAAC,QAAQ,EAAE,IAAI,SAAS,EAAE;gBAChC,IAAI,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;oBAC/B,CAAC,CAAC,cAAc,EAAE;oBAClB,CAAC,CAAC,eAAe,EAAE;gBACrB;YACF;QACF;IACF;AAGA,IAAA,SAAS,CAAC,CAAQ,EAAA;AAChB,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,EAAE;QAC7B,IAAI,GAAG,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE;AACzB,YAAA,MAAM,KAAK,GAAI,CAAC,CAAC,MAA4B,CAAC,KAAK;AACnD,YAAA,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,KAAK,CAAC;YACzC,IAAI,IAAI,EAAE;AACN,gBAAA,MAAM,GAAG,GAAG,IAAI,CAAC,cAAc,EAAE;gBACjC,IAAI,GAAG,EAAE;AACP,oBAAA,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC;gBACrC;AACA,gBAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC;gBACvB,IAAI,CAAC,cAAc,EAAE;YACzB;QACF;IACF;IAEA,MAAM,CAAC,CAAQ,EAAE,CAAc,EAAA;QAC7B,CAAC,CAAC,wBAAwB,EAAE;QAC5B,CAAC,CAAC,eAAe,EAAE;QACnB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC;AAE5B,QAAA,MAAM,EAAE,GAAG,IAAI,CAAC,eAAe,EAAE;QACjC,IAAI,EAAE,EAAE;YACN,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC;QACtB;AAEA,QAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;AACpB,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;QACrB,IAAI,CAAC,cAAc,EAAE;IACvB;AAEQ,IAAA,IAAI,CAAC,CAAS,EAAA;AACpB,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE;AAC7B,QAAA,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;YACpB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,GAAG,CAAC;YACzC,IAAI,IAAI,CAAC,YAAY,IAAI,KAAK,CAAC,MAAM,EAAE;AACrC,gBAAA,IAAI,CAAC,YAAY,GAAG,CAAC;YACvB;AAEA,YAAA,IAAI,IAAI,CAAC,YAAY,IAAI,CAAC,CAAC,EAAE;gBAC3B,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC;YACtC;AAEA,YAAA,IAAI,IAAI,CAAC,YAAY,IAAI,CAAC,CAAC,EAAE;gBAC3B,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC;YACtC;YACA,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC;QACzC;QACA,IAAI,CAAC,oBAAoB,EAAE;IAC7B;IAEQ,oBAAoB,GAAA;AAE1B,QAAA,IAAI,IAAI,CAAC,OAAO,IAAI,SAAS,EAAE;AAC/B,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC;AACnD,YAAA,IAAI,KAAK,GAAG,CAAC,EAAE;gBACX;YACJ;YAEA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,aAAa,CAAC,cAAc,CAAC;AAClD,gBAAA,KAAK,EAAE,SAAS;AAChB,gBAAA,MAAM,EAAE;AACX,aAAA,CAAC;QACJ;IACF;AAEE,IAAA,OAAO,CAAC,CAAS,EAAE,OAAO,GAAG,IAAI,EAAA;QAC/B,CAAC,EAAE,eAAe,EAAE;AAEpB,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,EAAE;AAClD,YAAA,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,KAAK,EAAE;QAC1C;AAEA,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,EAAE;AACpD,YAAA,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,KAAK,EAAE;QAC5C;AAEA,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,IAAI,CAAC,gBAAgB,IAAI,IAAI,EAAE;AACrD,YAAA,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,KAAK,EAAE;QAC7C;QAEA,IAAI,OAAO,EAAE;AACX,YAAA,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;QACnB;IACF;AAEA,IAAA,WAAW,CAAC,CAAQ,EAAA;QAClB,CAAC,CAAC,eAAe,EAAE;AACnB,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE;IACvB;AAEQ,IAAA,YAAY,CAAC,OAAiB,EAAA;AACpC,QAAA,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,EAAE;AAC7B,YAAA,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC;QACjC;AAEA,QAAA,IAAI,CAAC,YAAY,GAAG,UAAU,CAAC,MAAK;YAClC,IAAI,CAAC,cAAc,EAAE;QACvB,CAAC,EAAE,GAAG,CAAC;IACT;IAEQ,MAAM,cAAc,CAAC,OAAiB,EAAA;AAC5C,QAAA,MAAM,EAAE,GAAG,IAAI,CAAC,YAAY,EAAE;QAC9B,IAAI,EAAE,EAAE;YACN,MAAM,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;AACnC,YAAA,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;AACtB,YAAA,IAAI,CAAC,OAAO,GAAG,SAAS;AACxB,YAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC;QAC1B;AAEA,QAAA,IAAI,CAAC,EAAE,IAAI,OAAO,IAAI,IAAI,EAAE;YAC1B,IAAI,CAAC,cAAc,EAAE;QACvB;IACF;IAEQ,cAAc,GAAA;AACpB,QAAA,IAAI,CAAC,WAAW,EAAE,aAAa,EAAE;QACjC,IAAI,CAAC,gBAAgB,EAAE;IACzB;AAEQ,IAAA,aAAa;IACb,gBAAgB,GAAA;AACtB,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE;AACtB,YAAA,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC;QAClC;AAEA,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE;AAC3B,QAAA,IAAI,IAAI,IAAI,IAAI,GAAG,CAAC,EAAE;AACpB,YAAA,IAAI,CAAC,aAAa,GAAG,UAAU,CAAC,MAAK;AACnC,gBAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;YACtB,CAAC,EAAE,IAAI,CAAC;QACV;IACF;IAEQ,YAAY,GAAA;AAClB,QAAA,IAAI,EAAE,GAAG,IAAI,CAAC,WAAW,EAAE;AAC3B,QAAA,IAAI,EAAE,IAAI,EAAE,EAAE;AACZ,YAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;QACtB;aAAO;AACL,YAAA,MAAM,IAAI,GAAG,EAAE,CAAC,UAAU,CAAC,GAAG,EAAC,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,EAAC,GAAG,CAAC;AACnD,YAAA,QAAQ,IAAI,CAAC,QAAQ,EAAE;gBACrB,KAAK,QAAQ,EAAE;oBACb,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;oBAC5B;gBACF;gBACA,KAAK,SAAS,EAAE;oBACd,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;oBAC5B;gBACF;AACA,gBAAA;AACE,oBAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;;AAItB,YAAA,IAAI,IAAI,CAAC,IAAI,EAAE,IAAI,QAAQ,IAAI,IAAI,CAAC,QAAQ,EAAE,IAAI,SAAS,EAAE;gBAC3D,IAAI,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;AACzB,gBAAA,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,EAAE;AACnB,oBAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;gBAC3B;qBAAO;AACL,oBAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;gBACvC;YACF;QACF;IACF;AAEU,IAAA,aAAa,GAAG,IAAI,GAAG,EAA8B;IACrD,SAAS,GAAG,KAAK;AAEzB,IAAA,MAAM,MAAM,CAAC,EAAS,EAAE,CAAc,EAAA;AACpC,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI;QACrB,EAAE,CAAC,wBAAwB,EAAE;QAE7B,IAAI,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;YAC7B;QACF;AAEA,QAAA,IAAI,CAAC,CAAC,MAAM,EAAE;AACZ,YAAA,MAAM,QAAQ,GAAG,MAAM,CAAC,CAAC,MAAM,EAAE;YACjC,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,MAAM,IAAI,CAAC,EAAE;AACrC,gBAAA,CAAC,CAAC,UAAU,GAAG,KAAK;gBACpB;YACF;YAEA,MAAM,QAAQ,GAAG,EAAmB;YAEpC,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE;AAC/B,gBAAA,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;AAChB,gBAAA,IAAI,CAAC,IAAI,CAAC,EAAE;AACV,oBAAA,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBACzC;YACF;YACA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC;AAEnC,YAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC;QAC7B;IACF;AAEA,IAAA,MAAM,QAAQ,CAAC,EAAS,EAAE,CAAc,EAAA;QACtC,EAAE,CAAC,wBAAwB,EAAE;QAC7B,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC;QAClC,IAAI,CAAC,cAAc,EAAE;AACrB,QAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC;IACzB;AAEF,IAAA,UAAU,CAAC,CAAa,EAAA;QACtB,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,SAAS;IAC/C;AACA,IAAA,cAAc,CAAC,CAAc,EAAA;QAC3B,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,IAAI;IAC1C;IAGQ,oBAAoB,GAAA;QAC1B,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;AAC9B,QAAA,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE;QAE9B,IAAI,QAAQ,IAAI,SAAS,IAAI,IAAI,CAAC,QAAQ,EAAE,IAAI,QAAQ,EAAE;YACxD,QAAQ,GAAG,CAAC;QACd;AAEA,QAAA,IAAI,QAAQ,IAAI,SAAS,EAAE;AACzB,YAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;QACrD;aAAO;AACL,YAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACzC;IACF;IAEQ,eAAe,GAAA;QACrB,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,aAAa,EAAE;AAE1C,YAAA,MAAM,gBAAgB,GAAG,IAAI,CAAC;AACvB,iBAAA,QAAQ;AACR,iBAAA,mBAAmB,CAAC,IAAI,CAAC,aAAa,CAAC,aAAa;AACpD,iBAAA,aAAa,CAAC;AACX,gBAAA;AACI,oBAAA,OAAO,EAAE,OAAO;AAChB,oBAAA,OAAO,EAAE,QAAQ;AACjB,oBAAA,QAAQ,EAAE,OAAO;AACjB,oBAAA,QAAQ,EAAE;AACb;AACJ,aAAA,CAAC;YAEN,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;gBAClC,gBAAgB;AAChB,gBAAA,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,WAAW;AACnD,gBAAA,SAAS,EAAE,OAAO;gBAClB,cAAc,EAAE,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,UAAU;AAC3D,aAAA,CAAC;QACN;AAEA,QAAA,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,EAAE;AACzE,YAAA,MAAM,MAAM,GAAG,IAAI,cAAc,CAC7B,IAAI,CAAC,mBAAmB,EACxB,IAAI,CAAC,gBAAgB,CACxB;AACD,YAAA,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC;AAE9B,YAAA,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC;iBAChC,aAAa,CAAC,eAAe,CAAgB;YAElD,IAAI,YAAY,EAAE;gBACd,YAAY,CAAC,KAAK,CAAC,KAAK;oBACpB,CAAA,EAAG,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,WAAW,IAAI;YAC3D;QACJ;IACF;IAEQ,eAAe,GAAA;AACrB,QAAA,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE;IAC3B;uGA1tBW,UAAU,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAV,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAU,40IChCvB,m4MAuJA,EAAA,MAAA,EAAA,CAAA,2wHAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDzHc,WAAW,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,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,wSAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,4BAAA,EAAA,QAAA,EAAA,oJAAA,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,EAAE,OAAO,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,OAAO,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAC,eAAe,8BAAC,mBAAmB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,KAAA,EAAA,KAAA,EAAA,qBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAC,iBAAiB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAC,SAAS,qGAAC,gBAAgB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,KAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA;;2FAE/G,UAAU,EAAA,UAAA,EAAA,CAAA;kBARtB,SAAS;+BACI,aAAa,EAAA,eAAA,EAGN,uBAAuB,CAAC,KAAK,EAAA,aAAA,EAC/B,iBAAiB,CAAC,IAAI,EAAA,OAAA,EAC5B,CAAC,WAAW,EAAE,OAAO,EAAE,OAAO,EAAC,eAAe,EAAC,mBAAmB,EAAC,iBAAiB,EAAC,SAAS,EAAC,gBAAgB,CAAC,EAAA,QAAA,EAAA,m4MAAA,EAAA,MAAA,EAAA,CAAA,2wHAAA,CAAA,EAAA;;sBAGxH,SAAS;uBAAC,YAAY;;sBACtB,SAAS;uBAAC,eAAe;;sBACzB,SAAS;uBAAC,WAAW;;sBACrB,YAAY;uBAAC,QAAQ;;sBACrB,SAAS;uBAAC,qBAAqB;;;ME7BvB,WAAW,CAAA;IAEtB,IAAI,GAAG,KAAK,CAAU,IAAI;6EAAC;AAE3B,IAAA,WAAA,GAAA;IACA;uGALW,WAAW,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAX,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,WAAW,yMCRxB,iFACgD,EAAA,MAAA,EAAA,CAAA,iQAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,KAAA,EAAA,CAAA;;2FDOnC,WAAW,EAAA,UAAA,EAAA,CAAA;kBANvB,SAAS;+BACI,cAAc,EAAA,eAAA,EAEP,uBAAuB,CAAC,KAAK,EAAA,QAAA,EAAA,iFAAA,EAAA,MAAA,EAAA,CAAA,iQAAA,CAAA,EAAA;;;MEMrC,YAAY,CAAA;AAIH,IAAA,GAAA;IAFD,QAAQ,GAAW,EAAE;AAExC,IAAA,WAAA,CAAoB,GAAe,EAAA;QAAf,IAAA,CAAA,GAAG,GAAH,GAAG;IACvB;IAEA,QAAQ,GAAA;AACN,QAAA,IAAI,IAAI,CAAC,GAAG,IAAI,SAAS,EAAE;AACzB,YAAA,IAAI,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,aAA4B;AAClD,YAAA,IAAI,MAAM,GAAG,MAAM,CAAC,aAAa;AACjC,YAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAClB,gBAAA,IAAI,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,YAAY,GAAG,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC;AAC/D,gBAAA,IAAI,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC;gBAC/D,IAAI,GAAG,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE;AACvB,oBAAA,MAAM,CAAC,KAAK,CAAC,QAAQ,GAAG,UAAU;oBAClC,MAAM,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,GAAG,IAAI;oBAC7B,MAAM,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,GAAG,IAAI;gBACjC;YACF;QACF;IACF;uGArBW,YAAY,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAZ,YAAY,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECXzB,yEAAmE,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDSrD,wBAAwB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,mCAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,OAAA,EAAA,UAAA,EAAA,aAAA,CAAA,EAAA,QAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,KAAA,EAAA,CAAA;;2FAEzB,YAAY,EAAA,UAAA,EAAA,CAAA;kBAPxB,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,eAAe,mBAGR,uBAAuB,CAAC,KAAK,EAAA,OAAA,EACrC,CAAC,wBAAwB,CAAC,EAAA,QAAA,EAAA,yEAAA,EAAA;;sBAIpC,KAAK;uBAAC,UAAU;;;MECN,WAAW,CAAA;IACpB,MAAM,GAAW,EAAE;IACH,KAAK,GAAW,EAAE;IACnB,IAAI,GAAW,EAAE;IACb,QAAQ,GAAY,KAAK;IAC1B,OAAO,GAAY,KAAK;AACzB,IAAA,OAAO,GAA+B,IAAI,YAAY,EAAgB;IAExE,IAAI,GAAY,EAAE;AACf,IAAA,OAAO;IACN,QAAQ,GAAY,KAAK;IAE5C,SAAS,GAAY,KAAK;AAE5B,IAAA,WAAA,GAAA;IACA;AAEA,IAAA,MAAM,CAAC,CAAQ,EAAA;QACb,CAAC,CAAC,cAAc,EAAE;QAClB,CAAC,CAAC,eAAe,EAAE;IACrB;IAEA,OAAO,CAAC,CAAQ,EAAE,CAAS,EAAA;AACzB,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AAClB,YAAA,IAAI,CAAC,IAAI,SAAS,EAAE;AAClB,gBAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;YACtB;iBAAO;gBACL,CAAC,CAAC,eAAe,EAAE;AACnB,gBAAA,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;YACrB;QACF;IACF;AAEA,IAAA,WAAW,CAAC,OAAsB,EAAA;AAChC,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,OAAO,IAAI,SAAS,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI;IACtH;uGAnCW,WAAW,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAX,WAAW,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,IAAA,EAAA,MAAA,EAAA,QAAA,EAAA,UAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,MAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,OAAA,EAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECdxB,ujDA+BA,EAAA,MAAA,EAAA,CAAA,q/CAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDnBc,aAAa,owBAAE,OAAO,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,OAAO,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,YAAY,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,KAAA,EAAA,CAAA;;2FAE9C,WAAW,EAAA,UAAA,EAAA,CAAA;kBAPvB,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,cAAc,EAAA,eAAA,EAGP,uBAAuB,CAAC,KAAK,EAAA,OAAA,EACrC,CAAC,aAAa,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,CAAC,EAAA,QAAA,EAAA,ujDAAA,EAAA,MAAA,EAAA,CAAA,q/CAAA,CAAA,EAAA;;sBAIvD,KAAK;uBAAC,OAAO;;sBACb,KAAK;uBAAC,MAAM;;sBACZ,KAAK;uBAAC,UAAU;;sBAChB,KAAK;uBAAC,SAAS;;sBACf,MAAM;uBAAC,OAAO;;sBAEd,KAAK;uBAAC,MAAM;;sBACZ,KAAK;uBAAC,SAAS;;sBACf,KAAK;uBAAC,UAAU;;;MEdR,YAAY,CAAA;IACrB,WAAW,GAAG,KAAK,CAA4B,UAAU;oFAAC;AAC5D,IAAA,WAAA,GAAA;IACA;uGAHW,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAZ,YAAY,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECVzB,+CAA2C,EAAA,MAAA,EAAA,CAAA,6QAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDQ7B,OAAO,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,KAAA,EAAA,CAAA;;2FAER,YAAY,EAAA,UAAA,EAAA,CAAA;kBAPxB,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,eAAe,mBAGR,uBAAuB,CAAC,KAAK,EAAA,OAAA,EACrC,CAAC,OAAO,CAAC,EAAA,QAAA,EAAA,+CAAA,EAAA,MAAA,EAAA,CAAA,6QAAA,CAAA,EAAA;;;MEQT,SAAS,CAAA;IAClB,IAAI,GAAG,KAAK,CAAC,QAAQ;6EAAW;IAChC,OAAO,GAAG,KAAK,CAAU,EAAE;gFAAC;IAC5B,OAAO,GAAG,KAAK,CAAC,QAAQ;gFAAS;AAEjC,IAAA,WAAA,GAAA;IACA;uGANS,SAAS,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAT,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,SAAS,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,eAAA,EAAA,EAAA,SAAA,EAFP,EAAE,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECdjB,8+CAwBM,g0CDZQ,OAAO,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAC,OAAO,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAC,QAAQ,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,cAAA,EAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAC,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,aAAa,8BAAE,aAAa,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,KAAA,EAAA,CAAA;;2FAIvE,SAAS,EAAA,UAAA,EAAA,CAAA;kBARrB,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,YAAY,WAGb,CAAC,OAAO,EAAC,OAAO,EAAC,QAAQ,EAAC,eAAe,EAAE,aAAa,EAAE,aAAa,CAAC,EAAA,eAAA,EAChE,uBAAuB,CAAC,KAAK,aACnC,EAAE,EAAA,QAAA,EAAA,8+CAAA,EAAA,MAAA,EAAA,CAAA,wwCAAA,CAAA,EAAA;;;MEHJ,YAAY,CAAA;AACK,IAAA,aAAa;IAEzB,KAAK,GAAW,EAAE;IACd,QAAQ,GAAW,EAAE;IACpB,UAAU,GAAY,KAAK;IAC/B,MAAM,GAAW,EAAE;IACd,WAAW,GAAW,EAAE;AACtB,IAAA,YAAY,GAAyB,IAAI,YAAY,EAAU;IAEjE,kBAAkB,GAAY,KAAK;AAC5B,IAAA,wBAAwB,GAA0B,IAAI,YAAY,EAAW;IAEtF,SAAS,GAAY,KAAK;IAC5B,OAAO,GAAY,KAAK;AACjB,IAAA,WAAW,GAA0B,IAAI,YAAY,EAAW;AACzE,IAAA,IAAI,GAAuB,IAAI,YAAY,EAAQ;AACnD,IAAA,IAAI,GAAuB,IAAI,YAAY,EAAQ;AAClD,IAAA,KAAK,GAAuB,IAAI,YAAY,EAAE;AAChD,IAAA,GAAG,GAAuB,IAAI,YAAY,EAAE;IAEnD,QAAQ,GAAG,CAAC;IACpB,kBAAkB,GAAG,KAAK,CAAgB,IAAI;2FAAC;IAC/C,cAAc,GAAG,MAAM,EAAQ;AAE/B,IAAA,WAAA,GAAA;IACA;AAEA,IAAA,WAAW,CAAC,OAAsB,EAAA;AAChC,QAAA,IAAI,IAAI,CAAC,kBAAkB,IAAI,IAAI,EAAE;YACnC,UAAU,CAAC,MAAK;gBACd,IAAI,CAAC,WAAW,EAAE;AAClB,gBAAA,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,KAAK,CAAC;YAC3C,CAAC,EAAE,EAAE,CAAC;QACR;IACF;IAEA,aAAa,GAAA;QACX,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;QACnC,IAAI,CAAC,SAAS,EAAE;IAClB;IAEA,KAAK,GAAA;AACH,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI;QACnB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;QACnC,IAAI,CAAC,WAAW,EAAE;IACpB;IAEA,OAAO,GAAA;AACL,QAAA,IAAI,CAAC,OAAO,GAAG,KAAK;QACpB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;QACnC,IAAI,CAAC,WAAW,EAAE;IACpB;AAEA,IAAA,SAAS,CAAC,CAAQ,EAAA;AAChB,QAAA,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YACtB,CAAC,CAAC,cAAc,EAAE;YAClB,CAAC,CAAC,eAAe,EAAE;AACnB,YAAA,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;QAClB;IACF;AAEA,IAAA,OAAO,CAAC,CAAQ,EAAA;AACd,QAAA,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YACtB,CAAC,CAAC,cAAc,EAAE;YAClB,CAAC,CAAC,eAAe,EAAE;AACnB,YAAA,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;QAClB;IACF;AAEA,IAAA,UAAU,CAAC,CAAQ,EAAA;AACjB,QAAA,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE;YACvB,CAAC,CAAC,cAAc,EAAE;YAClB,CAAC,CAAC,eAAe,EAAE;AACnB,YAAA,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;QACnB;IACF;AAEA,IAAA,QAAQ,CAAC,CAAQ,EAAA;AACf,QAAA,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE;YACrB,CAAC,CAAC,cAAc,EAAE;YAClB,CAAC,CAAC,eAAe,EAAE;AACnB,YAAA,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE;QACjB;IACF;IAEQ,WAAW,GAAA;AACjB,QAAA,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,EAAE;AAC9B,YAAA,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,KAAK,EAAE;QAC1C;IACF;IAEQ,SAAS,GAAA;AACf,QAAA,MAAM,EAAE,GAAG,IAAI,CAAC,kBAAkB,EAAE;AACpC,QAAA,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,EAAE;AAChB,YAAA,IAAI,IAAI,CAAC,QAAQ,GAAG,CAAC,EAAE;AACrB,gBAAA,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC;YAC7B;AAEA,YAAA,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC,MAAK;AAC9B,gBAAA,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE;YAC5B,CAAC,EAAE,EAAE,CAAC;QACR;IACF;uGAvGW,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAZ,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAY,mnDCXzB,6kCAmBsI,EAAA,MAAA,EAAA,CAAA,kjDAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDV1H,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,wSAAA,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,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,EAAE,OAAO,2IAAC,OAAO,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;2FAE3B,YAAY,EAAA,UAAA,EAAA,CAAA;kBANxB,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,eAAe,WAGhB,CAAC,WAAW,EAAE,OAAO,EAAC,OAAO,CAAC,EAAA,QAAA,EAAA,6kCAAA,EAAA,MAAA,EAAA,CAAA,kjDAAA,CAAA,EAAA;;sBAGtC,SAAS;uBAAC,eAAe;;sBAEzB,KAAK;uBAAC,OAAO;;sBACb,KAAK;uBAAC,WAAW;;sBACjB,KAAK;uBAAC,YAAY;;sBAClB,KAAK;uBAAC,QAAQ;;sBACd,KAAK;uBAAC,aAAa;;sBACnB,MAAM;uBAAC,cAAc;;sBAErB,KAAK;uBAAC,aAAa;;sBACnB,MAAM;uBAAC,mBAAmB;;sBAE1B,KAAK;uBAAC,WAAW;;sBACjB,KAAK;uBAAC,SAAS;;sBACf,MAAM;uBAAC,eAAe;;sBACtB,MAAM;uBAAC,MAAM;;sBACb,MAAM;uBAAC,MAAM;;sBACb,MAAM;uBAAC,OAAO;;sBACd,MAAM;uBAAC,KAAK;;;MEiBF,iBAAiB,CAAA;uGAAjB,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;AAAjB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,YA9B1B,SAAS;YACT,WAAW;YACX,UAAU;YACV,SAAS;YACT,UAAU;YACV,WAAW;YACX,YAAY;YACZ,WAAW;YACX,YAAY;YACZ,SAAS;YACT,YAAY;YACZ,oBAAoB;AACpB,YAAA,kBAAkB,aAGlB,SAAS;YACT,WAAW;YACX,UAAU;YACV,SAAS;YACT,UAAU;YACV,WAAW;YACX,YAAY;YACZ,WAAW;YACX,YAAY;YACZ,SAAS;YACT,YAAY;YACZ,oBAAoB;YACpB,kBAAkB,CAAA,EAAA,CAAA;AAGT,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,YA9B1B,SAAS;YAGT,SAAS;YACT,UAAU;YAEV,YAAY;YACZ,WAAW;YAEX,SAAS;YACT,YAAY,CAAA,EAAA,CAAA;;2FAoBH,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAhC7B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE;wBACP,SAAS;wBACT,WAAW;wBACX,UAAU;wBACV,SAAS;wBACT,UAAU;wBACV,WAAW;wBACX,YAAY;wBACZ,WAAW;wBACX,YAAY;wBACZ,SAAS;wBACT,YAAY;wBACZ,oBAAoB;wBACpB,kBAAkB;AACnB,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,SAAS;wBACT,WAAW;wBACX,UAAU;wBACV,SAAS;wBACT,UAAU;wBACV,WAAW;wBACX,YAAY;wBACZ,WAAW;wBACX,YAAY;wBACZ,SAAS;wBACT,YAAY;wBACZ,oBAAoB;wBACpB;AACD;AACF,iBAAA;;;AC9CD;;AAEG;;ACFH;;AAEG;;;;"}
1
+ {"version":3,"file":"boruto-xrmui.mjs","sources":["../../../projects/xrmui/src/lib/ko/forms/kobuttongroup/kobuttongroup.component.ts","../../../projects/xrmui/src/lib/ko/forms/kobuttongroup/kobuttongroup.component.html","../../../projects/xrmui/src/lib/ko/forms/kodecimal.directive.ts","../../../projects/xrmui/src/lib/ko/forms/kofocus.directive.ts","../../../projects/xrmui/src/lib/ko/message/koalert/koaleret.component.ts","../../../projects/xrmui/src/lib/ko/message/koalert/koalert.component.html","../../../projects/xrmui/src/lib/ko/message/koheader/koheader.component.ts","../../../projects/xrmui/src/lib/ko/message/koheader/koheader.component.html","../../../projects/xrmui/src/lib/ko/message/kowrite.directive.ts","../../../projects/xrmui/src/lib/ko/models/navigation.interface.ts","../../../projects/xrmui/src/lib/ko/navigation/koleftmenu/koleftmenu.component.ts","../../../projects/xrmui/src/lib/ko/navigation/koleftmenu/koleftmenu.component.html","../../../projects/xrmui/src/lib/ko/navigation/kotopmenu/kotopmenu.component.ts","../../../projects/xrmui/src/lib/ko/navigation/kotopmenu/kotopmenu.component.html","../../../projects/xrmui/src/lib/ko/navigation/koover.directive.ts","../../../projects/xrmui/src/lib/ko/panels/koexpansionpanel/koexpansionpanel.component.ts","../../../projects/xrmui/src/lib/ko/panels/koexpansionpanel/koexpansionpanel.component.html","../../../projects/xrmui/src/lib/ko/panels/kohorizontalscroll/kohorizontalscroll.component.ts","../../../projects/xrmui/src/lib/ko/panels/kohorizontalscroll/kohorizontalscroll.component.html","../../../projects/xrmui/src/lib/ko/panels/kohorizontalsplit/kohorizontalsplit.component.ts","../../../projects/xrmui/src/lib/ko/panels/kohorizontalsplit/kohorizontalsplit.component.html","../../../projects/xrmui/src/lib/ko/panels/komain/komain.component.ts","../../../projects/xrmui/src/lib/ko/panels/komain/komain.component.html","../../../projects/xrmui/src/lib/ko/panels/kotablepanel/kotablepanel.component.ts","../../../projects/xrmui/src/lib/ko/panels/kotablepanel/kotablepanel.component.html","../../../projects/xrmui/src/lib/ko/panels/kotitlepanel/kotitlepanel.component.ts","../../../projects/xrmui/src/lib/ko/panels/kotitlepanel/kotitlepanel.component.html","../../../projects/xrmui/src/lib/ko/panels/koverticalscroll/koverticalscroll.component.ts","../../../projects/xrmui/src/lib/ko/panels/koverticalscroll/koverticalscroll.component.html","../../../projects/xrmui/src/lib/ko/panels/koview/koview.component.ts","../../../projects/xrmui/src/lib/ko/panels/koview/koview.component.html","../../../projects/xrmui/src/lib/ko/panels/koverticalsplit/koverticalsplit.component.ts","../../../projects/xrmui/src/lib/ko/panels/koverticalsplit/koverticalsplit.component.html","../../../projects/xrmui/src/lib/ko/kipon-ui.module.ts","../../../projects/xrmui/src/lib/bo/models/dkcustomdateadapter.model.ts","../../../projects/xrmui/src/lib/bo/models/nformat.model.ts","../../../projects/xrmui/src/lib/bo/services/selected.service.ts","../../../projects/xrmui/src/lib/bo/info/info.xrmui.ts","../../../projects/xrmui/src/lib/bo/info/info.xrmui.html","../../../projects/xrmui/src/lib/bo/models/xrmuipanel.model.ts","../../../projects/xrmui/src/lib/bo/layout/layout.xrmui.ts","../../../projects/xrmui/src/lib/bo/layout/layout.xrmui.html","../../../projects/xrmui/src/lib/bo/panel/panel.xrmui.ts","../../../projects/xrmui/src/lib/bo/panel/panel.xrmui.html","../../../projects/xrmui/src/lib/bo/icon/icon.xrmui.ts","../../../projects/xrmui/src/lib/bo/icon/icon.xrmui.html","../../../projects/xrmui/src/lib/bo/changedscope/changedscope.directive.ts","../../../projects/xrmui/src/lib/bo/form/formscope.directive.ts","../../../projects/xrmui/src/lib/bo/input/input.xrmui.ts","../../../projects/xrmui/src/lib/bo/input/input.xrmui.html","../../../projects/xrmui/src/lib/bo/ribbon/ribbon.xrmui.ts","../../../projects/xrmui/src/lib/bo/ribbon/ribbon.xrmui.html","../../../projects/xrmui/src/lib/bo/spinner/spinner.xrmui.ts","../../../projects/xrmui/src/lib/bo/spinner/spinner.xrmui.html","../../../projects/xrmui/src/lib/bo/button/button.xrmui.ts","../../../projects/xrmui/src/lib/bo/button/button.xrmui.html","../../../projects/xrmui/src/lib/bo/devider/devider.xrmui.ts","../../../projects/xrmui/src/lib/bo/devider/devider.xrmui.html","../../../projects/xrmui/src/lib/bo/tabs/tabs.xrmui.ts","../../../projects/xrmui/src/lib/bo/tabs/tabs.xrmui.html","../../../projects/xrmui/src/lib/bo/section/section.xrmui.ts","../../../projects/xrmui/src/lib/bo/section/section.xrmui.html","../../../projects/xrmui/src/lib/bo/boruto-xrmui.module.ts","../../../projects/xrmui/src/public-api.ts","../../../projects/xrmui/src/boruto-xrmui.ts"],"sourcesContent":["import { Component, ViewEncapsulation, ChangeDetectionStrategy } from '@angular/core';\r\n\r\n\r\n@Component({\r\n selector: 'ko-button-group',\r\n templateUrl: './kobuttongroup.component.html',\r\n styleUrls: ['./kobuttongroup.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.Eager,\n encapsulation: ViewEncapsulation.None\r\n})\r\n\r\nexport class KoButtonGroupComponent {\r\n constructor() {\r\n }\r\n}\r\n","<ng-content></ng-content>","import { Directive, ElementRef, HostListener, input, Output, EventEmitter, SimpleChanges, output, effect } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[ko-decimal]'\r\n})\r\nexport class KoDecimalDirective {\r\n constructor(private el: ElementRef) {\r\n effect(() => {\r\n const align = this.align();\r\n if (this.el.nativeElement) {\r\n this.el.nativeElement.style['text-align'] = this.align();\r\n }\r\n });\r\n\r\n effect(() => {\r\n const v = this.value();\r\n this.setValueString();\r\n })\r\n }\r\n\r\n\r\n decimals = input<number>(2, { alias: 'ko-decimals' });\r\n value = input<number | null>(null, { alias: 'ko-value' });\r\n valueChanged = output<number | null>({ alias: 'ko-valueChange' });\r\n align = input<string>('right');\r\n\r\n controlDown: boolean = false;\r\n syncThread!: any;\r\n\r\n @HostListener('keydown', ['$event']) onKeydown($event: KeyboardEvent) {\r\n switch ($event.key) {\r\n case 'Backspace':\r\n case 'Tab':\r\n case 'ArrowLeft':\r\n case 'ArrowRight':\r\n case 'Delete':\r\n case '0':\r\n case '1':\r\n case '2':\r\n case '3':\r\n case '4':\r\n case '5':\r\n case '6':\r\n case '7':\r\n case '8':\r\n case '9':\r\n case '-': {\r\n this.bindValueBack();\r\n return true;\r\n }\r\n case ',': {\r\n if (this.decimals() == 0) {\r\n return false;\r\n }\r\n this.bindValueBack();\r\n return true;\r\n }\r\n case 'Control': {\r\n this.controlDown = true;\r\n this.bindValueBack();\r\n return true;\r\n }\r\n case 'c':\r\n case 'C':\r\n case 'v':\r\n case 'V': {\r\n if (this.controlDown == true) {\r\n this.bindValueBack();\r\n return true;\r\n }\r\n $event.stopPropagation();\r\n return false;\r\n }\r\n default: {\r\n $event.stopPropagation();\r\n return false;\r\n }\r\n }\r\n }\r\n\r\n @HostListener('blur') onBlur() {\r\n if (this.syncThread != null) clearTimeout(this.syncThread);\r\n this.syncThread = null;\r\n this.doBindValueBack();\r\n this.setValueString();\r\n }\r\n\r\n private setValueString(): void {\r\n if (this.el.nativeElement != null) {\r\n const v = this.value();\r\n if (v != null) {\r\n this.el.nativeElement.value = this.numberToString(v, this.decimals());\r\n } else {\r\n this.el.nativeElement.value = \"\";\r\n }\r\n }\r\n }\r\n\r\n private bindValueBack(): void;\r\n private bindValueBack(timeout: number): void;\r\n private bindValueBack(timeout: number = 3000): void {\r\n if (this.syncThread != null) clearTimeout(this.syncThread);\r\n this.syncThread = setTimeout(() => {\r\n this.syncThread = null;\r\n this.doBindValueBack();\r\n }, timeout);\r\n }\r\n\r\n private doBindValueBack(): void {\r\n if (this.el.nativeElement != null) {\r\n let v = this.el.nativeElement.value;\r\n if (v == null || v == '') {\r\n this.valueChanged.emit(null);\r\n return;\r\n } else {\r\n this.valueChanged.emit(Number(v.replace(',','.')))\r\n }\r\n }\r\n }\r\n\r\n private numberToString(value: number, decimals: number): string {\r\n if (value == null) {\r\n return '';\r\n }\r\n\r\n if (decimals == null) {\r\n return value.toString().replace('.', ',');\r\n }\r\n\r\n let result = value.toString().replace('.', ',');\r\n if (decimals <= 0) {\r\n var split = result.split(',');\r\n if (split.length == 2 && Number(split[1]) > 0) {\r\n return Math.round(value).toString().replace(\".\", \",\").split(',')[0];\r\n }\r\n return result.split(',')[0];\r\n }\r\n\r\n if (result.indexOf(',') < 0) {\r\n result += ',0';\r\n }\r\n\r\n let decimalPart = result.split(',')[1];\r\n if (decimalPart.length == decimals) {\r\n return result;\r\n }\r\n\r\n if (decimalPart.length <= decimals) {\r\n return result.split(',')[0] + ',' + String(decimalPart + '00000000000000000' + decimalPart).substring(0, decimals);\r\n }\r\n\r\n var round = Number('1' + String('00000000000000000').slice((-1) * decimals));\r\n\r\n var roundedValue = Math.round(value * round) / round;\r\n\r\n return this.numberToString(roundedValue, decimals);\r\n }\r\n\r\n}\r\n","import { Directive, ElementRef, input, output, effect, inject } from '@angular/core';\r\n\r\n@Directive({ selector: '[ko-focus]' })\r\nexport class KoFocusDirective {\r\n\r\nprivate hostElement: ElementRef = inject(ElementRef);\r\n\r\n focus = input<boolean>(false, { alias: 'ko-focus' });\r\n focusChange = output<boolean>({ alias: 'ko-focusChange' });\r\n\r\n constructor() { \r\n effect(() => {\r\n const isFocused = this.focus();\r\n if (isFocused) {\r\n setTimeout(() => {\r\n this.hostElement.nativeElement.focus();\r\n this.focusChange.emit(false);\r\n },10);\r\n }\r\n })\r\n }\r\n}\r\n","import { NgClass } from '@angular/common';\r\nimport { Component, Input, ViewEncapsulation, ChangeDetectionStrategy } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'ko-alert',\r\n templateUrl: './koalert.component.html',\r\n styleUrls: ['./koalert.component.scss'],\r\n imports:[NgClass],\r\n changeDetection: ChangeDetectionStrategy.Eager,\n encapsulation: ViewEncapsulation.None\r\n})\r\n\r\nexport class KoAlertComponent {\r\n\r\n @Input('align') align: string = 'left';\r\n constructor() {\r\n }\r\n}\r\n","<div [ngClass]=\"align\"><ng-content></ng-content></div>\r\n","import { NgClass } from '@angular/common';\r\nimport { Component, input, ViewEncapsulation, ChangeDetectionStrategy } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'ko-header',\r\n templateUrl: './koheader.component.html',\r\n styleUrls: ['./koheader.component.scss'],\r\n imports:[NgClass],\r\n changeDetection: ChangeDetectionStrategy.Eager,\n encapsulation: ViewEncapsulation.None\r\n})\r\n\r\nexport class KoHeaderComponent {\r\n\r\n align = input<string>('left');\r\n\r\n}\r\n","<div [ngClass]=\"align()\"><ng-content></ng-content></div>\r\n","import { Directive, ElementRef, HostListener, input, AfterViewInit, inject, effect } from '@angular/core';\r\n\r\n@Directive({ selector: '[ko-write]' })\r\nexport class KoWriteDirective {\r\n\r\n direction = input<string>('up', { alias: 'ko-write' });\r\n private hostElement: ElementRef = inject(ElementRef);\r\n\r\n constructor() { \r\n effect(() => {\r\n const dir = this.direction();\r\n this.render();\r\n });\r\n }\r\n\r\n\r\n\r\n\r\n private render(): void {\r\n var host = this.hostElement.nativeElement as HTMLElement;\r\n if (host.parentElement) {\r\n var parent = host.parentElement as HTMLElement;\r\n\r\n parent.style.overflow = \"hidden\"; \r\n\r\n var h = parent.offsetHeight;\r\n var w = parent.offsetWidth;\r\n\r\n\r\n if (h && w) {\r\n host.style.width = h.toString() + \"px\";\r\n host.style.height = w.toString() + \"px\";\r\n host.style.lineHeight = w.toString() + \"px\";\r\n host.style.textAlign = \"center\";\r\n host.style.position = \"relative\";\r\n host.style.transformOrigin = \"0% 0%\";\r\n host.style.display = \"inline-block\";\r\n\r\n if (this.direction() == \"up\") {\r\n host.style.transform = \"rotate(-90deg)\";\r\n host.style.top = h.toString() + \"px\";\r\n } else {\r\n host.style.transform = \"rotate(90deg)\";\r\n host.style.left = w.toString() + \"px\";\r\n }\r\n }\r\n }\r\n }\r\n}\r\n","\r\nexport interface KoNavigation {\r\n id: string;\r\n title: string | null;\r\n disabled: boolean;\r\n click: any;\r\n over: boolean | null;\r\n cssClass: string | null;\r\n imgUrl: string | null;\r\n }\r\n \r\n export class KoDivider implements KoNavigation {\r\n id: string;\r\n title: string | null;\r\n disabled: boolean;\r\n click: any = null;\r\n over: boolean | null = null;\r\n cssClass: string | null = null;\r\n imgUrl: string | null = null;\r\n \r\n constructor() {\r\n this.id = \"##divider##\";\r\n this.title = \"\";\r\n this.disabled = true;\r\n }\r\n }\r\n \r\n export class KoNavigationByCssClass implements KoNavigation {\r\n id: string;\r\n title: string | null = null;\r\n disabled: boolean;\r\n cssClass: string;\r\n click: any;\r\n over: boolean | null = null;\r\n imgUrl: string | null = null;\r\n \r\n constructor(id: string, cssClass: string)\r\n constructor(id: string, cssClass: string, disabled: boolean)\r\n constructor(id: string, cssClass: string, disabled: boolean, title: string)\r\n constructor(id: string, cssClass: string, disabled: boolean, title: string, click: any)\r\n constructor(id: string, cssClass: string, disabled: boolean = false, title: string | null = null, click: any = null ) {\r\n this.id = id;\r\n this.title = title;\r\n this.disabled = disabled;\r\n this.cssClass = cssClass;\r\n this.click = click;\r\n }\r\n }\r\n \r\n export class KoNavigationByImageUrl implements KoNavigation {\r\n id: string;\r\n title: string | null = null;\r\n disabled: boolean;\r\n imgUrl: string;\r\n click: any;\r\n over: boolean | null = null;\r\n cssClass: string | null = null;\r\n \r\n constructor(id: string, imgUrl: string)\r\n constructor(id: string, imgUrl: string, disabled: boolean)\r\n constructor(id: string, imgUrl: string, disabled: boolean, title: string)\r\n constructor(id: string, imgUrl: string, disabled: boolean, title: string, click: any)\r\n constructor(id: string, imgUrl: string, disabled: boolean = false, title: string | null = null, click: any = null) {\r\n this.id = id;\r\n this.title = null;\r\n this.disabled = disabled;\r\n this.imgUrl = imgUrl;\r\n this.click = null;\r\n }\r\n }\r\n ","import { Component, input, output, ElementRef, AfterViewInit, inject, ViewEncapsulation, signal, ChangeDetectionStrategy } from '@angular/core';\r\n\r\nimport { KoDivider, KoNavigation, KoNavigationByCssClass, KoNavigationByImageUrl } from '../../models/navigation.interface';\r\nimport { NgClass } from '@angular/common';\r\n\r\n@Component({\r\n selector: 'ko-left-menu',\r\n templateUrl: './koleftmenu.component.html',\r\n styleUrls: ['./koleftmenu.component.scss'],\r\n imports: [NgClass],\r\n changeDetection: ChangeDetectionStrategy.Eager,\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class KoLeftMenuComponent implements AfterViewInit {\r\n private er: ElementRef = inject(ElementRef);\r\n\r\n items = input<(KoNavigation)[]>([]);\r\n current = input<string | null>(null);\r\n currentChange = output<string | null>();\r\n\r\n private itemheight$ = signal<string>('');\r\n over = signal<KoNavigation | null>(null);\r\n\r\n constructor() {\r\n }\r\n\r\n\r\n itemheight(v: KoNavigation) {\r\n if (v.id == \"##divider##\") {\r\n return '2px';\r\n }\r\n return this.itemheight$();\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n setTimeout(() => {\r\n this.itemheight$.set( (this.er.nativeElement.offsetWidth - 40).toString() + \"px\");\r\n }, 1);\r\n }\r\n\r\n setCurrent(item: KoNavigation): void {\r\n if (!item.disabled) {\r\n if (item.click == null) {\r\n this.currentChange.emit(item.id);\r\n } else {\r\n item.click();\r\n }\r\n }\r\n }\r\n\r\n overItem(v: KoNavigation | null): void {\r\n if (v != null && !v.disabled) {\r\n this.over.set(v);\r\n }\r\n }\r\n\r\n outItem(): void {\r\n this.over.set(null);\r\n }\r\n}\r\n","@for(item of items(); track item) {\r\n<div\r\n (click)=\"setCurrent(item)\"\r\n class=\"ko-left-menu-item\"\r\n [ngClass]=\"{ current: item.id == current(), disabled: item.disabled == true && item.id != '##divider##', over: item == over(), divider: item.id == '##divider##' }\"\r\n (mouseover)=\"overItem(item)\"\r\n (mouseleave)=\"outItem()\"\r\n [style.height]=\"itemheight(item)\"\r\n >\r\n @if (item.title != null && item.title != '' && item.id != '##divider##' && item.cssClass == null && item.imgUrl == null){<span>{{ item.title }}</span>}\r\n @if (item.cssClass != null && item.cssClass != ''){ <span class=\"byclass\" [ngClass]=\"item.cssClass\" [title]=\"item.title\"></span> }\r\n @if (item.imgUrl != null){<img [src]=\"item.imgUrl\" [alt]=\"item.title\" />}\r\n</div>\r\n}\r\n<ng-content></ng-content>\r\n","import { Component, input, output, signal, inject, ElementRef, AfterViewInit, ViewEncapsulation, ChangeDetectionStrategy } from '@angular/core';\r\n\r\nimport { KoNavigation } from '../../models/navigation.interface';\r\nimport { NgClass } from '@angular/common';\r\n\r\n@Component({\r\n selector: 'ko-top-menu',\r\n templateUrl: './kotopmenu.component.html',\r\n styleUrls: ['./kotopmenu.component.scss'],\r\n imports: [NgClass],\r\n changeDetection: ChangeDetectionStrategy.Eager,\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class KoTopMenuComponent implements AfterViewInit {\r\n\r\n private er: ElementRef = inject(ElementRef);\r\n\r\n items = input<(KoNavigation)[]>([]);\r\n current = input<string | null>(null);\r\n currentChange = output<string | null>();\r\n\r\n over = signal<KoNavigation | null>(null);\r\n\r\n topcornerwidth = signal<string>('');\r\n\r\n constructor() {\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n setTimeout(() => {\r\n this.topcornerwidth.set(this.er.nativeElement.offsetHeight.toString() + \"px\");\r\n }, 1);\r\n }\r\n\r\n setCurrent(item: KoNavigation): void {\r\n if (!item.disabled) {\r\n if (item.click == null) {\r\n this.currentChange.emit(item.id);\r\n } else {\r\n item.click();\r\n }\r\n }\r\n }\r\n\r\n itemwidth(v: KoNavigation) {\r\n if (v.id == \"##divider##\") {\r\n return '0';\r\n }\r\n return this.topcornerwidth();\r\n }\r\n\r\n\r\n overItem(v: KoNavigation | null): void {\r\n if (v != null && !v.disabled) {\r\n this.over.set(v);\r\n }\r\n }\r\n\r\n outItem(): void {\r\n this.over.set(null);\r\n }\r\n}\r\n","<div class=\"ko-top-menu-corner\" [style.width]=\"topcornerwidth()\"></div>\r\n@for (item of items(); track item) {\r\n<div (click)=\"setCurrent(item)\"\r\n class=\"ko-top-menu-item\"\r\n [ngClass]=\"{ current: item.id == current(), disabled: item.disabled == true && item.id != '##divider##', over: item == over(), divider: item.id == '##divider##' }\"\r\n (mouseover)=\"overItem(item)\"\r\n (mouseleave)=\"outItem()\"\r\n [style.width]=\"itemwidth(item)\">\r\n @if (item.title != null && item.title != '' && item.id != '##divider##' && item.cssClass==null && item.imgUrl==null) {<span>{{ item.title }}</span>}\r\n @if (item.cssClass != null && item.cssClass != ''){<span class=\"byclass\" [ngClass]=\"item.cssClass\" [title]=\"item.title\"></span>}\r\n @if (item.imgUrl != null) {<img [src]=\"item.imgUrl\" [alt]=\"item.title\" />}\r\n</div>\r\n}\r\n<ng-content></ng-content>\r\n","import { Directive, ElementRef, HostListener, input, Output, EventEmitter, SimpleChanges, inject } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[ko-over]'\r\n})\r\nexport class KoOverDirective {\r\n\r\n private el: ElementRef = inject(ElementRef);\r\n\r\n constructor() {\r\n }\r\n\r\n current = input.required<any>({alias:'ko-over'});\r\n\r\n @HostListener('mouseover', ['$event']) onMouseover($event: MouseEvent) {\r\n const me = this.current();\r\n if (this.current != null) {\r\n me['over'] = true;\r\n }\r\n }\r\n\r\n @HostListener('mouseleave', ['$event']) onMouseleave($event: MouseEvent) {\r\n const me = this.current();\r\n if (this.current != null) {\r\n delete me['over'];\r\n }\r\n }\r\n}\r\n","import { Component, effect, input, output, signal, ViewEncapsulation, ChangeDetectionStrategy } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'ko-expansion-panel',\r\n templateUrl: './koexpansionpanel.component.html',\r\n styleUrls: ['./koexpansionpanel.component.scss'],\r\n imports: [],\r\n changeDetection: ChangeDetectionStrategy.Eager,\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class KoExpansionPanelComponent {\r\n\r\n expanded = input<boolean>(false);\r\n expandedChange = output<boolean>();\r\n\r\n isExpanded = signal<boolean>(false);\r\n\r\n constructor() {\r\n effect(() => {\r\n this.isExpanded.set(this.expanded());\r\n });\r\n }\r\n\r\n toggle(): void {\r\n this.isExpanded.set(!this.isExpanded());\r\n this.expandedChange.emit(this.isExpanded());\r\n }\r\n}\r\n","<div class=\"ko-container\">\r\n <div class=\"ko-title\">\r\n <div style=\"position: relative; width: 100%\">\r\n <div style=\"position: absolute; left: -25px; height: 40px; width: 20px; text-align: center; vertical-align: middle; cursor: pointer\" (click)=\"toggle()\">\r\n @if (!isExpanded()){<span class=\"fa fa-angle-up\"></span>}\r\n @if (isExpanded()){<span class=\"fa fa-angle-down\"></span>}\r\n </div>\r\n </div>\r\n <div (click)=\"toggle()\" style=\"cursor: pointer\"><ng-content select=\"[ko-title]\"></ng-content></div>\r\n </div>\r\n @if (isExpanded()) {\r\n <div class=\"ko-body\">\r\n <ng-content select=\"[ko-body]\"></ng-content>\r\n </div>\r\n }\r\n</div>\r\n","import { Component, ViewEncapsulation, ChangeDetectionStrategy } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'ko-horizontal-scroll',\r\n templateUrl: './kohorizontalscroll.component.html',\r\n styleUrls: ['./kohorizontalscroll.component.scss'],\r\n imports: [],\r\n changeDetection: ChangeDetectionStrategy.Eager,\n encapsulation: ViewEncapsulation.None\r\n \r\n})\r\n\r\nexport class KoHorizontalScrollComponent {\r\n constructor() {\r\n }\r\n}\r\n","<ng-content></ng-content>","import { NgStyle } from '@angular/common';\r\nimport { Component, effect, input, Signal, signal, ViewEncapsulation, ChangeDetectionStrategy } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'ko-horizontal-split',\r\n templateUrl: './kohorizontalsplit.component.html',\r\n styleUrls: ['./kohorizontalsplit.component.scss'],\r\n imports: [NgStyle],\r\n changeDetection: ChangeDetectionStrategy.Eager,\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class KoHorizontalSplitComponent {\r\n\r\n height = input<string>(\"50%\");\r\n fixed = input<'top' | 'bottom'>('top');\r\n\r\n constructor() {\r\n effect(() => {\r\n const h = this.height();\r\n const f = this.fixed();\r\n this.init();\r\n });\r\n }\r\n\r\n topStyle = signal<any>({});\r\n bottomStyle = signal<any>({});\r\n\r\n private init(): void {\r\n if (this.fixed() == 'top') {\r\n this.topStyle.set({\r\n height: this.height()\r\n });\r\n this.bottomStyle.set( {\r\n top: this.height()\r\n });\r\n } else {\r\n this.topStyle.set({\r\n bottom: this.height()\r\n });\r\n this.bottomStyle.set({\r\n height: this.height()\r\n });\r\n }\r\n }\r\n}\r\n","<div class=\"ko-top\" [ngStyle]=\"topStyle()\">\r\n <ng-content select=\"[ko-top]\"></ng-content>\r\n</div>\r\n<div class=\"ko-bottom\" [ngStyle]=\"bottomStyle()\">\r\n <ng-content select=\"[ko-bottom]\"></ng-content>\r\n</div>\r\n","import { Component, ViewEncapsulation, ChangeDetectionStrategy } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'ko-main',\r\n templateUrl: './komain.component.html',\r\n styleUrls: ['./komain.component.scss'],\r\n imports: [],\r\n changeDetection: ChangeDetectionStrategy.Eager,\n encapsulation: ViewEncapsulation.None\r\n\r\n\r\n})\r\nexport class KoMainComponent {\r\n constructor() {\r\n }\r\n}\r\n","<ng-content></ng-content>","import { NgStyle } from '@angular/common';\r\nimport { Component, input, ElementRef, ViewChild, ViewEncapsulation, OnChanges, AfterViewInit, ChangeDetectorRef, inject, effect, signal, ChangeDetectionStrategy } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'ko-table-panel',\r\n templateUrl: './kotablepanel.component.html',\r\n styleUrls: ['./kotablepanel.component.scss'],\r\n imports: [NgStyle],\r\n changeDetection: ChangeDetectionStrategy.Eager,\n encapsulation: ViewEncapsulation.None\r\n\r\n})\r\n\r\nexport class KoTablePanelComponent implements AfterViewInit {\r\n\r\n @ViewChild('tableheader') tableheader!: ElementRef;\r\n @ViewChild('tablebody') tablebody!: ElementRef;\r\n @ViewChild('tablefooter') tablefooter!: ElementRef;\r\n\r\n height = input<string>('40px');\r\n\r\n private cdRef: ChangeDetectorRef = inject(ChangeDetectorRef);\r\n\r\n constructor() {\r\n effect(() => {\r\n const h = this.height();\r\n this.doSetStyle();\r\n\r\n });\r\n }\r\n\r\n\r\n private topHeight!: string;\r\n private fotHeight!: string;\r\n\r\n private hasTop: boolean = true;\r\n private hasFot: boolean = true;\r\n\r\n topStyle = signal<any>({});\r\n bodStyle = signal<any>({});\r\n fotStyle = signal<any>({});\r\n\r\n ngAfterViewInit(): void {\r\n this.hasTop = this.tableheader.nativeElement != null && this.tableheader.nativeElement.children.length > 0;\r\n this.hasFot = this.tablefooter.nativeElement != null && this.tablefooter.nativeElement.children.length > 0;\r\n this.cdRef.detectChanges();\r\n\r\n this.setStyle();\r\n }\r\n\r\n updateScroll() {\r\n const header = this.tableheader.nativeElement as HTMLElement;\r\n const body = this.tablebody.nativeElement as HTMLElement;\r\n const footer = this.tablefooter.nativeElement as HTMLElement;\r\n\r\n var toScroll = this.hasFot ? footer.scrollLeft : body.scrollLeft;\r\n\r\n if (this.hasTop) {\r\n header.scrollLeft = toScroll;\r\n }\r\n\r\n if (this.hasFot) {\r\n footer.scrollLeft = toScroll;\r\n }\r\n\r\n body.scrollLeft = toScroll;\r\n }\r\n\r\n private setStyle(): void {\r\n\r\n var spl = this.height().split(' ');\r\n if (spl.length == 2) {\r\n this.topHeight = spl[0];\r\n this.fotHeight = spl[1];\r\n } else {\r\n this.topHeight = spl[0];\r\n this.fotHeight = spl[0];\r\n }\r\n setTimeout(() => this.doSetStyle(), 10);\r\n }\r\n\r\n private doSetStyle(): void {\r\n if (this.hasTop && this.hasFot) {\r\n this.topStyle.set({\r\n height: this.topHeight,\r\n display: 'block'\r\n });\r\n\r\n this.bodStyle.set({\r\n top: this.topHeight,\r\n bottom: this.fotHeight,\r\n \"overflow-x\": \"hidden\"\r\n });\r\n\r\n this.fotStyle.set({\r\n height: this.fotHeight,\r\n display:' block'\r\n })\r\n return;\r\n }\r\n\r\n if (this.hasTop && !this.hasFot) {\r\n this.topStyle.set({\r\n height: this.topHeight,\r\n display: 'block'\r\n });\r\n\r\n this.bodStyle.set({\r\n top: this.topHeight,\r\n bottom: 0,\r\n \"overflow-x\" : \"auto\"\r\n });\r\n\r\n this.fotStyle.set({\r\n display: 'none'\r\n });\r\n return;\r\n }\r\n\r\n if (!this.hasTop && this.hasFot) {\r\n this.topStyle.set({\r\n display: 'none'\r\n });\r\n\r\n this.bodStyle.set({\r\n top: 0,\r\n bottom: this.fotHeight\r\n });\r\n\r\n this.fotStyle.set({\r\n height: this.fotHeight,\r\n display: 'block'\r\n });\r\n return;\r\n }\r\n\r\n if (!this.hasTop && !this.hasFot) {\r\n this.topStyle.set({\r\n display: 'none'\r\n });\r\n\r\n this.bodStyle.set({\r\n top: 0,\r\n bottom: 0\r\n });\r\n\r\n this.fotStyle.set({\r\n display: 'none'\r\n })\r\n }\r\n }\r\n}\r\n","<div class=\"ko-table\">\r\n <div class=\"ko-table-header\" [ngStyle]=\"topStyle()\" #tableheader>\r\n <ng-content select=\"[ko-table-header]\"></ng-content>\r\n </div>\r\n <div class=\"ko-table-body\" [ngStyle]=\"bodStyle()\" #tablebody (scroll)=\"updateScroll()\">\r\n <ng-content select=\"[ko-table-body]\"></ng-content>\r\n </div>\r\n <div class=\"ko-table-footer\" [ngStyle]=\"fotStyle()\" #tablefooter (scroll)=\"updateScroll()\">\r\n <ng-content select=\"[ko-table-footer]\"></ng-content>\r\n </div>\r\n</div>\r\n","import { Component, ViewEncapsulation, ChangeDetectionStrategy } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'ko-title-panel',\r\n templateUrl: './kotitlepanel.component.html',\r\n styleUrls: ['./kotitlepanel.component.scss'],\r\n imports: [],\r\n changeDetection: ChangeDetectionStrategy.Eager,\n encapsulation: ViewEncapsulation.None\r\n \r\n})\r\n\r\nexport class KoTitlePanelComponent {\r\n constructor() {\r\n }\r\n}\r\n","<div class=\"ko-container\">\r\n <div class=\"ko-title\">\r\n <ng-content select=\"[ko-title]\"></ng-content>\r\n </div>\r\n <div class=\"ko-body\">\r\n <ng-content select=\"[ko-body]\"></ng-content>\r\n </div>\r\n</div>\r\n","import { Component, ViewEncapsulation, ChangeDetectionStrategy } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'ko-vertical-scroll',\r\n templateUrl: './koverticalscroll.component.html',\r\n styleUrls: ['./koverticalscroll.component.scss'],\r\n imports: [],\r\n changeDetection: ChangeDetectionStrategy.Eager,\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class KoVerticalScrollComponent {\r\n constructor() {\r\n }\r\n}\r\n","<ng-content></ng-content>","import { Component, ViewEncapsulation, ChangeDetectionStrategy } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'ko-view',\r\n templateUrl: './koview.component.html',\r\n styleUrls: ['./koview.component.scss'],\r\n imports: [],\r\n changeDetection: ChangeDetectionStrategy.Eager,\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class KoViewComponent {\r\n constructor() {\r\n }\r\n}\r\n","<ng-content></ng-content>","import { NgStyle } from '@angular/common';\r\nimport { Component, effect, input, signal, ViewEncapsulation, ChangeDetectionStrategy } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'ko-vertical-split',\r\n templateUrl: './koverticalsplit.component.html',\r\n styleUrls: ['./koverticalsplit.component.scss'],\r\n imports: [NgStyle],\r\n changeDetection: ChangeDetectionStrategy.Eager,\n encapsulation: ViewEncapsulation.None\r\n\r\n})\r\nexport class KoVerticalSplitComponent {\r\n\r\n width = input<string>('50%');\r\n fixed = input<'left' | 'right'>('left');\r\n\r\n constructor() {\r\n effect(() => {\r\n const w = this.width();\r\n const f = this.fixed();\r\n this.init();\r\n });\r\n }\r\n\r\n leftStyle = signal<any>({});\r\n rightStyle = signal<any>({});\r\n\r\n\r\n private init(): void {\r\n if (this.fixed() == 'left') {\r\n this.leftStyle.set({\r\n width: this.width()\r\n });\r\n\r\n this.rightStyle.set({\r\n left: this.width()\r\n });\r\n } else {\r\n this.leftStyle.set({\r\n right: this.width()\r\n });\r\n this.rightStyle.set({\r\n width: this.width()\r\n });\r\n }\r\n }\r\n}\r\n","<div class=\"ko-left\" [ngStyle]=\"leftStyle()\">\r\n <ng-content select=\"[ko-left]\"></ng-content>\r\n</div>\r\n<div class=\"ko-right\" [ngStyle]=\"rightStyle()\">\r\n <ng-content select=\"[ko-right]\"></ng-content>\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { KoHorizontalScrollComponent } from './panels/kohorizontalscroll/kohorizontalscroll.component';\r\nimport { KoHorizontalSplitComponent } from './panels/kohorizontalsplit/kohorizontalsplit.component';\r\nimport { KoMainComponent } from './panels/komain/komain.component';\r\nimport { KoTitlePanelComponent } from './panels/kotitlepanel/kotitlepanel.component';\r\nimport { KoVerticalScrollComponent } from './panels/koverticalscroll/koverticalscroll.component';\r\nimport { KoVerticalSplitComponent } from './panels/koverticalsplit/koverticalsplit.component';\r\nimport { KoViewComponent } from './panels/koview/koview.component';\r\nimport { KoExpansionPanelComponent } from './panels/koexpansionpanel/koexpansionpanel.component';\r\nimport { KoTablePanelComponent } from './panels/kotablepanel/kotablepanel.component';\r\nimport { KoButtonGroupComponent } from './forms/kobuttongroup/kobuttongroup.component';\r\nimport { KoDecimalDirective } from './forms/kodecimal.directive';\r\nimport { KoFocusDirective } from './forms/kofocus.directive';\r\nimport { KoAlertComponent } from './message/koalert/koaleret.component';\r\nimport { KoHeaderComponent } from './message/koheader/koheader.component';\r\nimport { KoOverDirective } from './navigation/koover.directive';\r\nimport { KoTopMenuComponent } from './navigation/kotopmenu/kotopmenu.component';\r\nimport { KoLeftMenuComponent } from './navigation/koleftmenu/koleftmenu.component';\r\nimport { KoWriteDirective } from './message/kowrite.directive';\r\n\r\n\r\n@NgModule({\r\n imports: [\r\n KoHorizontalScrollComponent,\r\n KoHorizontalSplitComponent,\r\n KoMainComponent,\r\n KoTitlePanelComponent,\r\n KoVerticalScrollComponent,\r\n KoVerticalSplitComponent,\r\n KoViewComponent,\r\n KoExpansionPanelComponent,\r\n KoTablePanelComponent,\r\n KoButtonGroupComponent,\r\n KoDecimalDirective,\r\n KoFocusDirective,\r\n KoAlertComponent,\r\n KoHeaderComponent,\r\n KoOverDirective,\r\n KoTopMenuComponent,\r\n KoLeftMenuComponent,\r\n KoWriteDirective\r\n ],\r\n exports: [\r\n KoHorizontalScrollComponent,\r\n KoHorizontalSplitComponent,\r\n KoMainComponent,\r\n KoTitlePanelComponent,\r\n KoVerticalScrollComponent,\r\n KoVerticalSplitComponent,\r\n KoViewComponent,\r\n KoExpansionPanelComponent,\r\n KoTablePanelComponent,\r\n KoButtonGroupComponent,\r\n KoDecimalDirective,\r\n KoFocusDirective,\r\n KoAlertComponent,\r\n KoHeaderComponent,\r\n KoOverDirective,\r\n KoTopMenuComponent,\r\n KoLeftMenuComponent,\r\n KoWriteDirective\r\n ]\r\n})\r\nexport class KiponUiModule { }\r\n","import { Injectable } from \"@angular/core\";\r\nimport { NativeDateAdapter } from \"@angular/material/core\";\r\n\r\n@Injectable({providedIn:\"root\"})\r\nexport class DKCustomDateAdapter extends NativeDateAdapter {\r\n\r\n override format(date: Date | null, displayFormat: Object): string {\r\n if (!date) return '';\r\n\r\n const day = this.pad(date.getDate());\r\n const month = this.pad(date.getMonth() + 1);\r\n const year = date.getFullYear();\r\n\r\n return `${day}-${month}-${year}`;\r\n }\r\n\r\n override parse(value: any): Date | null {\r\n if (typeof value !== 'string' || !value.trim()) return null;\r\n\r\n const parts = value.split('-');\r\n if (parts.length !== 3) return null;\r\n\r\n const day = Number(parts[0]);\r\n const month = Number(parts[1]) - 1;\r\n const year = Number(parts[2]);\r\n\r\n const date = new Date(year, month, day);\r\n\r\n return isNaN(date.getTime()) ? null : date;\r\n }\r\n\r\n private pad(n: number): string {\r\n return n < 10 ? `0${n}` : `${n}`;\r\n }\r\n}\r\n","const formatters = new Map<number, Intl.NumberFormat>();\r\n\r\nexport const nFormater = {\r\n localizer: \"da-DK\",\r\n format(value: number, decimals: number): string {\r\n\r\n let formatter = formatters.get(decimals);\r\n\r\n if (!formatter) {\r\n formatter = new Intl.NumberFormat(this.localizer, {\r\n minimumFractionDigits: decimals,\r\n maximumFractionDigits: decimals,\r\n });\r\n\r\n formatters.set(decimals, formatter);\r\n }\r\n return formatter.format(value);\r\n },\r\n flex(value: number): string {\r\n let formatter = formatters.get(9999);\r\n\r\n if (!formatter) {\r\n formatter = new Intl.NumberFormat(this.localizer, {\r\n minimumFractionDigits: 0,\r\n maximumFractionDigits: 10});\r\n\r\n formatters.set(9999, formatter);\r\n }\r\n return formatter.format(value);\r\n }\r\n };","import { Injectable, signal, Signal, WritableSignal } from '@angular/core';\r\nimport { BehaviorSubject, Subject } from 'rxjs';\r\nimport { ISelectable, ISelectableService } from '../api/iselectable.interface';\r\n\r\nexport interface SelectedListContainer {\r\n selected: string[],\r\n empty: boolean,\r\n loaded: boolean\r\n}\r\n\r\nexport interface SelectedLists {\r\n [key: string]: BehaviorSubject<SelectedListContainer>\r\n}\r\n\r\nexport interface NotSelectedLists {\r\n [key: string]: BehaviorSubject<boolean>\r\n}\r\n\r\nexport interface LastSelectedItems {\r\n [key: string]: SelectedListContainer;\r\n}\r\n\r\nexport interface ServiceBinds {\r\n [key: string]: ISelectableService;\r\n}\r\n\r\nexport interface Counts {\r\n [key: string]: WritableSignal<number>;\r\n}\r\n\r\n\r\n@Injectable({providedIn:'root'})\r\nexport class SelectedService {\r\n\r\n private selectedItems: SelectedLists = {} as SelectedLists;\r\n private notSelectedItems: NotSelectedLists = {} as NotSelectedLists;\r\n private lastSelectedItems: LastSelectedItems = {} as LastSelectedItems;\r\n private binds: ServiceBinds = {} as ServiceBinds;\r\n private keys: string[] = [];\r\n private nots: string[] = [];\r\n private counts: Counts = {};\r\n\r\n private resetFilter$: Subject<void>;\r\n\r\n constructor() {\r\n this.resetFilter$ = new Subject<void>();\r\n }\r\n\r\n resetAll() {\r\n this.resetFilter$.next();\r\n }\r\n\r\n reset(): Subject<void> {\r\n return this.resetFilter$;\r\n }\r\n\r\n get(key: string): BehaviorSubject<SelectedListContainer> {\r\n if (this.selectedItems[key] != null) {\r\n return this.selectedItems[key];\r\n }\r\n this.selectedItems[key] = new BehaviorSubject<SelectedListContainer>({ selected: [], empty: false, loaded: false });\r\n this.lastSelectedItems[key] = { selected: [], empty: false, loaded: false };\r\n this.keys.push(key);\r\n return this.selectedItems[key];\r\n }\r\n\r\n count(key: string): Signal<number> {\r\n if (this.counts[key] != null) {\r\n return this.counts[key];\r\n }\r\n\r\n const con = this.get(key);\r\n this.counts[key] = signal<number>(con.value.selected.length);\r\n return this.counts[key];\r\n }\r\n\r\n bind(service: ISelectableService): void {\r\n this.binds[service.key] = service;\r\n }\r\n\r\n not(key: string): BehaviorSubject<boolean> {\r\n if (this.notSelectedItems[key] != null) {\r\n return this.notSelectedItems[key];\r\n }\r\n this.notSelectedItems[key] = new BehaviorSubject<boolean>(false);\r\n this.nots.push(key);\r\n return this.notSelectedItems[key];\r\n }\r\n\r\n push(key: string, values: string[]) {\r\n const selector = this.binds[key];\r\n if (selector != null && selector != undefined) {\r\n selector.items().value.forEach(r => {\r\n r.selected = values.find(v => v == r.id) != null;\r\n });\r\n const tobepublished = selector.items().value.filter(r => r.selected == true).map(r => r.id);\r\n this.publish(key, tobepublished, false);\r\n } else {\r\n throw '[' + key + ']' + ' er ikke blevet bundet til service';\r\n }\r\n }\r\n\r\n publish(key: string, values: string[], empty: boolean) {\r\n var beh = this.get(key);\r\n var value = beh.value;\r\n value.selected = values;\r\n value.empty = empty;\r\n\r\n var las = this.lastSelectedItems[key];\r\n\r\n if (!las.loaded || !this.isSame(value, las)) {\r\n las.loaded = true;\r\n las.empty = value.empty;\r\n las.selected = value.selected;\r\n beh.next(value);\r\n }\r\n\r\n if (this.counts[key] != null) {\r\n this.counts[key].set(values.length);\r\n }\r\n }\r\n\r\n silentUnselectAll(items?: BehaviorSubject<ISelectable[]>) {\r\n if (items != undefined) {\r\n items.value.forEach(r => { r.selected = false; });\r\n }\r\n }\r\n\r\n toggleNot(k: string) {\r\n const n = this.not(k);\r\n const next = !n.value;\r\n n.next(next);\r\n }\r\n\r\n clearAllNots() {\r\n this.nots.forEach(n => {\r\n if (this.notSelectedItems[n].value == true) {\r\n this.notSelectedItems[n].next(false);\r\n }\r\n });\r\n }\r\n\r\n private isSame(next: SelectedListContainer,last: SelectedListContainer): boolean {\r\n if (next.empty != last.empty) return false;\r\n if (next.selected.length != last.selected.length) return false;\r\n\r\n for (var i=0;i<next.selected.length;i++) {\r\n if (next.selected[i] != last.selected[i]) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n } \r\n}\r\n","import { NgClass } from '@angular/common';\r\nimport { Component, input, output, OnInit, OnDestroy, inject, ChangeDetectionStrategy } from '@angular/core';\r\nimport { MatIcon } from '@angular/material/icon';\r\nimport { Subscription } from 'rxjs';\r\nimport { MatBadge } from '@angular/material/badge';\r\nimport { ISelectable, ISelectableService } from '../api/iselectable.interface';\r\nimport { SelectedService } from '../services/selected.service';\r\n\r\n\r\nexport interface IGroupedSelectable {\r\n group?: string;\r\n items: ISelectable[];\r\n}\r\n\r\n@Component({\r\n selector: 'xrmui-info',\r\n templateUrl: './info.xrmui.html',\r\n styleUrl: './info.xrmui.scss',\r\n changeDetection: ChangeDetectionStrategy.Eager,\n imports: [MatIcon,MatBadge]\r\n})\r\nexport class XrmuiInfo implements OnInit, OnDestroy {\r\n\r\n private selectedService: SelectedService = inject(SelectedService);\r\n\r\n label = input<string>();\r\n onlyshowselected = input<boolean>(false);\r\n items = input<ISelectableService>();\r\n icon = input<string>();\r\n click = output<void>();\r\n clear = output<void>();\r\n badget = input<number>();\r\n\r\n list$?: Subscription;\r\n list: ISelectable[] = [];\r\n\r\n select$?: Subscription;\r\n\r\n grouped: IGroupedSelectable[] = [];\r\n\r\n over: ISelectable | null = null;\r\n\r\n isnot: boolean = false;\r\n isnot$?: Subscription;\r\n\r\n constructor() {\r\n }\r\n\r\n ngOnInit() {\r\n const service = this.items();\r\n\r\n if (service != null) {\r\n this.select$ = this.selectedService.get(service.key).subscribe(v => {\r\n this.list = this.list.filter(v => v.selected == true);\r\n });\r\n\r\n this.list$ = service.items().subscribe(r => {\r\n this.list = r.filter(v => v.selected == true);\r\n this.doGrouping();\r\n });\r\n } else {\r\n this.list$?.unsubscribe();\r\n this.select$?.unsubscribe();\r\n this.isnot$?.unsubscribe();\r\n this.list = [];\r\n this.doGrouping();\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.list$?.unsubscribe();\r\n this.isnot$?.unsubscribe();\r\n this.select$?.unsubscribe();\r\n }\r\n\r\n onClick() {\r\n this.click.emit();\r\n }\r\n\r\n doClear() {\r\n this.clear.emit();\r\n }\r\n\r\n isover(v: ISelectable) {\r\n this.over = v;\r\n }\r\n\r\n isout() {\r\n this.over = null;\r\n }\r\n\r\n remove(e: Event, v: ISelectable) {\r\n e.stopImmediatePropagation();\r\n const it = this.items();\r\n if (it) {\r\n v.selected = false;\r\n this.list = this.list.filter(r => r.selected == true);\r\n const sn = this.list.filter(r => r.selected == true).map(r => r.id);\r\n this.selectedService.publish(it.key, sn, false);\r\n this.doGrouping();\r\n }\r\n }\r\n\r\n private doGrouping() {\r\n this.grouped = [];\r\n let lastGroup: IGroupedSelectable | undefined = undefined; \r\n const result: IGroupedSelectable[] = [];\r\n\r\n this.list.forEach(v => {\r\n if (v.selected == true) {\r\n if (lastGroup == undefined) {\r\n lastGroup = { group: v.group, items: [v] };\r\n result.push(lastGroup);\r\n return;\r\n }\r\n if (lastGroup.group == v.group) {\r\n lastGroup.items.push(v);\r\n return;\r\n }\r\n\r\n lastGroup = { group: v.group, items: [v] };\r\n result.push(lastGroup);\r\n }\r\n });\r\n this.grouped = result;\r\n }\r\n}\r\n","@if (!onlyshowselected() || list.length > 0) {\r\n <div class=\"line\" (click)=\"onClick()\">\r\n @if (icon() != undefined){\r\n <div class=\"ic\">\r\n @let bad = badget() ?? 0;\r\n @if ( bad == 0) {<mat-icon fontSet=\"material-symbols-outlined\">{{ icon() }}</mat-icon>}\r\n @if (bad > 0) {<mat-icon fontSet=\"material-symbols-outlined\" [matBadge]=\"badget()\" aria-hidden=\"false\">{{ icon()\r\n }}</mat-icon>}\r\n </div>}\r\n @if (label() != undefined){<div class=\"lab\">{{ label() }}</div>}\r\n <div class=\"con\">\r\n <ng-content></ng-content>\r\n @if (list.length > 0) {\r\n @for(gr of grouped; track gr) {\r\n @if (gr.group != undefined && gr.group != '') {\r\n <div class=\"selected-item\"><b>{{ gr.group }}</b></div>\r\n }\r\n @for(li of gr.items; track li) {\r\n <div class=\"selected-item\" (mouseover)=\"isover(li)\" (mouseleave)=\"isout()\">\r\n <div class=\"selected-item-name\">{{ li.name }}</div>\r\n @if (over == li){<div class=\"selected-item-tool\" title=\"Fjern fra valgt listen\"\r\n (click)=\"remove($event, li)\"><mat-icon fontSet=\"material-symbols-outlined\"\r\n style=\"color: gray; font-size: small; height: 16px\">delete</mat-icon></div>}\r\n </div>\r\n }\r\n }\r\n }\r\n </div>\r\n </div>\r\n }","export class XrmuiPanel {\r\n orientation: 'horizontal' | 'vertical' = 'horizontal';\r\n top: string = '';\r\n bottom: string = '';\r\n height: string = '';\r\n left: string = '';\r\n right: string = '';\r\n width: string = '';\r\n style: string = '';\r\n resizeStyle: string = '';\r\n dyn: boolean = false;\r\n index: number = 0;\r\n private initialWidth: number = 0;\r\n private initialHeight: number = 0;\r\n\r\n render(isresize: boolean = false) {\r\n this.style = '';\r\n this.add('top', this.top);\r\n this.add('bottom', this.bottom);\r\n this.add('height', this.height);\r\n this.add('left', this.left);\r\n this.add('right', this.right);\r\n this.add('width', this.width);\r\n\r\n if (!isresize && this.orientation == 'vertical') {\r\n this.resizeStyle = 'left: ' + this.width;\r\n this.initialWidth = Number(this.width.replace('px',''));\r\n }\r\n\r\n if (!isresize && this.orientation == 'horizontal') {\r\n this.resizeStyle = 'top: ' + this.height;\r\n this.initialHeight = Number(this.height.replace('px',''));\r\n }\r\n }\r\n\r\n private add(s: string, v: string) {\r\n if (v != '') {\r\n if (this.style.length > 0) {\r\n this.style += \";\";\r\n }\r\n this.style += s + \": \" + v;\r\n }\r\n }\r\n\r\n moveTo(pixel: number, next: XrmuiPanel) {\r\n\r\n if (this.orientation == 'vertical') {\r\n // vertical increase/decrease width on current\r\n // vertical increase/decrease left on next\r\n const newWidth = this.initialWidth + pixel;\r\n this.width = newWidth + 'px';\r\n next.left = newWidth + 'px';\r\n this.render(true);\r\n next.render(true);\r\n }\r\n\r\n if (this.orientation == 'horizontal') {\r\n const newHeight = this.initialHeight + pixel;\r\n this.height = newHeight + 'px';\r\n next.top = newHeight + 'px';\r\n this.render(true);\r\n next.render(true);\r\n }\r\n }\r\n\r\n endResize() {\r\n if (this.orientation == 'vertical') {\r\n this.initialWidth = Number(this.width.replace('px',''));\r\n }\r\n\r\n if (this.orientation == 'horizontal') {\r\n this.initialHeight = Number(this.height.replace('px',''));\r\n }\r\n }\r\n}\r\n","import { CdkDrag } from '@angular/cdk/drag-drop';\r\nimport { NgClass } from '@angular/common';\r\nimport { AfterViewInit, Component, computed, effect, ElementRef, inject, input, OnDestroy, signal, ChangeDetectionStrategy } from '@angular/core';\r\nimport { XrmuiPanel } from '../models/xrmuipanel.model';\r\nimport { IDistance } from '../api/idistance.interface';\r\n\r\n\r\ninterface IStyle {\r\n style: string;\r\n dyn: boolean;\r\n}\r\n\r\n@Component({\r\n selector: 'xrmui-layout',\r\n templateUrl: './layout.xrmui.html',\r\n styleUrl: './layout.xrmui.scss',\r\n changeDetection: ChangeDetectionStrategy.Eager,\n imports: [CdkDrag,NgClass]\r\n})\r\nexport class XrmuiLayout implements AfterViewInit, OnDestroy {\r\n\r\n _panels = input<string>('', { alias: 'panels' });\r\n _orientation = input<'horizontal' | 'vertical'>('horizontal', {alias: 'orientation'});\r\n _resizeable = input<boolean>(false, { alias:'resizeable' });\r\n\r\n panels = signal<string>('');\r\n orientation = signal<'horizontal' | 'vertical'>('horizontal');\r\n resizeable = signal<boolean>(false);\r\n\r\n\r\n private totalHeight: number = 0;\r\n private totalWidth: number = 0;\r\n\r\n private unit: 'px' | '%' = 'px';\r\n\r\n private panellist$ = signal<XrmuiPanel[]>([]);\r\n private resized = signal<number>(0);\r\n panellist = this.panellist$.asReadonly();\r\n\r\n private viewInitialized: boolean = false;\r\n\r\n style0 = computed(() => { return this.styleFor(0) });\r\n style1 = computed(() => { return this.styleFor(1) });\r\n style2 = computed(() => { return this.styleFor(2) });\r\n style3 = computed(() => { return this.styleFor(3) });\r\n style4 = computed(() => { return this.styleFor(4) });\r\n\r\n private styleFor(i: number) : IStyle {\r\n const panels = this.panellist();\r\n const resize = this.resized();\r\n\r\n\r\n if (panels.length > i) {\r\n return { style: panels[i].style, dyn: panels[i].dyn }\r\n }\r\n return { style: \"display: none;\", dyn: false }\r\n }\r\n\r\n\r\n private element: ElementRef = inject(ElementRef);\r\n \r\n constructor() {\r\n effect(() => {\r\n this.panels.set(this._panels());\r\n this.orientation.set(this._orientation());\r\n this.resizeable.set(this._resizeable());\r\n \r\n if (this.viewInitialized) {\r\n this.render();\r\n }\r\n })\r\n }\r\n\r\n private resizeObserver?: ResizeObserver;\r\n\r\n ngAfterViewInit(): void {\r\n this.resizeObserver = new ResizeObserver(entries => {\r\n const width = entries[0].contentRect.width;\r\n \r\n if (width > 0) {\r\n this.render();\r\n this.viewInitialized = true;\r\n }\r\n });\r\n \r\n this.resizeObserver.observe(this.element.nativeElement); \r\n}\r\n\r\n ngOnDestroy(): void {\r\n this.resizeObserver?.disconnect();\r\n \r\n }\r\n \r\n private render(): void {\r\n this.totalWidth = this.element.nativeElement.offsetWidth;\r\n this.totalHeight = this.element.nativeElement.clientHeight;\r\n\r\n const nextpanellist: XrmuiPanel[] = [];\r\n\r\n // If panels are resizeable, we will work in px only\r\n if (this.resizeable() && this.panels() != null && this.panels().length > 1) {\r\n const ps: string[] = [];\r\n let used = 0;\r\n this.panels().split(',').forEach(r => {\r\n if (r == '?') {\r\n ps.push(r);\r\n return;\r\n }\r\n\r\n if (r.indexOf('px') >= 0) {\r\n used += this.sizeToNumber(r);\r\n ps.push(r);\r\n return;\r\n }\r\n const pct = this.sizeToNumber(r);\r\n if (this.orientation() == 'vertical') {\r\n const next = Math.round(this.totalWidth * pct / 100);\r\n used += next;\r\n ps.push(next.toString() + 'px');\r\n } else {\r\n const next = Math.round(this.totalHeight * pct / 100);\r\n used += next;\r\n ps.push(next.toString() + 'px');\r\n }\r\n });\r\n\r\n let left = this.totalHeight - used;\r\n if (this.orientation() == 'vertical') {\r\n left = this.totalWidth - used;\r\n }\r\n\r\n var freeIndex = ps.indexOf('?');\r\n if (freeIndex >= 0 && freeIndex < (ps.length - 1)) {\r\n ps[freeIndex] = left.toString() + 'px';\r\n ps[ps.length - 1] = '?';\r\n }\r\n\r\n this.panels.set(ps.join(','));\r\n }\r\n\r\n if (this.panels().length > 0) {\r\n var numbers = this.getNumbers();\r\n var countOpen = numbers.filter(r => r == -1).length;\r\n\r\n if (numbers.length > 5) {\r\n throw new Error(\"A maximum of 5 containers is supported\");\r\n }\r\n\r\n var bind: 'top' | 'bottom' = 'top';\r\n var currentcursor: number = 0;\r\n\r\n if (countOpen > 1) {\r\n throw new Error('Only one open container is supported');\r\n }\r\n\r\n for (var i=0;i<numbers.length;i++) {\r\n var num = numbers[i];\r\n var next = new XrmuiPanel();\r\n next.index = i;\r\n next.orientation = this.orientation();\r\n\r\n if (num > 0 && bind == 'top') {\r\n\r\n if (this.orientation() == 'horizontal') {\r\n next.top = currentcursor.toString() + this.toUnit(currentcursor);\r\n next.height = num.toString() + this.unit;\r\n } else {\r\n next.left = currentcursor.toString() + this.toUnit(currentcursor);\r\n next.width = num.toString() + this.unit;\r\n }\r\n currentcursor += num;\r\n nextpanellist.push(next);\r\n continue;\r\n }\r\n\r\n if (num == -1) {\r\n var sum = this.sumAfter(numbers, i);\r\n if (this.orientation() == 'horizontal') {\r\n next.top = currentcursor.toString() + this.toUnit(currentcursor);\r\n next.bottom = sum.toString() + this.toUnit(sum);\r\n } else {\r\n next.left = currentcursor.toString() + this.toUnit(currentcursor);\r\n next.right = sum.toString() + this.toUnit(sum);\r\n }\r\n next.dyn = true;\r\n nextpanellist.push(next);\r\n bind = 'bottom';\r\n continue;\r\n }\r\n\r\n if (num >= 0 && bind == 'bottom') {\r\n var sum = this.sumAfter(numbers,i);\r\n if (this.orientation() == 'horizontal') {\r\n next.bottom = sum.toString() + this.toUnit(sum);\r\n next.height = num.toString() + this.unit;\r\n } else {\r\n next.right = sum.toString() + this.toUnit(sum);\r\n next.width = num.toString() + this.unit;\r\n }\r\n nextpanellist.push(next);\r\n continue;\r\n }\r\n throw new Error(\"Unexpected handle of elements\");\r\n }\r\n\r\n nextpanellist.forEach(p => p.render());\r\n this.panellist$.set(nextpanellist);\r\n }\r\n }\r\n\r\n resize(e: any, panel: XrmuiPanel) {\r\n const d = e['distance'] as IDistance;\r\n if (panel.orientation == 'vertical') \r\n {\r\n panel.moveTo(d.x, this.panellist$()[panel.index + 1]);\r\n }\r\n\r\n if (panel.orientation == 'horizontal') {\r\n panel.moveTo(d.y, this.panellist$()[panel.index + 1]);\r\n }\r\n\r\n const r = this.resized();\r\n this.resized.set(r + 1);\r\n }\r\n\r\n drop(e: any, panel: XrmuiPanel) {\r\n panel.endResize();\r\n }\r\n\r\n private toUnit(n: number): string {\r\n if (n > 0) {\r\n return this.unit;\r\n }\r\n return '';\r\n }\r\n\r\n private getNumbers(): number[] {\r\n this.unit = 'px';\r\n var result = [] as number[];\r\n if (this.panels().length > 0) {\r\n var unitAssigned = false;\r\n this.panels().split(',').forEach(r => {\r\n if (r.indexOf('px') >= 0) {\r\n if (unitAssigned && this.unit != 'px') {\r\n throw new Error(\"unit can only be assigned once and must be consistent. Unit already set to \" + this.unit);\r\n }\r\n this.unit = 'px';\r\n unitAssigned = true;\r\n }\r\n\r\n if (r.indexOf('%') >= 0) {\r\n if (unitAssigned && this.unit != '%') {\r\n throw new Error(\"unit can only be assigned once and must be consistent. Unit already set to \" + this.unit);\r\n }\r\n this.unit = '%';\r\n unitAssigned = true;\r\n }\r\n if (r == '?') {\r\n result.push(-1);\r\n } else {\r\n result.push(this.sizeToNumber(r));\r\n }\r\n });\r\n }\r\n return result;\r\n }\r\n\r\n private sizeToNumber(r: string) {\r\n return Number(r.replace('px','').replace('%',''));\r\n }\r\n\r\n\r\n private sumAfter(numbers: number[], index: number): number {\r\n var result = 0;\r\n for (var i=index+1;i<numbers.length;i++) {\r\n result += numbers[i];\r\n }\r\n return result;\r\n }\r\n}\r\n","<div [style]=\"style0().style\" [ngClass]=\"{ dynamics: style0().dyn, horizontal: orientation() == 'horizontal', vertical: orientation() == 'vertical'}\">\r\n <ng-content select=\"[c1]\"></ng-content>\r\n</div>\r\n\r\n@if (panellist().length > 1 && resizeable()) {\r\n <div \r\n [style]=\"panellist()[0].resizeStyle\" \r\n class=\"resizer\" \r\n cdkDrag \r\n [cdkDragLockAxis]=\"orientation() == 'horizontal' ? 'y' : 'x'\" \r\n (cdkDragMoved)=\"resize($event, panellist()[0])\"\r\n (cdkDragEnded)=\"drop($event, panellist()[0])\"\r\n [ngClass]=\"{ horizontal: orientation() == 'horizontal', vertical: orientation() == 'vertical'}\"></div>\r\n}\r\n <div [style]=\"style1().style\" [ngClass]=\"{ dynamics: style1().dyn, horizontal: orientation() == 'horizontal', vertical: orientation() == 'vertical'}\"><ng-content select=\"[c2]\"></ng-content></div>\r\n <div [style]=\"style2().style\" [ngClass]=\"{ dynamics: style2().dyn, horizontal: orientation() == 'horizontal', vertical: orientation() == 'vertical'}\"><ng-content select=\"[c3]\"></ng-content></div>\r\n <div [style]=\"style3().style\" [ngClass]=\"{ dynamics: style3().dyn, horizontal: orientation() == 'horizontal', vertical: orientation() == 'vertical'}\"><ng-content select=\"[c4]\"></ng-content></div>\r\n <div [style]=\"style4().style\" [ngClass]=\"{ dynamics: style4().dyn, horizontal: orientation() == 'horizontal', vertical: orientation() == 'vertical'}\"><ng-content select=\"[c5]\"></ng-content></div>\r\n","import { Component, ChangeDetectionStrategy } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'xrmui-panel',\r\n templateUrl: './panel.xrmui.html',\r\n styleUrl: './panel.xrmui.scss',\r\n changeDetection: ChangeDetectionStrategy.Eager,\n imports: []\r\n})\r\nexport class XrmuiPanel {\r\n constructor() {\r\n }\r\n}\r\n","<ng-content></ng-content>","import { NgClass } from '@angular/common';\r\nimport { AfterContentInit, Component, computed, effect, ElementRef, inject, input, signal, ChangeDetectionStrategy } from '@angular/core';\r\nimport { MatIcon } from '@angular/material/icon';\r\n\r\n@Component({\r\n selector: 'xrmui-icon',\r\n templateUrl: './icon.xrmui.html',\r\n styleUrl: './icon.xrmui.scss',\r\n changeDetection: ChangeDetectionStrategy.Eager,\r\n imports: [NgClass,MatIcon]\r\n})\r\nexport class XrmuiIcon implements AfterContentInit {\r\n\r\n private host: ElementRef = inject(ElementRef);\r\n _icon = input<string>('', { alias: 'icon' });\r\n disabled = input<boolean>(false);\r\n type = input<'mat' | 'fa'>('mat');\r\n size = input<'12'|'24'|'36'|'48' | undefined>();\r\n\r\n icon = signal<string>('');\r\n\r\n classes = computed(() => {\r\n const i = this.icon();\r\n const d = this.disabled();\r\n const t = this.type();\r\n const f = this.size();\r\n\r\n const res = [] as string[];\r\n\r\n if (f) {\r\n res.push('f'+f);\r\n }\r\n\r\n if (d) {\r\n res.push('disabled')\r\n }\r\n\r\n if (t == 'mat') {\r\n return res;\r\n }\r\n\r\n res.push('fa');\r\n res.push(i);\r\n return res;\r\n });\r\n\r\n constructor() {\r\n effect(() => {\r\n const i = this._icon();\r\n if (i != '') {\r\n this.icon.set(i);\r\n }\r\n });\r\n }\r\n\r\n ngAfterContentInit(): void {\r\n const i = this._icon();\r\n if (i == '') {\r\n const content = this.host.nativeElement.textContent?.trim() ?? '';\r\n if (content != '') {\r\n this.icon.set(content);\r\n }\r\n }\r\n }\r\n\r\n}\r\n","<span style=\"display: none;\"><ng-content></ng-content></span>\r\n@if (icon() != '') {\r\n@if (type() == 'mat') {\r\n <mat-icon [ngClass]=\"classes()\" fontSet=\"material-symbols-outlined\">{{ icon() }}</mat-icon>\r\n}\r\n@if (type() == 'fa') {\r\n <i [ngClass]=\"classes()\"></i>\r\n}\r\n}","import { Directive, input } from \"@angular/core\";\r\nimport { ChangedNotifier } from \"../api/changednotifier.interface\";\r\n\r\n@Directive({\r\n selector: '[changeScope]',\r\n exportAs: 'changeScope',\r\n standalone: true,\r\n})\r\nexport class ChangeScopeDirective {\r\n changeScope = input.required<ChangedNotifier>();\r\n \r\n notifyChanged(): void {\r\n const cp = this.changeScope();\r\n if (cp) {\r\n cp.notifyOnChanged.call(cp);\r\n const oc = cp.onChanged;\r\n\r\n if (oc) {\r\n oc.call(cp);\r\n }\r\n }\r\n }\r\n}","import { computed, Directive, input, signal } from \"@angular/core\";\r\nimport { Form } from '../api/form.interface';\r\n\r\n@Directive({\r\n selector: '[formScope]',\r\n exportAs: 'formScope',\r\n standalone: true,\r\n})\r\nexport class FormScopeDirective {\r\n formScope = input.required<Form>();\r\n}","import { NgClass, NgTemplateOutlet } from '@angular/common';\r\nimport { Component, computed, DestroyRef, effect, ElementRef, EventEmitter, inject, input, Input, isSignal, model, OnChanges, output, Output, QueryList, Signal, signal, SimpleChanges, ViewChild, ViewChildren, ChangeDetectionStrategy, TemplateRef, ViewEncapsulation } from '@angular/core';\r\nimport { Overlay, OverlayRef } from '@angular/cdk/overlay';\r\nimport { TemplatePortal } from '@angular/cdk/portal';\r\nimport { ViewContainerRef } from '@angular/core';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { MatIcon } from '@angular/material/icon';\r\nimport { ISelectable } from '../api/iselectable.interface';\r\nimport { ISearchService } from '../api/isearchservice.interface';\r\nimport { TextFieldModule } from '@angular/cdk/text-field';\r\nimport { MatDatepickerInputEvent, MatDatepickerModule } from '@angular/material/datepicker';\r\nimport { OptionSetValue } from '../api/optionsetvalue.interface';\r\nimport { ChangeScopeDirective } from '../changedscope/changedscope.directive';\r\nimport { EntityReference } from '../api/entityreference.interface';\r\nimport { FormScopeDirective } from '../form/formscope.directive';\r\nimport { nFormater } from '../models/nformat.model';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { XrmuiIcon } from \"../icon/icon.xrmui\";\r\n\r\nexport const NAVIGATIONKEYS = ['ArrowUp','ArrowDown','ArrowLeft','ArrowRight','Escape','Tab','Enter','Backspace','Delete','End','Home','Shift','CapsLock','Insert','PageUp','PageDown','PageDown','PageDown'];\r\nexport const NUMBERS = ['0','1','2','3','4','5','6','7','8','9'];\r\nexport const DECIMALS = ['0','1','2','3','4','5','6','7','8','9',','];\r\nexport const CTRL_KEYS = ['c','C','v','V','x','X'];\r\n\r\n@Component({\r\n selector: 'xrmui-input',\r\n templateUrl: './input.xrmui.html',\r\n styleUrl: './input.xrmui.scss',\r\n changeDetection: ChangeDetectionStrategy.Eager,\r\n encapsulation: ViewEncapsulation.None,\r\n imports: [FormsModule, NgClass, MatIcon,TextFieldModule,MatDatepickerModule,MatCheckboxModule,XrmuiIcon,NgTemplateOutlet]\r\n})\r\nexport class XrmuiInput {\r\n @ViewChild('inputfield') searchElement?: ElementRef;\r\n @ViewChild('textareafield') textareaElement?: ElementRef;\r\n @ViewChild('datefield') datefieldElement?: ElementRef;\r\n @ViewChildren('option') options!: QueryList<ElementRef<HTMLDivElement>>;\r\n @ViewChild('suggestionsTemplate') suggestionsTemplate!: TemplateRef<unknown>;\r\n\r\n private overlay = inject(Overlay);\r\n private viewContainerRef = inject(ViewContainerRef);\r\n private overlayRef?: OverlayRef;\r\n\r\n private changeScope = inject(ChangeScopeDirective, {optional: true,host: true });\r\n private formScope = inject(FormScopeDirective, {optional: true,host: true });\r\n\r\n private destroyRef = inject(DestroyRef);\r\n private blurThead? : any;\r\n\r\n label = input<string>('');\r\n _shortLabel = input<boolean | 'above' | undefined>(undefined, {alias: 'short-label'});\r\n\r\n shortLabel = computed(() => {\r\n const sl = this._shortLabel();\r\n if (sl) return sl;\r\n if (this.formScope) {\r\n if (this.formScope.formScope().labeltype == \"short\") return true;\r\n if (this.formScope.formScope().labeltype == \"above\") return \"above\";\r\n }\r\n return false;\r\n });\r\n\r\n placeholder = input<string>('');\r\n\r\n value = model<string | number | Date | boolean | null | undefined>(null);\r\n _disabled = input<boolean | undefined>(undefined, { alias: 'disabled'});\r\n disabled = computed(() => {\r\n\r\n const d = this._disabled();\r\n if (d != undefined) {\r\n return d;\r\n }\r\n\r\n if (this.formScope && this.formScope.formScope().disabled != undefined) {\r\n return this.formScope.formScope().disabled ?? false;\r\n }\r\n\r\n return false;\r\n });\r\n\r\n _showlock = input<boolean | undefined>(undefined, {alias: 'showlock'});\r\n showlock = computed(() => {\r\n const sl = this._showlock();\r\n if (sl != undefined) {\r\n return sl;\r\n }\r\n\r\n if (this.formScope && this.formScope.formScope().showlock != undefined) {\r\n return this.formScope.formScope().showlock ?? true;\r\n }\r\n return true;\r\n });\r\n\r\n required = input<boolean>(false);\r\n type = input<'text' | 'number' | 'password' | 'checkbox'>('text');\r\n setfocus = model<boolean>(false);\r\n autocomplete = input<ISearchService | null>( null);\r\n selectable = input<ISelectable[] | null>(null);\r\n selected = model<ISelectable | undefined>(undefined);\r\n optionsetvalue = input<OptionSetValue | null>(null);\r\n entityreference = input<EntityReference | null>(null);\r\n onselect = output<ISelectable | undefined>();\r\n error = input<boolean>(false);\r\n validate = model<'number' | 'decimal' | 'date' | 'checkbox' | null>(null);\r\n decimals = input<number | undefined>(undefined);\r\n onfocusEvent = output<void>({ alias:'focus' });\r\n onblurEvent = output<void>({alias: 'blur'});\r\n click = output<void>();\r\n resizeable = input<boolean>(true);\r\n info = input<string | null>(null);\r\n notdark = input<boolean>(false);\r\n _autoopenonblank = input<boolean | undefined>(undefined, { alias: \"autoopenonblank\" });\r\n nullable = input<boolean>(true);\r\n\r\n release = input<number | null>(null);\r\n released = output<void>();\r\n\r\n autoopenonblank = computed(() => {\r\n const au = this._autoopenonblank();\r\n if (au != undefined) {\r\n return au;\r\n }\r\n\r\n if (this.formScope && this.formScope.formScope().autoopenonblank != undefined) {\r\n return this.formScope.formScope().autoopenonblank ?? false;\r\n }\r\n return false;\r\n });\r\n\r\n itemTemplate = input<TemplateRef<{ $implicit: ISelectable }> | undefined>();\r\n\r\n decimalsUsed = output<number>();\r\n onEnter = output<void>();\r\n\r\n toolIcon = input<string | null>(null);\r\n toolClick = output<void>();\r\n\r\n numberoflines = input(1);\r\n maxlength = input<number | null>(null);\r\n\r\n hasfocus = signal(false);\r\n search: string = '';\r\n\r\n // private items: ISelectable[] | null = null;\r\n itemlist = signal<ISelectable[]>([]);\r\n showitems = signal(false);\r\n searchthread: any | null = null;\r\n searchnumber: number = 0;\r\n\r\n current?: ISelectable;\r\n currentindex: number = -1;\r\n\r\n shadowValue = signal<string>('');\r\n shadowDate = signal<Date | null>(null);\r\n\r\n shadowBool = signal<boolean>(false);\r\n\r\n isselect = computed(() => {\r\n const s = this.selectable();\r\n if (s && s.length > 0) return true;\r\n return false;\r\n });\r\n\r\n isnumber = computed(() => this.validate() == 'decimal' || this.validate() == 'number');\r\n\r\n inputclasses = computed(() => {\r\n if (!this.isnumber()) return this.type();\r\n return this.type() + ' ' + 'number';\r\n }); \r\n\r\n constructor() {\r\n this.destroyRef.onDestroy(() => {\r\n if (this.blurThead) {\r\n clearTimeout(this.blurThead);\r\n }\r\n });\r\n\r\n effect(() => {\r\n const sf = this.setfocus();\r\n if (sf == true) {\r\n this.focusMe(undefined);\r\n setTimeout(() => {\r\n this.setfocus.set(false);\r\n },10);\r\n }\r\n });\r\n\r\n effect(() => {\r\n const type = this.type();\r\n const validate = this.validate();\r\n if (type == 'number' && validate == null) {\r\n this.validate.set('decimal');\r\n }\r\n\r\n if (type == 'checkbox' && validate != 'checkbox') {\r\n this.validate.set('checkbox');\r\n }\r\n });\r\n\r\n effect(() => {\r\n const value = this.value();\r\n if (value == null) {\r\n this.shadowValue.set('');\r\n this.shadowDate.set(null);\r\n this.shadowBool.set(false);\r\n return;\r\n }\r\n\r\n if (this.validate() == 'decimal' || this.validate() == 'number') {\r\n this.setNumberValueString();\r\n return;\r\n }\r\n\r\n if (this.validate() == 'date') {\r\n this.shadowDate.set(value as Date);\r\n return;\r\n }\r\n\r\n if (this.validate() == 'checkbox') {\r\n this.shadowBool.set(value as boolean);\r\n return;\r\n }\r\n\r\n this.shadowValue.set(value.toString());\r\n });\r\n\r\n effect(()=> {\r\n const sel = this.selected();\r\n if (sel) {\r\n this.shadowValue.set(sel.name ?? '');\r\n }\r\n });\r\n\r\n effect(() => {\r\n const osv = this.optionsetvalue();\r\n const sels = this.selectable();\r\n if (osv) {\r\n const n = osv.name$();\r\n this.shadowValue.set(n ?? '');\r\n }\r\n \r\n if (osv && sels && sels.length > 0) {\r\n const v = osv.value$();\r\n if (v != undefined) {\r\n const sel = sels.find(r => r.id == v.toString());\r\n if (sel) {\r\n this.selected.set(sel);\r\n }\r\n }\r\n };\r\n });\r\n\r\n effect(() => {\r\n const re = this.entityreference();\r\n if (re) {\r\n const name = re.name$() ?? '';\r\n this.shadowValue.set(name);\r\n }\r\n });\r\n\r\n effect(() => {\r\n const ap = this.autocomplete();\r\n\r\n if (ap) {\r\n this.bindItems(ap.items());\r\n }\r\n });\r\n\r\n effect(() => {\r\n const si = this.showitems();\r\n if (si) {\r\n this.showSuggestions();\r\n } else {\r\n this.hideSuggestions();\r\n }\r\n });\r\n }\r\n\r\n private lastBind = [] as ISelectable[];\r\n\r\n private bindItems(values: ISelectable[]) {\r\n const same = values.length === this.lastBind.length &&\r\n values.every(v => this.lastBind.includes(v));\r\n\r\n if (same) {\r\n return;\r\n }\r\n\r\n this.lastBind = values;\r\n this.itemlist.set(values);\r\n this.expandedItems = new Map<ISelectable,ISelectable[]>();\r\n }\r\n\r\n\r\n pickDate(d: MatDatepickerInputEvent<any,any>) {\r\n this.shadowDate.set(d.value);\r\n this.value.set(d.value);\r\n this.notifyOnChange();\r\n }\r\n\r\n formatNumber(n: number): string {\r\n if (Math.abs(n) < 1e21) {\r\n return n.toLocaleString('fullwide', { useGrouping: false });\r\n } else {\r\n // fallback for very large numbers beyond JS number precision\r\n return n.toString();\r\n }\r\n }\r\n\r\n onValueChanged() {\r\n const sv = this.shadowValue();\r\n if (sv == '') {\r\n if (this.nullable() == true) {\r\n this.value.set(null);\r\n } else {\r\n this.value.set('');\r\n }\r\n } else {\r\n const next = sv.replaceAll('.','').replace(',','.');\r\n switch (this.validate()) {\r\n case 'number': {\r\n // sync value on blue ... this is to early\r\n break;\r\n }\r\n case 'decimal': {\r\n // syncvalue on blur ... this is to early\r\n break;\r\n }\r\n default:\r\n this.value.set(sv);\r\n\r\n }\r\n }\r\n this.searchbyname();\r\n }\r\n\r\n onCheckboxToggle() {\r\n this.value.set(this.shadowBool());\r\n this.notifyOnChange();\r\n }\r\n\r\n onFocus() {\r\n this.hasfocus.set(true);\r\n this.onfocusEvent.emit();\r\n\r\n if (this.autoopenonblank() && this.autocomplete()) {\r\n const cv = this.shadowValue() ?? '';\r\n if (cv == '') {\r\n this.searchbyname(true);\r\n }\r\n }\r\n }\r\n\r\n onBlur() {\r\n this.handleNumber();\r\n this.blurThead = setTimeout(() => {\r\n if (this.expanding) {\r\n this.expanding = false;\r\n this.focusMe(undefined, false);\r\n return;\r\n }\r\n\r\n this.hasfocus.set(false);\r\n this.showitems.set(false);\r\n\r\n const sel = this.selected();\r\n\r\n const sv = this.shadowValue();\r\n\r\n if (sel && sel.name != sv) {\r\n this.selected.set(undefined);\r\n this.onselect.emit(undefined); \r\n this.shadowValue.set('');\r\n this.notifyOnChange();\r\n }\r\n\r\n const re = this.entityreference();\r\n if (re && re.name$() != sv) {\r\n re.set(undefined, undefined);\r\n this.onselect.emit(undefined);\r\n this.shadowValue.set('');\r\n this.notifyOnChange();\r\n }\r\n\r\n const validate = this.validate();\r\n if (validate == 'decimal' || validate == 'number') {\r\n this.setNumberValueString();\r\n }\r\n this.onblurEvent.emit();\r\n },200);\r\n }\r\n\r\n onBlurCheckbox() {\r\n setTimeout(() => {\r\n this.hasfocus.set(false);\r\n this.onblurEvent.emit();\r\n },200);\r\n }\r\n\r\n onBlurDate() {\r\n setTimeout(() => {\r\n this.hasfocus.set(false);\r\n this.onblurEvent.emit();\r\n },200);\r\n }\r\n\r\n ondown(e: Event) {\r\n e.stopPropagation();\r\n e.preventDefault();\r\n this.next(1);\r\n\r\n }\r\n\r\n onup(e: Event) {\r\n e.stopPropagation();\r\n e.preventDefault();\r\n this.next(-1);\r\n }\r\n\r\n onenter(e: Event) {\r\n e.stopPropagation();\r\n e.preventDefault();\r\n\r\n if (this.current && this.current.expandable == true && !this.isexpanded(this.current)) {\r\n this.expand(e, this.current);\r\n return;\r\n }\r\n\r\n if (this.current && this.current.completeOnly == true) {\r\n this.complete(e, this.current);\r\n return;\r\n }\r\n\r\n this.onEnter.emit();\r\n\r\n if (this.showitems() == false) {\r\n this.searchbyname();\r\n return;\r\n }\r\n\r\n if (this.current != null) {\r\n this.value.set(this.current.name ?? '');\r\n\r\n const re = this.entityreference();\r\n if (re) {\r\n re.set(this.current.id, this.current.name);\r\n }\r\n\r\n this.selected.set(this.current);\r\n this.onselect.emit(this.current);\r\n this.showitems.set(false);\r\n this.shadowValue.set(this.current.name ?? '');\r\n }\r\n }\r\n\r\n onesc(e: Event) {\r\n this.showitems.set(false);\r\n }\r\n\r\n onClick() {\r\n this.click.emit();\r\n }\r\n\r\n onkeydown(e: Event) {\r\n const k = e as KeyboardEvent;\r\n if (this.validate() != null) {\r\n if (NAVIGATIONKEYS.indexOf(k.key) >= 0) {\r\n return;\r\n }\r\n\r\n if (k.ctrlKey) {\r\n if (CTRL_KEYS.indexOf(k.key) >= 0) {\r\n return;\r\n }\r\n }\r\n\r\n if (this.validate() == 'number') {\r\n if (NUMBERS.indexOf(k.key) < 0) {\r\n e.preventDefault();\r\n e.stopPropagation(); \r\n }\r\n }\r\n\r\n if (this.validate() == 'decimal') {\r\n if (DECIMALS.indexOf(k.key) < 0) {\r\n e.preventDefault();\r\n e.stopPropagation(); \r\n }\r\n }\r\n }\r\n }\r\n\r\n\r\n setchoice(v: Event) {\r\n const sel = this.selectable();\r\n if (sel && sel.length > 0) {\r\n const value = (v.target as HTMLSelectElement).value;\r\n const next = sel.find(r => r.id == value);\r\n if (next) {\r\n const osv = this.optionsetvalue();\r\n if (osv) {\r\n osv.set(Number(next.id), next.name)\r\n }\r\n this.selected.set(next);\r\n this.notifyOnChange();\r\n }\r\n }\r\n }\r\n\r\n select(e: Event, v: ISelectable) {\r\n e.stopImmediatePropagation();\r\n e.stopPropagation();\r\n this.value.set(v.name ?? '');\r\n\r\n const re = this.entityreference();\r\n if (re) {\r\n re.set(v.id, v.name);\r\n }\r\n\r\n this.selected.set(v);\r\n this.onselect.emit(v);\r\n this.notifyOnChange();\r\n }\r\n\r\n private next(e: number) {\r\n const items = this.itemlist();\r\n if (items.length > 0) {\r\n this.currentindex = this.currentindex + e;\r\n if (this.currentindex >= items.length) {\r\n this.currentindex = 0;\r\n }\r\n\r\n if (this.currentindex == -1) {\r\n this.currentindex = items.length - 1;\r\n }\r\n\r\n if (this.currentindex == -2) {\r\n this.currentindex = items.length - 1;\r\n }\r\n this.current = items[this.currentindex]\r\n }\r\n this.ensureCurrentVisible();\r\n }\r\n\r\n private ensureCurrentVisible(): void {\r\n\r\n if (this.current != undefined) {\r\n const index = this.itemlist().indexOf(this.current);\r\n if (index < 0) {\r\n return;\r\n }\r\n\r\n this.options.get(index)?.nativeElement.scrollIntoView({\r\n block: 'nearest',\r\n inline: 'nearest'\r\n });\r\n }\r\n}\r\n\r\n focusMe(e?: Event, clicked = true) {\r\n e?.stopPropagation();\r\n\r\n if (!this.disabled() && this.searchElement != null) {\r\n this.searchElement.nativeElement.focus();\r\n }\r\n\r\n if (!this.disabled() && this.textareaElement != null) {\r\n this.textareaElement.nativeElement.focus();\r\n }\r\n\r\n if (!this.disabled() && this.datefieldElement != null) {\r\n this.datefieldElement.nativeElement.focus();\r\n }\r\n\r\n if (clicked) {\r\n this.click.emit();\r\n }\r\n }\r\n\r\n toolClicked(e: Event) {\r\n e.stopPropagation();\r\n this.toolClick.emit();\r\n }\r\n\r\n private searchbyname(ommitcm?: boolean) {\r\n if (this.searchthread != null) {\r\n clearTimeout(this.searchthread);\r\n }\r\n\r\n this.searchthread = setTimeout(() => {\r\n this.dosearchbyname();\r\n }, 600)\r\n }\r\n\r\n private async dosearchbyname(ommitcm?: boolean) {\r\n const ap = this.autocomplete();\r\n if (ap) {\r\n await ap.search(this.shadowValue());\r\n this.currentindex = -1;\r\n this.current = undefined;\r\n this.showitems.set(true);\r\n }\r\n\r\n if (!ap && ommitcm != true) {\r\n this.notifyOnChange();\r\n } \r\n }\r\n\r\n private notifyOnChange() {\r\n this.changeScope?.notifyChanged();\r\n this.releaseOnChanged();\r\n }\r\n\r\n private releaseThread?: number;\r\n private releaseOnChanged() {\r\n if (this.releaseThread) {\r\n clearTimeout(this.releaseThread);\r\n }\r\n\r\n const mSec = this.release();\r\n if (mSec && mSec > 0) {\r\n this.releaseThread = setTimeout(() => {\r\n this.released.emit();\r\n }, mSec);\r\n }\r\n }\r\n\r\n private handleNumber() {\r\n let sv = this.shadowValue();\r\n if (sv == '') {\r\n this.value.set(null);\r\n } else {\r\n const next = sv.replaceAll('.','').replace(',','.');\r\n switch (this.validate()) {\r\n case 'number': {\r\n this.value.set(Number(next));\r\n break;\r\n }\r\n case 'decimal': {\r\n this.value.set(Number(next));\r\n break;\r\n }\r\n default:\r\n this.value.set(sv);\r\n\r\n }\r\n\r\n if (this.type() == 'number' && this.validate() == 'decimal') {\r\n var spl = next.split('.');\r\n if (spl.length <= 1) {\r\n this.decimalsUsed.emit(0);\r\n } else {\r\n this.decimalsUsed.emit(spl[1].length);\r\n }\r\n }\r\n }\r\n }\r\n\r\n private expandedItems = new Map<ISelectable, ISelectable[]>();\r\n private expanding = false;\r\n\r\n async expand(ev: Event, e: ISelectable) {\r\n this.expanding = true;\r\n ev.stopImmediatePropagation();\r\n\r\n if (this.expandedItems.get(e)) {\r\n return;\r\n }\r\n\r\n if (e.expand) {\r\n const children = await e.expand();\r\n if (!children || children.length == 0) {\r\n e.expandable = false;\r\n return;\r\n }\r\n\r\n const nextlist = [] as ISelectable[];\r\n\r\n for (const n of this.itemlist()) {\r\n nextlist.push(n);\r\n if (n == e) {\r\n children.forEach(c => nextlist.push(c));\r\n }\r\n }\r\n this.expandedItems.set(e, children);\r\n\r\n this.itemlist.set(nextlist);\r\n }\r\n }\r\n\r\n async complete(ev: Event, e: ISelectable) {\r\n ev.stopImmediatePropagation();\r\n this.shadowValue.set(e.name ?? '');\r\n this.onValueChanged();\r\n this.setfocus.set(true);\r\n }\r\n\r\n isexpanded(e:ISelectable): boolean {\r\n return this.expandedItems.get(e) != undefined;\r\n }\r\n expandedvalues(e: ISelectable): ISelectable[] | null {\r\n return this.expandedItems.get(e) ?? null;\r\n }\r\n\r\n\r\n private setNumberValueString() {\r\n const v = Number(this.value());\r\n let decimals = this.decimals();\r\n\r\n if (decimals == undefined && this.validate() == 'number') {\r\n decimals = 0;\r\n }\r\n\r\n if (decimals != undefined) {\r\n this.shadowValue.set(nFormater.format(v, decimals))\r\n } else {\r\n this.shadowValue.set(nFormater.flex(v));\r\n }\r\n }\r\n\r\n private showSuggestions(): void {\r\n if (!this.overlayRef && this.searchElement) {\r\n\r\n const positionStrategy = this.overlay\r\n .position()\r\n .flexibleConnectedTo(this.searchElement.nativeElement)\r\n .withPositions([\r\n {\r\n originX: 'start',\r\n originY: 'bottom',\r\n overlayX: 'start',\r\n overlayY: 'top'\r\n }\r\n ]);\r\n\r\n this.overlayRef = this.overlay.create({\r\n positionStrategy,\r\n width: this.searchElement.nativeElement.offsetWidth,\r\n maxHeight: '200px',\r\n scrollStrategy: this.overlay.scrollStrategies.reposition()\r\n });\r\n }\r\n\r\n if (this.searchElement && this.overlayRef && !this.overlayRef.hasAttached()) {\r\n const portal = new TemplatePortal(\r\n this.suggestionsTemplate,\r\n this.viewContainerRef\r\n );\r\n this.overlayRef.attach(portal);\r\n\r\n const autocomplete = this.overlayRef.overlayElement\r\n .querySelector('.autocomplete') as HTMLElement;\r\n\r\n if (autocomplete) {\r\n autocomplete.style.width =\r\n `${this.searchElement.nativeElement.offsetWidth}px`;\r\n }\r\n }\r\n }\r\n\r\n private hideSuggestions(): void {\r\n this.overlayRef?.detach();\r\n }\r\n}\r\n","<div class=\"boruto-ui\">\r\n@if (label() != '' && label().length > 0 && shortLabel() != 'above') {\r\n<div class=\"label\" [ngClass]=\"{ short: shortLabel() == true }\" (click)=\"focusMe($event)\">{{ label() }}</div>\r\n}\r\n@if ((label() != '' || type() == 'number') && showlock()) {\r\n<div class=\"locked\">\r\n @if (required() && shortLabel() != 'above') {\r\n <div style=\"display: inline-block;height: 10px;color: red; position: relative; top: -8px; right: 0\">*</div>\r\n }\r\n @if (disabled()) {\r\n <mat-icon fontSet=\"material-symbols-outlined\">lock</mat-icon>\r\n }\r\n</div>\r\n}\r\n<div class=\"input\" [ngClass]=\"{ focus: hasfocus(), error: error(), textarea: numberoflines() > 1, labelabove: shortLabel() == 'above', toolicon: toolIcon()?.length ?? 0 > 0 }\" (click)=\"focusMe($event)\">\r\n @if (shortLabel() == 'above' && label() != '') {\r\n <div class=\"label-above\">\r\n {{ label() }}\r\n @if (required()) {<span style=\"color: red\">&nbsp;*</span>}\r\n </div>\r\n }\r\n @if (numberoflines() == 1 && validate() != 'date' && validate() != 'checkbox' && !isselect()) {\r\n <input \r\n #inputfield \r\n [ngClass]=\"inputclasses()\"\r\n [type]=\"type() != 'password'? 'text' : 'password'\"\r\n [disabled]=\"disabled()\" \r\n [placeholder]=\"placeholder()\" \r\n [(ngModel)]=\"shadowValue\" \r\n (ngModelChange)=\"onValueChanged()\" \r\n (focus)=\"onFocus()\" \r\n (blur)=\"onBlur()\"\r\n (keydown.arrowdown)=\"ondown($event)\"\r\n (keydown.arrowup)=\"onup($event)\"\r\n (keydown.enter)=\"onenter($event)\"\r\n (keydown.esc)=\"onesc($event)\"\r\n (keydown)=\"onkeydown($event)\"\r\n [maxlength]=\"maxlength()\"/>\r\n }\r\n @if (validate() == 'checkbox') {\r\n <div class=\"checkbox\">\r\n <input \r\n type=\"checkbox\"\r\n class=\"text checkbox\"\r\n [(ngModel)]=\"shadowBool\"\r\n [disabled]=\"disabled()\"\r\n (ngModelChange)=\"onCheckboxToggle()\" \r\n (focus)=\"onFocus()\" \r\n (blur)=\"onBlurCheckbox()\"\r\n />\r\n </div>\r\n }\r\n @if (numberoflines() == 1 && validate() == 'date' && !isselect()) {\r\n <input\r\n #datefield\r\n class=\"text datepicker\"\r\n [matDatepicker]=\"picker\"\r\n [value]=\"shadowDate()\"\r\n (dateChange)=\"pickDate($event)\"\r\n [disabled]=\"disabled()\" \r\n [placeholder]=\"placeholder()\" \r\n (focus)=\"onFocus()\"\r\n (blur)=\"onBlurDate()\"/>\r\n @if (!disabled()) {\r\n <mat-icon \r\n class=\"calendar-icon\" \r\n fontSet=\"material-symbols-outlined\"\r\n (click)=\"picker.open()\">calendar_month</mat-icon>\r\n }\r\n <mat-datepicker #picker></mat-datepicker>\r\n }\r\n @if (numberoflines() > 1 && !isselect()) {\r\n <textarea\r\n #textareafield\r\n [maxlength]=\"maxlength()\"\r\n [rows]=\"numberoflines()\"\r\n [disabled]=\"disabled()\" \r\n [placeholder]=\"placeholder()\" \r\n [(ngModel)]=\"shadowValue\" \r\n [ngClass]=\"{ noresize: !resizeable() }\"\r\n (ngModelChange)=\"onValueChanged()\" \r\n (focus)=\"onFocus()\" \r\n (blur)=\"onBlur()\"\r\n (keydown.arrowdown)=\"ondown($event)\"\r\n (keydown.arrowup)=\"onup($event)\"\r\n (keydown.enter)=\"onenter($event)\"\r\n (keydown.esc)=\"onesc($event)\"\r\n (keydown)=\"onkeydown($event)\"></textarea>\r\n }\r\n @let options = selectable();\r\n @if (options && options.length > 0) {\r\n <select \r\n (change)=\"setchoice($event)\"\r\n (focus)=\"onFocus()\"\r\n (blur)=\"onBlur()\"\r\n [disabled]=\"disabled()\">\r\n @for (option of options; track option) {\r\n <option [value]=\"option.id\" [selected]=\"option == selected()\">{{ option.name }}</option>\r\n }\r\n </select>\r\n @if (!disabled()) {\r\n <mat-icon class=\"dropdown\" fontSet=\"material-symbols-outlined\">arrow_drop_down</mat-icon>\r\n }\r\n }\r\n @let ti = toolIcon();\r\n @if (!disabled() && ti && ti.length > 0) {\r\n <mat-icon class=\"toolicon\" fontSet=\"material-symbols-outlined\" (click)=\"toolClicked($event)\">{{ ti }}</mat-icon>\r\n }\r\n</div>\r\n\r\n@if (label() == '' && type() != 'number' && showlock()) {\r\n <div class=\"locked\" style=\"text-align: left;\">\r\n @if (disabled()) {\r\n <mat-icon fontSet=\"material-symbols-outlined\">lock</mat-icon>\r\n }\r\n </div>\r\n}\r\n\r\n@if (info()) {<div class=\"info\" [title]=\"info()\"><mat-icon class=\"info\">info</mat-icon></div>}\r\n</div>\r\n\r\n<ng-template #suggestionsTemplate>\r\n <div class=\"boruto-ui\">\r\n <div class=\"autocomplete\" [ngClass]=\"{ nolabel: (!label() || label().length == 0 || shortLabel() == 'above'), shortLabel: shortLabel() == true, notdark: notdark() }\">\r\n @if (itemlist().length == 0) {\r\n <div class=\"element\"><div class=\"item\">Ingen fundet</div></div>\r\n }\r\n @for (elm of itemlist(); track elm) {\r\n <div #option class=\"element\" [ngClass]=\"{ current: current == elm, selectable: !elm.disabled }\" (click)=\"select($event, elm)\">\r\n <div class=\"item\">\r\n @if (itemTemplate(); as template) {\r\n <ng-container *ngTemplateOutlet=\"template; context: { $implicit: elm }\"></ng-container>\r\n } @else {\r\n {{ elm.name }}\r\n }\r\n </div>\r\n @if (elm.expandable == true) {\r\n <div class=\"icon expand\" (click)=\"expand($event, elm)\">\r\n <xrmui-icon icon=\"arrow_drop_down\" size=\"24\"></xrmui-icon>\r\n </div>\r\n }\r\n @if (elm.completeOnly == true) {\r\n <div class=\"icon complete\" (click)=\"complete($event, elm)\">\r\n <xrmui-icon icon=\"search\" size=\"24\"></xrmui-icon>\r\n </div>\r\n }\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n</ng-template>\r\n","import { Component, input, ChangeDetectionStrategy } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'xrmui-ribbon',\r\n templateUrl: './ribbon.xrmui.html',\r\n changeDetection: ChangeDetectionStrategy.Eager,\n styleUrl: './ribbon.xrmui.scss'\r\n})\r\nexport class XrmuiRibbon {\r\n\r\n fill = input<boolean>(true);\r\n\r\n constructor() {\r\n }\r\n\r\n}\r\n","<ng-content></ng-content>\r\n@if (fill()) {<div class=\"therest\">&nbsp;</div>}","import { NgClass } from '@angular/common';\r\nimport { Component, ElementRef, Input, OnInit, ChangeDetectionStrategy } from '@angular/core';\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\r\n\r\n@Component({\r\n selector: 'xrmui-spinner',\r\n templateUrl: './spinner.xrmui.html',\r\n styleUrl: './spinner.xrmui.scss',\r\n changeDetection: ChangeDetectionStrategy.Eager,\n imports: [MatProgressSpinnerModule]\r\n})\r\nexport class XrmuiSpinner implements OnInit {\r\n\r\n @Input('diameter') diameter: number = 50;\r\n\r\n constructor(private elm: ElementRef) {\r\n }\r\n\r\n ngOnInit() {\r\n if (this.elm != undefined) {\r\n var native = this.elm.nativeElement as HTMLElement;\r\n var parent = native.parentElement;\r\n if (parent != null) {\r\n var top = Math.round((parent.offsetHeight - this.diameter) / 2);\r\n var left = Math.round((parent.offsetWidth - this.diameter) / 2);\r\n if (top > 0 && left > 0) {\r\n native.style.position = \"absolute\";\r\n native.style.top = top + 'px';\r\n native.style.left = left + 'px';\r\n }\r\n }\r\n }\r\n }\r\n}\r\n","<mat-progress-spinner mode=\"indeterminate\" [diameter]=\"diameter\" />","import { NgClass } from '@angular/common';\r\nimport { Component, EventEmitter, Input, OnChanges, Output, SimpleChanges, ChangeDetectionStrategy } from '@angular/core';\r\nimport { MatIcon } from '@angular/material/icon';\r\nimport { MatMenuModule } from '@angular/material/menu';\r\nimport { IMenu } from '../api/imenu.interface';\r\nimport { XrmuiSpinner } from '../spinner/spinner.xrmui';\r\n\r\n@Component({\r\n selector: 'xrmui-button',\r\n templateUrl: './button.xrmui.html',\r\n styleUrl: './button.xrmui.scss',\r\n changeDetection: ChangeDetectionStrategy.Eager,\n imports: [MatMenuModule, NgClass, MatIcon, XrmuiSpinner]\r\n})\r\nexport class XrmuiButton implements OnChanges {\r\n search: string = '';\r\n @Input('label') label: string = '';\r\n @Input('icon') icon: string = '';\r\n @Input('disabled') disabled: boolean = false;\r\n @Input('working') working: boolean = false;\r\n @Output('click') clicked: EventEmitter<void | IMenu> = new EventEmitter<void | IMenu>();\r\n\r\n @Input('menu') menu: IMenu[] = [];\r\n @Input('current') current?: IMenu;\r\n @Input('selected') selected: boolean = false;\r\n\r\n isCurrent: boolean = false;\r\n\r\n constructor() {\r\n }\r\n\r\n ignore(e: Event) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n }\r\n\r\n onClick(e: Event, m?: IMenu) {\r\n if (!this.disabled) {\r\n if (m != undefined) {\r\n this.clicked.emit(m);\r\n } else {\r\n e.stopPropagation();\r\n this.clicked.emit();\r\n }\r\n }\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n this.isCurrent = this.menu.length > 0 && this.current != undefined && this.menu.find(m => m == this.current) != null;\r\n }\r\n}\r\n","@if (menu == undefined || menu.length == 0 || disabled) {\r\n<button [disabled]=\"disabled\" (click)=\"onClick($event)\" [ngClass]=\"{ selected: selected }\">\r\n @if (working) {\r\n <div class=\"spin\">\r\n <xrmui-spinner [diameter]=\"20\"></xrmui-spinner>\r\n </div>\r\n }\r\n @if (icon != ''){<mat-icon fontSet=\"material-symbols-outlined\">{{ icon }}</mat-icon>}\r\n @if (label != ''){ {{ label }} }\r\n </button>\r\n}\r\n@if (menu != null && menu.length > 0 && !disabled) {\r\n <button [matMenuTriggerFor]=\"menupopup\" [ngClass]=\"{ selected: isCurrent || selected }\" (click)=\"ignore($event)\">\r\n @if (!isCurrent) {\r\n @if (icon != '') {<mat-icon fontSet=\"material-symbols-outlined\">{{ icon }}</mat-icon>}\r\n @if (label != '') { {{ label }} }\r\n }\r\n @if (current != undefined && isCurrent) {\r\n @if (current.icon != undefined && current.icon != '') {<mat-icon fontSet=\"material-symbols-outlined\">{{ current.icon }}</mat-icon>}\r\n @if (current.label != undefined && current.label != '') { {{ current.label }} }\r\n }\r\n </button>\r\n <mat-menu #menupopup>\r\n @for (m of menu; track m.label) {\r\n <button mat-menu-item (click)=\"onClick($event, m)\">\r\n @if (m.icon != undefined && m.icon != '') {<mat-icon fontSet=\"material-symbols-outlined\">{{ m.icon }}</mat-icon>}\r\n @if (m.label != undefined && m.label != '') { {{ m.label }} }\r\n </button>\r\n }\r\n </mat-menu>\r\n}\r\n","import { NgClass } from '@angular/common';\r\nimport { Component, input, ChangeDetectionStrategy } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'xrmui-devider',\r\n templateUrl: './devider.xrmui.html',\r\n styleUrl: './devider.xrmui.scss',\r\n changeDetection: ChangeDetectionStrategy.Eager,\n imports: [NgClass]\r\n})\r\nexport class XrmuiDevider {\r\n orientation = input<'horizontal' | 'vertical'>('vertical');\r\n constructor() {\r\n }\r\n\r\n}\r\n","<div [ngClass]=\"orientation()\">&nbsp;</div>","import { NgClass } from '@angular/common';\r\nimport { Component, input, model, ChangeDetectionStrategy } from '@angular/core';\r\nimport { IMenu } from '../api/imenu.interface';\r\nimport { MatIcon, MatIconModule } from '@angular/material/icon';\r\nimport { MatBadge } from '@angular/material/badge';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatMenuModule } from '@angular/material/menu';\r\n\r\n@Component({\r\n selector: 'xrmui-tabs',\r\n templateUrl: './tabs.xrmui.html',\r\n styleUrl: './tabs.xrmui.scss',\r\n imports: [NgClass,MatIcon,MatBadge,MatButtonModule, MatMenuModule, MatIconModule],\r\n changeDetection: ChangeDetectionStrategy.Eager,\n providers: []\r\n})\r\nexport class XrmuiTabs {\r\n tabs = input.required<IMenu[]>();\r\n burgers = input<IMenu[]>([]);\r\n current = model.required<IMenu>();\r\n\r\n constructor() {\r\n }\r\n}\r\n","<div class=\"xrmui-tabs\">\r\n@for (tab of tabs(); track tab; let idx = $index) {\r\n @if (tab.visible == undefined || tab.visible()) {\r\n <div class=\"xrmui-tab\" [ngClass]=\"{ 'current' : tab == current(), 'disabled': tab.disabled, error: tab != current() && tab.error != undefined && tab.error()}\" (click)=\"current.set(tab)\">\r\n @if (tab.badget != undefined && tab.badget > 0) {\r\n <div [matBadge]=\"tab.badget\" [matBadgeOverlap]=\"false\">\r\n @if (tab.icon != undefined && tab.icon != null && tab.icon != ''){<div class=\"icon\"><mat-icon fontSet=\"material-symbols-outlined\" class=\"mat-icon-14\">{{ tab.icon }}</mat-icon></div>}\r\n <span>\r\n @if (tab.label != undefined && tab.label != null && tab.label != '') { {{ tab.label }} }\r\n @if (tab.label == undefined || tab.label == null || tab.label == '') { {{ tab.id }} }\r\n </span>\r\n </div>\r\n }\r\n\r\n @if (tab.badget == undefined || tab.badget == 0) {\r\n @if (tab.icon != undefined && tab.icon != null && tab.icon != ''){<div class=\"icon\"><mat-icon fontSet=\"material-symbols-outlined\" class=\"mat-icon-14\">{{ tab.icon }}</mat-icon></div>}\r\n <span>\r\n @if (tab.label != undefined && tab.label != null && tab.label != '') { {{ tab.label }} }\r\n @if (tab.label == undefined || tab.label == null || tab.label == '') { {{ tab.id }} }\r\n </span>\r\n }\r\n </div>\r\n }\r\n}\r\n</div>","import { NgClass } from '@angular/common';\r\nimport { Component, ElementRef, EventEmitter, input, Input, OnChanges, output, Output, SimpleChanges, ViewChild } from '@angular/core';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { MatIcon } from '@angular/material/icon';\r\n\r\n@Component({\r\n selector: 'xrmui-section',\r\n templateUrl: './section.xrmui.html',\r\n styleUrl: './section.xrmui.scss',\r\n imports: [FormsModule, MatIcon,NgClass]\r\n})\r\nexport class XrmuiSection implements OnChanges {\r\n @ViewChild('searchelement') searchElement?: ElementRef;\r\n\r\n @Input('title') title: string = '';\r\n @Input('top-title') topTitle: string = '';\r\n @Input('searchable') searchable: boolean = false;\r\n @Input('search') search: string = '';\r\n @Input('placeholder') placeholder: string = ''\r\n @Output('searchChange') searchChange: EventEmitter<string> = new EventEmitter<string>();\r\n\r\n @Input('focusSearch') focusSearchTrigger: boolean = false;\r\n @Output('focusSearchChange') focusSearchTriggerChange: EventEmitter<boolean> = new EventEmitter<boolean>();\r\n\r\n @Input('checkable') checkable: boolean = false;\r\n @Input('checked') checked: boolean = false;\r\n @Output('checkedChange') checkChange: EventEmitter<boolean> = new EventEmitter<boolean>();\r\n @Output('prev') prev: EventEmitter<void> = new EventEmitter<void>();\r\n @Output('next') next: EventEmitter<void> = new EventEmitter<void>();\r\n @Output('enter') enter: EventEmitter<void> = new EventEmitter();\r\n @Output('esc') esc: EventEmitter<void> = new EventEmitter();\r\n\r\n private release$ = 0;\r\n searchReleaseAfter = input<number | null>(null);\r\n searchReleased = output<void>();\r\n\r\n constructor() {\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (this.focusSearchTrigger == true) {\r\n setTimeout(() => {\r\n this.focusSearch();\r\n this.focusSearchTriggerChange.emit(false);\r\n }, 10);\r\n }\r\n }\r\n\r\n searchChanged() {\r\n this.searchChange.emit(this.search);\r\n this.doRelease();\r\n }\r\n\r\n check() {\r\n this.checked = true;\r\n this.checkChange.emit(this.checked);\r\n this.focusSearch();\r\n }\r\n\r\n uncheck() {\r\n this.checked = false;\r\n this.checkChange.emit(this.checked);\r\n this.focusSearch();\r\n }\r\n\r\n onkeydown(e: Event) {\r\n if (this.prev.observed) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n this.prev.emit();\r\n }\r\n }\r\n\r\n onkeyup(e: Event) {\r\n if (this.next.observed) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n this.next.emit();\r\n }\r\n }\r\n\r\n onkeyenter(e: Event) {\r\n if (this.enter.observed) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n this.enter.emit();\r\n }\r\n }\r\n\r\n onkeyesc(e: Event) {\r\n if (this.esc.observed) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n this.esc.emit();\r\n }\r\n }\r\n\r\n private focusSearch() {\r\n if (this.searchElement != null) {\r\n this.searchElement.nativeElement.focus();\r\n }\r\n }\r\n\r\n private doRelease() {\r\n const re = this.searchReleaseAfter();\r\n if (re && re > 0) {\r\n if (this.release$ > 0) {\r\n clearTimeout(this.release$);\r\n }\r\n\r\n this.release$ = setTimeout(() => {\r\n this.searchReleased.emit();\r\n }, re);\r\n }\r\n }\r\n}\r\n","@if (topTitle != '') {<div class=\"toptitle-container\">\r\n <div class=\"toptitle\">{{ topTitle }}</div>\r\n</div>}\r\n@if(title != '' && !searchable) {<div class=\"header\">{{ title }}</div>}\r\n@if (searchable) {\r\n<div class=\"search\">\r\n @if (checkable) {\r\n <div class=\"chexkbox\">\r\n @if (checked){<mat-icon title=\"Fravælg alle\" (click)=\"uncheck()\">check_box</mat-icon>}\r\n @if(!checked) {<mat-icon title=\"Vælg alle\" (click)=\"check()\">check_box_outline_blank</mat-icon>}\r\n </div>\r\n }\r\n <input #searchelement [(ngModel)]=\"search\" (ngModelChange)=\"searchChanged()\" [placeholder]=\"title\"\r\n (keydown.esc)=\"onkeyesc($event)\" (keydown.arrowdown)=\"onkeydown($event)\" (keydown.arrowup)=\"onkeyup($event)\"\r\n (keydown.enter)=\"onkeyenter($event)\" \r\n [placeholder]=\"placeholder\" />\r\n <div class=\"therest\"></div>\r\n</div>\r\n}\r\n<div class=\"xrmui-section-content\" [ngClass]=\"{'nosearchortitle': searchable == false && title == ''}\"><ng-content></ng-content></div>","import { NgModule } from '@angular/core';\r\nimport { XrmuiInfo } from './info/info.xrmui';\r\nimport { XrmuiPanel } from './panel/panel.xrmui'\r\nimport { XrmuiLayout } from './layout/layout.xrmui';\r\nimport { XrmuiIcon } from './icon/icon.xrmui';\r\nimport { XrmuiInput } from './input/input.xrmui';\r\nimport { XrmuiRibbon } from './ribbon/ribbon.xrmui';\r\nimport { XrmuiSpinner } from './spinner/spinner.xrmui';\r\nimport { XrmuiButton } from './button/button.xrmui';\r\nimport { XrmuiDevider } from './devider/devider.xrmui';\r\nimport { XrmuiTabs } from './tabs/tabs.xrmui';\r\nimport { ChangeScopeDirective } from './changedscope/changedscope.directive';\r\nimport { FormScopeDirective } from './form/formscope.directive';\r\nimport { XrmuiSection } from './section/section.xrmui';\r\n\r\n@NgModule({\r\n imports: [\r\n XrmuiInfo,\r\n XrmuiLayout,\r\n XrmuiPanel,\r\n XrmuiIcon,\r\n XrmuiInput,\r\n XrmuiRibbon,\r\n XrmuiSpinner,\r\n XrmuiButton,\r\n XrmuiDevider,\r\n XrmuiTabs,\r\n XrmuiSection,\r\n ChangeScopeDirective,\r\n FormScopeDirective,\r\n ],\r\n exports: [\r\n XrmuiInfo,\r\n XrmuiLayout,\r\n XrmuiPanel,\r\n XrmuiIcon,\r\n XrmuiInput,\r\n XrmuiRibbon,\r\n XrmuiSpinner,\r\n XrmuiButton,\r\n XrmuiDevider,\r\n XrmuiTabs,\r\n XrmuiSection,\r\n ChangeScopeDirective,\r\n FormScopeDirective\r\n ]\r\n})\r\nexport class BorutoXrmUIModule { }\r\n","/*\r\n * Public API Surface of Old Kipon UI\r\n */\r\n\r\nexport * from './lib/ko/forms/kobuttongroup/kobuttongroup.component';\r\nexport * from './lib/ko/forms/kodecimal.directive';\r\nexport * from './lib/ko/forms/kofocus.directive';\r\n\r\nexport * from './lib/ko/message/koalert/koaleret.component';\r\nexport * from './lib/ko/message/koheader/koheader.component';\r\nexport * from './lib/ko/message/kowrite.directive';\r\n\r\nexport * from './lib/ko/models/navigation.interface';\r\n\r\nexport * from './lib/ko/navigation/koleftmenu/koleftmenu.component';\r\nexport * from './lib/ko/navigation/kotopmenu/kotopmenu.component';\r\nexport * from './lib/ko/navigation/koover.directive';\r\n\r\nexport * from './lib/ko/panels/koexpansionpanel/koexpansionpanel.component';\r\nexport * from './lib/ko/panels/kohorizontalscroll/kohorizontalscroll.component';\r\nexport * from './lib/ko/panels/kohorizontalsplit/kohorizontalsplit.component';\r\nexport * from './lib/ko/panels/komain/komain.component';\r\nexport * from './lib/ko/panels/kotablepanel/kotablepanel.component';\r\nexport * from './lib/ko/panels/kotitlepanel/kotitlepanel.component';\r\nexport * from './lib/ko/panels/koverticalscroll/koverticalscroll.component';\r\nexport * from './lib/ko/panels/koview/koview.component';\r\nexport * from './lib/ko/panels/koverticalsplit/koverticalsplit.component';\r\n\r\nexport * from './lib/ko/kipon-ui.module';\r\n\r\n/*\r\n * Public API Surface of Xrmui\r\n */\r\n\r\nexport * from './lib/bo/api/imenu.interface';\r\nexport * from './lib/bo/api/iselectable.interface';\r\nexport * from './lib/bo/api/optionsetvalue.interface';\r\nexport * from './lib/bo/api/optionvalue.interface';\r\nexport * from './lib/bo/api/entityreference.interface';\r\nexport * from './lib/bo/api/isearchservice.interface';\r\nexport * from './lib/bo/api/changednotifier.interface';\r\nexport * from './lib/bo/api/form.interface';\r\nexport * from './lib/bo/models/dkcustomdateadapter.model';\r\nexport * from './lib/bo/models/nformat.model';\r\n\r\nexport * from './lib/bo/info/info.xrmui';\r\nexport * from './lib/bo/layout/layout.xrmui';\r\nexport * from './lib/bo/panel/panel.xrmui'; \r\nexport * from './lib/bo/icon/icon.xrmui';\r\nexport * from './lib/bo/input/input.xrmui';\r\nexport * from './lib/bo/ribbon/ribbon.xrmui';\r\nexport * from './lib/bo/spinner/spinner.xrmui';\r\nexport * from './lib/bo/button/button.xrmui';\r\nexport * from './lib/bo/devider/devider.xrmui';\r\nexport * from './lib/bo/tabs/tabs.xrmui';\r\nexport * from './lib/bo/changedscope/changedscope.directive';\r\nexport * from './lib/bo/form/formscope.directive';\r\nexport * from './lib/bo/section/section.xrmui';\r\n\r\nexport * from './lib/bo/boruto-xrmui.module';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["XrmuiPanel","i1"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "boruto-xrmui",
3
- "version": "1.22.13",
3
+ "version": "1.22.15",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^22.1.0",
6
6
  "@angular/core": "^22.1.0",
@@ -0,0 +1 @@
1
+ @forward 'layout';
@@ -0,0 +1,83 @@
1
+ .bo-columns {
2
+ display: flex;
3
+ height: 100vh;
4
+ overflow: hidden;
5
+ flex-direction: row;
6
+ .bo-column {
7
+ flex: 1;
8
+ min-height: 0;
9
+ overflow: hidden;
10
+ position: relative;
11
+ }
12
+
13
+ .bo-overflow {
14
+ overflow: auto;
15
+ }
16
+
17
+ .bo-overflow-y {
18
+ overflow-y: auto;
19
+ }
20
+
21
+ .bo-overflow-x {
22
+ overflow-x: auto;
23
+ }
24
+
25
+ .bo-fixed {
26
+ flex: 0 0 var(--bo-fixed-size);
27
+ }
28
+
29
+ .bo-fixed-25 {flex: 0 0 25px;}
30
+ .bo-fixed-50 {flex: 0 0 50px;}
31
+ .bo-fixed-75 {flex: 0 0 75px;}
32
+ .bo-fixed-100 {flex: 0 0 100px;}
33
+ .bo-fixed-125 {flex: 0 0 125px;}
34
+ .bo-fixed-150 {flex: 0 0 150px;}
35
+ .bo-fixed-175 {flex: 0 0 175px;}
36
+ .bo-fixed-200 {flex: 0 0 200px;}
37
+ .bo-fixed-225 {flex: 0 0 225px;}
38
+ .bo-fixed-250 {flex: 0 0 250px;}
39
+ .bo-fixed-275 {flex: 0 0 275px;}
40
+ .bo-fixed-300 {flex: 0 0 300px;}
41
+ }
42
+
43
+ .bo-rows {
44
+ display: flex;
45
+ height: 100vh;
46
+ flex-direction: column;
47
+
48
+ .bo-row {
49
+ flex: 1;
50
+ min-height: 0;
51
+ overflow: hidden;
52
+ position: relative;
53
+ }
54
+
55
+ .bo-overflow {
56
+ overflow: auto;
57
+ }
58
+
59
+ .bo-overflow-y {
60
+ overflow-y: auto;
61
+ }
62
+
63
+ .bo-overflow-x {
64
+ overflow-x: auto;
65
+ }
66
+
67
+ .bo-fixed {
68
+ flex: 0 0 var(--bo-fixed-size);
69
+ }
70
+
71
+ .bo-fixed-25 {flex: 0 0 25px;}
72
+ .bo-fixed-50 {flex: 0 0 50px;}
73
+ .bo-fixed-75 {flex: 0 0 75px;}
74
+ .bo-fixed-100 {flex: 0 0 100px;}
75
+ .bo-fixed-125 {flex: 0 0 125px;}
76
+ .bo-fixed-150 {flex: 0 0 150px;}
77
+ .bo-fixed-175 {flex: 0 0 175px;}
78
+ .bo-fixed-200 {flex: 0 0 200px;}
79
+ .bo-fixed-225 {flex: 0 0 225px;}
80
+ .bo-fixed-250 {flex: 0 0 250px;}
81
+ .bo-fixed-275 {flex: 0 0 275px;}
82
+ .bo-fixed-300 {flex: 0 0 300px;}
83
+ }