@cuby-ui/core 0.0.339 → 0.0.342

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.
Files changed (40) hide show
  1. package/components/badge/badge.component.d.ts +1 -1
  2. package/components/badge/badge.options.d.ts +2 -1
  3. package/components/badge/index.d.ts +1 -0
  4. package/components/button/button.component.d.ts +12 -12
  5. package/components/button/button.options.d.ts +9 -4
  6. package/components/dialog/dialog-header/dialog-header.component.d.ts +5 -6
  7. package/editor/widgets/editor-readonly/editor-readonly.component.d.ts +0 -2
  8. package/editor/widgets/editor-readonly/editor-resize-observer.directive.d.ts +15 -0
  9. package/esm2022/components/accordion/accordion-item/accordion-item.component.mjs +1 -1
  10. package/esm2022/components/badge/badge.options.mjs +1 -1
  11. package/esm2022/components/badge/index.mjs +1 -1
  12. package/esm2022/components/banner/banner.component.mjs +1 -1
  13. package/esm2022/components/button/button.component.mjs +16 -26
  14. package/esm2022/components/button/button.options.mjs +3 -2
  15. package/esm2022/components/dialog/dialog-header/dialog-header.component.mjs +2 -2
  16. package/esm2022/editor/components/editor-tool-modal/editor-tool-modal.component.mjs +1 -1
  17. package/esm2022/editor/components/editor-tooltip/editor-tooltip.component.mjs +2 -2
  18. package/esm2022/editor/components/marker-modal/marker-modal.component.mjs +2 -2
  19. package/esm2022/editor/components/marker-select/marker-select.component.mjs +2 -2
  20. package/esm2022/editor/widgets/editor-block/editor-block.component.mjs +2 -2
  21. package/esm2022/editor/widgets/editor-modal/editor-modal.component.mjs +2 -2
  22. package/esm2022/editor/widgets/editor-readonly/editor-readonly.component.mjs +6 -11
  23. package/esm2022/editor/widgets/editor-readonly/editor-resize-observer.directive.mjs +51 -0
  24. package/esm2022/types/button-theme.mjs +2 -0
  25. package/esm2022/types/index.mjs +2 -1
  26. package/esm2022/widgets/categories/categories.component.mjs +2 -2
  27. package/esm2022/widgets/categories/components/category-item/category-item.component.mjs +2 -2
  28. package/esm2022/widgets/checklist-block/checklist-block.component.mjs +2 -2
  29. package/esm2022/widgets/checklist-block/components/checklist-block-list-item-container/checklist-block-list-item-container.component.mjs +2 -2
  30. package/esm2022/widgets/checklist-block/components/checklist-block-list-item-evaluation/checklist-block-list-item-evaluation.component.mjs +2 -2
  31. package/esm2022/widgets/checklist-block/components/checklist-block-list-item-evaluation-criteria/checklist-block-list-item-evaluation-criteria.component.mjs +2 -2
  32. package/esm2022/widgets/delete-modal/delete-modal.component.mjs +2 -2
  33. package/esm2022/widgets/utility-modal/components/readonly-utility-modal/readonly-utility-modal.component.mjs +2 -2
  34. package/esm2022/widgets/utility-modal/components/utility-modal-create/utility-modal-create.component.mjs +2 -2
  35. package/fesm2022/cuby-ui-core.mjs +89 -55
  36. package/fesm2022/cuby-ui-core.mjs.map +1 -1
  37. package/package.json +4 -4
  38. package/styles/theme.scss +1 -8
  39. package/types/button-theme.d.ts +5 -0
  40. package/types/index.d.ts +1 -0
@@ -1,11 +1,12 @@
1
1
  import { NgTemplateOutlet } from '@angular/common';
2
- import { afterRender, ChangeDetectionStrategy, Component, computed, effect, input, signal, viewChild } from '@angular/core';
2
+ import { ChangeDetectionStrategy, Component, computed, effect, input, signal, viewChild } from '@angular/core';
3
+ import { CuiElementDirective } from '@cuby-ui/cdk';
3
4
  import { CuiEditorComponent } from '../../editor.component';
5
+ import { EditorResizeObserverDirective } from './editor-resize-observer.directive';
4
6
  import * as i0 from "@angular/core";
5
7
  export class CuiEditorReadonlyComponent {
6
8
  constructor() {
7
9
  this.isShowMore = signal(false);
8
- this.isMoreButtonShown = signal(false);
9
10
  this.editorConfig = computed(() => ({ readOnly: true, withoutPreload: true, ...this.config() }));
10
11
  this.editor = viewChild.required('editor');
11
12
  this.editorId = input.required();
@@ -13,17 +14,11 @@ export class CuiEditorReadonlyComponent {
13
14
  this.buttonTemplate = input.required();
14
15
  this.shortHeight = input(68);
15
16
  this.initEditorIdEffect();
16
- this.initReadEditorProperty();
17
17
  }
18
18
  onShow(editor) {
19
19
  editor.editorElement.scrollTo(0, 0);
20
20
  this.isShowMore.update((prev) => !prev);
21
21
  }
22
- initReadEditorProperty() {
23
- afterRender({
24
- read: () => this.isMoreButtonShown.set(this.editor().editorElement?.scrollHeight > this.shortHeight())
25
- });
26
- }
27
22
  initEditorIdEffect() {
28
23
  effect(() => {
29
24
  this.editorId();
@@ -31,10 +26,10 @@ export class CuiEditorReadonlyComponent {
31
26
  }, { allowSignalWrites: true });
32
27
  }
33
28
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CuiEditorReadonlyComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
34
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: CuiEditorReadonlyComponent, isStandalone: true, selector: "cui-editor-readonly", inputs: { editorId: { classPropertyName: "editorId", publicName: "editorId", isSignal: true, isRequired: true, transformFunction: null }, config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: true, transformFunction: null }, buttonTemplate: { classPropertyName: "buttonTemplate", publicName: "buttonTemplate", isSignal: true, isRequired: true, transformFunction: null }, shortHeight: { classPropertyName: "shortHeight", publicName: "shortHeight", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "editor", first: true, predicate: ["editor"], descendants: true, isSignal: true }], ngImport: i0, template: "<cui-editor\r\n #editor\r\n class=\"editor\"\r\n [class.editor_opened]=\"isShowMore()\"\r\n [editorApiId]=\"editorId()\"\r\n [config]=\"editorConfig()\"\r\n/>\r\n@if (isMoreButtonShown()) {\r\n <button class=\"c-button\" (click)=\"onShow(editor)\">\r\n <ng-container [ngTemplateOutlet]=\"buttonTemplate()\" [ngTemplateOutletContext]=\"{ $implicit: isShowMore }\"></ng-container>\r\n </button>\r\n}\r\n", styles: [":host{--height: 68px;--fullHeight: 500px;display:flex;flex-direction:column;gap:8px}:host .editor{display:block;max-height:var(--height);overflow:hidden}:host .editor ::ng-deep [data-editor]{overflow:hidden}:host .editor_opened{max-height:var(--fullHeight)}:host .editor_opened ::ng-deep [data-editor]{max-height:var(--fullHeight);overflow:hidden auto}.c-button{padding:0}\n"], dependencies: [{ kind: "component", type: CuiEditorComponent, selector: "cui-editor", inputs: ["editorApiId", "config", "requestSize"], outputs: ["editorEmpty"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
29
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.13", type: CuiEditorReadonlyComponent, isStandalone: true, selector: "cui-editor-readonly", inputs: { editorId: { classPropertyName: "editorId", publicName: "editorId", isSignal: true, isRequired: true, transformFunction: null }, config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: true, transformFunction: null }, buttonTemplate: { classPropertyName: "buttonTemplate", publicName: "buttonTemplate", isSignal: true, isRequired: true, transformFunction: null }, shortHeight: { classPropertyName: "shortHeight", publicName: "shortHeight", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "editor", first: true, predicate: ["editor"], descendants: true, isSignal: true }], ngImport: i0, template: "<cui-editor\r\n cuiElement\r\n #editorElement=\"elementRef\"\r\n #editorComponent\r\n class=\"editor\"\r\n [class.editor_opened]=\"isShowMore()\"\r\n [editorApiId]=\"editorId()\"\r\n [config]=\"editorConfig()\"\r\n/>\r\n\r\n<ng-template [editorResizeObserver] [target]=\"editorElement.nativeElement\" [shortHeight]=\"shortHeight()\">\r\n <button class=\"c-button\" (click)=\"onShow(editorComponent)\">\r\n <ng-container [ngTemplateOutlet]=\"buttonTemplate()\" [ngTemplateOutletContext]=\"{ $implicit: isShowMore }\"></ng-container>\r\n </button>\r\n</ng-template>\r\n", styles: [":host{--height: 68px;--fullHeight: 500px;display:flex;flex-direction:column;gap:8px}:host .editor{display:block;max-height:var(--height);overflow:hidden}:host .editor ::ng-deep [data-editor]{overflow:hidden}:host .editor_opened{max-height:var(--fullHeight)}:host .editor_opened ::ng-deep [data-editor]{max-height:var(--fullHeight);overflow:hidden auto}.c-button{padding:0}\n"], dependencies: [{ kind: "component", type: CuiEditorComponent, selector: "cui-editor", inputs: ["editorApiId", "config", "requestSize"], outputs: ["editorEmpty"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: EditorResizeObserverDirective, selector: "[editorResizeObserver]", inputs: ["target", "shortHeight"] }, { kind: "directive", type: CuiElementDirective, selector: "[cuiElement]", exportAs: ["elementRef"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
35
30
  }
36
31
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CuiEditorReadonlyComponent, decorators: [{
37
32
  type: Component,
38
- args: [{ selector: 'cui-editor-readonly', standalone: true, imports: [CuiEditorComponent, NgTemplateOutlet], changeDetection: ChangeDetectionStrategy.OnPush, template: "<cui-editor\r\n #editor\r\n class=\"editor\"\r\n [class.editor_opened]=\"isShowMore()\"\r\n [editorApiId]=\"editorId()\"\r\n [config]=\"editorConfig()\"\r\n/>\r\n@if (isMoreButtonShown()) {\r\n <button class=\"c-button\" (click)=\"onShow(editor)\">\r\n <ng-container [ngTemplateOutlet]=\"buttonTemplate()\" [ngTemplateOutletContext]=\"{ $implicit: isShowMore }\"></ng-container>\r\n </button>\r\n}\r\n", styles: [":host{--height: 68px;--fullHeight: 500px;display:flex;flex-direction:column;gap:8px}:host .editor{display:block;max-height:var(--height);overflow:hidden}:host .editor ::ng-deep [data-editor]{overflow:hidden}:host .editor_opened{max-height:var(--fullHeight)}:host .editor_opened ::ng-deep [data-editor]{max-height:var(--fullHeight);overflow:hidden auto}.c-button{padding:0}\n"] }]
33
+ args: [{ selector: 'cui-editor-readonly', standalone: true, imports: [CuiEditorComponent, NgTemplateOutlet, EditorResizeObserverDirective, CuiElementDirective], changeDetection: ChangeDetectionStrategy.OnPush, template: "<cui-editor\r\n cuiElement\r\n #editorElement=\"elementRef\"\r\n #editorComponent\r\n class=\"editor\"\r\n [class.editor_opened]=\"isShowMore()\"\r\n [editorApiId]=\"editorId()\"\r\n [config]=\"editorConfig()\"\r\n/>\r\n\r\n<ng-template [editorResizeObserver] [target]=\"editorElement.nativeElement\" [shortHeight]=\"shortHeight()\">\r\n <button class=\"c-button\" (click)=\"onShow(editorComponent)\">\r\n <ng-container [ngTemplateOutlet]=\"buttonTemplate()\" [ngTemplateOutletContext]=\"{ $implicit: isShowMore }\"></ng-container>\r\n </button>\r\n</ng-template>\r\n", styles: [":host{--height: 68px;--fullHeight: 500px;display:flex;flex-direction:column;gap:8px}:host .editor{display:block;max-height:var(--height);overflow:hidden}:host .editor ::ng-deep [data-editor]{overflow:hidden}:host .editor_opened{max-height:var(--fullHeight)}:host .editor_opened ::ng-deep [data-editor]{max-height:var(--fullHeight);overflow:hidden auto}.c-button{padding:0}\n"] }]
39
34
  }], ctorParameters: () => [] });
40
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdG9yLXJlYWRvbmx5LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvZWRpdG9yL3dpZGdldHMvZWRpdG9yLXJlYWRvbmx5L2VkaXRvci1yZWFkb25seS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2VkaXRvci93aWRnZXRzL2VkaXRvci1yZWFkb25seS9lZGl0b3ItcmVhZG9ubHkuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbkQsT0FBTyxFQUNILFdBQVcsRUFDWCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFFBQVEsRUFDUixNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sRUFFTixTQUFTLEVBQ1osTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7O0FBVzVELE1BQU0sT0FBTywwQkFBMEI7SUFZbkM7UUFYbUIsZUFBVSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMzQixzQkFBaUIsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbEMsaUJBQVksR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsY0FBYyxFQUFFLElBQUksRUFBRSxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUU1RixXQUFNLEdBQUcsU0FBUyxDQUFDLFFBQVEsQ0FBcUIsUUFBUSxDQUFDLENBQUM7UUFFN0QsYUFBUSxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQVUsQ0FBQztRQUNwQyxXQUFNLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBMkIsQ0FBQztRQUNuRCxtQkFBYyxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQXdCLENBQUM7UUFDeEQsZ0JBQVcsR0FBRyxLQUFLLENBQVMsRUFBRSxDQUFDLENBQUM7UUFHNUMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7UUFDMUIsSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7SUFDbEMsQ0FBQztJQUVTLE1BQU0sQ0FBQyxNQUEwQjtRQUN2QyxNQUFNLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDcEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVPLHNCQUFzQjtRQUMxQixXQUFXLENBQUM7WUFDUixJQUFJLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsYUFBYSxFQUFFLFlBQVksR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7U0FDekcsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVPLGtCQUFrQjtRQUN0QixNQUFNLENBQUMsR0FBRyxFQUFFO1lBQ1IsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ2hCLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQy9CLENBQUMsRUFBRSxFQUFFLGlCQUFpQixFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDcEMsQ0FBQzsrR0FqQ1EsMEJBQTBCO21HQUExQiwwQkFBMEIsbXVCQ3hCdkMseWFBWUEsZ2JET2Msa0JBQWtCLG1JQUFFLGdCQUFnQjs7NEZBS3JDLDBCQUEwQjtrQkFSdEMsU0FBUzsrQkFDSSxxQkFBcUIsY0FDbkIsSUFBSSxXQUNQLENBQUMsa0JBQWtCLEVBQUUsZ0JBQWdCLENBQUMsbUJBRzlCLHVCQUF1QixDQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHtcclxuICAgIGFmdGVyUmVuZGVyLFxyXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgICBDb21wb25lbnQsXHJcbiAgICBjb21wdXRlZCxcclxuICAgIGVmZmVjdCxcclxuICAgIGlucHV0LFxyXG4gICAgc2lnbmFsLFxyXG4gICAgVGVtcGxhdGVSZWYsXHJcbiAgICB2aWV3Q2hpbGRcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmltcG9ydCB7IEN1aUVkaXRvckNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2VkaXRvci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDdWlFZGl0b3JSZWFkb25seUNvbmZpZyB9IGZyb20gJy4vZWRpdG9yLXJlYWRvbmx5Lm9wdGlvbnMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2N1aS1lZGl0b3ItcmVhZG9ubHknLFxyXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICAgIGltcG9ydHM6IFtDdWlFZGl0b3JDb21wb25lbnQsIE5nVGVtcGxhdGVPdXRsZXRdLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2VkaXRvci1yZWFkb25seS5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi9lZGl0b3ItcmVhZG9ubHkuY29tcG9uZW50LnNjc3MnXSxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDdWlFZGl0b3JSZWFkb25seUNvbXBvbmVudCB7XHJcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgaXNTaG93TW9yZSA9IHNpZ25hbChmYWxzZSk7XHJcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgaXNNb3JlQnV0dG9uU2hvd24gPSBzaWduYWwoZmFsc2UpO1xyXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGVkaXRvckNvbmZpZyA9IGNvbXB1dGVkKCgpID0+ICh7IHJlYWRPbmx5OiB0cnVlLCB3aXRob3V0UHJlbG9hZDogdHJ1ZSwgLi4udGhpcy5jb25maWcoKSB9KSk7XHJcblxyXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGVkaXRvciA9IHZpZXdDaGlsZC5yZXF1aXJlZDxDdWlFZGl0b3JDb21wb25lbnQ+KCdlZGl0b3InKTtcclxuXHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgZWRpdG9ySWQgPSBpbnB1dC5yZXF1aXJlZDxzdHJpbmc+KCk7XHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgY29uZmlnID0gaW5wdXQucmVxdWlyZWQ8Q3VpRWRpdG9yUmVhZG9ubHlDb25maWc+KCk7XHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgYnV0dG9uVGVtcGxhdGUgPSBpbnB1dC5yZXF1aXJlZDxUZW1wbGF0ZVJlZjx1bmtub3duPj4oKTtcclxuICAgIHB1YmxpYyByZWFkb25seSBzaG9ydEhlaWdodCA9IGlucHV0PG51bWJlcj4oNjgpO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgICAgIHRoaXMuaW5pdEVkaXRvcklkRWZmZWN0KCk7XHJcbiAgICAgICAgdGhpcy5pbml0UmVhZEVkaXRvclByb3BlcnR5KCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJvdGVjdGVkIG9uU2hvdyhlZGl0b3I6IEN1aUVkaXRvckNvbXBvbmVudCk6IHZvaWQge1xyXG4gICAgICAgIGVkaXRvci5lZGl0b3JFbGVtZW50LnNjcm9sbFRvKDAsIDApO1xyXG4gICAgICAgIHRoaXMuaXNTaG93TW9yZS51cGRhdGUoKHByZXYpID0+ICFwcmV2KTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGluaXRSZWFkRWRpdG9yUHJvcGVydHkoKTogdm9pZCB7XHJcbiAgICAgICAgYWZ0ZXJSZW5kZXIoe1xyXG4gICAgICAgICAgICByZWFkOiAoKSA9PiB0aGlzLmlzTW9yZUJ1dHRvblNob3duLnNldCh0aGlzLmVkaXRvcigpLmVkaXRvckVsZW1lbnQ/LnNjcm9sbEhlaWdodCA+IHRoaXMuc2hvcnRIZWlnaHQoKSlcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGluaXRFZGl0b3JJZEVmZmVjdCgpOiB2b2lkIHtcclxuICAgICAgICBlZmZlY3QoKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmVkaXRvcklkKCk7XHJcbiAgICAgICAgICAgIHRoaXMuaXNTaG93TW9yZS5zZXQoZmFsc2UpO1xyXG4gICAgICAgIH0sIHsgYWxsb3dTaWduYWxXcml0ZXM6IHRydWUgfSk7XHJcbiAgICB9XHJcbn1cclxuIiwiPGN1aS1lZGl0b3JcclxuICAgICNlZGl0b3JcclxuICAgIGNsYXNzPVwiZWRpdG9yXCJcclxuICAgIFtjbGFzcy5lZGl0b3Jfb3BlbmVkXT1cImlzU2hvd01vcmUoKVwiXHJcbiAgICBbZWRpdG9yQXBpSWRdPVwiZWRpdG9ySWQoKVwiXHJcbiAgICBbY29uZmlnXT1cImVkaXRvckNvbmZpZygpXCJcclxuLz5cclxuQGlmIChpc01vcmVCdXR0b25TaG93bigpKSB7XHJcbiAgPGJ1dHRvbiBjbGFzcz1cImMtYnV0dG9uXCIgKGNsaWNrKT1cIm9uU2hvdyhlZGl0b3IpXCI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiYnV0dG9uVGVtcGxhdGUoKVwiIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogaXNTaG93TW9yZSB9XCI+PC9uZy1jb250YWluZXI+XHJcbiAgPC9idXR0b24+XHJcbn1cclxuIl19
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdG9yLXJlYWRvbmx5LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvZWRpdG9yL3dpZGdldHMvZWRpdG9yLXJlYWRvbmx5L2VkaXRvci1yZWFkb25seS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2VkaXRvci93aWRnZXRzL2VkaXRvci1yZWFkb25seS9lZGl0b3ItcmVhZG9ubHkuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbkQsT0FBTyxFQUNILHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsUUFBUSxFQUNSLE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxFQUVOLFNBQVMsRUFDWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFbkQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFNUQsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sb0NBQW9DLENBQUM7O0FBVW5GLE1BQU0sT0FBTywwQkFBMEI7SUFXbkM7UUFWbUIsZUFBVSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMzQixpQkFBWSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxjQUFjLEVBQUUsSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBRTVGLFdBQU0sR0FBRyxTQUFTLENBQUMsUUFBUSxDQUFxQixRQUFRLENBQUMsQ0FBQztRQUU3RCxhQUFRLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBVSxDQUFDO1FBQ3BDLFdBQU0sR0FBRyxLQUFLLENBQUMsUUFBUSxFQUEyQixDQUFDO1FBQ25ELG1CQUFjLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBd0IsQ0FBQztRQUN4RCxnQkFBVyxHQUFHLEtBQUssQ0FBUyxFQUFFLENBQUMsQ0FBQztRQUc1QyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBRVMsTUFBTSxDQUFDLE1BQTBCO1FBQ3ZDLE1BQU0sQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNwQyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRU8sa0JBQWtCO1FBQ3RCLE1BQU0sQ0FBQyxHQUFHLEVBQUU7WUFDUixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDaEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDL0IsQ0FBQyxFQUFFLEVBQUUsaUJBQWlCLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUNwQyxDQUFDOytHQXpCUSwwQkFBMEI7bUdBQTFCLDBCQUEwQixtdUJDekJ2QywybEJBZUEsZ2JES2Msa0JBQWtCLG1JQUFFLGdCQUFnQixvSkFBRSw2QkFBNkIsc0dBQUUsbUJBQW1COzs0RkFLekYsMEJBQTBCO2tCQVJ0QyxTQUFTOytCQUNJLHFCQUFxQixjQUNuQixJQUFJLFdBQ1AsQ0FBQyxrQkFBa0IsRUFBRSxnQkFBZ0IsRUFBRSw2QkFBNkIsRUFBRSxtQkFBbUIsQ0FBQyxtQkFHbEYsdUJBQXVCLENBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQge1xyXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgICBDb21wb25lbnQsXHJcbiAgICBjb21wdXRlZCxcclxuICAgIGVmZmVjdCxcclxuICAgIGlucHV0LFxyXG4gICAgc2lnbmFsLFxyXG4gICAgVGVtcGxhdGVSZWYsXHJcbiAgICB2aWV3Q2hpbGRcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ3VpRWxlbWVudERpcmVjdGl2ZSB9IGZyb20gJ0BjdWJ5LXVpL2Nkayc7XHJcblxyXG5pbXBvcnQgeyBDdWlFZGl0b3JDb21wb25lbnQgfSBmcm9tICcuLi8uLi9lZGl0b3IuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ3VpRWRpdG9yUmVhZG9ubHlDb25maWcgfSBmcm9tICcuL2VkaXRvci1yZWFkb25seS5vcHRpb25zJztcclxuaW1wb3J0IHsgRWRpdG9yUmVzaXplT2JzZXJ2ZXJEaXJlY3RpdmUgfSBmcm9tICcuL2VkaXRvci1yZXNpemUtb2JzZXJ2ZXIuZGlyZWN0aXZlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdjdWktZWRpdG9yLXJlYWRvbmx5JyxcclxuICAgIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgICBpbXBvcnRzOiBbQ3VpRWRpdG9yQ29tcG9uZW50LCBOZ1RlbXBsYXRlT3V0bGV0LCBFZGl0b3JSZXNpemVPYnNlcnZlckRpcmVjdGl2ZSwgQ3VpRWxlbWVudERpcmVjdGl2ZV0sXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vZWRpdG9yLXJlYWRvbmx5LmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL2VkaXRvci1yZWFkb25seS5jb21wb25lbnQuc2NzcyddLFxyXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcclxufSlcclxuZXhwb3J0IGNsYXNzIEN1aUVkaXRvclJlYWRvbmx5Q29tcG9uZW50IHtcclxuICAgIHByb3RlY3RlZCByZWFkb25seSBpc1Nob3dNb3JlID0gc2lnbmFsKGZhbHNlKTtcclxuICAgIHByb3RlY3RlZCByZWFkb25seSBlZGl0b3JDb25maWcgPSBjb21wdXRlZCgoKSA9PiAoeyByZWFkT25seTogdHJ1ZSwgd2l0aG91dFByZWxvYWQ6IHRydWUsIC4uLnRoaXMuY29uZmlnKCkgfSkpO1xyXG5cclxuICAgIHByb3RlY3RlZCByZWFkb25seSBlZGl0b3IgPSB2aWV3Q2hpbGQucmVxdWlyZWQ8Q3VpRWRpdG9yQ29tcG9uZW50PignZWRpdG9yJyk7XHJcblxyXG4gICAgcHVibGljIHJlYWRvbmx5IGVkaXRvcklkID0gaW5wdXQucmVxdWlyZWQ8c3RyaW5nPigpO1xyXG4gICAgcHVibGljIHJlYWRvbmx5IGNvbmZpZyA9IGlucHV0LnJlcXVpcmVkPEN1aUVkaXRvclJlYWRvbmx5Q29uZmlnPigpO1xyXG4gICAgcHVibGljIHJlYWRvbmx5IGJ1dHRvblRlbXBsYXRlID0gaW5wdXQucmVxdWlyZWQ8VGVtcGxhdGVSZWY8dW5rbm93bj4+KCk7XHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgc2hvcnRIZWlnaHQgPSBpbnB1dDxudW1iZXI+KDY4KTtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcigpIHtcclxuICAgICAgICB0aGlzLmluaXRFZGl0b3JJZEVmZmVjdCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHByb3RlY3RlZCBvblNob3coZWRpdG9yOiBDdWlFZGl0b3JDb21wb25lbnQpOiB2b2lkIHtcclxuICAgICAgICBlZGl0b3IuZWRpdG9yRWxlbWVudC5zY3JvbGxUbygwLCAwKTtcclxuICAgICAgICB0aGlzLmlzU2hvd01vcmUudXBkYXRlKChwcmV2KSA9PiAhcHJldik7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBpbml0RWRpdG9ySWRFZmZlY3QoKTogdm9pZCB7XHJcbiAgICAgICAgZWZmZWN0KCgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5lZGl0b3JJZCgpO1xyXG4gICAgICAgICAgICB0aGlzLmlzU2hvd01vcmUuc2V0KGZhbHNlKTtcclxuICAgICAgICB9LCB7IGFsbG93U2lnbmFsV3JpdGVzOiB0cnVlIH0pO1xyXG4gICAgfVxyXG59XHJcbiIsIjxjdWktZWRpdG9yXHJcbiAgICBjdWlFbGVtZW50XHJcbiAgICAjZWRpdG9yRWxlbWVudD1cImVsZW1lbnRSZWZcIlxyXG4gICAgI2VkaXRvckNvbXBvbmVudFxyXG4gICAgY2xhc3M9XCJlZGl0b3JcIlxyXG4gICAgW2NsYXNzLmVkaXRvcl9vcGVuZWRdPVwiaXNTaG93TW9yZSgpXCJcclxuICAgIFtlZGl0b3JBcGlJZF09XCJlZGl0b3JJZCgpXCJcclxuICAgIFtjb25maWddPVwiZWRpdG9yQ29uZmlnKClcIlxyXG4vPlxyXG5cclxuPG5nLXRlbXBsYXRlIFtlZGl0b3JSZXNpemVPYnNlcnZlcl0gW3RhcmdldF09XCJlZGl0b3JFbGVtZW50Lm5hdGl2ZUVsZW1lbnRcIiBbc2hvcnRIZWlnaHRdPVwic2hvcnRIZWlnaHQoKVwiPlxyXG4gICAgPGJ1dHRvbiBjbGFzcz1cImMtYnV0dG9uXCIgKGNsaWNrKT1cIm9uU2hvdyhlZGl0b3JDb21wb25lbnQpXCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJidXR0b25UZW1wbGF0ZSgpXCIgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiBpc1Nob3dNb3JlIH1cIj48L25nLWNvbnRhaW5lcj5cclxuICAgIDwvYnV0dG9uPlxyXG48L25nLXRlbXBsYXRlPlxyXG4iXX0=
@@ -0,0 +1,51 @@
1
+ import { Directive, effect, inject, input, TemplateRef, ViewContainerRef } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class EditorResizeObserverDirective {
4
+ constructor() {
5
+ this.templateRef = inject(TemplateRef);
6
+ this.viewContainerRef = inject(ViewContainerRef);
7
+ this.observer = null;
8
+ this.target = input.required();
9
+ this.shortHeight = input.required();
10
+ this.initTargetEffect();
11
+ }
12
+ ngOnDestroy() {
13
+ this.destroyObserver();
14
+ }
15
+ initTargetEffect() {
16
+ effect(() => {
17
+ const target = this.target();
18
+ if (!target) {
19
+ return;
20
+ }
21
+ this.initObserver();
22
+ });
23
+ }
24
+ initObserver() {
25
+ this.observer = new ResizeObserver((entries) => {
26
+ if (entries[0].target.scrollHeight <= this.shortHeight()) {
27
+ this.viewContainerRef.clear();
28
+ return;
29
+ }
30
+ if (this.viewContainerRef.length) {
31
+ return;
32
+ }
33
+ this.viewContainerRef.createEmbeddedView(this.templateRef);
34
+ });
35
+ this.observer.observe(this.target());
36
+ }
37
+ destroyObserver() {
38
+ this.observer?.disconnect();
39
+ this.observer = null;
40
+ }
41
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EditorResizeObserverDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
42
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.13", type: EditorResizeObserverDirective, isStandalone: true, selector: "[editorResizeObserver]", inputs: { target: { classPropertyName: "target", publicName: "target", isSignal: true, isRequired: true, transformFunction: null }, shortHeight: { classPropertyName: "shortHeight", publicName: "shortHeight", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0 }); }
43
+ }
44
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EditorResizeObserverDirective, decorators: [{
45
+ type: Directive,
46
+ args: [{
47
+ selector: '[editorResizeObserver]',
48
+ standalone: true
49
+ }]
50
+ }], ctorParameters: () => [] });
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdG9yLXJlc2l6ZS1vYnNlcnZlci5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL2VkaXRvci93aWRnZXRzL2VkaXRvci1yZWFkb25seS9lZGl0b3ItcmVzaXplLW9ic2VydmVyLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFNaEcsTUFBTSxPQUFPLDZCQUE2QjtJQVN0QztRQVJpQixnQkFBVyxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNsQyxxQkFBZ0IsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUVyRCxhQUFRLEdBQTBCLElBQUksQ0FBQztRQUUvQixXQUFNLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBZSxDQUFDO1FBQ3ZDLGdCQUFXLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBVSxDQUFDO1FBR25ELElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFTSxXQUFXO1FBQ2QsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFTyxnQkFBZ0I7UUFDcEIsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUNSLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUU3QixJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7Z0JBQ1YsT0FBTztZQUNYLENBQUM7WUFFRCxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDeEIsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU8sWUFBWTtRQUNoQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksY0FBYyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7WUFDM0MsSUFBSSxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFlBQVksSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQztnQkFDdkQsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUU5QixPQUFPO1lBQ1gsQ0FBQztZQUVELElBQUksSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUMvQixPQUFPO1lBQ1gsQ0FBQztZQUVELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDL0QsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRU8sZUFBZTtRQUNuQixJQUFJLENBQUMsUUFBUSxFQUFFLFVBQVUsRUFBRSxDQUFDO1FBQzVCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO0lBQ3pCLENBQUM7K0dBbERRLDZCQUE2QjttR0FBN0IsNkJBQTZCOzs0RkFBN0IsNkJBQTZCO2tCQUp6QyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSx3QkFBd0I7b0JBQ2xDLFVBQVUsRUFBRSxJQUFJO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgZWZmZWN0LCBpbmplY3QsIGlucHV0LCBUZW1wbGF0ZVJlZiwgVmlld0NvbnRhaW5lclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1tlZGl0b3JSZXNpemVPYnNlcnZlcl0nLFxuICAgIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgRWRpdG9yUmVzaXplT2JzZXJ2ZXJEaXJlY3RpdmUge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgdGVtcGxhdGVSZWYgPSBpbmplY3QoVGVtcGxhdGVSZWYpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgdmlld0NvbnRhaW5lclJlZiA9IGluamVjdChWaWV3Q29udGFpbmVyUmVmKTtcblxuICAgIHByaXZhdGUgb2JzZXJ2ZXI6IFJlc2l6ZU9ic2VydmVyIHwgbnVsbCA9IG51bGw7XG5cbiAgICBwdWJsaWMgcmVhZG9ubHkgdGFyZ2V0ID0gaW5wdXQucmVxdWlyZWQ8SFRNTEVsZW1lbnQ+KCk7XG4gICAgcHVibGljIHJlYWRvbmx5IHNob3J0SGVpZ2h0ID0gaW5wdXQucmVxdWlyZWQ8bnVtYmVyPigpO1xuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMuaW5pdFRhcmdldEVmZmVjdCgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kZXN0cm95T2JzZXJ2ZXIoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGluaXRUYXJnZXRFZmZlY3QoKTogdm9pZCB7XG4gICAgICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCB0YXJnZXQgPSB0aGlzLnRhcmdldCgpO1xuXG4gICAgICAgICAgICBpZiAoIXRhcmdldCkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5pbml0T2JzZXJ2ZXIoKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpbml0T2JzZXJ2ZXIoKTogdm9pZCB7XG4gICAgICAgIHRoaXMub2JzZXJ2ZXIgPSBuZXcgUmVzaXplT2JzZXJ2ZXIoKGVudHJpZXMpID0+IHtcbiAgICAgICAgICAgIGlmIChlbnRyaWVzWzBdLnRhcmdldC5zY3JvbGxIZWlnaHQgPD0gdGhpcy5zaG9ydEhlaWdodCgpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy52aWV3Q29udGFpbmVyUmVmLmNsZWFyKCk7XG5cbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICh0aGlzLnZpZXdDb250YWluZXJSZWYubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLnZpZXdDb250YWluZXJSZWYuY3JlYXRlRW1iZWRkZWRWaWV3KHRoaXMudGVtcGxhdGVSZWYpO1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLm9ic2VydmVyLm9ic2VydmUodGhpcy50YXJnZXQoKSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBkZXN0cm95T2JzZXJ2ZXIoKTogdm9pZCB7XG4gICAgICAgIHRoaXMub2JzZXJ2ZXI/LmRpc2Nvbm5lY3QoKTtcbiAgICAgICAgdGhpcy5vYnNlcnZlciA9IG51bGw7XG4gICAgfVxufVxuIl19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLXRoZW1lLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS90eXBlcy9idXR0b24tdGhlbWUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIEN1aUJ1dHRvblRoZW1lRGVmYXVsdCA9ICdkZWZhdWx0JztcbmV4cG9ydCB0eXBlIEN1aUJ1dHRvblRoZW1lVmlvbGV0ID0gJ3Zpb2xldCc7XG5leHBvcnQgdHlwZSBDdWlCdXR0b25UaGVtZUN5YW4gPSAnY3lhbic7XG5leHBvcnQgdHlwZSBDdWlCdXR0b25UaGVtZVN1Y2Nlc3MgPSAnc3VjY2Vzcyc7XG5leHBvcnQgdHlwZSBDdWlCdXR0b25UaGVtZVZpdmlkU3VjY2VzcyA9ICd2aXZpZC1zdWNjZXNzJztcbiJdfQ==
@@ -7,4 +7,5 @@ export * from './resizing';
7
7
  export * from './shape';
8
8
  export * from './size';
9
9
  export * from './status';
10
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3R5cGVzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsU0FBUyxDQUFDO0FBQ3hCLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsWUFBWSxDQUFDO0FBQzNCLGNBQWMsWUFBWSxDQUFDO0FBQzNCLGNBQWMsU0FBUyxDQUFDO0FBQ3hCLGNBQWMsUUFBUSxDQUFDO0FBQ3ZCLGNBQWMsVUFBVSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9hcHBlYXJhbmNlJztcbmV4cG9ydCAqIGZyb20gJy4vaGludC10eXBlJztcbmV4cG9ydCAqIGZyb20gJy4vcG9pbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9wb3J0YWwtaXRlbSc7XG5leHBvcnQgKiBmcm9tICcuL3Bvc2l0aW9uJztcbmV4cG9ydCAqIGZyb20gJy4vcmVzaXppbmcnO1xuZXhwb3J0ICogZnJvbSAnLi9zaGFwZSc7XG5leHBvcnQgKiBmcm9tICcuL3NpemUnO1xuZXhwb3J0ICogZnJvbSAnLi9zdGF0dXMnO1xuIl19
10
+ export * from './button-theme';
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3R5cGVzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsU0FBUyxDQUFDO0FBQ3hCLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsWUFBWSxDQUFDO0FBQzNCLGNBQWMsWUFBWSxDQUFDO0FBQzNCLGNBQWMsU0FBUyxDQUFDO0FBQ3hCLGNBQWMsUUFBUSxDQUFDO0FBQ3ZCLGNBQWMsVUFBVSxDQUFDO0FBQ3pCLGNBQWMsZ0JBQWdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2FwcGVhcmFuY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9oaW50LXR5cGUnO1xuZXhwb3J0ICogZnJvbSAnLi9wb2ludCc7XG5leHBvcnQgKiBmcm9tICcuL3BvcnRhbC1pdGVtJztcbmV4cG9ydCAqIGZyb20gJy4vcG9zaXRpb24nO1xuZXhwb3J0ICogZnJvbSAnLi9yZXNpemluZyc7XG5leHBvcnQgKiBmcm9tICcuL3NoYXBlJztcbmV4cG9ydCAqIGZyb20gJy4vc2l6ZSc7XG5leHBvcnQgKiBmcm9tICcuL3N0YXR1cyc7XG5leHBvcnQgKiBmcm9tICcuL2J1dHRvbi10aGVtZSc7XG4iXX0=
@@ -57,7 +57,7 @@ export class CuiCategoriesComponent {
57
57
  }, { allowSignalWrites: true });
58
58
  }
59
59
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CuiCategoriesComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
60
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: CuiCategoriesComponent, isStandalone: true, selector: "cui-categories", inputs: { treeStructType: { classPropertyName: "treeStructType", publicName: "treeStructType", isSignal: true, isRequired: true, transformFunction: null }, buttonId: { classPropertyName: "buttonId", publicName: "buttonId", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "dropdown", first: true, predicate: ["dropdown"], descendants: true, isSignal: true }], ngImport: i0, template: "<button\r\n [attr.id]=\"buttonId()\"\r\n #dropdown=\"cuiDropdown\"\r\n [cuiDropdown]=\"dropdownContent\"\r\n orientation=\"stretch\"\r\n type=\"button\"\r\n class=\"target\"\r\n [disabled]=\"disabled()\"\r\n (click)=\"onOpenStageStorages()\"\r\n>\r\n <ng-content />\r\n</button>\r\n\r\n<ng-template #dropdownContent>\r\n <cui-dropdown-wrapper\r\n *transloco=\"let t\"\r\n [title]=\"t('SELECT_OR_CREATE_CATEGORY')\"\r\n width=\"100%\"\r\n class=\"dropdown-wrapper\"\r\n >\r\n <ng-container *cuiLet=\"stageStorages() as stageStorages\">\r\n @if (stageStorages && stageStorages?.length) {\r\n <cui-categories-list [stageStorages]=\"stageStorages\" />\r\n }\r\n @if (isCreateCategoryControlVisible()) {\r\n <cui-create-category-item\r\n class=\"create-category\"\r\n [isDisabled]=\"isCategoryCreationLoading()\"\r\n (created)=\"onCreateNewCategory($event)\"\r\n (canceled)=\"onCreatingCategoryCanceled()\"\r\n />\r\n } @else if (!stageStorages?.length) {\r\n <cui-empty-state\r\n class=\"empty\"\r\n [subtitle]=\"t('NO_CATEGORY_TO_VIEW_YET')\"\r\n />\r\n }\r\n </ng-container>\r\n <button\r\n ccDropdownFooterContent\r\n cuiButton\r\n type=\"button\"\r\n appearance=\"ghost\"\r\n size=\"xxs\"\r\n icon=\"cuiIconPlus\"\r\n (click)=\"onStartCreatingNewCategory()\"\r\n >\r\n {{ t('NEW_CATEGORY') }}\r\n </button>\r\n </cui-dropdown-wrapper>\r\n</ng-template>\r\n", styles: ["::ng-deep .dropdown-wrapper .scrollable-content{flex:1;display:flex;flex-direction:column}.target{display:block;padding:0;width:100%;border-radius:8px;border:1px solid transparent}.target:focus{box-shadow:0 0 0 2px var(--cui-focus);border:1px solid var(--cui-info)}.target:disabled{cursor:default}.create-category{margin-left:24px}.empty{margin:auto}.dropdown-wrapper{display:block;height:350px}\n"], dependencies: [{ kind: "ngmodule", type: CuiButtonModule }, { kind: "component", type: i1.CuiButtonComponent, selector: "button[cuiButton], a[cuiButton]", inputs: ["shape", "disabled", "isLoaderShown", "icon", "iconRight", "appearance", "size"] }, { kind: "directive", type: CuiLetDirective, selector: "[cuiLet]", inputs: ["cuiLet"] }, { kind: "directive", type: CuiDropdownDirective, selector: "[cuiDropdown]", inputs: ["cuiDropdown", "orientation"], outputs: ["isOpened"], exportAs: ["cuiDropdown"] }, { kind: "component", type: CuiDropdownWrapperComponent, selector: "cui-dropdown-wrapper", inputs: ["title", "width"] }, { kind: "component", type: CuiEmptyStateComponent, selector: "cui-empty-state, [cuiEmptyState]", inputs: ["title", "subtitle"] }, { kind: "component", type: CuiCreateCategoryItemComponent, selector: "cui-create-category-item", inputs: ["isDisabled"], outputs: ["created", "canceled"] }, { kind: "component", type: CuiCategoriesListComponent, selector: "cui-categories-list", inputs: ["stageStorages"] }, { kind: "directive", type: TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
60
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: CuiCategoriesComponent, isStandalone: true, selector: "cui-categories", inputs: { treeStructType: { classPropertyName: "treeStructType", publicName: "treeStructType", isSignal: true, isRequired: true, transformFunction: null }, buttonId: { classPropertyName: "buttonId", publicName: "buttonId", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "dropdown", first: true, predicate: ["dropdown"], descendants: true, isSignal: true }], ngImport: i0, template: "<button\r\n [attr.id]=\"buttonId()\"\r\n #dropdown=\"cuiDropdown\"\r\n [cuiDropdown]=\"dropdownContent\"\r\n orientation=\"stretch\"\r\n type=\"button\"\r\n class=\"target\"\r\n [disabled]=\"disabled()\"\r\n (click)=\"onOpenStageStorages()\"\r\n>\r\n <ng-content />\r\n</button>\r\n\r\n<ng-template #dropdownContent>\r\n <cui-dropdown-wrapper\r\n *transloco=\"let t\"\r\n [title]=\"t('SELECT_OR_CREATE_CATEGORY')\"\r\n width=\"100%\"\r\n class=\"dropdown-wrapper\"\r\n >\r\n <ng-container *cuiLet=\"stageStorages() as stageStorages\">\r\n @if (stageStorages && stageStorages?.length) {\r\n <cui-categories-list [stageStorages]=\"stageStorages\" />\r\n }\r\n @if (isCreateCategoryControlVisible()) {\r\n <cui-create-category-item\r\n class=\"create-category\"\r\n [isDisabled]=\"isCategoryCreationLoading()\"\r\n (created)=\"onCreateNewCategory($event)\"\r\n (canceled)=\"onCreatingCategoryCanceled()\"\r\n />\r\n } @else if (!stageStorages?.length) {\r\n <cui-empty-state\r\n class=\"empty\"\r\n [subtitle]=\"t('NO_CATEGORY_TO_VIEW_YET')\"\r\n />\r\n }\r\n </ng-container>\r\n <button\r\n ccDropdownFooterContent\r\n cuiButton\r\n type=\"button\"\r\n appearance=\"ghost\"\r\n size=\"xxs\"\r\n icon=\"cuiIconPlus\"\r\n (click)=\"onStartCreatingNewCategory()\"\r\n >\r\n {{ t('NEW_CATEGORY') }}\r\n </button>\r\n </cui-dropdown-wrapper>\r\n</ng-template>\r\n", styles: ["::ng-deep .dropdown-wrapper .scrollable-content{flex:1;display:flex;flex-direction:column}.target{display:block;padding:0;width:100%;border-radius:8px;border:1px solid transparent}.target:focus{box-shadow:0 0 0 2px var(--cui-focus);border:1px solid var(--cui-info)}.target:disabled{cursor:default}.create-category{margin-left:24px}.empty{margin:auto}.dropdown-wrapper{display:block;height:350px}\n"], dependencies: [{ kind: "ngmodule", type: CuiButtonModule }, { kind: "component", type: i1.CuiButtonComponent, selector: "button[cuiButton], a[cuiButton]", inputs: ["shape", "disabled", "isLoaderShown", "icon", "iconRight", "appearance", "theme", "size"] }, { kind: "directive", type: CuiLetDirective, selector: "[cuiLet]", inputs: ["cuiLet"] }, { kind: "directive", type: CuiDropdownDirective, selector: "[cuiDropdown]", inputs: ["cuiDropdown", "orientation"], outputs: ["isOpened"], exportAs: ["cuiDropdown"] }, { kind: "component", type: CuiDropdownWrapperComponent, selector: "cui-dropdown-wrapper", inputs: ["title", "width"] }, { kind: "component", type: CuiEmptyStateComponent, selector: "cui-empty-state, [cuiEmptyState]", inputs: ["title", "subtitle"] }, { kind: "component", type: CuiCreateCategoryItemComponent, selector: "cui-create-category-item", inputs: ["isDisabled"], outputs: ["created", "canceled"] }, { kind: "component", type: CuiCategoriesListComponent, selector: "cui-categories-list", inputs: ["stageStorages"] }, { kind: "directive", type: TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
61
61
  }
62
62
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CuiCategoriesComponent, decorators: [{
63
63
  type: Component,
@@ -72,4 +72,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
72
72
  TranslocoDirective
73
73
  ], standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "<button\r\n [attr.id]=\"buttonId()\"\r\n #dropdown=\"cuiDropdown\"\r\n [cuiDropdown]=\"dropdownContent\"\r\n orientation=\"stretch\"\r\n type=\"button\"\r\n class=\"target\"\r\n [disabled]=\"disabled()\"\r\n (click)=\"onOpenStageStorages()\"\r\n>\r\n <ng-content />\r\n</button>\r\n\r\n<ng-template #dropdownContent>\r\n <cui-dropdown-wrapper\r\n *transloco=\"let t\"\r\n [title]=\"t('SELECT_OR_CREATE_CATEGORY')\"\r\n width=\"100%\"\r\n class=\"dropdown-wrapper\"\r\n >\r\n <ng-container *cuiLet=\"stageStorages() as stageStorages\">\r\n @if (stageStorages && stageStorages?.length) {\r\n <cui-categories-list [stageStorages]=\"stageStorages\" />\r\n }\r\n @if (isCreateCategoryControlVisible()) {\r\n <cui-create-category-item\r\n class=\"create-category\"\r\n [isDisabled]=\"isCategoryCreationLoading()\"\r\n (created)=\"onCreateNewCategory($event)\"\r\n (canceled)=\"onCreatingCategoryCanceled()\"\r\n />\r\n } @else if (!stageStorages?.length) {\r\n <cui-empty-state\r\n class=\"empty\"\r\n [subtitle]=\"t('NO_CATEGORY_TO_VIEW_YET')\"\r\n />\r\n }\r\n </ng-container>\r\n <button\r\n ccDropdownFooterContent\r\n cuiButton\r\n type=\"button\"\r\n appearance=\"ghost\"\r\n size=\"xxs\"\r\n icon=\"cuiIconPlus\"\r\n (click)=\"onStartCreatingNewCategory()\"\r\n >\r\n {{ t('NEW_CATEGORY') }}\r\n </button>\r\n </cui-dropdown-wrapper>\r\n</ng-template>\r\n", styles: ["::ng-deep .dropdown-wrapper .scrollable-content{flex:1;display:flex;flex-direction:column}.target{display:block;padding:0;width:100%;border-radius:8px;border:1px solid transparent}.target:focus{box-shadow:0 0 0 2px var(--cui-focus);border:1px solid var(--cui-info)}.target:disabled{cursor:default}.create-category{margin-left:24px}.empty{margin:auto}.dropdown-wrapper{display:block;height:350px}\n"] }]
74
74
  }], ctorParameters: () => [] });
75
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0ZWdvcmllcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3dpZGdldHMvY2F0ZWdvcmllcy9jYXRlZ29yaWVzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvd2lkZ2V0cy9jYXRlZ29yaWVzL2NhdGVnb3JpZXMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILGdCQUFnQixFQUNoQix1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFFBQVEsRUFDUixNQUFNLEVBQ04sTUFBTSxFQUNOLEtBQUssRUFDTCxNQUFNLEVBQ04sU0FBUyxFQUNaLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDL0MsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDeEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUVoQyxPQUFPLEVBQUUsZ0NBQWdDLEVBQThCLE1BQU0sY0FBYyxDQUFDO0FBRTVGLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSw4QkFBOEIsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUMxRixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsZUFBZSxFQUFFLG9CQUFvQixFQUFFLDJCQUEyQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDOUgsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sWUFBWSxDQUFDOzs7QUFtQnhELE1BQU0sT0FBTyxzQkFBc0I7SUFtQi9CO1FBbEJpQixrQ0FBNkIsR0FBRyxNQUFNLENBQUMsZ0NBQWdDLENBQUMsQ0FBQztRQUN6RSw0QkFBdUIsR0FBRyxNQUFNLENBQUMsMEJBQTBCLENBQUMsQ0FBQztRQUUzRCxrQkFBYSxHQUFHLE1BQU0sQ0FBNEIsSUFBSSxDQUFDLENBQUM7UUFDeEQsdUJBQWtCLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ25DLDhCQUF5QixHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMxQyxtQ0FBOEIsR0FBRyxRQUFRLENBQ3hELEdBQUcsRUFBRSxDQUNELENBQUMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLFVBQVUsRUFBRSxLQUFLLElBQUksQ0FBQyxjQUFjLEVBQUUsSUFBSSxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztZQUNsRyxJQUFJLENBQUMseUJBQXlCLEVBQUUsQ0FDdkMsQ0FBQztRQUVpQixhQUFRLEdBQUcsU0FBUyxDQUFDLFFBQVEsQ0FBdUIsVUFBVSxDQUFDLENBQUM7UUFFbkUsbUJBQWMsR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFrQixDQUFDO1FBQ2xELGFBQVEsR0FBRyxLQUFLLEVBQVUsQ0FBQztRQUMzQixhQUFRLEdBQUcsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxDQUFDLENBQUM7UUFHckUsSUFBSSxDQUFDLHdCQUF3QixFQUFFLENBQUM7SUFDcEMsQ0FBQztJQUVTLG1CQUFtQjtRQUN6QixJQUFJLENBQUMsdUJBQXVCLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDL0MsSUFBSSxDQUFDLHVCQUF1QixDQUFDLGNBQWMsRUFBRSxDQUFDO1FBRTlDLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRSxFQUFFLE1BQU0sRUFBRSxDQUFDO1lBQy9CLE9BQU87UUFDWCxDQUFDO1FBRUQsSUFBSSxDQUFDLDZCQUE2QixDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLFlBQVksRUFBRSxFQUFFO1lBQ2xHLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUMsaUJBQWlCLEVBQUUsRUFBRSxDQUM1QyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLGlCQUFpQixFQUFFLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUM1RSxDQUFDO1FBQ04sQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRVMsMEJBQTBCO1FBQ2hDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbEMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQztJQUN0RSxDQUFDO0lBRVMsbUJBQW1CLENBQUMsS0FBYTtRQUN2QyxJQUFJLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ25DLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUMvQyxJQUFJLENBQUMseUJBQXlCLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3pDLElBQUksQ0FBQyw2QkFBNkI7YUFDN0Isa0JBQWtCLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQzthQUNoRCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO2FBQ3BFLFNBQVMsQ0FBQyxDQUFDLFlBQVksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUMsRUFBRSxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDN0csQ0FBQztJQUVTLDBCQUEwQjtRQUNoQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ25DLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUNuRCxDQUFDO0lBRU8sd0JBQXdCO1FBQzVCLE1BQU0sQ0FBQyxHQUFHLEVBQUU7WUFDUixJQUFJLENBQUMsdUJBQXVCLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDeEMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQzVCLENBQUMsRUFBRSxFQUFFLGlCQUFpQixFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDcEMsQ0FBQzsrR0EvRFEsc0JBQXNCO21HQUF0QixzQkFBc0IsZ21CQ3ZDbkMsNnZEQW1EQSxzY0QxQlEsZUFBZSwyTkFDZixlQUFlLHlFQUNmLG9CQUFvQixvSkFDcEIsMkJBQTJCLDZGQUMzQixzQkFBc0IsNEdBQ3RCLDhCQUE4QiwrSEFDOUIsMEJBQTBCLDJGQUMxQixrQkFBa0I7OzRGQU9iLHNCQUFzQjtrQkFqQmxDLFNBQVM7K0JBQ0ksZ0JBQWdCLFdBQ2pCO3dCQUNMLGVBQWU7d0JBQ2YsZUFBZTt3QkFDZixvQkFBb0I7d0JBQ3BCLDJCQUEyQjt3QkFDM0Isc0JBQXNCO3dCQUN0Qiw4QkFBOEI7d0JBQzlCLDBCQUEwQjt3QkFDMUIsa0JBQWtCO3FCQUNyQixjQUNXLElBQUksbUJBR0MsdUJBQXVCLENBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgICBib29sZWFuQXR0cmlidXRlLFxyXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgICBDb21wb25lbnQsXHJcbiAgICBjb21wdXRlZCxcclxuICAgIGVmZmVjdCxcclxuICAgIGluamVjdCxcclxuICAgIGlucHV0LFxyXG4gICAgc2lnbmFsLFxyXG4gICAgdmlld0NoaWxkXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB0eXBlIHsgQ3VpTnVsbGFibGUgfSBmcm9tICdAY3VieS11aS9jZGsnO1xyXG5pbXBvcnQgeyBDdWlMZXREaXJlY3RpdmUgfSBmcm9tICdAY3VieS11aS9jZGsnO1xyXG5pbXBvcnQgeyBUcmFuc2xvY29EaXJlY3RpdmUgfSBmcm9tICdAanN2ZXJzZS90cmFuc2xvY28nO1xyXG5pbXBvcnQgeyBmaW5hbGl6ZSB9IGZyb20gJ3J4anMnO1xyXG5cclxuaW1wb3J0IHsgQ3VpVHJlZVN0cnVjdE5hdmlnYXRvckFwaVNlcnZpY2UsIFRyZWVTdHJ1Y3QsIFRyZWVTdHJ1Y3RUeXBlIH0gZnJvbSAnQGN1YnktdWkvYXBpJztcclxuXHJcbmltcG9ydCB7IEN1aUNhdGVnb3JpZXNMaXN0Q29tcG9uZW50LCBDdWlDcmVhdGVDYXRlZ29yeUl0ZW1Db21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMnO1xyXG5pbXBvcnQgeyBDdWlFbXB0eVN0YXRlQ29tcG9uZW50LCBDdWlCdXR0b25Nb2R1bGUsIEN1aURyb3Bkb3duRGlyZWN0aXZlLCBDdWlEcm9wZG93bldyYXBwZXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzJztcclxuaW1wb3J0IHsgQ3VpU2VsZWN0ZWRDYXRlZ29yeVNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdjdWktY2F0ZWdvcmllcycsXHJcbiAgICBpbXBvcnRzOiBbXHJcbiAgICAgICAgQ3VpQnV0dG9uTW9kdWxlLFxyXG4gICAgICAgIEN1aUxldERpcmVjdGl2ZSxcclxuICAgICAgICBDdWlEcm9wZG93bkRpcmVjdGl2ZSxcclxuICAgICAgICBDdWlEcm9wZG93bldyYXBwZXJDb21wb25lbnQsXHJcbiAgICAgICAgQ3VpRW1wdHlTdGF0ZUNvbXBvbmVudCxcclxuICAgICAgICBDdWlDcmVhdGVDYXRlZ29yeUl0ZW1Db21wb25lbnQsXHJcbiAgICAgICAgQ3VpQ2F0ZWdvcmllc0xpc3RDb21wb25lbnQsXHJcbiAgICAgICAgVHJhbnNsb2NvRGlyZWN0aXZlXHJcbiAgICBdLFxyXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9jYXRlZ29yaWVzLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL2NhdGVnb3JpZXMuY29tcG9uZW50LnNjc3MnXSxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDdWlDYXRlZ29yaWVzQ29tcG9uZW50IHtcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgdHJlZVN0cnVjdE5hdmlnYXRvckFwaVNlcnZpY2UgPSBpbmplY3QoQ3VpVHJlZVN0cnVjdE5hdmlnYXRvckFwaVNlcnZpY2UpO1xyXG4gICAgcHJpdmF0ZSByZWFkb25seSBzZWxlY3RlZENhdGVnb3J5U2VydmljZSA9IGluamVjdChDdWlTZWxlY3RlZENhdGVnb3J5U2VydmljZSk7XHJcblxyXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHN0YWdlU3RvcmFnZXMgPSBzaWduYWw8Q3VpTnVsbGFibGU8VHJlZVN0cnVjdFtdPj4obnVsbCk7XHJcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgaXNDYXRlZ29yeUNyZWF0aW5nID0gc2lnbmFsKGZhbHNlKTtcclxuICAgIHByb3RlY3RlZCByZWFkb25seSBpc0NhdGVnb3J5Q3JlYXRpb25Mb2FkaW5nID0gc2lnbmFsKGZhbHNlKTtcclxuICAgIHByb3RlY3RlZCByZWFkb25seSBpc0NyZWF0ZUNhdGVnb3J5Q29udHJvbFZpc2libGUgPSBjb21wdXRlZChcclxuICAgICAgICAoKSA9PlxyXG4gICAgICAgICAgICAodGhpcy5zZWxlY3RlZENhdGVnb3J5U2VydmljZS5jcmVhdGluZ0lkKCkgPT09IHRoaXMudHJlZVN0cnVjdFR5cGUoKSAmJiB0aGlzLmlzQ2F0ZWdvcnlDcmVhdGluZygpKSB8fFxyXG4gICAgICAgICAgICB0aGlzLmlzQ2F0ZWdvcnlDcmVhdGlvbkxvYWRpbmcoKVxyXG4gICAgKTtcclxuXHJcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgZHJvcGRvd24gPSB2aWV3Q2hpbGQucmVxdWlyZWQ8Q3VpRHJvcGRvd25EaXJlY3RpdmU+KCdkcm9wZG93bicpO1xyXG5cclxuICAgIHB1YmxpYyByZWFkb25seSB0cmVlU3RydWN0VHlwZSA9IGlucHV0LnJlcXVpcmVkPFRyZWVTdHJ1Y3RUeXBlPigpO1xyXG4gICAgcHVibGljIHJlYWRvbmx5IGJ1dHRvbklkID0gaW5wdXQ8c3RyaW5nPigpO1xyXG4gICAgcHVibGljIHJlYWRvbmx5IGRpc2FibGVkID0gaW5wdXQoZmFsc2UsIHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgICAgIHRoaXMuaW5pdFNlbGVjdENhdGVnb3J5RWZmZWN0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJvdGVjdGVkIG9uT3BlblN0YWdlU3RvcmFnZXMoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZENhdGVnb3J5U2VydmljZS5jbGVhckNyZWF0aW5nSWQoKTtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkQ2F0ZWdvcnlTZXJ2aWNlLmNsZWFyRWRpdGluZ0lkKCk7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLnN0YWdlU3RvcmFnZXMoKT8ubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMudHJlZVN0cnVjdE5hdmlnYXRvckFwaVNlcnZpY2UuZ2V0U3RhZ2VTdG9yYWdlcyh0aGlzLnRyZWVTdHJ1Y3RUeXBlKCkpLnN1YnNjcmliZSgoc3RhZ2VTdG9yYWdlKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuc3RhZ2VTdG9yYWdlcy51cGRhdGUoKHByZXZTdGFnZVN0b3JhZ2VzKSA9PlxyXG4gICAgICAgICAgICAgICAgcHJldlN0YWdlU3RvcmFnZXMgPyBbLi4ucHJldlN0YWdlU3RvcmFnZXMsIHN0YWdlU3RvcmFnZV0gOiBbc3RhZ2VTdG9yYWdlXVxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHByb3RlY3RlZCBvblN0YXJ0Q3JlYXRpbmdOZXdDYXRlZ29yeSgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmlzQ2F0ZWdvcnlDcmVhdGluZy5zZXQodHJ1ZSk7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZENhdGVnb3J5U2VydmljZS5zZXRDcmVhdGluZ0lkKHRoaXMudHJlZVN0cnVjdFR5cGUoKSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJvdGVjdGVkIG9uQ3JlYXRlTmV3Q2F0ZWdvcnkodGl0bGU6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuaXNDYXRlZ29yeUNyZWF0aW5nLnNldChmYWxzZSk7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZENhdGVnb3J5U2VydmljZS5jbGVhckNyZWF0aW5nSWQoKTtcclxuICAgICAgICB0aGlzLmlzQ2F0ZWdvcnlDcmVhdGlvbkxvYWRpbmcuc2V0KHRydWUpO1xyXG4gICAgICAgIHRoaXMudHJlZVN0cnVjdE5hdmlnYXRvckFwaVNlcnZpY2VcclxuICAgICAgICAgICAgLmNyZWF0ZVN0YWdlU3RvcmFnZSh0aXRsZSwgdGhpcy50cmVlU3RydWN0VHlwZSgpKVxyXG4gICAgICAgICAgICAucGlwZShmaW5hbGl6ZSh0aGlzLmlzQ2F0ZWdvcnlDcmVhdGlvbkxvYWRpbmcuc2V0LmJpbmQodGhpcywgZmFsc2UpKSlcclxuICAgICAgICAgICAgLnN1YnNjcmliZSgoc3RhdGVTdG9yYWdlKSA9PiB0aGlzLnN0YWdlU3RvcmFnZXMudXBkYXRlKCh2YWx1ZSkgPT4gWy4uLih2YWx1ZSB8fCBbXSksIHN0YXRlU3RvcmFnZV0pKTtcclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgb25DcmVhdGluZ0NhdGVnb3J5Q2FuY2VsZWQoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5pc0NhdGVnb3J5Q3JlYXRpbmcuc2V0KGZhbHNlKTtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkQ2F0ZWdvcnlTZXJ2aWNlLmNsZWFyQ3JlYXRpbmdJZCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgaW5pdFNlbGVjdENhdGVnb3J5RWZmZWN0KCk6IHZvaWQge1xyXG4gICAgICAgIGVmZmVjdCgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRDYXRlZ29yeVNlcnZpY2UuY2F0ZWdvcnkoKTtcclxuICAgICAgICAgICAgdGhpcy5kcm9wZG93bigpLmNsb3NlKCk7XHJcbiAgICAgICAgfSwgeyBhbGxvd1NpZ25hbFdyaXRlczogdHJ1ZSB9KTtcclxuICAgIH1cclxufVxyXG4iLCI8YnV0dG9uXHJcbiAgICBbYXR0ci5pZF09XCJidXR0b25JZCgpXCJcclxuICAgICNkcm9wZG93bj1cImN1aURyb3Bkb3duXCJcclxuICAgIFtjdWlEcm9wZG93bl09XCJkcm9wZG93bkNvbnRlbnRcIlxyXG4gICAgb3JpZW50YXRpb249XCJzdHJldGNoXCJcclxuICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgY2xhc3M9XCJ0YXJnZXRcIlxyXG4gICAgW2Rpc2FibGVkXT1cImRpc2FibGVkKClcIlxyXG4gICAgKGNsaWNrKT1cIm9uT3BlblN0YWdlU3RvcmFnZXMoKVwiXHJcbj5cclxuICAgIDxuZy1jb250ZW50IC8+XHJcbjwvYnV0dG9uPlxyXG5cclxuPG5nLXRlbXBsYXRlICNkcm9wZG93bkNvbnRlbnQ+XHJcbiAgICA8Y3VpLWRyb3Bkb3duLXdyYXBwZXJcclxuICAgICAgICAqdHJhbnNsb2NvPVwibGV0IHRcIlxyXG4gICAgICAgIFt0aXRsZV09XCJ0KCdTRUxFQ1RfT1JfQ1JFQVRFX0NBVEVHT1JZJylcIlxyXG4gICAgICAgIHdpZHRoPVwiMTAwJVwiXHJcbiAgICAgICAgY2xhc3M9XCJkcm9wZG93bi13cmFwcGVyXCJcclxuICAgID5cclxuICAgICAgICA8bmctY29udGFpbmVyICpjdWlMZXQ9XCJzdGFnZVN0b3JhZ2VzKCkgYXMgc3RhZ2VTdG9yYWdlc1wiPlxyXG4gICAgICAgICAgICBAaWYgKHN0YWdlU3RvcmFnZXMgJiYgc3RhZ2VTdG9yYWdlcz8ubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgICA8Y3VpLWNhdGVnb3JpZXMtbGlzdCBbc3RhZ2VTdG9yYWdlc109XCJzdGFnZVN0b3JhZ2VzXCIgLz5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBAaWYgKGlzQ3JlYXRlQ2F0ZWdvcnlDb250cm9sVmlzaWJsZSgpKSB7XHJcbiAgICAgICAgICAgICAgICA8Y3VpLWNyZWF0ZS1jYXRlZ29yeS1pdGVtXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjcmVhdGUtY2F0ZWdvcnlcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtpc0Rpc2FibGVkXT1cImlzQ2F0ZWdvcnlDcmVhdGlvbkxvYWRpbmcoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgKGNyZWF0ZWQpPVwib25DcmVhdGVOZXdDYXRlZ29yeSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAoY2FuY2VsZWQpPVwib25DcmVhdGluZ0NhdGVnb3J5Q2FuY2VsZWQoKVwiXHJcbiAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICB9IEBlbHNlIGlmICghc3RhZ2VTdG9yYWdlcz8ubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgICA8Y3VpLWVtcHR5LXN0YXRlXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJlbXB0eVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW3N1YnRpdGxlXT1cInQoJ05PX0NBVEVHT1JZX1RPX1ZJRVdfWUVUJylcIlxyXG4gICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgY2NEcm9wZG93bkZvb3RlckNvbnRlbnRcclxuICAgICAgICAgICAgY3VpQnV0dG9uXHJcbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgICBhcHBlYXJhbmNlPVwiZ2hvc3RcIlxyXG4gICAgICAgICAgICBzaXplPVwieHhzXCJcclxuICAgICAgICAgICAgaWNvbj1cImN1aUljb25QbHVzXCJcclxuICAgICAgICAgICAgKGNsaWNrKT1cIm9uU3RhcnRDcmVhdGluZ05ld0NhdGVnb3J5KClcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgICAge3sgdCgnTkVXX0NBVEVHT1JZJykgfX1cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgIDwvY3VpLWRyb3Bkb3duLXdyYXBwZXI+XHJcbjwvbmctdGVtcGxhdGU+XHJcbiJdfQ==
75
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0ZWdvcmllcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3dpZGdldHMvY2F0ZWdvcmllcy9jYXRlZ29yaWVzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvd2lkZ2V0cy9jYXRlZ29yaWVzL2NhdGVnb3JpZXMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILGdCQUFnQixFQUNoQix1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFFBQVEsRUFDUixNQUFNLEVBQ04sTUFBTSxFQUNOLEtBQUssRUFDTCxNQUFNLEVBQ04sU0FBUyxFQUNaLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDL0MsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDeEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUVoQyxPQUFPLEVBQUUsZ0NBQWdDLEVBQThCLE1BQU0sY0FBYyxDQUFDO0FBRTVGLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSw4QkFBOEIsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUMxRixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsZUFBZSxFQUFFLG9CQUFvQixFQUFFLDJCQUEyQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDOUgsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sWUFBWSxDQUFDOzs7QUFtQnhELE1BQU0sT0FBTyxzQkFBc0I7SUFtQi9CO1FBbEJpQixrQ0FBNkIsR0FBRyxNQUFNLENBQUMsZ0NBQWdDLENBQUMsQ0FBQztRQUN6RSw0QkFBdUIsR0FBRyxNQUFNLENBQUMsMEJBQTBCLENBQUMsQ0FBQztRQUUzRCxrQkFBYSxHQUFHLE1BQU0sQ0FBNEIsSUFBSSxDQUFDLENBQUM7UUFDeEQsdUJBQWtC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USxFQUFFLENBQUM7WUFDeEMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQzVCLENBQUMsRUFBRSxFQUFFLGlCQUFpQixFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDcEMsQ0FBQzsrR0EvRFEsc0JBQXNCO21HQUF0QixzQkFBc0IsZ21CQ3ZDbkMsNnZEQW1EQSxzY0QxQlEsZUFBZSxvT0FDZixlQUFlLHlFQUNmLG9CQUFvQixvSkFDcEIsMkJBQTJCLDZGQUMzQixzQkFBc0IsNEdBQ3RCLDhCQUE4QiwrSEFDOUIsMEJBQTBCLDJGQUMxQixrQkFBa0I7OzRGQU9iLHNCQUFzQjtrQkFqQmxDLFNBQVM7K0JBQ0ksZ0JBQWdCLFdBQ2pCO3dCQUNMLGVBQWU7d0JBQ2YsZUFBZTt3QkFDZixvQkFBb0I7d0JBQ3BCLDJCQUEyQjt3QkFDM0Isc0JBQXNCO3dCQUN0Qiw4QkFBOEI7d0JBQzlCLDBCQUEwQjt3QkFDMUIsa0JBQWtCO3FCQUNyQixjQUNXLElBQUksbUJBR0MsdUJBQXVCLENBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgICBib29sZWFuQXR0cmlidXRlLFxyXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgICBDb21wb25lbnQsXHJcbiAgICBjb21wdXRlZCxcclxuICAgIGVmZmVjdCxcclxuICAgIGluamVjdCxcclxuICAgIGlucHV0LFxyXG4gICAgc2lnbmFsLFxyXG4gICAgdmlld0NoaWxkXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB0eXBlIHsgQ3VpTnVsbGFibGUgfSBmcm9tICdAY3VieS11aS9jZGsnO1xyXG5pbXBvcnQgeyBDdWlMZXREaXJlY3RpdmUgfSBmcm9tICdAY3VieS11aS9jZGsnO1xyXG5pbXBvcnQgeyBUcmFuc2xvY29EaXJlY3RpdmUgfSBmcm9tICdAanN2ZXJzZS90cmFuc2xvY28nO1xyXG5pbXBvcnQgeyBmaW5hbGl6ZSB9IGZyb20gJ3J4anMnO1xyXG5cclxuaW1wb3J0IHsgQ3VpVHJlZVN0cnVjdE5hdmlnYXRvckFwaVNlcnZpY2UsIFRyZWVTdHJ1Y3QsIFRyZWVTdHJ1Y3RUeXBlIH0gZnJvbSAnQGN1YnktdWkvYXBpJztcclxuXHJcbmltcG9ydCB7IEN1aUNhdGVnb3JpZXNMaXN0Q29tcG9uZW50LCBDdWlDcmVhdGVDYXRlZ29yeUl0ZW1Db21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMnO1xyXG5pbXBvcnQgeyBDdWlFbXB0eVN0YXRlQ29tcG9uZW50LCBDdWlCdXR0b25Nb2R1bGUsIEN1aURyb3Bkb3duRGlyZWN0aXZlLCBDdWlEcm9wZG93bldyYXBwZXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzJztcclxuaW1wb3J0IHsgQ3VpU2VsZWN0ZWRDYXRlZ29yeVNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdjdWktY2F0ZWdvcmllcycsXHJcbiAgICBpbXBvcnRzOiBbXHJcbiAgICAgICAgQ3VpQnV0dG9uTW9kdWxlLFxyXG4gICAgICAgIEN1aUxldERpcmVjdGl2ZSxcclxuICAgICAgICBDdWlEcm9wZG93bkRpcmVjdGl2ZSxcclxuICAgICAgICBDdWlEcm9wZG93bldyYXBwZXJDb21wb25lbnQsXHJcbiAgICAgICAgQ3VpRW1wdHlTdGF0ZUNvbXBvbmVudCxcclxuICAgICAgICBDdWlDcmVhdGVDYXRlZ29yeUl0ZW1Db21wb25lbnQsXHJcbiAgICAgICAgQ3VpQ2F0ZWdvcmllc0xpc3RDb21wb25lbnQsXHJcbiAgICAgICAgVHJhbnNsb2NvRGlyZWN0aXZlXHJcbiAgICBdLFxyXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9jYXRlZ29yaWVzLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL2NhdGVnb3JpZXMuY29tcG9uZW50LnNjc3MnXSxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDdWlDYXRlZ29yaWVzQ29tcG9uZW50IHtcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgdHJlZVN0cnVjdE5hdmlnYXRvckFwaVNlcnZpY2UgPSBpbmplY3QoQ3VpVHJlZVN0cnVjdE5hdmlnYXRvckFwaVNlcnZpY2UpO1xyXG4gICAgcHJpdmF0ZSByZWFkb25seSBzZWxlY3RlZENhdGVnb3J5U2VydmljZSA9IGluamVjdChDdWlTZWxlY3RlZENhdGVnb3J5U2VydmljZSk7XHJcblxyXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHN0YWdlU3RvcmFnZXMgPSBzaWduYWw8Q3VpTnVsbGFibGU8VHJlZVN0cnVjdFtdPj4obnVsbCk7XHJcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgaXNDYXRlZ29yeUNyZWF0aW5nID0gc2lnbmFsKGZhbHNlKTtcclxuICAgIHByb3RlY3RlZCByZWFkb25seSBpc0NhdGVnb3J5Q3JlYXRpb25Mb2FkaW5nID0gc2lnbmFsKGZhbHNlKTtcclxuICAgIHByb3RlY3RlZCByZWFkb25seSBpc0NyZWF0ZUNhdGVnb3J5Q29udHJvbFZpc2libGUgPSBjb21wdXRlZChcclxuICAgICAgICAoKSA9PlxyXG4gICAgICAgICAgICAodGhpcy5zZWxlY3RlZENhdGVnb3J5U2VydmljZS5jcmVhdGluZ0lkKCkgPT09IHRoaXMudHJlZVN0cnVjdFR5cGUoKSAmJiB0aGlzLmlzQ2F0ZWdvcnlDcmVhdGluZygpKSB8fFxyXG4gICAgICAgICAgICB0aGlzLmlzQ2F0ZWdvcnlDcmVhdGlvbkxvYWRpbmcoKVxyXG4gICAgKTtcclxuXHJcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgZHJvcGRvd24gPSB2aWV3Q2hpbGQucmVxdWlyZWQ8Q3VpRHJvcGRvd25EaXJlY3RpdmU+KCdkcm9wZG93bicpO1xyXG5cclxuICAgIHB1YmxpYyByZWFkb25seSB0cmVlU3RydWN0VHlwZSA9IGlucHV0LnJlcXVpcmVkPFRyZWVTdHJ1Y3RUeXBlPigpO1xyXG4gICAgcHVibGljIHJlYWRvbmx5IGJ1dHRvbklkID0gaW5wdXQ8c3RyaW5nPigpO1xyXG4gICAgcHVibGljIHJlYWRvbmx5IGRpc2FibGVkID0gaW5wdXQoZmFsc2UsIHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgICAgIHRoaXMuaW5pdFNlbGVjdENhdGVnb3J5RWZmZWN0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJvdGVjdGVkIG9uT3BlblN0YWdlU3RvcmFnZXMoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZENhdGVnb3J5U2VydmljZS5jbGVhckNyZWF0aW5nSWQoKTtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkQ2F0ZWdvcnlTZXJ2aWNlLmNsZWFyRWRpdGluZ0lkKCk7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLnN0YWdlU3RvcmFnZXMoKT8ubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMudHJlZVN0cnVjdE5hdmlnYXRvckFwaVNlcnZpY2UuZ2V0U3RhZ2VTdG9yYWdlcyh0aGlzLnRyZWVTdHJ1Y3RUeXBlKCkpLnN1YnNjcmliZSgoc3RhZ2VTdG9yYWdlKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuc3RhZ2VTdG9yYWdlcy51cGRhdGUoKHByZXZTdGFnZVN0b3JhZ2VzKSA9PlxyXG4gICAgICAgICAgICAgICAgcHJldlN0YWdlU3RvcmFnZXMgPyBbLi4ucHJldlN0YWdlU3RvcmFnZXMsIHN0YWdlU3RvcmFnZV0gOiBbc3RhZ2VTdG9yYWdlXVxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHByb3RlY3RlZCBvblN0YXJ0Q3JlYXRpbmdOZXdDYXRlZ29yeSgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmlzQ2F0ZWdvcnlDcmVhdGluZy5zZXQodHJ1ZSk7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZENhdGVnb3J5U2VydmljZS5zZXRDcmVhdGluZ0lkKHRoaXMudHJlZVN0cnVjdFR5cGUoKSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJvdGVjdGVkIG9uQ3JlYXRlTmV3Q2F0ZWdvcnkodGl0bGU6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuaXNDYXRlZ29yeUNyZWF0aW5nLnNldChmYWxzZSk7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZENhdGVnb3J5U2VydmljZS5jbGVhckNyZWF0aW5nSWQoKTtcclxuICAgICAgICB0aGlzLmlzQ2F0ZWdvcnlDcmVhdGlvbkxvYWRpbmcuc2V0KHRydWUpO1xyXG4gICAgICAgIHRoaXMudHJlZVN0cnVjdE5hdmlnYXRvckFwaVNlcnZpY2VcclxuICAgICAgICAgICAgLmNyZWF0ZVN0YWdlU3RvcmFnZSh0aXRsZSwgdGhpcy50cmVlU3RydWN0VHlwZSgpKVxyXG4gICAgICAgICAgICAucGlwZShmaW5hbGl6ZSh0aGlzLmlzQ2F0ZWdvcnlDcmVhdGlvbkxvYWRpbmcuc2V0LmJpbmQodGhpcywgZmFsc2UpKSlcclxuICAgICAgICAgICAgLnN1YnNjcmliZSgoc3RhdGVTdG9yYWdlKSA9PiB0aGlzLnN0YWdlU3RvcmFnZXMudXBkYXRlKCh2YWx1ZSkgPT4gWy4uLih2YWx1ZSB8fCBbXSksIHN0YXRlU3RvcmFnZV0pKTtcclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgb25DcmVhdGluZ0NhdGVnb3J5Q2FuY2VsZWQoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5pc0NhdGVnb3J5Q3JlYXRpbmcuc2V0KGZhbHNlKTtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkQ2F0ZWdvcnlTZXJ2aWNlLmNsZWFyQ3JlYXRpbmdJZCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgaW5pdFNlbGVjdENhdGVnb3J5RWZmZWN0KCk6IHZvaWQge1xyXG4gICAgICAgIGVmZmVjdCgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRDYXRlZ29yeVNlcnZpY2UuY2F0ZWdvcnkoKTtcclxuICAgICAgICAgICAgdGhpcy5kcm9wZG93bigpLmNsb3NlKCk7XHJcbiAgICAgICAgfSwgeyBhbGxvd1NpZ25hbFdyaXRlczogdHJ1ZSB9KTtcclxuICAgIH1cclxufVxyXG4iLCI8YnV0dG9uXHJcbiAgICBbYXR0ci5pZF09XCJidXR0b25JZCgpXCJcclxuICAgICNkcm9wZG93bj1cImN1aURyb3Bkb3duXCJcclxuICAgIFtjdWlEcm9wZG93bl09XCJkcm9wZG93bkNvbnRlbnRcIlxyXG4gICAgb3JpZW50YXRpb249XCJzdHJldGNoXCJcclxuICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgY2xhc3M9XCJ0YXJnZXRcIlxyXG4gICAgW2Rpc2FibGVkXT1cImRpc2FibGVkKClcIlxyXG4gICAgKGNsaWNrKT1cIm9uT3BlblN0YWdlU3RvcmFnZXMoKVwiXHJcbj5cclxuICAgIDxuZy1jb250ZW50IC8+XHJcbjwvYnV0dG9uPlxyXG5cclxuPG5nLXRlbXBsYXRlICNkcm9wZG93bkNvbnRlbnQ+XHJcbiAgICA8Y3VpLWRyb3Bkb3duLXdyYXBwZXJcclxuICAgICAgICAqdHJhbnNsb2NvPVwibGV0IHRcIlxyXG4gICAgICAgIFt0aXRsZV09XCJ0KCdTRUxFQ1RfT1JfQ1JFQVRFX0NBVEVHT1JZJylcIlxyXG4gICAgICAgIHdpZHRoPVwiMTAwJVwiXHJcbiAgICAgICAgY2xhc3M9XCJkcm9wZG93bi13cmFwcGVyXCJcclxuICAgID5cclxuICAgICAgICA8bmctY29udGFpbmVyICpjdWlMZXQ9XCJzdGFnZVN0b3JhZ2VzKCkgYXMgc3RhZ2VTdG9yYWdlc1wiPlxyXG4gICAgICAgICAgICBAaWYgKHN0YWdlU3RvcmFnZXMgJiYgc3RhZ2VTdG9yYWdlcz8ubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgICA8Y3VpLWNhdGVnb3JpZXMtbGlzdCBbc3RhZ2VTdG9yYWdlc109XCJzdGFnZVN0b3JhZ2VzXCIgLz5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBAaWYgKGlzQ3JlYXRlQ2F0ZWdvcnlDb250cm9sVmlzaWJsZSgpKSB7XHJcbiAgICAgICAgICAgICAgICA8Y3VpLWNyZWF0ZS1jYXRlZ29yeS1pdGVtXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjcmVhdGUtY2F0ZWdvcnlcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtpc0Rpc2FibGVkXT1cImlzQ2F0ZWdvcnlDcmVhdGlvbkxvYWRpbmcoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgKGNyZWF0ZWQpPVwib25DcmVhdGVOZXdDYXRlZ29yeSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAoY2FuY2VsZWQpPVwib25DcmVhdGluZ0NhdGVnb3J5Q2FuY2VsZWQoKVwiXHJcbiAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICB9IEBlbHNlIGlmICghc3RhZ2VTdG9yYWdlcz8ubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgICA8Y3VpLWVtcHR5LXN0YXRlXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJlbXB0eVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW3N1YnRpdGxlXT1cInQoJ05PX0NBVEVHT1JZX1RPX1ZJRVdfWUVUJylcIlxyXG4gICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgY2NEcm9wZG93bkZvb3RlckNvbnRlbnRcclxuICAgICAgICAgICAgY3VpQnV0dG9uXHJcbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgICBhcHBlYXJhbmNlPVwiZ2hvc3RcIlxyXG4gICAgICAgICAgICBzaXplPVwieHhzXCJcclxuICAgICAgICAgICAgaWNvbj1cImN1aUljb25QbHVzXCJcclxuICAgICAgICAgICAgKGNsaWNrKT1cIm9uU3RhcnRDcmVhdGluZ05ld0NhdGVnb3J5KClcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgICAge3sgdCgnTkVXX0NBVEVHT1JZJykgfX1cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgIDwvY3VpLWRyb3Bkb3duLXdyYXBwZXI+XHJcbjwvbmctdGVtcGxhdGU+XHJcbiJdfQ==
@@ -106,7 +106,7 @@ export class CuiCategoryItemComponent {
106
106
  }, { allowSignalWrites: true });
107
107
  }
108
108
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CuiCategoryItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
109
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: CuiCategoryItemComponent, isStandalone: true, selector: "cui-category-item", inputs: { stageStorage: { classPropertyName: "stageStorage", publicName: "stageStorage", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: "<ng-container *cuiLet=\"category() as stage\">\n <button\n type=\"button\"\n [style.align-items]=\"alignItems()\"\n [disabled]=\"isStageCreationLoading()\"\n class=\"category\"\n (click)=\"onSelectCategory()\"\n >\n <button\n type=\"button\"\n ccFlexContainerDirective\n class=\"category__open-close-button\"\n [class.category__open-close-button_hidden]=\"isOpenCloseButtonHidden()\"\n (click)=\"onToggleChildren($event)\"\n >\n <cui-svg\n [icon]=\"openCloseButtonIcon()\"\n color=\"var(--cui-base-500)\"\n />\n </button>\n <cui-svg\n [icon]=\"stageStorageIcon()\"\n color=\"var(--cui-base-500)\"\n class=\"icon\"\n />\n @if (isTitleEdit()) {\n <cui-category-form\n [defaultTitle]=\"stage.title\"\n (created)=\"onTitleChanged($event)\"\n (canceled)=\"onCancelTitleEdit()\"\n />\n } @else {\n <span class=\"category__title\">{{ stage.title }}</span>\n\n <button\n cuiButton\n type=\"button\"\n appearance=\"ghost\"\n size=\"xxs\"\n icon=\"cuiIconEdit\"\n class=\"category__add-subcategory-button\"\n (click)=\"onStartTitleEdit($event)\"\n ></button>\n <button\n cuiButton\n type=\"button\"\n appearance=\"ghost\"\n size=\"xxs\"\n icon=\"cuiIconPlus\"\n class=\"category__add-subcategory-button\"\n (click)=\"onStartCreatingSubcategory($event)\"\n ></button>\n }\n </button>\n <div\n [hidden]=\"!areChildrenOpened()\"\n class=\"list-wrapper\"\n >\n <cui-categories-list [stageStorages]=\"stageStorageChildren()\" />\n @if (isCreateCategoryControlVisible()) {\n <cui-create-category-item\n class=\"create-category\"\n [isDisabled]=\"isSubcategoryCreationLoading()\"\n (created)=\"onCreateNewSubcategoryCategory($event)\"\n (canceled)=\"onCreatingSubcategoryCanceled()\"\n />\n }\n </div>\n</ng-container>\n", styles: [".category{display:flex;gap:4px;padding:2px 4px;width:100%;min-height:32px;border-radius:8px}@media (hover: hover){.category:hover{background:var(--cui-base-10)}}.category:active{background:var(--cui-base-10)}.category__open-close-button{padding:2px;border-radius:4px;margin:4px 0}@media (hover: hover){.category__open-close-button:hover{background:var(--cui-base-100)}}.category__open-close-button:active{background:var(--cui-base-100)}.category__open-close-button_hidden{visibility:hidden}.category__title{flex:1;text-align:start;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.category__add-subcategory-button{--cui-base-50: var(--cui-base-200)}.list-wrapper{padding-left:8px}.create-category{margin-left:24px}.icon{padding-right:2px;padding-left:2px;height:28px}\n"], dependencies: [{ kind: "ngmodule", type: i0.forwardRef(() => CuiButtonModule) }, { kind: "component", type: i0.forwardRef(() => i1.CuiButtonComponent), selector: "button[cuiButton], a[cuiButton]", inputs: ["shape", "disabled", "isLoaderShown", "icon", "iconRight", "appearance", "size"] }, { kind: "ngmodule", type: i0.forwardRef(() => CuiIconButtonModule) }, { kind: "directive", type: i0.forwardRef(() => CuiLetDirective), selector: "[cuiLet]", inputs: ["cuiLet"] }, { kind: "ngmodule", type: i0.forwardRef(() => CuiSvgModule) }, { kind: "component", type: i0.forwardRef(() => i2.CuiSvgComponent), selector: "cui-svg[icon]", inputs: ["width", "height", "strokeWidth", "color", "icon"] }, { kind: "component", type: i0.forwardRef(() => CuiCategoryFormComponent), selector: "cui-category-form", inputs: ["isDisabled", "defaultTitle"], outputs: ["created", "canceled"] }, { kind: "component", type: i0.forwardRef(() => CuiCreateCategoryItemComponent), selector: "cui-create-category-item", inputs: ["isDisabled"], outputs: ["created", "canceled"] }, { kind: "component", type: i0.forwardRef(() => CuiCategoriesListComponent), selector: "cui-categories-list", inputs: ["stageStorages"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
109
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: CuiCategoryItemComponent, isStandalone: true, selector: "cui-category-item", inputs: { stageStorage: { classPropertyName: "stageStorage", publicName: "stageStorage", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: "<ng-container *cuiLet=\"category() as stage\">\n <button\n type=\"button\"\n [style.align-items]=\"alignItems()\"\n [disabled]=\"isStageCreationLoading()\"\n class=\"category\"\n (click)=\"onSelectCategory()\"\n >\n <button\n type=\"button\"\n ccFlexContainerDirective\n class=\"category__open-close-button\"\n [class.category__open-close-button_hidden]=\"isOpenCloseButtonHidden()\"\n (click)=\"onToggleChildren($event)\"\n >\n <cui-svg\n [icon]=\"openCloseButtonIcon()\"\n color=\"var(--cui-base-500)\"\n />\n </button>\n <cui-svg\n [icon]=\"stageStorageIcon()\"\n color=\"var(--cui-base-500)\"\n class=\"icon\"\n />\n @if (isTitleEdit()) {\n <cui-category-form\n [defaultTitle]=\"stage.title\"\n (created)=\"onTitleChanged($event)\"\n (canceled)=\"onCancelTitleEdit()\"\n />\n } @else {\n <span class=\"category__title\">{{ stage.title }}</span>\n\n <button\n cuiButton\n type=\"button\"\n appearance=\"ghost\"\n size=\"xxs\"\n icon=\"cuiIconEdit\"\n class=\"category__add-subcategory-button\"\n (click)=\"onStartTitleEdit($event)\"\n ></button>\n <button\n cuiButton\n type=\"button\"\n appearance=\"ghost\"\n size=\"xxs\"\n icon=\"cuiIconPlus\"\n class=\"category__add-subcategory-button\"\n (click)=\"onStartCreatingSubcategory($event)\"\n ></button>\n }\n </button>\n <div\n [hidden]=\"!areChildrenOpened()\"\n class=\"list-wrapper\"\n >\n <cui-categories-list [stageStorages]=\"stageStorageChildren()\" />\n @if (isCreateCategoryControlVisible()) {\n <cui-create-category-item\n class=\"create-category\"\n [isDisabled]=\"isSubcategoryCreationLoading()\"\n (created)=\"onCreateNewSubcategoryCategory($event)\"\n (canceled)=\"onCreatingSubcategoryCanceled()\"\n />\n }\n </div>\n</ng-container>\n", styles: [".category{display:flex;gap:4px;padding:2px 4px;width:100%;min-height:32px;border-radius:8px}@media (hover: hover){.category:hover{background:var(--cui-base-10)}}.category:active{background:var(--cui-base-10)}.category__open-close-button{padding:2px;border-radius:4px;margin:4px 0}@media (hover: hover){.category__open-close-button:hover{background:var(--cui-base-100)}}.category__open-close-button:active{background:var(--cui-base-100)}.category__open-close-button_hidden{visibility:hidden}.category__title{flex:1;text-align:start;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.category__add-subcategory-button{--cui-base-50: var(--cui-base-200)}.list-wrapper{padding-left:8px}.create-category{margin-left:24px}.icon{padding-right:2px;padding-left:2px;height:28px}\n"], dependencies: [{ kind: "ngmodule", type: i0.forwardRef(() => CuiButtonModule) }, { kind: "component", type: i0.forwardRef(() => i1.CuiButtonComponent), selector: "button[cuiButton], a[cuiButton]", inputs: ["shape", "disabled", "isLoaderShown", "icon", "iconRight", "appearance", "theme", "size"] }, { kind: "ngmodule", type: i0.forwardRef(() => CuiIconButtonModule) }, { kind: "directive", type: i0.forwardRef(() => CuiLetDirective), selector: "[cuiLet]", inputs: ["cuiLet"] }, { kind: "ngmodule", type: i0.forwardRef(() => CuiSvgModule) }, { kind: "component", type: i0.forwardRef(() => i2.CuiSvgComponent), selector: "cui-svg[icon]", inputs: ["width", "height", "strokeWidth", "color", "icon"] }, { kind: "component", type: i0.forwardRef(() => CuiCategoryFormComponent), selector: "cui-category-form", inputs: ["isDisabled", "defaultTitle"], outputs: ["created", "canceled"] }, { kind: "component", type: i0.forwardRef(() => CuiCreateCategoryItemComponent), selector: "cui-create-category-item", inputs: ["isDisabled"], outputs: ["created", "canceled"] }, { kind: "component", type: i0.forwardRef(() => CuiCategoriesListComponent), selector: "cui-categories-list", inputs: ["stageStorages"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
110
110
  }
111
111
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CuiCategoryItemComponent, decorators: [{
112
112
  type: Component,
@@ -120,4 +120,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
120
120
  forwardRef(() => CuiCategoriesListComponent)
121
121
  ], standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *cuiLet=\"category() as stage\">\n <button\n type=\"button\"\n [style.align-items]=\"alignItems()\"\n [disabled]=\"isStageCreationLoading()\"\n class=\"category\"\n (click)=\"onSelectCategory()\"\n >\n <button\n type=\"button\"\n ccFlexContainerDirective\n class=\"category__open-close-button\"\n [class.category__open-close-button_hidden]=\"isOpenCloseButtonHidden()\"\n (click)=\"onToggleChildren($event)\"\n >\n <cui-svg\n [icon]=\"openCloseButtonIcon()\"\n color=\"var(--cui-base-500)\"\n />\n </button>\n <cui-svg\n [icon]=\"stageStorageIcon()\"\n color=\"var(--cui-base-500)\"\n class=\"icon\"\n />\n @if (isTitleEdit()) {\n <cui-category-form\n [defaultTitle]=\"stage.title\"\n (created)=\"onTitleChanged($event)\"\n (canceled)=\"onCancelTitleEdit()\"\n />\n } @else {\n <span class=\"category__title\">{{ stage.title }}</span>\n\n <button\n cuiButton\n type=\"button\"\n appearance=\"ghost\"\n size=\"xxs\"\n icon=\"cuiIconEdit\"\n class=\"category__add-subcategory-button\"\n (click)=\"onStartTitleEdit($event)\"\n ></button>\n <button\n cuiButton\n type=\"button\"\n appearance=\"ghost\"\n size=\"xxs\"\n icon=\"cuiIconPlus\"\n class=\"category__add-subcategory-button\"\n (click)=\"onStartCreatingSubcategory($event)\"\n ></button>\n }\n </button>\n <div\n [hidden]=\"!areChildrenOpened()\"\n class=\"list-wrapper\"\n >\n <cui-categories-list [stageStorages]=\"stageStorageChildren()\" />\n @if (isCreateCategoryControlVisible()) {\n <cui-create-category-item\n class=\"create-category\"\n [isDisabled]=\"isSubcategoryCreationLoading()\"\n (created)=\"onCreateNewSubcategoryCategory($event)\"\n (canceled)=\"onCreatingSubcategoryCanceled()\"\n />\n }\n </div>\n</ng-container>\n", styles: [".category{display:flex;gap:4px;padding:2px 4px;width:100%;min-height:32px;border-radius:8px}@media (hover: hover){.category:hover{background:var(--cui-base-10)}}.category:active{background:var(--cui-base-10)}.category__open-close-button{padding:2px;border-radius:4px;margin:4px 0}@media (hover: hover){.category__open-close-button:hover{background:var(--cui-base-100)}}.category__open-close-button:active{background:var(--cui-base-100)}.category__open-close-button_hidden{visibility:hidden}.category__title{flex:1;text-align:start;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.category__add-subcategory-button{--cui-base-50: var(--cui-base-200)}.list-wrapper{padding-left:8px}.create-category{margin-left:24px}.icon{padding-right:2px;padding-left:2px;height:28px}\n"] }]
122
122
  }], ctorParameters: () => [] });
123
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0ZWdvcnktaXRlbS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3dpZGdldHMvY2F0ZWdvcmllcy9jb21wb25lbnRzL2NhdGVnb3J5LWl0ZW0vY2F0ZWdvcnktaXRlbS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3dpZGdldHMvY2F0ZWdvcmllcy9jb21wb25lbnRzL2NhdGVnb3J5LWl0ZW0vY2F0ZWdvcnktaXRlbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hILE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDL0MsT0FBTyxFQUFFLGdDQUFnQyxFQUFjLE1BQU0sY0FBYyxDQUFDO0FBRTVFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFaEMsT0FBTyxFQUFFLGVBQWUsRUFBRSxtQkFBbUIsRUFBRSxZQUFZLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM1RixPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNoRSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7OztBQWtCekUsTUFBTSxPQUFPLHdCQUF3QjtJQW9DakM7UUFuQ2lCLGtDQUE2QixHQUFHLE1BQU0sQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFDO1FBQ3pFLDRCQUF1QixHQUFHLE1B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Q0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgY29tcHV0ZWQsIGVmZmVjdCwgZm9yd2FyZFJlZiwgaW5qZWN0LCBpbnB1dCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDdWlMZXREaXJlY3RpdmUgfSBmcm9tICdAY3VieS11aS9jZGsnO1xuaW1wb3J0IHsgQ3VpVHJlZVN0cnVjdE5hdmlnYXRvckFwaVNlcnZpY2UsIFRyZWVTdHJ1Y3QgfSBmcm9tICdAY3VieS11aS9hcGknO1xuaW1wb3J0IHR5cGUgeyBDdWlJY29uIH0gZnJvbSAnQGN1YnktdWkvaWNvbnMnO1xuaW1wb3J0IHsgZmluYWxpemUgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgQ3VpQnV0dG9uTW9kdWxlLCBDdWlJY29uQnV0dG9uTW9kdWxlLCBDdWlTdmdNb2R1bGUgfSBmcm9tICcuLi8uLi8uLi8uLi9jb21wb25lbnRzJztcbmltcG9ydCB7IEN1aVNlbGVjdGVkQ2F0ZWdvcnlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMnO1xuaW1wb3J0IHsgQ3VpQ2F0ZWdvcmllc0xpc3RDb21wb25lbnQgfSBmcm9tICcuLi9jYXRlZ29yaWVzLWxpc3QnO1xuaW1wb3J0IHsgQ3VpQ2F0ZWdvcnlGb3JtQ29tcG9uZW50IH0gZnJvbSAnLi4vY2F0ZWdvcnktZm9ybSc7XG5pbXBvcnQgeyBDdWlDcmVhdGVDYXRlZ29yeUl0ZW1Db21wb25lbnQgfSBmcm9tICcuLi9jcmVhdGUtY2F0ZWdvcnktaXRlbSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnY3VpLWNhdGVnb3J5LWl0ZW0nLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgQ3VpQnV0dG9uTW9kdWxlLFxuICAgICAgICBDdWlJY29uQnV0dG9uTW9kdWxlLFxuICAgICAgICBDdWlMZXREaXJlY3RpdmUsXG4gICAgICAgIEN1aVN2Z01vZHVsZSxcbiAgICAgICAgQ3VpQ2F0ZWdvcnlGb3JtQ29tcG9uZW50LFxuICAgICAgICBDdWlDcmVhdGVDYXRlZ29yeUl0ZW1Db21wb25lbnQsXG4gICAgICAgIGZvcndhcmRSZWYoKCkgPT4gQ3VpQ2F0ZWdvcmllc0xpc3RDb21wb25lbnQpXG4gICAgXSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9jYXRlZ29yeS1pdGVtLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybDogJy4vY2F0ZWdvcnktaXRlbS5jb21wb25lbnQuc2NzcycsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgQ3VpQ2F0ZWdvcnlJdGVtQ29tcG9uZW50IHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRyZWVTdHJ1Y3ROYXZpZ2F0b3JBcGlTZXJ2aWNlID0gaW5qZWN0KEN1aVRyZWVTdHJ1Y3ROYXZpZ2F0b3JBcGlTZXJ2aWNlKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHNlbGVjdGVkQ2F0ZWdvcnlTZXJ2aWNlID0gaW5qZWN0KEN1aVNlbGVjdGVkQ2F0ZWdvcnlTZXJ2aWNlKTtcblxuICAgIHByb3RlY3RlZCByZWFkb25seSBpc1N0YWdlQ3JlYXRpb25Mb2FkaW5nID0gc2lnbmFsKGZhbHNlKTtcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgc3RhZ2VTdG9yYWdlQ2hpbGRyZW4gPSBzaWduYWw8VHJlZVN0cnVjdFtdPihbXSk7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGFyZUNoaWxkcmVuT3BlbmVkID0gc2lnbmFsKGZhbHNlKTtcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgb3BlbkNsb3NlQnV0dG9uSWNvbiA9IGNvbXB1dGVkPEN1aUljb24+KCgpID0+XG4gICAgICAgIHRoaXMuYXJlQ2hpbGRyZW5PcGVuZWQoKSA/ICdjdWlJY29uQ2hldnJvbkRvd24nIDogJ2N1aUljb25DaGV2cm9uUmlnaHQnXG4gICAgKTtcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgZG9DaGlsZHJlbkV4aXN0ID0gY29tcHV0ZWQoXG4gICAgICAgICgpID0+IHRoaXMuc3RhZ2VTdG9yYWdlKCkuY2hpbGRyZW4ubGVuZ3RoIHx8IHRoaXMuc3RhZ2VTdG9yYWdlQ2hpbGRyZW4oKS5sZW5ndGhcbiAgICApO1xuICAgIHByb3RlY3RlZCByZWFkb25seSBpc09wZW5DbG9zZUJ1dHRvbkhpZGRlbiA9IGNvbXB1dGVkKCgpID0+ICF0aGlzLmRvQ2hpbGRyZW5FeGlzdCgpKTtcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgc3RhZ2VTdG9yYWdlSWNvbiA9IGNvbXB1dGVkPEN1aUljb24+KCgpID0+XG4gICAgICAgIHRoaXMuYXJlQ2hpbGRyZW5PcGVuZWQoKSAmJiB0aGlzLmRvQ2hpbGRyZW5FeGlzdCgpID8gJ2N1aUljb25Gb2xkZXJPcGVuJyA6ICdjdWlJY29uRm9sZGVyJ1xuICAgICk7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGlzU3ViY2F0ZWdvcnlDcmVhdGluZyA9IHNpZ25hbChmYWxzZSk7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGlzU3ViY2F0ZWdvcnlDcmVhdGlvbkxvYWRpbmcgPSBzaWduYWwoZmFsc2UpO1xuICAgIHByb3RlY3RlZCByZWFkb25seSBhbGlnbkl0ZW1zID0gY29tcHV0ZWQoKCkgPT4gKHRoaXMuaXNUaXRsZUVkaXQoKSA/ICdmbGV4LXN0YXJ0JyA6ICdjZW50ZXInKSk7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGlzVGl0bGVFZGl0ID0gY29tcHV0ZWQoXG4gICAgICAgICgpID0+IHRoaXMuc2VsZWN0ZWRDYXRlZ29yeVNlcnZpY2UuZWRpdGluZ0lkKCkgPT09IHRoaXMuc3RhZ2VTdG9yYWdlKCkuaWRcbiAgICApO1xuICAgIHByb3RlY3RlZCByZWFkb25seSBpc0NyZWF0ZUNhdGVnb3J5Q29udHJvbFZpc2libGUgPSBjb21wdXRlZChcbiAgICAgICAgKCkgPT5cbiAgICAgICAgICAgICh0aGlzLnNlbGVjdGVkQ2F0ZWdvcnlTZXJ2aWNlLmNyZWF0aW5nSWQoKSA9PT0gdGhpcy5zdGFnZVN0b3JhZ2UoKS5pZCAmJiB0aGlzLmlzU3ViY2F0ZWdvcnlDcmVhdGluZygpKSB8fFxuICAgICAgICAgICAgdGhpcy5pc1N1YmNhdGVnb3J5Q3JlYXRpb25Mb2FkaW5nKClcbiAgICApO1xuXG4gICAgcHVibGljIHJlYWRvbmx5IHN0YWdlU3RvcmFnZSA9IGlucHV0LnJlcXVpcmVkPFRyZWVTdHJ1Y3Q+KCk7XG4gICAgcHVibGljIHJlYWRvbmx5IGNhdGVnb3J5VGl0bGUgPSBzaWduYWw8c3RyaW5nPignJyk7XG4gICAgcHVibGljIHJlYWRvbmx5IGNhdGVnb3J5ID0gY29tcHV0ZWQoKCkgPT4gKHtcbiAgICAgICAgLi4udGhpcy5zdGFnZVN0b3JhZ2UoKSxcbiAgICAgICAgdGl0bGU6IHRoaXMuY2F0ZWdvcnlUaXRsZSgpIHx8IHRoaXMuc3RhZ2VTdG9yYWdlKCkudGl0bGVcbiAgICB9KSk7XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5pbml0U3RhZ2VTdG9yYWdlQ2hpbGRyZW4oKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb25TZWxlY3RDYXRlZ29yeSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZENhdGVnb3J5U2VydmljZS5zZXRDdXJyZW50Q2F0ZWdvcnkodGhpcy5jYXRlZ29yeSgpKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb25Ub2dnbGVDaGlsZHJlbihldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcblxuICAgICAgICB0aGlzLmFyZUNoaWxkcmVuT3BlbmVkLnVwZGF0ZSgodmFsdWUpID0+ICF2YWx1ZSk7XG5cbiAgICAgICAgaWYgKHRoaXMuYXJlQ2hpbGRyZW5PcGVuZWQoKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5pc1N1YmNhdGVnb3J5Q3JlYXRpbmcuc2V0KGZhbHNlKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb25UaXRsZUNoYW5nZWQodGl0bGU6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uQ2FuY2VsVGl0bGVFZGl0KCk7XG5cbiAgICAgICAgaWYgKHRpdGxlID09PSB0aGlzLmNhdGVnb3J5KCkudGl0bGUpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMudHJlZVN0cnVjdE5hdmlnYXRvckFwaVNlcnZpY2UudXBkYXRlVGl0bGUodGhpcy5zdGFnZVN0b3JhZ2UoKS5pZCwgdGl0bGUpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmNhdGVnb3J5VGl0bGUuc2V0KHRpdGxlKTtcblxuICAgICAgICAgICAgaWYgKHRoaXMuY2F0ZWdvcnkoKS5pZCA9PT0gdGhpcy5zZWxlY3RlZENhdGVnb3J5U2VydmljZS5jYXRlZ29yeSgpPy5pZCkge1xuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRDYXRlZ29yeVNlcnZpY2Uuc2V0Q3VycmVudENhdGVnb3J5KHRoaXMuY2F0ZWdvcnkoKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBvblN0YXJ0VGl0bGVFZGl0KGV2ZW50PzogRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgZXZlbnQ/LnN0b3BQcm9wYWdhdGlvbigpO1xuXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRDYXRlZ29yeVNlcnZpY2Uuc2V0RWRpdGluZ0lkKHRoaXMuc3RhZ2VTdG9yYWdlKCkuaWQpO1xuICAgICAgICB0aGlzLm9uQ3JlYXRpbmdTdWJjYXRlZ29yeUNhbmNlbGVkKCk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG9uQ2FuY2VsVGl0bGVFZGl0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNlbGVjdGVkQ2F0ZWdvcnlTZXJ2aWNlLmNsZWFyRWRpdGluZ0lkKCk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG9uU3RhcnRDcmVhdGluZ1N1YmNhdGVnb3J5KGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuXG4gICAgICAgIHRoaXMuaXNTdWJjYXRlZ29yeUNyZWF0aW5nLnNldCh0cnVlKTtcbiAgICAgICAgdGhpcy5hcmVDaGlsZHJlbk9wZW5lZC5zZXQodHJ1ZSk7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRDYXRlZ29yeVNlcnZpY2Uuc2V0Q3JlYXRpbmdJZCh0aGlzLnN0YWdlU3RvcmFnZSgpLmlkKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb25DcmVhdGVOZXdTdWJjYXRlZ29yeUNhdGVnb3J5KHRpdGxlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pc1N1YmNhdGVnb3J5Q3JlYXRpbmcuc2V0KGZhbHNlKTtcbiAgICAgICAgdGhpcy5pc1N1YmNhdGVnb3J5Q3JlYXRpb25Mb2FkaW5nLnNldCh0cnVlKTtcbiAgICAgICAgdGhpcy50cmVlU3RydWN0TmF2aWdhdG9yQXBpU2VydmljZVxuICAgICAgICAgICAgLmNyZWF0ZVN0YWdlU3RvcmFnZVRvUGFyZW50KHRoaXMuc3RhZ2VTdG9yYWdlKCkuaWQsIHRpdGxlKVxuICAgICAgICAgICAgLnBpcGUoZmluYWxpemUodGhpcy5pc1N1YmNhdGVnb3J5Q3JlYXRpb25Mb2FkaW5nLnNldC5iaW5kKHRoaXMuaXNTdWJjYXRlZ29yeUNyZWF0aW9uTG9hZGluZywgZmFsc2UpKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKHN0YXRlU3RvcmFnZSkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhZ2VTdG9yYWdlQ2hpbGRyZW4udXBkYXRlKCh2YWx1ZSkgPT4gWy4uLnZhbHVlLCBzdGF0ZVN0b3JhZ2VdKTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBvbkNyZWF0aW5nU3ViY2F0ZWdvcnlDYW5jZWxlZCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pc1N1YmNhdGVnb3J5Q3JlYXRpbmcuc2V0KGZhbHNlKTtcbiAgICAgICAgdGhpcy5zZWxlY3RlZENhdGVnb3J5U2VydmljZS5jbGVhckNyZWF0aW5nSWQoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGluaXRTdGFnZVN0b3JhZ2VDaGlsZHJlbigpOiB2b2lkIHtcbiAgICAgICAgZWZmZWN0KCgpID0+IHtcbiAgICAgICAgICAgIGlmICghdGhpcy5hcmVDaGlsZHJlbk9wZW5lZCgpIHx8IHRoaXMuc3RhZ2VTdG9yYWdlQ2hpbGRyZW4oKS5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IHN0YWdlU3RvcmFnZSA9IHRoaXMuc3RhZ2VTdG9yYWdlKCk7XG4gICAgICAgICAgICBjb25zdCBzdGFnZVN0b3JhZ2VDaGlsZHJlbiA9IHN0YWdlU3RvcmFnZS5jaGlsZHJlbjtcblxuICAgICAgICAgICAgaWYgKCFzdGFnZVN0b3JhZ2VDaGlsZHJlbi5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICh0eXBlb2Ygc3RhZ2VTdG9yYWdlQ2hpbGRyZW5bMF0gIT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGFnZVN0b3JhZ2VDaGlsZHJlbi5zZXQoc3RhZ2VTdG9yYWdlQ2hpbGRyZW4gYXMgVHJlZVN0cnVjdFtdKTtcblxuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy50cmVlU3RydWN0TmF2aWdhdG9yQXBpU2VydmljZS5nZXRTdGFnZVN0b3JhZ2VzQnlQYXJlbnQoc3RhZ2VTdG9yYWdlLmlkKS5zdWJzY3JpYmUoKHN0b3JhZ2UpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YWdlU3RvcmFnZUNoaWxkcmVuLnVwZGF0ZSgocHJldlN0YWdlU3RvcmFnZXMpID0+XG4gICAgICAgICAgICAgICAgICAgIHByZXZTdGFnZVN0b3JhZ2VzID8gWy4uLnByZXZTdGFnZVN0b3JhZ2VzLCBzdG9yYWdlXSA6IFtzdG9yYWdlXVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSwgeyBhbGxvd1NpZ25hbFdyaXRlczogdHJ1ZSB9KTtcbiAgICB9XG59XG4iLCI8bmctY29udGFpbmVyICpjdWlMZXQ9XCJjYXRlZ29yeSgpIGFzIHN0YWdlXCI+XG4gICAgPGJ1dHRvblxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgW3N0eWxlLmFsaWduLWl0ZW1zXT1cImFsaWduSXRlbXMoKVwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJpc1N0YWdlQ3JlYXRpb25Mb2FkaW5nKClcIlxuICAgICAgICBjbGFzcz1cImNhdGVnb3J5XCJcbiAgICAgICAgKGNsaWNrKT1cIm9uU2VsZWN0Q2F0ZWdvcnkoKVwiXG4gICAgPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIGNjRmxleENvbnRhaW5lckRpcmVjdGl2ZVxuICAgICAgICAgICAgY2xhc3M9XCJjYXRlZ29yeV9fb3Blbi1jbG9zZS1idXR0b25cIlxuICAgICAgICAgICAgW2NsYXNzLmNhdGVnb3J5X19vcGVuLWNsb3NlLWJ1dHRvbl9oaWRkZW5dPVwiaXNPcGVuQ2xvc2VCdXR0b25IaWRkZW4oKVwiXG4gICAgICAgICAgICAoY2xpY2spPVwib25Ub2dnbGVDaGlsZHJlbigkZXZlbnQpXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPGN1aS1zdmdcbiAgICAgICAgICAgICAgICBbaWNvbl09XCJvcGVuQ2xvc2VCdXR0b25JY29uKClcIlxuICAgICAgICAgICAgICAgIGNvbG9yPVwidmFyKC0tY3VpLWJhc2UtNTAwKVwiXG4gICAgICAgICAgICAvPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPGN1aS1zdmdcbiAgICAgICAgICAgIFtpY29uXT1cInN0YWdlU3RvcmFnZUljb24oKVwiXG4gICAgICAgICAgICBjb2xvcj1cInZhcigtLWN1aS1iYXNlLTUwMClcIlxuICAgICAgICAgICAgY2xhc3M9XCJpY29uXCJcbiAgICAgICAgLz5cbiAgICAgICAgQGlmIChpc1RpdGxlRWRpdCgpKSB7XG4gICAgICAgICAgICA8Y3VpLWNhdGVnb3J5LWZvcm1cbiAgICAgICAgICAgICAgICBbZGVmYXVsdFRpdGxlXT1cInN0YWdlLnRpdGxlXCJcbiAgICAgICAgICAgICAgICAoY3JlYXRlZCk9XCJvblRpdGxlQ2hhbmdlZCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAoY2FuY2VsZWQpPVwib25DYW5jZWxUaXRsZUVkaXQoKVwiXG4gICAgICAgICAgICAvPlxuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2F0ZWdvcnlfX3RpdGxlXCI+e3sgc3RhZ2UudGl0bGUgfX08L3NwYW4+XG5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICBjdWlCdXR0b25cbiAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICBhcHBlYXJhbmNlPVwiZ2hvc3RcIlxuICAgICAgICAgICAgICAgIHNpemU9XCJ4eHNcIlxuICAgICAgICAgICAgICAgIGljb249XCJjdWlJY29uRWRpdFwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJjYXRlZ29yeV9fYWRkLXN1YmNhdGVnb3J5LWJ1dHRvblwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uU3RhcnRUaXRsZUVkaXQoJGV2ZW50KVwiXG4gICAgICAgICAgICA+PC9idXR0b24+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgY3VpQnV0dG9uXG4gICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgYXBwZWFyYW5jZT1cImdob3N0XCJcbiAgICAgICAgICAgICAgICBzaXplPVwieHhzXCJcbiAgICAgICAgICAgICAgICBpY29uPVwiY3VpSWNvblBsdXNcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiY2F0ZWdvcnlfX2FkZC1zdWJjYXRlZ29yeS1idXR0b25cIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJvblN0YXJ0Q3JlYXRpbmdTdWJjYXRlZ29yeSgkZXZlbnQpXCJcbiAgICAgICAgICAgID48L2J1dHRvbj5cbiAgICAgICAgfVxuICAgIDwvYnV0dG9uPlxuICAgIDxkaXZcbiAgICAgICAgW2hpZGRlbl09XCIhYXJlQ2hpbGRyZW5PcGVuZWQoKVwiXG4gICAgICAgIGNsYXNzPVwibGlzdC13cmFwcGVyXCJcbiAgICA+XG4gICAgICAgIDxjdWktY2F0ZWdvcmllcy1saXN0IFtzdGFnZVN0b3JhZ2VzXT1cInN0YWdlU3RvcmFnZUNoaWxkcmVuKClcIiAvPlxuICAgICAgICBAaWYgKGlzQ3JlYXRlQ2F0ZWdvcnlDb250cm9sVmlzaWJsZSgpKSB7XG4gICAgICAgICAgICA8Y3VpLWNyZWF0ZS1jYXRlZ29yeS1pdGVtXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJjcmVhdGUtY2F0ZWdvcnlcIlxuICAgICAgICAgICAgICAgIFtpc0Rpc2FibGVkXT1cImlzU3ViY2F0ZWdvcnlDcmVhdGlvbkxvYWRpbmcoKVwiXG4gICAgICAgICAgICAgICAgKGNyZWF0ZWQpPVwib25DcmVhdGVOZXdTdWJjYXRlZ29yeUNhdGVnb3J5KCRldmVudClcIlxuICAgICAgICAgICAgICAgIChjYW5jZWxlZCk9XCJvbkNyZWF0aW5nU3ViY2F0ZWdvcnlDYW5jZWxlZCgpXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgIH1cbiAgICA8L2Rpdj5cbjwvbmctY29udGFpbmVyPlxuIl19
123
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0ZWdvcnktaXRlbS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3dpZGdldHMvY2F0ZWdvcmllcy9jb21wb25lbnRzL2NhdGVnb3J5LWl0ZW0vY2F0ZWdvcnktaXRlbS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3dpZGdldHMvY2F0ZWdvcmllcy9jb21wb25lbnRzL2NhdGVnb3J5LWl0ZW0vY2F0ZWdvcnktaXRlbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hILE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDL0MsT0FBTyxFQUFFLGdDQUFnQyxFQUFjLE1BQU0sY0FBYyxDQUFDO0FBRTVFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFaEMsT0FBTyxFQUFFLGVBQWUsRUFBRSxtQkFBbUIsRUFBRSxZQUFZLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM1RixPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNoRSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7OztBQWtCekUsTUFBTSxPQUFPLHdCQUF3QjtJQW9DakM7UUFuQ2lCLGtDQUE2QixHQUFHLE1BQU0sQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFDO1FBQ3pFLDRCQUF1QixHQUFHLE1B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Q0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgY29tcHV0ZWQsIGVmZmVjdCwgZm9yd2FyZFJlZiwgaW5qZWN0LCBpbnB1dCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDdWlMZXREaXJlY3RpdmUgfSBmcm9tICdAY3VieS11aS9jZGsnO1xuaW1wb3J0IHsgQ3VpVHJlZVN0cnVjdE5hdmlnYXRvckFwaVNlcnZpY2UsIFRyZWVTdHJ1Y3QgfSBmcm9tICdAY3VieS11aS9hcGknO1xuaW1wb3J0IHR5cGUgeyBDdWlJY29uIH0gZnJvbSAnQGN1YnktdWkvaWNvbnMnO1xuaW1wb3J0IHsgZmluYWxpemUgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgQ3VpQnV0dG9uTW9kdWxlLCBDdWlJY29uQnV0dG9uTW9kdWxlLCBDdWlTdmdNb2R1bGUgfSBmcm9tICcuLi8uLi8uLi8uLi9jb21wb25lbnRzJztcbmltcG9ydCB7IEN1aVNlbGVjdGVkQ2F0ZWdvcnlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMnO1xuaW1wb3J0IHsgQ3VpQ2F0ZWdvcmllc0xpc3RDb21wb25lbnQgfSBmcm9tICcuLi9jYXRlZ29yaWVzLWxpc3QnO1xuaW1wb3J0IHsgQ3VpQ2F0ZWdvcnlGb3JtQ29tcG9uZW50IH0gZnJvbSAnLi4vY2F0ZWdvcnktZm9ybSc7XG5pbXBvcnQgeyBDdWlDcmVhdGVDYXRlZ29yeUl0ZW1Db21wb25lbnQgfSBmcm9tICcuLi9jcmVhdGUtY2F0ZWdvcnktaXRlbSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnY3VpLWNhdGVnb3J5LWl0ZW0nLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgQ3VpQnV0dG9uTW9kdWxlLFxuICAgICAgICBDdWlJY29uQnV0dG9uTW9kdWxlLFxuICAgICAgICBDdWlMZXREaXJlY3RpdmUsXG4gICAgICAgIEN1aVN2Z01vZHVsZSxcbiAgICAgICAgQ3VpQ2F0ZWdvcnlGb3JtQ29tcG9uZW50LFxuICAgICAgICBDdWlDcmVhdGVDYXRlZ29yeUl0ZW1Db21wb25lbnQsXG4gICAgICAgIGZvcndhcmRSZWYoKCkgPT4gQ3VpQ2F0ZWdvcmllc0xpc3RDb21wb25lbnQpXG4gICAgXSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9jYXRlZ29yeS1pdGVtLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybDogJy4vY2F0ZWdvcnktaXRlbS5jb21wb25lbnQuc2NzcycsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgQ3VpQ2F0ZWdvcnlJdGVtQ29tcG9uZW50IHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRyZWVTdHJ1Y3ROYXZpZ2F0b3JBcGlTZXJ2aWNlID0gaW5qZWN0KEN1aVRyZWVTdHJ1Y3ROYXZpZ2F0b3JBcGlTZXJ2aWNlKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHNlbGVjdGVkQ2F0ZWdvcnlTZXJ2aWNlID0gaW5qZWN0KEN1aVNlbGVjdGVkQ2F0ZWdvcnlTZXJ2aWNlKTtcblxuICAgIHByb3RlY3RlZCByZWFkb25seSBpc1N0YWdlQ3JlYXRpb25Mb2FkaW5nID0gc2lnbmFsKGZhbHNlKTtcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgc3RhZ2VTdG9yYWdlQ2hpbGRyZW4gPSBzaWduYWw8VHJlZVN0cnVjdFtdPihbXSk7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGFyZUNoaWxkcmVuT3BlbmVkID0gc2lnbmFsKGZhbHNlKTtcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgb3BlbkNsb3NlQnV0dG9uSWNvbiA9IGNvbXB1dGVkPEN1aUljb24+KCgpID0+XG4gICAgICAgIHRoaXMuYXJlQ2hpbGRyZW5PcGVuZWQoKSA/ICdjdWlJY29uQ2hldnJvbkRvd24nIDogJ2N1aUljb25DaGV2cm9uUmlnaHQnXG4gICAgKTtcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgZG9DaGlsZHJlbkV4aXN0ID0gY29tcHV0ZWQoXG4gICAgICAgICgpID0+IHRoaXMuc3RhZ2VTdG9yYWdlKCkuY2hpbGRyZW4ubGVuZ3RoIHx8IHRoaXMuc3RhZ2VTdG9yYWdlQ2hpbGRyZW4oKS5sZW5ndGhcbiAgICApO1xuICAgIHByb3RlY3RlZCByZWFkb25seSBpc09wZW5DbG9zZUJ1dHRvbkhpZGRlbiA9IGNvbXB1dGVkKCgpID0+ICF0aGlzLmRvQ2hpbGRyZW5FeGlzdCgpKTtcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgc3RhZ2VTdG9yYWdlSWNvbiA9IGNvbXB1dGVkPEN1aUljb24+KCgpID0+XG4gICAgICAgIHRoaXMuYXJlQ2hpbGRyZW5PcGVuZWQoKSAmJiB0aGlzLmRvQ2hpbGRyZW5FeGlzdCgpID8gJ2N1aUljb25Gb2xkZXJPcGVuJyA6ICdjdWlJY29uRm9sZGVyJ1xuICAgICk7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGlzU3ViY2F0ZWdvcnlDcmVhdGluZyA9IHNpZ25hbChmYWxzZSk7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGlzU3ViY2F0ZWdvcnlDcmVhdGlvbkxvYWRpbmcgPSBzaWduYWwoZmFsc2UpO1xuICAgIHByb3RlY3RlZCByZWFkb25seSBhbGlnbkl0ZW1zID0gY29tcHV0ZWQoKCkgPT4gKHRoaXMuaXNUaXRsZUVkaXQoKSA/ICdmbGV4LXN0YXJ0JyA6ICdjZW50ZXInKSk7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGlzVGl0bGVFZGl0ID0gY29tcHV0ZWQoXG4gICAgICAgICgpID0+IHRoaXMuc2VsZWN0ZWRDYXRlZ29yeVNlcnZpY2UuZWRpdGluZ0lkKCkgPT09IHRoaXMuc3RhZ2VTdG9yYWdlKCkuaWRcbiAgICApO1xuICAgIHByb3RlY3RlZCByZWFkb25seSBpc0NyZWF0ZUNhdGVnb3J5Q29udHJvbFZpc2libGUgPSBjb21wdXRlZChcbiAgICAgICAgKCkgPT5cbiAgICAgICAgICAgICh0aGlzLnNlbGVjdGVkQ2F0ZWdvcnlTZXJ2aWNlLmNyZWF0aW5nSWQoKSA9PT0gdGhpcy5zdGFnZVN0b3JhZ2UoKS5pZCAmJiB0aGlzLmlzU3ViY2F0ZWdvcnlDcmVhdGluZygpKSB8fFxuICAgICAgICAgICAgdGhpcy5pc1N1YmNhdGVnb3J5Q3JlYXRpb25Mb2FkaW5nKClcbiAgICApO1xuXG4gICAgcHVibGljIHJlYWRvbmx5IHN0YWdlU3RvcmFnZSA9IGlucHV0LnJlcXVpcmVkPFRyZWVTdHJ1Y3Q+KCk7XG4gICAgcHVibGljIHJlYWRvbmx5IGNhdGVnb3J5VGl0bGUgPSBzaWduYWw8c3RyaW5nPignJyk7XG4gICAgcHVibGljIHJlYWRvbmx5IGNhdGVnb3J5ID0gY29tcHV0ZWQoKCkgPT4gKHtcbiAgICAgICAgLi4udGhpcy5zdGFnZVN0b3JhZ2UoKSxcbiAgICAgICAgdGl0bGU6IHRoaXMuY2F0ZWdvcnlUaXRsZSgpIHx8IHRoaXMuc3RhZ2VTdG9yYWdlKCkudGl0bGVcbiAgICB9KSk7XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5pbml0U3RhZ2VTdG9yYWdlQ2hpbGRyZW4oKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb25TZWxlY3RDYXRlZ29yeSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZENhdGVnb3J5U2VydmljZS5zZXRDdXJyZW50Q2F0ZWdvcnkodGhpcy5jYXRlZ29yeSgpKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb25Ub2dnbGVDaGlsZHJlbihldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcblxuICAgICAgICB0aGlzLmFyZUNoaWxkcmVuT3BlbmVkLnVwZGF0ZSgodmFsdWUpID0+ICF2YWx1ZSk7XG5cbiAgICAgICAgaWYgKHRoaXMuYXJlQ2hpbGRyZW5PcGVuZWQoKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5pc1N1YmNhdGVnb3J5Q3JlYXRpbmcuc2V0KGZhbHNlKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb25UaXRsZUNoYW5nZWQodGl0bGU6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uQ2FuY2VsVGl0bGVFZGl0KCk7XG5cbiAgICAgICAgaWYgKHRpdGxlID09PSB0aGlzLmNhdGVnb3J5KCkudGl0bGUpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMudHJlZVN0cnVjdE5hdmlnYXRvckFwaVNlcnZpY2UudXBkYXRlVGl0bGUodGhpcy5zdGFnZVN0b3JhZ2UoKS5pZCwgdGl0bGUpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmNhdGVnb3J5VGl0bGUuc2V0KHRpdGxlKTtcblxuICAgICAgICAgICAgaWYgKHRoaXMuY2F0ZWdvcnkoKS5pZCA9PT0gdGhpcy5zZWxlY3RlZENhdGVnb3J5U2VydmljZS5jYXRlZ29yeSgpPy5pZCkge1xuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRDYXRlZ29yeVNlcnZpY2Uuc2V0Q3VycmVudENhdGVnb3J5KHRoaXMuY2F0ZWdvcnkoKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBvblN0YXJ0VGl0bGVFZGl0KGV2ZW50PzogRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgZXZlbnQ/LnN0b3BQcm9wYWdhdGlvbigpO1xuXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRDYXRlZ29yeVNlcnZpY2Uuc2V0RWRpdGluZ0lkKHRoaXMuc3RhZ2VTdG9yYWdlKCkuaWQpO1xuICAgICAgICB0aGlzLm9uQ3JlYXRpbmdTdWJjYXRlZ29yeUNhbmNlbGVkKCk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG9uQ2FuY2VsVGl0bGVFZGl0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNlbGVjdGVkQ2F0ZWdvcnlTZXJ2aWNlLmNsZWFyRWRpdGluZ0lkKCk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG9uU3RhcnRDcmVhdGluZ1N1YmNhdGVnb3J5KGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuXG4gICAgICAgIHRoaXMuaXNTdWJjYXRlZ29yeUNyZWF0aW5nLnNldCh0cnVlKTtcbiAgICAgICAgdGhpcy5hcmVDaGlsZHJlbk9wZW5lZC5zZXQodHJ1ZSk7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRDYXRlZ29yeVNlcnZpY2Uuc2V0Q3JlYXRpbmdJZCh0aGlzLnN0YWdlU3RvcmFnZSgpLmlkKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb25DcmVhdGVOZXdTdWJjYXRlZ29yeUNhdGVnb3J5KHRpdGxlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pc1N1YmNhdGVnb3J5Q3JlYXRpbmcuc2V0KGZhbHNlKTtcbiAgICAgICAgdGhpcy5pc1N1YmNhdGVnb3J5Q3JlYXRpb25Mb2FkaW5nLnNldCh0cnVlKTtcbiAgICAgICAgdGhpcy50cmVlU3RydWN0TmF2aWdhdG9yQXBpU2VydmljZVxuICAgICAgICAgICAgLmNyZWF0ZVN0YWdlU3RvcmFnZVRvUGFyZW50KHRoaXMuc3RhZ2VTdG9yYWdlKCkuaWQsIHRpdGxlKVxuICAgICAgICAgICAgLnBpcGUoZmluYWxpemUodGhpcy5pc1N1YmNhdGVnb3J5Q3JlYXRpb25Mb2FkaW5nLnNldC5iaW5kKHRoaXMuaXNTdWJjYXRlZ29yeUNyZWF0aW9uTG9hZGluZywgZmFsc2UpKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKHN0YXRlU3RvcmFnZSkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhZ2VTdG9yYWdlQ2hpbGRyZW4udXBkYXRlKCh2YWx1ZSkgPT4gWy4uLnZhbHVlLCBzdGF0ZVN0b3JhZ2VdKTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBvbkNyZWF0aW5nU3ViY2F0ZWdvcnlDYW5jZWxlZCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pc1N1YmNhdGVnb3J5Q3JlYXRpbmcuc2V0KGZhbHNlKTtcbiAgICAgICAgdGhpcy5zZWxlY3RlZENhdGVnb3J5U2VydmljZS5jbGVhckNyZWF0aW5nSWQoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGluaXRTdGFnZVN0b3JhZ2VDaGlsZHJlbigpOiB2b2lkIHtcbiAgICAgICAgZWZmZWN0KCgpID0+IHtcbiAgICAgICAgICAgIGlmICghdGhpcy5hcmVDaGlsZHJlbk9wZW5lZCgpIHx8IHRoaXMuc3RhZ2VTdG9yYWdlQ2hpbGRyZW4oKS5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IHN0YWdlU3RvcmFnZSA9IHRoaXMuc3RhZ2VTdG9yYWdlKCk7XG4gICAgICAgICAgICBjb25zdCBzdGFnZVN0b3JhZ2VDaGlsZHJlbiA9IHN0YWdlU3RvcmFnZS5jaGlsZHJlbjtcblxuICAgICAgICAgICAgaWYgKCFzdGFnZVN0b3JhZ2VDaGlsZHJlbi5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICh0eXBlb2Ygc3RhZ2VTdG9yYWdlQ2hpbGRyZW5bMF0gIT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGFnZVN0b3JhZ2VDaGlsZHJlbi5zZXQoc3RhZ2VTdG9yYWdlQ2hpbGRyZW4gYXMgVHJlZVN0cnVjdFtdKTtcblxuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy50cmVlU3RydWN0TmF2aWdhdG9yQXBpU2VydmljZS5nZXRTdGFnZVN0b3JhZ2VzQnlQYXJlbnQoc3RhZ2VTdG9yYWdlLmlkKS5zdWJzY3JpYmUoKHN0b3JhZ2UpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YWdlU3RvcmFnZUNoaWxkcmVuLnVwZGF0ZSgocHJldlN0YWdlU3RvcmFnZXMpID0+XG4gICAgICAgICAgICAgICAgICAgIHByZXZTdGFnZVN0b3JhZ2VzID8gWy4uLnByZXZTdGFnZVN0b3JhZ2VzLCBzdG9yYWdlXSA6IFtzdG9yYWdlXVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSwgeyBhbGxvd1NpZ25hbFdyaXRlczogdHJ1ZSB9KTtcbiAgICB9XG59XG4iLCI8bmctY29udGFpbmVyICpjdWlMZXQ9XCJjYXRlZ29yeSgpIGFzIHN0YWdlXCI+XG4gICAgPGJ1dHRvblxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgW3N0eWxlLmFsaWduLWl0ZW1zXT1cImFsaWduSXRlbXMoKVwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJpc1N0YWdlQ3JlYXRpb25Mb2FkaW5nKClcIlxuICAgICAgICBjbGFzcz1cImNhdGVnb3J5XCJcbiAgICAgICAgKGNsaWNrKT1cIm9uU2VsZWN0Q2F0ZWdvcnkoKVwiXG4gICAgPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIGNjRmxleENvbnRhaW5lckRpcmVjdGl2ZVxuICAgICAgICAgICAgY2xhc3M9XCJjYXRlZ29yeV9fb3Blbi1jbG9zZS1idXR0b25cIlxuICAgICAgICAgICAgW2NsYXNzLmNhdGVnb3J5X19vcGVuLWNsb3NlLWJ1dHRvbl9oaWRkZW5dPVwiaXNPcGVuQ2xvc2VCdXR0b25IaWRkZW4oKVwiXG4gICAgICAgICAgICAoY2xpY2spPVwib25Ub2dnbGVDaGlsZHJlbigkZXZlbnQpXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPGN1aS1zdmdcbiAgICAgICAgICAgICAgICBbaWNvbl09XCJvcGVuQ2xvc2VCdXR0b25JY29uKClcIlxuICAgICAgICAgICAgICAgIGNvbG9yPVwidmFyKC0tY3VpLWJhc2UtNTAwKVwiXG4gICAgICAgICAgICAvPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPGN1aS1zdmdcbiAgICAgICAgICAgIFtpY29uXT1cInN0YWdlU3RvcmFnZUljb24oKVwiXG4gICAgICAgICAgICBjb2xvcj1cInZhcigtLWN1aS1iYXNlLTUwMClcIlxuICAgICAgICAgICAgY2xhc3M9XCJpY29uXCJcbiAgICAgICAgLz5cbiAgICAgICAgQGlmIChpc1RpdGxlRWRpdCgpKSB7XG4gICAgICAgICAgICA8Y3VpLWNhdGVnb3J5LWZvcm1cbiAgICAgICAgICAgICAgICBbZGVmYXVsdFRpdGxlXT1cInN0YWdlLnRpdGxlXCJcbiAgICAgICAgICAgICAgICAoY3JlYXRlZCk9XCJvblRpdGxlQ2hhbmdlZCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAoY2FuY2VsZWQpPVwib25DYW5jZWxUaXRsZUVkaXQoKVwiXG4gICAgICAgICAgICAvPlxuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2F0ZWdvcnlfX3RpdGxlXCI+e3sgc3RhZ2UudGl0bGUgfX08L3NwYW4+XG5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICBjdWlCdXR0b25cbiAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICBhcHBlYXJhbmNlPVwiZ2hvc3RcIlxuICAgICAgICAgICAgICAgIHNpemU9XCJ4eHNcIlxuICAgICAgICAgICAgICAgIGljb249XCJjdWlJY29uRWRpdFwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJjYXRlZ29yeV9fYWRkLXN1YmNhdGVnb3J5LWJ1dHRvblwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uU3RhcnRUaXRsZUVkaXQoJGV2ZW50KVwiXG4gICAgICAgICAgICA+PC9idXR0b24+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgY3VpQnV0dG9uXG4gICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgYXBwZWFyYW5jZT1cImdob3N0XCJcbiAgICAgICAgICAgICAgICBzaXplPVwieHhzXCJcbiAgICAgICAgICAgICAgICBpY29uPVwiY3VpSWNvblBsdXNcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiY2F0ZWdvcnlfX2FkZC1zdWJjYXRlZ29yeS1idXR0b25cIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJvblN0YXJ0Q3JlYXRpbmdTdWJjYXRlZ29yeSgkZXZlbnQpXCJcbiAgICAgICAgICAgID48L2J1dHRvbj5cbiAgICAgICAgfVxuICAgIDwvYnV0dG9uPlxuICAgIDxkaXZcbiAgICAgICAgW2hpZGRlbl09XCIhYXJlQ2hpbGRyZW5PcGVuZWQoKVwiXG4gICAgICAgIGNsYXNzPVwibGlzdC13cmFwcGVyXCJcbiAgICA+XG4gICAgICAgIDxjdWktY2F0ZWdvcmllcy1saXN0IFtzdGFnZVN0b3JhZ2VzXT1cInN0YWdlU3RvcmFnZUNoaWxkcmVuKClcIiAvPlxuICAgICAgICBAaWYgKGlzQ3JlYXRlQ2F0ZWdvcnlDb250cm9sVmlzaWJsZSgpKSB7XG4gICAgICAgICAgICA8Y3VpLWNyZWF0ZS1jYXRlZ29yeS1pdGVtXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJjcmVhdGUtY2F0ZWdvcnlcIlxuICAgICAgICAgICAgICAgIFtpc0Rpc2FibGVkXT1cImlzU3ViY2F0ZWdvcnlDcmVhdGlvbkxvYWRpbmcoKVwiXG4gICAgICAgICAgICAgICAgKGNyZWF0ZWQpPVwib25DcmVhdGVOZXdTdWJjYXRlZ29yeUNhdGVnb3J5KCRldmVudClcIlxuICAgICAgICAgICAgICAgIChjYW5jZWxlZCk9XCJvbkNyZWF0aW5nU3ViY2F0ZWdvcnlDYW5jZWxlZCgpXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgIH1cbiAgICA8L2Rpdj5cbjwvbmctY29udGFpbmVyPlxuIl19
@@ -58,7 +58,7 @@ export class CuiChecklistBlockComponent {
58
58
  .subscribe((checkListItem) => this.checkListBlockService.addCheckListItem(checkListItem));
59
59
  }
60
60
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CuiChecklistBlockComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
61
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: CuiChecklistBlockComponent, isStandalone: true, selector: "cui-checklist-block, [cuiCheckListBlock]", inputs: { componentId: { classPropertyName: "componentId", publicName: "componentId", isSignal: true, isRequired: true, transformFunction: null }, config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: true, transformFunction: null } }, providers: [CuiCheckListBlockService], ngImport: i0, template: "<cui-content-wrapper\n *transloco=\"let t\"\n backgroundColor=\"var(--cui-base-10)\"\n [gap]=\"16\"\n>\n <ng-container *cuiLet=\"checkListItems() as checkListItems\">\n <header class=\"header\">\n <h2 class=\"heading\">{{ t('CHECKLIST') }}</h2>\n\n @if (checkListItems) {\n <span class=\"item\">{{ checkListItems?.length }} {{ t('ITEM_VARIANT') }}</span>\n }\n </header>\n <cui-content-wrapper>\n <cui-checklist-block-list [config]=\"config()\" />\n </cui-content-wrapper>\n <div>\n <button\n #actionButton=\"elementRef\"\n cuiElement\n cuiButton\n type=\"button\"\n appearance=\"flat\"\n size=\"xxs\"\n icon=\"cuiIconPlus\"\n >\n {{ t('ADD_NEW_ITEM') }}\n </button>\n <cui-context-menu\n [items]=\"CHECKLIST_BLOCK_SELECT_OPTIONS\"\n [target]=\"actionButton.nativeElement\"\n />\n </div>\n </ng-container>\n</cui-content-wrapper>\n", styles: [".header{display:flex;gap:12px;align-items:center;justify-content:space-between}.heading{font-weight:500;font-size:16px;line-height:24px}.item{font-weight:400;font-size:12px;line-height:14px;color:var(--cui-base-500)}\n"], dependencies: [{ kind: "component", type: CuiChecklistBlockListComponent, selector: "cui-checklist-block-list", inputs: ["config"] }, { kind: "component", type: CuiContentWrapperComponent, selector: "cui-content-wrapper, [cuiContentWrapper]", inputs: ["backgroundColor", "gap"] }, { kind: "ngmodule", type: CuiButtonModule }, { kind: "component", type: i1.CuiButtonComponent, selector: "button[cuiButton], a[cuiButton]", inputs: ["shape", "disabled", "isLoaderShown", "icon", "iconRight", "appearance", "size"] }, { kind: "ngmodule", type: CuiContextMenuModule }, { kind: "component", type: i2.CuiContextMenuComponent, selector: "cui-context-menu[items][target]", inputs: ["items", "target", "width", "withPaddings"] }, { kind: "directive", type: CuiElementDirective, selector: "[cuiElement]", exportAs: ["elementRef"] }, { kind: "directive", type: CuiLetDirective, selector: "[cuiLet]", inputs: ["cuiLet"] }, { kind: "directive", type: TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
61
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: CuiChecklistBlockComponent, isStandalone: true, selector: "cui-checklist-block, [cuiCheckListBlock]", inputs: { componentId: { classPropertyName: "componentId", publicName: "componentId", isSignal: true, isRequired: true, transformFunction: null }, config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: true, transformFunction: null } }, providers: [CuiCheckListBlockService], ngImport: i0, template: "<cui-content-wrapper\n *transloco=\"let t\"\n backgroundColor=\"var(--cui-base-10)\"\n [gap]=\"16\"\n>\n <ng-container *cuiLet=\"checkListItems() as checkListItems\">\n <header class=\"header\">\n <h2 class=\"heading\">{{ t('CHECKLIST') }}</h2>\n\n @if (checkListItems) {\n <span class=\"item\">{{ checkListItems?.length }} {{ t('ITEM_VARIANT') }}</span>\n }\n </header>\n <cui-content-wrapper>\n <cui-checklist-block-list [config]=\"config()\" />\n </cui-content-wrapper>\n <div>\n <button\n #actionButton=\"elementRef\"\n cuiElement\n cuiButton\n type=\"button\"\n appearance=\"flat\"\n size=\"xxs\"\n icon=\"cuiIconPlus\"\n >\n {{ t('ADD_NEW_ITEM') }}\n </button>\n <cui-context-menu\n [items]=\"CHECKLIST_BLOCK_SELECT_OPTIONS\"\n [target]=\"actionButton.nativeElement\"\n />\n </div>\n </ng-container>\n</cui-content-wrapper>\n", styles: [".header{display:flex;gap:12px;align-items:center;justify-content:space-between}.heading{font-weight:500;font-size:16px;line-height:24px}.item{font-weight:400;font-size:12px;line-height:14px;color:var(--cui-base-500)}\n"], dependencies: [{ kind: "component", type: CuiChecklistBlockListComponent, selector: "cui-checklist-block-list", inputs: ["config"] }, { kind: "component", type: CuiContentWrapperComponent, selector: "cui-content-wrapper, [cuiContentWrapper]", inputs: ["backgroundColor", "gap"] }, { kind: "ngmodule", type: CuiButtonModule }, { kind: "component", type: i1.CuiButtonComponent, selector: "button[cuiButton], a[cuiButton]", inputs: ["shape", "disabled", "isLoaderShown", "icon", "iconRight", "appearance", "theme", "size"] }, { kind: "ngmodule", type: CuiContextMenuModule }, { kind: "component", type: i2.CuiContextMenuComponent, selector: "cui-context-menu[items][target]", inputs: ["items", "target", "width", "withPaddings"] }, { kind: "directive", type: CuiElementDirective, selector: "[cuiElement]", exportAs: ["elementRef"] }, { kind: "directive", type: CuiLetDirective, selector: "[cuiLet]", inputs: ["cuiLet"] }, { kind: "directive", type: TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
62
62
  }
63
63
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CuiChecklistBlockComponent, decorators: [{
64
64
  type: Component,
@@ -72,4 +72,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
72
72
  TranslocoDirective
73
73
  ], standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, providers: [CuiCheckListBlockService], template: "<cui-content-wrapper\n *transloco=\"let t\"\n backgroundColor=\"var(--cui-base-10)\"\n [gap]=\"16\"\n>\n <ng-container *cuiLet=\"checkListItems() as checkListItems\">\n <header class=\"header\">\n <h2 class=\"heading\">{{ t('CHECKLIST') }}</h2>\n\n @if (checkListItems) {\n <span class=\"item\">{{ checkListItems?.length }} {{ t('ITEM_VARIANT') }}</span>\n }\n </header>\n <cui-content-wrapper>\n <cui-checklist-block-list [config]=\"config()\" />\n </cui-content-wrapper>\n <div>\n <button\n #actionButton=\"elementRef\"\n cuiElement\n cuiButton\n type=\"button\"\n appearance=\"flat\"\n size=\"xxs\"\n icon=\"cuiIconPlus\"\n >\n {{ t('ADD_NEW_ITEM') }}\n </button>\n <cui-context-menu\n [items]=\"CHECKLIST_BLOCK_SELECT_OPTIONS\"\n [target]=\"actionButton.nativeElement\"\n />\n </div>\n </ng-container>\n</cui-content-wrapper>\n", styles: [".header{display:flex;gap:12px;align-items:center;justify-content:space-between}.heading{font-weight:500;font-size:16px;line-height:24px}.item{font-weight:400;font-size:12px;line-height:14px;color:var(--cui-base-500)}\n"] }]
74
74
  }], ctorParameters: () => [] });
75
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tsaXN0LWJsb2NrLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvd2lkZ2V0cy9jaGVja2xpc3QtYmxvY2svY2hlY2tsaXN0LWJsb2NrLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvd2lkZ2V0cy9jaGVja2xpc3QtYmxvY2svY2hlY2tsaXN0LWJsb2NrLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsZUFBZSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFaEMsT0FBTyxFQUFFLDBCQUEwQixFQUFFLHVCQUF1QixFQUFtRCxNQUFNLGNBQWMsQ0FBQztBQUVwSSxPQUFPLEVBQUUsZUFBZSxFQUFFLG9CQUFvQixFQUFFLDBCQUEwQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFckcsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzlELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLFlBQVksQ0FBQzs7OztBQXFCdEQsTUFBTSxPQUFPLDBCQUEwQjtJQTRCbkM7UUEzQmlCLGVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDaEMseUJBQW9CLEdBQUcsTUFBTSxDQUFDLHVCQUF1QixDQUFDLENBQUM7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V0FDM0M7d0JBQ0wsOEJBQThCO3dCQUM5QiwwQkFBMEI7d0JBQzFCLGVBQWU7d0JBQ2Ysb0JBQW9CO3dCQUNwQixtQkFBbUI7d0JBQ25CLGVBQWU7d0JBQ2Ysa0JBQWtCO3FCQUNyQixjQUNXLElBQUksbUJBR0MsdUJBQXVCLENBQUMsTUFBTSxhQUNwQyxDQUFDLHdCQUF3QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRGVzdHJveVJlZiwgZWZmZWN0LCBpbmplY3QsIGlucHV0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IEN1aUVsZW1lbnREaXJlY3RpdmUsIEN1aUxldERpcmVjdGl2ZSB9IGZyb20gJ0BjdWJ5LXVpL2Nkayc7XG5pbXBvcnQgeyBUcmFuc2xvY29EaXJlY3RpdmUsIFRyYW5zbG9jb1NlcnZpY2UgfSBmcm9tICdAanN2ZXJzZS90cmFuc2xvY28nO1xuaW1wb3J0IHsgZmluYWxpemUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IH0gZnJvbSAnQGN1YnktdWkvYXBpJztcbmltcG9ydCB7IEN1aU5vZGVDaGVja2xpc3RBcGlTZXJ2aWNlLCBDdWlUcmVlU3RydWN0QXBpU2VydmljZSwgTm9kZUNoZWNrTGlzdEl0ZW0sIE5vZGVDaGVja0xpc3RJdGVtQ29udGVudFR5cGUgfSBmcm9tICdAY3VieS11aS9hcGknO1xuXG5pbXBvcnQgeyBDdWlCdXR0b25Nb2R1bGUsIEN1aUNvbnRleHRNZW51TW9kdWxlLCBDdWlDb250ZW50V3JhcHBlckNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMnO1xuaW1wb3J0IHsgQ3VpQ2hlY2tMaXN0QmxvY2tJdGVtVHlwZSB9IGZyb20gJy4vY2hlY2tsaXN0LWJsb2NrLm9wdGlvbnMnO1xuaW1wb3J0IHsgQ3VpQ2hlY2tsaXN0QmxvY2tMaXN0Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzJztcbmltcG9ydCB7IEN1aUNoZWNrTGlzdEJsb2NrU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMnO1xuaW1wb3J0IHsgQ3VpQ29udGV4dE1lbnVJdGVtIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBDdWlFZGl0b3JDb25maWcgfSBmcm9tICcuLi8uLi9lZGl0b3IvaW50ZXJmYWNlcyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnY3VpLWNoZWNrbGlzdC1ibG9jaywgW2N1aUNoZWNrTGlzdEJsb2NrXScsXG4gICAgaW1wb3J0czogW1xuICAgICAgICBDdWlDaGVja2xpc3RCbG9ja0xpc3RDb21wb25lbnQsXG4gICAgICAgIEN1aUNvbnRlbnRXcmFwcGVyQ29tcG9uZW50LFxuICAgICAgICBDdWlCdXR0b25Nb2R1bGUsXG4gICAgICAgIEN1aUNvbnRleHRNZW51TW9kdWxlLFxuICAgICAgICBDdWlFbGVtZW50RGlyZWN0aXZlLFxuICAgICAgICBDdWlMZXREaXJlY3RpdmUsXG4gICAgICAgIFRyYW5zbG9jb0RpcmVjdGl2ZVxuICAgIF0sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vY2hlY2tsaXN0LWJsb2NrLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9jaGVja2xpc3QtYmxvY2suY29tcG9uZW50LnNjc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFtDdWlDaGVja0xpc3RCbG9ja1NlcnZpY2VdXG59KVxuZXhwb3J0IGNsYXNzIEN1aUNoZWNrbGlzdEJsb2NrQ29tcG9uZW50IHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XG4gICAgcHJpdmF0ZSByZWFkb25seSB0cmVlU3RydWN0QXBpU2VydmljZSA9IGluamVjdChDdWlUcmVlU3RydWN0QXBpU2VydmljZSk7XG4gICAgcHJpdmF0ZSByZWFkb25seSB0cmFuc2xvY29TZXJ2aWNlID0gaW5qZWN0KFRyYW5zbG9jb1NlcnZpY2UpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgbm9kZUNoZWNrTGlzdEFwaVNlcnZpY2UgPSBpbmplY3QoQ3VpTm9kZUNoZWNrbGlzdEFwaVNlcnZpY2UpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgY2hlY2tMaXN0QmxvY2tTZXJ2aWNlID0gaW5qZWN0KEN1aUNoZWNrTGlzdEJsb2NrU2VydmljZSk7XG5cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgQ0hFQ0tMSVNUX0JMT0NLX1NFTEVDVF9PUFRJT05TOiBDdWlDb250ZXh0TWVudUl0ZW1bXSA9IFtcbiAgICAgICAge1xuICAgICAgICAgICAgbGFiZWw6IHRoaXMudHJhbnNsb2NvU2VydmljZS50cmFuc2xhdGUoJ0FTU0lHTkVFX0FQUFJPVkFMJyksXG4gICAgICAgICAgICBjb21tYW5kOiAoKSA9PiB0aGlzLmFkZENoZWNrTGlzdEl0ZW0oQ3VpQ2hlY2tMaXN0QmxvY2tJdGVtVHlwZS5XSVRIT1VUX1ZFUklGSUNBVElPTilcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgbGFiZWw6IHRoaXMudHJhbnNsb2NvU2VydmljZS50cmFuc2xhdGUoJ0RPVUJMRV9DSEVDS19BUFBST1ZBTCcpLFxuICAgICAgICAgICAgY29tbWFuZDogKCkgPT4gdGhpcy5hZGRDaGVja0xpc3RJdGVtKEN1aUNoZWNrTGlzdEJsb2NrSXRlbVR5cGUuV0lUSF9WRVJJRklDQVRJT04pXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIGxhYmVsOiB0aGlzLnRyYW5zbG9jb1NlcnZpY2UudHJhbnNsYXRlKCdFVkFMVUFUSU9OX09QVElPTlMnKSxcbiAgICAgICAgICAgIGNvbW1hbmQ6ICgpID0+IHRoaXMuYWRkQ2hlY2tMaXN0SXRlbShDdWlDaGVja0xpc3RCbG9ja0l0ZW1UeXBlLkVWQUxVQVRJT04pXG4gICAgICAgIH1cbiAgICBdO1xuXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGNoZWNrTGlzdEl0ZW1zID0gdGhpcy5jaGVja0xpc3RCbG9ja1NlcnZpY2UuY2hlY2tMaXN0SXRlbXM7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGlzTG9hZGluZyA9IHNpZ25hbDxib29sZWFuPihmYWxzZSk7XG5cbiAgICBwdWJsaWMgcmVhZG9ubHkgY29tcG9uZW50SWQgPSBpbnB1dC5yZXF1aXJlZDxzdHJpbmc+KCk7XG4gICAgcHVibGljIHJlYWRvbmx5IGNvbmZpZyA9IGlucHV0LnJlcXVpcmVkPEN1aUVkaXRvckNvbmZpZz4oKTtcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLmluaXROb2RlQ2hlY2tMaXN0QmxvY2soKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGluaXROb2RlQ2hlY2tMaXN0QmxvY2soKTogdm9pZCB7XG4gICAgICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmNoZWNrTGlzdEJsb2NrU2VydmljZS5zZXRDb21wb25lbnRJZCh0aGlzLmNvbXBvbmVudElkKCkpO1xuICAgICAgICAgICAgdGhpcy50cmVlU3RydWN0QXBpU2VydmljZVxuICAgICAgICAgICAgICAgIC5nZXRCeUlkPE5vZGVDaGVja0xpc3RJdGVtPE5vZGVDaGVja0xpc3RJdGVtQ29udGVudFR5cGU+Pih0aGlzLmNvbXBvbmVudElkKCkpXG4gICAgICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZikpXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZSgodHJlZVN0cnVjdCkgPT4gdGhpcy5jaGVja0xpc3RCbG9ja1NlcnZpY2Uuc2V0Q2hlY2tMaXN0SXRlbXModHJlZVN0cnVjdC5lbGVtZW50cykpO1xuICAgICAgICB9LCB7IGFsbG93U2lnbmFsV3JpdGVzOiB0cnVlIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgYWRkQ2hlY2tMaXN0SXRlbSh0eXBlOiBDdWlDaGVja0xpc3RCbG9ja0l0ZW1UeXBlKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaXNMb2FkaW5nLnNldCh0cnVlKTtcbiAgICAgICAgdGhpcy5ub2RlQ2hlY2tMaXN0QXBpU2VydmljZVxuICAgICAgICAgICAgLmFkZE5vZGVDaGVja0xpc3RJdGVtKHtcbiAgICAgICAgICAgICAgICB0cmVlU3RydWN0Q29udGFpbmVyQ2hlY2tMaXN0SWQ6IHRoaXMuY29tcG9uZW50SWQoKSxcbiAgICAgICAgICAgICAgICB0aXRsZTogJ05ldyBjaGVja2xpc3QgaXRlbScsXG4gICAgICAgICAgICAgICAgdHlwZV9vcGVyYXRpb25zOiB0eXBlXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZiksIGZpbmFsaXplKCgpID0+IHRoaXMuaXNMb2FkaW5nLnNldChmYWxzZSkpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoY2hlY2tMaXN0SXRlbSkgPT4gdGhpcy5jaGVja0xpc3RCbG9ja1NlcnZpY2UuYWRkQ2hlY2tMaXN0SXRlbShjaGVja0xpc3RJdGVtKSk7XG4gICAgfVxufVxuIiwiPGN1aS1jb250ZW50LXdyYXBwZXJcbiAgICAqdHJhbnNsb2NvPVwibGV0IHRcIlxuICAgIGJhY2tncm91bmRDb2xvcj1cInZhcigtLWN1aS1iYXNlLTEwKVwiXG4gICAgW2dhcF09XCIxNlwiXG4+XG4gICAgPG5nLWNvbnRhaW5lciAqY3VpTGV0PVwiY2hlY2tMaXN0SXRlbXMoKSBhcyBjaGVja0xpc3RJdGVtc1wiPlxuICAgICAgICA8aGVhZGVyIGNsYXNzPVwiaGVhZGVyXCI+XG4gICAgICAgICAgICA8aDIgY2xhc3M9XCJoZWFkaW5nXCI+e3sgdCgnQ0hFQ0tMSVNUJykgfX08L2gyPlxuXG4gICAgICAgICAgICBAaWYgKGNoZWNrTGlzdEl0ZW1zKSB7XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJpdGVtXCI+e3sgY2hlY2tMaXN0SXRlbXM/Lmxlbmd0aCB9fSB7eyB0KCdJVEVNX1ZBUklBTlQnKSB9fTwvc3Bhbj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9oZWFkZXI+XG4gICAgICAgIDxjdWktY29udGVudC13cmFwcGVyPlxuICAgICAgICAgICAgPGN1aS1jaGVja2xpc3QtYmxvY2stbGlzdCBbY29uZmlnXT1cImNvbmZpZygpXCIgLz5cbiAgICAgICAgPC9jdWktY29udGVudC13cmFwcGVyPlxuICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICNhY3Rpb25CdXR0b249XCJlbGVtZW50UmVmXCJcbiAgICAgICAgICAgICAgICBjdWlFbGVtZW50XG4gICAgICAgICAgICAgICAgY3VpQnV0dG9uXG4gICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgYXBwZWFyYW5jZT1cImZsYXRcIlxuICAgICAgICAgICAgICAgIHNpemU9XCJ4eHNcIlxuICAgICAgICAgICAgICAgIGljb249XCJjdWlJY29uUGx1c1wiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge3sgdCgnQUREX05FV19JVEVNJykgfX1cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPGN1aS1jb250ZXh0LW1lbnVcbiAgICAgICAgICAgICAgICBbaXRlbXNdPVwiQ0hFQ0tMSVNUX0JMT0NLX1NFTEVDVF9PUFRJT05TXCJcbiAgICAgICAgICAgICAgICBbdGFyZ2V0XT1cImFjdGlvbkJ1dHRvbi5uYXRpdmVFbGVtZW50XCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuPC9jdWktY29udGVudC13cmFwcGVyPlxuIl19
75
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tsaXN0LWJsb2NrLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvd2lkZ2V0cy9jaGVja2xpc3QtYmxvY2svY2hlY2tsaXN0LWJsb2NrLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvd2lkZ2V0cy9jaGVja2xpc3QtYmxvY2svY2hlY2tsaXN0LWJsb2NrLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsZUFBZSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFaEMsT0FBTyxFQUFFLDBCQUEwQixFQUFFLHVCQUF1QixFQUFtRCxNQUFNLGNBQWMsQ0FBQztBQUVwSSxPQUFPLEVBQUUsZUFBZSxFQUFFLG9CQUFvQixFQUFFLDBCQUEwQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFckcsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzlELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLFlBQVksQ0FBQzs7OztBQXFCdEQsTUFBTSxPQUFPLDBCQUEwQjtJQTRCbkM7UUEzQmlCLGVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDaEMseUJBQW9CLEdBQUcsTUFBTSxDQUFDLHVCQUF1QixDQUFDLENBQUM7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V0FDM0M7d0JBQ0wsOEJBQThCO3dCQUM5QiwwQkFBMEI7d0JBQzFCLGVBQWU7d0JBQ2Ysb0JBQW9CO3dCQUNwQixtQkFBbUI7d0JBQ25CLGVBQWU7d0JBQ2Ysa0JBQWtCO3FCQUNyQixjQUNXLElBQUksbUJBR0MsdUJBQXVCLENBQUMsTUFBTSxhQUNwQyxDQUFDLHdCQUF3QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRGVzdHJveVJlZiwgZWZmZWN0LCBpbmplY3QsIGlucHV0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IEN1aUVsZW1lbnREaXJlY3RpdmUsIEN1aUxldERpcmVjdGl2ZSB9IGZyb20gJ0BjdWJ5LXVpL2Nkayc7XG5pbXBvcnQgeyBUcmFuc2xvY29EaXJlY3RpdmUsIFRyYW5zbG9jb1NlcnZpY2UgfSBmcm9tICdAanN2ZXJzZS90cmFuc2xvY28nO1xuaW1wb3J0IHsgZmluYWxpemUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IH0gZnJvbSAnQGN1YnktdWkvYXBpJztcbmltcG9ydCB7IEN1aU5vZGVDaGVja2xpc3RBcGlTZXJ2aWNlLCBDdWlUcmVlU3RydWN0QXBpU2VydmljZSwgTm9kZUNoZWNrTGlzdEl0ZW0sIE5vZGVDaGVja0xpc3RJdGVtQ29udGVudFR5cGUgfSBmcm9tICdAY3VieS11aS9hcGknO1xuXG5pbXBvcnQgeyBDdWlCdXR0b25Nb2R1bGUsIEN1aUNvbnRleHRNZW51TW9kdWxlLCBDdWlDb250ZW50V3JhcHBlckNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMnO1xuaW1wb3J0IHsgQ3VpQ2hlY2tMaXN0QmxvY2tJdGVtVHlwZSB9IGZyb20gJy4vY2hlY2tsaXN0LWJsb2NrLm9wdGlvbnMnO1xuaW1wb3J0IHsgQ3VpQ2hlY2tsaXN0QmxvY2tMaXN0Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzJztcbmltcG9ydCB7IEN1aUNoZWNrTGlzdEJsb2NrU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMnO1xuaW1wb3J0IHsgQ3VpQ29udGV4dE1lbnVJdGVtIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBDdWlFZGl0b3JDb25maWcgfSBmcm9tICcuLi8uLi9lZGl0b3IvaW50ZXJmYWNlcyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnY3VpLWNoZWNrbGlzdC1ibG9jaywgW2N1aUNoZWNrTGlzdEJsb2NrXScsXG4gICAgaW1wb3J0czogW1xuICAgICAgICBDdWlDaGVja2xpc3RCbG9ja0xpc3RDb21wb25lbnQsXG4gICAgICAgIEN1aUNvbnRlbnRXcmFwcGVyQ29tcG9uZW50LFxuICAgICAgICBDdWlCdXR0b25Nb2R1bGUsXG4gICAgICAgIEN1aUNvbnRleHRNZW51TW9kdWxlLFxuICAgICAgICBDdWlFbGVtZW50RGlyZWN0aXZlLFxuICAgICAgICBDdWlMZXREaXJlY3RpdmUsXG4gICAgICAgIFRyYW5zbG9jb0RpcmVjdGl2ZVxuICAgIF0sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vY2hlY2tsaXN0LWJsb2NrLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9jaGVja2xpc3QtYmxvY2suY29tcG9uZW50LnNjc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFtDdWlDaGVja0xpc3RCbG9ja1NlcnZpY2VdXG59KVxuZXhwb3J0IGNsYXNzIEN1aUNoZWNrbGlzdEJsb2NrQ29tcG9uZW50IHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XG4gICAgcHJpdmF0ZSByZWFkb25seSB0cmVlU3RydWN0QXBpU2VydmljZSA9IGluamVjdChDdWlUcmVlU3RydWN0QXBpU2VydmljZSk7XG4gICAgcHJpdmF0ZSByZWFkb25seSB0cmFuc2xvY29TZXJ2aWNlID0gaW5qZWN0KFRyYW5zbG9jb1NlcnZpY2UpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgbm9kZUNoZWNrTGlzdEFwaVNlcnZpY2UgPSBpbmplY3QoQ3VpTm9kZUNoZWNrbGlzdEFwaVNlcnZpY2UpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgY2hlY2tMaXN0QmxvY2tTZXJ2aWNlID0gaW5qZWN0KEN1aUNoZWNrTGlzdEJsb2NrU2VydmljZSk7XG5cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgQ0hFQ0tMSVNUX0JMT0NLX1NFTEVDVF9PUFRJT05TOiBDdWlDb250ZXh0TWVudUl0ZW1bXSA9IFtcbiAgICAgICAge1xuICAgICAgICAgICAgbGFiZWw6IHRoaXMudHJhbnNsb2NvU2VydmljZS50cmFuc2xhdGUoJ0FTU0lHTkVFX0FQUFJPVkFMJyksXG4gICAgICAgICAgICBjb21tYW5kOiAoKSA9PiB0aGlzLmFkZENoZWNrTGlzdEl0ZW0oQ3VpQ2hlY2tMaXN0QmxvY2tJdGVtVHlwZS5XSVRIT1VUX1ZFUklGSUNBVElPTilcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgbGFiZWw6IHRoaXMudHJhbnNsb2NvU2VydmljZS50cmFuc2xhdGUoJ0RPVUJMRV9DSEVDS19BUFBST1ZBTCcpLFxuICAgICAgICAgICAgY29tbWFuZDogKCkgPT4gdGhpcy5hZGRDaGVja0xpc3RJdGVtKEN1aUNoZWNrTGlzdEJsb2NrSXRlbVR5cGUuV0lUSF9WRVJJRklDQVRJT04pXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIGxhYmVsOiB0aGlzLnRyYW5zbG9jb1NlcnZpY2UudHJhbnNsYXRlKCdFVkFMVUFUSU9OX09QVElPTlMnKSxcbiAgICAgICAgICAgIGNvbW1hbmQ6ICgpID0+IHRoaXMuYWRkQ2hlY2tMaXN0SXRlbShDdWlDaGVja0xpc3RCbG9ja0l0ZW1UeXBlLkVWQUxVQVRJT04pXG4gICAgICAgIH1cbiAgICBdO1xuXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGNoZWNrTGlzdEl0ZW1zID0gdGhpcy5jaGVja0xpc3RCbG9ja1NlcnZpY2UuY2hlY2tMaXN0SXRlbXM7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGlzTG9hZGluZyA9IHNpZ25hbDxib29sZWFuPihmYWxzZSk7XG5cbiAgICBwdWJsaWMgcmVhZG9ubHkgY29tcG9uZW50SWQgPSBpbnB1dC5yZXF1aXJlZDxzdHJpbmc+KCk7XG4gICAgcHVibGljIHJlYWRvbmx5IGNvbmZpZyA9IGlucHV0LnJlcXVpcmVkPEN1aUVkaXRvckNvbmZpZz4oKTtcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLmluaXROb2RlQ2hlY2tMaXN0QmxvY2soKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGluaXROb2RlQ2hlY2tMaXN0QmxvY2soKTogdm9pZCB7XG4gICAgICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmNoZWNrTGlzdEJsb2NrU2VydmljZS5zZXRDb21wb25lbnRJZCh0aGlzLmNvbXBvbmVudElkKCkpO1xuICAgICAgICAgICAgdGhpcy50cmVlU3RydWN0QXBpU2VydmljZVxuICAgICAgICAgICAgICAgIC5nZXRCeUlkPE5vZGVDaGVja0xpc3RJdGVtPE5vZGVDaGVja0xpc3RJdGVtQ29udGVudFR5cGU+Pih0aGlzLmNvbXBvbmVudElkKCkpXG4gICAgICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZikpXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZSgodHJlZVN0cnVjdCkgPT4gdGhpcy5jaGVja0xpc3RCbG9ja1NlcnZpY2Uuc2V0Q2hlY2tMaXN0SXRlbXModHJlZVN0cnVjdC5lbGVtZW50cykpO1xuICAgICAgICB9LCB7IGFsbG93U2lnbmFsV3JpdGVzOiB0cnVlIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgYWRkQ2hlY2tMaXN0SXRlbSh0eXBlOiBDdWlDaGVja0xpc3RCbG9ja0l0ZW1UeXBlKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaXNMb2FkaW5nLnNldCh0cnVlKTtcbiAgICAgICAgdGhpcy5ub2RlQ2hlY2tMaXN0QXBpU2VydmljZVxuICAgICAgICAgICAgLmFkZE5vZGVDaGVja0xpc3RJdGVtKHtcbiAgICAgICAgICAgICAgICB0cmVlU3RydWN0Q29udGFpbmVyQ2hlY2tMaXN0SWQ6IHRoaXMuY29tcG9uZW50SWQoKSxcbiAgICAgICAgICAgICAgICB0aXRsZTogJ05ldyBjaGVja2xpc3QgaXRlbScsXG4gICAgICAgICAgICAgICAgdHlwZV9vcGVyYXRpb25zOiB0eXBlXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZiksIGZpbmFsaXplKCgpID0+IHRoaXMuaXNMb2FkaW5nLnNldChmYWxzZSkpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoY2hlY2tMaXN0SXRlbSkgPT4gdGhpcy5jaGVja0xpc3RCbG9ja1NlcnZpY2UuYWRkQ2hlY2tMaXN0SXRlbShjaGVja0xpc3RJdGVtKSk7XG4gICAgfVxufVxuIiwiPGN1aS1jb250ZW50LXdyYXBwZXJcbiAgICAqdHJhbnNsb2NvPVwibGV0IHRcIlxuICAgIGJhY2tncm91bmRDb2xvcj1cInZhcigtLWN1aS1iYXNlLTEwKVwiXG4gICAgW2dhcF09XCIxNlwiXG4+XG4gICAgPG5nLWNvbnRhaW5lciAqY3VpTGV0PVwiY2hlY2tMaXN0SXRlbXMoKSBhcyBjaGVja0xpc3RJdGVtc1wiPlxuICAgICAgICA8aGVhZGVyIGNsYXNzPVwiaGVhZGVyXCI+XG4gICAgICAgICAgICA8aDIgY2xhc3M9XCJoZWFkaW5nXCI+e3sgdCgnQ0hFQ0tMSVNUJykgfX08L2gyPlxuXG4gICAgICAgICAgICBAaWYgKGNoZWNrTGlzdEl0ZW1zKSB7XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJpdGVtXCI+e3sgY2hlY2tMaXN0SXRlbXM/Lmxlbmd0aCB9fSB7eyB0KCdJVEVNX1ZBUklBTlQnKSB9fTwvc3Bhbj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9oZWFkZXI+XG4gICAgICAgIDxjdWktY29udGVudC13cmFwcGVyPlxuICAgICAgICAgICAgPGN1aS1jaGVja2xpc3QtYmxvY2stbGlzdCBbY29uZmlnXT1cImNvbmZpZygpXCIgLz5cbiAgICAgICAgPC9jdWktY29udGVudC13cmFwcGVyPlxuICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICNhY3Rpb25CdXR0b249XCJlbGVtZW50UmVmXCJcbiAgICAgICAgICAgICAgICBjdWlFbGVtZW50XG4gICAgICAgICAgICAgICAgY3VpQnV0dG9uXG4gICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgYXBwZWFyYW5jZT1cImZsYXRcIlxuICAgICAgICAgICAgICAgIHNpemU9XCJ4eHNcIlxuICAgICAgICAgICAgICAgIGljb249XCJjdWlJY29uUGx1c1wiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge3sgdCgnQUREX05FV19JVEVNJykgfX1cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPGN1aS1jb250ZXh0LW1lbnVcbiAgICAgICAgICAgICAgICBbaXRlbXNdPVwiQ0hFQ0tMSVNUX0JMT0NLX1NFTEVDVF9PUFRJT05TXCJcbiAgICAgICAgICAgICAgICBbdGFyZ2V0XT1cImFjdGlvbkJ1dHRvbi5uYXRpdmVFbGVtZW50XCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuPC9jdWktY29udGVudC13cmFwcGVyPlxuIl19