{"ast":null,"code":"import * as i0 from '@angular/core';\nimport { Injectable, TemplateRef, Component, ContentChild, Input, EventEmitter, Directive, ContentChildren, Output, InjectionToken, ChangeDetectionStrategy, ViewEncapsulation, Inject, Injector, ChangeDetectorRef, inject, Pipe, NgModule, Attribute, ViewChild, ComponentFactoryResolver, ElementRef, PLATFORM_ID, Optional as Optional$1 } from '@angular/core';\nimport * as i4 from '@angular/common';\nimport { CommonModule, isPlatformBrowser } from '@angular/common';\nimport { RandomIdGenerator, EntityId, hermesMap, hermesFilter, hermesTake, hermesSwitchMap, ReadModelRootId, AggregateId, Reactive, Archive, HermesSubject, hermesTakeUntil, Command, DomainEvent, CommandDispatcher, CoreContainer, DomainEventBus, EventRepository, AggregateArchive, singleFromObservable, HermesReplaySubject, hermesDistinctUntilChanged, AggregateEvent, DomainEventPublisher, ReadModelObject, DomainInitializer, FeatureModule, Entity, RandomStringGenerator, HermesId, InMemoryStore, InMemoryAggregateStore, AggregateRepository, ReadModelEntity, ReadModelEntityId, ReadModelRoot, InMemoryReadModelStore, ReadModelRootRepository, Optional, AggregateRoot, KeyMap, AggregateFactory, hermesFromEvent, fromRxJsObservable, hermesEmpty, hermesTimer, toRxJsObservable, createContainer, DomainObject, EventDrivenRepository, CreateAggregateCommand, COMMAND_LOGGER_ENABLED, EVENT_LOGGER_ENABLED, runHermes, initHermesApi } from '@generic-ui/hermes';\nimport * as i1 from '@angular/platform-browser';\nimport * as i1$1 from '@generic-ui/fabric';\nimport { FabricModule, Theme, Placement, FabricPlacement, FabricBadgeModule, FabricButtonModule, FabricButtonGroupModule, FabricCheckboxModule, FabricChipModule, FabricDrawerModule, FabricDropdownModule, FabricRadioButtonModule, FabricRadioGroupModule, FabricProgressBarModule, FabricProgressSpinnerModule, FabricSelectModule, FabricSpinnerModule, FabricTabModule, FabricTooltipModule, FabricToggleButtonModule, FabricInputModule, FabricDialogModule, FabricInlineDialogModule, FabricModalThemeService, FabricDatePickerModule } from '@generic-ui/fabric';\nimport { __decorate } from 'tslib';\nimport * as i1$2 from '@angular/forms';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { debounceTime, throttleTime, flatMap } from 'rxjs/operators';\nimport { Observable, combineLatest, zip } from 'rxjs';\nconst _c0 = [\"gui-row-detail\", \"\"];\nconst _c1 = [\"gui-paging-navigator\", \"\", \"paging\", \"\"];\nconst _c2 = [\"gui-paging-select\", \"\", \"paging\", \"\"];\nconst _c3 = [\"gui-paging-stats\", \"\", \"paging\", \"\"];\nfunction PagingStatsComponent_ng_container_0_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵelementStart(1, \"span\", 2)(2, \"span\");\n i0.ɵɵtext(3);\n i0.ɵɵelementEnd();\n i0.ɵɵtext(4, \" - \");\n i0.ɵɵelementStart(5, \"span\");\n i0.ɵɵtext(6);\n i0.ɵɵelementEnd()();\n i0.ɵɵelementStart(7, \"span\");\n i0.ɵɵtext(8);\n i0.ɵɵpipe(9, \"guiTranslate\");\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(10, \"span\", 3);\n i0.ɵɵtext(11);\n i0.ɵɵelementEnd();\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵadvance(3);\n i0.ɵɵtextInterpolate(ctx_r0.firstItemIndex);\n i0.ɵɵadvance(3);\n i0.ɵɵtextInterpolate(ctx_r0.lastItemIndex);\n i0.ɵɵadvance(2);\n i0.ɵɵtextInterpolate1(\" \", i0.ɵɵpipeBind1(9, 4, \"pagingOf\"), \" \");\n i0.ɵɵadvance(3);\n i0.ɵɵtextInterpolate1(\" \", ctx_r0.sourceSize, \" \");\n }\n}\nfunction PagingStatsComponent_ng_template_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"span\", 4);\n i0.ɵɵtext(1);\n i0.ɵɵpipe(2, \"guiTranslate\");\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate1(\" \", i0.ɵɵpipeBind1(2, 1, \"pagingNoItems\"), \" \");\n }\n}\nconst _c4 = [\"gui-paging-alternative-navigator\", \"\", \"paging\", \"\", \"sourceSize\", \"\"];\nconst _c5 = [\"*\"];\nconst _c6 = [\"gui-paging-alternative-pages\", \"\", \"paging\", \"\"];\nfunction AlternativePagingPagesComponent_ng_container_0_div_1_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"div\")(1, \"div\", 3)(2, \"div\", 4);\n i0.ɵɵlistener(\"click\", function AlternativePagingPagesComponent_ng_container_0_div_1_Template_div_click_2_listener() {\n const page_r2 = i0.ɵɵrestoreView(_r1).$implicit;\n const ctx_r2 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r2.goToPage(page_r2));\n });\n i0.ɵɵtext(3);\n i0.ɵɵelementEnd()()();\n }\n if (rf & 2) {\n const page_r2 = ctx.$implicit;\n const ctx_r2 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance();\n i0.ɵɵclassProp(\"gui-paging-active-page\", ctx_r2.activePage(page_r2))(\"gui-paging-visible-page\", ctx_r2.calculateVisiblePages(page_r2));\n i0.ɵɵadvance(2);\n i0.ɵɵtextInterpolate1(\" \", page_r2, \" \");\n }\n}\nfunction AlternativePagingPagesComponent_ng_container_0_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, AlternativePagingPagesComponent_ng_container_0_div_1_Template, 4, 5, \"div\", 2);\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const ctx_r2 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngForOf\", ctx_r2.pages);\n }\n}\nfunction AlternativePagingPagesComponent_ng_template_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"span\", 5);\n i0.ɵɵtext(1);\n i0.ɵɵpipe(2, \"guiTranslate\");\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate1(\" \", i0.ɵɵpipeBind1(2, 1, \"pagingNoItems\"), \" \");\n }\n}\nconst _c7 = [\"gui-paging\", \"\", \"position\", \"\"];\nfunction PagingComponent_ng_container_0_ng_container_1_ng_container_1_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵelementStart(1, \"div\", 4);\n i0.ɵɵlistener(\"pageSizeChanged\", function PagingComponent_ng_container_0_ng_container_1_ng_container_1_Template_div_pageSizeChanged_1_listener($event) {\n i0.ɵɵrestoreView(_r1);\n const ctx_r1 = i0.ɵɵnextContext(3);\n return i0.ɵɵresetView(ctx_r1.changePageSize($event));\n });\n i0.ɵɵelementEnd();\n i0.ɵɵelement(2, \"div\", 5);\n i0.ɵɵelementStart(3, \"div\", 6);\n i0.ɵɵlistener(\"nextPageChanged\", function PagingComponent_ng_container_0_ng_container_1_ng_container_1_Template_div_nextPageChanged_3_listener() {\n i0.ɵɵrestoreView(_r1);\n const localState_r3 = i0.ɵɵnextContext(2).$implicit;\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.nextPage(localState_r3.sourceSize));\n })(\"prevPageChanged\", function PagingComponent_ng_container_0_ng_container_1_ng_container_1_Template_div_prevPageChanged_3_listener() {\n i0.ɵɵrestoreView(_r1);\n const ctx_r1 = i0.ɵɵnextContext(3);\n return i0.ɵɵresetView(ctx_r1.prevPage());\n });\n i0.ɵɵelementEnd();\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const localState_r3 = i0.ɵɵnextContext(2).$implicit;\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"paging\", localState_r3.paging);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"paging\", localState_r3.paging);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"paging\", localState_r3.paging)(\"sourceSize\", localState_r3.sourceSize);\n }\n}\nfunction PagingComponent_ng_container_0_ng_container_1_ng_template_2_Template(rf, ctx) {\n if (rf & 1) {\n const _r4 = i0.ɵɵgetCurrentView();\n i0.ɵɵelement(0, \"div\", 5);\n i0.ɵɵelementStart(1, \"div\", 6);\n i0.ɵɵlistener(\"nextPageChanged\", function PagingComponent_ng_container_0_ng_container_1_ng_template_2_Template_div_nextPageChanged_1_listener() {\n i0.ɵɵrestoreView(_r4);\n const localState_r3 = i0.ɵɵnextContext(2).$implicit;\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.nextPage(localState_r3.sourceSize));\n })(\"prevPageChanged\", function PagingComponent_ng_container_0_ng_container_1_ng_template_2_Template_div_prevPageChanged_1_listener() {\n i0.ɵɵrestoreView(_r4);\n const ctx_r1 = i0.ɵɵnextContext(3);\n return i0.ɵɵresetView(ctx_r1.prevPage());\n });\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const localState_r3 = i0.ɵɵnextContext(2).$implicit;\n i0.ɵɵproperty(\"paging\", localState_r3.paging);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"paging\", localState_r3.paging)(\"sourceSize\", localState_r3.sourceSize);\n }\n}\nfunction PagingComponent_ng_container_0_ng_container_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, PagingComponent_ng_container_0_ng_container_1_ng_container_1_Template, 4, 4, \"ng-container\", 3)(2, PagingComponent_ng_container_0_ng_container_1_ng_template_2_Template, 2, 3, \"ng-template\", null, 0, i0.ɵɵtemplateRefExtractor);\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const minimalTemplate_r5 = i0.ɵɵreference(3);\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx_r1.minimal)(\"ngIfElse\", minimalTemplate_r5);\n }\n}\nfunction PagingComponent_ng_container_0_ng_container_2_Template(rf, ctx) {\n if (rf & 1) {\n const _r6 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵelementStart(1, \"div\", 4);\n i0.ɵɵlistener(\"pageSizeChanged\", function PagingComponent_ng_container_0_ng_container_2_Template_div_pageSizeChanged_1_listener($event) {\n i0.ɵɵrestoreView(_r6);\n const ctx_r1 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r1.changePageSize($event));\n });\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(2, \"div\", 7);\n i0.ɵɵlistener(\"nextPageChanged\", function PagingComponent_ng_container_0_ng_container_2_Template_div_nextPageChanged_2_listener() {\n i0.ɵɵrestoreView(_r6);\n const localState_r3 = i0.ɵɵnextContext().$implicit;\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.nextPage(localState_r3.sourceSize));\n })(\"prevPageChanged\", function PagingComponent_ng_container_0_ng_container_2_Template_div_prevPageChanged_2_listener() {\n i0.ɵɵrestoreView(_r6);\n const ctx_r1 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r1.prevPage());\n });\n i0.ɵɵelement(3, \"div\", 8);\n i0.ɵɵelementEnd();\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const localState_r3 = i0.ɵɵnextContext().$implicit;\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"paging\", localState_r3.paging);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"paging\", localState_r3.paging)(\"sourceSize\", localState_r3.sourceSize);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"paging\", localState_r3.paging)(\"sourceSize\", localState_r3.sourceSize);\n }\n}\nfunction PagingComponent_ng_container_0_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, PagingComponent_ng_container_0_ng_container_1_Template, 4, 2, \"ng-container\", 2)(2, PagingComponent_ng_container_0_ng_container_2_Template, 4, 5, \"ng-container\", 2);\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const localState_r3 = ctx.$implicit;\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", localState_r3.isPagingVisible && !localState_r3.alternativeDisplay);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", localState_r3.isPagingVisible && localState_r3.alternativeDisplay);\n }\n}\nconst _c8 = [\"value\", \"\"];\nfunction BarViewComponent_gui_percentage_view_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"gui-percentage-view\", 3);\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"value\", ctx_r0.value);\n }\n}\nfunction TextViewComponent_ng_container_0_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵelement(1, \"span\", 2);\n i0.ɵɵpipe(2, \"guiSafe\");\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"innerHTML\", i0.ɵɵpipeBind2(2, 1, ctx_r0.value.value, \"html\"), i0.ɵɵsanitizeHtml);\n }\n}\nfunction TextViewComponent_ng_template_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"span\");\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate1(\" \", ctx_r0.value.value, \" \");\n }\n}\nconst _c9 = [\"text\"];\nconst _c10 = [\"number\"];\nconst _c11 = [\"chip\"];\nconst _c12 = [\"link\"];\nconst _c13 = [\"image\"];\nconst _c14 = [\"checkbox\"];\nconst _c15 = [\"bold\"];\nconst _c16 = [\"italic\"];\nconst _c17 = [\"custom\"];\nconst _c18 = [\"function\"];\nconst _c19 = [\"html\"];\nconst _c20 = [\"date\"];\nconst _c21 = [\"bar\"];\nconst _c22 = [\"percentageBar\"];\nconst _c23 = [\"percentage\"];\nfunction ViewTemplatesComponent_ng_template_0_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"gui-view-text\", 15);\n }\n if (rf & 2) {\n const element_r1 = ctx.element;\n i0.ɵɵproperty(\"value\", element_r1);\n }\n}\nfunction ViewTemplatesComponent_ng_template_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"span\", 16);\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const element_r2 = ctx.element;\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate1(\" \", element_r2.value, \" \");\n }\n}\nfunction ViewTemplatesComponent_ng_template_4_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"gui-chip\");\n i0.ɵɵelement(1, \"gui-view-text\", 15);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const element_r3 = ctx.element;\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"value\", element_r3);\n }\n}\nfunction ViewTemplatesComponent_ng_template_6_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"a\", 17);\n i0.ɵɵelement(1, \"gui-view-text\", 15);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const element_r4 = ctx.element;\n i0.ɵɵpropertyInterpolate(\"href\", element_r4.value, i0.ɵɵsanitizeUrl);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"value\", element_r4);\n }\n}\nfunction ViewTemplatesComponent_ng_template_8_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"img\", 18);\n }\n if (rf & 2) {\n const element_r5 = ctx.element;\n i0.ɵɵpropertyInterpolate(\"src\", element_r5.value, i0.ɵɵsanitizeUrl);\n }\n}\nfunction ViewTemplatesComponent_ng_template_10_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"span\", 19);\n i0.ɵɵelement(1, \"gui-checkbox\", 20);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const element_r6 = ctx.element;\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"checked\", !!element_r6.value)(\"disabled\", true);\n }\n}\nfunction ViewTemplatesComponent_ng_template_12_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"gui-view-text\", 21);\n }\n if (rf & 2) {\n const element_r7 = ctx.element;\n i0.ɵɵproperty(\"value\", element_r7);\n }\n}\nfunction ViewTemplatesComponent_ng_template_14_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"gui-view-text\", 22);\n }\n if (rf & 2) {\n const element_r8 = ctx.element;\n i0.ɵɵproperty(\"value\", element_r8);\n }\n}\nfunction ViewTemplatesComponent_ng_template_16_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtext(0);\n }\n if (rf & 2) {\n const element_r9 = ctx.element;\n i0.ɵɵtextInterpolate1(\" \", element_r9.value, \" \");\n }\n}\nfunction ViewTemplatesComponent_ng_template_18_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"gui-function-view\", 23);\n }\n if (rf & 2) {\n const element_r10 = ctx.element;\n i0.ɵɵproperty(\"element\", element_r10);\n }\n}\nfunction ViewTemplatesComponent_ng_template_20_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"gui-html-view\", 23);\n }\n if (rf & 2) {\n const element_r11 = ctx.element;\n i0.ɵɵproperty(\"element\", element_r11);\n }\n}\nfunction ViewTemplatesComponent_ng_template_22_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"span\", 24);\n i0.ɵɵtext(1);\n i0.ɵɵpipe(2, \"date\");\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const element_r12 = ctx.element;\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate(i0.ɵɵpipeBind2(2, 1, element_r12.value, \"dd/MM/yyyy\"));\n }\n}\nfunction ViewTemplatesComponent_ng_template_24_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"gui-bar-view\", 25);\n }\n if (rf & 2) {\n const element_r13 = ctx.element;\n i0.ɵɵproperty(\"value\", element_r13.value)(\"showPercentage\", false);\n }\n}\nfunction ViewTemplatesComponent_ng_template_26_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"gui-bar-view\", 25);\n }\n if (rf & 2) {\n const element_r14 = ctx.element;\n i0.ɵɵproperty(\"value\", element_r14.value)(\"showPercentage\", true);\n }\n}\nfunction ViewTemplatesComponent_ng_template_28_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"gui-percentage-view\", 15);\n }\n if (rf & 2) {\n const element_r15 = ctx.element;\n i0.ɵɵproperty(\"value\", element_r15.value);\n }\n}\nconst _c24 = [\"input\"];\nconst _c25 = [\"datepicker\"];\nconst _c26 = [\"string\"];\nconst _c27 = [\"boolean\"];\nconst _c28 = [\"empty\"];\nfunction EditTemplatesComponent_ng_template_0_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"gui-string-edit\", 5);\n }\n if (rf & 2) {\n const valueChanges_r1 = ctx.valueChanges;\n const value_r2 = ctx.value;\n const status_r3 = ctx.status;\n const focus_r4 = ctx.focus;\n i0.ɵɵproperty(\"valueChanges\", valueChanges_r1)(\"value\", value_r2)(\"status\", status_r3)(\"focus\", focus_r4);\n }\n}\nfunction EditTemplatesComponent_ng_template_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"gui-number-edit\", 5);\n }\n if (rf & 2) {\n const valueChanges_r5 = ctx.valueChanges;\n const value_r6 = ctx.value;\n const status_r7 = ctx.status;\n const focus_r8 = ctx.focus;\n i0.ɵɵproperty(\"valueChanges\", valueChanges_r5)(\"value\", value_r6)(\"status\", status_r7)(\"focus\", focus_r8);\n }\n}\nfunction EditTemplatesComponent_ng_template_4_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"gui-boolean-edit\", 5);\n }\n if (rf & 2) {\n const valueChanges_r9 = ctx.valueChanges;\n const value_r10 = ctx.value;\n const status_r11 = ctx.status;\n const focus_r12 = ctx.focus;\n i0.ɵɵproperty(\"valueChanges\", valueChanges_r9)(\"value\", value_r10)(\"status\", status_r11)(\"focus\", focus_r12);\n }\n}\nfunction EditTemplatesComponent_ng_template_6_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"gui-date-edit\", 6);\n }\n if (rf & 2) {\n const valueChanges_r13 = ctx.valueChanges;\n const value_r14 = ctx.value;\n const status_r15 = ctx.status;\n const focus_r16 = ctx.focus;\n const parent_r17 = ctx.parent;\n i0.ɵɵproperty(\"valueChanges\", valueChanges_r13)(\"value\", value_r14)(\"status\", status_r15)(\"focus\", focus_r16)(\"parent\", parent_r17);\n }\n}\nfunction EditTemplatesComponent_ng_template_8_Template(rf, ctx) {}\nconst _c29 = [\"gui-structure-summaries-panel\", \"\", \"enabled\", \"\"];\nfunction StructureSummariesPanelComponent_ng_container_0_ng_container_1_div_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"div\", 4);\n }\n}\nfunction StructureSummariesPanelComponent_ng_container_0_ng_container_1_div_3_ng_container_1_div_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 7)(1, \"span\", 8);\n i0.ɵɵtext(2);\n i0.ɵɵpipe(3, \"guiTranslate\");\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(4, \"span\", 9);\n i0.ɵɵtext(5);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const column_r1 = i0.ɵɵnextContext(2).$implicit;\n const localState_r2 = i0.ɵɵnextContext(2).$implicit;\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"gui-tooltip\", localState_r2.summariesTranslations.countTooltip);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(3, 3, \"summariesCount\"));\n i0.ɵɵadvance(3);\n i0.ɵɵtextInterpolate(localState_r2.summaries.get(column_r1.getFieldId().getId()).count);\n }\n}\nfunction StructureSummariesPanelComponent_ng_container_0_ng_container_1_div_3_ng_container_1_div_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 7)(1, \"span\", 8);\n i0.ɵɵtext(2);\n i0.ɵɵpipe(3, \"guiTranslate\");\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(4, \"span\", 9);\n i0.ɵɵtext(5);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const column_r1 = i0.ɵɵnextContext(2).$implicit;\n const localState_r2 = i0.ɵɵnextContext(2).$implicit;\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"gui-tooltip\", localState_r2.summariesTranslations.distinctTooltip);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(3, 3, \"summariesDist\"));\n i0.ɵɵadvance(3);\n i0.ɵɵtextInterpolate(localState_r2.summaries.get(column_r1.getFieldId().getId()).distinct);\n }\n}\nfunction StructureSummariesPanelComponent_ng_container_0_ng_container_1_div_3_ng_container_1_div_3_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 7)(1, \"span\");\n i0.ɵɵtext(2);\n i0.ɵɵpipe(3, \"guiTranslate\");\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(4, \"span\", 9);\n i0.ɵɵtext(5);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const column_r1 = i0.ɵɵnextContext(2).$implicit;\n const localState_r2 = i0.ɵɵnextContext(2).$implicit;\n i0.ɵɵadvance(2);\n i0.ɵɵtextInterpolate1(\" \", i0.ɵɵpipeBind1(3, 2, \"summariesSum\"), \" \");\n i0.ɵɵadvance(3);\n i0.ɵɵtextInterpolate(localState_r2.summaries.get(column_r1.getFieldId().getId()).sum);\n }\n}\nfunction StructureSummariesPanelComponent_ng_container_0_ng_container_1_div_3_ng_container_1_div_4_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 7)(1, \"span\", 8);\n i0.ɵɵtext(2);\n i0.ɵɵpipe(3, \"guiTranslate\");\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(4, \"span\", 9);\n i0.ɵɵtext(5);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const column_r1 = i0.ɵɵnextContext(2).$implicit;\n const localState_r2 = i0.ɵɵnextContext(2).$implicit;\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"gui-tooltip\", localState_r2.summariesTranslations.averageTooltip);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(3, 3, \"summariesAvg\"));\n i0.ɵɵadvance(3);\n i0.ɵɵtextInterpolate(localState_r2.summaries.get(column_r1.getFieldId().getId()).average);\n }\n}\nfunction StructureSummariesPanelComponent_ng_container_0_ng_container_1_div_3_ng_container_1_div_5_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 7)(1, \"span\", 8);\n i0.ɵɵtext(2);\n i0.ɵɵpipe(3, \"guiTranslate\");\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(4, \"span\", 9);\n i0.ɵɵtext(5);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const column_r1 = i0.ɵɵnextContext(2).$implicit;\n const localState_r2 = i0.ɵɵnextContext(2).$implicit;\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"gui-tooltip\", localState_r2.summariesTranslations.minTooltip);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate1(\" \", i0.ɵɵpipeBind1(3, 3, \"summariesMin\"), \" \");\n i0.ɵɵadvance(3);\n i0.ɵɵtextInterpolate(localState_r2.summaries.get(column_r1.getFieldId().getId()).min);\n }\n}\nfunction StructureSummariesPanelComponent_ng_container_0_ng_container_1_div_3_ng_container_1_div_6_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 7)(1, \"span\", 8);\n i0.ɵɵtext(2);\n i0.ɵɵpipe(3, \"guiTranslate\");\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(4, \"span\", 9);\n i0.ɵɵtext(5);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const column_r1 = i0.ɵɵnextContext(2).$implicit;\n const localState_r2 = i0.ɵɵnextContext(2).$implicit;\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"gui-tooltip\", localState_r2.summariesTranslations.maxTooltip);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate1(\" \", i0.ɵɵpipeBind1(3, 3, \"summariesMax\"), \" \");\n i0.ɵɵadvance(3);\n i0.ɵɵtextInterpolate(localState_r2.summaries.get(column_r1.getFieldId().getId()).max);\n }\n}\nfunction StructureSummariesPanelComponent_ng_container_0_ng_container_1_div_3_ng_container_1_div_7_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 7)(1, \"span\", 8);\n i0.ɵɵtext(2);\n i0.ɵɵpipe(3, \"guiTranslate\");\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(4, \"span\", 9);\n i0.ɵɵtext(5);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const column_r1 = i0.ɵɵnextContext(2).$implicit;\n const localState_r2 = i0.ɵɵnextContext(2).$implicit;\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"gui-tooltip\", localState_r2.summariesTranslations.medTooltip);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(3, 3, \"summariesMed\"));\n i0.ɵɵadvance(3);\n i0.ɵɵtextInterpolate(localState_r2.summaries.get(column_r1.getFieldId().getId()).median);\n }\n}\nfunction StructureSummariesPanelComponent_ng_container_0_ng_container_1_div_3_ng_container_1_div_8_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 7)(1, \"span\");\n i0.ɵɵtext(2);\n i0.ɵɵpipe(3, \"guiTranslate\");\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(4, \"span\", 9);\n i0.ɵɵtext(5);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const column_r1 = i0.ɵɵnextContext(2).$implicit;\n const localState_r2 = i0.ɵɵnextContext(2).$implicit;\n i0.ɵɵadvance(2);\n i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(3, 2, \"summariesTruthy\"));\n i0.ɵɵadvance(3);\n i0.ɵɵtextInterpolate(localState_r2.summaries.get(column_r1.getFieldId().getId()).truthy);\n }\n}\nfunction StructureSummariesPanelComponent_ng_container_0_ng_container_1_div_3_ng_container_1_div_9_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 7)(1, \"span\");\n i0.ɵɵtext(2);\n i0.ɵɵpipe(3, \"guiTranslate\");\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(4, \"span\", 9);\n i0.ɵɵtext(5);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const column_r1 = i0.ɵɵnextContext(2).$implicit;\n const localState_r2 = i0.ɵɵnextContext(2).$implicit;\n i0.ɵɵadvance(2);\n i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(3, 2, \"summariesFalsy\"));\n i0.ɵɵadvance(3);\n i0.ɵɵtextInterpolate(localState_r2.summaries.get(column_r1.getFieldId().getId()).falsy);\n }\n}\nfunction StructureSummariesPanelComponent_ng_container_0_ng_container_1_div_3_ng_container_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, StructureSummariesPanelComponent_ng_container_0_ng_container_1_div_3_ng_container_1_div_1_Template, 6, 5, \"div\", 6)(2, StructureSummariesPanelComponent_ng_container_0_ng_container_1_div_3_ng_container_1_div_2_Template, 6, 5, \"div\", 6)(3, StructureSummariesPanelComponent_ng_container_0_ng_container_1_div_3_ng_container_1_div_3_Template, 6, 4, \"div\", 6)(4, StructureSummariesPanelComponent_ng_container_0_ng_container_1_div_3_ng_container_1_div_4_Template, 6, 5, \"div\", 6)(5, StructureSummariesPanelComponent_ng_container_0_ng_container_1_div_3_ng_container_1_div_5_Template, 6, 5, \"div\", 6)(6, StructureSummariesPanelComponent_ng_container_0_ng_container_1_div_3_ng_container_1_div_6_Template, 6, 5, \"div\", 6)(7, StructureSummariesPanelComponent_ng_container_0_ng_container_1_div_3_ng_container_1_div_7_Template, 6, 5, \"div\", 6)(8, StructureSummariesPanelComponent_ng_container_0_ng_container_1_div_3_ng_container_1_div_8_Template, 6, 4, \"div\", 6)(9, StructureSummariesPanelComponent_ng_container_0_ng_container_1_div_3_ng_container_1_div_9_Template, 6, 4, \"div\", 6);\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const column_r1 = i0.ɵɵnextContext().$implicit;\n const localState_r2 = i0.ɵɵnextContext(2).$implicit;\n const ctx_r2 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r2.isSummariesTypePresent(localState_r2.summaries.get(column_r1.getFieldId().getId()).count));\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r2.isSummariesTypePresent(localState_r2.summaries.get(column_r1.getFieldId().getId()).distinct));\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r2.isSummariesTypePresent(localState_r2.summaries.get(column_r1.getFieldId().getId()).sum));\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r2.isSummariesTypePresent(localState_r2.summaries.get(column_r1.getFieldId().getId()).average));\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r2.isSummariesTypePresent(localState_r2.summaries.get(column_r1.getFieldId().getId()).min));\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r2.isSummariesTypePresent(localState_r2.summaries.get(column_r1.getFieldId().getId()).max));\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r2.isSummariesTypePresent(localState_r2.summaries.get(column_r1.getFieldId().getId()).median));\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r2.isSummariesTypePresent(localState_r2.summaries.get(column_r1.getFieldId().getId()).truthy));\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r2.isSummariesTypePresent(localState_r2.summaries.get(column_r1.getFieldId().getId()).falsy));\n }\n}\nfunction StructureSummariesPanelComponent_ng_container_0_ng_container_1_div_3_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 5);\n i0.ɵɵtemplate(1, StructureSummariesPanelComponent_ng_container_0_ng_container_1_div_3_ng_container_1_Template, 10, 9, \"ng-container\", 1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const column_r1 = ctx.$implicit;\n const localState_r2 = i0.ɵɵnextContext(2).$implicit;\n i0.ɵɵstyleProp(\"width\", column_r1.width, \"px\");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", localState_r2.summaries && !!localState_r2.summaries.get(column_r1.getFieldId().getId()));\n }\n}\nfunction StructureSummariesPanelComponent_ng_container_0_ng_container_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, StructureSummariesPanelComponent_ng_container_0_ng_container_1_div_1_Template, 1, 0, \"div\", 2);\n i0.ɵɵpipe(2, \"guiPush\");\n i0.ɵɵtemplate(3, StructureSummariesPanelComponent_ng_container_0_ng_container_1_div_3_Template, 2, 3, \"div\", 3);\n i0.ɵɵpipe(4, \"guiPush\");\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const ctx_r2 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", i0.ɵɵpipeBind1(2, 2, ctx_r2.checkboxSelection$));\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngForOf\", i0.ɵɵpipeBind1(4, 4, ctx_r2.headerColumns$));\n }\n}\nfunction StructureSummariesPanelComponent_ng_container_0_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, StructureSummariesPanelComponent_ng_container_0_ng_container_1_Template, 5, 6, \"ng-container\", 1);\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const localState_r2 = ctx.$implicit;\n const ctx_r2 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r2.enabled && localState_r2.summaries && !localState_r2.sourceEmpty);\n }\n}\nconst _c30 = [\"gui-info-dialog\", \"\"];\nconst _c31 = [\"gui-structure-column-manager\", \"\"];\nfunction StructureColumnManagerComponent_ol_0_li_1_ng_container_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainer(0);\n }\n}\nfunction StructureColumnManagerComponent_ol_0_li_1_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"li\", 3);\n i0.ɵɵlistener(\"click\", function StructureColumnManagerComponent_ol_0_li_1_Template_li_click_0_listener() {\n const column_r2 = i0.ɵɵrestoreView(_r1).$implicit;\n const ctx_r2 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r2.toggleColumn(column_r2));\n });\n i0.ɵɵelementStart(1, \"gui-checkbox\", 4);\n i0.ɵɵtemplate(2, StructureColumnManagerComponent_ol_0_li_1_ng_container_2_Template, 1, 0, \"ng-container\", 5);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const column_r2 = ctx.$implicit;\n const localState_r4 = i0.ɵɵnextContext().$implicit;\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"checked\", column_r2.isEnabled())(\"disabled\", localState_r4.enabledColumnsCount === 1 && column_r2.isEnabled());\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", column_r2.viewTemplate)(\"ngTemplateOutletContext\", column_r2.context);\n }\n}\nfunction StructureColumnManagerComponent_ol_0_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"ol\", 1);\n i0.ɵɵtemplate(1, StructureColumnManagerComponent_ol_0_li_1_Template, 3, 4, \"li\", 2);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const localState_r4 = ctx.$implicit;\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngForOf\", localState_r4.columns);\n }\n}\nconst _c32 = [\"gui-structure-dialog-column-manager\", \"\"];\nconst _c33 = [\"gui-structure-schema-manager\", \"\"];\nfunction StructureSchemaMangerComponent_li_17_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"li\", 7);\n i0.ɵɵlistener(\"click\", function StructureSchemaMangerComponent_li_17_Template_li_click_0_listener() {\n const verticalGrid_r2 = i0.ɵɵrestoreView(_r1).$implicit;\n const ctx_r2 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r2.toggleVerticalGrid(verticalGrid_r2));\n });\n i0.ɵɵelementStart(1, \"gui-checkbox\", 8);\n i0.ɵɵtext(2);\n i0.ɵɵpipe(3, \"guiTranslate\");\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const verticalGrid_r2 = ctx.$implicit;\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"checked\", verticalGrid_r2);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate1(\" \", i0.ɵɵpipeBind1(3, 2, \"themeManagerModalVerticalGrid\"), \" \");\n }\n}\nfunction StructureSchemaMangerComponent_li_18_Template(rf, ctx) {\n if (rf & 1) {\n const _r4 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"li\", 7);\n i0.ɵɵlistener(\"click\", function StructureSchemaMangerComponent_li_18_Template_li_click_0_listener() {\n const horizontalGrid_r5 = i0.ɵɵrestoreView(_r4).$implicit;\n const ctx_r2 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r2.toggleHorizontalGrid(horizontalGrid_r5));\n });\n i0.ɵɵelementStart(1, \"gui-checkbox\", 8);\n i0.ɵɵtext(2);\n i0.ɵɵpipe(3, \"guiTranslate\");\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const horizontalGrid_r5 = ctx.$implicit;\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"checked\", horizontalGrid_r5);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate1(\" \", i0.ɵɵpipeBind1(3, 2, \"themeManagerModalHorizontalGrid\"), \" \");\n }\n}\nconst _c34 = [\"gui-schema-manager-dialog\", \"\"];\nconst _c35 = [\"gui-structure-column-manager-icon\", \"\"];\nconst _c36 = [\"gui-structure-schema-manager-icon\", \"\"];\nconst _c37 = [\"gui-active-search\", \"\"];\nfunction ActiveSearchComponent_ng_container_0_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵelementStart(1, \"div\");\n i0.ɵɵtext(2, \" Active search by: \");\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(3, \"div\")(4, \"gui-chip\");\n i0.ɵɵtext(5);\n i0.ɵɵelementEnd()();\n i0.ɵɵelementStart(6, \"div\")(7, \"button\", 1);\n i0.ɵɵlistener(\"click\", function ActiveSearchComponent_ng_container_0_Template_button_click_7_listener() {\n i0.ɵɵrestoreView(_r1);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.clearSearch());\n });\n i0.ɵɵtext(8, \" Clear search \");\n i0.ɵɵelementEnd()();\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const phrase_r3 = ctx.$implicit;\n i0.ɵɵadvance(5);\n i0.ɵɵtextInterpolate(phrase_r3);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"outline\", true)(\"primary\", true);\n }\n}\nconst _c38 = [\"gui-active-filter-list\", \"\"];\nfunction ActiveFilterListComponent_ng_container_0_div_1_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"div\");\n i0.ɵɵtext(1);\n i0.ɵɵelementStart(2, \"span\", 3);\n i0.ɵɵlistener(\"click\", function ActiveFilterListComponent_ng_container_0_div_1_Template_span_click_2_listener() {\n const filter_r2 = i0.ɵɵrestoreView(_r1).$implicit;\n const ctx_r2 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r2.removeFilter(filter_r2));\n });\n i0.ɵɵtext(3, \"X\");\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const filter_r2 = ctx.$implicit;\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate1(\" \", filter_r2.getText(), \" \");\n }\n}\nfunction ActiveFilterListComponent_ng_container_0_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, ActiveFilterListComponent_ng_container_0_div_1_Template, 4, 1, \"div\", 2);\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const activeFilters_r4 = ctx.$implicit;\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngForOf\", activeFilters_r4);\n }\n}\nconst _c39 = [\"gui-structure-info-icon\", \"\"];\nconst _c40 = [\"gui-structure-info-panel\", \"\"];\nfunction StructureInfoPanelComponent_ng_container_0_div_1_div_1_ng_container_1_ng_container_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtext(1);\n i0.ɵɵpipe(2, \"guiTranslate\");\n i0.ɵɵelementStart(3, \"b\");\n i0.ɵɵtext(4);\n i0.ɵɵpipe(5, \"numberFormatter\");\n i0.ɵɵelementEnd();\n i0.ɵɵtext(6);\n i0.ɵɵpipe(7, \"guiTranslate\");\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const totalItemsSize_r1 = i0.ɵɵnextContext(3).$implicit;\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate1(\" \", i0.ɵɵpipeBind1(2, 3, \"infoPanelShowing\"), \" \");\n i0.ɵɵadvance(3);\n i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(5, 5, totalItemsSize_r1));\n i0.ɵɵadvance(2);\n i0.ɵɵtextInterpolate1(\" \", i0.ɵɵpipeBind1(7, 7, \"infoPanelItems\"), \" \");\n }\n}\nfunction StructureInfoPanelComponent_ng_container_0_div_1_div_1_ng_container_1_span_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"span\", 5);\n i0.ɵɵtext(1);\n i0.ɵɵpipe(2, \"guiTranslate\");\n i0.ɵɵelementStart(3, \"b\");\n i0.ɵɵtext(4);\n i0.ɵɵpipe(5, \"numberFormatter\");\n i0.ɵɵelementEnd();\n i0.ɵɵtext(6);\n i0.ɵɵpipe(7, \"guiTranslate\");\n i0.ɵɵelementStart(8, \"b\");\n i0.ɵɵtext(9);\n i0.ɵɵpipe(10, \"numberFormatter\");\n i0.ɵɵelementEnd();\n i0.ɵɵtext(11);\n i0.ɵɵpipe(12, \"guiTranslate\");\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const totalItemsSize_r1 = i0.ɵɵnextContext(3).$implicit;\n const localState_r2 = i0.ɵɵnextContext().$implicit;\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate1(\" \", i0.ɵɵpipeBind1(2, 5, \"infoPanelShowing\"), \" \");\n i0.ɵɵadvance(3);\n i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(5, 7, localState_r2.preparedItemsSize));\n i0.ɵɵadvance(2);\n i0.ɵɵtextInterpolate1(\" \", i0.ɵɵpipeBind1(7, 9, \"infoPanelOutOf\"), \" \");\n i0.ɵɵadvance(3);\n i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(10, 11, totalItemsSize_r1));\n i0.ɵɵadvance(2);\n i0.ɵɵtextInterpolate1(\" \", i0.ɵɵpipeBind1(12, 13, \"infoPanelItems\"), \" \");\n }\n}\nfunction StructureInfoPanelComponent_ng_container_0_div_1_div_1_ng_container_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, StructureInfoPanelComponent_ng_container_0_div_1_div_1_ng_container_1_ng_container_1_Template, 8, 9, \"ng-container\", 3)(2, StructureInfoPanelComponent_ng_container_0_div_1_div_1_ng_container_1_span_2_Template, 13, 15, \"span\", 4);\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const totalItemsSize_r1 = i0.ɵɵnextContext(2).$implicit;\n const localState_r2 = i0.ɵɵnextContext().$implicit;\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", localState_r2.preparedItemsSize === totalItemsSize_r1);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", localState_r2.preparedItemsSize !== totalItemsSize_r1);\n }\n}\nfunction StructureInfoPanelComponent_ng_container_0_div_1_div_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\");\n i0.ɵɵtemplate(1, StructureInfoPanelComponent_ng_container_0_div_1_div_1_ng_container_1_Template, 3, 2, \"ng-container\", 3);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const totalItemsSize_r1 = i0.ɵɵnextContext().$implicit;\n const localState_r2 = i0.ɵɵnextContext().$implicit;\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", localState_r2.preparedItemsSize !== undefined && totalItemsSize_r1 !== undefined);\n }\n}\nfunction StructureInfoPanelComponent_ng_container_0_div_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\");\n i0.ɵɵtemplate(1, StructureInfoPanelComponent_ng_container_0_div_1_div_1_Template, 2, 1, \"div\", 3);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const localState_r2 = i0.ɵɵnextContext().$implicit;\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", localState_r2.infoPanelConfig.isSourceSizeEnabled());\n }\n}\nfunction StructureInfoPanelComponent_ng_container_0_div_4_Template(rf, ctx) {\n if (rf & 1) {\n const _r3 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"div\", 6);\n i0.ɵɵlistener(\"click\", function StructureInfoPanelComponent_ng_container_0_div_4_Template_div_click_0_listener() {\n i0.ɵɵrestoreView(_r3);\n const ctx_r3 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r3.openSchemaManager());\n });\n i0.ɵɵelement(1, \"div\", 7);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const localState_r2 = i0.ɵɵnextContext().$implicit;\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"gui-tooltip\", localState_r2.translations.infoPanelThemeMangerTooltipText);\n }\n}\nfunction StructureInfoPanelComponent_ng_container_0_div_5_Template(rf, ctx) {\n if (rf & 1) {\n const _r5 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"div\", 6);\n i0.ɵɵlistener(\"click\", function StructureInfoPanelComponent_ng_container_0_div_5_Template_div_click_0_listener() {\n i0.ɵɵrestoreView(_r5);\n const ctx_r3 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r3.openColumnManager());\n });\n i0.ɵɵelement(1, \"div\", 8);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const localState_r2 = i0.ɵɵnextContext().$implicit;\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"gui-tooltip\", localState_r2.translations.infoPanelColumnManagerTooltipText);\n }\n}\nfunction StructureInfoPanelComponent_ng_container_0_div_6_Template(rf, ctx) {\n if (rf & 1) {\n const _r6 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"div\", 6);\n i0.ɵɵlistener(\"click\", function StructureInfoPanelComponent_ng_container_0_div_6_Template_div_click_0_listener() {\n i0.ɵɵrestoreView(_r6);\n const ctx_r3 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r3.openInfo());\n });\n i0.ɵɵelement(1, \"div\", 9);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const localState_r2 = i0.ɵɵnextContext().$implicit;\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"gui-tooltip\", localState_r2.translations.infoPanelInfoTooltipText);\n }\n}\nfunction StructureInfoPanelComponent_ng_container_0_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, StructureInfoPanelComponent_ng_container_0_div_1_Template, 2, 1, \"div\", 0);\n i0.ɵɵelementStart(2, \"div\")(3, \"div\", 1);\n i0.ɵɵtemplate(4, StructureInfoPanelComponent_ng_container_0_div_4_Template, 2, 1, \"div\", 2)(5, StructureInfoPanelComponent_ng_container_0_div_5_Template, 2, 1, \"div\", 2)(6, StructureInfoPanelComponent_ng_container_0_div_6_Template, 2, 1, \"div\", 2);\n i0.ɵɵelementEnd()();\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const localState_r2 = ctx.$implicit;\n const ctx_r3 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"guiLet\", ctx_r3.totalItemsSize$);\n i0.ɵɵadvance(3);\n i0.ɵɵproperty(\"ngIf\", localState_r2.infoPanelConfig.isSchemaManagerEnabled());\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", localState_r2.infoPanelConfig.isColumnsManagerEnabled());\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", localState_r2.infoPanelConfig.isInfoDialogEnabled());\n }\n}\nconst _c41 = [\"gui-search-icon\", \"\"];\nconst _c42 = [\"formRef\"];\nconst _c43 = [\"gui-search-bar\", \"\"];\nfunction SearchComponent_ng_container_0_span_6_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"span\", 6);\n i0.ɵɵlistener(\"click\", function SearchComponent_ng_container_0_span_6_Template_span_click_0_listener() {\n i0.ɵɵrestoreView(_r1);\n const ctx_r1 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r1.clear());\n });\n i0.ɵɵelementEnd();\n }\n}\nfunction SearchComponent_ng_container_0_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵelementStart(1, \"form\", 2, 0);\n i0.ɵɵelement(3, \"div\", 3)(4, \"input\", 4);\n i0.ɵɵpipe(5, \"guiPush\");\n i0.ɵɵtemplate(6, SearchComponent_ng_container_0_span_6_Template, 1, 0, \"span\", 5);\n i0.ɵɵelementEnd();\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"formGroup\", ctx_r1.searchForm);\n i0.ɵɵadvance(3);\n i0.ɵɵproperty(\"placeholder\", i0.ɵɵpipeBind1(5, 3, ctx_r1.placeholder$));\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngIf\", ctx_r1.searchForm.controls[\"searchPhrase\"].value);\n }\n}\nconst _c44 = [\"gui-structure-top-panel\", \"\"];\nconst _c45 = [\"gui-empty-source\", \"\", \"items\", \"\"];\nfunction EmptySourceComponent_ng_container_0_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtext(1);\n i0.ɵɵpipe(2, \"guiTranslate\");\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate1(\" \", i0.ɵɵpipeBind1(2, 1, \"sourceEmpty\"), \"\\n\");\n }\n}\nconst _c46 = [\"gui-structure-menu-column-manager\", \"\"];\nconst _c47 = [\"gui-unique-value-list\", \"\", \"fieldId\", \"\"];\nfunction UniqueValueListComponent_ng_container_0_div_4_Template(rf, ctx) {\n if (rf & 1) {\n const _r3 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"div\")(1, \"gui-checkbox\", 6);\n i0.ɵɵlistener(\"changed\", function UniqueValueListComponent_ng_container_0_div_4_Template_gui_checkbox_changed_1_listener() {\n const value_r4 = i0.ɵɵrestoreView(_r3).$implicit;\n const ctx_r1 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r1.toggleSelect(value_r4));\n });\n i0.ɵɵtext(2);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const value_r4 = ctx.$implicit;\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"checked\", value_r4.isEnabled());\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate1(\" \", value_r4.getValue(), \" \");\n }\n}\nfunction UniqueValueListComponent_ng_container_0_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵelementStart(1, \"gui-checkbox\", 1);\n i0.ɵɵlistener(\"changed\", function UniqueValueListComponent_ng_container_0_Template_gui_checkbox_changed_1_listener() {\n i0.ɵɵrestoreView(_r1);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.toggleAllSelect());\n });\n i0.ɵɵtext(2, \" Select all \");\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(3, \"div\", 2);\n i0.ɵɵtemplate(4, UniqueValueListComponent_ng_container_0_div_4_Template, 3, 2, \"div\", 3);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(5, \"div\", 4)(6, \"button\", 5);\n i0.ɵɵlistener(\"click\", function UniqueValueListComponent_ng_container_0_Template_button_click_6_listener() {\n i0.ɵɵrestoreView(_r1);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.clearFilters());\n });\n i0.ɵɵtext(7, \" Clear \");\n i0.ɵɵelementEnd()();\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const state_r5 = ctx.$implicit;\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"checked\", state_r5.selectAllChecked)(\"indeterminate\", state_r5.selectAllIndeterminate);\n i0.ɵɵadvance(3);\n i0.ɵɵproperty(\"ngForOf\", state_r5.uniqueValues);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"outline\", true)(\"primary\", true);\n }\n}\nconst _c48 = [\"gui-structure-arrow-icon\", \"\"];\nconst _c49 = [\"gui-structure-column-config-sort\", \"\", \"column\", \"\", \"dropdownTextTranslation\", \"\"];\nfunction StructureColumnConfigSortComponent_gui_dropdown_0_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"gui-dropdown\", 1)(1, \"gui-dropdown-item\", 2);\n i0.ɵɵlistener(\"click\", function StructureColumnConfigSortComponent_gui_dropdown_0_Template_gui_dropdown_item_click_1_listener() {\n i0.ɵɵrestoreView(_r1);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.setSortOrder(ctx_r1.status.ASC));\n });\n i0.ɵɵelementStart(2, \"div\", 3);\n i0.ɵɵtext(3);\n i0.ɵɵpipe(4, \"guiTranslate\");\n i0.ɵɵelement(5, \"div\", 4);\n i0.ɵɵelementEnd()();\n i0.ɵɵelementStart(6, \"gui-dropdown-item\", 2);\n i0.ɵɵlistener(\"click\", function StructureColumnConfigSortComponent_gui_dropdown_0_Template_gui_dropdown_item_click_6_listener() {\n i0.ɵɵrestoreView(_r1);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.setSortOrder(ctx_r1.status.DESC));\n });\n i0.ɵɵelementStart(7, \"div\", 3);\n i0.ɵɵtext(8);\n i0.ɵɵpipe(9, \"guiTranslate\");\n i0.ɵɵelement(10, \"div\", 5);\n i0.ɵɵelementEnd()();\n i0.ɵɵelementStart(11, \"gui-dropdown-item\", 2);\n i0.ɵɵlistener(\"click\", function StructureColumnConfigSortComponent_gui_dropdown_0_Template_gui_dropdown_item_click_11_listener() {\n i0.ɵɵrestoreView(_r1);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.setSortOrder(ctx_r1.status.NONE));\n });\n i0.ɵɵtext(12);\n i0.ɵɵpipe(13, \"guiTranslate\");\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"dropdownText\", ctx_r1.dropdownTextTranslation)(\"placement\", ctx_r1.placement)(\"showOnHover\", true)(\"width\", 225);\n i0.ɵɵadvance();\n i0.ɵɵclassProp(\"gui-header-item-active\", ctx_r1.isAscSort());\n i0.ɵɵadvance(2);\n i0.ɵɵtextInterpolate1(\" \", i0.ɵɵpipeBind1(4, 16, \"headerMenuMainTabColumnSortAscending\"), \" \");\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"sort\", true);\n i0.ɵɵadvance();\n i0.ɵɵclassProp(\"gui-header-item-active\", ctx_r1.isDescSort());\n i0.ɵɵadvance(2);\n i0.ɵɵtextInterpolate1(\" \", i0.ɵɵpipeBind1(9, 18, \"headerMenuMainTabColumnSortDescending\"), \" \");\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"position\", ctx_r1.StructureArrowPosition.DOWN)(\"sort\", true);\n i0.ɵɵadvance();\n i0.ɵɵclassProp(\"gui-header-item-active\", ctx_r1.isNoneSort());\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate1(\" \", i0.ɵɵpipeBind1(13, 20, \"headerMenuMainTabColumnSortNone\"), \" \");\n }\n}\nconst _c50 = [\"gui-structure-column-config-column-hide\", \"\"];\nconst _c51 = [\"gui-structure-column-config-column-move\", \"\", \"column\", \"\"];\nconst _c52 = [\"headerSortMenu\"];\nconst _c53 = [\"gui-column-config\", \"\"];\nfunction StructureColumnConfigComponent_ng_container_0_div_1_ng_container_2_div_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"div\", 10);\n }\n if (rf & 2) {\n const localState_r2 = i0.ɵɵnextContext(3).$implicit;\n const ctx_r2 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"column\", ctx_r2.column)(\"dropdownTextTranslation\", localState_r2.translations.headerMenuMainTabColumnSort);\n }\n}\nfunction StructureColumnConfigComponent_ng_container_0_div_1_ng_container_2_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵelementStart(1, \"gui-tab-item\", 5);\n i0.ɵɵtemplate(2, StructureColumnConfigComponent_ng_container_0_div_1_ng_container_2_div_2_Template, 1, 2, \"div\", 6);\n i0.ɵɵelementStart(3, \"div\", 7);\n i0.ɵɵlistener(\"columnHidden\", function StructureColumnConfigComponent_ng_container_0_div_1_ng_container_2_Template_div_columnHidden_3_listener() {\n i0.ɵɵrestoreView(_r1);\n const ctx_r2 = i0.ɵɵnextContext(3);\n return i0.ɵɵresetView(ctx_r2.hideColumn());\n });\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(4, \"div\", 8);\n i0.ɵɵlistener(\"click\", function StructureColumnConfigComponent_ng_container_0_div_1_ng_container_2_Template_div_click_4_listener() {\n i0.ɵɵrestoreView(_r1);\n const ctx_r2 = i0.ɵɵnextContext(3);\n return i0.ɵɵresetView(ctx_r2.highlightColumn());\n });\n i0.ɵɵtext(5);\n i0.ɵɵpipe(6, \"guiTranslate\");\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(7, \"div\", 9);\n i0.ɵɵlistener(\"movedLeft\", function StructureColumnConfigComponent_ng_container_0_div_1_ng_container_2_Template_div_movedLeft_7_listener() {\n i0.ɵɵrestoreView(_r1);\n const ctx_r2 = i0.ɵɵnextContext(3);\n return i0.ɵɵresetView(ctx_r2.moveLeft());\n })(\"movedRight\", function StructureColumnConfigComponent_ng_container_0_div_1_ng_container_2_Template_div_movedRight_7_listener() {\n i0.ɵɵrestoreView(_r1);\n const ctx_r2 = i0.ɵɵnextContext(3);\n return i0.ɵɵresetView(ctx_r2.moveRight());\n });\n i0.ɵɵelementEnd()();\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const localState_r2 = i0.ɵɵnextContext(2).$implicit;\n const ctx_r2 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"tab\", localState_r2.translations.headerMenuMainTab);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r2.column.isSortEnabled());\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"column\", ctx_r2.column);\n i0.ɵɵadvance(2);\n i0.ɵɵtextInterpolate1(\" \", i0.ɵɵpipeBind1(6, 5, \"headerMenuMainTabHighlightColumn\"), \" \");\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"column\", ctx_r2.column);\n }\n}\nfunction StructureColumnConfigComponent_ng_container_0_div_1_ng_container_3_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵelementStart(1, \"gui-tab-item\", 11);\n i0.ɵɵelement(2, \"div\", 12);\n i0.ɵɵelementEnd();\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const localState_r2 = i0.ɵɵnextContext(2).$implicit;\n const ctx_r2 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"tab\", localState_r2.translations.headerMenuFilterTab);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"fieldId\", ctx_r2.column.getFieldId());\n }\n}\nfunction StructureColumnConfigComponent_ng_container_0_div_1_ng_container_4_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵelementStart(1, \"gui-tab-item\", 11);\n i0.ɵɵelement(2, \"div\", 13);\n i0.ɵɵelementEnd();\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const localState_r2 = i0.ɵɵnextContext(2).$implicit;\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"tab\", localState_r2.translations.headerMenuColumnsTab);\n }\n}\nfunction StructureColumnConfigComponent_ng_container_0_div_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 2)(1, \"gui-tab\", 3);\n i0.ɵɵtemplate(2, StructureColumnConfigComponent_ng_container_0_div_1_ng_container_2_Template, 8, 7, \"ng-container\", 4)(3, StructureColumnConfigComponent_ng_container_0_div_1_ng_container_3_Template, 3, 2, \"ng-container\", 4)(4, StructureColumnConfigComponent_ng_container_0_div_1_ng_container_4_Template, 3, 1, \"ng-container\", 4);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const localState_r2 = i0.ɵɵnextContext().$implicit;\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"active\", localState_r2.config.getActiveMenu())(\"menu\", localState_r2.config.getMenus());\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", localState_r2.config.isMainEnabled());\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", localState_r2.config.isFilteringEnabled());\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", localState_r2.config.isColumnManagerEnabled());\n }\n}\nfunction StructureColumnConfigComponent_ng_container_0_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, StructureColumnConfigComponent_ng_container_0_div_1_Template, 5, 5, \"div\", 1);\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const localState_r2 = ctx.$implicit;\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", localState_r2.isEnabled);\n }\n}\nconst _c54 = [\"gui-select-custom-modal\", \"\"];\nfunction SelectCustomModalComponent_ul_0_li_1_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"li\", 2);\n i0.ɵɵlistener(\"click\", function SelectCustomModalComponent_ul_0_li_1_Template_li_click_0_listener() {\n const sel_r2 = i0.ɵɵrestoreView(_r1).$implicit;\n const ctx_r2 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r2.selectCustom(sel_r2.getCustomSelectId()));\n });\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const sel_r2 = ctx.$implicit;\n i0.ɵɵattribute(\"id\", sel_r2.key);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate1(\" \", sel_r2.text, \" \");\n }\n}\nfunction SelectCustomModalComponent_ul_0_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"ul\");\n i0.ɵɵtemplate(1, SelectCustomModalComponent_ul_0_li_1_Template, 2, 2, \"li\", 1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const selection_r4 = ctx.$implicit;\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngForOf\", selection_r4.getSelections());\n }\n}\nconst _c55 = [\"gui-select-all\", \"\"];\nfunction SelectAllComponent_ng_container_0_gui_checkbox_1_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"gui-checkbox\", 2);\n i0.ɵɵlistener(\"changed\", function SelectAllComponent_ng_container_0_gui_checkbox_1_Template_gui_checkbox_changed_0_listener() {\n i0.ɵɵrestoreView(_r1);\n const localState_r2 = i0.ɵɵnextContext().$implicit;\n const ctx_r2 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r2.toggleSelectAll(localState_r2.isAllIndeterminate, localState_r2.isAllChecked));\n });\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const localState_r2 = i0.ɵɵnextContext().$implicit;\n i0.ɵɵproperty(\"checked\", localState_r2.isAllChecked)(\"gui-tooltip\", \"Select\")(\"indeterminate\", localState_r2.isAllIndeterminate);\n }\n}\nfunction SelectAllComponent_ng_container_0_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, SelectAllComponent_ng_container_0_gui_checkbox_1_Template, 1, 3, \"gui-checkbox\", 1);\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const localState_r2 = ctx.$implicit;\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", localState_r2.modeMulti);\n }\n}\nconst _c56 = [\"gui-structure-menu-icon\", \"\"];\nconst _c57 = [\"headerDialogContainer\"];\nconst _c58 = [\"gui-structure-column-config-trigger\", \"\"];\nfunction StructureColumnConfigTriggerComponent_div_0_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"div\", 2, 0);\n i0.ɵɵlistener(\"click\", function StructureColumnConfigTriggerComponent_div_0_Template_div_click_0_listener() {\n i0.ɵɵrestoreView(_r1);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.openConfigDialog());\n });\n i0.ɵɵelement(2, \"div\", 3);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngClass\", \"gui-header-menu-icon\");\n }\n}\nconst _c59 = [\"selectCustomContainer\"];\nconst _c60 = [\"gui-structure-header-columns\", \"\", \"columns\", \"\"];\nconst _c61 = a0 => ({\n \"gui-header-sortable\": a0\n});\nfunction StructureHeaderColumnsComponent_div_0_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 2);\n i0.ɵɵelement(1, \"div\", 3);\n i0.ɵɵelementEnd();\n }\n}\nfunction StructureHeaderColumnsComponent_div_1_ng_container_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainer(0);\n }\n}\nfunction StructureHeaderColumnsComponent_div_1_div_3_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"div\", 10);\n }\n if (rf & 2) {\n const column_r2 = i0.ɵɵnextContext().$implicit;\n i0.ɵɵproperty(\"position\", column_r2.getSortStatus())(\"sort\", true);\n }\n}\nfunction StructureHeaderColumnsComponent_div_1_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"div\", 4);\n i0.ɵɵlistener(\"click\", function StructureHeaderColumnsComponent_div_1_Template_div_click_0_listener() {\n const column_r2 = i0.ɵɵrestoreView(_r1).$implicit;\n const ctx_r2 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r2.toggleSort(column_r2));\n });\n i0.ɵɵelementStart(1, \"div\", 5);\n i0.ɵɵtemplate(2, StructureHeaderColumnsComponent_div_1_ng_container_2_Template, 1, 0, \"ng-container\", 6)(3, StructureHeaderColumnsComponent_div_1_div_3_Template, 1, 2, \"div\", 7);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(4, \"div\", 8);\n i0.ɵɵelement(5, \"div\", 9);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const column_r2 = ctx.$implicit;\n i0.ɵɵstyleMap(column_r2.getStyles());\n i0.ɵɵclassMap(column_r2.getCssClasses());\n i0.ɵɵstyleProp(\"width\", column_r2.width, \"px\");\n i0.ɵɵproperty(\"ngClass\", i0.ɵɵpureFunction1(11, _c61, column_r2.isSortEnabled()));\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngTemplateOutlet\", column_r2.viewTemplate)(\"ngTemplateOutletContext\", column_r2.context);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !column_r2.isNoSort());\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"column\", column_r2);\n }\n}\nconst _c62 = [\"gui-structure-header-groups\", \"\", \"groups\", \"\", \"checkboxSelection\", \"\"];\nfunction StructureHeaderGroupsComponent_div_0_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 2);\n i0.ɵɵelement(1, \"div\", 3);\n i0.ɵɵelementEnd();\n }\n}\nfunction StructureHeaderGroupsComponent_div_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 4)(1, \"div\", 5);\n i0.ɵɵtext(2);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const group_r1 = ctx.$implicit;\n i0.ɵɵstyleProp(\"width\", group_r1.width, \"px\");\n i0.ɵɵadvance(2);\n i0.ɵɵtextInterpolate1(\" \", group_r1.header, \" \");\n }\n}\nconst _c63 = [\"gui-structure-header-filters\", \"\", \"columns\", \"\"];\nconst _c64 = () => [\"has value\", \"is the same as\", \"starts with\", \"ends with\"];\nfunction StructureHeaderFiltersComponent_ng_container_0_div_1_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"div\", 2)(1, \"button\", 3);\n i0.ɵɵlistener(\"click\", function StructureHeaderFiltersComponent_ng_container_0_div_1_Template_button_click_1_listener() {\n i0.ɵɵrestoreView(_r1);\n const ctx_r1 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r1.turnOnFilterMode());\n });\n i0.ɵɵtext(2, \"Add Filter\");\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const cell_r3 = ctx.$implicit;\n i0.ɵɵstyleProp(\"width\", cell_r3.width, \"px\");\n }\n}\nfunction StructureHeaderFiltersComponent_ng_container_0_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, StructureHeaderFiltersComponent_ng_container_0_div_1_Template, 3, 2, \"div\", 1);\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngForOf\", ctx_r1.columns);\n }\n}\nfunction StructureHeaderFiltersComponent_ng_container_1_Template(rf, ctx) {\n if (rf & 1) {\n const _r4 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵelement(1, \"gui-select\", 4);\n i0.ɵɵelementStart(2, \"form\", 5);\n i0.ɵɵelement(3, \"input\", 6);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(4, \"button\", 7);\n i0.ɵɵlistener(\"click\", function StructureHeaderFiltersComponent_ng_container_1_Template_button_click_4_listener() {\n i0.ɵɵrestoreView(_r4);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.clearFilters());\n });\n i0.ɵɵtext(5, \"Clear All\");\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(6, \"button\", 7);\n i0.ɵɵlistener(\"click\", function StructureHeaderFiltersComponent_ng_container_1_Template_button_click_6_listener() {\n i0.ɵɵrestoreView(_r4);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.turnOffFilterMode());\n });\n i0.ɵɵtext(7, \"Close\");\n i0.ɵɵelementEnd();\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"options\", i0.ɵɵpureFunction0(4, _c64))(\"selected\", \"has value\");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"formGroup\", ctx_r1.filterForm);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"formControlName\", ctx_r1.filterFieldName);\n }\n}\nconst _c65 = [\"gui-structure-header\", \"\"];\nfunction StructureHeaderComponent_ng_container_0_div_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"div\", 3);\n }\n if (rf & 2) {\n const localState_r1 = i0.ɵɵnextContext().$implicit;\n i0.ɵɵproperty(\"checkboxSelection\", localState_r1.showSelection)(\"groups\", localState_r1.groups);\n }\n}\nfunction StructureHeaderComponent_ng_container_0_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, StructureHeaderComponent_ng_container_0_div_1_Template, 1, 2, \"div\", 2);\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const localState_r1 = ctx.$implicit;\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", localState_r1.showGroups);\n }\n}\nfunction StructureHeaderComponent_div_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"div\", 4);\n }\n if (rf & 2) {\n const localState_r2 = ctx.$implicit;\n const ctx_r2 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"columns\", localState_r2.headerColumns)(\"guiStyle\", ctx_r2.width$)(\"showSelection\", localState_r2.showSelection);\n }\n}\nfunction StructureHeaderComponent_ng_container_2_div_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"div\", 6);\n }\n if (rf & 2) {\n const localState_r4 = i0.ɵɵnextContext().$implicit;\n const ctx_r2 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"columns\", localState_r4.headerColumns)(\"guiStyle\", ctx_r2.filterHeaderHeight$);\n }\n}\nfunction StructureHeaderComponent_ng_container_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, StructureHeaderComponent_ng_container_2_div_1_Template, 1, 2, \"div\", 5);\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const localState_r4 = ctx.$implicit;\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", localState_r4.filterRowEnabled);\n }\n}\nconst _c66 = [\"cellContainer\"];\nconst _c67 = [\"gui-structure-cell-edit-boolean\", \"\", \"entity\", \"\", \"cell\", \"\"];\nfunction StructureCellEditBooleanComponent_ng_container_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainer(0);\n }\n}\nconst _c68 = [\"gui-structure-cell\", \"\", \"entity\", \"\", \"cell\", \"\"];\nconst _c69 = (a0, a1, a2, a3) => ({\n \"gui-cell-view\": true,\n \"gui-align-left\": a0,\n \"gui-align-center\": a1,\n \"gui-align-right\": a2,\n \"gui-column-highlighted\": a3\n});\nconst _c70 = (a0, a1, a2, a3) => ({\n element: a0,\n index: a1,\n value: a2,\n item: a3\n});\nfunction StructureCellComponent_ng_container_0_span_1_ng_container_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainer(0);\n }\n}\nfunction StructureCellComponent_ng_container_0_span_1_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"span\", 3);\n i0.ɵɵlistener(\"click\", function StructureCellComponent_ng_container_0_span_1_Template_span_click_0_listener() {\n i0.ɵɵrestoreView(_r1);\n const ctx_r1 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r1.enterEditMode());\n });\n i0.ɵɵtemplate(1, StructureCellComponent_ng_container_0_span_1_ng_container_1_Template, 1, 0, \"ng-container\", 4);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"ngClass\", i0.ɵɵpureFunction4(3, _c69, ctx_r1.cell.isAlignLeft(), ctx_r1.cell.isAlignCenter(), ctx_r1.cell.isAlignRight(), ctx_r1.isHighlighted));\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r1.cell.template)(\"ngTemplateOutletContext\", i0.ɵɵpureFunction4(8, _c70, ctx_r1.cell.getValue(ctx_r1.entity, ctx_r1.searchPhrase), ctx_r1.entity.getPosition(), ctx_r1.cell.getValue(ctx_r1.entity, ctx_r1.searchPhrase).value, ctx_r1.entity.getSourceItem()));\n }\n}\nfunction StructureCellComponent_ng_container_0_span_2_ng_container_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainer(0);\n }\n}\nfunction StructureCellComponent_ng_container_0_span_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"span\", 5);\n i0.ɵɵtemplate(1, StructureCellComponent_ng_container_0_span_2_ng_container_1_Template, 1, 0, \"ng-container\", 4);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r1.cell.editTemplate)(\"ngTemplateOutletContext\", ctx_r1.editContext);\n }\n}\nfunction StructureCellComponent_ng_container_0_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, StructureCellComponent_ng_container_0_span_1_Template, 2, 13, \"span\", 1)(2, StructureCellComponent_ng_container_0_span_2_Template, 2, 2, \"span\", 2);\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx_r1.inEditMode);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r1.inEditMode);\n }\n}\nfunction StructureCellComponent_ng_container_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵelement(1, \"div\", 6);\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"cell\", ctx_r1.cell)(\"entity\", ctx_r1.entity);\n }\n}\nconst _c71 = [\"gui-structure-row\", \"\"];\nfunction StructureRowComponent_div_0_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"div\", 3)(1, \"gui-checkbox\", 4);\n i0.ɵɵlistener(\"changed\", function StructureRowComponent_div_0_Template_gui_checkbox_changed_1_listener() {\n i0.ɵɵrestoreView(_r1);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.selectCheckbox());\n });\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"checked\", ctx_r1.selectedItem);\n }\n}\nfunction StructureRowComponent_div_1_Template(rf, ctx) {\n if (rf & 1) {\n const _r3 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"div\", 5)(1, \"gui-radio-button\", 4);\n i0.ɵɵlistener(\"changed\", function StructureRowComponent_div_1_Template_gui_radio_button_changed_1_listener() {\n i0.ɵɵrestoreView(_r3);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.selectRadio());\n });\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"checked\", ctx_r1.selectedItem);\n }\n}\nfunction StructureRowComponent_div_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"div\", 6);\n }\n if (rf & 2) {\n const column_r4 = ctx.$implicit;\n const i_r5 = ctx.index;\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵstyleProp(\"width\", column_r4.width, \"px\");\n i0.ɵɵproperty(\"cellEditorManager\", ctx_r1.cellEditing)(\"cell\", column_r4)(\"columnIndex\", i_r5)(\"editMode\", ctx_r1.editMode)(\"entity\", ctx_r1.entity)(\"rowIndex\", ctx_r1.index)(\"searchPhrase\", ctx_r1.searchPhrase);\n }\n}\nconst _c72 = [\"gui-structure-content\", \"\"];\nconst _c73 = (a0, a1) => ({\n \"even\": a0,\n \"odd\": a1\n});\nconst _c74 = a0 => ({\n \"transform\": a0\n});\nfunction StructureContentComponent_div_0_div_1_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"div\", 3);\n i0.ɵɵlistener(\"click\", function StructureContentComponent_div_0_div_1_Template_div_click_0_listener() {\n const entity_r2 = i0.ɵɵrestoreView(_r1).$implicit;\n const localState_r3 = i0.ɵɵnextContext().$implicit;\n const ctx_r3 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r3.toggleSelectedRow(entity_r2, localState_r3.selectionEnabled, localState_r3.checkboxSelection, localState_r3.radioSelection));\n });\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const entity_r2 = ctx.$implicit;\n const index_r5 = ctx.index;\n const localState_r3 = i0.ɵɵnextContext().$implicit;\n const ctx_r3 = i0.ɵɵnextContext();\n i0.ɵɵstyleProp(\"height\", localState_r3.rowHeight, \"px\");\n i0.ɵɵproperty(\"cellEditing\", localState_r3.cellEditing)(\"checkboxSelection\", localState_r3.checkboxSelection)(\"columns\", ctx_r3.columns)(\"editMode\", localState_r3.editMode)(\"entity\", entity_r2)(\"id\", entity_r2.getUiId())(\"index\", entity_r2.getPosition())(\"ngClass\", i0.ɵɵpureFunction2(15, _c73, entity_r2.isEven(), entity_r2.isOdd()))(\"ngStyle\", i0.ɵɵpureFunction1(18, _c74, ctx_r3.translateY(index_r5, localState_r3.rowHeight)))(\"radioSelection\", localState_r3.radioSelection)(\"rowClass\", localState_r3.schemaRowClass)(\"rowStyle\", localState_r3.schemaRowStyle)(\"searchPhrase\", localState_r3.searchPhrase);\n }\n}\nfunction StructureContentComponent_div_0_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 1);\n i0.ɵɵtemplate(1, StructureContentComponent_div_0_div_1_Template, 1, 20, \"div\", 2);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r3 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngForOf\", ctx_r3.source)(\"ngForTrackBy\", ctx_r3.trackByFn);\n }\n}\nconst _c75 = [\"sourceCollection\"];\nconst _c76 = [\"gui-structure-container\", \"\"];\nconst _c77 = [\"gui-structure-title-panel\", \"\"];\nconst _c78 = [\"gui-structure-footer-panel\", \"\"];\nconst _c79 = [\"gui-structure-blueprint\", \"\"];\nfunction StructureBlueprintComponent_div_0_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"div\", 8);\n }\n}\nfunction StructureBlueprintComponent_div_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"div\", 9);\n }\n}\nfunction StructureBlueprintComponent_ng_container_2_div_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"div\", 11);\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"position\", 0);\n }\n}\nfunction StructureBlueprintComponent_ng_container_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, StructureBlueprintComponent_ng_container_2_div_1_Template, 1, 1, \"div\", 10);\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const pagingModel_r1 = ctx.$implicit;\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r1.isPagingTopEnabled(pagingModel_r1));\n }\n}\nfunction StructureBlueprintComponent_ng_container_5_div_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"div\", 13);\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"ngClass\", ctx_r1.headerTopClasses);\n }\n}\nfunction StructureBlueprintComponent_ng_container_5_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, StructureBlueprintComponent_ng_container_5_div_1_Template, 1, 1, \"div\", 12);\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const topHeaderEnabled_r3 = ctx.$implicit;\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r1.isColumnHeaderTopEnabled(topHeaderEnabled_r3));\n }\n}\nfunction StructureBlueprintComponent_ng_container_9_div_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"div\", 13);\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"ngClass\", ctx_r1.headerBottomClasses);\n }\n}\nfunction StructureBlueprintComponent_ng_container_9_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, StructureBlueprintComponent_ng_container_9_div_1_Template, 1, 1, \"div\", 12);\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const bottomHeaderEnabled_r4 = ctx.$implicit;\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r1.isColumnHeaderBottomEnabled(bottomHeaderEnabled_r4));\n }\n}\nfunction StructureBlueprintComponent_ng_container_12_div_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"div\", 15);\n }\n}\nfunction StructureBlueprintComponent_ng_container_12_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, StructureBlueprintComponent_ng_container_12_div_1_Template, 1, 0, \"div\", 14);\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const footerPanelEnabled_r5 = ctx.$implicit;\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", footerPanelEnabled_r5);\n }\n}\nfunction StructureBlueprintComponent_ng_container_13_div_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"div\", 11);\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"position\", 1);\n }\n}\nfunction StructureBlueprintComponent_ng_container_13_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, StructureBlueprintComponent_ng_container_13_div_1_Template, 1, 1, \"div\", 10);\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const pagingModel_r6 = ctx.$implicit;\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r1.isPagingBottomEnabled(pagingModel_r6));\n }\n}\nfunction StructureBlueprintComponent_div_14_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"div\", 16);\n }\n}\nconst _c80 = (a0, a1) => ({\n \"gui-loader-visible\": a0,\n \"gui-loader-hidden\": a1\n});\nfunction StructureComponent_gui_spinner_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"gui-spinner\", 3);\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"diameter\", 120)(\"primary\", true);\n }\n}\nconst _c81 = [\"structure\"];\nconst _c82 = [\"gui-filter-icon\", \"\"];\nconst _c83 = [\"gui-filter-type-selector\", \"\", \"filterTypes\", \"\"];\nconst _c84 = [\"gui-filter-value\", \"\"];\nconst _c85 = [\"gui-field-selector\", \"\", \"fields\", \"\"];\nconst _c86 = [\"gui-filter-menu-active-filters\", \"\", \"activeFilters\", \"\"];\nconst _c87 = [\"gui-filter-menu\", \"\"];\nfunction FilterMenuComponent_div_8_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"div\", 9);\n i0.ɵɵlistener(\"valueChanged\", function FilterMenuComponent_div_8_Template_div_valueChanged_0_listener($event) {\n i0.ɵɵrestoreView(_r1);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.onValueChanged($event));\n });\n i0.ɵɵelementEnd();\n }\n}\nconst _c88 = [\"gui-filter-menu-trigger\", \"\"];\nfunction FilterMenuTriggerComponent_ng_container_1_div_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"div\", 4);\n }\n}\nfunction FilterMenuTriggerComponent_ng_container_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, FilterMenuTriggerComponent_ng_container_1_div_1_Template, 1, 0, \"div\", 3);\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const activeFiltersExist_r1 = ctx.$implicit;\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", activeFiltersExist_r1);\n }\n}\nconst _c89 = [\"gui-column-selector\", \"\", \"columns\", \"\"];\nconst _c90 = [\"gui-structure-quick-filters\", \"\"];\nconst _c91 = [\"gui-structure-cell-edit\", \"\", \"entity\", \"\", \"cell\", \"\"];\nfunction StructureCellEditComponent_ng_container_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainer(0);\n }\n}\nconst _c92 = [\"header\", \"\"];\nconst enTranslation = {\n sourceEmpty: 'There are no items to show.',\n pagingItemsPerPage: 'Items per page:',\n pagingOf: 'of',\n pagingNextPage: 'Next',\n pagingPrevPage: 'Prev',\n pagingNoItems: 'There is no items.',\n infoPanelShowing: 'Showing',\n infoPanelItems: 'items',\n infoPanelOutOf: 'out of',\n infoPanelThemeMangerTooltipText: 'Theme manager',\n infoPanelColumnManagerTooltipText: 'Column manager',\n infoPanelInfoTooltipText: 'info',\n themeManagerModalTitle: 'Theme manager',\n themeManagerModalTheme: 'Theme:',\n themeManagerModalRowColoring: 'Row coloring:',\n themeManagerModalVerticalGrid: 'Vertical grid',\n themeManagerModalHorizontalGrid: 'HorizontalGrid',\n columnManagerModalTitle: 'Manage columns',\n headerMenuMainTab: 'Menu',\n headerMenuMainTabColumnSort: 'Column sort',\n headerMenuMainTabHideColumn: 'Hide column',\n headerMenuMainTabHighlightColumn: 'Highlight',\n headerMenuMainTabMoveLeft: 'Move left',\n headerMenuMainTabMoveRight: 'Move right',\n headerMenuMainTabColumnSortAscending: 'Ascending',\n headerMenuMainTabColumnSortDescending: 'Descending',\n headerMenuMainTabColumnSortNone: 'None',\n headerMenuFilterTab: 'Filter',\n headerMenuColumnsTab: 'Columns',\n summariesCount: 'Count',\n summariesDist: 'Dist',\n summariesSum: 'Sum',\n summariesAvg: 'Avg',\n summariesMin: 'Min',\n summariesMax: 'Max',\n summariesMed: 'Med',\n summariesTruthy: 'Truthy',\n summariesFalsy: 'Falsy',\n summariesDistinctValuesTooltip: 'Distinct values',\n summariesAverageTooltip: 'Average',\n summariesMinTooltip: 'Min',\n summariesMaxTooltip: 'Max',\n summariesMedTooltip: 'Median',\n summariesCountTooltip: 'Number of items in the grid'\n};\nconst defaultTranslation = enTranslation;\nvar GuiDataType;\n(function (GuiDataType) {\n GuiDataType[GuiDataType[\"UNKNOWN\"] = 0] = \"UNKNOWN\";\n GuiDataType[GuiDataType[\"NUMBER\"] = 1] = \"NUMBER\";\n GuiDataType[GuiDataType[\"STRING\"] = 2] = \"STRING\";\n GuiDataType[GuiDataType[\"BOOLEAN\"] = 3] = \"BOOLEAN\";\n GuiDataType[GuiDataType[\"DATE\"] = 4] = \"DATE\";\n GuiDataType[GuiDataType[\"CUSTOM\"] = 5] = \"CUSTOM\";\n})(GuiDataType || (GuiDataType = {}));\nvar GuiCellView;\n(function (GuiCellView) {\n GuiCellView[GuiCellView[\"TEXT\"] = 0] = \"TEXT\";\n GuiCellView[GuiCellView[\"CHIP\"] = 1] = \"CHIP\";\n GuiCellView[GuiCellView[\"LINK\"] = 2] = \"LINK\";\n GuiCellView[GuiCellView[\"IMAGE\"] = 3] = \"IMAGE\";\n GuiCellView[GuiCellView[\"BOLD\"] = 4] = \"BOLD\";\n GuiCellView[GuiCellView[\"ITALIC\"] = 5] = \"ITALIC\";\n GuiCellView[GuiCellView[\"CHECKBOX\"] = 6] = \"CHECKBOX\";\n GuiCellView[GuiCellView[\"CUSTOM\"] = 7] = \"CUSTOM\";\n GuiCellView[GuiCellView[\"BAR\"] = 8] = \"BAR\";\n GuiCellView[GuiCellView[\"PERCENTAGE_BAR\"] = 9] = \"PERCENTAGE_BAR\";\n GuiCellView[GuiCellView[\"PERCENTAGE\"] = 10] = \"PERCENTAGE\";\n})(GuiCellView || (GuiCellView = {}));\nvar GuiNumberCellView;\n(function (GuiNumberCellView) {\n GuiNumberCellView[GuiNumberCellView[\"TEXT\"] = 0] = \"TEXT\";\n GuiNumberCellView[GuiNumberCellView[\"BOLD\"] = 1] = \"BOLD\";\n GuiNumberCellView[GuiNumberCellView[\"ITALIC\"] = 2] = \"ITALIC\";\n GuiNumberCellView[GuiNumberCellView[\"CHIP\"] = 3] = \"CHIP\";\n})(GuiNumberCellView || (GuiNumberCellView = {}));\nvar GuiStringCellView;\n(function (GuiStringCellView) {\n GuiStringCellView[GuiStringCellView[\"TEXT\"] = 0] = \"TEXT\";\n GuiStringCellView[GuiStringCellView[\"BOLD\"] = 1] = \"BOLD\";\n GuiStringCellView[GuiStringCellView[\"ITALIC\"] = 2] = \"ITALIC\";\n GuiStringCellView[GuiStringCellView[\"CHIP\"] = 3] = \"CHIP\";\n})(GuiStringCellView || (GuiStringCellView = {}));\nvar GuiBooleanCellView;\n(function (GuiBooleanCellView) {\n GuiBooleanCellView[GuiBooleanCellView[\"TEXT\"] = 0] = \"TEXT\";\n GuiBooleanCellView[GuiBooleanCellView[\"BOLD\"] = 1] = \"BOLD\";\n GuiBooleanCellView[GuiBooleanCellView[\"ITALIC\"] = 2] = \"ITALIC\";\n GuiBooleanCellView[GuiBooleanCellView[\"CHIP\"] = 3] = \"CHIP\";\n GuiBooleanCellView[GuiBooleanCellView[\"CHECKBOX\"] = 4] = \"CHECKBOX\";\n})(GuiBooleanCellView || (GuiBooleanCellView = {}));\nvar GuiDateCellView;\n(function (GuiDateCellView) {\n GuiDateCellView[GuiDateCellView[\"TEXT\"] = 0] = \"TEXT\";\n GuiDateCellView[GuiDateCellView[\"BOLD\"] = 1] = \"BOLD\";\n GuiDateCellView[GuiDateCellView[\"ITALIC\"] = 2] = \"ITALIC\";\n GuiDateCellView[GuiDateCellView[\"CHIP\"] = 3] = \"CHIP\";\n})(GuiDateCellView || (GuiDateCellView = {}));\nvar GuiTheme;\n(function (GuiTheme) {\n GuiTheme[GuiTheme[\"FABRIC\"] = 0] = \"FABRIC\";\n GuiTheme[GuiTheme[\"MATERIAL\"] = 1] = \"MATERIAL\";\n GuiTheme[GuiTheme[\"LIGHT\"] = 2] = \"LIGHT\";\n GuiTheme[GuiTheme[\"DARK\"] = 3] = \"DARK\";\n GuiTheme[GuiTheme[\"GENERIC\"] = 4] = \"GENERIC\";\n})(GuiTheme || (GuiTheme = {}));\nvar GuiRowColoring;\n(function (GuiRowColoring) {\n GuiRowColoring[GuiRowColoring[\"NONE\"] = 0] = \"NONE\";\n GuiRowColoring[GuiRowColoring[\"EVEN\"] = 1] = \"EVEN\";\n GuiRowColoring[GuiRowColoring[\"ODD\"] = 2] = \"ODD\";\n})(GuiRowColoring || (GuiRowColoring = {}));\nvar GuiSortingOrder;\n(function (GuiSortingOrder) {\n GuiSortingOrder[GuiSortingOrder[\"NONE\"] = 0] = \"NONE\";\n GuiSortingOrder[GuiSortingOrder[\"ASC\"] = 1] = \"ASC\";\n GuiSortingOrder[GuiSortingOrder[\"DESC\"] = 2] = \"DESC\";\n})(GuiSortingOrder || (GuiSortingOrder = {}));\nvar GuiPagingDisplay;\n(function (GuiPagingDisplay) {\n GuiPagingDisplay[GuiPagingDisplay[\"BASIC\"] = 0] = \"BASIC\";\n GuiPagingDisplay[GuiPagingDisplay[\"ADVANCED\"] = 1] = \"ADVANCED\";\n})(GuiPagingDisplay || (GuiPagingDisplay = {}));\nvar GuiColumnAlign;\n(function (GuiColumnAlign) {\n GuiColumnAlign[GuiColumnAlign[\"RIGHT\"] = 0] = \"RIGHT\";\n GuiColumnAlign[GuiColumnAlign[\"CENTER\"] = 1] = \"CENTER\";\n GuiColumnAlign[GuiColumnAlign[\"LEFT\"] = 2] = \"LEFT\";\n})(GuiColumnAlign || (GuiColumnAlign = {}));\nvar GuiRowSelectionType;\n(function (GuiRowSelectionType) {\n GuiRowSelectionType[GuiRowSelectionType[\"ROW\"] = 0] = \"ROW\";\n GuiRowSelectionType[GuiRowSelectionType[\"CHECKBOX\"] = 1] = \"CHECKBOX\";\n GuiRowSelectionType[GuiRowSelectionType[\"RADIO\"] = 2] = \"RADIO\";\n})(GuiRowSelectionType || (GuiRowSelectionType = {}));\nvar GuiRowSelectionMode;\n(function (GuiRowSelectionMode) {\n GuiRowSelectionMode[GuiRowSelectionMode[\"SINGLE\"] = 0] = \"SINGLE\";\n GuiRowSelectionMode[GuiRowSelectionMode[\"MULTIPLE\"] = 1] = \"MULTIPLE\";\n})(GuiRowSelectionMode || (GuiRowSelectionMode = {}));\nvar GuiRowCustomSelectionType;\n(function (GuiRowCustomSelectionType) {\n GuiRowCustomSelectionType[\"SELECT_ALL\"] = \"SELECT_ALL\";\n GuiRowCustomSelectionType[\"UNSELECT_ALL\"] = \"UNSELECT_ALL\";\n GuiRowCustomSelectionType[\"INVERT\"] = \"INVERT\";\n})(GuiRowCustomSelectionType || (GuiRowCustomSelectionType = {}));\nconst GuiDefaultTranslation = defaultTranslation;\nvar DataType;\n(function (DataType) {\n DataType[DataType[\"UNKNOWN\"] = 0] = \"UNKNOWN\";\n DataType[DataType[\"NUMBER\"] = 1] = \"NUMBER\";\n DataType[DataType[\"STRING\"] = 2] = \"STRING\";\n DataType[DataType[\"BOOLEAN\"] = 3] = \"BOOLEAN\";\n DataType[DataType[\"DATE\"] = 4] = \"DATE\";\n DataType[DataType[\"CUSTOM\"] = 5] = \"CUSTOM\";\n})(DataType || (DataType = {}));\nclass GuiGridColumnTypeConverter {\n convertType(type) {\n if (typeof type === 'string') {\n return this.convertTypeString(type);\n } else {\n return this.convertTypeEnum(type);\n }\n }\n convertTypeEnum(enumType) {\n switch (enumType) {\n case GuiDataType.STRING:\n return DataType.STRING;\n case GuiDataType.NUMBER:\n return DataType.NUMBER;\n case GuiDataType.BOOLEAN:\n return DataType.BOOLEAN;\n case GuiDataType.DATE:\n return DataType.DATE;\n case GuiDataType.UNKNOWN:\n return DataType.UNKNOWN;\n case GuiDataType.CUSTOM:\n return DataType.CUSTOM;\n default:\n return DataType.STRING;\n }\n }\n convertTypeString(type) {\n const loweredType = type.toLocaleLowerCase();\n switch (loweredType) {\n case 'string':\n return DataType.STRING;\n case 'number':\n return DataType.NUMBER;\n case 'boolean':\n return DataType.BOOLEAN;\n case 'date':\n return DataType.DATE;\n case 'unknown':\n return DataType.UNKNOWN;\n case 'custom':\n return DataType.CUSTOM;\n default:\n return DataType.STRING;\n }\n }\n}\nvar SummariesType;\n(function (SummariesType) {\n SummariesType[SummariesType[\"COUNT\"] = 1024] = \"COUNT\";\n SummariesType[SummariesType[\"DISTINCT\"] = 1] = \"DISTINCT\";\n SummariesType[SummariesType[\"SUM\"] = 2] = \"SUM\";\n SummariesType[SummariesType[\"AVERAGE\"] = 4] = \"AVERAGE\";\n SummariesType[SummariesType[\"MIN\"] = 8] = \"MIN\";\n SummariesType[SummariesType[\"MAX\"] = 16] = \"MAX\";\n SummariesType[SummariesType[\"MEDIAN\"] = 32] = \"MEDIAN\";\n SummariesType[SummariesType[\"TRUTHY\"] = 64] = \"TRUTHY\";\n SummariesType[SummariesType[\"FALSY\"] = 128] = \"FALSY\";\n SummariesType[SummariesType[\"EARLIEST\"] = 256] = \"EARLIEST\";\n SummariesType[SummariesType[\"LATEST\"] = 512] = \"LATEST\";\n})(SummariesType || (SummariesType = {}));\n// count\n// count distinct\n// percentile\n// std.dev\n// std.dev Pop\n// variance\n// variance pop\n\nclass GuiGridColumnSummariesConverter {\n convert(summariesConfig) {\n const columnSummariesConfig = {};\n if (summariesConfig.enabled !== undefined && summariesConfig.enabled !== null) {\n columnSummariesConfig.enabled = summariesConfig.enabled;\n }\n if (summariesConfig.summariesTypes !== undefined && summariesConfig.summariesTypes !== null) {\n columnSummariesConfig.summariesTypes = this.convertSummariesTypes(summariesConfig.summariesTypes);\n }\n return columnSummariesConfig;\n }\n convertSummariesTypes(configSummariesTypes) {\n const summariesTypes = [];\n configSummariesTypes.forEach(type => {\n const summariesType = this.convertSummariesType(type);\n if (summariesType !== undefined && summariesType !== null) {\n summariesTypes.push(summariesType);\n }\n });\n return summariesTypes;\n }\n convertSummariesType(type) {\n const loweredSummariesType = type.toLocaleLowerCase();\n switch (loweredSummariesType) {\n case 'count':\n return SummariesType.COUNT;\n case 'distinct':\n return SummariesType.DISTINCT;\n case 'sum':\n return SummariesType.SUM;\n case 'average':\n return SummariesType.AVERAGE;\n case 'min':\n return SummariesType.MIN;\n case 'max':\n return SummariesType.MAX;\n case 'median':\n return SummariesType.MEDIAN;\n case 'truthy':\n return SummariesType.TRUTHY;\n case 'falsy':\n return SummariesType.FALSY;\n case 'earliest':\n return SummariesType.EARLIEST;\n case 'latest':\n return SummariesType.LATEST;\n default:\n return null;\n }\n }\n}\nvar CellView;\n(function (CellView) {\n CellView[CellView[\"TEXT\"] = 0] = \"TEXT\";\n CellView[CellView[\"NUMBER\"] = 1] = \"NUMBER\";\n CellView[CellView[\"CHIP\"] = 2] = \"CHIP\";\n CellView[CellView[\"LINK\"] = 3] = \"LINK\";\n CellView[CellView[\"IMAGE\"] = 4] = \"IMAGE\";\n CellView[CellView[\"BOLD\"] = 5] = \"BOLD\";\n CellView[CellView[\"ITALIC\"] = 6] = \"ITALIC\";\n CellView[CellView[\"CHECKBOX\"] = 7] = \"CHECKBOX\";\n CellView[CellView[\"CUSTOM\"] = 8] = \"CUSTOM\";\n CellView[CellView[\"FUNCTION\"] = 9] = \"FUNCTION\";\n CellView[CellView[\"DATE\"] = 10] = \"DATE\";\n CellView[CellView[\"BAR\"] = 11] = \"BAR\";\n CellView[CellView[\"PERCENTAGE_BAR\"] = 12] = \"PERCENTAGE_BAR\";\n CellView[CellView[\"PERCENTAGE\"] = 13] = \"PERCENTAGE\";\n CellView[CellView[\"NG_TEMPLATE\"] = 14] = \"NG_TEMPLATE\";\n CellView[CellView[\"HTML\"] = 15] = \"HTML\";\n})(CellView || (CellView = {}));\nclass GuiGridColumnViewConverter {\n convert(view) {\n if (typeof view === 'string') {\n return this.convertString(view);\n } else if (typeof view === 'function') {\n return view;\n } else {\n return this.convertEnum(view);\n }\n }\n convertString(view) {\n const loweredView = view.toLocaleLowerCase();\n switch (loweredView) {\n case 'text':\n return CellView.TEXT;\n case 'chip':\n return CellView.CHIP;\n case 'link':\n return CellView.LINK;\n case 'image':\n return CellView.IMAGE;\n case 'bold':\n return CellView.BOLD;\n case 'italic':\n return CellView.ITALIC;\n case 'checkbox':\n return CellView.CHECKBOX;\n case 'custom':\n return CellView.CUSTOM;\n case 'bar':\n return CellView.BAR;\n case 'percentage_bar':\n return CellView.PERCENTAGE_BAR;\n case 'percentage':\n return CellView.PERCENTAGE;\n default:\n return CellView.TEXT;\n }\n }\n convertEnum(view) {\n switch (view) {\n case GuiCellView.TEXT:\n return CellView.TEXT;\n case GuiCellView.CHIP:\n return CellView.CHIP;\n case GuiCellView.LINK:\n return CellView.LINK;\n case GuiCellView.IMAGE:\n return CellView.IMAGE;\n case GuiCellView.BOLD:\n return CellView.BOLD;\n case GuiCellView.ITALIC:\n return CellView.ITALIC;\n case GuiCellView.CHECKBOX:\n return CellView.CHECKBOX;\n case GuiCellView.CUSTOM:\n return CellView.CUSTOM;\n case GuiCellView.BAR:\n return CellView.BAR;\n case GuiCellView.PERCENTAGE_BAR:\n return CellView.PERCENTAGE_BAR;\n case GuiCellView.PERCENTAGE:\n return CellView.PERCENTAGE;\n default:\n return CellView.TEXT;\n }\n }\n}\nclass GuiGridColumnSortingConverter {\n convert(sortingConfig) {\n if (typeof sortingConfig === 'boolean') {\n return {\n enabled: sortingConfig\n };\n } else {\n return sortingConfig;\n }\n }\n}\nclass GuiGridColumnCellEditingConverter {\n convert(config) {\n if (typeof config === 'boolean') {\n return {\n enabled: config\n };\n }\n return config;\n }\n}\nvar ColumnAlign;\n(function (ColumnAlign) {\n ColumnAlign[ColumnAlign[\"RIGHT\"] = 0] = \"RIGHT\";\n ColumnAlign[ColumnAlign[\"CENTER\"] = 1] = \"CENTER\";\n ColumnAlign[ColumnAlign[\"LEFT\"] = 2] = \"LEFT\";\n})(ColumnAlign || (ColumnAlign = {}));\nclass GuiGridColumnAlignConverter {\n convert(align) {\n if (typeof align === 'string') {\n return this.convertTypeString(align);\n } else {\n return this.convertTypeEnum(align);\n }\n }\n convertTypeEnum(align) {\n switch (align) {\n case GuiColumnAlign.RIGHT:\n return ColumnAlign.RIGHT;\n case GuiColumnAlign.CENTER:\n return ColumnAlign.CENTER;\n case GuiColumnAlign.LEFT:\n return ColumnAlign.LEFT;\n default:\n return ColumnAlign.LEFT;\n }\n }\n convertTypeString(align) {\n const loweredType = align.toLocaleLowerCase();\n switch (loweredType) {\n case 'right':\n return ColumnAlign.RIGHT;\n case 'center':\n return ColumnAlign.CENTER;\n case 'left':\n return ColumnAlign.LEFT;\n default:\n return ColumnAlign.LEFT;\n }\n }\n}\nclass GuiGridColumnConverter {\n columnTypeConverter = new GuiGridColumnTypeConverter();\n columnSummariesConverter = new GuiGridColumnSummariesConverter();\n columnViewConverter = new GuiGridColumnViewConverter();\n columnSortingConverter = new GuiGridColumnSortingConverter();\n columnCellEditingConverter = new GuiGridColumnCellEditingConverter();\n columnAlignConverter = new GuiGridColumnAlignConverter();\n convert(configs) {\n return configs.map(config => {\n if (config.columns !== undefined) {\n const columns = config.columns.map(c => this.convertColumn(c));\n return {\n header: config.header,\n columns: columns\n };\n } else {\n return this.convertColumn(config);\n }\n });\n }\n convertColumn(guiColumn) {\n const columnConfig = {};\n if (guiColumn.name !== undefined && guiColumn.name !== null) {\n columnConfig.name = guiColumn.name;\n } else if (guiColumn.field !== undefined && guiColumn.field !== null) {\n if (typeof guiColumn.field === 'string') {\n columnConfig.name = guiColumn.field;\n }\n }\n if (guiColumn.type !== undefined && guiColumn.type !== null) {\n columnConfig.type = this.columnTypeConverter.convertType(guiColumn.type);\n }\n if (guiColumn.header !== undefined && guiColumn.header !== null) {\n columnConfig.header = guiColumn.header;\n }\n if (guiColumn.enabled !== undefined && guiColumn.enabled !== null) {\n columnConfig.enabled = guiColumn.enabled;\n }\n if (guiColumn.field !== undefined && guiColumn.field !== null) {\n columnConfig.field = guiColumn.field;\n }\n if (guiColumn.width !== undefined && guiColumn.width !== null) {\n columnConfig.width = guiColumn.width;\n }\n if (guiColumn.align !== undefined && guiColumn.align !== null) {\n columnConfig.align = this.columnAlignConverter.convert(guiColumn.align);\n }\n if (guiColumn.view !== undefined && guiColumn.view !== null) {\n columnConfig.view = this.columnViewConverter.convert(guiColumn.view);\n }\n if (guiColumn.summaries !== undefined && guiColumn.summaries !== null) {\n columnConfig.summaries = this.columnSummariesConverter.convert(guiColumn.summaries);\n }\n if (guiColumn.sorting !== undefined && guiColumn.sorting !== null) {\n columnConfig.sorting = this.columnSortingConverter.convert(guiColumn.sorting);\n }\n if (guiColumn.cellEditing !== undefined && guiColumn.cellEditing !== null) {\n columnConfig.cellEditing = this.columnCellEditingConverter.convert(guiColumn.cellEditing);\n }\n if (guiColumn.formatter !== undefined && guiColumn.formatter !== null) {\n columnConfig.formatter = guiColumn.formatter;\n }\n if (guiColumn.matcher !== undefined && guiColumn.matcher !== null) {\n columnConfig.matcher = guiColumn.matcher;\n }\n if (guiColumn.cssClasses !== undefined && guiColumn.cssClasses !== null) {\n columnConfig.cssClasses = guiColumn.cssClasses;\n }\n if (guiColumn.styles !== undefined && guiColumn.styles !== null) {\n columnConfig.styles = guiColumn.styles;\n }\n if (guiColumn.templateRef !== undefined && guiColumn.templateRef !== null) {\n columnConfig.templateRef = guiColumn.templateRef;\n columnConfig.view = CellView.NG_TEMPLATE;\n }\n return columnConfig;\n }\n}\nvar SchemaTheme;\n(function (SchemaTheme) {\n SchemaTheme[SchemaTheme[\"FABRIC\"] = 0] = \"FABRIC\";\n SchemaTheme[SchemaTheme[\"MATERIAL\"] = 1] = \"MATERIAL\";\n SchemaTheme[SchemaTheme[\"LIGHT\"] = 2] = \"LIGHT\";\n SchemaTheme[SchemaTheme[\"DARK\"] = 3] = \"DARK\";\n SchemaTheme[SchemaTheme[\"GENERIC\"] = 4] = \"GENERIC\";\n})(SchemaTheme || (SchemaTheme = {}));\nclass GuiGridThemeConverter {\n convert(theme) {\n if (typeof theme === 'string') {\n return this.convertString(theme);\n } else {\n return this.convertEnum(theme);\n }\n }\n convertToGuiTheme(theme) {\n switch (theme) {\n case SchemaTheme.MATERIAL:\n return GuiTheme.MATERIAL;\n case SchemaTheme.FABRIC:\n return GuiTheme.FABRIC;\n case SchemaTheme.LIGHT:\n return GuiTheme.LIGHT;\n case SchemaTheme.DARK:\n return GuiTheme.DARK;\n case SchemaTheme.GENERIC:\n return GuiTheme.GENERIC;\n default:\n return GuiTheme.GENERIC;\n }\n }\n convertString(theme) {\n const loweredTheme = theme.toLocaleLowerCase();\n switch (loweredTheme) {\n case 'material':\n return SchemaTheme.MATERIAL;\n case 'fabric':\n return SchemaTheme.FABRIC;\n case 'light':\n return SchemaTheme.LIGHT;\n case 'dark':\n return SchemaTheme.DARK;\n case 'generic':\n return SchemaTheme.GENERIC;\n default:\n return SchemaTheme.FABRIC;\n }\n }\n convertEnum(theme) {\n switch (theme) {\n case GuiTheme.MATERIAL:\n return SchemaTheme.MATERIAL;\n case GuiTheme.FABRIC:\n return SchemaTheme.FABRIC;\n case GuiTheme.LIGHT:\n return SchemaTheme.LIGHT;\n case GuiTheme.DARK:\n return SchemaTheme.DARK;\n case GuiTheme.GENERIC:\n return SchemaTheme.GENERIC;\n default:\n return SchemaTheme.FABRIC;\n }\n }\n}\nvar RowColoring;\n(function (RowColoring) {\n RowColoring[RowColoring[\"NONE\"] = 0] = \"NONE\";\n RowColoring[RowColoring[\"EVEN\"] = 1] = \"EVEN\";\n RowColoring[RowColoring[\"ODD\"] = 2] = \"ODD\";\n})(RowColoring || (RowColoring = {}));\nclass GuiGridRowColoringConverter {\n convert(rowColoring) {\n if (typeof rowColoring === 'string') {\n return this.convertString(rowColoring);\n } else {\n return this.convertEnum(rowColoring);\n }\n }\n convertToGuiRowColoring(value) {\n switch (value) {\n case RowColoring.NONE:\n return GuiRowColoring.NONE;\n case RowColoring.EVEN:\n return GuiRowColoring.EVEN;\n case RowColoring.ODD:\n return GuiRowColoring.ODD;\n default:\n return GuiRowColoring.EVEN;\n }\n }\n convertString(rowColoring) {\n const loweredRowColoring = rowColoring.toLocaleLowerCase();\n switch (loweredRowColoring) {\n case 'none':\n return RowColoring.NONE;\n case 'even':\n return RowColoring.EVEN;\n case 'odd':\n return RowColoring.ODD;\n default:\n return RowColoring.EVEN;\n }\n }\n convertEnum(rowColoring) {\n switch (rowColoring) {\n case GuiRowColoring.NONE:\n return RowColoring.NONE;\n case GuiRowColoring.EVEN:\n return RowColoring.EVEN;\n case GuiRowColoring.ODD:\n return RowColoring.ODD;\n default:\n return RowColoring.EVEN;\n }\n }\n}\nclass GuiGridColumnMenuConverter {\n convert(config) {\n return config;\n }\n static ɵfac = function GuiGridColumnMenuConverter_Factory(t) {\n return new (t || GuiGridColumnMenuConverter)();\n };\n static ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: GuiGridColumnMenuConverter,\n factory: GuiGridColumnMenuConverter.ɵfac\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(GuiGridColumnMenuConverter, [{\n type: Injectable\n }], null, null);\n})();\nvar PagingDisplayMode;\n(function (PagingDisplayMode) {\n PagingDisplayMode[PagingDisplayMode[\"BASIC\"] = 0] = \"BASIC\";\n PagingDisplayMode[PagingDisplayMode[\"ADVANCED\"] = 1] = \"ADVANCED\";\n})(PagingDisplayMode || (PagingDisplayMode = {}));\nclass GuiGridPagingConverter {\n convert(guiPaging) {\n const pagingConfig = {};\n if (guiPaging.enabled !== undefined && guiPaging.enabled !== null) {\n pagingConfig.enabled = guiPaging.enabled;\n }\n if (guiPaging.page !== undefined && guiPaging.page !== null) {\n pagingConfig.page = guiPaging.page;\n }\n if (guiPaging.pageSize !== undefined && guiPaging.pageSize !== null) {\n pagingConfig.pageSize = guiPaging.pageSize;\n }\n if (guiPaging.pageSizes !== undefined && guiPaging.pageSizes !== null) {\n pagingConfig.pageSizes = guiPaging.pageSizes;\n }\n if (guiPaging.pagerTop !== undefined && guiPaging.pagerTop !== null) {\n pagingConfig.pagerTop = guiPaging.pagerTop;\n }\n if (guiPaging.pagerBottom !== undefined && guiPaging.pagerBottom !== null) {\n pagingConfig.pagerBottom = guiPaging.pagerBottom;\n }\n if (guiPaging.display !== undefined && guiPaging.display !== null) {\n pagingConfig.displayMode = this.convertDisplay(guiPaging.display);\n }\n return pagingConfig;\n }\n convertDisplay(pagingDisplay) {\n if (typeof pagingDisplay === 'string') {\n return this.convertString(pagingDisplay);\n } else {\n return this.convertEnum(pagingDisplay);\n }\n }\n convertString(pagingDisplay) {\n const loweredPaging = pagingDisplay.toLocaleLowerCase();\n switch (loweredPaging) {\n case 'basic':\n return PagingDisplayMode.BASIC;\n case 'advanced':\n return PagingDisplayMode.ADVANCED;\n default:\n return PagingDisplayMode.BASIC;\n }\n }\n convertEnum(pagingDisplay) {\n switch (pagingDisplay) {\n case GuiPagingDisplay.BASIC:\n return PagingDisplayMode.BASIC;\n case GuiPagingDisplay.ADVANCED:\n return PagingDisplayMode.ADVANCED;\n default:\n return PagingDisplayMode.BASIC;\n }\n }\n}\nclass GenericBuilder {\n build() {\n return this.buildObject();\n }\n}\nvar RowSelectionType;\n(function (RowSelectionType) {\n RowSelectionType[\"ROW\"] = \"ROW\";\n RowSelectionType[\"CHECKBOX\"] = \"CHECKBOX\";\n RowSelectionType[\"RADIO\"] = \"RADIO\";\n})(RowSelectionType || (RowSelectionType = {}));\nvar RowSelectionMode;\n(function (RowSelectionMode) {\n RowSelectionMode[\"SINGLE\"] = \"SINGLE\";\n RowSelectionMode[\"MULTIPLE\"] = \"MULTIPLE\";\n})(RowSelectionMode || (RowSelectionMode = {}));\nclass RowSelection {\n enabled;\n selectedRowIndexes;\n selectedRowIds;\n type;\n mode;\n matcher;\n customConfig;\n constructor(config) {\n if (config.enabled !== undefined) {\n this.enabled = config.enabled;\n }\n if (config?.selectedRowIndexes) {\n this.selectedRowIndexes = config.selectedRowIndexes;\n }\n if (config?.selectedRowIds) {\n this.selectedRowIds = config.selectedRowIds;\n }\n if (config?.mode) {\n this.mode = config.mode;\n }\n if (config?.type) {\n this.type = config.type;\n }\n if (config?.matcher) {\n this.matcher = config.matcher;\n }\n if (config?.config) {\n this.customConfig = config.config;\n }\n }\n isModeDefined() {\n return this.mode !== undefined;\n }\n isTypeDefined() {\n return this.type !== undefined;\n }\n isSelectedRowIndexesDefined() {\n return this.selectedRowIndexes !== undefined;\n }\n isSelectedRowIdsDefined() {\n return this.selectedRowIds !== undefined;\n }\n isEnabledDefined() {\n return this.enabled !== undefined;\n }\n isMatcherDefined() {\n return this.matcher !== undefined;\n }\n isEnabled() {\n return this.enabled;\n }\n isCustomSelectConfig() {\n return this.customConfig !== undefined;\n }\n getSelectedRowIndexes() {\n return this.selectedRowIndexes;\n }\n getSelectedRowIds() {\n return this.selectedRowIds;\n }\n getMode() {\n return this.mode;\n }\n getType() {\n return this.type;\n }\n getMatcher() {\n return this.matcher;\n }\n getCustomSelectConfig() {\n return this.customConfig;\n }\n // eslint-disable-next-line @typescript-eslint/member-ordering\n static Builder = class RowSelectionBuilder extends GenericBuilder {\n enabled;\n selectedRowIndexes;\n selectedRowIds;\n type;\n mode;\n config;\n matcher;\n constructor() {\n super();\n }\n buildObject() {\n return new RowSelection({\n enabled: this.enabled,\n selectedRowIndexes: this.selectedRowIndexes,\n selectedRowIds: this.selectedRowIds,\n type: this.type,\n mode: this.mode,\n matcher: this.matcher,\n config: this.config\n });\n }\n withEnabled(enabled) {\n this.enabled = enabled;\n return this;\n }\n withSelectedRowIndexes(indexes) {\n this.selectedRowIndexes = indexes;\n return this;\n }\n withSelectedRowIds(ids) {\n this.selectedRowIds = ids;\n return this;\n }\n withType(type) {\n this.type = type;\n return this;\n }\n withMode(mode) {\n this.mode = mode;\n return this;\n }\n withMatcher(matcher) {\n this.matcher = matcher;\n return this;\n }\n witCustomSelection(config) {\n this.config = config;\n return this;\n }\n };\n}\nclass FormationCustomSelectionConfig {\n enabled;\n selections;\n}\nclass GuiGridRowSelectionConverter {\n convert(selection) {\n const builder = new RowSelection.Builder();\n if (typeof selection === 'boolean') {\n return builder.withEnabled(selection).build();\n } else {\n if (selection.enabled !== undefined) {\n builder.withEnabled(selection.enabled);\n }\n if (selection.selectedRowIndexes !== undefined) {\n builder.withSelectedRowIndexes(selection.selectedRowIndexes);\n }\n if (selection.selectedRowIds !== undefined) {\n builder.withSelectedRowIds(selection.selectedRowIds);\n }\n if (selection.mode !== undefined) {\n const mode = this.convertMode(selection.mode);\n builder.withMode(mode);\n }\n if (selection.type !== undefined) {\n const type = this.convertType(selection.type);\n builder.withType(type);\n }\n if (selection.matcher !== undefined) {\n const matcher = this.convertMatcher(selection.matcher);\n builder.withMatcher(matcher);\n }\n if (selection.custom !== undefined) {\n const customSelection = this.convertCustomSelection(selection.custom);\n builder.witCustomSelection(customSelection);\n }\n return builder.build();\n }\n }\n convertMode(mode) {\n if (typeof mode === 'string') {\n switch (mode.toLowerCase()) {\n case 'single':\n return RowSelectionMode.SINGLE;\n case 'multiple':\n return RowSelectionMode.MULTIPLE;\n default:\n return RowSelectionMode.SINGLE;\n }\n } else {\n switch (mode) {\n case GuiRowSelectionMode.SINGLE:\n return RowSelectionMode.SINGLE;\n case GuiRowSelectionMode.MULTIPLE:\n return RowSelectionMode.MULTIPLE;\n default:\n return RowSelectionMode.SINGLE;\n }\n }\n }\n convertType(type) {\n if (typeof type === 'string') {\n switch (type.toLowerCase()) {\n case 'row':\n return RowSelectionType.ROW;\n case 'checkbox':\n return RowSelectionType.CHECKBOX;\n case 'radio':\n return RowSelectionType.RADIO;\n default:\n return RowSelectionType.ROW;\n }\n } else {\n switch (type) {\n case GuiRowSelectionType.ROW:\n return RowSelectionType.ROW;\n case GuiRowSelectionType.CHECKBOX:\n return RowSelectionType.CHECKBOX;\n case GuiRowSelectionType.RADIO:\n return RowSelectionType.RADIO;\n default:\n return RowSelectionType.ROW;\n }\n }\n }\n convertMatcher(matcher) {\n if (typeof matcher === 'string') {\n return item => item[matcher];\n } else {\n return matcher;\n }\n }\n convertCustomSelection(config) {\n let formationConfig = new FormationCustomSelectionConfig();\n if (config?.enabled) {\n formationConfig.enabled = config.enabled;\n }\n if (config?.selections && Array.isArray(config?.selections)) {\n formationConfig.selections = config.selections.map(customSelection => {\n if (typeof customSelection === 'string') {\n return customSelection;\n } else {\n return customSelection;\n }\n });\n }\n return formationConfig;\n }\n}\nclass GuiGridColumnComponent {\n templateRef;\n name;\n field;\n type;\n view;\n header;\n width;\n enabled;\n align;\n summaries;\n sorting;\n cellEditing;\n formatter;\n matcher;\n cssClasses;\n styles;\n static ɵfac = function GuiGridColumnComponent_Factory(t) {\n return new (t || GuiGridColumnComponent)();\n };\n static ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: GuiGridColumnComponent,\n selectors: [[\"gui-grid-column\"]],\n contentQueries: function GuiGridColumnComponent_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, TemplateRef, 7);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.templateRef = _t.first);\n }\n },\n inputs: {\n name: \"name\",\n field: \"field\",\n type: \"type\",\n view: \"view\",\n header: \"header\",\n width: \"width\",\n enabled: \"enabled\",\n align: \"align\",\n summaries: \"summaries\",\n sorting: \"sorting\",\n cellEditing: \"cellEditing\",\n formatter: \"formatter\",\n matcher: \"matcher\",\n cssClasses: \"cssClasses\",\n styles: \"styles\"\n },\n decls: 0,\n vars: 0,\n template: function GuiGridColumnComponent_Template(rf, ctx) {},\n encapsulation: 2\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(GuiGridColumnComponent, [{\n type: Component,\n args: [{\n selector: 'gui-grid-column',\n template: ''\n }]\n }], null, {\n templateRef: [{\n type: ContentChild,\n args: [TemplateRef, {\n static: true\n }]\n }],\n name: [{\n type: Input\n }],\n field: [{\n type: Input\n }],\n type: [{\n type: Input\n }],\n view: [{\n type: Input\n }],\n header: [{\n type: Input\n }],\n width: [{\n type: Input\n }],\n enabled: [{\n type: Input\n }],\n align: [{\n type: Input\n }],\n summaries: [{\n type: Input\n }],\n sorting: [{\n type: Input\n }],\n cellEditing: [{\n type: Input\n }],\n formatter: [{\n type: Input\n }],\n matcher: [{\n type: Input\n }],\n cssClasses: [{\n type: Input\n }],\n styles: [{\n type: Input\n }]\n });\n})();\nclass GuiGridCellEditConverter {\n convert(config) {\n if (typeof config === 'boolean') {\n return {\n enabled: config\n };\n }\n return config;\n }\n}\nfunction checkInput(prop) {\n return {\n isChanged: () => {\n return hasChanged(prop);\n },\n ifChanged: callback => {\n if (hasChanged(prop)) {\n callback();\n }\n }\n };\n}\nfunction ifChanged(prop, callback) {\n if (hasChanged(prop)) {\n callback(prop.currentValue);\n }\n}\nfunction hasChanged(prop) {\n return prop !== undefined && prop.currentValue !== undefined;\n}\nclass GuiGridGateway {\n guiGridColumnComponent;\n /**\n * INPUTS\n */\n columnHeaderTop;\n columnHeaderBottom;\n maxHeight;\n width;\n rowHeight;\n autoResizeWidth;\n source = [];\n columns = [];\n paging;\n verticalGrid;\n horizontalGrid;\n theme;\n rowColoring;\n rowSelection;\n rowStyle;\n rowClass;\n loading;\n virtualScroll;\n sorting;\n searching;\n titlePanel;\n footerPanel;\n /**\n * @experimental\n */\n filtering;\n /**\n * @experimental\n */\n quickFilters;\n /**\n * @experimental\n */\n editMode;\n /**\n * @experimental\n */\n cellEditing;\n infoPanel;\n /**\n * @experimental\n */\n summaries;\n columnMenu;\n rowDetail;\n localization;\n /**\n * OUTPUTS\n */\n pageChanged = new EventEmitter();\n pageSizeChanged = new EventEmitter();\n itemsSelected = new EventEmitter();\n selectedRows = new EventEmitter();\n columnsChanged = new EventEmitter();\n containerWidthChanged = new EventEmitter();\n sourceEdited = new EventEmitter();\n cellEditEntered = new EventEmitter();\n cellEditCanceled = new EventEmitter();\n cellEditSubmitted = new EventEmitter();\n searchPhraseChanged = new EventEmitter();\n themeChanged = new EventEmitter();\n horizontalGridChanged = new EventEmitter();\n verticalGridChanged = new EventEmitter();\n rowColoringChanged = new EventEmitter();\n /** @internal */\n columnsConfig;\n themeConfig; // SchemaTheme;\n rowColoringConfig; // RowColoring;\n columnMenuConfig;\n rowSelectionConfig;\n cellEditingConfig;\n gridColumnConverter = new GuiGridColumnConverter();\n gridThemeConverter = new GuiGridThemeConverter();\n gridRowColoringConverter = new GuiGridRowColoringConverter();\n gridColumnMenuConverter = new GuiGridColumnMenuConverter();\n gridPagingConverter = new GuiGridPagingConverter();\n gridRowSelectionConverter = new GuiGridRowSelectionConverter();\n guiGridCellEditConverter = new GuiGridCellEditConverter();\n constructor() {}\n ngOnChanges(changes) {\n ifChanged(changes.columns, () => {\n this.columnsConfig = this.gridColumnConverter.convert(this.columns);\n });\n ifChanged(changes.theme, () => {\n this.themeConfig = this.gridThemeConverter.convert(this.theme);\n });\n ifChanged(changes.rowColoring, () => {\n this.rowColoringConfig = this.gridRowColoringConverter.convert(this.rowColoring);\n });\n ifChanged(changes.columnMenu, () => {\n this.columnMenuConfig = this.gridColumnMenuConverter.convert(this.columnMenu);\n });\n ifChanged(changes.rowSelection, () => {\n this.rowSelectionConfig = this.gridRowSelectionConverter.convert(this.rowSelection);\n });\n ifChanged(changes.cellEditing, () => {\n this.cellEditingConfig = this.guiGridCellEditConverter.convert(this.cellEditing);\n });\n // TODO\n ifChanged(changes.paging, () => {\n if (typeof this.paging !== 'boolean') {\n this.paging = this.gridPagingConverter.convert(this.paging);\n }\n });\n }\n ngAfterContentInit() {\n if (this.guiGridColumnComponent && this.guiGridColumnComponent.toArray().length > 0) {\n this.columnsConfig = this.gridColumnConverter.convert(this.guiGridColumnComponent.toArray());\n }\n }\n onPageChange(page) {\n this.pageChanged.emit(page);\n }\n onPageSizeChange(pageSize) {\n this.pageSizeChanged.emit(pageSize);\n }\n onItemSelect(item) {\n this.itemsSelected.emit(item);\n }\n onRowsSelect(rows) {\n const guiRows = rows.map(row => {\n return {\n index: row.getIndex(),\n source: row.getItem(),\n itemId: row.getItemId()\n };\n });\n this.selectedRows.emit(guiRows);\n }\n onColumnsChange() {\n this.columnsChanged.emit();\n }\n onContainerWidthChange(containerWidth) {\n this.containerWidthChanged.emit(containerWidth);\n }\n onSourceEdit(value) {\n this.sourceEdited.emit(value);\n }\n onCellEditEnter() {\n this.cellEditEntered.emit();\n }\n onCellEditSubmit() {\n this.cellEditSubmitted.emit();\n }\n onCellEditCancel() {\n this.cellEditCanceled.emit();\n }\n onSearchPhrase(value) {\n this.searchPhraseChanged.emit(value);\n }\n onTheme(value) {\n this.themeChanged.emit(this.gridThemeConverter.convertToGuiTheme(value));\n }\n onHorizontalGrid(value) {\n this.horizontalGridChanged.emit(value);\n }\n onVerticalGrid(value) {\n this.verticalGridChanged.emit(value);\n }\n onRowColoring(value) {\n this.rowColoringChanged.emit(this.gridRowColoringConverter.convertToGuiRowColoring(value));\n }\n static ɵfac = function GuiGridGateway_Factory(t) {\n return new (t || GuiGridGateway)();\n };\n static ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: GuiGridGateway,\n contentQueries: function GuiGridGateway_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, GuiGridColumnComponent, 4);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.guiGridColumnComponent = _t);\n }\n },\n inputs: {\n columnHeaderTop: \"columnHeaderTop\",\n columnHeaderBottom: \"columnHeaderBottom\",\n maxHeight: \"maxHeight\",\n width: \"width\",\n rowHeight: \"rowHeight\",\n autoResizeWidth: \"autoResizeWidth\",\n source: \"source\",\n columns: \"columns\",\n paging: \"paging\",\n verticalGrid: \"verticalGrid\",\n horizontalGrid: \"horizontalGrid\",\n theme: \"theme\",\n rowColoring: \"rowColoring\",\n rowSelection: \"rowSelection\",\n rowStyle: \"rowStyle\",\n rowClass: \"rowClass\",\n loading: \"loading\",\n virtualScroll: \"virtualScroll\",\n sorting: \"sorting\",\n searching: \"searching\",\n titlePanel: \"titlePanel\",\n footerPanel: \"footerPanel\",\n filtering: \"filtering\",\n quickFilters: \"quickFilters\",\n editMode: \"editMode\",\n cellEditing: \"cellEditing\",\n infoPanel: \"infoPanel\",\n summaries: \"summaries\",\n columnMenu: \"columnMenu\",\n rowDetail: \"rowDetail\",\n localization: \"localization\"\n },\n outputs: {\n pageChanged: \"pageChanged\",\n pageSizeChanged: \"pageSizeChanged\",\n itemsSelected: \"itemsSelected\",\n selectedRows: \"selectedRows\",\n columnsChanged: \"columnsChanged\",\n containerWidthChanged: \"containerWidthChanged\",\n sourceEdited: \"sourceEdited\",\n cellEditEntered: \"cellEditEntered\",\n cellEditCanceled: \"cellEditCanceled\",\n cellEditSubmitted: \"cellEditSubmitted\",\n searchPhraseChanged: \"searchPhraseChanged\",\n themeChanged: \"themeChanged\",\n horizontalGridChanged: \"horizontalGridChanged\",\n verticalGridChanged: \"verticalGridChanged\",\n rowColoringChanged: \"rowColoringChanged\"\n },\n features: [i0.ɵɵNgOnChangesFeature]\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(GuiGridGateway, [{\n type: Directive\n }], () => [], {\n guiGridColumnComponent: [{\n type: ContentChildren,\n args: [GuiGridColumnComponent]\n }],\n columnHeaderTop: [{\n type: Input\n }],\n columnHeaderBottom: [{\n type: Input\n }],\n maxHeight: [{\n type: Input\n }],\n width: [{\n type: Input\n }],\n rowHeight: [{\n type: Input\n }],\n autoResizeWidth: [{\n type: Input\n }],\n source: [{\n type: Input\n }],\n columns: [{\n type: Input\n }],\n paging: [{\n type: Input\n }],\n verticalGrid: [{\n type: Input\n }],\n horizontalGrid: [{\n type: Input\n }],\n theme: [{\n type: Input\n }],\n rowColoring: [{\n type: Input\n }],\n rowSelection: [{\n type: Input\n }],\n rowStyle: [{\n type: Input\n }],\n rowClass: [{\n type: Input\n }],\n loading: [{\n type: Input\n }],\n virtualScroll: [{\n type: Input\n }],\n sorting: [{\n type: Input\n }],\n searching: [{\n type: Input\n }],\n titlePanel: [{\n type: Input\n }],\n footerPanel: [{\n type: Input\n }],\n filtering: [{\n type: Input\n }],\n quickFilters: [{\n type: Input\n }],\n editMode: [{\n type: Input\n }],\n cellEditing: [{\n type: Input\n }],\n infoPanel: [{\n type: Input\n }],\n summaries: [{\n type: Input\n }],\n columnMenu: [{\n type: Input\n }],\n rowDetail: [{\n type: Input\n }],\n localization: [{\n type: Input\n }],\n pageChanged: [{\n type: Output\n }],\n pageSizeChanged: [{\n type: Output\n }],\n itemsSelected: [{\n type: Output\n }],\n selectedRows: [{\n type: Output\n }],\n columnsChanged: [{\n type: Output\n }],\n containerWidthChanged: [{\n type: Output\n }],\n sourceEdited: [{\n type: Output\n }],\n cellEditEntered: [{\n type: Output\n }],\n cellEditCanceled: [{\n type: Output\n }],\n cellEditSubmitted: [{\n type: Output\n }],\n searchPhraseChanged: [{\n type: Output\n }],\n themeChanged: [{\n type: Output\n }],\n horizontalGridChanged: [{\n type: Output\n }],\n verticalGridChanged: [{\n type: Output\n }],\n rowColoringChanged: [{\n type: Output\n }]\n });\n})();\nconst structureParentComponent = new InjectionToken('StructureParentComponent');\nclass SelectedRow {\n index;\n itemId;\n item;\n constructor(item, index, itemId) {\n this.item = item;\n this.index = index;\n this.itemId = itemId;\n }\n getItem() {\n return this.item;\n }\n getIndex() {\n return this.index;\n }\n getItemId() {\n return this.itemId;\n }\n}\nclass GuiGridApiProvider {\n structureId;\n compositionId;\n schemaId;\n formationCommandInvoker;\n formationWarehouse;\n compositionCommandInvoker;\n compositionWarehouse;\n filterIntegration;\n sourceCommandInvoker;\n searchCommandInvoker;\n gridThemeCommandInvoker;\n structureCommandInvoker;\n summariesCommandInvoker;\n sortingCommandInvoker;\n pagingCommandInvoker;\n constructor(structureId, compositionId, schemaId, formationCommandDispatcher, formationWarehouse, compositionCommandInvoker, compositionWarehouse, filterIntegration, sourceCommandInvoker, searchCommandInvoker, gridThemeCommandInvoker, structureCommandInvoker, summariesCommandInvoker, sortingCommandInvoker, pagingCommandInvoker) {\n this.structureId = structureId;\n this.compositionId = compositionId;\n this.schemaId = schemaId;\n this.formationCommandInvoker = formationCommandDispatcher;\n this.formationWarehouse = formationWarehouse;\n this.compositionCommandInvoker = compositionCommandInvoker;\n this.compositionWarehouse = compositionWarehouse;\n this.filterIntegration = filterIntegration;\n this.sourceCommandInvoker = sourceCommandInvoker;\n this.searchCommandInvoker = searchCommandInvoker;\n this.gridThemeCommandInvoker = gridThemeCommandInvoker;\n this.structureCommandInvoker = structureCommandInvoker;\n this.summariesCommandInvoker = summariesCommandInvoker;\n this.sortingCommandInvoker = sortingCommandInvoker;\n this.pagingCommandInvoker = pagingCommandInvoker;\n }\n provide() {\n const structureId = this.structureId,\n compositionId = this.compositionId,\n schemaId = this.schemaId,\n fcd = this.formationCommandInvoker,\n fw = this.formationWarehouse,\n compositionCommandInvoker = this.compositionCommandInvoker,\n compositionWarehouse = this.compositionWarehouse,\n filterIntegration = this.filterIntegration,\n scd = this.sourceCommandInvoker,\n searchCommandInvoker = this.searchCommandInvoker,\n gridThemeCommandInvoker = this.gridThemeCommandInvoker,\n structureCommandInvoker = this.structureCommandInvoker,\n summariesCommandInvoker = this.summariesCommandInvoker,\n sortingCommandInvoker = this.sortingCommandInvoker,\n pagingCommandInvoker = this.pagingCommandInvoker;\n return {\n setSource(source) {\n scd.setOrigin(source, structureId);\n },\n showLoading() {\n scd.setLoading(true, structureId);\n },\n hideLoading() {\n scd.setLoading(false, structureId);\n },\n deleteRow(row) {\n scd.deleteRow(new SelectedRow(row.source, row.index, row.itemId), structureId);\n },\n deleteRows(rows) {\n const selectedRows = rows.map(row => new SelectedRow(row.source, row.index, row.itemId));\n scd.deleteRows(selectedRows, structureId);\n },\n deleteSelectedRows() {\n // this.sourceCommandDispatcher.\n },\n getSelectedRows() {\n const rows = fw.findSelectedRows(structureId).getValueOrNullOrThrowError();\n return rows.map(r => {\n return {\n source: r.getItem(),\n index: r.getIndex(),\n itemId: r.getItemId()\n };\n });\n },\n selectAll() {\n fcd.selectAll(structureId);\n },\n unselectAll() {\n fcd.unselectAll(structureId);\n },\n /**\n * Columns\n */\n getColumns() {\n let columns = [];\n compositionWarehouse.onTemplateColumns(compositionId).subscribe(v => {\n columns = v;\n });\n return columns;\n },\n /**\n * Filtering\n */\n getFilters() {\n const filters = filterIntegration.findFilters(compositionId, structureId);\n const filterCollection = {};\n Object.keys(filters).forEach(key => {\n filterCollection[key] = filters[key].map(filter => {\n return {\n columnName: filter.columnName,\n filterId: filter.filterId,\n filterType: filter.type,\n value: filter.value\n };\n });\n });\n return filterCollection;\n },\n getFiltersForColumn(columnName) {\n return [];\n },\n getFilterTypes() {\n return [];\n },\n getFilterTypesForColumn(columnName) {\n return filterIntegration.findFilterTypes(columnName, compositionId, structureId);\n },\n removeAll() {},\n removeFilter(filterId) {},\n removeFiltersFromColumn(columnName) {},\n filter(columnName, filterType, value) {\n filterIntegration.filter(columnName, filterType, value, compositionId, structureId);\n },\n /**\n * Paging\n */\n enablePaging() {\n pagingCommandInvoker.enable(structureId);\n },\n disablePaging() {\n pagingCommandInvoker.disable(structureId);\n },\n nextPage() {\n pagingCommandInvoker.nextPage(structureId);\n },\n prevPage() {\n pagingCommandInvoker.prevPage(structureId);\n },\n changePageSize(pageSize) {\n pagingCommandInvoker.changePageSize(pageSize, structureId);\n },\n setPagingConfig(config) {\n pagingCommandInvoker.setPaging(config, structureId);\n },\n /**\n * Searching\n */\n setSearchingConfig(config) {\n searchCommandInvoker.setSearchingConfig(config, structureId);\n },\n search(phrase) {\n searchCommandInvoker.search(phrase, structureId);\n },\n clearSearchPhrase() {\n searchCommandInvoker.search('', structureId);\n },\n /**\n * View port\n */\n scrollToTop() {\n structureCommandInvoker.scrollToTop(structureId);\n },\n scrollToBottom() {\n structureCommandInvoker.scrollToBottom(structureId);\n },\n scrollToRowByIndex(index) {\n structureCommandInvoker.scrollToIndex(index, structureId);\n },\n /**\n * Visual - Schema\n */\n setTheme(theme) {\n gridThemeCommandInvoker.setTheme(theme, schemaId, structureId);\n },\n setVerticalGrid(enabled) {\n gridThemeCommandInvoker.setVerticalGrid(enabled, schemaId);\n },\n setHorizontalGrid(enabled) {\n gridThemeCommandInvoker.setHorizontalGrid(enabled, schemaId);\n },\n setRowColoring(rowColoring) {\n gridThemeCommandInvoker.setRowColoring(rowColoring, schemaId);\n },\n /**\n * Virtual scroll\n */\n enableVirtualScroll() {\n structureCommandInvoker.enableVirtualScroll(structureId);\n },\n disableVirtualScroll() {\n structureCommandInvoker.disableVirtualScroll(structureId);\n },\n /**\n * Summaries\n */\n enableSummaries() {\n summariesCommandInvoker.setSummariesEnabled(true, structureId);\n },\n disableSummaries() {\n summariesCommandInvoker.setSummariesEnabled(false, structureId);\n },\n /**\n * Sorting\n */\n setSortConfig(config) {\n sortingCommandInvoker.setSortingConfig(config, structureId);\n }\n };\n }\n}\nclass GuiGridThemeCommandInvoker {\n schemaCommandInvoker;\n gridThemeConverter;\n gridRowColoringConverter;\n constructor(schemaCommandInvoker, gridThemeConverter, gridRowColoringConverter) {\n this.schemaCommandInvoker = schemaCommandInvoker;\n this.gridThemeConverter = gridThemeConverter;\n this.gridRowColoringConverter = gridRowColoringConverter;\n }\n setTheme(theme, schemaId, structureId) {\n const schemaTheme = this.gridThemeConverter.convert(theme);\n this.schemaCommandInvoker.setTheme(schemaTheme, schemaId, structureId);\n }\n setRowColoring(rowColoring, schemaId) {\n const schemaRowColoring = this.gridRowColoringConverter.convert(rowColoring);\n this.schemaCommandInvoker.setRowColoring(schemaRowColoring, schemaId);\n }\n setVerticalGrid(verticalGrid, schemaId) {\n this.schemaCommandInvoker.setVerticalGrid(verticalGrid, schemaId);\n }\n setHorizontalGrid(horizontalGrid, schemaId) {\n this.schemaCommandInvoker.setHorizontalGrid(horizontalGrid, schemaId);\n }\n}\nclass Modifier {\n hostElement;\n constructor(hostElement) {\n this.hostElement = hostElement;\n }\n getElement(htmlElement) {\n return this.createModifier(htmlElement);\n }\n getHost() {\n if (!this.hostElement) {\n throw new Error('Missing host element in DomRenderer constructor.');\n }\n return this.createModifier(this.hostElement);\n }\n}\nclass ClassModifier extends Modifier {\n htmlElement;\n constructor(htmlElement) {\n super(htmlElement);\n this.htmlElement = htmlElement;\n }\n createModifier(htmlElement) {\n return new ClassModifier.ClassModifier(htmlElement);\n }\n // eslint-disable-next-line\n static ClassModifier = class {\n htmlElement;\n constructor(htmlElement) {\n this.htmlElement = htmlElement;\n }\n add(...classes) {\n this.addClassToDomElement(this.htmlElement, classes);\n }\n remove(...classes) {\n this.removeClassFromDomElement(this.htmlElement, classes);\n }\n clear() {\n this.htmlElement.removeAttribute('class');\n }\n addClassToDomElement(htmlElement, classes) {\n for (let i = 0; i < classes.length; i++) {\n htmlElement.classList.add(classes[i]);\n }\n }\n removeClassFromDomElement(htmlElement, classes) {\n for (let i = 0; i < classes.length; i++) {\n htmlElement.classList.remove(classes[i]);\n }\n }\n };\n}\nclass AttributeModifier extends Modifier {\n htmlElement;\n static AttributeModifier = class {\n htmlElement;\n constructor(htmlElement) {\n this.htmlElement = htmlElement;\n }\n setAttribute(name, value) {\n this.htmlElement.setAttribute(name, value);\n }\n removeAttribute(name) {\n this.htmlElement.removeAttribute(name);\n }\n };\n constructor(htmlElement) {\n super(htmlElement);\n this.htmlElement = htmlElement;\n }\n createModifier(htmlElement) {\n return new AttributeModifier.AttributeModifier(htmlElement);\n }\n}\nclass StructurePagingDefinitionBuilder extends GenericBuilder {\n enabled;\n constructor(enabled) {\n super();\n this.enabled = enabled;\n }\n withEnabled(enabled) {\n this.enabled = enabled;\n return this;\n }\n buildObject() {\n return new PagingDefinition(this.enabled);\n }\n}\nclass StructurePagingDefinitionDefaultBuilder extends StructurePagingDefinitionBuilder {\n static defaultEnabled = true;\n constructor() {\n super(StructurePagingDefinitionDefaultBuilder.defaultEnabled);\n }\n}\nclass PagingDefinition {\n static Builder = StructurePagingDefinitionBuilder;\n static DefaultBuilder = StructurePagingDefinitionDefaultBuilder;\n enabled;\n constructor(enabled) {\n this.enabled = enabled;\n }\n isEnabled() {\n return this.enabled;\n }\n}\nclass StructureDefinitionBuilder extends GenericBuilder {\n headerEnabled;\n bottomPaging;\n topPaging;\n border = true;\n constructor(headerEnabled, bottomPaging, topPaging) {\n super();\n this.headerEnabled = headerEnabled;\n this.bottomPaging = bottomPaging;\n this.topPaging = topPaging;\n }\n withHeader(enabled) {\n this.headerEnabled = enabled;\n return this;\n }\n withBottomPaging(paging) {\n this.bottomPaging = paging;\n return this;\n }\n withTopPaging(paging) {\n this.topPaging = paging;\n return this;\n }\n withBorder(enabled) {\n this.border = enabled;\n return this;\n }\n buildObject() {\n return new StructureDefinition(this.headerEnabled, this.bottomPaging, this.topPaging, this.border);\n }\n}\nclass StructureDefinitionDefaultBuilder extends StructureDefinitionBuilder {\n static defaultHeaderEnabled = true;\n static defaultBottomPaging = new PagingDefinition.DefaultBuilder().build();\n static defaultTopPaging = new PagingDefinition.DefaultBuilder().build();\n constructor() {\n super(StructureDefinitionDefaultBuilder.defaultHeaderEnabled, StructureDefinitionDefaultBuilder.defaultBottomPaging, StructureDefinitionDefaultBuilder.defaultTopPaging);\n }\n}\nclass StructureDefinition {\n static Builder = StructureDefinitionBuilder;\n static DefaultBuilder = StructureDefinitionDefaultBuilder;\n headerEnabled;\n bottomPaging;\n topPaging;\n border;\n constructor(headerEnabled, bottomPaging, topPaging, border) {\n this.headerEnabled = headerEnabled;\n this.bottomPaging = bottomPaging;\n this.topPaging = topPaging;\n this.border = border;\n }\n isHeaderEnabled() {\n return this.headerEnabled;\n }\n isBorderEnabled() {\n return this.border;\n }\n getBottomPaging() {\n return this.bottomPaging;\n }\n getTopPaging() {\n return this.topPaging;\n }\n}\n\n/** @internal */\nconst guiGridStructureDefinition = new StructureDefinition.DefaultBuilder().build();\nclass GuiGridRegister {\n gridMap = new Map();\n // structureId: StructureId\n register(gridId, component, structureId) {\n this.gridMap.set(gridId, {\n component,\n structureId\n });\n }\n unregister(gridId) {\n this.gridMap.delete(gridId);\n }\n getValues(gridId) {\n return this.gridMap.get(gridId);\n }\n static ɵfac = function GuiGridRegister_Factory(t) {\n return new (t || GuiGridRegister)();\n };\n static ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: GuiGridRegister,\n factory: GuiGridRegister.ɵfac\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(GuiGridRegister, [{\n type: Injectable\n }], null, null);\n})();\nclass StructureIdGenerator {\n // private increment = 0;\n generateId() {\n return RandomIdGenerator.generate();\n }\n}\nclass FormationPublisher {\n constructor() {}\n}\nclass FormationWarehouse {\n constructor() {}\n}\nclass CompositionPublisher {\n constructor() {}\n}\nclass CompositionWarehouse {\n constructor() {}\n}\nclass FilterWarehouse {\n constructor() {}\n}\nclass FieldId extends EntityId {\n id;\n constructor(id) {\n super(id);\n this.id = id;\n }\n getId() {\n return this.id;\n }\n equals(fieldId) {\n return fieldId.toString() === this.id;\n }\n toString() {\n return this.id;\n }\n}\nclass FilterPublisher {\n constructor() {}\n}\nclass FilterIntegration {\n compositionWarehouse;\n filterCommandInvoker;\n filterWarehouse;\n constructor(compositionWarehouse, filterCommandInvoker, filterWarehouse) {\n this.compositionWarehouse = compositionWarehouse;\n this.filterCommandInvoker = filterCommandInvoker;\n this.filterWarehouse = filterWarehouse;\n }\n static services = [CompositionWarehouse, FilterPublisher, FilterWarehouse];\n findFilterTypes(columnName, compositionId, structureId) {\n let filterTypes = [];\n this.compositionWarehouse.onTemplateColumns(compositionId).pipe(hermesMap(cols => {\n return cols.find(col => {\n return col.getName() === columnName;\n });\n }), hermesFilter(col => {\n return col !== undefined;\n }), hermesTake(1), hermesSwitchMap(col => {\n return this.filterWarehouse.onFilterTypesForFieldId(new FieldId(col.columnFieldId.getId()), structureId);\n })).subscribe(types => {\n filterTypes = types.map(type => type.getName());\n });\n return filterTypes;\n }\n findFilters(compositionId, structureId) {\n const filters = this.filterWarehouse.findFilters(structureId).getValueOrNullOrThrowError();\n const columnNames = this.compositionWarehouse.findColumnNames(compositionId);\n const obj = {};\n for (let i = 0; i < columnNames.length; i += 1) {\n obj[columnNames[i]] = filters.filter(filter => {\n return filter.getFieldName() === columnNames[i];\n }).map(filter => {\n return {\n columnName: filter.getFieldName(),\n filterId: filter.getFilterId().toString(),\n type: filter.getFilterTypeName(),\n value: filter.getValue()\n };\n });\n }\n return obj;\n }\n filter(columnName, filterType, value, compositionId, structureId) {\n this.compositionWarehouse.onTemplateColumns(compositionId).pipe(hermesMap(cols => {\n return cols.find(col => {\n return col.getName() === columnName;\n });\n }), hermesFilter(col => {\n return col !== undefined;\n }), hermesTake(1), hermesSwitchMap(col => {\n return this.filterWarehouse.onceFilterTypeId(new FieldId(col.columnFieldId.getId()), filterType, structureId).pipe(hermesMap(filterTypeId => {\n return {\n fieldId: new FieldId(col.columnFieldId.getId()),\n filterTypeId: filterTypeId\n };\n }));\n })).subscribe(params => {\n const {\n fieldId,\n filterTypeId\n } = params;\n filterTypeId.ifPresent(ftId => {\n this.filterCommandInvoker.add(fieldId, ftId, value, structureId);\n });\n });\n }\n}\nclass SourcePublisher {\n constructor() {}\n}\nclass SearchPublisher {\n constructor() {}\n}\nclass SchemaPublisher {\n constructor() {}\n}\nclass StructurePublisher {\n constructor() {}\n}\nclass SummariesPublisher {\n constructor() {}\n}\nclass SortingPublisher {\n constructor() {}\n}\nclass PagingPublisher {\n constructor() {}\n}\nclass StructureReadModelRootId extends ReadModelRootId {\n constructor(id) {\n super(id);\n }\n toAggregateId() {\n return new StructureId(this.toString());\n }\n}\nclass StructureId extends AggregateId {\n constructor(id) {\n super(id);\n }\n toReadModelRootId() {\n return new StructureReadModelRootId(this.getId());\n }\n}\nclass CompositionReadModelRootId extends ReadModelRootId {\n constructor(id) {\n super(id);\n }\n toAggregateId() {\n return new CompositionId(this.toString());\n }\n}\nclass CompositionId extends AggregateId {\n constructor(id) {\n super(id);\n }\n toReadModelRootId() {\n return new CompositionReadModelRootId(this.getId());\n }\n}\nvar SchemaRowColoring;\n(function (SchemaRowColoring) {\n SchemaRowColoring[SchemaRowColoring[\"NONE\"] = 0] = \"NONE\";\n SchemaRowColoring[SchemaRowColoring[\"EVEN\"] = 1] = \"EVEN\";\n SchemaRowColoring[SchemaRowColoring[\"ODD\"] = 2] = \"ODD\";\n})(SchemaRowColoring || (SchemaRowColoring = {}));\nclass SchemaWarehouse {}\nclass SchemaCssClassManager extends Reactive {\n schemaReadModelRepository;\n static VERTICAL_GRID_CLASS_NAME = 'gui-vertical-grid';\n static HORIZONTAL_GRID_CLASS_NAME = 'gui-horizontal-grid';\n static THEME_FABRIC_CLASS_NAME = 'gui-fabric';\n static THEME_MATERIAL_CLASS_NAME = 'gui-material';\n static THEME_LIGHT_CLASS_NAME = 'gui-light';\n static THEME_DARK_CLASS_NAME = 'gui-dark';\n static THEME_GENERIC_CLASS_NAME = 'gui-generic';\n static ROW_COLORING_ODD = 'gui-rows-odd';\n static ROW_COLORING_EVEN = 'gui-rows-even';\n classModifier;\n cssClass = null;\n cssHostRef;\n constructor(schemaReadModelRepository) {\n super();\n this.schemaReadModelRepository = schemaReadModelRepository;\n this.classModifier = new ClassModifier();\n }\n init(elementRef, schemaReadModelRootId) {\n this.cssHostRef = elementRef;\n this.schemaReadModelRepository.onCssClasses(schemaReadModelRootId).pipe(this.hermesTakeUntil()).subscribe(classes => {\n const diff = this.updateState(classes);\n this.renderCssClasses(diff);\n });\n }\n updateState(css) {\n if (!this.cssClass) {\n this.cssClass = css;\n return this.cssClass;\n } else {\n const diff = {};\n Object.keys(this.cssClass).forEach(key => {\n if (css[key] !== this.cssClass[key]) {\n diff[key] = css[key];\n }\n });\n this.cssClass = css;\n return diff;\n }\n }\n renderCssClasses(diff) {\n if (diff.hasOwnProperty('verticalGrid')) {\n this.toggleCssClass(diff.verticalGrid, SchemaCssClassManager.VERTICAL_GRID_CLASS_NAME);\n }\n if (diff.hasOwnProperty('horizontalGrid')) {\n this.toggleCssClass(diff.horizontalGrid, SchemaCssClassManager.HORIZONTAL_GRID_CLASS_NAME);\n }\n if (diff.hasOwnProperty('theme')) {\n this.removeThemeCssClasses();\n this.addClass(this.resolveThemeClassName(diff.theme));\n }\n if (diff.hasOwnProperty('rowColoring')) {\n this.removeRowColoringClasses();\n this.addClass(this.resolveRowColoringClassName(diff.rowColoring));\n }\n }\n toggleCssClass(toggle, cssClassName) {\n if (toggle) {\n this.addClass(cssClassName);\n } else {\n this.removeClass(cssClassName);\n }\n }\n removeThemeCssClasses() {\n Object.keys(SchemaTheme).map(key => SchemaTheme[key]).map(theme => this.resolveThemeClassName(theme)).filter(className => !!className).forEach(className => {\n this.removeClass(className);\n });\n }\n resolveThemeClassName(theme) {\n switch (theme) {\n case SchemaTheme.FABRIC:\n case SchemaTheme[SchemaTheme.FABRIC]:\n return SchemaCssClassManager.THEME_FABRIC_CLASS_NAME;\n case SchemaTheme.MATERIAL:\n case SchemaTheme[SchemaTheme.MATERIAL]:\n return SchemaCssClassManager.THEME_MATERIAL_CLASS_NAME;\n case SchemaTheme.LIGHT:\n case SchemaTheme[SchemaTheme.LIGHT]:\n return SchemaCssClassManager.THEME_LIGHT_CLASS_NAME;\n case SchemaTheme.DARK:\n case SchemaTheme[SchemaTheme.DARK]:\n return SchemaCssClassManager.THEME_DARK_CLASS_NAME;\n case SchemaTheme.GENERIC:\n case SchemaTheme[SchemaTheme.GENERIC]:\n return SchemaCssClassManager.THEME_GENERIC_CLASS_NAME;\n default:\n return SchemaCssClassManager.THEME_FABRIC_CLASS_NAME;\n }\n }\n resolveRowColoringClassName(coloring) {\n switch (coloring) {\n case SchemaRowColoring.ODD:\n case SchemaRowColoring[SchemaRowColoring.ODD]:\n return SchemaCssClassManager.ROW_COLORING_ODD;\n case SchemaRowColoring.EVEN:\n case SchemaRowColoring[SchemaRowColoring.EVEN]:\n return SchemaCssClassManager.ROW_COLORING_EVEN;\n default:\n return null;\n }\n }\n removeRowColoringClasses() {\n Object.keys(SchemaRowColoring).map(key => SchemaRowColoring[key]).map(coloring => this.resolveRowColoringClassName(coloring)).filter(className => !!className).forEach(className => {\n this.removeClass(className);\n });\n }\n addClass(cssClassName) {\n if (cssClassName) {\n this.classModifier.getElement(this.cssHostRef.nativeElement).add(cssClassName);\n }\n }\n removeClass(cssClassName) {\n if (cssClassName) {\n this.classModifier.getElement(this.cssHostRef.nativeElement).remove(cssClassName);\n }\n }\n static ɵfac = function SchemaCssClassManager_Factory(t) {\n return new (t || SchemaCssClassManager)(i0.ɵɵinject(SchemaWarehouse));\n };\n static ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: SchemaCssClassManager,\n factory: SchemaCssClassManager.ɵfac\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(SchemaCssClassManager, [{\n type: Injectable\n }], () => [{\n type: SchemaWarehouse\n }], null);\n})();\nclass StructureCellEditStore extends Archive {\n constructor() {\n super();\n }\n static ɵfac = function StructureCellEditStore_Factory(t) {\n return new (t || StructureCellEditStore)();\n };\n static ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: StructureCellEditStore,\n factory: StructureCellEditStore.ɵfac\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(StructureCellEditStore, [{\n type: Injectable\n }], () => [], null);\n})();\nclass StructureEditModeArchive extends Archive {\n constructor() {\n super();\n }\n static ɵfac = function StructureEditModeArchive_Factory(t) {\n return new (t || StructureEditModeArchive)();\n };\n static ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: StructureEditModeArchive,\n factory: StructureEditModeArchive.ɵfac\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(StructureEditModeArchive, [{\n type: Injectable\n }], () => [], null);\n})();\nclass StructureInfoPanelConfig {\n enabled = false;\n infoDialog = true;\n columnsManager = true;\n schemaManager = true;\n sourceSize = true;\n constructor(enabled, infoDialog, columnsManager, schemaManager, sourceSize) {\n if (this.isNotUndefinedOrNull(enabled)) {\n this.enabled = enabled;\n }\n if (this.isNotUndefinedOrNull(infoDialog)) {\n this.infoDialog = infoDialog;\n }\n if (this.isNotUndefinedOrNull(columnsManager)) {\n this.columnsManager = columnsManager;\n }\n if (this.isNotUndefinedOrNull(sourceSize)) {\n this.sourceSize = sourceSize;\n }\n if (this.isNotUndefinedOrNull(schemaManager)) {\n this.schemaManager = schemaManager;\n }\n }\n isEnabled() {\n return this.enabled;\n }\n isInfoDialogEnabled() {\n return this.infoDialog;\n }\n isColumnsManagerEnabled() {\n return this.columnsManager;\n }\n isSourceSizeEnabled() {\n return this.sourceSize;\n }\n isSchemaManagerEnabled() {\n return this.schemaManager;\n }\n isNotUndefinedOrNull(config) {\n return config !== undefined && config !== null;\n }\n}\nclass StructureInfoPanelArchive extends Archive {\n constructor() {\n super(new StructureInfoPanelConfig());\n }\n}\nconst structureComponentToken = new InjectionToken('StructureComponentToken');\nclass GuiComponent {\n innerElementRef;\n innerClassModifier;\n constructor(innerElementRef) {\n this.innerElementRef = innerElementRef;\n this.initClassModifier();\n this.addHostClass();\n }\n addClassToHost(className) {\n this.innerClassModifier.getHost().add(className);\n }\n removeClassFromHost(className) {\n this.innerClassModifier.getHost().remove(className);\n }\n hasChanged(prop) {\n return prop !== undefined && prop.currentValue !== undefined;\n }\n ifChanged(prop, callback) {\n if (this.hasChanged(prop)) {\n callback();\n }\n }\n initClassModifier() {\n this.innerClassModifier = new ClassModifier(this.innerElementRef.nativeElement);\n }\n addHostClass() {\n this.innerClassModifier.getHost().add(this.getSelectorName());\n }\n static ɵfac = function GuiComponent_Factory(t) {\n return new (t || GuiComponent)(i0.ɵɵdirectiveInject(i0.ElementRef));\n };\n static ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: GuiComponent\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(GuiComponent, [{\n type: Directive\n }], () => [{\n type: i0.ElementRef\n }], null);\n})();\nclass SmartComponent extends GuiComponent {\n detector;\n viewInDom = false;\n unsubscribe$ = new HermesSubject();\n constructor(detector, elementRef) {\n super(elementRef);\n this.detector = detector;\n }\n ngAfterViewInit() {\n this.viewInDom = true;\n }\n ngOnDestroy() {\n this.unsubscribe();\n }\n reRender() {\n if (this.isViewInDom()) {\n this.detector.detectChanges();\n }\n }\n isViewInDom() {\n return this.viewInDom;\n }\n /**\n * @deprecated instead use useReactiveContext\n */\n subscribe(stream$, callback) {\n stream$.pipe(this.takeUntil()).subscribe(streamValues => {\n callback(streamValues);\n this.reRender();\n });\n }\n /**\n * @deprecated instead use useReactiveContext\n */\n subscribeWithoutRender(stream$, callback) {\n stream$.pipe(this.takeUntil()).subscribe(streamValues => {\n callback(streamValues);\n });\n }\n // for gate\n subscribeAndEmit(stream$, emitter, mapper = value => value) {\n stream$.pipe(this.takeUntil()).subscribe(value => {\n emitter.emit(mapper(value));\n });\n }\n unsubscribe() {\n this.unsubscribe$.next();\n this.unsubscribe$.complete();\n }\n takeUntil() {\n return hermesTakeUntil(this.unsubscribe$);\n }\n static ɵfac = function SmartComponent_Factory(t) {\n return new (t || SmartComponent)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i0.ElementRef));\n };\n static ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: SmartComponent,\n features: [i0.ɵɵInheritDefinitionFeature]\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(SmartComponent, [{\n type: Directive\n }], () => [{\n type: i0.ChangeDetectorRef\n }, {\n type: i0.ElementRef\n }], null);\n})();\nvar StructureCellEditState;\n(function (StructureCellEditState) {\n StructureCellEditState[StructureCellEditState[\"ENTER\"] = 0] = \"ENTER\";\n StructureCellEditState[StructureCellEditState[\"SUBMIT\"] = 1] = \"SUBMIT\";\n StructureCellEditState[StructureCellEditState[\"CANCEL\"] = 2] = \"CANCEL\";\n})(StructureCellEditState || (StructureCellEditState = {}));\nclass StructureCommand extends Command {}\nclass InitFieldsCommand extends StructureCommand {\n fieldConfigs;\n constructor(structureId, fieldConfigs) {\n super(structureId, 'InitFieldsCommand');\n this.fieldConfigs = fieldConfigs;\n }\n getFieldConfigs() {\n return this.fieldConfigs;\n }\n}\nclass StructureDomainEvent extends DomainEvent {}\nclass FieldsInitedEvent extends StructureDomainEvent {\n fieldConfigs;\n fields;\n constructor(aggregateId, fieldConfigs,\n // TODO merge\n fields) {\n super(aggregateId, {\n fieldConfigs,\n fields\n }, 'FieldsInitedEvent');\n this.fieldConfigs = fieldConfigs;\n this.fields = fields;\n }\n getFields() {\n return this.fields;\n }\n}\nclass ColumnFieldId {\n id;\n constructor(id) {\n this.id = id;\n }\n getId() {\n return this.id;\n }\n}\nclass ColumnParams {\n column;\n field;\n constructor(column, field) {\n this.column = column;\n this.field = field;\n }\n getColumn() {\n return this.column;\n }\n getField() {\n return this.field;\n }\n}\nclass StructureColumnInputHandler {\n structureId;\n compositionId;\n columnFieldFactory;\n columnAutoConfigurator;\n compositionCommandInvoker;\n commandDispatcher = CoreContainer.resolve(CommandDispatcher);\n domainEventBus = CoreContainer.resolve(DomainEventBus);\n columns;\n constructor(structureId, compositionId, columnFieldFactory, columnAutoConfigurator, compositionCommandInvoker) {\n this.structureId = structureId;\n this.compositionId = compositionId;\n this.columnFieldFactory = columnFieldFactory;\n this.columnAutoConfigurator = columnAutoConfigurator;\n this.compositionCommandInvoker = compositionCommandInvoker;\n }\n handle(changes) {\n let config = [];\n if (changes.columns !== undefined && changes.columns.currentValue !== undefined) {\n config = changes.columns.currentValue;\n this.columns = config;\n } else {\n if (this.columns === undefined && changes.source !== undefined && changes.source !== null) {\n config = this.columnAutoConfigurator.configure(changes.source.currentValue);\n this.columns = config;\n } else {\n return;\n }\n }\n this.compositionCommandInvoker.setGroups(config, this.compositionId);\n // prepare model\n const {\n columns,\n groups\n } = this.getConfigs(config);\n const fieldConfigs = this.getFieldConfigs(columns);\n // const fieldConfigs = columns as Array;\n const initCommand = new InitFieldsCommand(this.structureId, fieldConfigs);\n this.domainEventBus.ofEvents([FieldsInitedEvent]).pipe(hermesFilter(event => event.getAggregateId().toString() === this.structureId.toString()), hermesTake(1)).subscribe(event => {\n const fields = event.getFields(),\n columnFieldIds = this.convertColumnFieldIds(fields),\n params = this.convertColumns(columns, fields, columnFieldIds);\n this.compositionCommandInvoker.setColumns(params, this.compositionId);\n // this.compositionCommandInvoker.setGroups(this.compositionId);\n });\n this.commandDispatcher.dispatch(initCommand);\n }\n getConfigs(configs) {\n let columnConfigs = [];\n const groupConfigs = [];\n for (let i = 0; i < configs.length; i += 1) {\n const config = configs[i];\n if (config.columns !== undefined) {\n groupConfigs.push(config);\n columnConfigs = columnConfigs.concat(config.columns);\n } else {\n columnConfigs.push(config);\n }\n }\n return {\n columns: columnConfigs,\n groups: groupConfigs\n };\n }\n getFieldConfigs(columns) {\n return columns.map(c => {\n return {\n field: c.field,\n type: c.type,\n matcher: c.matcher,\n summaries: c.summaries,\n sorting: c.sorting\n };\n });\n }\n convertColumnFieldIds(fields) {\n if (!fields) {\n return [];\n }\n return fields.map(field => new ColumnFieldId(field.getId().getId()));\n }\n convertColumns(columns, fields, columnFieldIds) {\n if (!columns) {\n return [];\n }\n return columns.map((column, index) => {\n const columnFieldId = columnFieldIds[index],\n field = fields[index];\n const columnField = this.columnFieldFactory.create(columnFieldId, field.getAccessorMethod(), field.getDataType(), field.getSearchAccessorMethod());\n return new ColumnParams(column, columnField);\n });\n }\n}\nclass ColumnAutoConfigurator {}\nclass SchemaId extends AggregateId {\n constructor(id) {\n super(id);\n }\n toReadModelRootId() {\n return new SchemaReadModelRootId(this.getId());\n }\n}\nclass SchemaReadModelRootId extends ReadModelRootId {\n constructor(id) {\n super(id);\n }\n toAggregateId() {\n return new SchemaId(this.getId());\n }\n}\nclass PagingEventRepository extends EventRepository {}\nclass EditedItemModel {\n after;\n before;\n constructor(after, before) {\n this.after = after;\n this.before = before;\n }\n}\nclass StructureSourceItemEditedEvent extends StructureDomainEvent {\n beforeItem;\n afterItem;\n constructor(aggregateId, beforeItem, afterItem) {\n super(aggregateId, {\n beforeItem,\n afterItem\n }, 'StructureSourceItemEditedEvent');\n this.beforeItem = beforeItem;\n this.afterItem = afterItem;\n }\n getBeforeItem() {\n return this.beforeItem;\n }\n getAfterItem() {\n return this.afterItem;\n }\n}\nclass SourceEventService {\n domainEventBus = CoreContainer.resolve(DomainEventBus);\n onSourceEdited(structureId) {\n return this.domainEventBus.ofEvents([StructureSourceItemEditedEvent]).pipe(hermesFilter(event => event.getAggregateId().toString() === structureId.toString()), hermesMap(event => {\n const afterItem = event.getAfterItem().getSourceItem(),\n beforeItem = event.getBeforeItem().getSourceItem();\n return new EditedItemModel(afterItem, beforeItem);\n }));\n }\n}\nclass CompositionEventRepository extends EventRepository {}\nclass SourceWarehouse {\n constructor() {}\n}\nclass SelectedRowChangedEvent extends StructureDomainEvent {\n selectedRows;\n allSelected;\n allUnselected;\n constructor(structureId, selectedRows, allSelected, allUnselected) {\n super(structureId, {\n selectedRows,\n allSelected,\n allUnselected\n }, 'SelectedRowChangedEvent');\n this.selectedRows = selectedRows;\n this.allSelected = allSelected;\n this.allUnselected = allUnselected;\n }\n getSelectedRows() {\n return this.selectedRows;\n }\n isAllSelected() {\n return this.allSelected;\n }\n isAllUnselected() {\n return this.allUnselected;\n }\n}\nclass FormationEventRepository extends EventRepository {\n sourceWarehouse;\n domainEventBusTOREMOVE;\n map = new Map();\n subject$ = new HermesSubject();\n constructor(sourceWarehouse, domainEventBusTOREMOVE) {\n super();\n this.sourceWarehouse = sourceWarehouse;\n this.domainEventBusTOREMOVE = domainEventBusTOREMOVE;\n this.domainEventBusTOREMOVE.ofEvents([SelectedRowChangedEvent]).pipe(hermesSwitchMap(event => {\n const selectedRows = event.getSelectedRows();\n const structureId = event.getAggregateId();\n return this.sourceWarehouse.onPreparedItems(structureId).pipe(hermesTake(1), hermesMap(items => {\n const selectedItems = [],\n length = items.length,\n itemsMap = new Map();\n for (let i = 0; i < length; i += 1) {\n itemsMap.set(items[i].getId().toString(), items[i]);\n }\n for (let j = 0; j < selectedRows.length; j += 1) {\n const item = itemsMap.get(selectedRows[j]);\n selectedItems.push(new SelectedRow(item.getSourceItem(), j, item.getId()));\n }\n return {\n id: structureId,\n items: selectedItems\n };\n }));\n })).subscribe(e => {\n this.map.set(e.id.toString(), e.items);\n this.subject$.next(this.map);\n });\n }\n static services = [SourceWarehouse, DomainEventBus];\n onItemSelected(structureId) {\n return this.subject$.toObservable().pipe(hermesFilter(map => {\n return map.has(structureId.toString());\n }), hermesMap(map => {\n return map.get(structureId.toString());\n }));\n }\n}\nclass CellEditorManager {\n enabled = false;\n rowEdit = () => true;\n cellEdit = () => true;\n constructor(config) {\n if (config.enabled !== undefined) {\n this.enabled = config.enabled;\n }\n if (config.rowEdit !== undefined) {\n this.rowEdit = config.rowEdit;\n }\n if (config.cellEdit !== undefined) {\n this.cellEdit = config.cellEdit;\n }\n }\n isEnabled(value, item, index) {\n return this.enabled && this.rowEdit(value, item, index) && this.cellEdit(value, item, index);\n }\n}\nclass StructureCellEditArchive extends AggregateArchive {\n static default = new CellEditorManager({\n enabled: false\n });\n constructor() {\n super(StructureCellEditArchive.default);\n }\n static ɵfac = function StructureCellEditArchive_Factory(t) {\n return new (t || StructureCellEditArchive)();\n };\n static ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: StructureCellEditArchive,\n factory: StructureCellEditArchive.ɵfac\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(StructureCellEditArchive, [{\n type: Injectable\n }], () => [], null);\n})();\nclass StructureInfoPanelConfigConverter {\n convert(config) {\n let infoDialog, columnsManager, sourceSize, schemaManager;\n if (config.infoDialog !== undefined) {\n infoDialog = config.infoDialog;\n }\n if (config.columnsManager !== undefined) {\n columnsManager = config.columnsManager;\n }\n if (config.schemaManager !== undefined) {\n schemaManager = config.schemaManager;\n }\n if (config.sourceSize !== undefined) {\n sourceSize = config.sourceSize;\n }\n return new StructureInfoPanelConfig(config.enabled, infoDialog, columnsManager, schemaManager, sourceSize);\n }\n}\nclass StructureInfoPanelConfigService {\n structureInfoPanelConfigConverter;\n structureInfoPanelArchive;\n constructor(structureInfoPanelConfigConverter, structureInfoPanelArchive) {\n this.structureInfoPanelConfigConverter = structureInfoPanelConfigConverter;\n this.structureInfoPanelArchive = structureInfoPanelArchive;\n }\n static services = [StructureInfoPanelConfigConverter, StructureInfoPanelArchive];\n set(config) {\n const infoPanelConfig = this.structureInfoPanelConfigConverter.convert(config);\n this.structureInfoPanelArchive.next(infoPanelConfig);\n }\n static ɵfac = function StructureInfoPanelConfigService_Factory(t) {\n return new (t || StructureInfoPanelConfigService)(i0.ɵɵinject(StructureInfoPanelConfigConverter), i0.ɵɵinject(StructureInfoPanelArchive));\n };\n static ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: StructureInfoPanelConfigService,\n factory: StructureInfoPanelConfigService.ɵfac\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(StructureInfoPanelConfigService, [{\n type: Injectable\n }], () => [{\n type: StructureInfoPanelConfigConverter\n }, {\n type: StructureInfoPanelArchive\n }], null);\n})();\nclass ColumnField {\n fieldId;\n accessor;\n searchAccessor;\n dataType;\n constructor(fieldId, accessor, dataType, searchAccessor) {\n this.fieldId = fieldId;\n this.accessor = accessor;\n this.dataType = dataType;\n this.searchAccessor = searchAccessor;\n }\n getId() {\n return this.fieldId;\n }\n getValue(entity) {\n return this.accessor(entity);\n }\n getAccessor() {\n return this.accessor;\n }\n getSearchAccessor() {\n return this.searchAccessor;\n }\n getDataType() {\n return this.dataType;\n }\n}\nclass ColumnFieldFactory {\n create(columnFieldId, accessor, dataType, searchAccessor) {\n return new ColumnField(columnFieldId, accessor, dataType, searchAccessor);\n }\n}\nclass SearchEventRepository extends EventRepository {\n constructor() {\n super();\n }\n}\nclass StructureHeaderBottomEnabledArchive extends Archive {\n constructor() {\n super(false);\n }\n static ɵfac = function StructureHeaderBottomEnabledArchive_Factory(t) {\n return new (t || StructureHeaderBottomEnabledArchive)();\n };\n static ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: StructureHeaderBottomEnabledArchive,\n factory: StructureHeaderBottomEnabledArchive.ɵfac\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(StructureHeaderBottomEnabledArchive, [{\n type: Injectable\n }], () => [], null);\n})();\nclass SchemaEventRepository extends EventRepository {\n constructor() {\n super();\n }\n}\nclass TranslationFacade {}\nclass StructureInitialValuesReadyArchive extends AggregateArchive {\n static default = false;\n constructor() {\n super(StructureInitialValuesReadyArchive.default);\n }\n on(aggregateId) {\n return super.on(aggregateId).pipe(hermesFilter(v => v));\n }\n once(aggregateId) {\n return singleFromObservable(this.on(aggregateId));\n }\n}\n\n/** @internal */\nclass StructureGateway extends SmartComponent {\n changeDetectorRef;\n columnAutoConfigurator;\n structureId;\n compositionId;\n schemaId;\n structureCommandInvoker;\n structurePagingCommandDispatcher;\n pagingEventRepository;\n sortingCommandInvoker;\n searchCommandInvoker;\n sourceCommandService;\n sourceEventService;\n schemaCommandInvoker;\n compositionCommandDispatcher;\n compositionEventRepository;\n formationEventService;\n structureEditModeArchive;\n structureCellEditArchive;\n structureInfoPanelConfigService;\n structureCellEditStore;\n columnFieldFactory;\n formationCommandDispatcher;\n searchEventRepository;\n structureHeaderBottomEnabledArchive;\n schemaEventRepository;\n translationService;\n structureInitialValuesReadyArchive;\n /** *********************\n * INPUTS\n ***********************/\n maxHeight;\n width;\n rowHeight;\n autoResizeWidth;\n // DOESNT WORK WITH GATE\n source = [];\n // DOESNT WORK WITH GATE\n columns;\n // @Input()\n // filtering: boolean | FilterConfig;\n // @Input()\n // quickFilters: boolean | QuickFiltersConfig;\n editMode;\n cellEditing;\n theme;\n /** *********************\n * OUTPUTS\n ***********************/\n themeChanged = new EventEmitter();\n columnsChanged = new EventEmitter();\n containerWidthChanged = new EventEmitter();\n sourceEdited = new EventEmitter();\n cellEditEntered = new EventEmitter();\n cellEditCanceled = new EventEmitter();\n cellEditSubmitted = new EventEmitter();\n structureColumnInputHandler;\n changeAfterInit = false;\n constructor(changeDetectorRef, elementRef, columnAutoConfigurator, structureId, compositionId, schemaId, structureCommandInvoker, structurePagingCommandDispatcher, pagingEventRepository, sortingCommandInvoker, searchCommandInvoker, sourceCommandService, sourceEventService, schemaCommandInvoker, compositionCommandDispatcher, compositionEventRepository, formationEventService, structureEditModeArchive, structureCellEditArchive, structureInfoPanelConfigService, structureCellEditStore, columnFieldFactory, formationCommandDispatcher, searchEventRepository, structureHeaderBottomEnabledArchive, schemaEventRepository, translationService, structureInitialValuesReadyArchive) {\n super(changeDetectorRef, elementRef);\n this.changeDetectorRef = changeDetectorRef;\n this.columnAutoConfigurator = columnAutoConfigurator;\n this.structureId = structureId;\n this.compositionId = compositionId;\n this.schemaId = schemaId;\n this.structureCommandInvoker = structureCommandInvoker;\n this.structurePagingCommandDispatcher = structurePagingCommandDispatcher;\n this.pagingEventRepository = pagingEventRepository;\n this.sortingCommandInvoker = sortingCommandInvoker;\n this.searchCommandInvoker = searchCommandInvoker;\n this.sourceCommandService = sourceCommandService;\n this.sourceEventService = sourceEventService;\n this.schemaCommandInvoker = schemaCommandInvoker;\n this.compositionCommandDispatcher = compositionCommandDispatcher;\n this.compositionEventRepository = compositionEventRepository;\n this.formationEventService = formationEventService;\n this.structureEditModeArchive = structureEditModeArchive;\n this.structureCellEditArchive = structureCellEditArchive;\n this.structureInfoPanelConfigService = structureInfoPanelConfigService;\n this.structureCellEditStore = structureCellEditStore;\n this.columnFieldFactory = columnFieldFactory;\n this.formationCommandDispatcher = formationCommandDispatcher;\n this.searchEventRepository = searchEventRepository;\n this.structureHeaderBottomEnabledArchive = structureHeaderBottomEnabledArchive;\n this.schemaEventRepository = schemaEventRepository;\n this.translationService = translationService;\n this.structureInitialValuesReadyArchive = structureInitialValuesReadyArchive;\n this.structureColumnInputHandler = new StructureColumnInputHandler(structureId, compositionId, columnFieldFactory, columnAutoConfigurator, compositionCommandDispatcher);\n this.translationService.setDefaultTranslation();\n }\n ngOnChanges(changes) {\n ifChanged(changes.editMode, () => {\n this.structureEditModeArchive.next(this.editMode);\n });\n ifChanged(changes.cellEditing, () => {\n let editingConfig;\n if (typeof this.cellEditing === 'boolean') {\n editingConfig = {\n enabled: this.cellEditing\n };\n } else {\n editingConfig = this.cellEditing;\n }\n this.structureCommandInvoker.setCellEdit(editingConfig, this.structureId);\n });\n ifChanged(changes.width, width => {\n this.compositionCommandDispatcher.setWidth(width, this.compositionId);\n });\n ifChanged(changes.theme, () => {\n this.schemaCommandInvoker.setTheme(this.theme, this.schemaId, this.structureId);\n });\n ifChanged(changes.rowHeight, () => {\n this.structureCommandInvoker.setRowHeight(this.rowHeight, this.structureId);\n });\n ifChanged(changes.autoResizeWidth, () => {\n this.compositionCommandDispatcher.setResizeWidth(this.autoResizeWidth, this.compositionId);\n });\n /**\n * Columns\n */\n this.structureColumnInputHandler.handle(changes);\n ifChanged(changes.maxHeight, () => {\n this.structureCommandInvoker.setContainerHeight(this.maxHeight, this.structureId);\n });\n /**\n * Setting source should be last step\n */\n ifChanged(changes.source, () => {\n this.sourceCommandService.setOrigin(this.source, this.structureId);\n });\n }\n ngOnInit() {\n this.compositionEventRepository.onColumnsChanged(this.compositionId.toReadModelRootId()).pipe(this.takeUntil()).subscribe(() => {\n this.columnsChanged.emit();\n });\n this.compositionEventRepository.onContainerWidthChanged(this.compositionId.toReadModelRootId()).pipe(this.takeUntil()).subscribe(containerWidth => {\n this.containerWidthChanged.emit(containerWidth);\n });\n this.sourceEventService.onSourceEdited(this.structureId).subscribe(values => {\n this.sourceEdited.emit(values);\n });\n this.structureCellEditStore.on().pipe(this.takeUntil()).subscribe(state => {\n switch (state) {\n case StructureCellEditState.ENTER:\n this.cellEditEntered.emit();\n break;\n case StructureCellEditState.SUBMIT:\n this.cellEditSubmitted.emit();\n break;\n case StructureCellEditState.CANCEL:\n this.cellEditCanceled.emit();\n break;\n default:\n break;\n }\n });\n this.subscribeAndEmit(this.schemaEventRepository.onThemeChanged(this.schemaId), this.themeChanged);\n this.componentInitialized();\n }\n componentInitialized() {\n this.changeAfterInit = true;\n }\n static ɵfac = function StructureGateway_Factory(t) {\n return new (t || StructureGateway)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(ColumnAutoConfigurator), i0.ɵɵdirectiveInject(StructureId), i0.ɵɵdirectiveInject(CompositionId), i0.ɵɵdirectiveInject(SchemaReadModelRootId), i0.ɵɵdirectiveInject(StructurePublisher), i0.ɵɵdirectiveInject(PagingPublisher), i0.ɵɵdirectiveInject(PagingEventRepository), i0.ɵɵdirectiveInject(SortingPublisher), i0.ɵɵdirectiveInject(SearchPublisher), i0.ɵɵdirectiveInject(SourcePublisher), i0.ɵɵdirectiveInject(SourceEventService), i0.ɵɵdirectiveInject(SchemaPublisher), i0.ɵɵdirectiveInject(CompositionPublisher), i0.ɵɵdirectiveInject(CompositionEventRepository), i0.ɵɵdirectiveInject(FormationEventRepository), i0.ɵɵdirectiveInject(StructureEditModeArchive), i0.ɵɵdirectiveInject(StructureCellEditArchive), i0.ɵɵdirectiveInject(StructureInfoPanelConfigService), i0.ɵɵdirectiveInject(StructureCellEditStore), i0.ɵɵdirectiveInject(ColumnFieldFactory), i0.ɵɵdirectiveInject(FormationPublisher), i0.ɵɵdirectiveInject(SearchEventRepository), i0.ɵɵdirectiveInject(StructureHeaderBottomEnabledArchive), i0.ɵɵdirectiveInject(SchemaEventRepository), i0.ɵɵdirectiveInject(TranslationFacade), i0.ɵɵdirectiveInject(StructureInitialValuesReadyArchive));\n };\n static ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: StructureGateway,\n inputs: {\n maxHeight: \"maxHeight\",\n width: \"width\",\n rowHeight: \"rowHeight\",\n autoResizeWidth: \"autoResizeWidth\",\n source: \"source\",\n columns: \"columns\",\n editMode: \"editMode\",\n cellEditing: \"cellEditing\",\n theme: \"theme\"\n },\n outputs: {\n themeChanged: \"themeChanged\",\n columnsChanged: \"columnsChanged\",\n containerWidthChanged: \"containerWidthChanged\",\n sourceEdited: \"sourceEdited\",\n cellEditEntered: \"cellEditEntered\",\n cellEditCanceled: \"cellEditCanceled\",\n cellEditSubmitted: \"cellEditSubmitted\"\n },\n features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature]\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(StructureGateway, [{\n type: Directive\n }], () => [{\n type: i0.ChangeDetectorRef\n }, {\n type: i0.ElementRef\n }, {\n type: ColumnAutoConfigurator\n }, {\n type: StructureId\n }, {\n type: CompositionId\n }, {\n type: SchemaReadModelRootId\n }, {\n type: StructurePublisher\n }, {\n type: PagingPublisher\n }, {\n type: PagingEventRepository\n }, {\n type: SortingPublisher\n }, {\n type: SearchPublisher\n }, {\n type: SourcePublisher\n }, {\n type: SourceEventService\n }, {\n type: SchemaPublisher\n }, {\n type: CompositionPublisher\n }, {\n type: CompositionEventRepository\n }, {\n type: FormationEventRepository\n }, {\n type: StructureEditModeArchive\n }, {\n type: StructureCellEditArchive\n }, {\n type: StructureInfoPanelConfigService\n }, {\n type: StructureCellEditStore\n }, {\n type: ColumnFieldFactory\n }, {\n type: FormationPublisher\n }, {\n type: SearchEventRepository\n }, {\n type: StructureHeaderBottomEnabledArchive\n }, {\n type: SchemaEventRepository\n }, {\n type: TranslationFacade\n }, {\n type: StructureInitialValuesReadyArchive\n }], {\n maxHeight: [{\n type: Input\n }],\n width: [{\n type: Input\n }],\n rowHeight: [{\n type: Input\n }],\n autoResizeWidth: [{\n type: Input\n }],\n source: [{\n type: Input\n }],\n columns: [{\n type: Input\n }],\n editMode: [{\n type: Input\n }],\n cellEditing: [{\n type: Input\n }],\n theme: [{\n type: Input\n }],\n themeChanged: [{\n type: Output\n }],\n columnsChanged: [{\n type: Output\n }],\n containerWidthChanged: [{\n type: Output\n }],\n sourceEdited: [{\n type: Output\n }],\n cellEditEntered: [{\n type: Output\n }],\n cellEditCanceled: [{\n type: Output\n }],\n cellEditSubmitted: [{\n type: Output\n }]\n });\n})();\nclass StructureColumnMenuConfig {\n enabled;\n sort;\n filter;\n columnsManager;\n mainMenu = 'Menu';\n filterMenu = 'Filter';\n columnsMenu = 'Columns';\n constructor(enabled = false, sort = true, filter = false, columnsManager = false) {\n this.enabled = enabled;\n this.sort = sort;\n this.filter = filter;\n this.columnsManager = columnsManager;\n }\n static default() {\n return new StructureColumnMenuConfig();\n }\n static fromConfig(config) {\n return new StructureColumnMenuConfig(config.enabled, config.sort, config.filter, config.columnsManager);\n }\n isEnabled() {\n return this.enabled && (this.sort || this.filter || this.columnsManager);\n }\n isMainEnabled() {\n return this.sort;\n }\n isSortingEnabled() {\n return this.sort;\n }\n isFilteringEnabled() {\n return this.filter;\n }\n isColumnManagerEnabled() {\n return this.columnsManager;\n }\n getMenus() {\n const menus = [];\n if (this.isMainEnabled()) {\n menus.push(this.getMainMenu());\n }\n if (this.isFilteringEnabled()) {\n menus.push(this.getFilterMenu());\n }\n if (this.isColumnManagerEnabled()) {\n menus.push(this.getColumnMenu());\n }\n return menus;\n }\n getActiveMenu() {\n return this.getMenus()[0];\n }\n getMainMenu() {\n return this.mainMenu;\n }\n getFilterMenu() {\n return this.filterMenu;\n }\n getColumnMenu() {\n return this.columnsMenu;\n }\n setMainMenu(mainMenu) {\n this.mainMenu = mainMenu;\n }\n setFilterMenu(filterMenu) {\n this.filterMenu = filterMenu;\n }\n setColumnsMenu(columnsMenu) {\n this.columnsMenu = columnsMenu;\n }\n}\nclass StructureColumnMenuConfigArchive extends Archive {\n constructor() {\n super(StructureColumnMenuConfig.default());\n }\n nextConfig(config) {\n const menuConfig = StructureColumnMenuConfig.fromConfig(config);\n this.next(menuConfig);\n }\n static ɵfac = function StructureColumnMenuConfigArchive_Factory(t) {\n return new (t || StructureColumnMenuConfigArchive)();\n };\n static ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: StructureColumnMenuConfigArchive,\n factory: StructureColumnMenuConfigArchive.ɵfac\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(StructureColumnMenuConfigArchive, [{\n type: Injectable\n }], () => [], null);\n})();\nclass StructureCellEditCloseAllService {\n closeAll$ = new HermesSubject();\n closeAll() {\n this.closeAll$.next();\n }\n onCloseAll() {\n return this.closeAll$.toObservable();\n }\n static ɵfac = function StructureCellEditCloseAllService_Factory(t) {\n return new (t || StructureCellEditCloseAllService)();\n };\n static ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: StructureCellEditCloseAllService,\n factory: StructureCellEditCloseAllService.ɵfac\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(StructureCellEditCloseAllService, [{\n type: Injectable\n }], null, null);\n})();\nclass StructureHeaderTopEnabledArchive extends Archive {\n constructor() {\n super(true);\n }\n static ɵfac = function StructureHeaderTopEnabledArchive_Factory(t) {\n return new (t || StructureHeaderTopEnabledArchive)();\n };\n static ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: StructureHeaderTopEnabledArchive,\n factory: StructureHeaderTopEnabledArchive.ɵfac\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(StructureHeaderTopEnabledArchive, [{\n type: Injectable\n }], () => [], null);\n})();\nclass StructureRowDetailConfigArchive extends Archive {\n constructor() {\n super({\n enabled: false,\n template: item => 'Detail View'\n });\n }\n static ɵfac = function StructureRowDetailConfigArchive_Factory(t) {\n return new (t || StructureRowDetailConfigArchive)();\n };\n static ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: StructureRowDetailConfigArchive,\n factory: StructureRowDetailConfigArchive.ɵfac\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(StructureRowDetailConfigArchive, [{\n type: Injectable\n }], () => [], null);\n})();\nconst structureRowDetailViewItem = new InjectionToken('structureRowDetailViewItem');\nconst structureRowDetailViewTemplate = new InjectionToken('structureRowDetailViewTemplate');\nclass DynamicallyCreatedComponent extends GuiComponent {\n subClassConstructor;\n constructor(elRef) {\n super(elRef);\n this.subClassConstructor = this.constructor;\n if (this.hasInputs()) {\n this.throwError('it cannot have properties annotated with @Inputs().');\n }\n }\n hasInputs() {\n return !this.isEmpty(this.constructor.ɵcmp.inputs);\n }\n throwError(reason) {\n throw new Error(`Component \"${this.subClassConstructor.name}\" is a DynamicallyCreatedComponent, ${reason}.`);\n }\n isEmpty(obj) {\n for (const key in obj) {\n if (obj.hasOwnProperty(key)) return false;\n }\n return true;\n }\n static ɵfac = function DynamicallyCreatedComponent_Factory(t) {\n return new (t || DynamicallyCreatedComponent)(i0.ɵɵdirectiveInject(i0.ElementRef));\n };\n static ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: DynamicallyCreatedComponent,\n features: [i0.ɵɵInheritDefinitionFeature]\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DynamicallyCreatedComponent, [{\n type: Directive\n }], () => [{\n type: i0.ElementRef\n }], null);\n})();\nclass StructureRowDetailViewComponent extends DynamicallyCreatedComponent {\n item;\n template;\n sanitizer;\n selectedRowValue;\n safeHTML;\n constructor(elRef, item, template, sanitizer) {\n super(elRef);\n this.item = item;\n this.template = template;\n this.sanitizer = sanitizer;\n this.safeHTML = this.sanitizer.bypassSecurityTrustHtml(this.template(this.item.getItem(), this.item.getIndex()));\n this.selectedRowValue = this.item.getItem();\n }\n getSelectorName() {\n return 'gui-row-detail';\n }\n static ɵfac = function StructureRowDetailViewComponent_Factory(t) {\n return new (t || StructureRowDetailViewComponent)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(structureRowDetailViewItem), i0.ɵɵdirectiveInject(structureRowDetailViewTemplate), i0.ɵɵdirectiveInject(i1.DomSanitizer));\n };\n static ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: StructureRowDetailViewComponent,\n selectors: [[\"div\", \"gui-row-detail\", \"\"]],\n features: [i0.ɵɵInheritDefinitionFeature],\n attrs: _c0,\n decls: 1,\n vars: 1,\n consts: [[3, \"innerHTML\"]],\n template: function StructureRowDetailViewComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"div\", 0);\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"innerHTML\", ctx.safeHTML, i0.ɵɵsanitizeHtml);\n }\n },\n encapsulation: 2,\n changeDetection: 0\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(StructureRowDetailViewComponent, [{\n type: Component,\n args: [{\n selector: 'div[gui-row-detail]',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n template: \"
\\n\"\n }]\n }], () => [{\n type: i0.ElementRef\n }, {\n type: SelectedRow,\n decorators: [{\n type: Inject,\n args: [structureRowDetailViewItem]\n }]\n }, {\n type: undefined,\n decorators: [{\n type: Inject,\n args: [structureRowDetailViewTemplate]\n }]\n }, {\n type: i1.DomSanitizer\n }], null);\n})();\nclass StructureRowDetailService extends Reactive {\n injector;\n structureId;\n structureDetailViewConfigArchive;\n formationEventService;\n drawerService;\n enabled = false;\n config;\n elementRef;\n constructor(injector, structureId, structureDetailViewConfigArchive, formationEventService, drawerService) {\n super();\n this.injector = injector;\n this.structureId = structureId;\n this.structureDetailViewConfigArchive = structureDetailViewConfigArchive;\n this.formationEventService = formationEventService;\n this.drawerService = drawerService;\n }\n init(ref) {\n this.elementRef = ref;\n this.structureDetailViewConfigArchive.on().pipe(this.hermesTakeUntil()).subscribe(config => {\n this.config = config;\n if (config.enabled === true) {\n this.turnOn();\n } else if (config.enabled === false) {\n this.turnOff();\n }\n });\n this.formationEventService.onItemSelected(this.structureId).pipe(this.hermesTakeUntil()).subscribe(items => {\n if (!this.enabled) {\n return;\n }\n this.drawerService.close();\n if (items.length === 0) {\n return;\n }\n const item = items[0];\n const injector = Injector.create({\n parent: this.injector,\n providers: [{\n provide: structureRowDetailViewItem,\n useValue: item\n }, {\n provide: structureRowDetailViewTemplate,\n useValue: this.config.template\n }]\n });\n this.drawerService.open({\n appendToElement: this.elementRef,\n component: StructureRowDetailViewComponent,\n injector: injector\n });\n });\n }\n turnOn() {\n this.enabled = true;\n }\n turnOff() {\n this.enabled = false;\n }\n static ɵfac = function StructureRowDetailService_Factory(t) {\n return new (t || StructureRowDetailService)(i0.ɵɵinject(i0.Injector), i0.ɵɵinject(StructureId), i0.ɵɵinject(StructureRowDetailConfigArchive), i0.ɵɵinject(FormationEventRepository), i0.ɵɵinject(i1$1.FabricDrawerService));\n };\n static ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: StructureRowDetailService,\n factory: StructureRowDetailService.ɵfac\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(StructureRowDetailService, [{\n type: Injectable\n }], () => [{\n type: i0.Injector\n }, {\n type: StructureId\n }, {\n type: StructureRowDetailConfigArchive\n }, {\n type: FormationEventRepository\n }, {\n type: i1$1.FabricDrawerService\n }], null);\n})();\nvar PagingPosition;\n(function (PagingPosition) {\n PagingPosition[PagingPosition[\"TOP\"] = 0] = \"TOP\";\n PagingPosition[PagingPosition[\"BOTTOM\"] = 1] = \"BOTTOM\";\n})(PagingPosition || (PagingPosition = {}));\nvar CssClass;\n(function (CssClass) {\n CssClass[\"SELECTED\"] = \"selected\";\n CssClass[\"PAGING_TOP_CLASS_NAME\"] = \"gui-paging-top\";\n CssClass[\"PAGING_BOTTOM_CLASS_NAME\"] = \"gui-paging-bottom\";\n})(CssClass || (CssClass = {}));\nclass GuiState {\n state = {};\n state$ = new HermesReplaySubject();\n destroy$ = new HermesReplaySubject();\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n setValue(state) {\n this.state = Object.assign({}, this.state, state);\n this.state$.next(this.state);\n }\n getValue(key) {\n if (key !== undefined) {\n return this.state[key];\n } else {\n return this.state;\n }\n }\n select(key) {\n let preparedState$ = this.state$;\n if (key !== undefined) {\n preparedState$ = this.state$.pipe(hermesMap(state => {\n return state[key];\n }));\n }\n return preparedState$.pipe(hermesDistinctUntilChanged());\n }\n connect(arg, value$) {\n if (typeof arg === 'string') {\n value$.pipe(hermesTakeUntil(this.destroy$)).subscribe(value => {\n this.setPartialState(arg, value);\n });\n } else {\n arg.pipe(hermesTakeUntil(this.destroy$)).subscribe(state => {\n this.setValue(state);\n });\n }\n }\n setPartialState(key, value) {\n const newState = {};\n newState[key] = value;\n this.state = Object.assign({}, this.state, newState);\n this.state$.next(this.state);\n }\n static ɵfac = function GuiState_Factory(t) {\n return new (t || GuiState)();\n };\n static ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: GuiState,\n factory: GuiState.ɵfac\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(GuiState, [{\n type: Injectable\n }], null, null);\n})();\nclass StreamCloser {\n unsubscribe$ = new HermesSubject();\n constructor() {}\n takeUntil() {\n return hermesTakeUntil(this.unsubscribe$);\n }\n unsubscribe() {\n if (this.unsubscribe$.isCompleted) {\n return;\n }\n this.unsubscribe$.next();\n this.unsubscribe$.complete();\n }\n}\nclass Gate {\n streamCloser = new StreamCloser();\n hermesUnsubscribe$ = new HermesSubject();\n constructor() {}\n ngOnDestroy() {\n this.streamCloser.unsubscribe();\n this.hermesUnsubscribe();\n }\n isDefined(propertyName, changes) {\n return changes[propertyName] !== undefined && changes[propertyName].currentValue !== undefined;\n }\n subscribeAndEmit(stream$, emitter) {\n stream$.pipe(this.hermesTakeUntil()).subscribe(value => {\n emitter.emit(value);\n });\n }\n unsubscribe() {\n this.streamCloser.unsubscribe();\n }\n hermesUnsubscribe() {\n this.hermesUnsubscribe$.next();\n this.hermesUnsubscribe$.complete();\n }\n hermesTakeUntil() {\n return hermesTakeUntil(this.hermesUnsubscribe$);\n }\n takeUntil() {\n return this.streamCloser.takeUntil();\n }\n static ɵfac = function Gate_Factory(t) {\n return new (t || Gate)();\n };\n static ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: Gate\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(Gate, [{\n type: Directive\n }], () => [], null);\n})();\nclass StaticComponent extends GuiComponent {\n changeDetectorRef;\n constructor(elementRef, changeDetectorRef) {\n super(elementRef);\n this.changeDetectorRef = changeDetectorRef;\n }\n ngOnInit() {\n this.changeDetectorRef.detach();\n }\n static ɵfac = function StaticComponent_Factory(t) {\n return new (t || StaticComponent)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef));\n };\n static ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: StaticComponent,\n features: [i0.ɵɵInheritDefinitionFeature]\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(StaticComponent, [{\n type: Directive\n }], () => [{\n type: i0.ElementRef\n }, {\n type: i0.ChangeDetectorRef\n }], null);\n})();\nclass IconComponent extends StaticComponent {\n constructor(elementRef, changeDetectorRef) {\n super(elementRef, changeDetectorRef);\n this.addClassToHost('gui-icon');\n }\n static ɵfac = function IconComponent_Factory(t) {\n return new (t || IconComponent)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef));\n };\n static ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: IconComponent,\n features: [i0.ɵɵInheritDefinitionFeature]\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(IconComponent, [{\n type: Directive\n }], () => [{\n type: i0.ElementRef\n }, {\n type: i0.ChangeDetectorRef\n }], null);\n})();\n\n/**\n * https://netbasal.com/create-a-typed-version-of-simplechanges-in-angular-451f86593003\n */\n\nclass PureComponent extends GuiComponent {\n subClassConstructor;\n subClassNgOnInit;\n constructor(elementRef) {\n super(elementRef);\n this.subClassConstructor = this.constructor;\n this.subClassNgOnInit = this.ngOnInit;\n if (!this.hasConstructorOnlyElementRefInjected(arguments)) {\n this.throwError('it should not inject services');\n }\n if (this.subClassNgOnInit) {\n this.throwError('it should not use ngOnInit');\n }\n }\n hasConstructorOnlyElementRefInjected(args) {\n if (arguments.length > 1) {\n return false;\n }\n if (arguments.length === 1) {\n return this.isElementRef(arguments[0]);\n }\n return false;\n }\n isElementRef(elRef) {\n return elRef.nativeElement !== null;\n }\n throwError(reason) {\n throw new Error(`Component \"${this.subClassConstructor.name}\" is a PureComponent, ${reason}.`);\n }\n static ɵfac = function PureComponent_Factory(t) {\n return new (t || PureComponent)(i0.ɵɵdirectiveInject(i0.ElementRef));\n };\n static ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: PureComponent,\n features: [i0.ɵɵInheritDefinitionFeature]\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(PureComponent, [{\n type: Directive\n }], () => [{\n type: i0.ElementRef\n }], null);\n})();\nfunction useReactiveContext(stream$, cd) {\n const unsub$ = new HermesSubject();\n let changeDetector;\n if (cd) {\n changeDetector = cd;\n } else {\n changeDetector = inject(ChangeDetectorRef);\n }\n let innerStream$;\n if (stream$) {\n innerStream$ = stream$.pipe(hermesTakeUntil(unsub$));\n }\n changeDetector.onDestroy(() => {\n unsub$.next();\n unsub$.complete();\n });\n const context = {\n connect: stream$ => {\n innerStream$ = stream$.pipe(hermesTakeUntil(unsub$));\n return context;\n },\n subscribe(next, error, complete) {\n return innerStream$.subscribe(next, error, complete);\n },\n subscribeAndRender(next, error, complete) {\n return innerStream$.subscribe(v => {\n next(v);\n changeDetector.detectChanges();\n }, error, complete);\n },\n unsubscribe() {\n unsub$.next();\n unsub$.complete();\n }\n };\n return context;\n}\nclass CssClassModifier {\n classModifier = new ClassModifier();\n select(htmlElement) {\n this.classModifier.getElement(htmlElement).add(CssClass.SELECTED);\n }\n unselect(htmlElement) {\n this.classModifier.getElement(htmlElement).remove(CssClass.SELECTED);\n }\n add(htmlElement, clazzName) {\n this.classModifier.getElement(htmlElement).add(clazzName);\n }\n remove(htmlElement, clazzName) {\n this.classModifier.getElement(htmlElement).remove(clazzName);\n }\n toggle(htmlElement) {}\n}\nclass PagingWarehouse {\n constructor() {}\n}\nclass PagingDisplayModeArchive extends Archive {\n constructor() {\n super(PagingDisplayMode.BASIC);\n }\n static ɵfac = function PagingDisplayModeArchive_Factory(t) {\n return new (t || PagingDisplayModeArchive)();\n };\n static ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: PagingDisplayModeArchive,\n factory: PagingDisplayModeArchive.ɵfac\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(PagingDisplayModeArchive, [{\n type: Injectable\n }], () => [], null);\n})();\nclass GuiSubscriber {\n destroy$ = new HermesReplaySubject(1);\n subscription;\n subscribe(obs$, next) {\n if (this.subscription !== undefined) {\n this.subscription.unsubscribe();\n }\n this.subscription = obs$.pipe(hermesDistinctUntilChanged(), hermesTakeUntil(this.destroy$)).subscribe(v => next(v), error => this.onError(error), () => this.onComplete());\n }\n destroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n onError(_error) {}\n onComplete() {}\n}\nclass GuiLetViewChanger {\n cd;\n vcr;\n template;\n constructor(cd, vcr, template) {\n this.cd = cd;\n this.vcr = vcr;\n this.template = template;\n }\n onNext(v) {\n this.vcr.clear();\n this.vcr.createEmbeddedView(this.template, {\n $implicit: v\n });\n this.cd.detectChanges();\n }\n}\nclass GuiLetDirective {\n subscriber;\n cd;\n vcr;\n template;\n guiLet;\n guiLetViewChanger;\n constructor(subscriber, cd, vcr, template) {\n this.subscriber = subscriber;\n this.cd = cd;\n this.vcr = vcr;\n this.template = template;\n this.guiLetViewChanger = new GuiLetViewChanger(this.cd, this.vcr, this.template);\n }\n ngOnChanges(changes) {\n if (changes['guiLet'] !== undefined) {\n this.subscriber.subscribe(this.guiLet, v => {\n this.guiLetViewChanger.onNext(v);\n });\n }\n }\n ngOnDestroy() {\n this.subscriber.destroy();\n }\n static ɵfac = function GuiLetDirective_Factory(t) {\n return new (t || GuiLetDirective)(i0.ɵɵdirectiveInject(GuiSubscriber), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i0.ViewContainerRef), i0.ɵɵdirectiveInject(i0.TemplateRef));\n };\n static ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: GuiLetDirective,\n selectors: [[\"\", \"guiLet\", \"\"]],\n inputs: {\n guiLet: \"guiLet\"\n },\n features: [i0.ɵɵProvidersFeature([GuiSubscriber]), i0.ɵɵNgOnChangesFeature]\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(GuiLetDirective, [{\n type: Directive,\n args: [{\n selector: '[guiLet]',\n providers: [GuiSubscriber]\n }]\n }], () => [{\n type: GuiSubscriber\n }, {\n type: i0.ChangeDetectorRef\n }, {\n type: i0.ViewContainerRef\n }, {\n type: i0.TemplateRef\n }], {\n guiLet: [{\n type: Input\n }]\n });\n})();\nclass TranslationPipe {\n changeDetectorRef;\n translationService;\n actualTranslationValue = '';\n subscription;\n constructor(changeDetectorRef, translationService) {\n this.changeDetectorRef = changeDetectorRef;\n this.translationService = translationService;\n }\n ngOnDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n transform(key) {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n this.subscription = this.translationService.onTranslation().subscribe(translation => {\n const value = translation[key];\n if (!value) {\n this.actualTranslationValue = key;\n }\n this.actualTranslationValue = value;\n this.changeDetectorRef.markForCheck();\n });\n return this.actualTranslationValue;\n }\n static ɵfac = function TranslationPipe_Factory(t) {\n return new (t || TranslationPipe)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef, 16), i0.ɵɵdirectiveInject(TranslationFacade, 16));\n };\n static ɵpipe = /* @__PURE__ */i0.ɵɵdefinePipe({\n name: \"guiTranslate\",\n type: TranslationPipe,\n pure: false\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(TranslationPipe, [{\n type: Pipe,\n args: [{\n name: 'guiTranslate',\n pure: false\n }]\n }], () => [{\n type: i0.ChangeDetectorRef\n }, {\n type: TranslationFacade\n }], null);\n})();\nclass PagingNavigatorComponent extends PureComponent {\n paging;\n sourceSize;\n nextPageChanged = new EventEmitter();\n prevPageChanged = new EventEmitter();\n prevDisabled = false;\n nextDisabled = false;\n constructor(elementRef) {\n super(elementRef);\n }\n ngOnChanges() {\n this.calculatePrev();\n this.calculateNext();\n }\n prevPage() {\n this.prevPageChanged.emit();\n }\n nextPage() {\n this.nextPageChanged.emit();\n }\n getSelectorName() {\n return 'gui-paging-navigator';\n }\n calculatePrev() {\n if (!this.paging) {\n return;\n }\n this.prevDisabled = this.paging.isPrevPageDisabled();\n }\n calculateNext() {\n if (!this.paging && !this.sourceSize) {\n return;\n }\n this.nextDisabled = this.paging.isNextPageDisabled();\n }\n static ɵfac = function PagingNavigatorComponent_Factory(t) {\n return new (t || PagingNavigatorComponent)(i0.ɵɵdirectiveInject(i0.ElementRef));\n };\n static ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: PagingNavigatorComponent,\n selectors: [[\"div\", \"gui-paging-navigator\", \"\", \"paging\", \"\"]],\n inputs: {\n paging: \"paging\",\n sourceSize: \"sourceSize\"\n },\n outputs: {\n nextPageChanged: \"nextPageChanged\",\n prevPageChanged: \"prevPageChanged\"\n },\n features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature],\n attrs: _c1,\n decls: 7,\n vars: 8,\n consts: [[\"gui-button\", \"\", 1, \"gui-paging-navigator-prev\", \"gui-mr-5\", 3, \"click\", \"disabled\"], [\"gui-button\", \"\", 1, \"gui-paging-navigator-next\", \"gui-mr-0\", 3, \"click\", \"disabled\"]],\n template: function PagingNavigatorComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"gui-button-group\")(1, \"button\", 0);\n i0.ɵɵlistener(\"click\", function PagingNavigatorComponent_Template_button_click_1_listener() {\n return ctx.prevPage();\n });\n i0.ɵɵtext(2);\n i0.ɵɵpipe(3, \"guiTranslate\");\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(4, \"button\", 1);\n i0.ɵɵlistener(\"click\", function PagingNavigatorComponent_Template_button_click_4_listener() {\n return ctx.nextPage();\n });\n i0.ɵɵtext(5);\n i0.ɵɵpipe(6, \"guiTranslate\");\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"disabled\", ctx.prevDisabled);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate1(\" \", i0.ɵɵpipeBind1(3, 4, \"pagingPrevPage\"), \" \");\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"disabled\", ctx.nextDisabled);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate1(\" \", i0.ɵɵpipeBind1(6, 6, \"pagingNextPage\"), \" \");\n }\n },\n dependencies: [i1$1.FabricButtonComponent, i1$1.FabricButtonGroupComponent, TranslationPipe],\n encapsulation: 2,\n changeDetection: 0\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(PagingNavigatorComponent, [{\n type: Component,\n args: [{\n selector: 'div[gui-paging-navigator][paging]',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n template: \"\\n\\t\\n\\n\\t\\n\\n\"\n }]\n }], () => [{\n type: i0.ElementRef\n }], {\n paging: [{\n type: Input\n }],\n sourceSize: [{\n type: Input\n }],\n nextPageChanged: [{\n type: Output\n }],\n prevPageChanged: [{\n type: Output\n }]\n });\n})();\nclass PagingSelectComponent extends PureComponent {\n paging;\n pageSizeChanged = new EventEmitter();\n selectPageSizes;\n selectPageSize;\n constructor(elementRef) {\n super(elementRef);\n }\n ngOnChanges(changes) {\n ifChanged(changes.paging, () => {\n if (this.paging) {\n this.selectPageSizes = this.getSelectPageSizes();\n this.selectPageSize = this.getSelectPageSize(this.paging.getPageSize());\n }\n });\n }\n changePageSize(pageSize) {\n this.pageSizeChanged.emit(+pageSize.value);\n }\n getSelectorName() {\n return 'gui-paging-select';\n }\n getSelectPageSizes() {\n const selectPageSizes = [],\n pageSizes = this.paging.getPageSizes();\n pageSizes.forEach(pageSize => {\n const selectOption = this.getSelectPageSize(pageSize);\n selectPageSizes.push(selectOption);\n });\n return selectPageSizes;\n }\n getSelectPageSize(pageSize) {\n return {\n name: pageSize.toString(),\n value: pageSize.toString()\n };\n }\n static ɵfac = function PagingSelectComponent_Factory(t) {\n return new (t || PagingSelectComponent)(i0.ɵɵdirectiveInject(i0.ElementRef));\n };\n static ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: PagingSelectComponent,\n selectors: [[\"div\", \"gui-paging-select\", \"\", \"paging\", \"\"]],\n inputs: {\n paging: \"paging\"\n },\n outputs: {\n pageSizeChanged: \"pageSizeChanged\"\n },\n features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature],\n attrs: _c2,\n decls: 4,\n vars: 6,\n consts: [[1, \"gui-inline-block\", \"gui-mr-5\"], [3, \"optionChanged\", \"options\", \"selected\", \"width\"]],\n template: function PagingSelectComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"span\", 0);\n i0.ɵɵtext(1);\n i0.ɵɵpipe(2, \"guiTranslate\");\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(3, \"gui-select\", 1);\n i0.ɵɵlistener(\"optionChanged\", function PagingSelectComponent_Template_gui_select_optionChanged_3_listener($event) {\n return ctx.changePageSize($event);\n });\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate1(\" \", i0.ɵɵpipeBind1(2, 4, \"pagingItemsPerPage\"), \"\\n\");\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"options\", ctx.selectPageSizes)(\"selected\", ctx.selectPageSize)(\"width\", 25);\n }\n },\n dependencies: [i1$1.FabricSelectComponent, TranslationPipe],\n encapsulation: 2,\n changeDetection: 0\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(PagingSelectComponent, [{\n type: Component,\n args: [{\n selector: 'div[gui-paging-select][paging]',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n template: \"\\n\\t{{ 'pagingItemsPerPage' | guiTranslate }}\\n\\n\\n\\n\\n\"\n }]\n }], () => [{\n type: i0.ElementRef\n }], {\n paging: [{\n type: Input\n }],\n pageSizeChanged: [{\n type: Output\n }]\n });\n})();\nclass PagingStatsComponent extends PureComponent {\n paging;\n sourceSize;\n firstItemIndex;\n lastItemIndex;\n constructor(elementRef) {\n super(elementRef);\n this.addClassToHost('gui-mx-6');\n }\n ngOnChanges() {\n this.calculate();\n }\n calculate() {\n if (this.paging) {\n this.firstItemIndex = this.paging.getStart();\n this.lastItemIndex = this.paging.getEnd();\n this.sourceSize = this.paging.getSourceSize();\n }\n }\n isSourceNotEmpty() {\n return this.sourceSize > 0;\n }\n getSelectorName() {\n return 'gui-paging-stats';\n }\n static ɵfac = function PagingStatsComponent_Factory(t) {\n return new (t || PagingStatsComponent)(i0.ɵɵdirectiveInject(i0.ElementRef));\n };\n static ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: PagingStatsComponent,\n selectors: [[\"div\", \"gui-paging-stats\", \"\", \"paging\", \"\"]],\n inputs: {\n paging: \"paging\"\n },\n features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature],\n attrs: _c3,\n decls: 3,\n vars: 2,\n consts: [[\"noSource\", \"\"], [4, \"ngIf\", \"ngIfElse\"], [1, \"gui-paging-source-stats\"], [1, \"gui-paging-source-size\"], [1, \"gui-paging-source-stats\", \"gui-paging-no-items\"]],\n template: function PagingStatsComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, PagingStatsComponent_ng_container_0_Template, 12, 6, \"ng-container\", 1)(1, PagingStatsComponent_ng_template_1_Template, 3, 3, \"ng-template\", null, 0, i0.ɵɵtemplateRefExtractor);\n }\n if (rf & 2) {\n const noSource_r2 = i0.ɵɵreference(2);\n i0.ɵɵproperty(\"ngIf\", ctx.isSourceNotEmpty())(\"ngIfElse\", noSource_r2);\n }\n },\n dependencies: [i4.NgIf, TranslationPipe],\n encapsulation: 2,\n changeDetection: 0\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(PagingStatsComponent, [{\n type: Component,\n args: [{\n selector: 'div[gui-paging-stats][paging]',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n template: \"\\n\\t\\n\\t\\t{{firstItemIndex}}\\n\\t\\t-\\n\\t\\t{{lastItemIndex}}\\n\\t\\n\\t\\n\\t\\t{{ 'pagingOf' | guiTranslate }}\\n\\t\\n\\t\\n\\t\\t{{sourceSize}}\\n\\t\\n\\n\\n\\n\\t\\n\\t\\t{{'pagingNoItems' | guiTranslate}}\\n\\t\\n\\n\"\n }]\n }], () => [{\n type: i0.ElementRef\n }], {\n paging: [{\n type: Input\n }]\n });\n})();\nclass AlternativePagingNavigatorComponent extends PureComponent {\n structureId;\n pagingCommandInvoker;\n paging;\n sourceSize;\n nextPageChanged = new EventEmitter();\n prevPageChanged = new EventEmitter();\n prevDisabled = false;\n nextDisabled = false;\n constructor(elRef, structureId, pagingCommandInvoker) {\n super(elRef);\n this.structureId = structureId;\n this.pagingCommandInvoker = pagingCommandInvoker;\n }\n ngOnChanges() {\n this.calculatePrev();\n this.calculateNext();\n }\n prevPage() {\n this.prevPageChanged.emit();\n }\n nextPage() {\n this.nextPageChanged.emit();\n }\n firstPage() {\n this.pagingCommandInvoker.goToPage(1, this.paging.getPage(), this.structureId);\n }\n lastPage() {\n const numberOfPages = Math.ceil(this.sourceSize / this.paging.getPageSize());\n this.pagingCommandInvoker.goToPage(numberOfPages, this.paging.getPage(), this.structureId);\n }\n getSelectorName() {\n return 'gui-paging-alternative-navigator';\n }\n calculatePrev() {\n if (!this.paging) {\n return;\n }\n this.prevDisabled = this.paging.isPrevPageDisabled();\n }\n calculateNext() {\n if (!this.paging && !this.sourceSize) {\n return;\n }\n this.nextDisabled = this.paging.isNextPageDisabled();\n }\n static ɵfac = function AlternativePagingNavigatorComponent_Factory(t) {\n return new (t || AlternativePagingNavigatorComponent)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(StructureId), i0.ɵɵdirectiveInject(PagingPublisher));\n };\n static ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: AlternativePagingNavigatorComponent,\n selectors: [[\"div\", \"gui-paging-alternative-navigator\", \"\", \"paging\", \"\", \"sourceSize\", \"\"]],\n inputs: {\n paging: \"paging\",\n sourceSize: \"sourceSize\"\n },\n outputs: {\n nextPageChanged: \"nextPageChanged\",\n prevPageChanged: \"prevPageChanged\"\n },\n features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature],\n attrs: _c4,\n ngContentSelectors: _c5,\n decls: 17,\n vars: 4,\n consts: [[\"gui-button\", \"\", 3, \"click\", \"disabled\"], [\"height\", \"10.661\", \"viewBox\", \"0 0 11.081 10.661\", \"width\", \"11.081\", \"xmlns\", \"http://www.w3.org/2000/svg\"], [\"transform\", \"translate(-522.98 669.601) rotate(180)\"], [\"d\", \"M.75.75,5.02,5.02.75,9.29\", \"fill\", \"none\", \"stroke-linecap\", \"round\", \"stroke-linejoin\", \"round\", \"stroke-width\", \"1.5\", \"transform\", \"translate(-533.75 659.25)\"], [\"d\", \"M.75.75,5.02,5.02.75,9.29\", \"fill\", \"none\", \"stroke-linecap\", \"round\", \"stroke-linejoin\", \"round\", \"stroke-width\", \"1.5\", \"transform\", \"translate(-528.75 659.25)\"], [\"gui-button\", \"\", 1, \"gui-paging-navigator-prev\", 3, \"click\", \"disabled\"], [\"height\", \"10.661\", \"viewBox\", \"0 0 6.081 10.661\", \"width\", \"6.081\", \"xmlns\", \"http://www.w3.org/2000/svg\"], [\"d\", \"M.75.75,5.02,5.02.75,9.29\", \"fill\", \"none\", \"stroke-linecap\", \"round\", \"stroke-linejoin\", \"round\", \"stroke-width\", \"1.5\", \"transform\", \"translate(5.77 10.351) rotate(180)\"], [\"gui-button\", \"\", 1, \"gui-paging-navigator-next\", 3, \"click\", \"disabled\"], [\"d\", \"M.75.75,5.02,5.02.75,9.29\", \"fill\", \"none\", \"stroke-linecap\", \"round\", \"stroke-linejoin\", \"round\", \"stroke-width\", \"1.5\", \"transform\", \"translate(0.311 0.311)\"], [\"transform\", \"translate(534.061 -658.939)\"]],\n template: function AlternativePagingNavigatorComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef();\n i0.ɵɵelementStart(0, \"button\", 0);\n i0.ɵɵlistener(\"click\", function AlternativePagingNavigatorComponent_Template_button_click_0_listener() {\n return ctx.firstPage();\n });\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(1, \"svg\", 1)(2, \"g\", 2);\n i0.ɵɵelement(3, \"path\", 3)(4, \"path\", 4);\n i0.ɵɵelementEnd()()();\n i0.ɵɵnamespaceHTML();\n i0.ɵɵelementStart(5, \"button\", 5);\n i0.ɵɵlistener(\"click\", function AlternativePagingNavigatorComponent_Template_button_click_5_listener() {\n return ctx.prevPage();\n });\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(6, \"svg\", 6);\n i0.ɵɵelement(7, \"path\", 7);\n i0.ɵɵelementEnd()();\n i0.ɵɵprojection(8);\n i0.ɵɵnamespaceHTML();\n i0.ɵɵelementStart(9, \"button\", 8);\n i0.ɵɵlistener(\"click\", function AlternativePagingNavigatorComponent_Template_button_click_9_listener() {\n return ctx.nextPage();\n });\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(10, \"svg\", 6);\n i0.ɵɵelement(11, \"path\", 9);\n i0.ɵɵelementEnd()();\n i0.ɵɵnamespaceHTML();\n i0.ɵɵelementStart(12, \"button\", 0);\n i0.ɵɵlistener(\"click\", function AlternativePagingNavigatorComponent_Template_button_click_12_listener() {\n return ctx.lastPage();\n });\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(13, \"svg\", 1)(14, \"g\", 10);\n i0.ɵɵelement(15, \"path\", 3)(16, \"path\", 4);\n i0.ɵɵelementEnd()()();\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"disabled\", ctx.prevDisabled);\n i0.ɵɵadvance(5);\n i0.ɵɵproperty(\"disabled\", ctx.prevDisabled);\n i0.ɵɵadvance(4);\n i0.ɵɵproperty(\"disabled\", ctx.nextDisabled);\n i0.ɵɵadvance(3);\n i0.ɵɵproperty(\"disabled\", ctx.nextDisabled);\n }\n },\n dependencies: [i1$1.FabricButtonComponent],\n encapsulation: 2,\n changeDetection: 0\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(AlternativePagingNavigatorComponent, [{\n type: Component,\n args: [{\n selector: 'div[gui-paging-alternative-navigator][paging][sourceSize]',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n template: \"\\n\\n\\n\\n\\n\\n\\n\\n\\n\"\n }]\n }], () => [{\n type: i0.ElementRef\n }, {\n type: StructureId\n }, {\n type: PagingPublisher\n }], {\n paging: [{\n type: Input\n }],\n sourceSize: [{\n type: Input\n }],\n nextPageChanged: [{\n type: Output\n }],\n prevPageChanged: [{\n type: Output\n }]\n });\n})();\nclass AlternativePagingPagesComponent extends PureComponent {\n structureId;\n pagingCommandService;\n paging;\n sourceSize = 0;\n currentPage;\n pages;\n numberOfVisiblePages = 3;\n constructor(elRef, structureId, pagingCommandService) {\n super(elRef);\n this.structureId = structureId;\n this.pagingCommandService = pagingCommandService;\n }\n ngOnChanges(changes) {\n this.calculate();\n }\n calculate() {\n if (this.paging && this.sourceSize) {\n const numberOfPages = Math.ceil(this.sourceSize / this.paging.getPageSize());\n this.currentPage = this.paging.getPage();\n this.pages = [];\n if (this.pages.length <= numberOfPages) {\n for (let i = 1; i <= numberOfPages; i++) {\n this.pages.push(i);\n }\n }\n }\n }\n isSourceNotEmpty() {\n return this.sourceSize > 0;\n }\n goToPage(pageNumber) {\n const currentPage = this.paging.getPage();\n this.pagingCommandService.goToPage(pageNumber, currentPage, this.structureId);\n }\n calculateVisiblePages(page) {\n return this.paging.calculateVisiblePages(this.currentPage, this.numberOfVisiblePages, page);\n }\n activePage(page) {\n return this.currentPage === page;\n }\n getSelectorName() {\n return 'gui-paging-alternative-pages';\n }\n static ɵfac = function AlternativePagingPagesComponent_Factory(t) {\n return new (t || AlternativePagingPagesComponent)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(StructureId), i0.ɵɵdirectiveInject(PagingPublisher));\n };\n static ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: AlternativePagingPagesComponent,\n selectors: [[\"div\", \"gui-paging-alternative-pages\", \"\", \"paging\", \"\"]],\n inputs: {\n paging: \"paging\",\n sourceSize: \"sourceSize\"\n },\n features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature],\n attrs: _c6,\n decls: 3,\n vars: 2,\n consts: [[\"noSource\", \"\"], [4, \"ngIf\", \"ngIfElse\"], [4, \"ngFor\", \"ngForOf\"], [1, \"relative\"], [1, \"gui-paging-page\", \"gui-select-none\", \"gui-cursor-pointer\", \"gui-py-0\", \"gui-px-6\", \"gui-font-base\", 3, \"click\"], [1, \"gui-paging-source-stats\", \"gui-paging-no-items\"]],\n template: function AlternativePagingPagesComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, AlternativePagingPagesComponent_ng_container_0_Template, 2, 1, \"ng-container\", 1)(1, AlternativePagingPagesComponent_ng_template_1_Template, 3, 3, \"ng-template\", null, 0, i0.ɵɵtemplateRefExtractor);\n }\n if (rf & 2) {\n const noSource_r4 = i0.ɵɵreference(2);\n i0.ɵɵproperty(\"ngIf\", ctx.isSourceNotEmpty())(\"ngIfElse\", noSource_r4);\n }\n },\n dependencies: [i4.NgForOf, i4.NgIf, TranslationPipe],\n encapsulation: 2,\n changeDetection: 0\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(AlternativePagingPagesComponent, [{\n type: Component,\n args: [{\n selector: 'div[gui-paging-alternative-pages][paging]',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n template: \"\\n\\n\\t
\\n\\t\\t
\\n\\t\\t\\t
\\n\\t\\t\\t\\t{{page}}\\n\\t\\t\\t
\\n\\t\\t
\\n\\t
\\n\\n
\\n\\n\\n\\t\\n\\t\\t{{'pagingNoItems' | guiTranslate}}\\n\\t\\n\\n\"\n }]\n }], () => [{\n type: i0.ElementRef\n }, {\n type: StructureId\n }, {\n type: PagingPublisher\n }], {\n paging: [{\n type: Input\n }],\n sourceSize: [{\n type: Input\n }]\n });\n})();\nclass PagingComponent extends GuiComponent {\n elRef;\n cssClassModifier;\n structureId;\n pagingWarehouse;\n pagingCommandInvoker;\n sourceWarehouse;\n pagingDisplayModeArchive;\n position;\n minimal;\n state = inject(GuiState);\n state$ = this.state.select();\n constructor(elRef, cssClassModifier, structureId, pagingWarehouse, pagingCommandInvoker, sourceWarehouse, pagingDisplayModeArchive) {\n super(elRef);\n this.elRef = elRef;\n this.cssClassModifier = cssClassModifier;\n this.structureId = structureId;\n this.pagingWarehouse = pagingWarehouse;\n this.pagingCommandInvoker = pagingCommandInvoker;\n this.sourceWarehouse = sourceWarehouse;\n this.pagingDisplayModeArchive = pagingDisplayModeArchive;\n this.addClassToHost('gui-flex');\n this.addClassToHost('gui-justify-end');\n this.addClassToHost('gui-items-center');\n this.addClassToHost('gui-p-4');\n this.state.setValue({\n alternativeDisplay: false,\n isPagingVisible: false\n });\n this.state.connect('sourceSize', this.sourceWarehouse.onOriginSize(this.structureId));\n this.state.connect('alternativeDisplay', this.selectIsAdvancedPagingEnabled());\n this.state.connect('paging', this.pagingWarehouse.onPaging(this.structureId));\n this.state.connect('isPagingVisible', this.selectIsPagingVisible());\n }\n ngOnChanges(changes) {\n if (changes.position) {\n if (this.position === PagingPosition.BOTTOM) {\n this.cssClassModifier.remove(this.elRef.nativeElement, CssClass.PAGING_TOP_CLASS_NAME);\n this.cssClassModifier.add(this.elRef.nativeElement, CssClass.PAGING_BOTTOM_CLASS_NAME);\n } else {\n this.cssClassModifier.remove(this.elRef.nativeElement, CssClass.PAGING_BOTTOM_CLASS_NAME);\n this.cssClassModifier.add(this.elRef.nativeElement, CssClass.PAGING_TOP_CLASS_NAME);\n }\n }\n }\n changePageSize(pageSize) {\n this.pagingCommandInvoker.changePageSize(pageSize, this.structureId);\n }\n nextPage(sourceSize) {\n if (!sourceSize) {\n return;\n }\n this.pagingCommandInvoker.nextPage(this.structureId);\n }\n prevPage() {\n this.pagingCommandInvoker.prevPage(this.structureId);\n }\n getSelectorName() {\n return 'gui-paging';\n }\n selectIsPagingVisible() {\n return this.pagingWarehouse.onPaging(this.structureId).pipe(hermesMap(paging => {\n return this.mapIsPagingVisible(paging);\n }));\n }\n mapIsPagingVisible(paging) {\n return paging && paging.isEnabled() && (this.position === PagingPosition.TOP && paging.isPagerTop() || this.position === PagingPosition.BOTTOM && paging.isPagerBottom());\n }\n selectIsAdvancedPagingEnabled() {\n return this.pagingDisplayModeArchive.on().pipe(hermesMap(mode => {\n return mode === PagingDisplayMode.ADVANCED;\n }));\n }\n static ɵfac = function PagingComponent_Factory(t) {\n return new (t || PagingComponent)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(CssClassModifier), i0.ɵɵdirectiveInject(StructureId), i0.ɵɵdirectiveInject(PagingWarehouse), i0.ɵɵdirectiveInject(PagingPublisher), i0.ɵɵdirectiveInject(SourceWarehouse), i0.ɵɵdirectiveInject(PagingDisplayModeArchive));\n };\n static ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: PagingComponent,\n selectors: [[\"div\", \"gui-paging\", \"\", \"position\", \"\"]],\n inputs: {\n position: \"position\",\n minimal: \"minimal\"\n },\n features: [i0.ɵɵProvidersFeature([GuiState]), i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature],\n attrs: _c7,\n decls: 1,\n vars: 1,\n consts: [[\"minimalTemplate\", \"\"], [4, \"guiLet\"], [4, \"ngIf\"], [4, \"ngIf\", \"ngIfElse\"], [\"gui-paging-select\", \"\", 3, \"pageSizeChanged\", \"paging\"], [\"gui-paging-stats\", \"\", 3, \"paging\"], [\"gui-paging-navigator\", \"\", 3, \"nextPageChanged\", \"prevPageChanged\", \"paging\", \"sourceSize\"], [\"gui-paging-alternative-navigator\", \"\", 1, \"gui-flex\", \"gui-p-0\", 3, \"nextPageChanged\", \"prevPageChanged\", \"paging\", \"sourceSize\"], [\"gui-paging-alternative-pages\", \"\", 1, \"gui-flex\", \"gui-justify-center\", 3, \"paging\", \"sourceSize\"]],\n template: function PagingComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, PagingComponent_ng_container_0_Template, 3, 2, \"ng-container\", 1);\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"guiLet\", ctx.state$);\n }\n },\n dependencies: [i4.NgIf, GuiLetDirective, PagingNavigatorComponent, PagingSelectComponent, PagingStatsComponent, AlternativePagingNavigatorComponent, AlternativePagingPagesComponent],\n styles: [\".gui-paging-alternative-navigator .gui-button{-ms-flex-line-pack:center;align-content:center;background:transparent;display:-ms-flexbox;display:flex;font-size:14px;line-height:21px;margin:0 2px;padding:0}.gui-paging-alternative-navigator .gui-button svg{-ms-flex-item-align:center;align-self:center;height:12px;margin:-1px 2px 0;width:auto}.gui-paging-alternative-navigator .gui-button svg path{stroke:#ccc;transition:stroke .3s ease-in-out}.gui-paging-alternative-navigator .gui-button:hover{background:transparent}.gui-paging-alternative-navigator .gui-button:hover svg path{stroke:#333}.gui-paging-alternative-navigator .gui-button:disabled svg{opacity:.4}.gui-paging-alternative-navigator .gui-material .gui-button{padding:2px 16px}.gui-paging-alternative-pages{line-height:21px}.gui-paging-alternative-pages .gui-paging-page{display:none}.gui-paging-alternative-pages .gui-paging-visible-page .gui-paging-page{display:block;font-family:Arial,serif}.gui-paging-alternative-pages .gui-paging-visible-page.gui-paging-active-page{color:#333}.gui-paging-alternative-pages .gui-paging-visible-page.gui-paging-active-page .gui-paging-page{font-weight:700}.gui-paging-bottom{border-top:1px solid;border-top-color:inherit}.gui-paging-top{border-bottom:1px solid;border-bottom-color:inherit}\\n\", \".gui-generic .gui-paging,.gui-generic .gui-paging *{border-color:#2224261a;font-size:14px}\\n\"],\n encapsulation: 2,\n changeDetection: 0\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(PagingComponent, [{\n type: Component,\n args: [{\n selector: 'div[gui-paging][position]',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [GuiState],\n template: \"\\n\\n\\t\\n\\n\\t\\t\\n\\n\\t\\t\\t
\\n\\t\\t\\t
\\n\\n\\t\\t\\t
\\n\\t\\t\\t
\\n\\n\\t\\t\\t
\\n\\t\\t\\t
\\n\\n\\t\\t
\\n\\n\\t\\t\\n\\n\\t\\t\\t
\\n\\t\\t\\t
\\n\\n\\t\\t\\t
\\n\\t\\t\\t
\\n\\n\\t\\t
\\n\\n\\t
\\n\\n\\t\\n\\n\\t\\t
\\n\\t\\t
\\n\\n\\t\\t
\\n\\n\\t\\t\\t
\\n\\t\\t\\t
\\n\\n\\t\\t
\\n\\n\\t
\\n
\\n\",\n styles: [\".gui-paging-alternative-navigator .gui-button{-ms-flex-line-pack:center;align-content:center;background:transparent;display:-ms-flexbox;display:flex;font-size:14px;line-height:21px;margin:0 2px;padding:0}.gui-paging-alternative-navigator .gui-button svg{-ms-flex-item-align:center;align-self:center;height:12px;margin:-1px 2px 0;width:auto}.gui-paging-alternative-navigator .gui-button svg path{stroke:#ccc;transition:stroke .3s ease-in-out}.gui-paging-alternative-navigator .gui-button:hover{background:transparent}.gui-paging-alternative-navigator .gui-button:hover svg path{stroke:#333}.gui-paging-alternative-navigator .gui-button:disabled svg{opacity:.4}.gui-paging-alternative-navigator .gui-material .gui-button{padding:2px 16px}.gui-paging-alternative-pages{line-height:21px}.gui-paging-alternative-pages .gui-paging-page{display:none}.gui-paging-alternative-pages .gui-paging-visible-page .gui-paging-page{display:block;font-family:Arial,serif}.gui-paging-alternative-pages .gui-paging-visible-page.gui-paging-active-page{color:#333}.gui-paging-alternative-pages .gui-paging-visible-page.gui-paging-active-page .gui-paging-page{font-weight:700}.gui-paging-bottom{border-top:1px solid;border-top-color:inherit}.gui-paging-top{border-bottom:1px solid;border-bottom-color:inherit}\\n\", \".gui-generic .gui-paging,.gui-generic .gui-paging *{border-color:#2224261a;font-size:14px}\\n\"]\n }]\n }], () => [{\n type: i0.ElementRef\n }, {\n type: CssClassModifier\n }, {\n type: StructureId\n }, {\n type: PagingWarehouse\n }, {\n type: PagingPublisher\n }, {\n type: SourceWarehouse\n }, {\n type: PagingDisplayModeArchive\n }], {\n position: [{\n type: Input\n }],\n minimal: [{\n type: Input\n }]\n });\n})();\nclass Logger {}\nclass PageChangedEvent extends StructureDomainEvent {\n constructor(aggregateId) {\n super(aggregateId, null, 'PageChangedEvent');\n }\n}\nclass StructureAggregateEvent extends AggregateEvent {}\nclass PageChangedAggregateEvent extends StructureAggregateEvent {\n constructor(structureId) {\n super(structureId, 'PageChangedAggregateEvent');\n }\n toDomainEvent() {\n return new PageChangedEvent(this.getAggregateId());\n }\n}\nclass PagesizeChangedEvent extends StructureDomainEvent {\n constructor(aggregateId) {\n super(aggregateId, null, 'PagesizeChangedEvent');\n }\n}\nclass PagesizeChangedAggregateEvent extends StructureAggregateEvent {\n constructor(structureId) {\n super(structureId, 'PagesizeChangedAggregateEvent');\n }\n toDomainEvent() {\n return new PagesizeChangedEvent(this.getAggregateId());\n }\n}\nclass PagingManager {\n enabled;\n page;\n pageSize;\n pageSizes;\n pagerTop;\n pagerBottom;\n sourceSize;\n // TODO\n events = [];\n logger;\n constructor(enabled, page, pageSize, pageSizes, pagerTop, pagerBottom, sourceSize, logger) {\n this.enabled = enabled;\n this.page = page;\n this.pageSize = pageSize;\n this.pageSizes = pageSizes;\n this.pagerTop = pagerTop;\n this.pagerBottom = pagerBottom;\n this.sourceSize = sourceSize;\n this.logger = logger;\n }\n // TODO Remove\n static default(logger) {\n return new PagingManager(false, 1, 25, [10, 25, 50, 100], false, true, 0, logger);\n }\n // TODO Remove\n static fromConfig(paging, logger) {\n const defaultPagingDefinition = PagingManager.default(logger),\n enabled = paging.enabled || defaultPagingDefinition.isEnabled(),\n page = paging.page || defaultPagingDefinition.getPage(),\n pageSize = paging.pageSize || defaultPagingDefinition.getPageSize(),\n pageSizes = paging.pageSizes || defaultPagingDefinition.getPageSizes(),\n pagerTop = paging.pagerTop || defaultPagingDefinition.isPagerTop(),\n pagerBottom = paging.pagerBottom || defaultPagingDefinition.isPagerBottom();\n return new PagingManager(enabled, page, pageSize, pageSizes, pagerTop, pagerBottom, 0, logger);\n }\n isEnabled() {\n return this.enabled;\n }\n isDisabled() {\n return !this.enabled;\n }\n getPage() {\n return this.page;\n }\n getPageSize() {\n return this.pageSize;\n }\n getPageSizes() {\n return this.pageSizes;\n }\n isPagerTop() {\n if (this.isDisabled()) {\n return false;\n }\n return this.pagerTop;\n }\n isPagerBottom() {\n if (this.isDisabled()) {\n return false;\n }\n return this.pagerBottom;\n }\n getSourceSize() {\n return this.sourceSize;\n }\n change(pagingConfig) {\n if (pagingConfig.enabled !== undefined) {\n this.enabled = pagingConfig.enabled;\n }\n if (pagingConfig.page !== undefined) {\n this.page = pagingConfig.page;\n if (pagingConfig.enabled === undefined) {\n this.enabled = true;\n }\n }\n if (pagingConfig.pageSize !== undefined) {\n this.pageSize = pagingConfig.pageSize;\n if (pagingConfig.enabled === undefined) {\n this.enabled = true;\n }\n }\n if (pagingConfig.pageSizes !== undefined) {\n this.pageSizes = pagingConfig.pageSizes;\n if (pagingConfig.enabled === undefined) {\n this.enabled = true;\n }\n }\n if (pagingConfig.pagerTop !== undefined) {\n this.pagerTop = pagingConfig.pagerTop;\n if (pagingConfig.enabled === undefined) {\n this.enabled = true;\n }\n }\n if (pagingConfig.pagerBottom !== undefined) {\n this.pagerBottom = pagingConfig.pagerBottom;\n if (pagingConfig.enabled === undefined) {\n this.enabled = true;\n }\n }\n if (this.enabled === true && pagingConfig.pagerTop === false && pagingConfig.pagerBottom === false) {\n this.pagerBottom = true;\n this.logger.warn('Pagers cannot be turn off when paging is enabled.');\n }\n }\n setSourceSize(size) {\n this.sourceSize = size;\n }\n nextPage() {\n let nextPage = this.page;\n if (!this.isNextPageDisabled()) {\n nextPage += 1;\n }\n this.page = nextPage;\n }\n prevPage() {\n let prevPage = this.page;\n if (!this.isPrevPageDisabled()) {\n prevPage -= 1;\n }\n this.page = prevPage;\n }\n changePageSize(pageSize) {\n if (this.pageSizes.find(ps => ps === pageSize)) {\n this.setPage(1);\n this.setPageSize(pageSize);\n }\n return this.events;\n }\n isNextPageDisabled() {\n if (this.sourceSize === 0) {\n return true;\n }\n return this.page === Math.ceil(this.sourceSize / this.pageSize);\n }\n isPrevPageDisabled() {\n return this.page === 1;\n }\n calculateStart() {\n const firstItem = 1 + (this.page - 1) * this.pageSize;\n if (this.sourceSize < firstItem) {\n return 0;\n }\n return firstItem;\n }\n calculateEnd() {\n const lastItem = this.page * this.pageSize;\n if (this.sourceSize < lastItem) {\n return this.sourceSize;\n }\n return lastItem;\n }\n sample(source) {\n if (this.isDisabled()) {\n return source;\n }\n let start = this.calculateStart();\n if (start !== 0) {\n start -= 1;\n }\n return source.slice(start, this.calculateEnd());\n }\n clearEvents() {\n this.events.length = 0;\n }\n setPage(page) {\n this.page = page;\n this.events.push(new PageChangedAggregateEvent(new StructureId('TODO need to be changed')));\n }\n setPageSize(pageSize) {\n this.pageSize = pageSize;\n this.events.push(new PagesizeChangedAggregateEvent(new StructureId('TODO need to be changed')));\n }\n}\nclass PagingManagerFactory {\n logger;\n constructor(logger) {\n this.logger = logger;\n }\n static services = [Logger];\n createDefault() {\n return PagingManager.default(this.logger);\n }\n createFromConfig(config) {\n return PagingManager.fromConfig(config, this.logger);\n }\n}\nclass SetPagingCommand extends StructureCommand {\n config;\n constructor(structureId, config) {\n super(structureId, 'SetPagingCommand');\n this.config = config;\n }\n getPagingConfig() {\n return this.config;\n }\n}\nclass ChangePagesizeCommand extends StructureCommand {\n pageSize;\n constructor(structureId, pageSize) {\n super(structureId, 'ChangePagesizeCommand');\n this.pageSize = pageSize;\n }\n getPageSize() {\n return this.pageSize;\n }\n}\nclass NextPageCommand extends StructureCommand {\n constructor(structureId) {\n super(structureId, 'NextPageCommand');\n }\n}\nclass PrevPageCommand extends StructureCommand {\n constructor(structureId) {\n super(structureId, 'PrevPageCommand');\n }\n}\nclass PagingDispatcher {\n commandDispatcher;\n constructor(commandDispatcher) {\n this.commandDispatcher = commandDispatcher;\n }\n static services = [CommandDispatcher];\n setPaging(paging, structureId) {\n this.commandDispatcher.dispatch(new SetPagingCommand(structureId, paging));\n }\n changePageSize(pageSize, structureId) {\n this.commandDispatcher.dispatch(new ChangePagesizeCommand(structureId, pageSize));\n }\n nextPage(structureId) {\n this.commandDispatcher.dispatch(new NextPageCommand(structureId));\n }\n prevPage(structureId) {\n this.commandDispatcher.dispatch(new PrevPageCommand(structureId));\n }\n}\nclass PagingSetEvent extends StructureDomainEvent {\n constructor(aggregateId) {\n super(aggregateId, null, 'PagingSetEvent');\n }\n}\nclass SetPagingCommandHandler {\n domainEventPublisher = CoreContainer.resolve(DomainEventPublisher);\n forCommand() {\n return SetPagingCommand;\n }\n handle(structureAggregate, command) {\n const pagingConfig = command.getPagingConfig();\n structureAggregate.changePaging(pagingConfig);\n }\n publish(aggregate, command) {\n this.domainEventPublisher.publish(new PagingSetEvent(command.getAggregateId()));\n }\n}\nclass NextPageEvent extends StructureDomainEvent {\n constructor(aggregateId) {\n super(aggregateId, null, 'NextPageEvent');\n }\n}\nclass NextPageCommandHandler {\n domainEventPublisher = CoreContainer.resolve(DomainEventPublisher);\n forCommand() {\n return NextPageCommand;\n }\n handle(aggregate, command) {\n // missing implementation\n aggregate.nextPage();\n }\n publish(aggregate, command) {\n this.domainEventPublisher.publish(new NextPageEvent(command.getAggregateId()));\n }\n}\nclass PrevPageEvent extends StructureDomainEvent {\n constructor(aggregateId) {\n super(aggregateId, null, 'PrevPageEvent');\n }\n}\nclass PrevPageCommandHandler {\n domainEventPublisher = CoreContainer.resolve(DomainEventPublisher);\n forCommand() {\n return PrevPageCommand;\n }\n handle(structure, command) {\n structure.prevPage();\n }\n publish(aggregate, command) {\n this.domainEventPublisher.publish(new PrevPageEvent(command.getAggregateId()));\n }\n}\nclass ChangePagesizeCommandHandler {\n domainEventPublisher = CoreContainer.resolve(DomainEventPublisher);\n forCommand() {\n return ChangePagesizeCommand;\n }\n handle(structureAggregate, command) {\n const pageSize = command.getPageSize();\n structureAggregate.changePageSize(pageSize);\n }\n publish(aggregate, command) {\n const aggregateEvents = aggregate.getEvents();\n aggregateEvents.forEach(event => {\n event.aggregateId = aggregate.getId();\n });\n this.publishAggregateEvents(aggregateEvents, command);\n aggregate.clearEvents();\n }\n publishAggregateEvents(events, command) {\n for (const event of events) {\n this.publishAggregateEvent(event, command);\n }\n }\n publishAggregateEvent(event, command) {\n switch (event.getType()) {\n case 'PageChangedAggregateEvent':\n const pageChangedEvent = new PageChangedEvent(command.getAggregateId());\n this.domainEventPublisher.publish(pageChangedEvent);\n break;\n case 'PagesizeChangedAggregateEvent':\n const pagesizeChangedEvent = new PagesizeChangedEvent(command.getAggregateId());\n this.domainEventPublisher.publish(pagesizeChangedEvent);\n break;\n case 'StructurePreparedEntitiesSetAggregateEvent':\n this.domainEventPublisher.publish(event.toDomainEvent());\n break;\n default:\n break;\n }\n }\n}\nconst structureKey = 'StructureAggregate';\nclass PagingDomainModule {\n defineAggregate() {\n return null;\n }\n registerKey() {\n return structureKey;\n }\n registerProviders(container) {\n container.provide(PagingDispatcher);\n container.provide(PagingManagerFactory);\n }\n registerCommandHandlers() {\n return [SetPagingCommandHandler, NextPageCommandHandler, PrevPageCommandHandler, ChangePagesizeCommandHandler];\n }\n registerDomainEventHandler() {\n return [];\n }\n registerMultiDomainEventHandler() {\n return [];\n }\n}\nlet PagingModel = class PagingModel {\n enabled;\n page;\n pageSize;\n pageSizes;\n pagerTop;\n pagerBottom;\n isNextDisabled;\n isPrevDisabled;\n start;\n end;\n sourceSize;\n constructor(enabled, page, pageSize, pageSizes, pagerTop, pagerBottom, isNextDisabled, isPrevDisabled, start, end, sourceSize) {\n this.enabled = enabled;\n this.page = page;\n this.pageSize = pageSize;\n this.pageSizes = pageSizes;\n this.pagerTop = pagerTop;\n this.pagerBottom = pagerBottom;\n this.isNextDisabled = isNextDisabled;\n this.isPrevDisabled = isPrevDisabled;\n this.start = start;\n this.end = end;\n this.sourceSize = sourceSize;\n }\n isEnabled() {\n return this.enabled;\n }\n getPage() {\n return this.page;\n }\n getPageSize() {\n return this.pageSize;\n }\n getPageSizes() {\n return this.pageSizes;\n }\n isPagerTop() {\n return this.pagerTop;\n }\n isPagerBottom() {\n return this.pagerBottom;\n }\n isNextPageDisabled() {\n return this.isNextDisabled;\n }\n isPrevPageDisabled() {\n return this.isPrevDisabled;\n }\n getStart() {\n return this.start;\n }\n getEnd() {\n return this.end;\n }\n getSourceSize() {\n return this.sourceSize;\n }\n calculateVisiblePages(currentPage, numberOfVisiblePages, page) {\n return currentPage - numberOfVisiblePages < page && page < currentPage + numberOfVisiblePages;\n }\n sample(source) {\n let start = this.getStart();\n if (start !== 0) {\n start -= 1;\n }\n return source.slice(start, this.getEnd());\n }\n // TODO\n compare(target) {\n return JSON.stringify(this) === JSON.stringify(target);\n }\n};\nPagingModel = __decorate([ReadModelObject], PagingModel);\nclass PagingConverter {\n convert(aggregate) {\n return new PagingModel(aggregate.isEnabled(), aggregate.getPage(), aggregate.getPageSize(), aggregate.getPageSizes(), aggregate.isPagerTop(), aggregate.isPagerBottom(), aggregate.isNextPageDisabled(), aggregate.isPrevPageDisabled(), aggregate.calculateStart(), aggregate.calculateEnd(), aggregate.getSourceSize());\n }\n}\nclass StructureReadModelRepository extends Reactive {\n domainEventBus = CoreContainer.resolve(DomainEventBus);\n constructor() {\n super();\n this.domainEventBus.ofEvents(this.forEvents()).pipe(this.hermesTakeUntil()).subscribe(event => {\n try {\n this.subs(event);\n } catch (e) {\n // eslint-disable-next-line no-console\n console.error(e);\n }\n });\n }\n}\nclass PagingRepository {\n structureRepository;\n constructor(structureRepository) {\n this.structureRepository = structureRepository;\n }\n static services = [StructureReadModelRepository];\n on(structureId) {\n return this.structureRepository.on(structureId).pipe(hermesFilter(structure => structure.getId().toString() === structureId.toString()), hermesMap(structure => structure.getPaging()));\n }\n}\nclass PagingDomainWarehouse extends PagingWarehouse {\n pagingRepository;\n constructor(pagingRepository) {\n super();\n this.pagingRepository = pagingRepository;\n }\n static services = [PagingRepository];\n onPaging(structureId) {\n return this.pagingRepository.on(structureId);\n }\n oncePaging(structureId) {\n return singleFromObservable(this.pagingRepository.on(structureId));\n }\n}\nclass PagingDomainPublisher extends PagingPublisher {\n pagingDispatcher;\n constructor(pagingDispatcher) {\n super();\n this.pagingDispatcher = pagingDispatcher;\n }\n static services = [PagingDispatcher];\n enable(structureId) {\n this.pagingDispatcher.setPaging({\n enabled: true\n }, structureId);\n }\n disable(structureId) {\n this.pagingDispatcher.setPaging({\n enabled: false\n }, structureId);\n }\n setPaging(paging, structureId) {\n this.pagingDispatcher.setPaging(paging, structureId);\n }\n changePageSize(pageSize, structureId) {\n this.pagingDispatcher.changePageSize(pageSize, structureId);\n }\n nextPage(structureId) {\n this.pagingDispatcher.nextPage(structureId);\n }\n prevPage(structureId) {\n this.pagingDispatcher.prevPage(structureId);\n }\n goToPage(pageNumber, currentPage, structureId) {\n if (currentPage < pageNumber) {\n while (currentPage !== pageNumber) {\n this.nextPage(structureId);\n currentPage += 1;\n }\n } else {\n while (currentPage !== pageNumber) {\n this.prevPage(structureId);\n currentPage -= 1;\n }\n }\n }\n changePagerTop(enabled, structureId) {\n this.pagingDispatcher.setPaging({\n pagerTop: enabled\n }, structureId);\n }\n changePagerBottom(enabled, structureId) {\n this.pagingDispatcher.setPaging({\n pagerBottom: enabled\n }, structureId);\n }\n}\nclass PagingDomainEventRepository extends PagingEventRepository {\n pagingWarehouse;\n eventBusToRemove = CoreContainer.resolve(DomainEventBus);\n constructor(pagingWarehouse) {\n super();\n this.pagingWarehouse = pagingWarehouse;\n }\n static services = [PagingWarehouse];\n onPageChange(structureId) {\n return this.eventBusToRemove.ofEvents([PrevPageEvent, NextPageEvent, PageChangedEvent]).pipe(hermesFilter(event => event.getAggregateId().toString() === structureId.toAggregateId().toString()), hermesSwitchMap(event => {\n return this.pagingWarehouse.oncePaging(structureId.toAggregateId()).pipe(hermesMap(paging => paging.getPage()));\n }));\n }\n onPageSizeChange(structureId) {\n return this.eventBusToRemove.ofEvents([PagesizeChangedEvent]).pipe(hermesFilter(event => event.getAggregateId().toString() === structureId.toAggregateId().toString()), hermesSwitchMap(event => {\n return this.pagingWarehouse.oncePaging(structureId.toAggregateId()).pipe(hermesMap(paging => paging.getPageSize()));\n }));\n }\n}\nclass PagingApiModule {\n registerProviders(container) {\n container.provide(PagingPublisher, PagingDomainPublisher);\n container.provide(PagingWarehouse, PagingDomainWarehouse);\n container.provide(PagingEventRepository, PagingDomainEventRepository);\n container.provide(PagingRepository);\n container.provide(PagingConverter);\n }\n}\nfunction initializePaging() {\n new DomainInitializer(new PagingApiModule(), new PagingDomainModule()).init();\n}\nclass Dictionary {\n translation = new Map();\n resolver = (key, value) => value;\n changeTranslation(change) {\n for (const key of Object.keys(change)) {\n this.translation.set(key, change[key]);\n }\n }\n getTranslation() {\n return Array.from(this.translation).reduce((obj, [key, value]) => Object.assign(obj, {\n [key]: this.resolver(key, value)\n }), {});\n }\n setResolver(resolver) {\n this.resolver = resolver;\n }\n}\nclass TranslationDomainFacade extends TranslationFacade {\n defaultTranslation = enTranslation;\n dictionary = new Dictionary();\n dictionary$ = new HermesReplaySubject(1);\n constructor() {\n super();\n }\n getTranslation() {\n return this.dictionary.getTranslation();\n }\n onTranslation() {\n return this.dictionary$.toObservable();\n }\n setDefaultTranslation() {\n this.changeTranslationAndPropagate(this.defaultTranslation);\n }\n changeTranslation(change) {\n this.changeTranslationAndPropagate(change);\n }\n setResolver(resolver) {\n this.setResolverAndPropagate(resolver);\n }\n changeTranslationAndPropagate(change) {\n this.dictionary.changeTranslation(change);\n this.dictionary$.next(this.dictionary.getTranslation());\n }\n setResolverAndPropagate(resolver) {\n this.dictionary.setResolver(resolver);\n this.dictionary$.next(this.dictionary.getTranslation());\n }\n}\nclass TranslationFeatureModule extends FeatureModule {\n static forComponent() {\n return [{\n provide: TranslationFacade,\n useClass: TranslationDomainFacade\n }];\n }\n static ɵfac = /* @__PURE__ */(() => {\n let ɵTranslationFeatureModule_BaseFactory;\n return function TranslationFeatureModule_Factory(t) {\n return (ɵTranslationFeatureModule_BaseFactory || (ɵTranslationFeatureModule_BaseFactory = i0.ɵɵgetInheritedFactory(TranslationFeatureModule)))(t || TranslationFeatureModule);\n };\n })();\n static ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: TranslationFeatureModule\n });\n static ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [CommonModule]\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(TranslationFeatureModule, [{\n type: NgModule,\n args: [{\n imports: [CommonModule],\n declarations: [TranslationPipe],\n exports: [TranslationPipe]\n }]\n }], null, null);\n})();\nclass GuiPushSubscriber {\n cd;\n value;\n actualObs$;\n baseValues$ = new HermesSubject();\n destroy$ = new HermesReplaySubject(1);\n constructor(cd) {\n this.cd = cd;\n this.baseValues$.pipe(hermesFilter(obs$ => obs$ !== this.actualObs$), hermesSwitchMap(value$ => {\n this.actualObs$ = value$;\n return value$;\n }), hermesDistinctUntilChanged(), hermesTakeUntil(this.destroy$)).subscribe(v => {\n this.value = v;\n this.scheduleCD();\n });\n }\n destroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n subscribe(value) {\n this.baseValues$.next(value);\n return this.value;\n }\n scheduleCD() {\n setTimeout(() => {\n this.cd.detectChanges();\n });\n }\n}\nclass GuiPushPipe {\n cd = inject(ChangeDetectorRef);\n subscriber = new GuiPushSubscriber(this.cd);\n transform(value) {\n return this.subscriber.subscribe(value);\n }\n ngOnDestroy() {\n this.subscriber.destroy();\n }\n static ɵfac = function GuiPushPipe_Factory(t) {\n return new (t || GuiPushPipe)();\n };\n static ɵpipe = /* @__PURE__ */i0.ɵɵdefinePipe({\n name: \"guiPush\",\n type: GuiPushPipe,\n pure: false\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(GuiPushPipe, [{\n type: Pipe,\n args: [{\n name: 'guiPush',\n pure: false\n }]\n }], null, null);\n})();\nclass GuiIfDirective {\n subscriber;\n vcr;\n template;\n guiIf;\n constructor(subscriber, vcr, template) {\n this.subscriber = subscriber;\n this.vcr = vcr;\n this.template = template;\n }\n ngOnChanges(changes) {\n if (changes['guiIf'] !== undefined) {\n this.subscriber.subscribe(this.guiIf, v => {\n if (v) {\n this.vcr.createEmbeddedView(this.template);\n } else {\n this.vcr.clear();\n }\n });\n }\n }\n ngOnDestroy() {\n this.subscriber.destroy();\n }\n static ɵfac = function GuiIfDirective_Factory(t) {\n return new (t || GuiIfDirective)(i0.ɵɵdirectiveInject(GuiSubscriber), i0.ɵɵdirectiveInject(i0.ViewContainerRef), i0.ɵɵdirectiveInject(i0.TemplateRef));\n };\n static ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: GuiIfDirective,\n selectors: [[\"\", \"guiIf\", \"\"]],\n inputs: {\n guiIf: \"guiIf\"\n },\n features: [i0.ɵɵProvidersFeature([GuiSubscriber]), i0.ɵɵNgOnChangesFeature]\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(GuiIfDirective, [{\n type: Directive,\n args: [{\n selector: '[guiIf]',\n providers: [GuiSubscriber]\n }]\n }], () => [{\n type: GuiSubscriber\n }, {\n type: i0.ViewContainerRef\n }, {\n type: i0.TemplateRef\n }], {\n guiIf: [{\n type: Input\n }]\n });\n})();\nclass GuiForDirective {\n subscriber;\n vcr;\n template;\n guiForOf;\n constructor(subscriber, vcr, template) {\n this.subscriber = subscriber;\n this.vcr = vcr;\n this.template = template;\n }\n ngOnChanges(changes) {\n if (changes['guiForOf'] !== undefined) {\n this.guiForOf.subscribe(values => {\n this.vcr.clear();\n for (const value of values) {\n this.vcr.createEmbeddedView(this.template, {\n $implicit: value\n });\n }\n });\n this.subscriber.subscribe(this.guiForOf, values => {\n this.vcr.clear();\n for (const value of values) {\n this.vcr.createEmbeddedView(this.template, {\n $implicit: value\n });\n }\n });\n }\n }\n ngOnDestroy() {\n this.subscriber.destroy();\n }\n static ɵfac = function GuiForDirective_Factory(t) {\n return new (t || GuiForDirective)(i0.ɵɵdirectiveInject(GuiSubscriber), i0.ɵɵdirectiveInject(i0.ViewContainerRef), i0.ɵɵdirectiveInject(i0.TemplateRef));\n };\n static ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: GuiForDirective,\n selectors: [[\"\", \"guiFor\", \"\"]],\n inputs: {\n guiForOf: \"guiForOf\"\n },\n features: [i0.ɵɵProvidersFeature([GuiSubscriber]), i0.ɵɵNgOnChangesFeature]\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(GuiForDirective, [{\n type: Directive,\n args: [{\n selector: '[guiFor]',\n providers: [GuiSubscriber]\n }]\n }], () => [{\n type: GuiSubscriber\n }, {\n type: i0.ViewContainerRef\n }, {\n type: i0.TemplateRef\n }], {\n guiForOf: [{\n type: Input\n }]\n });\n})();\nclass GuiStyleDirective {\n subscriber;\n elementRef;\n static STYLE = 'style';\n guiStyle;\n constructor(subscriber, elementRef) {\n this.subscriber = subscriber;\n this.elementRef = elementRef;\n }\n ngOnChanges(changes) {\n if (changes['guiStyle'] !== undefined) {\n this.subscriber.subscribe(this.guiStyle, styles => {\n Object.keys(styles).forEach(key => {\n this.setStyleByName(key, styles[key]);\n });\n });\n }\n }\n ngOnDestroy() {\n this.subscriber.destroy();\n }\n setStyleByName(name, value) {\n this.set(name, value);\n }\n set(name, value) {\n this.elementRef.nativeElement[GuiStyleDirective.STYLE][name] = value;\n }\n static ɵfac = function GuiStyleDirective_Factory(t) {\n return new (t || GuiStyleDirective)(i0.ɵɵdirectiveInject(GuiSubscriber), i0.ɵɵdirectiveInject(i0.ElementRef));\n };\n static ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: GuiStyleDirective,\n selectors: [[\"\", \"guiStyle\", \"\"]],\n inputs: {\n guiStyle: \"guiStyle\"\n },\n features: [i0.ɵɵProvidersFeature([GuiSubscriber]), i0.ɵɵNgOnChangesFeature]\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(GuiStyleDirective, [{\n type: Directive,\n args: [{\n selector: '[guiStyle]',\n providers: [GuiSubscriber]\n }]\n }], () => [{\n type: GuiSubscriber\n }, {\n type: i0.ElementRef\n }], {\n guiStyle: [{\n type: Input\n }]\n });\n})();\nclass GuiClassManager {\n nativeElement;\n classes = new Set();\n constructor(nativeElement) {\n this.nativeElement = nativeElement;\n }\n update(newClasses) {\n const actualClasses = Array.from(this.classes);\n const classesToAdd = [];\n const classesToRemove = [];\n for (const clazz of newClasses) {\n if (!actualClasses.some(actualClass => actualClass === clazz)) {\n classesToAdd.push(clazz);\n }\n }\n for (const actualClass of actualClasses) {\n if (!newClasses.some(newClass => actualClass === newClass)) {\n classesToRemove.push(actualClass);\n }\n }\n this.remove(...classesToRemove);\n this.add(...classesToAdd);\n this.classes = new Set(newClasses);\n }\n add(...classes) {\n this.addClassToDomElement(this.nativeElement, classes);\n }\n remove(...classes) {\n this.removeClassFromDomElement(this.nativeElement, classes);\n }\n addClassToDomElement(htmlElement, classes) {\n for (let i = 0; i < classes.length; i++) {\n htmlElement.classList.add(classes[i]);\n }\n }\n removeClassFromDomElement(htmlElement, classes) {\n for (let i = 0; i < classes.length; i++) {\n htmlElement.classList.remove(classes[i]);\n }\n }\n}\nclass GuiClassDirective {\n subscriber;\n elementRef;\n guiClass;\n classManager;\n constructor(subscriber, elementRef) {\n this.subscriber = subscriber;\n this.elementRef = elementRef;\n this.classManager = new GuiClassManager(this.elementRef.nativeElement);\n }\n ngOnChanges(changes) {\n if (changes['guiClass'] !== undefined) {\n this.subscriber.subscribe(this.guiClass, newClasses => {\n this.classManager.update(newClasses);\n });\n }\n }\n ngOnDestroy() {\n this.subscriber.destroy();\n }\n static ɵfac = function GuiClassDirective_Factory(t) {\n return new (t || GuiClassDirective)(i0.ɵɵdirectiveInject(GuiSubscriber), i0.ɵɵdirectiveInject(i0.ElementRef));\n };\n static ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: GuiClassDirective,\n selectors: [[\"\", \"guiClass\", \"\"]],\n inputs: {\n guiClass: \"guiClass\"\n },\n features: [i0.ɵɵProvidersFeature([GuiSubscriber]), i0.ɵɵNgOnChangesFeature]\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(GuiClassDirective, [{\n type: Directive,\n args: [{\n selector: '[guiClass]',\n providers: [GuiSubscriber]\n }]\n }], () => [{\n type: GuiSubscriber\n }, {\n type: i0.ElementRef\n }], {\n guiClass: [{\n type: Input,\n args: [{\n required: true\n }]\n }]\n });\n})();\nclass GuiTemplateModule {\n static ɵfac = function GuiTemplateModule_Factory(t) {\n return new (t || GuiTemplateModule)();\n };\n static ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: GuiTemplateModule\n });\n static ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [CommonModule]\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(GuiTemplateModule, [{\n type: NgModule,\n args: [{\n imports: [CommonModule],\n declarations: [GuiPushPipe, GuiLetDirective, GuiIfDirective, GuiForDirective, GuiStyleDirective, GuiClassDirective],\n exports: [GuiPushPipe, GuiLetDirective, GuiIfDirective, GuiForDirective, GuiStyleDirective, GuiClassDirective]\n }]\n }], null, null);\n})();\ninitializePaging();\nfunction providePagingCommandInvoker() {\n return CoreContainer.resolve(PagingPublisher);\n}\nfunction providePagingWarehouse() {\n return CoreContainer.resolve(PagingWarehouse);\n}\nfunction providePagingEventRepository() {\n return CoreContainer.resolve(PagingEventRepository);\n}\nclass PagingFeatureModule extends FeatureModule {\n static forComponent() {\n return [PagingDisplayModeArchive];\n }\n static ɵfac = /* @__PURE__ */(() => {\n let ɵPagingFeatureModule_BaseFactory;\n return function PagingFeatureModule_Factory(t) {\n return (ɵPagingFeatureModule_BaseFactory || (ɵPagingFeatureModule_BaseFactory = i0.ɵɵgetInheritedFactory(PagingFeatureModule)))(t || PagingFeatureModule);\n };\n })();\n static ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: PagingFeatureModule\n });\n static ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n providers: [{\n provide: PagingPublisher,\n useFactory: providePagingCommandInvoker\n }, {\n provide: PagingWarehouse,\n useFactory: providePagingWarehouse\n }, {\n provide: PagingEventRepository,\n useFactory: providePagingEventRepository\n }],\n imports: [CommonModule, FabricModule, TranslationFeatureModule, GuiTemplateModule]\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(PagingFeatureModule, [{\n type: NgModule,\n args: [{\n imports: [CommonModule, FabricModule, TranslationFeatureModule, GuiTemplateModule],\n declarations: [PagingComponent, PagingNavigatorComponent, PagingSelectComponent, PagingStatsComponent, AlternativePagingNavigatorComponent, AlternativePagingPagesComponent],\n exports: [PagingComponent, PagingNavigatorComponent, PagingSelectComponent, PagingStatsComponent, AlternativePagingNavigatorComponent, AlternativePagingPagesComponent],\n providers: [{\n provide: PagingPublisher,\n useFactory: providePagingCommandInvoker\n }, {\n provide: PagingWarehouse,\n useFactory: providePagingWarehouse\n }, {\n provide: PagingEventRepository,\n useFactory: providePagingEventRepository\n }]\n }]\n }], null, null);\n})();\nclass StructureTitlePanelConfigArchive extends Archive {\n static titlePanelConfig = {\n enabled: false,\n template: 'Title Panel'\n };\n constructor() {\n super({\n ...StructureTitlePanelConfigArchive.titlePanelConfig\n });\n }\n}\nclass StructureFooterPanelConfigArchive extends Archive {\n static footerPanelConfig = {\n enabled: false,\n template: 'Footer Panel'\n };\n constructor() {\n super({\n ...StructureFooterPanelConfigArchive.footerPanelConfig\n });\n }\n}\nconst filterContainerToken = 'Filter container token';\nvar StyleName;\n(function (StyleName) {\n StyleName[\"WIDTH\"] = \"width\";\n StyleName[\"HEIGHT\"] = \"height\";\n StyleName[\"PADDING_TOP\"] = \"padding-top\";\n})(StyleName || (StyleName = {}));\nconst STYLE = 'style';\nclass StyleModifier extends Modifier {\n constructor(htmlElement) {\n super(htmlElement);\n }\n createModifier(htmlElement) {\n return new StyleModifier.StyleModifier(htmlElement);\n }\n // eslint-disable-next-line\n static StyleModifier = class {\n htmlElement;\n constructor(htmlElement) {\n this.htmlElement = htmlElement;\n }\n setStyleByName(name, value) {\n this.set(name, value);\n }\n setWidth(value) {\n this.set(StyleName.WIDTH, this.toPx(value));\n }\n setHeight(value) {\n this.set(StyleName.HEIGHT, this.toPx(value));\n }\n setPaddingTop(value) {\n this.set(StyleName.PADDING_TOP, this.toPx(value));\n }\n remove(styleName) {\n this.htmlElement[STYLE][styleName] = '';\n }\n removeStyleByName(name) {\n this.htmlElement[STYLE][name] = '';\n }\n clear() {\n this.htmlElement.removeAttribute(STYLE);\n }\n set(name, value) {\n this.htmlElement[STYLE][name] = value;\n }\n toPx(value) {\n return value > 0 ? `${value}px` : `${value}`;\n }\n };\n}\nclass FieldPublisher {\n constructor() {}\n}\nclass StructureWarehouse {\n structureRepository;\n structureCellEditArchive;\n constructor(structureRepository, structureCellEditArchive) {\n this.structureRepository = structureRepository;\n this.structureCellEditArchive = structureCellEditArchive;\n }\n static services = [StructureReadModelRepository, StructureCellEditArchive];\n on(structureId) {\n return this.structureRepository.on(structureId);\n }\n onEditManager(structureId) {\n return this.structureCellEditArchive.on(structureId);\n }\n}\nclass SearchWarehouse {\n constructor() {}\n}\nconst prefix = 'Structure -';\nconst STRUCTURE_CSS_CLASS_NAME = new InjectionToken(`${prefix} - css className`);\nclass SummariesWarehouse {\n constructor() {}\n}\nclass SummariesTranslations {\n distinctTooltip;\n averageTooltip;\n minTooltip;\n maxTooltip;\n medTooltip;\n countTooltip;\n constructor(distinctTooltip, averageTooltip, minTooltip, maxTooltip, medTooltip, countTooltip) {\n this.distinctTooltip = distinctTooltip;\n this.averageTooltip = averageTooltip;\n this.minTooltip = minTooltip;\n this.maxTooltip = maxTooltip;\n this.medTooltip = medTooltip;\n this.countTooltip = countTooltip;\n }\n}\nvar SortOrder;\n(function (SortOrder) {\n SortOrder[SortOrder[\"ASC\"] = 0] = \"ASC\";\n SortOrder[SortOrder[\"DESC\"] = 1] = \"DESC\";\n SortOrder[SortOrder[\"NONE\"] = 2] = \"NONE\";\n})(SortOrder || (SortOrder = {}));\n\n// Basically header template\nclass CellTemplateWithContext {\n header;\n dataType;\n context;\n width;\n fieldId;\n columnDefinitionId;\n sortStatus;\n enabled;\n cssClasses;\n styles;\n sortable;\n align;\n constructor(\n // public viewTemplate: TemplateRef | null = null,\n // \t\tpublic editTemplate: TemplateRef | null = null,\n // public editContext: any,\n header, dataType, context, width, fieldId, columnDefinitionId, sortStatus, enabled, cssClasses, styles, sortable, align) {\n this.header = header;\n this.dataType = dataType;\n this.context = context;\n this.width = width;\n this.fieldId = fieldId;\n this.columnDefinitionId = columnDefinitionId;\n this.sortStatus = sortStatus;\n this.enabled = enabled;\n this.cssClasses = cssClasses;\n this.styles = styles;\n this.sortable = sortable;\n this.align = align;\n }\n getHeader() {\n return this.header;\n }\n getDataType() {\n return this.dataType;\n }\n getColumnDefinitionId() {\n return this.columnDefinitionId;\n }\n getFieldId() {\n return this.fieldId;\n }\n getSortStatus() {\n return this.sortStatus;\n }\n getCssClasses() {\n return this.cssClasses;\n }\n getStyles() {\n return this.styles;\n }\n isSortEnabled() {\n return this.sortable;\n }\n isAscSort() {\n return this.sortStatus === SortOrder.ASC;\n }\n isDescSort() {\n return this.sortStatus === SortOrder.DESC;\n }\n isNoSort() {\n return this.sortStatus === SortOrder.NONE;\n }\n isEnabled() {\n return this.enabled;\n }\n isAlignLeft() {\n return this.align === ColumnAlign.LEFT;\n }\n isAlignCenter() {\n return this.align === ColumnAlign.CENTER;\n }\n isAlignRight() {\n return this.align === ColumnAlign.RIGHT;\n }\n getAlign() {\n return this.align;\n }\n}\nclass CompositionTemplateModel extends CellTemplateWithContext {\n viewTemplate;\n editTemplate;\n constructor(viewTemplate = null, editTemplate = null, context) {\n super(context.getHeader(), context.getDataType(), context.context, context.width, context.getFieldId(), context.getColumnDefinitionId(), context.getSortStatus(), context.isEnabled(), context.getCssClasses(), context.getStyles(), context.isSortEnabled(), context.getAlign());\n this.viewTemplate = viewTemplate;\n this.editTemplate = editTemplate;\n }\n}\nvar CellValueType;\n(function (CellValueType) {\n CellValueType[CellValueType[\"TEXT\"] = 0] = \"TEXT\";\n CellValueType[CellValueType[\"HTML\"] = 1] = \"HTML\";\n})(CellValueType || (CellValueType = {}));\nclass CellValue {\n value;\n type;\n constructor(value, type) {\n this.value = value;\n this.type = type;\n }\n static text(value) {\n return new CellValue(value, CellValueType.TEXT);\n }\n static HTML(value) {\n return new CellValue(value, CellValueType.HTML);\n }\n}\nclass CellTemplateWithAccessor {\n columnConfig;\n columnDefinitionId;\n name;\n editable;\n templateFun;\n formatterFun;\n accessor;\n searchAccessor;\n width;\n columnFieldId;\n align;\n cellEditingEnabled;\n type;\n view;\n constructor(columnConfig, columnDefinitionId, name,\n // public template: TemplateRef | null = null,\n // public editTemplate: TemplateRef | null = null,\n editable, templateFun, formatterFun, accessor, searchAccessor, width, columnFieldId, align, cellEditingEnabled, type,\n // REFACTOR\n view) {\n this.columnConfig = columnConfig;\n this.columnDefinitionId = columnDefinitionId;\n this.name = name;\n this.editable = editable;\n this.templateFun = templateFun;\n this.formatterFun = formatterFun;\n this.accessor = accessor;\n this.searchAccessor = searchAccessor;\n this.width = width;\n this.columnFieldId = columnFieldId;\n this.align = align;\n this.cellEditingEnabled = cellEditingEnabled;\n this.type = type;\n this.view = view;\n }\n getDataType() {\n return this.type;\n }\n getCellView() {\n return this.view.getCellView();\n }\n getColumnConfig() {\n return this.columnConfig;\n }\n isCellEditingEnabled() {\n return this.cellEditingEnabled;\n }\n isBooleanDataType() {\n return this.type === DataType.BOOLEAN;\n }\n isAlignLeft() {\n return this.align === ColumnAlign.LEFT;\n }\n isAlignCenter() {\n return this.align === ColumnAlign.CENTER;\n }\n isAlignRight() {\n return this.align === ColumnAlign.RIGHT;\n }\n getAlign() {\n return this.align;\n }\n getType() {\n return this.type;\n }\n getView() {\n return this.view;\n }\n getName() {\n return this.name;\n }\n // REFACTOR #1581\n getValue(entity, searchPhrase) {\n const cellValue = this.findValue(entity, searchPhrase);\n cellValue.value = this.templateFun(cellValue.value, entity.getSourceItem());\n if (this.formatterFun) {\n cellValue.value = this.formatterFun(cellValue.value, entity.getSourceItem());\n }\n return cellValue;\n }\n getClasses() {\n return 'gui-cell-highlighted';\n }\n findValue(entity, searchPhrase) {\n const value = this.accessor(entity);\n if (this.type !== DataType.STRING) {\n return CellValue.text(value);\n }\n if (this.view && this.view.getCellView() === CellView.FUNCTION) {\n return CellValue.text(value);\n }\n if (searchPhrase) {\n let txt = '' + this.searchAccessor(entity);\n const lowerCasedText = txt.toLocaleLowerCase(),\n loweredSearchPhrase = searchPhrase.toLocaleLowerCase();\n const positions = [];\n let index = 0;\n while (index < loweredSearchPhrase.length) {\n const found = lowerCasedText.indexOf(loweredSearchPhrase, index);\n if (found >= 0) {\n positions.push(found);\n index = found + searchPhrase.length;\n } else {\n index = loweredSearchPhrase.length;\n }\n }\n const arr = txt.split('');\n positions.forEach(pos => {\n for (let i = 0; i < searchPhrase.length; i += 1) {\n let ph;\n if (i === 0) {\n ph = `${arr[pos + i]}`;\n } else {\n ph = arr[pos + i];\n }\n if (i === searchPhrase.length - 1) {\n ph += '';\n }\n arr[pos + i] = ph;\n }\n });\n txt = arr.join('');\n return CellValue.HTML(txt);\n } else {\n return CellValue.text(value);\n }\n }\n}\nclass CompositionAccessorModel extends CellTemplateWithAccessor {\n template;\n editTemplate;\n constructor(template = null, editTemplate = null, context) {\n super(context.getColumnConfig(), context.columnDefinitionId, context.getName(), context.editable, context.templateFun, context.formatterFun, context.accessor, context.searchAccessor, context.width, context.columnFieldId, context.getAlign(), context.isCellEditingEnabled(), context.getType(), context.getView());\n this.template = template;\n this.editTemplate = editTemplate;\n }\n}\nconst CompositionAggregateEvents = {\n CompositionResizeWidthSetAggregateEvent: 'CompositionResizeWidthSetAggregateEvent',\n ColumnsSetAggregateEvent: 'ColumnsSetAggregateEvent',\n CompositionContainerWidthSetAggregateEvent: 'CompositionContainerWidthSetAggregateEvent',\n CompositionWidthSetAggregateEvent: 'CompositionWidthSetAggregateEvent',\n CompositionColumnSetEnabledAggregateEvent: 'CompositionColumnSetEnabledAggregateEvent',\n CompositionColumnMovedLeftAggregateEvent: 'CompositionColumnMovedLeftAggregateEvent',\n CompositionColumnMovedRightAggregateEvent: 'CompositionColumnMovedRightAggregateEvent',\n GroupsSetAggregateEvent: 'GroupsSetAggregateEvent'\n};\nclass CompositionDomainEvent extends DomainEvent {}\nclass CompositionResizeWidthSetEvent extends CompositionDomainEvent {\n constructor(aggregateId) {\n super(aggregateId, null, 'CompositionResizeWidthSetEvent');\n }\n}\nclass CompositionColumnsSetEvent extends CompositionDomainEvent {\n constructor(compositionId) {\n super(compositionId, null, 'CompositionColumnsSetEvent');\n }\n}\nclass CompositionContainerWidthSetEvent extends CompositionDomainEvent {\n constructor(compositionId, payload) {\n super(compositionId, payload, 'CompositionContainerWidthSetEvent');\n }\n}\nclass CompositionWidthSetEvent extends CompositionDomainEvent {\n constructor(compositionId) {\n super(compositionId, null, 'CompositionWidthSetEvent');\n }\n}\nclass CompositionColumnSetEnabledEvent extends CompositionDomainEvent {\n constructor(aggregateId) {\n super(aggregateId, null, 'CompositionColumnSetEnabledEvent');\n }\n}\nclass CompositionColumnMovedLeftEvent extends CompositionDomainEvent {\n constructor(aggregateId) {\n super(aggregateId, null, 'CompositionColumnMovedLeftEvent');\n }\n}\nclass CompositionColumnMovedRightEvent extends CompositionDomainEvent {\n constructor(aggregateId) {\n super(aggregateId, null, 'CompositionColumnMovedRightEvent');\n }\n}\nclass CompositionGroupsSetEvent extends CompositionDomainEvent {\n constructor(compositionId) {\n super(compositionId, null, 'CompositionGroupsSetEvent');\n }\n}\nclass CompositionEventConverter {\n convert(arg) {\n if (Array.isArray(arg)) {\n return this.convertEvents(arg);\n } else {\n return this.convertEvent(arg);\n }\n }\n convertEvents(aggregateEvents) {\n return aggregateEvents.map(event => {\n return this.convertEvent(event);\n });\n }\n convertEvent(aggregateEvent) {\n switch (aggregateEvent.getType()) {\n case CompositionAggregateEvents.CompositionResizeWidthSetAggregateEvent:\n return new CompositionResizeWidthSetEvent(aggregateEvent.getAggregateId());\n case CompositionAggregateEvents.ColumnsSetAggregateEvent:\n return new CompositionColumnsSetEvent(aggregateEvent.getAggregateId());\n case CompositionAggregateEvents.CompositionContainerWidthSetAggregateEvent:\n const payload = aggregateEvent.containerWidth;\n return new CompositionContainerWidthSetEvent(aggregateEvent.getAggregateId(), payload);\n case CompositionAggregateEvents.CompositionWidthSetAggregateEvent:\n return new CompositionWidthSetEvent(aggregateEvent.getAggregateId());\n case CompositionAggregateEvents.CompositionColumnSetEnabledAggregateEvent:\n return new CompositionColumnSetEnabledEvent(aggregateEvent.getAggregateId());\n case CompositionAggregateEvents.CompositionColumnMovedLeftAggregateEvent:\n return new CompositionColumnMovedLeftEvent(aggregateEvent.getAggregateId());\n case CompositionAggregateEvents.CompositionColumnMovedRightAggregateEvent:\n return new CompositionColumnMovedRightEvent(aggregateEvent.getAggregateId());\n case CompositionAggregateEvents.GroupsSetAggregateEvent:\n return new CompositionGroupsSetEvent(aggregateEvent.getAggregateId());\n default:\n return new CompositionResizeWidthSetEvent(aggregateEvent.getAggregateId());\n }\n }\n}\nclass CompositionCommand extends Command {}\nclass SetColumnsCommand extends CompositionCommand {\n compositionId;\n columns;\n constructor(compositionId, columns) {\n super(compositionId, 'SetColumnsCommand');\n this.compositionId = compositionId;\n this.columns = columns;\n }\n getParams() {\n return this.columns;\n }\n}\nclass SetColumnsCommandHandler {\n compositionEventConverter;\n domainEventPublisher = CoreContainer.resolve(DomainEventPublisher);\n constructor(compositionEventConverter) {\n this.compositionEventConverter = compositionEventConverter;\n }\n static services = [CompositionEventConverter];\n forCommand() {\n return SetColumnsCommand;\n }\n handle(aggregate, command) {\n const setColumnsParams = command.getParams();\n aggregate.setColumns(setColumnsParams);\n }\n publish(aggregate, command) {\n this.publishEvents(aggregate, command);\n }\n publishEvents(composition, command) {\n const events = composition.getEvents();\n const domainEvents = this.compositionEventConverter.convert(events);\n this.domainEventPublisher.publish(domainEvents);\n }\n}\nclass SetCompositionWidthCommand extends CompositionCommand {\n structureId;\n width;\n constructor(structureId, width) {\n super(structureId, 'SetCompositionWidthCommand');\n this.structureId = structureId;\n this.width = width;\n }\n getWidth() {\n return this.width;\n }\n}\nclass SetCompositionWidthCommandHandler {\n domainEventPublisher = CoreContainer.resolve(DomainEventPublisher);\n forCommand() {\n return SetCompositionWidthCommand;\n }\n handle(composition, command) {\n const width = command.getWidth();\n composition.setWidth(width);\n }\n publish(aggregate, command) {\n this.domainEventPublisher.publish(new CompositionWidthSetEvent(command.getAggregateId()));\n }\n}\nclass SetCompositionResizeWidthCommand extends CompositionCommand {\n structureId;\n enabled;\n constructor(structureId, enabled) {\n super(structureId, 'SetCompositionResizeWidthCommand');\n this.structureId = structureId;\n this.enabled = enabled;\n }\n getEnabled() {\n return this.enabled;\n }\n}\nclass SetCompositionResizeWidthCommandHandler {\n domainEventPublisher = CoreContainer.resolve(DomainEventPublisher);\n forCommand() {\n return SetCompositionResizeWidthCommand;\n }\n handle(composition, command) {\n const enabled = command.getEnabled();\n composition.setResizeWidth(enabled);\n }\n publish(aggregate, command) {\n this.domainEventPublisher.publish(new CompositionResizeWidthSetEvent(command.getAggregateId()));\n }\n}\nclass SetCompositionContainerWidthCommand extends CompositionCommand {\n structureId;\n width;\n constructor(structureId, width) {\n super(structureId, 'SetCompositionContainerWidthCommand');\n this.structureId = structureId;\n this.width = width;\n }\n getWidth() {\n return this.width;\n }\n}\nclass SetCompositionContainerWidthCommandHandler {\n compositionEventConverter;\n domainEventPublisher = CoreContainer.resolve(DomainEventPublisher);\n constructor(compositionEventConverter) {\n this.compositionEventConverter = compositionEventConverter;\n }\n static services = [CompositionEventConverter];\n forCommand() {\n return SetCompositionContainerWidthCommand;\n }\n handle(composition, command) {\n const width = command.getWidth();\n composition.setContainerWidth(width);\n }\n publish(aggregate, command) {\n this.publishAggregateEvents(aggregate.getEvents());\n }\n publishAggregateEvents(aggregateEvents) {\n const domainEvents = this.compositionEventConverter.convert(aggregateEvents);\n this.domainEventPublisher.publish(domainEvents);\n }\n}\nclass CompositionSetColumnEnabledCommand extends CompositionCommand {\n compositionId;\n columnId;\n enabled;\n constructor(compositionId, columnId, enabled) {\n super(compositionId, 'CompositionSetColumnEnabledCommand');\n this.compositionId = compositionId;\n this.columnId = columnId;\n this.enabled = enabled;\n }\n getColumnId() {\n return this.columnId;\n }\n isEnabled() {\n return this.enabled;\n }\n}\nclass CompositionSetColumnEnabledCommandHandler {\n compositionEventConverter;\n domainEventPublisher = CoreContainer.resolve(DomainEventPublisher);\n constructor(compositionEventConverter) {\n this.compositionEventConverter = compositionEventConverter;\n }\n static services = [CompositionEventConverter];\n forCommand() {\n return CompositionSetColumnEnabledCommand;\n }\n handle(aggregate, command) {\n const columnId = command.getColumnId(),\n enabled = command.isEnabled();\n aggregate.enableColumn(columnId, enabled);\n }\n publish(aggregate, command) {\n this.publishEvents(aggregate, command);\n }\n publishEvents(composition, command) {\n const events = composition.getEvents();\n const domainEvents = this.compositionEventConverter.convert(events);\n if (domainEvents && domainEvents.length > 0) {\n this.domainEventPublisher.publish(domainEvents);\n }\n }\n}\nclass CompositionChangeSortStatusCommand extends CompositionCommand {\n compositionId;\n sortParams;\n constructor(compositionId, sortParams) {\n super(compositionId, 'CompositionChangeSortStatusCommand');\n this.compositionId = compositionId;\n this.sortParams = sortParams;\n }\n getCompositionId() {\n return this.compositionId;\n }\n getSortParams() {\n return this.sortParams;\n }\n}\nclass CompositionChangeSortStatusEvent extends CompositionDomainEvent {\n activeColumns;\n constructor(aggregateId, activeColumns) {\n super(aggregateId, activeColumns, 'CompositionChangeSortStatusEvent');\n this.activeColumns = activeColumns;\n }\n getCompositionId() {\n return this.getAggregateId();\n }\n getActiveColumns() {\n return this.activeColumns;\n }\n}\nclass CompositionChangeSortStatusCommandHandler {\n domainEventPublisher = CoreContainer.resolve(DomainEventPublisher);\n forCommand() {\n return CompositionChangeSortStatusCommand;\n }\n handle(composition, command) {\n const sortParams = command.getSortParams();\n composition.changeSort(sortParams);\n }\n publish(composition, command) {\n const compositionId = command.getAggregateId(),\n columns = composition.getActiveColumns();\n this.domainEventPublisher.publish(new CompositionChangeSortStatusEvent(compositionId, columns));\n }\n}\nclass CompositionMoveLeftColumnCommand extends CompositionCommand {\n compositionId;\n columnId;\n constructor(compositionId, columnId) {\n super(compositionId, 'CompositionMoveLeftColumnCommand');\n this.compositionId = compositionId;\n this.columnId = columnId;\n }\n getColumnId() {\n return this.columnId;\n }\n}\nclass CompositionMoveLeftColumnCommandHandler {\n compositionEventConverter;\n domainEventPublisher = CoreContainer.resolve(DomainEventPublisher);\n constructor(compositionEventConverter) {\n this.compositionEventConverter = compositionEventConverter;\n }\n static services = [CompositionEventConverter];\n forCommand() {\n return CompositionMoveLeftColumnCommand;\n }\n handle(aggregate, command) {\n const columnId = command.getColumnId();\n aggregate.moveLeft(columnId);\n }\n publish(aggregate, command) {\n this.publishEvents(aggregate, command);\n }\n publishEvents(composition, command) {\n const events = composition.getEvents();\n const domainEvents = this.compositionEventConverter.convert(events);\n if (domainEvents && domainEvents.length > 0) {\n this.domainEventPublisher.publish(domainEvents);\n }\n }\n}\nclass CompositionMoveRightColumnCommand extends CompositionCommand {\n columnId;\n constructor(compositionId, columnId) {\n super(compositionId, 'CompositionMoveRightColumnCommand');\n this.columnId = columnId;\n }\n getColumnId() {\n return this.columnId;\n }\n}\nclass CompositionMoveRightColumnCommandHandler {\n compositionEventConverter;\n domainEventPublisher = CoreContainer.resolve(DomainEventPublisher);\n constructor(compositionEventConverter) {\n this.compositionEventConverter = compositionEventConverter;\n }\n static services = [CompositionEventConverter];\n forCommand() {\n return CompositionMoveRightColumnCommand;\n }\n handle(aggregate, command) {\n const columnId = command.getColumnId();\n aggregate.moveRight(columnId);\n }\n publish(aggregate, command) {\n this.publishEvents(aggregate, command);\n }\n publishEvents(composition, command) {\n const events = composition.getEvents();\n const domainEvents = this.compositionEventConverter.convert(events);\n if (domainEvents && domainEvents.length > 0) {\n this.domainEventPublisher.publish(domainEvents);\n }\n }\n}\nclass SortToggledEvent extends StructureDomainEvent {\n compositionId;\n directions;\n constructor(aggregateId, compositionId, directions) {\n super(aggregateId, {\n compositionId,\n directions\n }, 'SortToggledEvent');\n this.compositionId = compositionId;\n this.directions = directions;\n }\n getCompositionId() {\n return this.compositionId;\n }\n getDirections() {\n return this.directions;\n }\n}\nclass CreateCompositionCommand extends CompositionCommand {\n compositionId;\n constructor(compositionId) {\n super(compositionId, 'CreateCompositionCommand');\n this.compositionId = compositionId;\n }\n}\nclass SetGroupsCommand extends CompositionCommand {\n compositionId;\n configs;\n constructor(compositionId, configs) {\n super(compositionId, 'SetGroupsCommand');\n this.compositionId = compositionId;\n this.configs = configs;\n }\n getConfigs() {\n return this.configs;\n }\n}\nclass CompositionDispatcher {\n commandDispatcher = CoreContainer.resolve(CommandDispatcher);\n create(compositionId) {\n this.commandDispatcher.dispatch(new CreateCompositionCommand(compositionId));\n }\n setColumns(compositionId, params) {\n this.commandDispatcher.dispatch(new SetColumnsCommand(compositionId, params));\n }\n setGroups(compositionId, params) {\n this.commandDispatcher.dispatch(new SetGroupsCommand(compositionId, params));\n }\n setWidth(compositionId, width) {\n this.commandDispatcher.dispatch(new SetCompositionWidthCommand(compositionId, width));\n }\n setContainerWidth(compositionId, width) {\n this.commandDispatcher.dispatch(new SetCompositionContainerWidthCommand(compositionId, width));\n }\n setResizeWidth(compositionId, enabled) {\n this.commandDispatcher.dispatch(new SetCompositionResizeWidthCommand(compositionId, enabled));\n }\n changeSort(compositionId, params) {\n this.commandDispatcher.dispatch(new CompositionChangeSortStatusCommand(compositionId, params));\n }\n setColumnEnabled(compositionId, columnId, enabled) {\n this.commandDispatcher.dispatch(new CompositionSetColumnEnabledCommand(compositionId, columnId, enabled));\n }\n moveLeft(compositionId, columnId) {\n this.commandDispatcher.dispatch(new CompositionMoveLeftColumnCommand(compositionId, columnId));\n }\n moveRight(compositionId, columnId) {\n this.commandDispatcher.dispatch(new CompositionMoveRightColumnCommand(compositionId, columnId));\n }\n}\nclass ChangeSortParams {\n fieldId;\n direction;\n constructor(fieldId, direction) {\n this.fieldId = fieldId;\n this.direction = direction;\n }\n}\nclass SortOrderSetEvent extends StructureDomainEvent {\n compositionId;\n directions;\n constructor(aggregateId, compositionId, directions) {\n super(aggregateId, {\n compositionId,\n directions\n }, 'SortOrderSetEvent');\n this.compositionId = compositionId;\n this.directions = directions;\n }\n getCompositionId() {\n return this.compositionId;\n }\n getDirections() {\n return this.directions;\n }\n}\nclass CompositionChangeSortStatusEventHandler {\n compositionDispatcher;\n constructor(compositionDispatcher) {\n this.compositionDispatcher = compositionDispatcher;\n }\n static services = [CompositionDispatcher];\n forEvents() {\n return [SortToggledEvent, SortOrderSetEvent];\n }\n handle(event) {\n if (event.ofMessageType('SortToggledEvent')) {\n const compositionId = event.getCompositionId(),\n dirs = event.getDirections();\n const params = dirs.map(dir => {\n const columnFieldId = new ColumnFieldId(dir.fieldId.getId());\n return new ChangeSortParams(columnFieldId, dir.direction);\n });\n this.compositionDispatcher.changeSort(compositionId, params);\n }\n if (event.ofMessageType('SortOrderSetEvent')) {\n const compositionId = event.getCompositionId(),\n dirs = event.getDirections();\n const params = dirs.map(dir => {\n const columnFieldId = new ColumnFieldId(dir.fieldId.getId());\n return new ChangeSortParams(columnFieldId, dir.direction);\n });\n this.compositionDispatcher.changeSort(compositionId, params);\n }\n }\n}\nclass ViewEntity {\n view;\n templateFunction = (cellValue, item) => cellValue;\n constructor(cellView) {\n if (typeof cellView === 'function') {\n this.view = CellView.FUNCTION;\n this.templateFunction = cellView;\n } else {\n this.view = cellView;\n }\n }\n static fromDataType(dataType) {\n if (dataType === DataType.DATE) {\n return new ViewEntity(CellView.DATE);\n } else {\n return new ViewEntity(CellView.TEXT);\n }\n }\n getCellView() {\n return this.view;\n }\n getTemplateFunction() {\n return this.templateFunction;\n }\n}\nclass AbstractColumnEntity extends Entity {\n columnField;\n header;\n width;\n columnConfig;\n view;\n align;\n presentation;\n constructor(columnId, columnField, columnConfig, presentation, header, align, view, width) {\n super(columnId);\n this.columnField = columnField;\n this.columnConfig = columnConfig;\n this.presentation = presentation;\n this.view = ViewEntity.fromDataType(columnField.getDataType());\n if (header) {\n this.header = header;\n }\n if (view) {\n this.view = view;\n }\n if (width) {\n this.width = width;\n }\n this.setInitialAlign(columnField, align);\n }\n getPresentation() {\n return this.presentation;\n }\n getColumnConfig() {\n return this.columnConfig;\n }\n getField() {\n return this.columnField;\n }\n getHeader() {\n return this.header;\n }\n getDataType() {\n return this.columnField.getDataType();\n }\n getCellView() {\n return this.view.getCellView();\n }\n getTemplateFunction() {\n return this.view.getTemplateFunction();\n }\n getFormatterFunction() {\n return this.columnConfig.formatter;\n }\n setView(view) {\n this.view = view;\n }\n setHeader(header) {\n this.header = header;\n }\n getView() {\n return this.view;\n }\n getAlign() {\n return this.align;\n }\n setWidth(width) {\n this.width = width;\n }\n getWidth() {\n return this.width;\n }\n isSortingEnabled() {\n const config = this.columnConfig;\n if (config.sorting !== undefined && config.sorting !== null) {\n if (config.sorting.enabled === undefined || config.sorting.enabled === null) {\n return true;\n }\n return config.sorting.enabled;\n }\n return true;\n }\n isCellEditingEnabled() {\n const config = this.columnConfig;\n if (config.cellEditing !== undefined && config.cellEditing !== null) {\n if (config.cellEditing.enabled === undefined || config.cellEditing.enabled === null) {\n return true;\n }\n return config.cellEditing.enabled;\n }\n return true;\n }\n setInitialAlign(columnField, align) {\n if (align !== undefined && align !== null) {\n this.align = align;\n } else if (columnField.getDataType() === DataType.NUMBER) {\n this.align = ColumnAlign.RIGHT;\n } else {\n this.align = ColumnAlign.LEFT;\n }\n }\n}\nclass ColumnEntity extends AbstractColumnEntity {\n sortable;\n sortStatus = SortOrder.NONE;\n enabled = true;\n constructor(columnId, columnField, columnConfig, enabled, presentation, header, align, view, width) {\n super(columnId, columnField, columnConfig, presentation, header, align, view, width);\n this.enabled = enabled;\n if (view === undefined) {\n this.view = new ViewEntity(this.presentation.getDefaultView());\n }\n if (align === undefined) {\n this.align = this.presentation.getDefaultAlign(this.view);\n }\n }\n isEnabled() {\n return this.enabled;\n }\n setEnabled(enabled) {\n this.enabled = enabled;\n }\n getSortStatus() {\n return this.sortStatus;\n }\n setSortStatus(status) {\n this.sortStatus = status;\n }\n}\nclass ColumnId extends EntityId {\n constructor(id) {\n super(id);\n }\n toString() {\n return this.getId();\n }\n}\nclass ColumnPresentation {}\nclass NumberColumnPresentation extends ColumnPresentation {\n static instance = null;\n constructor() {\n super();\n }\n static getInstance() {\n if (!NumberColumnPresentation.instance) {\n NumberColumnPresentation.instance = new NumberColumnPresentation();\n }\n return NumberColumnPresentation.instance;\n }\n getPossibleViews() {\n return [CellView.TEXT, CellView.BAR, CellView.PERCENTAGE_BAR, CellView.PERCENTAGE];\n }\n getDefaultView() {\n return CellView.NUMBER;\n }\n getDefaultAlign(view) {\n return ColumnAlign.RIGHT;\n }\n}\nclass BooleanColumnPresentation extends ColumnPresentation {\n static instance = null;\n constructor() {\n super();\n }\n static getInstance() {\n if (!BooleanColumnPresentation.instance) {\n BooleanColumnPresentation.instance = new BooleanColumnPresentation();\n }\n return BooleanColumnPresentation.instance;\n }\n getPossibleViews() {\n return [CellView.TEXT, CellView.ITALIC, CellView.CHIP, CellView.BOLD, CellView.CHECKBOX];\n }\n getDefaultView() {\n return CellView.TEXT;\n }\n getDefaultAlign(view) {\n if (view.getCellView() === CellView.CHECKBOX) {\n return ColumnAlign.CENTER;\n } else {\n return ColumnAlign.LEFT;\n }\n }\n}\nclass DateColumnPresentation extends ColumnPresentation {\n static getInstance() {\n if (!DateColumnPresentation.instance) {\n DateColumnPresentation.instance = new DateColumnPresentation();\n }\n return DateColumnPresentation.instance;\n }\n static instance = null;\n constructor() {\n super();\n }\n getPossibleViews() {\n return [CellView.DATE, CellView.TEXT, CellView.ITALIC, CellView.BOLD, CellView.CHIP];\n }\n getDefaultView() {\n return CellView.DATE;\n }\n getDefaultAlign() {\n return ColumnAlign.LEFT;\n }\n}\nclass StringColumnPresentation extends ColumnPresentation {\n static instance = null;\n constructor() {\n super();\n }\n static getInstance() {\n if (!StringColumnPresentation.instance) {\n StringColumnPresentation.instance = new StringColumnPresentation();\n }\n return StringColumnPresentation.instance;\n }\n getPossibleViews() {\n return [CellView.TEXT, CellView.ITALIC, CellView.BOLD, CellView.IMAGE, CellView.LINK, CellView.CHIP];\n }\n getDefaultView() {\n return CellView.TEXT;\n }\n getDefaultAlign() {\n return ColumnAlign.LEFT;\n }\n}\nclass UnknownColumnPresentation extends ColumnPresentation {\n static instance = null;\n constructor() {\n super();\n }\n static getInstance() {\n if (!UnknownColumnPresentation.instance) {\n UnknownColumnPresentation.instance = new UnknownColumnPresentation();\n }\n return UnknownColumnPresentation.instance;\n }\n getPossibleViews() {\n return [CellView.TEXT];\n }\n getDefaultView() {\n return CellView.TEXT;\n }\n getDefaultAlign() {\n return ColumnAlign.LEFT;\n }\n}\nclass ColumnPresentationConverter {\n convert(dataType) {\n if (dataType === DataType.NUMBER) {\n return NumberColumnPresentation.getInstance();\n } else if (dataType === DataType.BOOLEAN) {\n return BooleanColumnPresentation.getInstance();\n } else if (dataType === DataType.DATE) {\n return DateColumnPresentation.getInstance();\n } else if (dataType === DataType.STRING) {\n return StringColumnPresentation.getInstance();\n } else {\n return UnknownColumnPresentation.getInstance();\n }\n }\n}\nclass ColumnEntityFactory {\n columnPresentationConverter;\n constructor(columnPresentationConverter) {\n this.columnPresentationConverter = columnPresentationConverter;\n }\n static services = [ColumnPresentationConverter];\n create(source) {\n if (Array.isArray(source)) {\n return this.createColumns(source);\n } else {\n return this.createColumn(source);\n }\n }\n createColumn(params) {\n const columnConfig = params.getColumn(),\n field = params.getField(),\n dataType = field.getDataType(),\n width = this.convertWidth(columnConfig.width) || undefined;\n let view, enabled;\n if (columnConfig.view !== undefined) {\n view = new ViewEntity(columnConfig.view);\n }\n if (columnConfig.enabled !== undefined) {\n enabled = columnConfig.enabled;\n } else {\n enabled = true;\n }\n const presentation = this.getPresentation(dataType);\n const columnEntity = new ColumnEntity(new ColumnId(RandomStringGenerator.generate()), field, columnConfig, enabled, presentation, undefined, columnConfig.align, view, width);\n if (columnConfig.header !== undefined) {\n columnEntity.setHeader(columnConfig.header);\n }\n return columnEntity;\n }\n createColumns(columns) {\n const columnEntities = [];\n columns.forEach(column => {\n columnEntities.push(this.createColumn(column));\n });\n return columnEntities;\n }\n convertWidth(width) {\n return +width;\n }\n getPresentation(dataType) {\n return this.columnPresentationConverter.convert(dataType);\n }\n}\nclass Group {\n id;\n header;\n width;\n constructor(id, header, width) {\n this.id = id;\n this.header = header;\n this.width = width;\n }\n}\nclass GroupId extends HermesId {\n constructor(id) {\n super(id);\n }\n toString() {\n return this.getId();\n }\n}\nclass CompositionGroupFactory {\n create(config) {\n return new Group(new GroupId(RandomStringGenerator.generate()), config.header, config.width);\n }\n}\nclass SetGroupsCommandHandler {\n compositionEventConverter;\n domainEventPublisher = CoreContainer.resolve(DomainEventPublisher);\n constructor(compositionEventConverter) {\n this.compositionEventConverter = compositionEventConverter;\n }\n static services = [CompositionEventConverter];\n forCommand() {\n return SetGroupsCommand;\n }\n handle(aggregate, command) {\n const groupConfigs = command.getConfigs();\n aggregate.setGroups(groupConfigs);\n }\n publish(aggregate, command) {\n this.publishEvents(aggregate, command);\n }\n publishEvents(composition, command) {\n const events = composition.getEvents();\n const domainEvents = this.compositionEventConverter.convert(events);\n this.domainEventPublisher.publish(domainEvents);\n }\n}\nclass ColumnHighlightManager {\n enabled = true;\n highlightedColumns = new Set(); // should be set of ColumnId\n isHighlighted(columnId) {\n return this.highlightedColumns.has(columnId.toString());\n }\n toggle(columnId) {\n if (this.highlightedColumns.has(columnId.toString())) {\n this.highlightedColumns.delete(columnId.toString());\n } else {\n this.highlightedColumns.add(columnId.toString());\n }\n }\n remove(columnId) {\n this.highlightedColumns.delete(columnId.toString());\n }\n}\nclass ColumnHighlightArchive extends AggregateArchive {\n constructor() {\n super(new ColumnHighlightManager());\n }\n toggle(key, value) {\n this.find(key).ifPresent(manager => {\n manager.toggle(value);\n this.next(key, manager);\n });\n }\n equals(a, b) {\n return false;\n }\n createDefaultValue(defaultValue) {\n return new ColumnHighlightManager();\n }\n}\nclass InMemoryCompositionStore extends InMemoryStore {}\nclass InMemoryCompositionAggregateStore extends InMemoryAggregateStore {\n constructor(inMemoryCompositionStore) {\n super(inMemoryCompositionStore);\n }\n static services = [InMemoryCompositionStore];\n}\nclass CompositionAggregateRepository extends AggregateRepository {}\nclass InMemoryCompositionAggregateRepository extends CompositionAggregateRepository {\n inMemoryCompositionAggregateStore;\n constructor(inMemoryCompositionAggregateStore) {\n super();\n this.inMemoryCompositionAggregateStore = inMemoryCompositionAggregateStore;\n }\n static services = [InMemoryCompositionAggregateStore];\n findById(aggregateId) {\n return this.inMemoryCompositionAggregateStore.findById(aggregateId);\n }\n save(aggregate) {\n this.inMemoryCompositionAggregateStore.save(aggregate);\n }\n}\nclass CellContext {\n element;\n constructor(element) {\n this.element = element;\n }\n}\nclass ColumnDefinition extends ReadModelEntity {\n columnConfig;\n name;\n type;\n view;\n align;\n cssClasses;\n styles;\n // cellTemplate: TemplateRef | null = null;\n //\n // headerTemplate: TemplateRef | null = null;\n //\n // editTemplate: TemplateRef | null = null;\n width;\n templateFunction;\n formatterFunction;\n columnDefinitionId;\n field;\n header;\n sortStatus;\n sortable = true;\n enabled;\n cellEditingEnabled;\n constructor(field, columnDefinitionId,\n // REFACTOR Id first argument\n columnConfig, name, enabled, type,\n // REFACTOR\n view,\n // REFACTOR\n align,\n // REFACTOR\n header, cellEditingEnabled, cssClasses, styles, sort = SortOrder.NONE, sortable = true) {\n super(columnDefinitionId);\n this.columnConfig = columnConfig;\n this.name = name;\n this.type = type;\n this.view = view;\n this.align = align;\n this.cssClasses = cssClasses;\n this.styles = styles;\n this.field = field;\n this.columnDefinitionId = columnDefinitionId;\n this.enabled = enabled;\n this.header = header;\n this.cellEditingEnabled = cellEditingEnabled;\n this.sortStatus = sort;\n this.sortable = sortable;\n }\n getName() {\n return this.name;\n }\n isEnabled() {\n return this.enabled;\n }\n setHeader(header) {\n this.header = header;\n }\n setField(field) {\n this.field = field;\n }\n setTemplateFunction(templateFun) {\n this.templateFunction = templateFun;\n }\n setFormatterFunction(formatter) {\n this.formatterFunction = formatter;\n }\n toHeaderCellTemplateWithContext(index) {\n const header = this.header || '';\n let headerCellContext;\n if (typeof header === 'string') {\n headerCellContext = new CellContext(CellValue.text(header));\n } else if (typeof header === 'function') {\n headerCellContext = new CellContext(CellValue.text(header(index)));\n }\n const fieldId = new FieldId(this.field.getId().getId());\n return new CellTemplateWithContext(header, this.type, headerCellContext, this.width, fieldId, this.columnDefinitionId, this.sortStatus, this.enabled, this.cssClasses, this.styles, this.sortable, this.align);\n }\n toContentCellTemplateWithAccessor() {\n const accessor = entity => {\n return this.field.getAccessor()(entity);\n },\n searchAccessor = entity => {\n return this.field.getSearchAccessor()(entity);\n };\n return new CellTemplateWithAccessor(this.columnConfig, this.columnDefinitionId, this.name,\n // null,\n // null,\n true, this.templateFunction, this.formatterFunction, accessor, searchAccessor, this.width, this.field.getId(), this.align, this.cellEditingEnabled, this.type, this.view);\n }\n}\nclass ColumnDefinitionId extends ReadModelEntityId {\n constructor(id) {\n super(id);\n }\n}\nclass ColumnDefinitionFactory {\n create(column) {\n if (column instanceof ColumnEntity) {\n return this.createFromColumnEntity(column);\n } else {\n return this.createFromActiveColumnEntity(column);\n }\n }\n createColumns(columns) {\n return columns.map(column => this.create(column));\n }\n createFromColumnEntity(column) {\n const columnDef = new ColumnDefinition(column.getField(), new ColumnDefinitionId(column.getId().toString()), column.getColumnConfig(), column.getColumnConfig().name, column.isEnabled(), column.getDataType(), column.getView(), column.getAlign(), column.getHeader(), column.isCellEditingEnabled(), column.getColumnConfig().cssClasses, column.getColumnConfig().styles, column.getSortStatus(), column.isSortingEnabled());\n columnDef.setTemplateFunction(column.getTemplateFunction());\n columnDef.setFormatterFunction(column.getFormatterFunction());\n columnDef.width = +column.getWidth();\n return columnDef;\n }\n createFromActiveColumnEntity(activeColumn) {\n const columnDef = new ColumnDefinition(activeColumn.getField(), new ColumnDefinitionId(activeColumn.getId().toString()), activeColumn.getColumnConfig(), activeColumn.getColumnConfig().name, true,\n // remove,\n activeColumn.getDataType(), activeColumn.getView(), activeColumn.getAlign(), activeColumn.getHeader(), activeColumn.isCellEditingEnabled(), activeColumn.getColumnConfig().cssClasses, activeColumn.getColumnConfig().styles, activeColumn.getSortStatus(), activeColumn.isSortingEnabled());\n columnDef.setTemplateFunction(activeColumn.getTemplateFunction());\n columnDef.setFormatterFunction(activeColumn.getFormatterFunction());\n columnDef.width = +activeColumn.getWidth();\n return columnDef;\n }\n}\nclass CompositionReadModeRoot extends ReadModelRoot {\n ready;\n allColumns;\n activeColumns;\n width;\n resizeWidth;\n constructor(uid, ready, allColumns, activeColumns, width, resizeWidth) {\n super(uid);\n this.ready = ready;\n this.allColumns = allColumns;\n this.activeColumns = activeColumns;\n this.width = width;\n this.resizeWidth = resizeWidth;\n }\n getActiveColumns() {\n return this.activeColumns;\n }\n getAllColumns() {\n return this.allColumns;\n }\n getActiveHeaderColumns() {\n return this.getActiveColumns().map((column, index) => column.toHeaderCellTemplateWithContext(index));\n }\n getHeaderColumns() {\n return this.getAllColumns().map((column, index) => column.toHeaderCellTemplateWithContext(index));\n }\n getTemplateColumns() {\n return this.getActiveColumns().map(column => column.toContentCellTemplateWithAccessor());\n }\n getWidth() {\n return this.width;\n }\n getContainerWidth() {\n return +this.width - 2;\n }\n isReady() {\n return this.ready;\n }\n isResizeWidthEnabled() {\n return this.resizeWidth;\n }\n equals(composition) {\n return this.width === composition.width && this.resizeWidth === composition.resizeWidth && this.equalsByColumns(composition.allColumns);\n }\n equalsByColumns(columns) {\n return this.allColumns.length === columns.length;\n }\n}\nclass CompositionReadModelRootConverter {\n columnDefinitionFactory;\n constructor(columnDefinitionFactory) {\n this.columnDefinitionFactory = columnDefinitionFactory;\n }\n static services = [ColumnDefinitionFactory];\n convert(aggregate) {\n const ready = aggregate.isReady(),\n allColumns = aggregate.getColumns(),\n activeColumns = aggregate.getActiveColumns(),\n allColumnDefs = this.convertToColumnDef(allColumns),\n activeColumnDefs = this.convertActiveColumnsToColumnDef(activeColumns),\n width = aggregate.getWidth(),\n resizeWidth = aggregate.isResizeEnabled(),\n aggregateId = aggregate.getId();\n return new CompositionReadModeRoot(aggregateId.toReadModelRootId(), ready, allColumnDefs, activeColumnDefs, width, resizeWidth);\n }\n convertToColumnDef(columns) {\n const columnDefs = [];\n columns.forEach(column => {\n const columnDef = this.columnDefinitionFactory.create(column);\n columnDefs.push(columnDef);\n });\n return columnDefs;\n }\n convertActiveColumnsToColumnDef(activeColumns) {\n const columnDefs = [];\n activeColumns.forEach(column => {\n const columnDef = this.columnDefinitionFactory.create(column);\n columnDefs.push(columnDef);\n });\n return columnDefs;\n }\n}\nclass InMemoryCompositionReadStore extends InMemoryReadModelStore {\n inMemoryCompositionStore;\n compositionConverter;\n constructor(inMemoryCompositionStore, compositionConverter) {\n super(inMemoryCompositionStore);\n this.inMemoryCompositionStore = inMemoryCompositionStore;\n this.compositionConverter = compositionConverter;\n }\n static services = [InMemoryCompositionStore, CompositionReadModelRootConverter];\n toReadModel(aggregate) {\n return this.compositionConverter.convert(aggregate);\n }\n}\nclass CompositionReadModelRootRepository extends ReadModelRootRepository {\n constructor() {\n super();\n }\n}\nclass CompositionCreatedEvent extends CompositionDomainEvent {\n constructor(compositionId) {\n super(compositionId, null, 'CompositionCreatedEvent');\n }\n}\nclass InMemoryCompositionRepository extends CompositionReadModelRootRepository {\n inMemoryCompositionReadStore;\n compositionIdToComposition = new Map();\n composition$ = new HermesReplaySubject(1);\n constructor(inMemoryCompositionReadStore) {\n super();\n this.inMemoryCompositionReadStore = inMemoryCompositionReadStore;\n }\n static services = [InMemoryCompositionReadStore];\n on(compositionId) {\n return this.composition$.toObservable().pipe(hermesFilter(compositionIdToComposition => {\n const key = compositionId.getId();\n return compositionIdToComposition.has(key);\n }), hermesMap(compositionIdToComposition => compositionIdToComposition.get(compositionId.getId())));\n }\n find(compositionId) {\n const key = compositionId.getId();\n return Optional.of(this.compositionIdToComposition.get(key));\n }\n forEvents() {\n return [CompositionCreatedEvent, CompositionResizeWidthSetEvent, CompositionColumnsSetEvent, CompositionContainerWidthSetEvent, CompositionWidthSetEvent, CompositionColumnSetEnabledEvent, CompositionColumnMovedLeftEvent, CompositionColumnMovedRightEvent, CompositionChangeSortStatusEvent];\n }\n subscribe(event) {\n const aggregateId = event.getAggregateId();\n const optComposition = this.inMemoryCompositionReadStore.getById(aggregateId);\n optComposition.ifPresent(composition => {\n const key = composition.getId().toString();\n this.compositionIdToComposition.set(key, composition);\n this.composition$.next(this.compositionIdToComposition);\n });\n }\n}\nclass CreateCompositionCommandHandler {\n forCommand() {\n return CreateCompositionCommand;\n }\n}\nclass CompositionContainerWidthCalculator {\n MIN_COLUMN_WIDTH;\n constructor(MIN_COLUMN_WIDTH) {\n this.MIN_COLUMN_WIDTH = MIN_COLUMN_WIDTH;\n }\n calculateMinWidth(columnWidths) {\n const {\n staticColumns,\n fluidColumns\n } = this.segregateColumns(columnWidths);\n // TODO reduce\n let sum = 0;\n staticColumns.forEach(c => {\n sum += c.getWidth();\n });\n sum += fluidColumns.length * this.MIN_COLUMN_WIDTH;\n return sum;\n }\n segregateColumns(columns) {\n const staticColumns = columns.filter(columnWidth => columnWidth.isTypeNumber() && columnWidth.getWidth() > this.MIN_COLUMN_WIDTH),\n fluidColumns = columns.filter(columnWidth => {\n return columnWidth.isTypeAuto() || columnWidth.isTypePercentage() || columnWidth.isTypeNumber() && columnWidth.getWidth() <= this.MIN_COLUMN_WIDTH;\n });\n return {\n staticColumns: staticColumns,\n fluidColumns: fluidColumns\n };\n }\n}\nclass CompositionAggregateEvent extends AggregateEvent {}\nclass CompositionWidthSetAggregateEvent extends CompositionAggregateEvent {\n constructor(aggregateId) {\n super(aggregateId, 'CompositionWidthSetAggregateEvent');\n }\n toDomainEvent() {\n return new CompositionWidthSetEvent(this.getAggregateId());\n }\n}\nclass CompositionContainerWidthSetAggregateEvent extends CompositionAggregateEvent {\n containerWidth;\n constructor(compositionId, containerWidth) {\n super(compositionId, 'CompositionContainerWidthSetAggregateEvent');\n this.containerWidth = containerWidth;\n }\n toDomainEvent() {\n return new CompositionContainerWidthSetEvent(this.getAggregateId(), this.containerWidth);\n }\n}\nclass CompositionResizeWidthSetAggregateEvent extends CompositionAggregateEvent {\n constructor(compositionId) {\n super(compositionId, 'CompositionResizeWidthSetAggregateEvent');\n }\n toDomainEvent() {\n return new CompositionResizeWidthSetEvent(this.getAggregateId());\n }\n}\nclass CompositionColumnSetEnabledAggregateEvent extends CompositionAggregateEvent {\n activeColumns;\n constructor(aggregateId, activeColumns) {\n super(aggregateId, 'CompositionColumnSetEnabledAggregateEvent');\n this.activeColumns = activeColumns;\n }\n toDomainEvent() {\n return new CompositionColumnSetEnabledEvent(this.getAggregateId());\n }\n getActiveColumns() {\n return this.activeColumns;\n }\n}\nvar ColumnWidthType;\n(function (ColumnWidthType) {\n ColumnWidthType[ColumnWidthType[\"PERCENTAGE\"] = 0] = \"PERCENTAGE\";\n ColumnWidthType[ColumnWidthType[\"NUMBER\"] = 1] = \"NUMBER\";\n ColumnWidthType[ColumnWidthType[\"AUTO\"] = 2] = \"AUTO\";\n})(ColumnWidthType || (ColumnWidthType = {}));\nclass ColumnWidth {\n template;\n baseWidth;\n width;\n constructor(width) {\n this.baseWidth = width;\n this.setWidthAndType(width);\n }\n getWidth() {\n return this.width;\n }\n getColumnType() {\n return this.template;\n }\n isTypePercentage() {\n return this.template === ColumnWidthType.PERCENTAGE;\n }\n isTypeAuto() {\n return this.template === ColumnWidthType.AUTO;\n }\n isTypeNumber() {\n return this.template === ColumnWidthType.NUMBER;\n }\n setWidth(width) {\n this.width = width;\n }\n setWidthAndType(width) {\n if (width === undefined || width === null || width === 'auto') {\n this.template = ColumnWidthType.AUTO;\n this.setWidth(null);\n } else if (this.isPercentage(width)) {\n this.template = ColumnWidthType.PERCENTAGE;\n this.setWidth(this.percentageToNumber('' + width));\n } else if (this.isStringNumber(width)) {\n this.template = ColumnWidthType.NUMBER;\n this.setWidth(+width);\n } else {\n this.template = ColumnWidthType.NUMBER;\n this.setWidth(+width);\n }\n }\n clone() {\n return new ColumnWidth(this.baseWidth);\n }\n isPercentage(width) {\n return typeof width === 'string' && width[width.length - 1] === '%';\n }\n /**\n * Width needs to be in format '89%'\n * @param width\n */\n percentageToNumber(width) {\n return +width.slice(0, -1);\n }\n isStringNumber(width) {\n const widthAsNumber = +width;\n return Number.isNaN(widthAsNumber);\n }\n}\nclass CompositionWidthCalculator {\n source;\n width;\n MIN_COLUMN_WIDTH;\n columns;\n constructor(source, width, MIN_COLUMN_WIDTH) {\n this.source = source;\n this.width = width;\n this.MIN_COLUMN_WIDTH = MIN_COLUMN_WIDTH;\n this.columns = this.source.map(c => c.clone());\n }\n calculate() {\n let width = this.width,\n columns = Array.from(this.columns);\n // adjust min value\n this.adjustMinimalWidth(columns);\n // remove number columns\n const newColumns = [];\n columns.forEach((column, index) => {\n if (column.isTypeNumber()) {\n width -= column.getWidth();\n } else {\n newColumns.push(column);\n }\n });\n columns = newColumns;\n // split even auto columns\n if (columns.length !== 0) {\n const evenWidth = width / columns.length;\n columns.forEach((column, index) => {\n column.setWidth(evenWidth);\n });\n }\n // adjust number columns\n // let numberColumns = this.columns.filter((columnWidth: ColumnWidth) => columnWidth.isTypeNumber());\n //\n // // sort by min values\n // numberColumns.sort((columnOne: ColumnWidth, columnTwo: ColumnWidth) => {\n // \treturn columnOne.getWidth() - columnTwo.getWidth();\n // });\n //\n // numberColumns.forEach(() => {\n // });\n // this.adjustMinimalWidth(ColumnWidthType.NUMBER);\n //\n // this.adjustPercentageWidth();\n //\n // this.adjustAutoWidth();\n return this.columns;\n }\n adjustMinimalWidth(columns) {\n columns.forEach(column => {\n if (column.isTypeNumber()) {\n if (column.getWidth() < this.MIN_COLUMN_WIDTH) {\n column.setWidthAndType(this.MIN_COLUMN_WIDTH);\n }\n }\n });\n }\n adjustPercentageWidth() {\n const percentageColumns = this.columns.filter(columnWidth => columnWidth.isTypePercentage());\n for (const column of this.columns) {\n if (column.getColumnType() === ColumnWidthType.PERCENTAGE) {\n column.setWidth(this.width * column.getWidth() * 0.01);\n }\n }\n }\n adjustAutoWidth() {\n let leftWidth = this.width;\n const autoColumns = [];\n for (let i = 0; i < this.columns.length; i += 1) {\n const column = this.columns[i];\n if (column.getColumnType() !== ColumnWidthType.AUTO) {\n leftWidth -= column.getWidth();\n } else {\n autoColumns.push(column);\n }\n }\n if (autoColumns.length > 0) {\n const splitWidth = leftWidth / autoColumns.length;\n for (const column of autoColumns) {\n column.setWidth(splitWidth);\n }\n }\n }\n}\nclass ColumnWidthCollection {\n MIN_COLUMN_WIDTH;\n baseColumnWidths;\n columnWidths;\n width;\n constructor(MIN_COLUMN_WIDTH, columns = [], width = 100) {\n this.MIN_COLUMN_WIDTH = MIN_COLUMN_WIDTH;\n this.baseColumnWidths = columns.map(column => new ColumnWidth(column.width));\n this.columnWidths = columns.map(column => new ColumnWidth(column.width));\n this.setContainerWidth(width);\n this.calculate();\n }\n getColumnWidths() {\n return this.baseColumnWidths;\n }\n getColumnsWidth() {\n return this.width;\n }\n getWidths() {\n return this.columnWidths.map(c => c.getWidth());\n }\n getMinWidth() {\n const calculator = new CompositionContainerWidthCalculator(this.MIN_COLUMN_WIDTH);\n return calculator.calculateMinWidth(this.columnWidths);\n }\n setWidth(width) {\n this.setContainerWidth(width);\n this.calculate();\n }\n setColumns(columnConfigs) {\n this.baseColumnWidths = columnConfigs.map(column => new ColumnWidth(column.width));\n this.columnWidths = columnConfigs.map(column => new ColumnWidth(column.width));\n this.calculate();\n }\n getMinColumnWidth() {\n return this.MIN_COLUMN_WIDTH;\n }\n calculate() {\n if (this.baseColumnWidths && this.width) {\n const calculator = new CompositionWidthCalculator(this.baseColumnWidths, this.width, this.MIN_COLUMN_WIDTH);\n this.columnWidths = calculator.calculate();\n }\n }\n setContainerWidth(width) {\n if (this.getMinWidth() > width) {\n this.width = this.getMinWidth();\n } else {\n this.width = width;\n }\n this.calculate();\n }\n}\nclass CompositionChangeSortStatusAggregateEvent extends CompositionAggregateEvent {\n activeColumns;\n constructor(aggregateId, activeColumns) {\n super(aggregateId, 'CompositionChangeSortStatusAggregateEvent');\n this.activeColumns = activeColumns;\n }\n toDomainEvent() {\n return new CompositionChangeSortStatusEvent(this.getAggregateId(), this.activeColumns);\n }\n}\nclass ActiveColumnContainer {\n compositionId;\n MIN_COLUMN_WIDTH = 50;\n columns;\n /**\n * Columns taken from user config.\n * This should not be modified and it should be used as a reference point.\n */\n columnWidthCollection = new ColumnWidthCollection(this.MIN_COLUMN_WIDTH);\n constructor(compositionId, columns = [], gridWidth, columnConfigs) {\n this.compositionId = compositionId;\n this.columns = columns;\n if (gridWidth && columnConfigs) {\n this.columnWidthCollection = new ColumnWidthCollection(this.MIN_COLUMN_WIDTH, columnConfigs, gridWidth);\n }\n }\n getColumnWidths() {\n return this.columnWidthCollection.getColumnWidths();\n }\n // REMOVE\n getColumns() {\n return this.columns;\n }\n setWidth(width) {\n this.columnWidthCollection.setWidth(width);\n }\n addColumn(column, index) {\n this.columns.splice(index, 0, column);\n }\n removeColumn(index) {\n this.columns.splice(index, 1);\n }\n setColumns(columns, columnConfigs) {\n this.columns = columns;\n this.columnWidthCollection.setColumns(columnConfigs);\n const updatedWidths = this.columnWidthCollection.getWidths();\n this.columns.forEach((column, index) => {\n column.setWidth(updatedWidths[index]);\n });\n // TODO\n // this.addEvent(new ColumnsSetAggregateEvent(this.getId(), columns));\n }\n changeSort(sortParams) {\n this.columns.forEach(column => {\n column.setSortStatus(SortOrder.NONE);\n });\n for (const param of sortParams) {\n const fieldId = param.fieldId,\n direction = param.direction,\n sortStatus = direction ? SortOrder.ASC : SortOrder.DESC;\n const columns = this.columns.filter(column => {\n return column.getField().getId().getId() === fieldId.getId();\n });\n if (columns.length > 0) {\n columns.forEach(column => {\n column.setSortStatus(sortStatus);\n });\n }\n }\n return new CompositionChangeSortStatusAggregateEvent(this.getCompositionId(), this.columns);\n }\n moveLeft(columnId) {\n const index = this.findColumnIndex(columnId);\n this.move(index, index - 1);\n }\n moveRight(columnId) {\n const index = this.findColumnIndex(columnId);\n this.move(index, index + 1);\n }\n getMinColumnWidth() {\n return this.MIN_COLUMN_WIDTH;\n }\n move(fromIndex, toIndex) {\n if (!this.validateMoveIndex(fromIndex) || !this.validateMoveIndex(toIndex)) {\n return;\n }\n const column = this.columns[fromIndex];\n this.columns[fromIndex] = this.columns[toIndex];\n this.columns[toIndex] = column;\n }\n validateMoveIndex(index) {\n return index >= 0;\n }\n getCompositionId() {\n return this.compositionId;\n }\n findColumnIndex(columnId) {\n return this.columns.findIndex(c => c.getId().equals(columnId));\n }\n}\nclass ActiveColumnEntity extends ColumnEntity {\n constructor(columnId, columnField, header, align, view, config, presentation) {\n super(columnId, columnField, config, true, presentation, header, align, view, undefined);\n }\n static fromEntity(entity) {\n return new ActiveColumnEntity(entity.getId(), entity.getField(), entity.getHeader(), entity.getAlign(), entity.getView(), entity.getColumnConfig(), entity.getPresentation());\n }\n}\nclass ActiveColumnEntityConverter {\n convertMany(entities) {\n return entities.map(e => this.convert(e));\n }\n convert(entity) {\n return ActiveColumnEntity.fromEntity(entity);\n }\n}\nclass CompositionColumnMovedLeftAggregateEvent extends CompositionAggregateEvent {\n constructor(aggregateId) {\n super(aggregateId, 'CompositionColumnMovedLeftAggregateEvent');\n }\n toDomainEvent() {\n return new CompositionColumnMovedLeftEvent(this.getAggregateId());\n }\n}\nclass CompositionColumnMovedRightAggregateEvent extends CompositionAggregateEvent {\n constructor(aggregateId) {\n super(aggregateId, 'CompositionColumnMovedRightAggregateEvent');\n }\n toDomainEvent() {\n return new CompositionColumnMovedRightEvent(this.getAggregateId());\n }\n}\nclass ColumnsSetAggregateEvent extends CompositionAggregateEvent {\n constructor(compositionId) {\n super(compositionId, 'ColumnsSetAggregateEvent');\n }\n toDomainEvent() {\n return new CompositionColumnsSetEvent(this.getAggregateId());\n }\n}\nclass CompositionCreatedAggregateEvent extends CompositionAggregateEvent {\n constructor(compositionId) {\n super(compositionId, 'SchemaCreatedEvent');\n }\n toDomainEvent() {\n return new CompositionCreatedEvent(this.getAggregateId());\n }\n}\nconst emptyGroup = new Group(new GroupId('-1'), '', 100);\nclass CompositionAggregate extends AggregateRoot {\n allColumns = [];\n baseColumns;\n baseParams;\n /**\n * Value taken from user config [width]\n */\n width;\n containerInDOMWidth;\n resizeWidthEnabled = true;\n columnFactory;\n groupFactory;\n activeColumnContainer;\n activeColumnEntityConverter = new ActiveColumnEntityConverter();\n groups = new KeyMap();\n columnNameToGroupId = new Map();\n constructor(id, columnFactory, groupFactory, columnsParams = [], width, resizeWidth) {\n super(id, 'CompositionAggregate');\n const columnConfigs = columnsParams.map(param => param.getColumn());\n this.baseParams = columnsParams;\n this.baseColumns = columnConfigs;\n this.columnFactory = columnFactory;\n this.groupFactory = groupFactory;\n this.width = width;\n this.allColumns = this.columnFactory.create(columnsParams);\n const activeColumns = this.activeColumnEntityConverter.convertMany(this.getEnabledColumns());\n this.activeColumnContainer = new ActiveColumnContainer(this.getId(), activeColumns, width, columnConfigs);\n if (resizeWidth !== undefined && resizeWidth !== null) {\n this.resizeWidthEnabled = resizeWidth;\n }\n }\n createEvent() {\n return CompositionCreatedAggregateEvent;\n }\n // REMOVE\n getColumns() {\n return this.allColumns;\n }\n // REMOVE\n getActiveColumns() {\n return this.activeColumnContainer.getColumns();\n }\n // make private\n getWidth() {\n if (this.resizeWidthEnabled) {\n return this.containerInDOMWidth;\n } else {\n return this.width;\n }\n }\n // REMOVE\n isResizeEnabled() {\n return this.resizeWidthEnabled;\n }\n // REMOVE\n isReady() {\n return !!this.getWidth() && this.getActiveColumns().length > 0;\n }\n setGroups(configs) {\n for (let i = 0; i < configs.length; i += 1) {\n const config = configs[i];\n if (config.columns !== undefined) {\n const group = this.groupFactory.create(config);\n this.groups.set(group.id, group);\n config.columns.forEach((c, index) => {\n this.columnNameToGroupId.set(c.header, group.id);\n });\n } else {\n this.columnNameToGroupId.set(config.header, emptyGroup.id);\n }\n }\n }\n setColumns(params) {\n this.allColumns = this.columnFactory.create(params);\n const columnConfigs = params.map(param => param.getColumn());\n const activeColumns = this.activeColumnEntityConverter.convertMany(this.getEnabledColumns());\n this.activeColumnContainer.setColumns(activeColumns, columnConfigs);\n this.addEvent(new ColumnsSetAggregateEvent(this.getId()));\n }\n setContainerWidth(containerWidth) {\n this.setContainerWidthWithEvent(containerWidth);\n this.recalculateColumns();\n }\n setWidth(width) {\n this.setWidthWithEvent(width);\n this.setResizeWidthWithEvent(false);\n this.recalculateColumns();\n }\n setResizeWidth(enabled) {\n this.setResizeWidthWithEvent(enabled);\n }\n changeSort(sortParams) {\n this.addEvent(this.activeColumnContainer.changeSort(sortParams));\n }\n // DELEGATE\n enableColumn(columnId, enabled) {\n let enabledIndex = -1;\n this.allColumns.forEach((column, index) => {\n if (column.getId().getId() === columnId.getId()) {\n const prevState = column.isEnabled();\n column.setEnabled(enabled);\n if (prevState !== enabled) {\n enabledIndex = index;\n }\n }\n });\n if (enabledIndex > 0) {\n if (enabled) {\n // convert\n const columnToAdd = this.activeColumnEntityConverter.convert(this.allColumns[enabledIndex]);\n this.activeColumnContainer.addColumn(columnToAdd, enabledIndex);\n } else {\n this.activeColumnContainer.removeColumn(enabledIndex);\n }\n }\n this.recalculateColumns();\n this.addEvent(new CompositionColumnSetEnabledAggregateEvent(this.getId(), this.getActiveColumns()));\n }\n moveLeft(columnId) {\n const columnIndex = this.findColumnIndex(columnId);\n let nextLeft,\n nextLeftIndex = -1;\n for (let i = columnIndex - 1; i >= 0; i -= 1) {\n const leftColumn = this.allColumns[i];\n if (leftColumn.isEnabled()) {\n nextLeft = leftColumn;\n nextLeftIndex = i;\n break;\n }\n }\n if (nextLeft && nextLeftIndex >= 0 && columnIndex >= 0) {\n const column = this.allColumns[columnIndex];\n this.allColumns[columnIndex] = nextLeft;\n this.allColumns[nextLeftIndex] = column;\n }\n this.activeColumnContainer.moveLeft(columnId);\n this.addEvent(new CompositionColumnMovedLeftAggregateEvent(this.getId()));\n }\n moveRight(columnId) {\n const columnIndex = this.findColumnIndex(columnId);\n let nextRight,\n nextRightIndex = -1;\n for (let i = columnIndex + 1; i < this.allColumns.length; i += 1) {\n const rightColumn = this.allColumns[i];\n if (rightColumn.isEnabled()) {\n nextRight = rightColumn;\n nextRightIndex = i;\n break;\n }\n }\n if (nextRight && nextRightIndex >= 0 && columnIndex >= 0) {\n const column = this.allColumns[columnIndex];\n this.allColumns[columnIndex] = nextRight;\n this.allColumns[nextRightIndex] = column;\n }\n this.activeColumnContainer.moveRight(columnId);\n this.addEvent(new CompositionColumnMovedRightAggregateEvent(this.getId()));\n }\n recalculateColumns() {\n const activeColumns = this.activeColumnEntityConverter.convertMany(this.getEnabledColumns());\n this.activeColumnContainer.setColumns(activeColumns, activeColumns.map(c => c.getColumnConfig()));\n }\n // TODO Refactor\n setWidthWithEvent(width) {\n const calculator = new CompositionContainerWidthCalculator(this.getMinColumnWidth());\n const minWidth = calculator.calculateMinWidth(this.activeColumnContainer.getColumnWidths());\n if (minWidth > width) {\n this.width = minWidth;\n } else {\n this.width = width;\n }\n this.activeColumnContainer.setWidth(this.getWidth());\n this.addEvent(new CompositionWidthSetAggregateEvent(this.getId()));\n }\n // TODO Refactor\n setContainerWidthWithEvent(containerWidth) {\n const calculator = new CompositionContainerWidthCalculator(this.getMinColumnWidth());\n const minWidth = calculator.calculateMinWidth(this.activeColumnContainer.getColumnWidths());\n if (minWidth > containerWidth) {\n this.containerInDOMWidth = minWidth;\n } else {\n this.containerInDOMWidth = containerWidth;\n }\n this.activeColumnContainer.setWidth(this.getWidth());\n this.addEvent(new CompositionContainerWidthSetAggregateEvent(this.getId(), containerWidth));\n }\n setResizeWidthWithEvent(enabled) {\n this.resizeWidthEnabled = enabled;\n this.activeColumnContainer.setWidth(this.getWidth());\n this.addEvent(new CompositionResizeWidthSetAggregateEvent(this.getId()));\n }\n // REMOVE -> move to allColumnsContainer\n getEnabledColumns() {\n return this.allColumns.filter(c => c.isEnabled());\n }\n findColumnIndex(columnId) {\n return this.allColumns.findIndex(column => column.getId().equals(columnId));\n }\n getMinColumnWidth() {\n return this.activeColumnContainer.getMinColumnWidth();\n }\n}\nclass CompositionAggregateFactory extends AggregateFactory {\n columnFactory;\n groupFactory;\n constructor(columnFactory, groupFactory) {\n super();\n this.columnFactory = columnFactory;\n this.groupFactory = groupFactory;\n }\n static services = [ColumnEntityFactory, CompositionGroupFactory];\n create(id) {\n return new CompositionAggregate(id, this.columnFactory, this.groupFactory);\n }\n}\nconst compositionKey = 'CompositionAggregate';\nclass CompositionDomainModule {\n defineAggregate() {\n return {\n aggregateKey: compositionKey,\n createCommandHandler: CreateCompositionCommandHandler,\n factory: CompositionAggregateFactory,\n repository: InMemoryCompositionAggregateRepository\n };\n }\n registerKey() {\n return compositionKey;\n }\n registerProviders(container) {\n container.provide(InMemoryCompositionAggregateStore);\n container.provide(CompositionAggregateRepository, InMemoryCompositionAggregateRepository);\n container.provide(CompositionDispatcher);\n container.provide(ColumnEntityFactory);\n container.provide(ColumnPresentationConverter);\n container.provide(CompositionEventConverter);\n container.provide(ColumnFieldFactory);\n container.provide(CompositionGroupFactory);\n container.provide(ColumnHighlightArchive);\n container.provide(InMemoryCompositionStore);\n container.provide(InMemoryCompositionReadStore);\n container.provide(CompositionReadModelRootRepository, InMemoryCompositionRepository);\n }\n registerCommandHandlers() {\n return [SetColumnsCommandHandler, SetCompositionWidthCommandHandler, SetCompositionResizeWidthCommandHandler, SetCompositionContainerWidthCommandHandler, CompositionSetColumnEnabledCommandHandler, CompositionChangeSortStatusCommandHandler, CompositionMoveLeftColumnCommandHandler, CompositionMoveRightColumnCommandHandler, SetGroupsCommandHandler];\n }\n registerDomainEventHandler() {\n return [];\n }\n registerMultiDomainEventHandler() {\n return [CompositionChangeSortStatusEventHandler];\n }\n}\nclass FunctionViewComponent extends PureComponent {\n sanitizer;\n element;\n safeHTML;\n constructor(sanitizer, elRef) {\n super(elRef);\n this.sanitizer = sanitizer;\n this.addClassToHost('gui-h-full');\n this.addClassToHost('gui-w-full');\n }\n ngOnChanges() {\n this.safeHTML = this.sanitizer.bypassSecurityTrustHtml(this.element.value);\n }\n getSelectorName() {\n return 'gui-function-view';\n }\n static ɵfac = function FunctionViewComponent_Factory(t) {\n return new (t || FunctionViewComponent)(i0.ɵɵdirectiveInject(i1.DomSanitizer), i0.ɵɵdirectiveInject(i0.ElementRef));\n };\n static ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: FunctionViewComponent,\n selectors: [[\"gui-function-view\"]],\n inputs: {\n element: \"element\"\n },\n features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature],\n decls: 1,\n vars: 1,\n consts: [[1, \"gui-h-full\", \"gui-flex\", \"gui-items-center\", 3, \"innerHTML\"]],\n template: function FunctionViewComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"div\", 0);\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"innerHTML\", ctx.safeHTML, i0.ɵɵsanitizeHtml);\n }\n },\n encapsulation: 2,\n changeDetection: 0\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(FunctionViewComponent, [{\n type: Component,\n args: [{\n selector: 'gui-function-view',\n template: `\n\n\t\t
\n\t\t
\n\n\t`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n }]\n }], () => [{\n type: i1.DomSanitizer\n }, {\n type: i0.ElementRef\n }], {\n element: [{\n type: Input\n }]\n });\n})();\nclass PercentageViewComponent extends PureComponent {\n value;\n constructor(elementRef) {\n super(elementRef);\n }\n getSelectorName() {\n return 'gui-percentage-view';\n }\n static ɵfac = function PercentageViewComponent_Factory(t) {\n return new (t || PercentageViewComponent)(i0.ɵɵdirectiveInject(i0.ElementRef));\n };\n static ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: PercentageViewComponent,\n selectors: [[\"gui-percentage-view\", \"value\", \"\"]],\n inputs: {\n value: \"value\"\n },\n features: [i0.ɵɵInheritDefinitionFeature],\n attrs: _c8,\n decls: 1,\n vars: 1,\n template: function PercentageViewComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtext(0);\n }\n if (rf & 2) {\n i0.ɵɵtextInterpolate1(\" \", ctx.value, \" % \");\n }\n },\n encapsulation: 2,\n changeDetection: 0\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(PercentageViewComponent, [{\n type: Component,\n args: [{\n selector: 'gui-percentage-view[value]',\n template: `\n\t\t{{ value }} %\n\t`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n }]\n }], () => [{\n type: i0.ElementRef\n }], {\n value: [{\n type: Input\n }]\n });\n})();\nclass BarViewComponent extends PureComponent {\n value;\n showPercentage = false;\n width;\n constructor(elementRef) {\n super(elementRef);\n }\n ngOnChanges(changes) {\n ifChanged(changes.value, () => {\n this.width = this.value > 100 ? 100 : this.value;\n });\n }\n getSelectorName() {\n return 'gui-bar-view';\n }\n static ɵfac = function BarViewComponent_Factory(t) {\n return new (t || BarViewComponent)(i0.ɵɵdirectiveInject(i0.ElementRef));\n };\n static ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: BarViewComponent,\n selectors: [[\"gui-bar-view\", \"value\", \"\"]],\n inputs: {\n value: \"value\",\n showPercentage: \"showPercentage\"\n },\n features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature],\n attrs: _c8,\n decls: 3,\n vars: 3,\n consts: [[1, \"gui-percentage-bar\"], [1, \"gui-percentage\"], [3, \"value\", 4, \"ngIf\"], [3, \"value\"]],\n template: function BarViewComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 0);\n i0.ɵɵelement(1, \"div\", 1);\n i0.ɵɵtemplate(2, BarViewComponent_gui_percentage_view_2_Template, 1, 1, \"gui-percentage-view\", 2);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n i0.ɵɵadvance();\n i0.ɵɵstyleProp(\"width\", ctx.width, \"%\");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.showPercentage);\n }\n },\n dependencies: [i4.NgIf, PercentageViewComponent],\n encapsulation: 2,\n changeDetection: 0\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(BarViewComponent, [{\n type: Component,\n args: [{\n selector: 'gui-bar-view[value]',\n template: `\n\t\t
\n\t\t\t
\n\t\t\t
\n\t\t\t\n\t\t\t\n\t\t
\n\t`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n }]\n }], () => [{\n type: i0.ElementRef\n }], {\n value: [{\n type: Input\n }],\n showPercentage: [{\n type: Input\n }]\n });\n})();\nclass SafePipe {\n sanitizer;\n constructor(sanitizer) {\n this.sanitizer = sanitizer;\n }\n transform(value, type) {\n switch (type) {\n case 'html':\n return this.sanitizer.bypassSecurityTrustHtml(value);\n case 'style':\n return this.sanitizer.bypassSecurityTrustStyle(value);\n case 'script':\n return this.sanitizer.bypassSecurityTrustScript(value);\n case 'url':\n return this.sanitizer.bypassSecurityTrustUrl(value);\n case 'resourceUrl':\n return this.sanitizer.bypassSecurityTrustResourceUrl(value);\n default:\n throw new Error(`Invalid safe type specified: ${type}`);\n }\n }\n static ɵfac = function SafePipe_Factory(t) {\n return new (t || SafePipe)(i0.ɵɵdirectiveInject(i1.DomSanitizer, 16));\n };\n static ɵpipe = /* @__PURE__ */i0.ɵɵdefinePipe({\n name: \"guiSafe\",\n type: SafePipe,\n pure: true\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(SafePipe, [{\n type: Pipe,\n args: [{\n name: 'guiSafe'\n }]\n }], () => [{\n type: i1.DomSanitizer\n }], null);\n})();\nclass TextViewComponent extends PureComponent {\n value;\n isHtml = false;\n constructor(isBold, isItalic, elementRef) {\n super(elementRef);\n if (isBold !== null) {\n this.addClassToHost('gui-bold');\n }\n if (isItalic !== null) {\n this.addClassToHost('gui-italic');\n }\n }\n ngOnChanges() {\n this.isHtml = this.value.type === CellValueType.HTML;\n }\n getSelectorName() {\n return 'gui-text-view';\n }\n static ɵfac = function TextViewComponent_Factory(t) {\n return new (t || TextViewComponent)(i0.ɵɵinjectAttribute('bold'), i0.ɵɵinjectAttribute('italic'), i0.ɵɵdirectiveInject(i0.ElementRef));\n };\n static ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: TextViewComponent,\n selectors: [[\"gui-view-text\", \"value\", \"\"]],\n inputs: {\n value: \"value\"\n },\n features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature],\n attrs: _c8,\n decls: 3,\n vars: 2,\n consts: [[\"text\", \"\"], [4, \"ngIf\", \"ngIfElse\"], [3, \"innerHTML\"]],\n template: function TextViewComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, TextViewComponent_ng_container_0_Template, 3, 4, \"ng-container\", 1)(1, TextViewComponent_ng_template_1_Template, 2, 1, \"ng-template\", null, 0, i0.ɵɵtemplateRefExtractor);\n }\n if (rf & 2) {\n const text_r2 = i0.ɵɵreference(2);\n i0.ɵɵproperty(\"ngIf\", ctx.isHtml)(\"ngIfElse\", text_r2);\n }\n },\n dependencies: [i4.NgIf, SafePipe],\n encapsulation: 2,\n changeDetection: 0\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(TextViewComponent, [{\n type: Component,\n args: [{\n selector: 'gui-view-text[value]',\n template: `\n\n\t\t\n\t\t\t\n\t\t\n\n\t\t\n\t\t\t\n\t\t\t\t{{value.value}}\n\t\t\t\n\t\t\n\t`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n }]\n }], () => [{\n type: undefined,\n decorators: [{\n type: Attribute,\n args: ['bold']\n }]\n }, {\n type: undefined,\n decorators: [{\n type: Attribute,\n args: ['italic']\n }]\n }, {\n type: i0.ElementRef\n }], {\n value: [{\n type: Input\n }]\n });\n})();\nclass HtmlViewComponent extends PureComponent {\n sanitizer;\n element;\n safeHTML;\n constructor(sanitizer, elRef) {\n super(elRef);\n this.sanitizer = sanitizer;\n this.addClassToHost('gui-h-full');\n this.addClassToHost('gui-w-full');\n }\n ngOnChanges() {\n this.safeHTML = this.sanitizer.bypassSecurityTrustHtml(this.element.value);\n }\n getSelectorName() {\n return 'gui-html-view';\n }\n static ɵfac = function HtmlViewComponent_Factory(t) {\n return new (t || HtmlViewComponent)(i0.ɵɵdirectiveInject(i1.DomSanitizer), i0.ɵɵdirectiveInject(i0.ElementRef));\n };\n static ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: HtmlViewComponent,\n selectors: [[\"gui-html-view\"]],\n inputs: {\n element: \"element\"\n },\n features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature],\n decls: 1,\n vars: 1,\n consts: [[1, \"gui-h-full\", \"gui-flex\", \"gui-items-center\", 3, \"innerHTML\"]],\n template: function HtmlViewComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"div\", 0);\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"innerHTML\", ctx.safeHTML, i0.ɵɵsanitizeHtml);\n }\n },\n encapsulation: 2,\n changeDetection: 0\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(HtmlViewComponent, [{\n type: Component,\n args: [{\n selector: 'gui-html-view',\n template: `\n\n\t\t
\n\t\t
\n\n\t`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n }]\n }], () => [{\n type: i1.DomSanitizer\n }, {\n type: i0.ElementRef\n }], {\n element: [{\n type: Input\n }]\n });\n})();\nclass ViewTemplatesComponent {\n textTemplate;\n numberTemplate;\n chipTemplate;\n linkTemplate;\n imageTemplate;\n checkboxTemplate;\n boldTemplate;\n italicTemplate;\n customTemplate;\n functionTemplate;\n htmlTemplate;\n dateTemplate;\n barTemplate;\n percentageBarTemplate;\n percentageTemplate;\n getTemplate(view) {\n switch (view) {\n case CellView.TEXT:\n return this.textTemplate;\n case CellView.NUMBER:\n return this.numberTemplate;\n case CellView.CHIP:\n return this.chipTemplate;\n case CellView.LINK:\n return this.linkTemplate;\n case CellView.IMAGE:\n return this.imageTemplate;\n case CellView.CHECKBOX:\n return this.checkboxTemplate;\n case CellView.BOLD:\n return this.boldTemplate;\n case CellView.ITALIC:\n return this.italicTemplate;\n case CellView.CUSTOM:\n return this.customTemplate;\n case CellView.FUNCTION:\n return this.functionTemplate;\n case CellView.HTML:\n return this.htmlTemplate;\n case CellView.DATE:\n return this.dateTemplate;\n case CellView.BAR:\n return this.barTemplate;\n case CellView.PERCENTAGE_BAR:\n return this.percentageBarTemplate;\n case CellView.PERCENTAGE:\n return this.percentageTemplate;\n default:\n return this.textTemplate;\n }\n }\n static ɵfac = function ViewTemplatesComponent_Factory(t) {\n return new (t || ViewTemplatesComponent)();\n };\n static ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: ViewTemplatesComponent,\n selectors: [[\"ng-component\"]],\n viewQuery: function ViewTemplatesComponent_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(_c9, 7, TemplateRef);\n i0.ɵɵviewQuery(_c10, 7, TemplateRef);\n i0.ɵɵviewQuery(_c11, 7, TemplateRef);\n i0.ɵɵviewQuery(_c12, 7, TemplateRef);\n i0.ɵɵviewQuery(_c13, 7, TemplateRef);\n i0.ɵɵviewQuery(_c14, 7, TemplateRef);\n i0.ɵɵviewQuery(_c15, 7, TemplateRef);\n i0.ɵɵviewQuery(_c16, 7, TemplateRef);\n i0.ɵɵviewQuery(_c17, 7, TemplateRef);\n i0.ɵɵviewQuery(_c18, 7, TemplateRef);\n i0.ɵɵviewQuery(_c19, 7, TemplateRef);\n i0.ɵɵviewQuery(_c20, 7, TemplateRef);\n i0.ɵɵviewQuery(_c21, 7, TemplateRef);\n i0.ɵɵviewQuery(_c22, 7, TemplateRef);\n i0.ɵɵviewQuery(_c23, 7, TemplateRef);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.textTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.numberTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.chipTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.linkTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.imageTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.checkboxTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.boldTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.italicTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.customTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.functionTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.htmlTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.dateTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.barTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.percentageBarTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.percentageTemplate = _t.first);\n }\n },\n decls: 30,\n vars: 0,\n consts: [[\"text\", \"\"], [\"number\", \"\"], [\"chip\", \"\"], [\"link\", \"\"], [\"image\", \"\"], [\"checkbox\", \"\"], [\"bold\", \"\"], [\"italic\", \"\"], [\"custom\", \"\"], [\"function\", \"\"], [\"html\", \"\"], [\"date\", \"\"], [\"bar\", \"\"], [\"percentageBar\", \"\"], [\"percentage\", \"\"], [3, \"value\"], [1, \"gui-cell-number\"], [\"gui-button\", \"\", \"link\", \"true\", 3, \"href\"], [3, \"src\"], [1, \"gui-cell-boolean\"], [3, \"checked\", \"disabled\"], [\"bold\", \"\", 3, \"value\"], [\"italic\", \"\", 3, \"value\"], [3, \"element\"], [1, \"gui-view-text\"], [3, \"value\", \"showPercentage\"]],\n template: function ViewTemplatesComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, ViewTemplatesComponent_ng_template_0_Template, 1, 1, \"ng-template\", null, 0, i0.ɵɵtemplateRefExtractor)(2, ViewTemplatesComponent_ng_template_2_Template, 2, 1, \"ng-template\", null, 1, i0.ɵɵtemplateRefExtractor)(4, ViewTemplatesComponent_ng_template_4_Template, 2, 1, \"ng-template\", null, 2, i0.ɵɵtemplateRefExtractor)(6, ViewTemplatesComponent_ng_template_6_Template, 2, 2, \"ng-template\", null, 3, i0.ɵɵtemplateRefExtractor)(8, ViewTemplatesComponent_ng_template_8_Template, 1, 1, \"ng-template\", null, 4, i0.ɵɵtemplateRefExtractor)(10, ViewTemplatesComponent_ng_template_10_Template, 2, 2, \"ng-template\", null, 5, i0.ɵɵtemplateRefExtractor)(12, ViewTemplatesComponent_ng_template_12_Template, 1, 1, \"ng-template\", null, 6, i0.ɵɵtemplateRefExtractor)(14, ViewTemplatesComponent_ng_template_14_Template, 1, 1, \"ng-template\", null, 7, i0.ɵɵtemplateRefExtractor)(16, ViewTemplatesComponent_ng_template_16_Template, 1, 1, \"ng-template\", null, 8, i0.ɵɵtemplateRefExtractor)(18, ViewTemplatesComponent_ng_template_18_Template, 1, 1, \"ng-template\", null, 9, i0.ɵɵtemplateRefExtractor)(20, ViewTemplatesComponent_ng_template_20_Template, 1, 1, \"ng-template\", null, 10, i0.ɵɵtemplateRefExtractor)(22, ViewTemplatesComponent_ng_template_22_Template, 3, 4, \"ng-template\", null, 11, i0.ɵɵtemplateRefExtractor)(24, ViewTemplatesComponent_ng_template_24_Template, 1, 2, \"ng-template\", null, 12, i0.ɵɵtemplateRefExtractor)(26, ViewTemplatesComponent_ng_template_26_Template, 1, 2, \"ng-template\", null, 13, i0.ɵɵtemplateRefExtractor)(28, ViewTemplatesComponent_ng_template_28_Template, 1, 1, \"ng-template\", null, 14, i0.ɵɵtemplateRefExtractor);\n }\n },\n dependencies: [i1$1.FabricChipComponent, i1$1.FabricCheckboxComponent, i1$1.FabricButtonComponent, FunctionViewComponent, BarViewComponent, PercentageViewComponent, TextViewComponent, HtmlViewComponent, i4.DatePipe],\n encapsulation: 2\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(ViewTemplatesComponent, [{\n type: Component,\n args: [{\n template: `\n\n\t\t\n\t\t\t\n\t\t\n\n\t\t\n\t\t\t\n\t\t\t\t{{ element.value }}\n\t\t\t\n\t\t\n\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\n\t\t\n\t\t\t\n\t\t\n\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\n\t\t\n\t\t\t\n\t\t\n\n\t\t\n\t\t\t\n\t\t\n\n\t\t\n\t\t\t{{ element.value }}\n\t\t\n\n\t\t\n\t\t\t\n\t\t\n\n\t\t\n\t\t\t\n\t\t\n\n\t\t\n\t\t\t{{ element.value | date: 'dd/MM/yyyy' }}\n\t\t\n\n\t\t\n\t\t\t\n\t\t\n\n\t\t\n\t\t\t\n\t\t\n\n\t\t\n\t\t\t\n\t\t\n\n\t`\n }]\n }], null, {\n textTemplate: [{\n type: ViewChild,\n args: ['text', {\n read: TemplateRef,\n static: true\n }]\n }],\n numberTemplate: [{\n type: ViewChild,\n args: ['number', {\n read: TemplateRef,\n static: true\n }]\n }],\n chipTemplate: [{\n type: ViewChild,\n args: ['chip', {\n read: TemplateRef,\n static: true\n }]\n }],\n linkTemplate: [{\n type: ViewChild,\n args: ['link', {\n read: TemplateRef,\n static: true\n }]\n }],\n imageTemplate: [{\n type: ViewChild,\n args: ['image', {\n read: TemplateRef,\n static: true\n }]\n }],\n checkboxTemplate: [{\n type: ViewChild,\n args: ['checkbox', {\n read: TemplateRef,\n static: true\n }]\n }],\n boldTemplate: [{\n type: ViewChild,\n args: ['bold', {\n read: TemplateRef,\n static: true\n }]\n }],\n italicTemplate: [{\n type: ViewChild,\n args: ['italic', {\n read: TemplateRef,\n static: true\n }]\n }],\n customTemplate: [{\n type: ViewChild,\n args: ['custom', {\n read: TemplateRef,\n static: true\n }]\n }],\n functionTemplate: [{\n type: ViewChild,\n args: ['function', {\n read: TemplateRef,\n static: true\n }]\n }],\n htmlTemplate: [{\n type: ViewChild,\n args: ['html', {\n read: TemplateRef,\n static: true\n }]\n }],\n dateTemplate: [{\n type: ViewChild,\n args: ['date', {\n read: TemplateRef,\n static: true\n }]\n }],\n barTemplate: [{\n type: ViewChild,\n args: ['bar', {\n read: TemplateRef,\n static: true\n }]\n }],\n percentageBarTemplate: [{\n type: ViewChild,\n args: ['percentageBar', {\n read: TemplateRef,\n static: true\n }]\n }],\n percentageTemplate: [{\n type: ViewChild,\n args: ['percentage', {\n read: TemplateRef,\n static: true\n }]\n }]\n });\n})();\nclass TemplateFactory {\n templatesComponentDefinition;\n componentFactoryResolver;\n templates = new Map();\n templatesComponent = null;\n constructor(templatesComponentDefinition, componentFactoryResolver) {\n this.templatesComponentDefinition = templatesComponentDefinition;\n this.componentFactoryResolver = componentFactoryResolver;\n this.createTemplatesComponent();\n }\n getTemplates() {\n return this.templates;\n }\n destroy() {\n if (this.templatesComponent) {\n this.templatesComponent.destroy();\n this.templatesComponent = null;\n }\n }\n createTemplatesComponent() {\n const componentFactory = this.componentFactoryResolver.resolveComponentFactory(this.templatesComponentDefinition);\n const injector = Injector.create({\n providers: []\n });\n this.templatesComponent = componentFactory.create(injector);\n this.generateMap();\n }\n generateMap() {\n this.generateMapKeys().forEach(type => {\n this.findAndSetTemplate(type);\n });\n }\n findAndSetTemplate(dt) {\n const template = this.templatesComponent.instance.getTemplate(dt);\n this.templates.set(dt, template);\n }\n}\nclass ViewTemplateFactory extends TemplateFactory {\n constructor(componentFactoryResolver) {\n super(ViewTemplatesComponent, componentFactoryResolver);\n }\n static services = [ComponentFactoryResolver];\n generateMapKeys() {\n return Object.keys(CellView).map(key => CellView[key]);\n }\n static ɵfac = function ViewTemplateFactory_Factory(t) {\n return new (t || ViewTemplateFactory)(i0.ɵɵinject(i0.ComponentFactoryResolver));\n };\n static ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: ViewTemplateFactory,\n factory: ViewTemplateFactory.ɵfac\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(ViewTemplateFactory, [{\n type: Injectable\n }], () => [{\n type: i0.ComponentFactoryResolver\n }], null);\n})();\nclass ViewTemplateRepository {\n columnTemplateFactory;\n constructor(columnTemplateFactory) {\n this.columnTemplateFactory = columnTemplateFactory;\n }\n static services = [ViewTemplateFactory];\n findTemplate(view) {\n const typeToTemplate = this.columnTemplateFactory.getTemplates();\n return typeToTemplate.get(view);\n }\n static ɵfac = function ViewTemplateRepository_Factory(t) {\n return new (t || ViewTemplateRepository)(i0.ɵɵinject(ViewTemplateFactory));\n };\n static ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: ViewTemplateRepository,\n factory: ViewTemplateRepository.ɵfac\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(ViewTemplateRepository, [{\n type: Injectable\n }], () => [{\n type: ViewTemplateFactory\n }], null);\n})();\nvar EditEventType;\n(function (EditEventType) {\n EditEventType[EditEventType[\"SUBMIT\"] = 0] = \"SUBMIT\";\n EditEventType[EditEventType[\"BLUR\"] = 1] = \"BLUR\";\n EditEventType[EditEventType[\"CANCEL\"] = 2] = \"CANCEL\";\n})(EditEventType || (EditEventType = {}));\nclass EditCommunicationComponent extends SmartComponent {\n value;\n valueChanges;\n status;\n focus;\n parent;\n ENTER_KEY_CODE = 13;\n ESC_KEY_CODE = 27;\n constructor(changeDetectorRef, elementRef) {\n super(changeDetectorRef, elementRef);\n }\n submit() {\n this.emitStatus(EditEventType.SUBMIT);\n }\n cancel() {\n this.emitStatus(EditEventType.CANCEL);\n }\n emitStatus(status) {\n if (this.status) {\n this.status.emit(status);\n }\n }\n static ɵfac = function EditCommunicationComponent_Factory(t) {\n return new (t || EditCommunicationComponent)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i0.ElementRef));\n };\n static ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: EditCommunicationComponent,\n inputs: {\n value: \"value\",\n valueChanges: \"valueChanges\",\n status: \"status\",\n focus: \"focus\",\n parent: \"parent\"\n },\n features: [i0.ɵɵInheritDefinitionFeature]\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(EditCommunicationComponent, [{\n type: Directive\n }], () => [{\n type: i0.ChangeDetectorRef\n }, {\n type: i0.ElementRef\n }], {\n value: [{\n type: Input\n }],\n valueChanges: [{\n type: Input\n }],\n status: [{\n type: Input\n }],\n focus: [{\n type: Input\n }],\n parent: [{\n type: Input\n }]\n });\n})();\nclass InputEditTemplateComponent extends EditCommunicationComponent {\n formBuilder;\n inputRef;\n filterForm;\n filterFieldName = 'phrase';\n constructor(changeDetectorRef, elementRef, formBuilder) {\n super(changeDetectorRef, elementRef);\n this.formBuilder = formBuilder;\n this.filterForm = this.formBuilder.group({\n [this.filterFieldName]: ['']\n });\n }\n ngOnChanges(changes) {\n if (changes.value !== undefined) {\n this.filterForm.get(this.filterFieldName).setValue(this.value);\n }\n }\n ngOnInit() {\n this.observeChanges();\n }\n ngAfterViewInit() {\n const inputElement = this.inputRef.nativeElement;\n this.focusField(inputElement);\n this.emitValueChange(inputElement.value);\n hermesFromEvent(inputElement, 'blur').pipe(this.takeUntil()).subscribe(() => {\n this.unsubscribe();\n this.submit();\n });\n const keyup$ = hermesFromEvent(inputElement, 'keyup');\n keyup$.pipe(hermesFilter(e => e.keyCode === this.ENTER_KEY_CODE), this.takeUntil()).subscribe(() => {\n this.unsubscribe();\n this.submit();\n });\n keyup$.pipe(hermesFilter(e => e.keyCode === this.ESC_KEY_CODE), this.takeUntil()).subscribe(() => {\n this.unsubscribe();\n this.cancel();\n });\n }\n focusField(inputElement) {\n if (this.focus) {\n inputElement.focus();\n }\n }\n observeChanges() {\n fromRxJsObservable(\n // @ts-ignore\n this.filterForm.controls[this.filterFieldName].valueChanges).pipe(this.takeUntil()).subscribe(value => {\n this.emitValueChange(value);\n });\n }\n emitValueChange(value) {\n if (this.valueChanges) {\n this.valueChanges.emit(value);\n }\n }\n static ɵfac = function InputEditTemplateComponent_Factory(t) {\n return new (t || InputEditTemplateComponent)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i1$2.FormBuilder));\n };\n static ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: InputEditTemplateComponent,\n viewQuery: function InputEditTemplateComponent_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(_c24, 7);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.inputRef = _t.first);\n }\n },\n features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature]\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(InputEditTemplateComponent, [{\n type: Directive\n }], () => [{\n type: i0.ChangeDetectorRef\n }, {\n type: i0.ElementRef\n }, {\n type: i1$2.FormBuilder\n }], {\n inputRef: [{\n type: ViewChild,\n args: ['input', {\n static: true\n }]\n }]\n });\n})();\nclass StringEditTemplateComponent extends InputEditTemplateComponent {\n constructor(changeDetectorRef, elementRef, fb) {\n super(changeDetectorRef, elementRef, fb);\n }\n focusField(inputElement) {\n if (this.focus) {\n inputElement.focus();\n inputElement.setSelectionRange(0, inputElement.value.length);\n }\n }\n getSelectorName() {\n return 'gui-string-edit';\n }\n static ɵfac = function StringEditTemplateComponent_Factory(t) {\n return new (t || StringEditTemplateComponent)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i1$2.FormBuilder));\n };\n static ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: StringEditTemplateComponent,\n selectors: [[\"gui-string-edit\"]],\n features: [i0.ɵɵInheritDefinitionFeature],\n decls: 3,\n vars: 2,\n consts: [[\"input\", \"\"], [3, \"formGroup\"], [\"type\", \"type\", 1, \"gui-input\", 3, \"formControlName\"]],\n template: function StringEditTemplateComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"form\", 1);\n i0.ɵɵelement(1, \"input\", 2, 0);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"formGroup\", ctx.filterForm);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"formControlName\", ctx.filterFieldName);\n }\n },\n dependencies: [i1$2.ɵNgNoValidate, i1$2.DefaultValueAccessor, i1$2.NgControlStatus, i1$2.NgControlStatusGroup, i1$2.FormGroupDirective, i1$2.FormControlName],\n encapsulation: 2,\n changeDetection: 0\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(StringEditTemplateComponent, [{\n type: Component,\n args: [{\n selector: 'gui-string-edit',\n template: `\n\n\t\t
\n\t\t\t\n\t\t
\n\n\t`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n }]\n }], () => [{\n type: i0.ChangeDetectorRef\n }, {\n type: i0.ElementRef\n }, {\n type: i1$2.FormBuilder\n }], null);\n})();\nclass NumberEditTemplateComponent extends InputEditTemplateComponent {\n constructor(changeDetectorRef, elementRef, fb) {\n super(changeDetectorRef, elementRef, fb);\n }\n getSelectorName() {\n return 'gui-number-edit';\n }\n static ɵfac = function NumberEditTemplateComponent_Factory(t) {\n return new (t || NumberEditTemplateComponent)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i1$2.FormBuilder));\n };\n static ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: NumberEditTemplateComponent,\n selectors: [[\"gui-number-edit\"]],\n features: [i0.ɵɵInheritDefinitionFeature],\n decls: 3,\n vars: 2,\n consts: [[\"input\", \"\"], [3, \"formGroup\"], [\"type\", \"number\", 1, \"gui-input\", 3, \"formControlName\"]],\n template: function NumberEditTemplateComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"form\", 1);\n i0.ɵɵelement(1, \"input\", 2, 0);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"formGroup\", ctx.filterForm);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"formControlName\", ctx.filterFieldName);\n }\n },\n dependencies: [i1$2.ɵNgNoValidate, i1$2.DefaultValueAccessor, i1$2.NumberValueAccessor, i1$2.NgControlStatus, i1$2.NgControlStatusGroup, i1$2.FormGroupDirective, i1$2.FormControlName],\n encapsulation: 2,\n changeDetection: 0\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NumberEditTemplateComponent, [{\n type: Component,\n args: [{\n selector: 'gui-number-edit',\n template: `\n\n\t\t
\n\t\t\t\n\t\t
\n\n\t`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n }]\n }], () => [{\n type: i0.ChangeDetectorRef\n }, {\n type: i0.ElementRef\n }, {\n type: i1$2.FormBuilder\n }], null);\n})();\nclass BooleanEditTemplateComponent extends EditCommunicationComponent {\n changeDetectorRef;\n checkboxRef;\n filterFieldName = 'booleanEdit';\n constructor(changeDetectorRef, elementRef) {\n super(changeDetectorRef, elementRef);\n this.changeDetectorRef = changeDetectorRef;\n }\n toggle(changed) {\n this.valueChanges.emit(changed);\n this.submit();\n }\n getSelectorName() {\n return 'gui-boolean-edit';\n }\n static ɵfac = function BooleanEditTemplateComponent_Factory(t) {\n return new (t || BooleanEditTemplateComponent)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i0.ElementRef));\n };\n static ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: BooleanEditTemplateComponent,\n selectors: [[\"gui-boolean-edit\"]],\n viewQuery: function BooleanEditTemplateComponent_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(_c14, 7, ElementRef);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.checkboxRef = _t.first);\n }\n },\n features: [i0.ɵɵInheritDefinitionFeature],\n decls: 3,\n vars: 2,\n consts: [[\"checkbox\", \"\"], [1, \"gui-cell-boolean\"], [3, \"changed\", \"checked\", \"name\"]],\n template: function BooleanEditTemplateComponent_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"span\", 1)(1, \"gui-checkbox\", 2, 0);\n i0.ɵɵlistener(\"changed\", function BooleanEditTemplateComponent_Template_gui_checkbox_changed_1_listener($event) {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx.toggle($event));\n });\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"checked\", ctx.value)(\"name\", ctx.filterFieldName);\n }\n },\n dependencies: [i1$1.FabricCheckboxComponent],\n encapsulation: 2,\n changeDetection: 0\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(BooleanEditTemplateComponent, [{\n type: Component,\n args: [{\n selector: 'gui-boolean-edit',\n template: `\n\n\t\t\n\t\t\t\n\t\t\t\n\t\t\n\n\t`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n }]\n }], () => [{\n type: i0.ChangeDetectorRef\n }, {\n type: i0.ElementRef\n }], {\n checkboxRef: [{\n type: ViewChild,\n args: ['checkbox', {\n read: ElementRef,\n static: true\n }]\n }]\n });\n})();\nclass DateEditTemplateComponent extends EditCommunicationComponent {\n changeDetectorRef;\n datePickerRef;\n filterFieldName = 'dateEdit';\n opened = false;\n localStreamCloser = new StreamCloser();\n constructor(changeDetectorRef, elementRef) {\n super(changeDetectorRef, elementRef);\n this.changeDetectorRef = changeDetectorRef;\n }\n ngAfterViewInit() {\n const inputElement = this.datePickerRef.nativeElement.querySelector('.gui-date-picker-input');\n const keyup$ = hermesFromEvent(inputElement, 'keyup');\n keyup$.pipe(hermesFilter(e => e.keyCode === this.ENTER_KEY_CODE), this.localStreamCloser.takeUntil()).subscribe(() => {\n this.localStreamCloser.unsubscribe();\n this.submit();\n });\n keyup$.pipe(hermesFilter(e => e.keyCode === this.ESC_KEY_CODE), this.localStreamCloser.takeUntil()).subscribe(() => {\n this.localStreamCloser.unsubscribe();\n this.cancel();\n });\n }\n ngOnDestroy() {\n this.localStreamCloser.unsubscribe();\n super.ngOnDestroy();\n }\n toggle(changed) {\n this.valueChanges.emit(changed);\n }\n dialogOpened(opened) {\n this.opened = opened;\n if (!opened) {\n this.localStreamCloser.unsubscribe();\n this.submit();\n }\n }\n getSelectorName() {\n return 'gui-date-edit';\n }\n static ɵfac = function DateEditTemplateComponent_Factory(t) {\n return new (t || DateEditTemplateComponent)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i0.ElementRef));\n };\n static ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: DateEditTemplateComponent,\n selectors: [[\"gui-date-edit\"]],\n viewQuery: function DateEditTemplateComponent_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(_c25, 7, ElementRef);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.datePickerRef = _t.first);\n }\n },\n features: [i0.ɵɵInheritDefinitionFeature],\n decls: 2,\n vars: 5,\n consts: [[\"datepicker\", \"\"], [3, \"dialogOpened\", \"dateSelected\", \"selectDate\", \"name\", \"openDialog\", \"onlyDialog\", \"parentElement\"]],\n template: function DateEditTemplateComponent_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"gui-date-picker\", 1, 0);\n i0.ɵɵlistener(\"dialogOpened\", function DateEditTemplateComponent_Template_gui_date_picker_dialogOpened_0_listener($event) {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx.dialogOpened($event));\n })(\"dateSelected\", function DateEditTemplateComponent_Template_gui_date_picker_dateSelected_0_listener($event) {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx.toggle($event));\n });\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"selectDate\", ctx.value)(\"name\", ctx.filterFieldName)(\"openDialog\", true)(\"onlyDialog\", false)(\"parentElement\", ctx.parent);\n }\n },\n dependencies: [i1$1.FabricDatePickerComponent],\n encapsulation: 2,\n changeDetection: 0\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DateEditTemplateComponent, [{\n type: Component,\n args: [{\n selector: 'gui-date-edit',\n template: `\n\n\t\t\n\t\t\n\n\t`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n }]\n }], () => [{\n type: i0.ChangeDetectorRef\n }, {\n type: i0.ElementRef\n }], {\n datePickerRef: [{\n type: ViewChild,\n args: ['datepicker', {\n read: ElementRef,\n static: true\n }]\n }]\n });\n})();\nclass EditTemplatesComponent {\n stringTemplate;\n numberTemplate;\n booleanTemplate;\n dateTemplate;\n emptyTemplate;\n getTemplate(dataType) {\n switch (dataType) {\n case DataType.STRING:\n return this.stringTemplate;\n case DataType.NUMBER:\n return this.numberTemplate;\n case DataType.BOOLEAN:\n return this.booleanTemplate;\n case DataType.DATE:\n return this.dateTemplate;\n default:\n return this.emptyTemplate;\n }\n }\n static ɵfac = function EditTemplatesComponent_Factory(t) {\n return new (t || EditTemplatesComponent)();\n };\n static ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: EditTemplatesComponent,\n selectors: [[\"ng-component\"]],\n viewQuery: function EditTemplatesComponent_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(_c26, 7, TemplateRef);\n i0.ɵɵviewQuery(_c10, 7, TemplateRef);\n i0.ɵɵviewQuery(_c27, 7, TemplateRef);\n i0.ɵɵviewQuery(_c20, 7, TemplateRef);\n i0.ɵɵviewQuery(_c28, 7, TemplateRef);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.stringTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.numberTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.booleanTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.dateTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.emptyTemplate = _t.first);\n }\n },\n decls: 10,\n vars: 0,\n consts: [[\"string\", \"\"], [\"number\", \"\"], [\"boolean\", \"\"], [\"date\", \"\"], [\"empty\", \"\"], [3, \"valueChanges\", \"value\", \"status\", \"focus\"], [3, \"valueChanges\", \"value\", \"status\", \"focus\", \"parent\"]],\n template: function EditTemplatesComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, EditTemplatesComponent_ng_template_0_Template, 1, 4, \"ng-template\", null, 0, i0.ɵɵtemplateRefExtractor)(2, EditTemplatesComponent_ng_template_2_Template, 1, 4, \"ng-template\", null, 1, i0.ɵɵtemplateRefExtractor)(4, EditTemplatesComponent_ng_template_4_Template, 1, 4, \"ng-template\", null, 2, i0.ɵɵtemplateRefExtractor)(6, EditTemplatesComponent_ng_template_6_Template, 1, 5, \"ng-template\", null, 3, i0.ɵɵtemplateRefExtractor)(8, EditTemplatesComponent_ng_template_8_Template, 0, 0, \"ng-template\", null, 4, i0.ɵɵtemplateRefExtractor);\n }\n },\n dependencies: [StringEditTemplateComponent, NumberEditTemplateComponent, BooleanEditTemplateComponent, DateEditTemplateComponent],\n encapsulation: 2\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(EditTemplatesComponent, [{\n type: Component,\n args: [{\n template: `\n\n\t\t\n\t\t\t\n\t\t\t\n\t\t\n\n\t\t\n\t\t\t\n\t\t\t\n\t\t\n\n\t\t\n\t\t\t\n\t\t\t\n\t\t\n\n\t\t\n\t\t\t\n\t\t\t\n\t\t\n\n\t\t\n\n\t\t\n\n\t`\n }]\n }], null, {\n stringTemplate: [{\n type: ViewChild,\n args: ['string', {\n read: TemplateRef,\n static: true\n }]\n }],\n numberTemplate: [{\n type: ViewChild,\n args: ['number', {\n read: TemplateRef,\n static: true\n }]\n }],\n booleanTemplate: [{\n type: ViewChild,\n args: ['boolean', {\n read: TemplateRef,\n static: true\n }]\n }],\n dateTemplate: [{\n type: ViewChild,\n args: ['date', {\n read: TemplateRef,\n static: true\n }]\n }],\n emptyTemplate: [{\n type: ViewChild,\n args: ['empty', {\n read: TemplateRef,\n static: true\n }]\n }]\n });\n})();\nclass EditTemplateFactory extends TemplateFactory {\n constructor(componentFactoryResolver) {\n super(EditTemplatesComponent, componentFactoryResolver);\n }\n static services = [ComponentFactoryResolver];\n generateMapKeys() {\n return Object.keys(DataType).map(key => DataType[key]);\n }\n static ɵfac = function EditTemplateFactory_Factory(t) {\n return new (t || EditTemplateFactory)(i0.ɵɵinject(i0.ComponentFactoryResolver));\n };\n static ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: EditTemplateFactory,\n factory: EditTemplateFactory.ɵfac\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(EditTemplateFactory, [{\n type: Injectable\n }], () => [{\n type: i0.ComponentFactoryResolver\n }], null);\n})();\nclass EditTemplateRepository {\n editTemplateFactory;\n constructor(editTemplateFactory) {\n this.editTemplateFactory = editTemplateFactory;\n }\n static services = [EditTemplateFactory];\n findTemplate(dataType) {\n const typeToTemplate = this.editTemplateFactory.getTemplates();\n return typeToTemplate.get(dataType);\n }\n static ɵfac = function EditTemplateRepository_Factory(t) {\n return new (t || EditTemplateRepository)(i0.ɵɵinject(EditTemplateFactory));\n };\n static ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: EditTemplateRepository,\n factory: EditTemplateRepository.ɵfac\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(EditTemplateRepository, [{\n type: Injectable\n }], () => [{\n type: EditTemplateFactory\n }], null);\n})();\nclass GroupCollection {\n groups;\n showGroups;\n constructor(groups, showGroups) {\n this.groups = groups;\n this.showGroups = showGroups;\n }\n getGroups() {\n return this.groups;\n }\n isVisible() {\n return this.showGroups;\n }\n}\nclass CompositionGroupArchive extends AggregateArchive {\n static default = new GroupCollection([], false);\n constructor() {\n super(CompositionGroupArchive.default);\n }\n}\nclass CompositionDomainPublisher extends CompositionPublisher {\n compositionDispatcher;\n compositionGroupRepository;\n columnHighlightArchive;\n constructor(compositionDispatcher, compositionGroupRepository, columnHighlightArchive) {\n super();\n this.compositionDispatcher = compositionDispatcher;\n this.compositionGroupRepository = compositionGroupRepository;\n this.columnHighlightArchive = columnHighlightArchive;\n }\n static services = [CompositionDispatcher, CompositionGroupArchive, ColumnHighlightArchive];\n create(compositionId) {\n this.compositionDispatcher.create(compositionId);\n }\n setColumns(params, compositionId) {\n this.compositionDispatcher.setColumns(compositionId, params);\n }\n setGroups(configs, compositionId) {\n // this.compositionGroupRepository.next(compositionId, CompositionGroupRepository.default);\n this.compositionDispatcher.setGroups(compositionId, configs);\n }\n setWidth(width, compositionId) {\n this.compositionDispatcher.setWidth(compositionId, width);\n }\n setContainerWidth(width, compositionId) {\n this.compositionDispatcher.setContainerWidth(compositionId, width);\n }\n setResizeWidth(enabled, compositionId) {\n this.compositionDispatcher.setResizeWidth(compositionId, enabled);\n }\n enableColumn(columnDefinitionId, compositionId) {\n this.compositionDispatcher.setColumnEnabled(compositionId, this.toColumnId(columnDefinitionId), true);\n }\n disableColumn(columnDefinitionId, compositionId) {\n this.compositionDispatcher.setColumnEnabled(compositionId, this.toColumnId(columnDefinitionId), false);\n }\n moveLeft(columnDefinitionId, compositionId) {\n this.compositionDispatcher.moveLeft(compositionId, this.toColumnId(columnDefinitionId));\n }\n moveRight(columnDefinitionId, compositionId) {\n this.compositionDispatcher.moveRight(compositionId, this.toColumnId(columnDefinitionId));\n }\n highlightColumn(columnDefinitionId, compositionId) {\n this.columnHighlightArchive.toggle(compositionId, new ColumnId(columnDefinitionId.getId()));\n }\n toColumnId(defId) {\n return new ColumnId(defId.getId());\n }\n}\nclass CompositionDomainWarehouse extends CompositionWarehouse {\n compositionRepository;\n compositionGroupArchive;\n columnHighlightArchive;\n constructor(compositionRepository, compositionGroupArchive, columnHighlightArchive) {\n super();\n this.compositionRepository = compositionRepository;\n this.compositionGroupArchive = compositionGroupArchive;\n this.columnHighlightArchive = columnHighlightArchive;\n }\n static services = [CompositionReadModelRootRepository, CompositionGroupArchive, ColumnHighlightArchive];\n onWidth(compositionId) {\n return this.compositionRepository.on(compositionId).pipe(hermesMap(composition => composition.getWidth()));\n }\n onContainerWidth(compositionId) {\n return this.compositionRepository.on(compositionId).pipe(hermesMap(composition => composition.getContainerWidth()));\n }\n onWidthForEachColumn(compositionId) {\n return this.compositionRepository.on(compositionId).pipe(hermesMap(composition => composition.getAllColumns().map(c => c.width)));\n }\n onHeaderColumns(compositionId) {\n return this.compositionRepository.on(compositionId).pipe(hermesMap(composition => composition.getActiveHeaderColumns()));\n }\n onAllColumns(compositionId) {\n return this.compositionRepository.on(compositionId).pipe(hermesMap(composition => composition.getHeaderColumns()));\n }\n onSortOrder(fieldId, compositionId) {\n return this.compositionRepository.on(compositionId).pipe(hermesMap(composition => composition.getActiveHeaderColumns()), hermesMap(columns => {\n return columns.filter(c => c.getFieldId().equals(fieldId));\n }), hermesFilter(columns => {\n return columns.length > 0;\n }), hermesMap(columns => columns[0].getSortStatus()));\n }\n onTemplateColumns(compositionId) {\n return this.compositionRepository.on(compositionId).pipe(hermesMap(composition => composition.getTemplateColumns()));\n }\n onResizeWidth(compositionId) {\n return this.compositionRepository.on(compositionId).pipe(hermesMap(composition => composition.isResizeWidthEnabled()));\n }\n onGroups(compositionId) {\n return this.compositionGroupArchive.on(compositionId);\n }\n onHighlightedColumn(columnId, compositionId) {\n return this.columnHighlightArchive.on(compositionId).pipe(hermesMap(manager => manager.isHighlighted(columnId)));\n }\n findColumnNames(compositionId) {\n let names = [];\n this.compositionRepository.find(compositionId).ifPresent(value => {\n names = value.getAllColumns().map(cd => cd.getName());\n });\n return names;\n }\n}\nclass CompositionDomainEventRepository extends CompositionEventRepository {\n constructor() {\n super();\n }\n onColumnsChanged(compositionId) {\n return this.onEvent(compositionId, CompositionColumnsSetEvent);\n }\n onContainerWidthChanged(compositionId) {\n return this.onEvent(compositionId, CompositionContainerWidthSetEvent).pipe(hermesMap(event => {\n return event.getPayload();\n }), hermesFilter(width => !!width));\n }\n}\nclass DomainColumnAutoConfigurator extends ColumnAutoConfigurator {\n configure(source) {\n if (source !== undefined && source !== null && Array.isArray(source) && source.length === 0) {\n return [];\n }\n const rawItem = source[0];\n return Object.keys(rawItem).map((key, index) => {\n return this.toColumnConfig(key, rawItem);\n });\n }\n toColumnConfig(key, rawItem) {\n return {\n field: this.getField(key),\n header: this.getHeader(key),\n type: this.getType(key, rawItem)\n };\n }\n getField(key) {\n return key;\n }\n getHeader(key) {\n return key[0].toUpperCase() + key.slice(1);\n }\n getType(key, rawItem) {\n if (typeof rawItem[key] === 'string') {\n return DataType.STRING;\n } else if (typeof rawItem[key] === 'number') {\n return DataType.NUMBER;\n } else if (rawItem[key] instanceof Date) {\n return DataType.DATE;\n } else if (typeof rawItem[key] === 'boolean') {\n return DataType.BOOLEAN;\n } else {\n return DataType.UNKNOWN;\n }\n }\n}\nclass CompositionApiModule {\n registerProviders(container) {\n container.provide(InMemoryCompositionReadStore);\n container.provide(CompositionReadModelRootRepository, InMemoryCompositionRepository);\n container.provide(ColumnDefinitionFactory);\n container.provide(ViewTemplateRepository);\n container.provide(ViewTemplateFactory);\n container.provide(EditTemplateFactory);\n container.provide(EditTemplateRepository);\n container.provide(InMemoryCompositionStore);\n container.provide(CompositionReadModelRootConverter);\n container.provide(CompositionGroupArchive);\n container.provide(CompositionPublisher, CompositionDomainPublisher);\n container.provide(CompositionWarehouse, CompositionDomainWarehouse);\n container.provide(CompositionEventRepository, CompositionDomainEventRepository);\n container.provide(ColumnAutoConfigurator, DomainColumnAutoConfigurator);\n }\n}\nfunction initializeComposition() {\n new DomainInitializer(new CompositionApiModule(), new CompositionDomainModule()).init();\n}\nclass CompositionTemplateWarehouse {\n compositionWarehouse;\n viewTemplateRepository;\n editTemplateRepository;\n constructor(compositionWarehouse, viewTemplateRepository, editTemplateRepository) {\n this.compositionWarehouse = compositionWarehouse;\n this.viewTemplateRepository = viewTemplateRepository;\n this.editTemplateRepository = editTemplateRepository;\n }\n onHeaderCols(compositionId) {\n return this.compositionWarehouse.onHeaderColumns(compositionId).pipe(hermesMap(arr => {\n return arr.map(context => {\n let headerTemplate;\n if (typeof context.getHeader() === 'function') {\n headerTemplate = this.findViewTemplate(CellView.FUNCTION);\n } else {\n headerTemplate = this.findViewTemplate(CellView.HTML);\n }\n const editTemplate = this.findEditTemplate(context.getDataType());\n return new CompositionTemplateModel(headerTemplate, editTemplate, context);\n });\n }));\n }\n onAll(compositionId) {\n return this.compositionWarehouse.onAllColumns(compositionId).pipe(hermesMap(arr => {\n return arr.map(context => {\n let headerTemplate;\n if (typeof context.getHeader() === 'function') {\n headerTemplate = this.findViewTemplate(CellView.FUNCTION);\n } else {\n headerTemplate = this.findViewTemplate(CellView.HTML);\n }\n const editTemplate = this.findEditTemplate(context.getDataType());\n return new CompositionTemplateModel(headerTemplate, editTemplate, context);\n });\n }));\n }\n // CellTemplateWithAccessor\n onTemplateCols(compositionId) {\n return this.compositionWarehouse.onTemplateColumns(compositionId).pipe(hermesMap(arr => {\n return arr.map(context => {\n let cellTemplate;\n if (context.getCellView() === CellView.NG_TEMPLATE) {\n cellTemplate = context.getColumnConfig().templateRef;\n } else {\n cellTemplate = this.findViewTemplate(context.getCellView());\n }\n const editTemplate = this.findEditTemplate(context.getDataType());\n return new CompositionAccessorModel(cellTemplate, editTemplate, context);\n });\n }));\n }\n findViewTemplate(view) {\n if (view === CellView.FUNCTION) {\n return this.viewTemplateRepository.findTemplate(CellView.FUNCTION);\n } else {\n return this.viewTemplateRepository.findTemplate(view);\n }\n }\n findEditTemplate(dataType) {\n return this.editTemplateRepository.findTemplate(dataType);\n }\n static ɵfac = function CompositionTemplateWarehouse_Factory(t) {\n return new (t || CompositionTemplateWarehouse)(i0.ɵɵinject(CompositionWarehouse), i0.ɵɵinject(ViewTemplateRepository), i0.ɵɵinject(EditTemplateRepository));\n };\n static ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: CompositionTemplateWarehouse,\n factory: CompositionTemplateWarehouse.ɵfac\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(CompositionTemplateWarehouse, [{\n type: Injectable\n }], () => [{\n type: CompositionWarehouse\n }, {\n type: ViewTemplateRepository\n }, {\n type: EditTemplateRepository\n }], null);\n})();\nclass SummariesEventRepository extends EventRepository {\n constructor() {\n super();\n }\n}\nclass StructureSummariesPanelComponent extends SmartComponent {\n structureSummariesEventRepository;\n translationService;\n sourceWarehouse;\n enabled;\n state = inject(GuiState);\n compositionId = inject(CompositionId);\n structureId = inject(StructureId);\n formationWarehouse = inject(FormationWarehouse);\n compositionTemplateWarehouse = inject(CompositionTemplateWarehouse);\n headerColumns$ = this.compositionTemplateWarehouse.onHeaderCols(this.compositionId);\n state$ = this.state.select();\n checkboxSelection$ = this.selectCheckboxSelection();\n constructor(changeDetectorRef, elementRef, structureSummariesEventRepository, translationService, sourceWarehouse) {\n super(changeDetectorRef, elementRef);\n this.structureSummariesEventRepository = structureSummariesEventRepository;\n this.translationService = translationService;\n this.sourceWarehouse = sourceWarehouse;\n this.addClassToHost('gui-flex');\n this.state.connect('summariesTranslations', this.selectSummariesTranslations());\n this.state.connect('sourceEmpty', this.selectSourceEmpty());\n this.state.connect('summaries', this.selectSummaries());\n }\n isSummariesTypePresent(summaries) {\n return summaries !== undefined && summaries !== null;\n }\n getSelectorName() {\n return 'gui-structure-summaries-panel';\n }\n selectCheckboxSelection() {\n return this.formationWarehouse.onType(this.structureId).pipe(hermesMap(type => {\n return type === RowSelectionType.CHECKBOX;\n }));\n }\n selectSourceEmpty() {\n return this.sourceWarehouse.onItemsSize(this.structureId).pipe(hermesMap(size => {\n return size === 0;\n }));\n }\n selectSummariesTranslations() {\n return this.translationService.onTranslation().pipe(hermesMap(translation => {\n return new SummariesTranslations(translation.summariesDistinctValuesTooltip, translation.summariesAverageTooltip, translation.summariesMinTooltip, translation.summariesMaxTooltip, translation.summariesMedTooltip, translation.summariesCountTooltip);\n }));\n }\n selectSummaries() {\n return this.structureSummariesEventRepository.onSummariesChanged(this.structureId.toReadModelRootId()).pipe(hermesMap(event => {\n return event.getSummaries();\n }));\n }\n static ɵfac = function StructureSummariesPanelComponent_Factory(t) {\n return new (t || StructureSummariesPanelComponent)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(SummariesEventRepository), i0.ɵɵdirectiveInject(TranslationFacade), i0.ɵɵdirectiveInject(SourceWarehouse));\n };\n static ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: StructureSummariesPanelComponent,\n selectors: [[\"div\", \"gui-structure-summaries-panel\", \"\", \"enabled\", \"\"]],\n inputs: {\n enabled: \"enabled\"\n },\n features: [i0.ɵɵProvidersFeature([GuiState]), i0.ɵɵInheritDefinitionFeature],\n attrs: _c29,\n decls: 1,\n vars: 1,\n consts: [[4, \"guiLet\"], [4, \"ngIf\"], [\"class\", \"gui-structure-summaries-cell gui-row-checkbox gui-flex gui-justify-between\\n\\t gui-overflow-hidden gui-relative gui-py-0 gui-px-6 gui-box-border\\n\\t gui-leading-4 gui-whitespace-nowrap gui-overflow-ellipsis\", 4, \"ngIf\"], [\"class\", \"gui-structure-summaries-cell\", 3, \"width\", 4, \"ngFor\", \"ngForOf\"], [1, \"gui-structure-summaries-cell\", \"gui-row-checkbox\", \"gui-flex\", \"gui-justify-between\", \"gui-overflow-hidden\", \"gui-relative\", \"gui-py-0\", \"gui-px-6\", \"gui-box-border\", \"gui-leading-4\", \"gui-whitespace-nowrap\", \"gui-overflow-ellipsis\"], [1, \"gui-structure-summaries-cell\"], [\"class\", \"gui-structure-summaries-value\", 4, \"ngIf\"], [1, \"gui-structure-summaries-value\"], [3, \"gui-tooltip\"], [1, \"gui-summaries-value\"]],\n template: function StructureSummariesPanelComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, StructureSummariesPanelComponent_ng_container_0_Template, 2, 1, \"ng-container\", 0);\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"guiLet\", ctx.state$);\n }\n },\n dependencies: [i4.NgForOf, i4.NgIf, i1$1.FabricTooltipDirective, GuiLetDirective, TranslationPipe, GuiPushPipe],\n encapsulation: 2,\n changeDetection: 0\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(StructureSummariesPanelComponent, [{\n type: Component,\n args: [{\n selector: 'div[gui-structure-summaries-panel][enabled]',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [GuiState],\n template: \"\\n\\t\\n\\n\\t\\t
\\n\\t\\t
\\n\\n\\t\\t
\\n\\n\\t\\t\\t\\n\\n\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t{{'summariesCount' | guiTranslate}}\\n\\t\\t\\t\\t\\t{{ localState.summaries.get(column.getFieldId().getId()).count }}\\n\\t\\t\\t\\t
\\n\\n\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t{{'summariesDist' | guiTranslate}}\\n\\t\\t\\t\\t\\t{{ localState.summaries.get(column.getFieldId().getId()).distinct }}\\n\\t\\t\\t\\t
\\n\\n\\t\\t\\t\\t
\\n\\n\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t{{'summariesSum' | guiTranslate}}\\n\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t{{ localState.summaries.get(column.getFieldId().getId()).sum }}\\n\\t\\t\\t\\t
\\n\\n\\t\\t\\t\\t
\\n\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t{{'summariesAvg' | guiTranslate}}\\n\\t\\t\\t\\t\\t{{ localState.summaries.get(column.getFieldId().getId()).average }}\\n\\t\\t\\t\\t
\\n\\n\\t\\t\\t\\t
\\n\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t{{'summariesMin' | guiTranslate}}\\n\\t\\t\\t\\t\\t\\t\\n\\n\\t\\t\\t\\t\\t{{ localState.summaries.get(column.getFieldId().getId()).min }}\\n\\t\\t\\t\\t
\\n\\n\\t\\t\\t\\t
\\n\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\n\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t{{'summariesMax' | guiTranslate}}\\n\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t{{ localState.summaries.get(column.getFieldId().getId()).max }}\\n\\t\\t\\t\\t
\\n\\n\\t\\t\\t\\t
\\n\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\n\\n\\t\\t\\t\\t\\t{{'summariesMed' | guiTranslate}}\\n\\t\\t\\t\\t\\t{{ localState.summaries.get(column.getFieldId().getId()).median }}\\n\\t\\t\\t\\t
\\n\\n\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t{{'summariesTruthy' | guiTranslate}}\\n\\t\\t\\t\\t\\t{{ localState.summaries.get(column.getFieldId().getId()).truthy }}\\n\\t\\t\\t\\t
\\n\\n\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t{{'summariesFalsy' | guiTranslate}}\\n\\t\\t\\t\\t\\t{{ localState.summaries.get(column.getFieldId().getId()).falsy }}\\n\\t\\t\\t\\t
\\n\\n\\t\\t\\t
\\n\\t\\t
\\n\\n\\t
\\n
\\n\"\n }]\n }], () => [{\n type: i0.ChangeDetectorRef\n }, {\n type: i0.ElementRef\n }, {\n type: SummariesEventRepository\n }, {\n type: TranslationFacade\n }, {\n type: SourceWarehouse\n }], {\n enabled: [{\n type: Input,\n args: [{\n required: true\n }]\n }]\n });\n})();\nclass StructureInfoModalComponent extends StaticComponent {\n constructor(elementRef, changeDetectorRef) {\n super(elementRef, changeDetectorRef);\n }\n getSelectorName() {\n return 'gui-info-dialog';\n }\n static ɵfac = function StructureInfoModalComponent_Factory(t) {\n return new (t || StructureInfoModalComponent)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef));\n };\n static ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: StructureInfoModalComponent,\n selectors: [[\"div\", \"gui-info-dialog\", \"\"]],\n features: [i0.ɵɵInheritDefinitionFeature],\n attrs: _c30,\n decls: 31,\n vars: 0,\n consts: [[1, \"gui-structure-info-modal\", \"gui-flex\", \"gui-flex-col\", \"gui-p-0\", \"gui-text-lg\", \"gui-w-full\"], [1, \"gui-text-3xl\", \"gui-mb-8\", \"gui-font-bold\"], [1, \"gui-text-xl\", \"gui-mb-18\", \"gui-font-bold\"], [1, \"gui-quote\", \"gui-text-2xl\", \"gui-italic\", \"gui-font-light\"], [1, \"gui-m-0\", \"gui-px-0\", \"gui-pt-10\", \"gui-pb-6\"], [1, \"gui-font-bold\"], [1, \"gui-m-0\", \"gui-pl-9\", \"gui-list-none\"], [\"href\", \"https://generic-ui.com/\", 1, \"gui-mb-6\", \"gui-no-underline\", \"gui-leading-6\"], [\"href\", \"https://generic-ui.com/guide/\", 1, \"gui-mb-6\", \"gui-no-underline\", \"gui-leading-6\"], [\"href\", \"https://github.com/generic-ui/generic-ui/tree/master/ngx-grid\", 1, \"gui-mb-6\", \"gui-no-underline\", \"gui-leading-6\"], [\"href\", \"https://github.com/generic-ui/generic-ui/issues\", 1, \"gui-mb-6\", \"gui-no-underline\", \"gui-leading-6\"]],\n template: function StructureInfoModalComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 0)(1, \"p\", 1);\n i0.ɵɵtext(2, \" Generic UI Grid \");\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(3, \"p\", 2);\n i0.ɵɵtext(4, \" ver. 0.21.0 \");\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(5, \"p\", 3);\n i0.ɵɵtext(6, \" \\\"The best way to success is to help others succeed.\\\" \");\n i0.ɵɵelementEnd();\n i0.ɵɵelement(7, \"br\");\n i0.ɵɵelementStart(8, \"section\", 4)(9, \"p\", 5);\n i0.ɵɵtext(10, \"Links:\");\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(11, \"ul\", 6)(12, \"li\")(13, \"a\", 7);\n i0.ɵɵtext(14, \"Website\");\n i0.ɵɵelementEnd()();\n i0.ɵɵelementStart(15, \"li\")(16, \"a\", 8);\n i0.ɵɵtext(17, \"Documentation\");\n i0.ɵɵelementEnd()();\n i0.ɵɵelementStart(18, \"li\")(19, \"a\", 9);\n i0.ɵɵtext(20, \"Github\");\n i0.ɵɵelementEnd()()();\n i0.ɵɵelement(21, \"br\");\n i0.ɵɵelementStart(22, \"p\", 5);\n i0.ɵɵtext(23, \"Feedback:\");\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(24, \"ul\", 6)(25, \"li\")(26, \"a\", 10);\n i0.ɵɵtext(27, \"Report a bug\");\n i0.ɵɵelementEnd()();\n i0.ɵɵelementStart(28, \"li\")(29, \"a\", 10);\n i0.ɵɵtext(30, \"Suggest an idea\");\n i0.ɵɵelementEnd()()()()();\n }\n },\n encapsulation: 2,\n changeDetection: 0\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(StructureInfoModalComponent, [{\n type: Component,\n args: [{\n selector: 'div[gui-info-dialog]',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n template: \"
\\n\\n\\t

\\n\\t\\tGeneric UI Grid\\n\\t

\\n\\n\\n\\t

\\n\\t\\tver. 0.21.0\\n\\t

\\n\\n\\t

\\n\\t\\t\\\"The best way to success is to help others succeed.\\\"\\n\\t

\\n\\n\\t
\\n\\n\\t
\\n\\t\\t

Links:

\\n\\t\\t
    \\n\\n\\t\\t\\t
  • \\n\\t\\t\\t\\tWebsite\\n\\t\\t\\t
  • \\n\\t\\t\\t
  • \\n\\t\\t\\t\\tDocumentation\\n\\t\\t\\t
  • \\n\\t\\t\\t
  • \\n\\t\\t\\t\\tGithub\\n\\t\\t\\t
  • \\n\\t\\t
\\n\\n\\t\\t
\\n\\n\\t\\t

Feedback:

\\n\\t\\t\\n\\t
\\n
\\n\"\n }]\n }], () => [{\n type: i0.ElementRef\n }, {\n type: i0.ChangeDetectorRef\n }], null);\n})();\nclass StructureColumnManagerComponent extends SmartComponent {\n compositionId;\n compositionCommandInvoker;\n compositionTemplateWarehouse;\n state = inject(GuiState);\n state$ = this.state.select();\n constructor(changeDetectorRef, elementRef, compositionId, compositionCommandInvoker, compositionTemplateWarehouse) {\n super(changeDetectorRef, elementRef);\n this.compositionId = compositionId;\n this.compositionCommandInvoker = compositionCommandInvoker;\n this.compositionTemplateWarehouse = compositionTemplateWarehouse;\n this.addClassToHost('gui-block');\n this.state.connect('columns', this.selectColumns());\n this.state.connect('enabledColumnsCount', this.selectEnabledColumnsCount());\n }\n toggleColumn(column) {\n event.stopPropagation();\n if (column.isEnabled()) {\n this.compositionCommandInvoker.disableColumn(column.getColumnDefinitionId(), this.compositionId);\n } else {\n this.compositionCommandInvoker.enableColumn(column.getColumnDefinitionId(), this.compositionId);\n }\n }\n getSelectorName() {\n return 'gui-structure-column-manager';\n }\n selectColumns() {\n return this.compositionTemplateWarehouse.onAll(this.compositionId);\n }\n selectEnabledColumnsCount() {\n return this.compositionTemplateWarehouse.onAll(this.compositionId).pipe(hermesMap(columns => {\n return columns.map(c => +c.isEnabled()).reduce((accumulator, currentValue) => accumulator + currentValue);\n }));\n }\n static ɵfac = function StructureColumnManagerComponent_Factory(t) {\n return new (t || StructureColumnManagerComponent)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(CompositionId), i0.ɵɵdirectiveInject(CompositionPublisher), i0.ɵɵdirectiveInject(CompositionTemplateWarehouse));\n };\n static ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: StructureColumnManagerComponent,\n selectors: [[\"div\", \"gui-structure-column-manager\", \"\"]],\n features: [i0.ɵɵProvidersFeature([GuiState]), i0.ɵɵInheritDefinitionFeature],\n attrs: _c31,\n decls: 1,\n vars: 1,\n consts: [[\"class\", \"gui-structure-ordered-list gui-p-0 gui-my-4 gui-list-none gui-overflow-auto\", 4, \"guiLet\"], [1, \"gui-structure-ordered-list\", \"gui-p-0\", \"gui-my-4\", \"gui-list-none\", \"gui-overflow-auto\"], [\"class\", \"gui-px-13 gui-py-6 gui-cursor-pointer\", 3, \"click\", 4, \"ngFor\", \"ngForOf\"], [1, \"gui-px-13\", \"gui-py-6\", \"gui-cursor-pointer\", 3, \"click\"], [3, \"checked\", \"disabled\"], [4, \"ngTemplateOutlet\", \"ngTemplateOutletContext\"]],\n template: function StructureColumnManagerComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, StructureColumnManagerComponent_ol_0_Template, 2, 1, \"ol\", 0);\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"guiLet\", ctx.state$);\n }\n },\n dependencies: [i4.NgForOf, i4.NgTemplateOutlet, i1$1.FabricCheckboxComponent, GuiLetDirective],\n encapsulation: 2,\n changeDetection: 0\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(StructureColumnManagerComponent, [{\n type: Component,\n args: [{\n selector: 'div[gui-structure-column-manager]',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [GuiState],\n template: \"
    \\n\\t
  1. \\n\\n\\t\\t\\n\\n\\t\\t\\t\\n\\t\\t\\t\\n\\n\\t\\t\\n\\n\\t
  2. \\n
\\n\"\n }]\n }], () => [{\n type: i0.ChangeDetectorRef\n }, {\n type: i0.ElementRef\n }, {\n type: CompositionId\n }, {\n type: CompositionPublisher\n }, {\n type: CompositionTemplateWarehouse\n }], null);\n})();\nclass StructureDialogColumnManagerComponent extends SmartComponent {\n constructor(detector, elementRef) {\n super(detector, elementRef);\n }\n getSelectorName() {\n return 'gui-structure-dialog-column-manager';\n }\n static ɵfac = function StructureDialogColumnManagerComponent_Factory(t) {\n return new (t || StructureDialogColumnManagerComponent)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i0.ElementRef));\n };\n static ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: StructureDialogColumnManagerComponent,\n selectors: [[\"div\", \"gui-structure-dialog-column-manager\", \"\"]],\n features: [i0.ɵɵInheritDefinitionFeature],\n attrs: _c32,\n decls: 4,\n vars: 3,\n consts: [[1, \"gui-dialog-title\"], [\"gui-structure-column-manager\", \"\", 1, \"-gui-mx-10\"]],\n template: function StructureDialogColumnManagerComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 0);\n i0.ɵɵtext(1);\n i0.ɵɵpipe(2, \"guiTranslate\");\n i0.ɵɵelementEnd();\n i0.ɵɵelement(3, \"div\", 1);\n }\n if (rf & 2) {\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(2, 1, \"columnManagerModalTitle\"));\n }\n },\n dependencies: [StructureColumnManagerComponent, TranslationPipe],\n encapsulation: 2,\n changeDetection: 0\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(StructureDialogColumnManagerComponent, [{\n type: Component,\n args: [{\n selector: 'div[gui-structure-dialog-column-manager]',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n template: \"
{{'columnManagerModalTitle' | guiTranslate}}
\\n\\n
\\n
\\n\"\n }]\n }], () => [{\n type: i0.ChangeDetectorRef\n }, {\n type: i0.ElementRef\n }], null);\n})();\nclass StructureThemeConverter {\n convertTheme(schemaTheme) {\n switch (schemaTheme) {\n case SchemaTheme.FABRIC:\n return Theme.FABRIC;\n case SchemaTheme.MATERIAL:\n return Theme.MATERIAL;\n case SchemaTheme.GENERIC:\n return Theme.GENERIC;\n case SchemaTheme.LIGHT:\n return Theme.LIGHT;\n case SchemaTheme.DARK:\n return Theme.DARK;\n default:\n return Theme.FABRIC;\n }\n }\n static ɵfac = function StructureThemeConverter_Factory(t) {\n return new (t || StructureThemeConverter)();\n };\n static ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: StructureThemeConverter,\n factory: StructureThemeConverter.ɵfac\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(StructureThemeConverter, [{\n type: Injectable\n }], null, null);\n})();\nclass StructureDialogColumnManagerService extends Reactive {\n injector;\n schemaWarehouse;\n structureThemeConverter;\n fabricDialogService;\n constructor(injector, schemaWarehouse, structureThemeConverter, fabricDialogService) {\n super();\n this.injector = injector;\n this.schemaWarehouse = schemaWarehouse;\n this.structureThemeConverter = structureThemeConverter;\n this.fabricDialogService = fabricDialogService;\n }\n open(compositionId, readModelId, parentInjector) {\n if (!parentInjector) {\n parentInjector = this.injector;\n }\n const injector = Injector.create({\n parent: parentInjector,\n providers: [{\n provide: CompositionId,\n useValue: compositionId\n }]\n });\n this.schemaWarehouse.findTheme(readModelId).ifPresent(theme => {\n this.fabricDialogService.open({\n injector: injector,\n component: StructureDialogColumnManagerComponent,\n theme: this.structureThemeConverter.convertTheme(theme)\n });\n });\n }\n static ɵfac = function StructureDialogColumnManagerService_Factory(t) {\n return new (t || StructureDialogColumnManagerService)(i0.ɵɵinject(i0.Injector), i0.ɵɵinject(SchemaWarehouse), i0.ɵɵinject(StructureThemeConverter), i0.ɵɵinject(i1$1.FabricDialogService));\n };\n static ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: StructureDialogColumnManagerService,\n factory: StructureDialogColumnManagerService.ɵfac\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(StructureDialogColumnManagerService, [{\n type: Injectable\n }], () => [{\n type: i0.Injector\n }, {\n type: SchemaWarehouse\n }, {\n type: StructureThemeConverter\n }, {\n type: i1$1.FabricDialogService\n }], null);\n})();\nclass StructureSchemaMangerComponent extends SmartComponent {\n structureId;\n schemaPublisher;\n schemaWarehouse = inject(SchemaWarehouse);\n schemaReadModelRootId = inject(SchemaReadModelRootId);\n coloring = this.createColoringOptions();\n themes = this.createThemeOptions();\n rowColoring$ = this.selectRowColoring();\n theme$ = this.selectTheme();\n verticalGrid$ = this.schemaWarehouse.onVerticalGrid(this.schemaReadModelRootId);\n horizontalGrid$ = this.schemaWarehouse.onHorizontalGrid(this.schemaReadModelRootId);\n constructor(changeDetectorRef, elRef, structureId, schemaPublisher) {\n super(changeDetectorRef, elRef);\n this.structureId = structureId;\n this.schemaPublisher = schemaPublisher;\n }\n toggleTheme(theme) {\n this.schemaPublisher.setTheme(this.toTheme(theme.value), this.schemaReadModelRootId, this.structureId);\n }\n toggleRowColoring(schemaRowColoring) {\n this.schemaPublisher.setRowColoring(this.toRowColoring(schemaRowColoring.value), this.schemaReadModelRootId);\n }\n toggleVerticalGrid(verticalGrid) {\n event.stopPropagation();\n this.schemaPublisher.setVerticalGrid(!verticalGrid, this.schemaReadModelRootId);\n }\n toggleHorizontalGrid(horizontalGrid) {\n event.stopPropagation();\n this.schemaPublisher.setHorizontalGrid(!horizontalGrid, this.schemaReadModelRootId);\n }\n getSelectorName() {\n return 'gui-structure-schema-manager';\n }\n createColoringOptions() {\n return Object.keys(SchemaRowColoring).map(key => SchemaRowColoring[key]).filter(val => !Number.isInteger(val)).map(value => {\n return {\n value: value,\n name: value\n };\n });\n }\n createThemeOptions() {\n return Object.keys(SchemaTheme).map(key => SchemaTheme[key]).filter(val => !Number.isInteger(val)).map(value => {\n return {\n value: value,\n name: value\n };\n });\n }\n selectRowColoring() {\n return this.schemaWarehouse.onRowColoring(this.schemaReadModelRootId).pipe(hermesMap(rowColoring => {\n return {\n value: SchemaRowColoring[rowColoring],\n name: SchemaRowColoring[rowColoring]\n };\n }));\n }\n selectTheme() {\n return this.schemaWarehouse.onTheme(this.schemaReadModelRootId).pipe(hermesMap(schemaTheme => {\n return {\n value: SchemaTheme[schemaTheme],\n name: SchemaTheme[schemaTheme]\n };\n }));\n }\n toTheme(theme) {\n switch (theme.toLowerCase()) {\n case 'fabric':\n return SchemaTheme.FABRIC;\n case 'material':\n return SchemaTheme.MATERIAL;\n case 'generic':\n return SchemaTheme.GENERIC;\n case 'light':\n return SchemaTheme.LIGHT;\n case 'dark':\n return SchemaTheme.DARK;\n default:\n return SchemaTheme.FABRIC;\n }\n }\n toRowColoring(coloring) {\n switch (coloring.toLowerCase()) {\n case 'none':\n return RowColoring.NONE;\n case 'odd':\n return RowColoring.ODD;\n case 'even':\n return RowColoring.EVEN;\n default:\n return RowColoring.NONE;\n }\n }\n static ɵfac = function StructureSchemaMangerComponent_Factory(t) {\n return new (t || StructureSchemaMangerComponent)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(StructureId), i0.ɵɵdirectiveInject(SchemaPublisher));\n };\n static ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: StructureSchemaMangerComponent,\n selectors: [[\"div\", \"gui-structure-schema-manager\", \"\"]],\n features: [i0.ɵɵInheritDefinitionFeature],\n attrs: _c33,\n decls: 19,\n vars: 21,\n consts: [[1, \"gui-schema-manager\", \"gui-flex\", \"gui-flex-col\"], [1, \"gui-dialog-title\", \"gui-mb-8\"], [1, \"gui-structure-schema-manager-select\", \"gui-flex\", \"gui-flex-col\"], [1, \"gui-mb-4\", \"gui-text-xs\"], [3, \"optionChanged\", \"options\", \"selected\", \"width\"], [1, \"gui-structure-ordered-list\", \"gui-mx-10\", \"gui-p-0\", \"gui-my-4\", \"gui-list-none\", \"gui-overflow-auto\"], [\"class\", \"gui-px-13 gui-py-6 gui-cursor-pointer\", 3, \"click\", 4, \"guiLet\"], [1, \"gui-px-13\", \"gui-py-6\", \"gui-cursor-pointer\", 3, \"click\"], [3, \"checked\"]],\n template: function StructureSchemaMangerComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 0)(1, \"div\", 1);\n i0.ɵɵtext(2);\n i0.ɵɵpipe(3, \"guiTranslate\");\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(4, \"div\", 2)(5, \"span\", 3);\n i0.ɵɵtext(6);\n i0.ɵɵpipe(7, \"guiTranslate\");\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(8, \"gui-select\", 4);\n i0.ɵɵpipe(9, \"guiPush\");\n i0.ɵɵlistener(\"optionChanged\", function StructureSchemaMangerComponent_Template_gui_select_optionChanged_8_listener($event) {\n return ctx.toggleTheme($event);\n });\n i0.ɵɵelementEnd()();\n i0.ɵɵelementStart(10, \"div\", 2)(11, \"span\", 3);\n i0.ɵɵtext(12);\n i0.ɵɵpipe(13, \"guiTranslate\");\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(14, \"gui-select\", 4);\n i0.ɵɵpipe(15, \"guiPush\");\n i0.ɵɵlistener(\"optionChanged\", function StructureSchemaMangerComponent_Template_gui_select_optionChanged_14_listener($event) {\n return ctx.toggleRowColoring($event);\n });\n i0.ɵɵelementEnd()();\n i0.ɵɵelementStart(16, \"ol\", 5);\n i0.ɵɵtemplate(17, StructureSchemaMangerComponent_li_17_Template, 4, 4, \"li\", 6)(18, StructureSchemaMangerComponent_li_18_Template, 4, 4, \"li\", 6);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n i0.ɵɵadvance(2);\n i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(3, 11, \"themeManagerModalTitle\"));\n i0.ɵɵadvance(4);\n i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(7, 13, \"themeManagerModalTheme\"));\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"options\", ctx.themes)(\"selected\", i0.ɵɵpipeBind1(9, 15, ctx.theme$))(\"width\", 180);\n i0.ɵɵadvance(4);\n i0.ɵɵtextInterpolate1(\" \", i0.ɵɵpipeBind1(13, 17, \"themeManagerModalRowColoring\"), \" \");\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"options\", ctx.coloring)(\"selected\", i0.ɵɵpipeBind1(15, 19, ctx.rowColoring$))(\"width\", 180);\n i0.ɵɵadvance(3);\n i0.ɵɵproperty(\"guiLet\", ctx.verticalGrid$);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"guiLet\", ctx.horizontalGrid$);\n }\n },\n dependencies: [i1$1.FabricCheckboxComponent, i1$1.FabricSelectComponent, GuiLetDirective, TranslationPipe, GuiPushPipe],\n encapsulation: 2,\n changeDetection: 0\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(StructureSchemaMangerComponent, [{\n type: Component,\n args: [{\n selector: 'div[gui-structure-schema-manager]',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: \"
\\n\\n\\t
{{'themeManagerModalTitle' | guiTranslate}}
\\n\\n\\t
\\n\\n\\t\\t{{'themeManagerModalTheme' | guiTranslate}}\\n\\n\\t\\t\\n\\t\\t\\n\\t
\\n\\n\\t
\\n\\n\\t\\t\\n\\t\\t\\t{{'themeManagerModalRowColoring' | guiTranslate}}\\n\\t\\t\\n\\n\\t\\t\\n\\t\\t\\n\\t
\\n\\n\\t
    \\n\\n\\t\\t
  1. \\n\\n\\t\\t\\t\\n\\t\\t\\t\\t{{'themeManagerModalVerticalGrid' | guiTranslate}}\\n\\t\\t\\t\\n\\n\\t\\t
  2. \\n\\n\\t\\t
  3. \\n\\n\\t\\t\\t\\n\\t\\t\\t\\t{{'themeManagerModalHorizontalGrid' | guiTranslate}}\\n\\t\\t\\t\\n\\n\\t\\t
  4. \\n\\t
\\n
\\n\"\n }]\n }], () => [{\n type: i0.ChangeDetectorRef\n }, {\n type: i0.ElementRef\n }, {\n type: StructureId\n }, {\n type: SchemaPublisher\n }], null);\n})();\nclass StructureDialogSchemaManagerComponent extends PureComponent {\n constructor(elRef) {\n super(elRef);\n }\n getSelectorName() {\n return 'gui-schema-manager-dialog';\n }\n static ɵfac = function StructureDialogSchemaManagerComponent_Factory(t) {\n return new (t || StructureDialogSchemaManagerComponent)(i0.ɵɵdirectiveInject(i0.ElementRef));\n };\n static ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: StructureDialogSchemaManagerComponent,\n selectors: [[\"div\", \"gui-schema-manager-dialog\", \"\"]],\n features: [i0.ɵɵInheritDefinitionFeature],\n attrs: _c34,\n decls: 1,\n vars: 0,\n consts: [[\"gui-structure-schema-manager\", \"\"]],\n template: function StructureDialogSchemaManagerComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"div\", 0);\n }\n },\n dependencies: [StructureSchemaMangerComponent],\n encapsulation: 2,\n changeDetection: 0\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(StructureDialogSchemaManagerComponent, [{\n type: Component,\n args: [{\n selector: 'div[gui-schema-manager-dialog]',\n template: `\n\t\t
\n\t`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n }]\n }], () => [{\n type: i0.ElementRef\n }], null);\n})();\nclass StructureDialogSchemaManagerService extends Reactive {\n injector;\n fabricDialogService;\n constructor(injector, fabricDialogService) {\n super();\n this.injector = injector;\n this.fabricDialogService = fabricDialogService;\n }\n open(readModelId, parentInjector) {\n if (!parentInjector) {\n parentInjector = this.injector;\n }\n const injector = Injector.create({\n providers: [{\n provide: SchemaReadModelRootId,\n useValue: readModelId\n }],\n parent: parentInjector\n });\n this.fabricDialogService.open({\n injector: injector,\n component: StructureDialogSchemaManagerComponent\n });\n }\n static ɵfac = function StructureDialogSchemaManagerService_Factory(t) {\n return new (t || StructureDialogSchemaManagerService)(i0.ɵɵinject(i0.Injector), i0.ɵɵinject(i1$1.FabricDialogService));\n };\n static ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: StructureDialogSchemaManagerService,\n factory: StructureDialogSchemaManagerService.ɵfac\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(StructureDialogSchemaManagerService, [{\n type: Injectable\n }], () => [{\n type: i0.Injector\n }, {\n type: i1$1.FabricDialogService\n }], null);\n})();\nclass StructureColumnManagerIconComponent extends IconComponent {\n constructor(elementRef, changeDetectorRef) {\n super(elementRef, changeDetectorRef);\n }\n getSelectorName() {\n return 'gui-structure-column-manager-icon';\n }\n static ɵfac = function StructureColumnManagerIconComponent_Factory(t) {\n return new (t || StructureColumnManagerIconComponent)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef));\n };\n static ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: StructureColumnManagerIconComponent,\n selectors: [[\"div\", \"gui-structure-column-manager-icon\", \"\"]],\n features: [i0.ɵɵInheritDefinitionFeature],\n attrs: _c35,\n decls: 7,\n vars: 0,\n consts: [[\"data-name\", \"Layer 1\", \"xmlns\", \"http://www.w3.org/2000/svg\", \"viewBox\", \"0 0 10.32 10.31\"], [\"x1\", \"9.57\", \"y1\", \"3.65\", \"x2\", \"0.75\", \"y2\", \"3.65\", 1, \"cls-1\"], [\"x1\", \"9.57\", \"y1\", \"0.75\", \"x2\", \"0.75\", \"y2\", \"0.75\", 1, \"cls-2\"], [\"x1\", \"0.75\", \"y1\", \"9.56\", \"x2\", \"0.75\", \"y2\", \"0.88\", 1, \"cls-2\"], [\"x1\", \"3.69\", \"y1\", \"9.65\", \"x2\", \"3.69\", \"y2\", \"3.89\", 1, \"cls-1\"], [\"x1\", \"6.63\", \"y1\", \"9.56\", \"x2\", \"6.63\", \"y2\", \"3.89\", 1, \"cls-1\"], [\"x1\", \"9.57\", \"y1\", \"9.56\", \"x2\", \"9.57\", \"y2\", \"0.88\", 1, \"cls-2\"]],\n template: function StructureColumnManagerIconComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"svg\", 0);\n i0.ɵɵelement(1, \"line\", 1)(2, \"line\", 2)(3, \"line\", 3)(4, \"line\", 4)(5, \"line\", 5)(6, \"line\", 6);\n i0.ɵɵelementEnd();\n }\n },\n encapsulation: 2,\n changeDetection: 0\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(StructureColumnManagerIconComponent, [{\n type: Component,\n args: [{\n selector: 'div[gui-structure-column-manager-icon]',\n template: `\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n }]\n }], () => [{\n type: i0.ElementRef\n }, {\n type: i0.ChangeDetectorRef\n }], null);\n})();\nclass StructureSchemaManagerIconComponent extends IconComponent {\n constructor(elRef, cdr) {\n super(elRef, cdr);\n }\n getSelectorName() {\n return 'gui-structure-schema-manager-icon';\n }\n static ɵfac = function StructureSchemaManagerIconComponent_Factory(t) {\n return new (t || StructureSchemaManagerIconComponent)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef));\n };\n static ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: StructureSchemaManagerIconComponent,\n selectors: [[\"div\", \"gui-structure-schema-manager-icon\", \"\"]],\n features: [i0.ɵɵInheritDefinitionFeature],\n attrs: _c36,\n decls: 11,\n vars: 0,\n consts: [[\"height\", \"24\", \"viewBox\", \"0 0 32 24\", \"width\", \"32\", \"xmlns\", \"http://www.w3.org/2000/svg\"], [\"transform\", \"translate(0 -4)\"], [\"d\", \"M23.337,4H32v6H23.337Z\", \"data-name\", \"Path 303\", \"id\", \"Path_303\"], [\"d\", \"M11.662,4h8.662v6H11.662Z\", \"data-name\", \"Path 304\", \"id\", \"Path_304\"], [\"d\", \"M0,4H8.662v6H0Z\", \"data-name\", \"Path 305\", \"id\", \"Path_305\"], [\"d\", \"M23.337,22H32v6H23.337Z\", \"data-name\", \"Path 306\", \"id\", \"Path_306\"], [\"d\", \"M0,22H8.662v6H0Z\", \"data-name\", \"Path 307\", \"id\", \"Path_307\"], [\"d\", \"M11.662,22h8.662v6H11.662Z\", \"data-name\", \"Path 308\", \"id\", \"Path_308\"], [\"d\", \"M23.337,13H32v6H23.337Z\", \"data-name\", \"Path 309\", \"id\", \"Path_309\"], [\"d\", \"M11.662,13h8.662v6H11.662Z\", \"data-name\", \"Path 310\", \"id\", \"Path_310\"], [\"d\", \"M0,13H8.662v6H0Z\", \"data-name\", \"Path 311\", \"id\", \"Path_311\"]],\n template: function StructureSchemaManagerIconComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"svg\", 0)(1, \"g\", 1);\n i0.ɵɵelement(2, \"path\", 2)(3, \"path\", 3)(4, \"path\", 4)(5, \"path\", 5)(6, \"path\", 6)(7, \"path\", 7)(8, \"path\", 8)(9, \"path\", 9)(10, \"path\", 10);\n i0.ɵɵelementEnd()();\n }\n },\n encapsulation: 2,\n changeDetection: 0\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(StructureSchemaManagerIconComponent, [{\n type: Component,\n args: [{\n selector: 'div[gui-structure-schema-manager-icon]',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n template: \"\\n\\t\\n\\t\\t\\n\\t\\t\\n\\t\\t\\n\\t\\t\\n\\t\\t\\n\\t\\t\\n\\t\\t\\n\\t\\t\\n\\t\\t\\n\\t\\n\\n\"\n }]\n }], () => [{\n type: i0.ElementRef\n }, {\n type: i0.ChangeDetectorRef\n }], null);\n})();\nclass ActiveSearchComponent extends SmartComponent {\n structureId = inject(StructureId);\n searchCommandDispatcher = inject(SearchPublisher);\n searchWarehouse = inject(SearchWarehouse);\n phrase$ = this.searchWarehouse.onPhrase(this.structureId);\n constructor(changeDetectorRef, elementRef) {\n super(changeDetectorRef, elementRef);\n }\n clearSearch() {\n event.stopPropagation();\n this.searchCommandDispatcher.search('', this.structureId);\n }\n getSelectorName() {\n return 'gui-active-search';\n }\n static ɵfac = function ActiveSearchComponent_Factory(t) {\n return new (t || ActiveSearchComponent)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i0.ElementRef));\n };\n static ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: ActiveSearchComponent,\n selectors: [[\"div\", \"gui-active-search\", \"\"]],\n features: [i0.ɵɵInheritDefinitionFeature],\n attrs: _c37,\n decls: 1,\n vars: 1,\n consts: [[4, \"guiLet\"], [\"gui-button\", \"\", 3, \"click\", \"outline\", \"primary\"]],\n template: function ActiveSearchComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, ActiveSearchComponent_ng_container_0_Template, 9, 3, \"ng-container\", 0);\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"guiLet\", ctx.phrase$);\n }\n },\n dependencies: [i1$1.FabricButtonComponent, i1$1.FabricChipComponent, GuiLetDirective],\n encapsulation: 2,\n changeDetection: 0\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(ActiveSearchComponent, [{\n type: Component,\n args: [{\n selector: 'div[gui-active-search]',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n template: \"\\n\\t
\\n\\t\\tActive search by:\\n\\t
\\n\\n\\t
\\n\\t\\t{{phrase}}\\n\\t
\\n\\n\\t
\\n\\t\\t\\n\\t
\\n
\\n\"\n }]\n }], () => [{\n type: i0.ChangeDetectorRef\n }, {\n type: i0.ElementRef\n }], null);\n})();\nclass ActiveFilterListComponent extends SmartComponent {\n filterCommandDispatcher;\n structureId = inject(StructureId);\n filterWarehouse = inject(FilterWarehouse);\n activeFilters$ = this.filterWarehouse.onActiveFilters(this.structureId);\n constructor(changeDetectorRef, elementRef, filterCommandDispatcher) {\n super(changeDetectorRef, elementRef);\n this.filterCommandDispatcher = filterCommandDispatcher;\n }\n removeFilter(filter) {\n this.filterCommandDispatcher.remove(filter.getFilterId(), this.structureId);\n }\n getSelectorName() {\n return 'gui-active-filter-list';\n }\n static ɵfac = function ActiveFilterListComponent_Factory(t) {\n return new (t || ActiveFilterListComponent)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(FilterPublisher));\n };\n static ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: ActiveFilterListComponent,\n selectors: [[\"div\", \"gui-active-filter-list\", \"\"]],\n features: [i0.ɵɵInheritDefinitionFeature],\n attrs: _c38,\n decls: 2,\n vars: 1,\n consts: [[4, \"guiLet\"], [\"gui-active-search\", \"\"], [4, \"ngFor\", \"ngForOf\"], [3, \"click\"]],\n template: function ActiveFilterListComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, ActiveFilterListComponent_ng_container_0_Template, 2, 1, \"ng-container\", 0);\n i0.ɵɵelement(1, \"div\", 1);\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"guiLet\", ctx.activeFilters$);\n }\n },\n dependencies: [i4.NgForOf, GuiLetDirective, ActiveSearchComponent],\n encapsulation: 2,\n changeDetection: 0\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(ActiveFilterListComponent, [{\n type: Component,\n args: [{\n selector: 'div[gui-active-filter-list]',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n template: \"\\n\\t
\\n\\t\\t{{filter.getText()}}\\n\\t\\tX\\n\\t
\\n
\\n\\n
\\n\"\n }]\n }], () => [{\n type: i0.ChangeDetectorRef\n }, {\n type: i0.ElementRef\n }, {\n type: FilterPublisher\n }], null);\n})();\nclass ActiveFilterMenuComponent {\n static ɵfac = function ActiveFilterMenuComponent_Factory(t) {\n return new (t || ActiveFilterMenuComponent)();\n };\n static ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: ActiveFilterMenuComponent,\n selectors: [[\"ng-component\"]],\n decls: 8,\n vars: 3,\n consts: [[\"gui-active-filter-list\", \"\"], [\"gui-button\", \"\", 3, \"text\"], [\"gui-button\", \"\", 3, \"outline\", \"primary\"]],\n template: function ActiveFilterMenuComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"h3\");\n i0.ɵɵtext(1, \"Active filters\");\n i0.ɵɵelementEnd();\n i0.ɵɵelement(2, \"div\", 0);\n i0.ɵɵelementStart(3, \"div\")(4, \"button\", 1);\n i0.ɵɵtext(5, \" Cancel \");\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(6, \"button\", 2);\n i0.ɵɵtext(7, \" Clear All \");\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n i0.ɵɵadvance(4);\n i0.ɵɵproperty(\"text\", true);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"outline\", true)(\"primary\", true);\n }\n },\n dependencies: [ActiveFilterListComponent, i1$1.FabricButtonComponent],\n encapsulation: 2\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(ActiveFilterMenuComponent, [{\n type: Component,\n args: [{\n template: `\n\n\t\t

Active filters

\n\n\t\t
\n\n\t\t
\n\n\t\t\t\n\n\t\t\t\n\t\t
\n\t`\n }]\n }], null, null);\n})();\nclass ActiveFilterService extends Reactive {\n injector;\n schemaWarehouse;\n structureThemeConverter;\n fabricDialogService;\n constructor(injector, schemaWarehouse, structureThemeConverter, fabricDialogService) {\n super();\n this.injector = injector;\n this.schemaWarehouse = schemaWarehouse;\n this.structureThemeConverter = structureThemeConverter;\n this.fabricDialogService = fabricDialogService;\n }\n open(readModelId, structureId) {\n const injector = Injector.create({\n parent: this.injector,\n providers: [{\n provide: SchemaReadModelRootId,\n useValue: readModelId\n }, {\n provide: StructureId,\n useValue: structureId\n }]\n });\n this.schemaWarehouse.findTheme(readModelId).ifPresent(theme => {\n this.fabricDialogService.open({\n injector: injector,\n component: ActiveFilterMenuComponent,\n theme: this.structureThemeConverter.convertTheme(theme)\n });\n });\n }\n static ɵfac = function ActiveFilterService_Factory(t) {\n return new (t || ActiveFilterService)(i0.ɵɵinject(i0.Injector), i0.ɵɵinject(SchemaWarehouse), i0.ɵɵinject(StructureThemeConverter), i0.ɵɵinject(i1$1.FabricDialogService));\n };\n static ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: ActiveFilterService,\n factory: ActiveFilterService.ɵfac\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(ActiveFilterService, [{\n type: Injectable\n }], () => [{\n type: i0.Injector\n }, {\n type: SchemaWarehouse\n }, {\n type: StructureThemeConverter\n }, {\n type: i1$1.FabricDialogService\n }], null);\n})();\nclass ActiveFilterMenuTriggerDirective {\n el;\n structureId;\n activeFilterService;\n schemaReadModelRootId;\n constructor(el, structureId, activeFilterService, schemaReadModelRootId) {\n this.el = el;\n this.structureId = structureId;\n this.activeFilterService = activeFilterService;\n this.schemaReadModelRootId = schemaReadModelRootId;\n }\n ngOnInit() {\n // this.renderer.listen(this.el.nativeElement, 'click', () => {\n // \tthis.activeFilterService.open(this.schemaReadModelRootId, this.structureId);\n // });\n }\n static ɵfac = function ActiveFilterMenuTriggerDirective_Factory(t) {\n return new (t || ActiveFilterMenuTriggerDirective)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(StructureId), i0.ɵɵdirectiveInject(ActiveFilterService), i0.ɵɵdirectiveInject(SchemaReadModelRootId));\n };\n static ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: ActiveFilterMenuTriggerDirective,\n selectors: [[\"\", \"gui-active-filter-menu-trigger\", \"\"]]\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(ActiveFilterMenuTriggerDirective, [{\n type: Directive,\n args: [{\n selector: '[gui-active-filter-menu-trigger]'\n }]\n }], () => [{\n type: i0.ElementRef\n }, {\n type: StructureId\n }, {\n type: ActiveFilterService\n }, {\n type: SchemaReadModelRootId\n }], null);\n})();\nclass StructureInfoIconComponent extends IconComponent {\n constructor(elRef, cdr) {\n super(elRef, cdr);\n }\n getSelectorName() {\n return 'gui-structure-info-icon';\n }\n static ɵfac = function StructureInfoIconComponent_Factory(t) {\n return new (t || StructureInfoIconComponent)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef));\n };\n static ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: StructureInfoIconComponent,\n selectors: [[\"div\", \"gui-structure-info-icon\", \"\"]],\n features: [i0.ɵɵInheritDefinitionFeature],\n attrs: _c39,\n decls: 3,\n vars: 0,\n consts: [[\"data-name\", \"Layer 1\", \"viewBox\", \"0 0 10.08 10.08\", \"xmlns\", \"http://www.w3.org/2000/svg\"], [\"d\", \"M401.64,307.76c0-.28.23-.45.54-.45s.55.17.55.45v0a.49.49,0,0,1-.55.46.48.48,0,0,1-.54-.46Zm.05,1.27a.49.49,0,0,1,1,0v2.54a.49.49,0,0,1-1,0Z\", \"transform\", \"translate(-397.14 -304.64)\", 1, \"cls-1\"], [\"cx\", \"5.04\", \"cy\", \"5.04\", \"r\", \"4.54\", 1, \"cls-2\"]],\n template: function StructureInfoIconComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"svg\", 0);\n i0.ɵɵelement(1, \"path\", 1)(2, \"circle\", 2);\n i0.ɵɵelementEnd();\n }\n },\n encapsulation: 2,\n changeDetection: 0\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(StructureInfoIconComponent, [{\n type: Component,\n args: [{\n selector: 'div[gui-structure-info-icon]',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n template: \"\\n\\t\\n\\t\\n\\n\"\n }]\n }], () => [{\n type: i0.ElementRef\n }, {\n type: i0.ChangeDetectorRef\n }], null);\n})();\nclass NumberFormatterPipe {\n transform(number) {\n return number.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, ' ');\n }\n static ɵfac = function NumberFormatterPipe_Factory(t) {\n return new (t || NumberFormatterPipe)();\n };\n static ɵpipe = /* @__PURE__ */i0.ɵɵdefinePipe({\n name: \"numberFormatter\",\n type: NumberFormatterPipe,\n pure: true\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NumberFormatterPipe, [{\n type: Pipe,\n args: [{\n name: 'numberFormatter'\n }]\n }], null, null);\n})();\nclass StructureInfoPanelComponent extends SmartComponent {\n injector;\n dialog;\n compositionId;\n schemaReadModelRootId;\n menuColumnManagerService;\n translationService;\n schemaManagerService;\n structureInfoPanelArchive;\n state = inject(GuiState);\n sourceWarehouse = inject(SourceWarehouse);\n structureId = inject(StructureId);\n state$ = this.state.select();\n totalItemsSize$ = this.sourceWarehouse.onOriginSize(this.structureId);\n infoModal = StructureInfoModalComponent;\n constructor(changeDetectorRef, elementRef, injector, dialog, compositionId, schemaReadModelRootId, menuColumnManagerService, translationService, schemaManagerService, structureInfoPanelArchive) {\n super(changeDetectorRef, elementRef);\n this.injector = injector;\n this.dialog = dialog;\n this.compositionId = compositionId;\n this.schemaReadModelRootId = schemaReadModelRootId;\n this.menuColumnManagerService = menuColumnManagerService;\n this.translationService = translationService;\n this.schemaManagerService = schemaManagerService;\n this.structureInfoPanelArchive = structureInfoPanelArchive;\n this.state.connect('infoPanelConfig', this.structureInfoPanelArchive.on());\n this.state.connect('preparedItemsSize', this.sourceWarehouse.onPreparedItems(this.structureId).pipe(hermesMap(items => items.length)));\n this.state.connect('translations', this.translationService.onTranslation());\n }\n openInfo() {\n this.dialog.open({\n component: this.infoModal\n });\n }\n openColumnManager() {\n this.menuColumnManagerService.open(this.compositionId, this.schemaReadModelRootId, this.injector);\n }\n openSchemaManager() {\n this.schemaManagerService.open(this.schemaReadModelRootId, this.injector);\n }\n getSelectorName() {\n return 'gui-structure-info-panel';\n }\n static ɵfac = function StructureInfoPanelComponent_Factory(t) {\n return new (t || StructureInfoPanelComponent)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.Injector), i0.ɵɵdirectiveInject(i1$1.FabricDialogService), i0.ɵɵdirectiveInject(CompositionId), i0.ɵɵdirectiveInject(SchemaReadModelRootId), i0.ɵɵdirectiveInject(StructureDialogColumnManagerService), i0.ɵɵdirectiveInject(TranslationFacade), i0.ɵɵdirectiveInject(StructureDialogSchemaManagerService), i0.ɵɵdirectiveInject(StructureInfoPanelArchive));\n };\n static ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: StructureInfoPanelComponent,\n selectors: [[\"div\", \"gui-structure-info-panel\", \"\"]],\n features: [i0.ɵɵProvidersFeature([GuiState]), i0.ɵɵInheritDefinitionFeature],\n attrs: _c40,\n decls: 1,\n vars: 1,\n consts: [[4, \"guiLet\"], [1, \"gui-right-section\"], [3, \"click\", 4, \"ngIf\"], [4, \"ngIf\"], [\"gui-active-filter-menu-trigger\", \"\", 4, \"ngIf\"], [\"gui-active-filter-menu-trigger\", \"\"], [3, \"click\"], [\"gui-structure-schema-manager-icon\", \"\", 3, \"gui-tooltip\"], [\"gui-structure-column-manager-icon\", \"\", 3, \"gui-tooltip\"], [\"gui-structure-info-icon\", \"\", 3, \"gui-tooltip\"]],\n template: function StructureInfoPanelComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, StructureInfoPanelComponent_ng_container_0_Template, 7, 4, \"ng-container\", 0);\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"guiLet\", ctx.state$);\n }\n },\n dependencies: [i4.NgIf, i1$1.FabricTooltipDirective, StructureColumnManagerIconComponent, StructureSchemaManagerIconComponent, ActiveFilterMenuTriggerDirective, GuiLetDirective, StructureInfoIconComponent, NumberFormatterPipe, TranslationPipe],\n encapsulation: 2,\n changeDetection: 0\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(StructureInfoPanelComponent, [{\n type: Component,\n args: [{\n selector: 'div[gui-structure-info-panel]',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [GuiState],\n template: \"\\n\\n\\t
\\n\\t\\t
\\n\\t\\t\\t\\n\\n\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t{{'infoPanelShowing' | guiTranslate}}\\n\\t\\t\\t\\t\\t{{totalItemsSize | numberFormatter}}\\n\\t\\t\\t\\t\\t{{'infoPanelItems' | guiTranslate}}\\n\\t\\t\\t\\t\\n\\n\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t{{'infoPanelShowing' | guiTranslate}}\\n\\t\\t\\t\\t\\t{{localState.preparedItemsSize | numberFormatter}}\\n\\t\\t\\t\\t\\t{{'infoPanelOutOf' | guiTranslate}}\\n\\t\\t\\t\\t\\t{{totalItemsSize | numberFormatter}}\\n\\t\\t\\t\\t\\t{{'infoPanelItems' | guiTranslate}}\\n\\t\\t\\t\\n\\n\\t\\t\\t\\n\\n\\t\\t
\\n\\t
\\n\\n\\t
\\n\\t\\t
\\n\\n\\t\\t\\t
\\n\\t\\t\\t\\t
\\n\\t\\t\\t
\\n\\n\\t\\t\\t
\\n\\t\\t\\t\\t
\\n\\t\\t\\t
\\n\\n\\t\\t\\t
\\n\\t\\t\\t\\t
\\n\\t\\t\\t
\\n\\t\\t
\\n\\t
\\n\\n
\\n\"\n }]\n }], () => [{\n type: i0.ChangeDetectorRef\n }, {\n type: i0.ElementRef\n }, {\n type: i0.Injector\n }, {\n type: i1$1.FabricDialogService\n }, {\n type: CompositionId\n }, {\n type: SchemaReadModelRootId\n }, {\n type: StructureDialogColumnManagerService\n }, {\n type: TranslationFacade\n }, {\n type: StructureDialogSchemaManagerService\n }, {\n type: StructureInfoPanelArchive\n }], null);\n})();\nclass GuiEffects {\n destroy$ = new HermesReplaySubject(1);\n register(effect$, next, complete) {\n return effect$.pipe(hermesTakeUntil(this.destroy$)).subscribe(v => next(v), error => console.log(error), complete ? () => complete() : () => {});\n }\n destroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n ngOnDestroy() {\n this.destroy();\n }\n static ɵfac = function GuiEffects_Factory(t) {\n return new (t || GuiEffects)();\n };\n static ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: GuiEffects,\n factory: GuiEffects.ɵfac\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(GuiEffects, [{\n type: Injectable\n }], null, null);\n})();\nclass SearchIconComponent extends IconComponent {\n constructor(elementRef, changeDetectorRef) {\n super(elementRef, changeDetectorRef);\n }\n getSelectorName() {\n return 'gui-search-icon';\n }\n static ɵfac = function SearchIconComponent_Factory(t) {\n return new (t || SearchIconComponent)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef));\n };\n static ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: SearchIconComponent,\n selectors: [[\"div\", \"gui-search-icon\", \"\"]],\n features: [i0.ɵɵInheritDefinitionFeature],\n attrs: _c41,\n decls: 3,\n vars: 0,\n consts: [[\"xmlns\", \"http://www.w3.org/2000/svg\", \"width\", \"10.231\", \"height\", \"10.601\", \"viewBox\", \"0 0 10.231 10.601\", 1, \"gui-search-icon-svg\"], [\"x2\", \"1.77\", \"y2\", \"1.77\", \"transform\", \"translate(7.4 7.77)\", \"fill\", \"none\", \"stroke-linecap\", \"round\", \"stroke-linejoin\", \"round\", \"stroke-width\", \"1.5\"], [\"cx\", \"4.02\", \"cy\", \"4.02\", \"r\", \"4.02\", \"transform\", \"translate(0.5 0.5)\", \"stroke-width\", \"1\", \"stroke-linecap\", \"round\", \"stroke-linejoin\", \"round\", \"fill\", \"none\"]],\n template: function SearchIconComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"svg\", 0);\n i0.ɵɵelement(1, \"line\", 1)(2, \"circle\", 2);\n i0.ɵɵelementEnd();\n }\n },\n encapsulation: 2,\n changeDetection: 0\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(SearchIconComponent, [{\n type: Component,\n args: [{\n selector: 'div[gui-search-icon]',\n template: `\n\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n }]\n }], () => [{\n type: i0.ElementRef\n }, {\n type: i0.ChangeDetectorRef\n }], null);\n})();\nclass SearchComponent extends SmartComponent {\n formBuilder;\n effects;\n searchCommandDispatcher;\n static FORM_SEARCH_NAME = 'searchPhrase';\n formRef;\n structureId = inject(StructureId);\n searchWarehouse = inject(SearchWarehouse);\n searchForm;\n placeholder$ = this.searchWarehouse.onPlaceholder(this.structureId);\n searchingEnabled$ = this.searchWarehouse.onSearchEnabled(this.structureId);\n searchInputSubscription;\n constructor(formBuilder, changeDetectorRef, elementRef, effects, searchCommandDispatcher) {\n super(changeDetectorRef, elementRef);\n this.formBuilder = formBuilder;\n this.effects = effects;\n this.searchCommandDispatcher = searchCommandDispatcher;\n const controlsConfig = {};\n controlsConfig[SearchComponent.FORM_SEARCH_NAME] = '';\n this.searchForm = this.formBuilder.group(controlsConfig);\n this.registerOnPhraseEffect();\n }\n ngOnInit() {\n this.registerOnChangesEffect();\n }\n clear() {\n this.searchForm.reset();\n }\n getSelectorName() {\n return 'gui-search-bar';\n }\n selectPhrase() {\n // @ts-ignore\n const searchPhrase$ = this.searchForm.controls[SearchComponent.FORM_SEARCH_NAME].valueChanges;\n return fromRxJsObservable(searchPhrase$.pipe(debounceTime(200)));\n }\n registerOnChangesEffect() {\n this.searchInputSubscription = this.effects.register(this.selectPhrase(), phrase => {\n this.searchCommandDispatcher.search(phrase, this.structureId);\n });\n }\n registerOnPhraseEffect() {\n this.effects.register(this.searchWarehouse.onPhrase(this.structureId), phrase => {\n if (phrase === undefined) {\n phrase = null;\n }\n const controlsConfig = {};\n controlsConfig[SearchComponent.FORM_SEARCH_NAME] = phrase;\n if (phrase !== this.searchForm.get([SearchComponent.FORM_SEARCH_NAME]).value) {\n this.unregisterObserveChangesEffect();\n this.searchForm.setValue(controlsConfig);\n this.registerOnChangesEffect();\n }\n });\n }\n unregisterObserveChangesEffect() {\n this.searchInputSubscription.unsubscribe();\n }\n static ɵfac = function SearchComponent_Factory(t) {\n return new (t || SearchComponent)(i0.ɵɵdirectiveInject(i1$2.FormBuilder), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(GuiEffects), i0.ɵɵdirectiveInject(SearchPublisher));\n };\n static ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: SearchComponent,\n selectors: [[\"div\", \"gui-search-bar\", \"\"]],\n viewQuery: function SearchComponent_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(_c42, 5, ElementRef);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.formRef = _t.first);\n }\n },\n features: [i0.ɵɵProvidersFeature([GuiEffects]), i0.ɵɵInheritDefinitionFeature],\n attrs: _c43,\n decls: 1,\n vars: 1,\n consts: [[\"formRef\", \"\"], [4, \"guiIf\"], [1, \"gui-flex\", \"gui-relative\", \"gui-w-full\", 3, \"formGroup\"], [\"gui-search-icon\", \"\"], [\"formControlName\", \"searchPhrase\", 1, \"gui-border-0\", \"gui-w-full\", \"gui-h-full\", \"gui-py-5\", \"gui-pr-5\", \"gui-pl-21\", 3, \"placeholder\"], [\"class\", \"gui-clear-search-icon\", 3, \"click\", 4, \"ngIf\"], [1, \"gui-clear-search-icon\", 3, \"click\"]],\n template: function SearchComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, SearchComponent_ng_container_0_Template, 7, 5, \"ng-container\", 1);\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"guiIf\", ctx.searchingEnabled$);\n }\n },\n dependencies: [i4.NgIf, i1$2.ɵNgNoValidate, i1$2.DefaultValueAccessor, i1$2.NgControlStatus, i1$2.NgControlStatusGroup, i1$2.FormGroupDirective, i1$2.FormControlName, GuiIfDirective, SearchIconComponent, GuiPushPipe],\n styles: [\".gui-search-bar form{background:#fff}.gui-search-bar form:hover .gui-search-icon-svg line,.gui-search-bar form:hover .gui-search-icon-svg circle{stroke:#333}.gui-search-bar .gui-search-icon-svg{height:17px;left:10px;position:absolute;top:6px;width:17px}.gui-search-bar .gui-search-icon-svg line,.gui-search-bar .gui-search-icon-svg circle{stroke:#ccc;transition:stroke .3s ease-in-out}\\n\"],\n encapsulation: 2,\n changeDetection: 0\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(SearchComponent, [{\n type: Component,\n args: [{\n selector: 'div[gui-search-bar]',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [GuiEffects],\n template: \"\\n\\n\\t
\\n\\n\\t\\t
\\n\\n\\t\\t\\n\\n\\t\\t\\n\\t\\t\\t\\t\\n\\t
\\n
\\n\",\n styles: [\".gui-search-bar form{background:#fff}.gui-search-bar form:hover .gui-search-icon-svg line,.gui-search-bar form:hover .gui-search-icon-svg circle{stroke:#333}.gui-search-bar .gui-search-icon-svg{height:17px;left:10px;position:absolute;top:6px;width:17px}.gui-search-bar .gui-search-icon-svg line,.gui-search-bar .gui-search-icon-svg circle{stroke:#ccc;transition:stroke .3s ease-in-out}\\n\"]\n }]\n }], () => [{\n type: i1$2.FormBuilder\n }, {\n type: i0.ChangeDetectorRef\n }, {\n type: i0.ElementRef\n }, {\n type: GuiEffects\n }, {\n type: SearchPublisher\n }], {\n formRef: [{\n type: ViewChild,\n args: ['formRef', {\n read: ElementRef,\n static: false\n }]\n }]\n });\n})();\nclass StructureTopPanelComponent extends PureComponent {\n constructor(elementRef) {\n super(elementRef);\n this.addClassToHost('gui-p-6');\n this.addClassToHost('gui-border-b');\n this.addClassToHost('gui-border-b-solid');\n }\n getSelectorName() {\n return 'gui-structure-top-panel';\n }\n static ɵfac = function StructureTopPanelComponent_Factory(t) {\n return new (t || StructureTopPanelComponent)(i0.ɵɵdirectiveInject(i0.ElementRef));\n };\n static ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: StructureTopPanelComponent,\n selectors: [[\"div\", \"gui-structure-top-panel\", \"\"]],\n features: [i0.ɵɵInheritDefinitionFeature],\n attrs: _c44,\n decls: 1,\n vars: 0,\n consts: [[\"gui-search-bar\", \"\", 1, \"gui-flex\", \"gui-items-center\", \"gui-h-full\", \"gui-w-3/5\", \"gui-mr-auto\"]],\n template: function StructureTopPanelComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"div\", 0);\n }\n },\n dependencies: [SearchComponent],\n encapsulation: 2,\n changeDetection: 0\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(StructureTopPanelComponent, [{\n type: Component,\n args: [{\n selector: 'div[gui-structure-top-panel]',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n template: \"
\\n\\n\\n\"\n }]\n }], () => [{\n type: i0.ElementRef\n }], null);\n})();\nclass EmptySourceComponent extends PureComponent {\n items;\n constructor(elRef) {\n super(elRef);\n this.addClassToHost('gui-py-23');\n this.addClassToHost('gui-px-6');\n }\n ngOnChanges(changes) {\n ifChanged(changes.items, () => {\n if (this.items.length === 0) {\n this.removeClassFromHost('gui-hidden');\n this.addClassToHost('gui-block');\n } else {\n this.removeClassFromHost('gui-block');\n this.addClassToHost('gui-hidden');\n }\n });\n }\n getSelectorName() {\n return 'gui-empty-source';\n }\n static ɵfac = function EmptySourceComponent_Factory(t) {\n return new (t || EmptySourceComponent)(i0.ɵɵdirectiveInject(i0.ElementRef));\n };\n static ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: EmptySourceComponent,\n selectors: [[\"div\", \"gui-empty-source\", \"\", \"items\", \"\"]],\n inputs: {\n items: \"items\"\n },\n features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature],\n attrs: _c45,\n decls: 1,\n vars: 1,\n consts: [[4, \"ngIf\"]],\n template: function EmptySourceComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, EmptySourceComponent_ng_container_0_Template, 3, 3, \"ng-container\", 0);\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"ngIf\", ctx.items.length === 0);\n }\n },\n dependencies: [i4.NgIf, TranslationPipe],\n encapsulation: 2,\n changeDetection: 0\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(EmptySourceComponent, [{\n type: Component,\n args: [{\n selector: 'div[gui-empty-source][items]',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n template: \"\\n\\t{{'sourceEmpty' | guiTranslate}}\\n\\n\"\n }]\n }], () => [{\n type: i0.ElementRef\n }], {\n items: [{\n type: Input\n }]\n });\n})();\nclass VerticalFormationWarehouse {\n constructor() {}\n}\nclass StructureMenuColumnManagerComponent extends PureComponent {\n constructor(elementRef) {\n super(elementRef);\n }\n getSelectorName() {\n return 'gui-structure-menu-column-manager';\n }\n static ɵfac = function StructureMenuColumnManagerComponent_Factory(t) {\n return new (t || StructureMenuColumnManagerComponent)(i0.ɵɵdirectiveInject(i0.ElementRef));\n };\n static ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: StructureMenuColumnManagerComponent,\n selectors: [[\"div\", \"gui-structure-menu-column-manager\", \"\"]],\n features: [i0.ɵɵInheritDefinitionFeature],\n attrs: _c46,\n decls: 1,\n vars: 0,\n consts: [[\"gui-structure-column-manager\", \"\"]],\n template: function StructureMenuColumnManagerComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"div\", 0);\n }\n },\n dependencies: [StructureColumnManagerComponent],\n encapsulation: 2,\n changeDetection: 0\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(StructureMenuColumnManagerComponent, [{\n type: Component,\n args: [{\n selector: 'div[gui-structure-menu-column-manager]',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n template: \"
\\n\"\n }]\n }], () => [{\n type: i0.ElementRef\n }], null);\n})();\nclass UniqueValueListComponent extends SmartComponent {\n structureId;\n filterWarehouse;\n filterCommandInvoker;\n set fieldId(fieldId) {\n this.state.setValue({\n fieldId\n });\n }\n state = inject(GuiState);\n state$ = this.state.select();\n constructor(changeDetectorRef, elementRef, structureId, filterWarehouse, filterCommandInvoker) {\n super(changeDetectorRef, elementRef);\n this.structureId = structureId;\n this.filterWarehouse = filterWarehouse;\n this.filterCommandInvoker = filterCommandInvoker;\n this.state.connect('uniqueValues', this.selectUniqueValues());\n this.state.connect('selectAllChecked', this.isSelectAllChecked());\n this.state.connect('selectAllIndeterminate', this.isSelectAllIndeterminate());\n }\n toggleAllSelect() {\n event.stopPropagation();\n const fieldId = this.state.getValue('fieldId'),\n selectAllChecked = this.state.getValue('selectAllChecked');\n if (selectAllChecked) {\n this.filterCommandInvoker.unselectAllUniqueFilter(fieldId, this.structureId);\n } else {\n this.filterCommandInvoker.selectAllUniqueFilter(fieldId, this.structureId);\n }\n }\n toggleSelect(uniqueValueModel) {\n event.stopPropagation();\n const fieldId = this.state.getValue('fieldId');\n if (uniqueValueModel.isEnabled()) {\n this.filterCommandInvoker.unselectUniqueFilter(fieldId, uniqueValueModel.getId(), this.structureId);\n } else {\n this.filterCommandInvoker.selectUniqueFilter(fieldId, uniqueValueModel.getId(), this.structureId);\n }\n }\n clearFilters() {\n const fieldId = this.state.getValue('fieldId');\n this.filterCommandInvoker.selectAllUniqueFilter(fieldId, this.structureId);\n }\n getSelectorName() {\n return 'gui-unique-value-list';\n }\n selectUniqueValues() {\n return this.state.select('fieldId').pipe(hermesSwitchMap(fieldId => {\n return this.filterWarehouse.onUniqueValues(this.structureId).pipe(hermesMap(uniqueValueCollectionModel => {\n return uniqueValueCollectionModel.getValues(fieldId);\n }));\n }));\n }\n isSelectAllChecked() {\n return this.state.select('fieldId').pipe(hermesSwitchMap(fieldId => {\n return this.filterWarehouse.onUniqueValues(this.structureId).pipe(hermesMap(uniqueValueCollectionModel => {\n return uniqueValueCollectionModel.isSelectAllChecked(fieldId);\n }));\n }));\n }\n isSelectAllIndeterminate() {\n return this.state.select('fieldId').pipe(hermesSwitchMap(fieldId => {\n return this.filterWarehouse.onUniqueValues(this.structureId).pipe(hermesMap(uniqueValueCollectionModel => {\n return uniqueValueCollectionModel.isIndeterminate(fieldId);\n }));\n }));\n }\n static ɵfac = function UniqueValueListComponent_Factory(t) {\n return new (t || UniqueValueListComponent)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(StructureId), i0.ɵɵdirectiveInject(FilterWarehouse), i0.ɵɵdirectiveInject(FilterPublisher));\n };\n static ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: UniqueValueListComponent,\n selectors: [[\"div\", \"gui-unique-value-list\", \"\", \"fieldId\", \"\"]],\n inputs: {\n fieldId: \"fieldId\"\n },\n features: [i0.ɵɵProvidersFeature([GuiState]), i0.ɵɵInheritDefinitionFeature],\n attrs: _c47,\n decls: 1,\n vars: 1,\n consts: [[4, \"guiLet\"], [3, \"changed\", \"checked\", \"indeterminate\"], [1, \"gui-unique-value-list-container\", \"gui-overflow-y-auto\", \"gui-overflow-x-hidden\"], [4, \"ngFor\", \"ngForOf\"], [1, \"gui-unique-value-list-actions\", \"gui-px-4\", \"gui-pb-4\", \"gui-pt-2\", \"gui-flex\", \"gui-justify-end\"], [\"gui-button\", \"\", 1, \"gui-clear-unique-filters\", \"gui-px-4\", \"gui-py-2\", 3, \"click\", \"outline\", \"primary\"], [3, \"changed\", \"checked\"]],\n template: function UniqueValueListComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, UniqueValueListComponent_ng_container_0_Template, 8, 5, \"ng-container\", 0);\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"guiLet\", ctx.state$);\n }\n },\n dependencies: [i4.NgForOf, i1$1.FabricButtonComponent, i1$1.FabricCheckboxComponent, GuiLetDirective],\n styles: [\".gui-unique-value-list-container{max-height:300px}\\n\"],\n encapsulation: 2,\n changeDetection: 0\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(UniqueValueListComponent, [{\n type: Component,\n args: [{\n selector: 'div[gui-unique-value-list][fieldId]',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [GuiState],\n template: \"\\n\\t\\n\\t\\tSelect all\\n\\t\\n\\n\\t
\\n\\t\\t
\\n\\t\\t\\t\\n\\t\\t\\t\\t{{value.getValue()}}\\n\\t\\t\\t\\n\\t\\t
\\n\\t
\\n\\n\\t
\\n\\t\\t\\n\\t
\\n
\\n\",\n styles: [\".gui-unique-value-list-container{max-height:300px}\\n\"]\n }]\n }], () => [{\n type: i0.ChangeDetectorRef\n }, {\n type: i0.ElementRef\n }, {\n type: StructureId\n }, {\n type: FilterWarehouse\n }, {\n type: FilterPublisher\n }], {\n fieldId: [{\n type: Input\n }]\n });\n})();\nvar StructureArrowPosition;\n(function (StructureArrowPosition) {\n StructureArrowPosition[StructureArrowPosition[\"UP\"] = 0] = \"UP\";\n StructureArrowPosition[StructureArrowPosition[\"DOWN\"] = 1] = \"DOWN\";\n StructureArrowPosition[StructureArrowPosition[\"LEFT\"] = 2] = \"LEFT\";\n StructureArrowPosition[StructureArrowPosition[\"RIGHT\"] = 3] = \"RIGHT\";\n})(StructureArrowPosition || (StructureArrowPosition = {}));\nclass StructureArrowIconComponent extends IconComponent {\n position = StructureArrowPosition.UP;\n sort;\n styleModifier;\n constructor(elementRef, changeDetectorRef) {\n super(elementRef, changeDetectorRef);\n if (this.sort) {\n this.addClassToHost('gui-structure-column-menu-sort-icon');\n }\n this.styleModifier = new StyleModifier(elementRef.nativeElement);\n }\n ngOnChanges(changes) {\n ifChanged(changes.position, () => {\n if (this.position) {\n this.styleModifier.getHost().setStyleByName('transform', this.getTransformValue());\n }\n });\n }\n getSelectorName() {\n return 'gui-structure-column-menu-arrow-icon';\n }\n getTransformValue() {\n return 'rotate(' + this.getRotationDeg() + 'deg)';\n }\n getRotationDeg() {\n switch (this.position) {\n case StructureArrowPosition.UP:\n {\n return 0;\n }\n case StructureArrowPosition.DOWN:\n {\n return 180;\n }\n case StructureArrowPosition.LEFT:\n {\n return -90;\n }\n case StructureArrowPosition.RIGHT:\n {\n return 90;\n }\n default:\n {\n return 0;\n }\n }\n }\n static ɵfac = function StructureArrowIconComponent_Factory(t) {\n return new (t || StructureArrowIconComponent)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef));\n };\n static ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: StructureArrowIconComponent,\n selectors: [[\"div\", \"gui-structure-arrow-icon\", \"\"]],\n inputs: {\n position: \"position\",\n sort: \"sort\"\n },\n features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature],\n attrs: _c48,\n decls: 4,\n vars: 0,\n consts: [[\"xmlns\", \"http://www.w3.org/2000/svg\", \"viewBox\", \"0 0 10.04 11.72\"], [\"x1\", \"5.02\", \"y1\", \"2.15\", \"x2\", \"5.02\", \"y2\", \"10.97\", 1, \"cls-1\"], [\"x1\", \"5.02\", \"y1\", \"0.75\", \"x2\", \"9.29\", \"y2\", \"5.02\", 1, \"cls-1\"], [\"x1\", \"5.02\", \"y1\", \"0.75\", \"x2\", \"0.75\", \"y2\", \"5.02\", 1, \"cls-1\"]],\n template: function StructureArrowIconComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"svg\", 0);\n i0.ɵɵelement(1, \"line\", 1)(2, \"line\", 2)(3, \"line\", 3);\n i0.ɵɵelementEnd();\n }\n },\n encapsulation: 2,\n changeDetection: 0\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(StructureArrowIconComponent, [{\n type: Component,\n args: [{\n selector: 'div[gui-structure-arrow-icon]',\n template: `\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n }]\n }], () => [{\n type: i0.ElementRef\n }, {\n type: i0.ChangeDetectorRef\n }], {\n position: [{\n type: Input\n }],\n sort: [{\n type: Input\n }]\n });\n})();\nclass StructureColumnConfigSortComponent extends SmartComponent {\n changeDetectorRef;\n compositionId;\n structureId;\n sortingCommandDispatcher;\n compositionReadModelService;\n set column(column) {\n this.state.setValue({\n fieldId: column.getFieldId()\n });\n }\n dropdownTextTranslation;\n state = inject(GuiState);\n placement = Placement.Right;\n status = SortOrder;\n StructureArrowPosition = StructureArrowPosition;\n sortOrder$ = this.state.select('sortOrder');\n constructor(changeDetectorRef, elementRef, compositionId, structureId, sortingCommandDispatcher, compositionReadModelService) {\n super(changeDetectorRef, elementRef);\n this.changeDetectorRef = changeDetectorRef;\n this.compositionId = compositionId;\n this.structureId = structureId;\n this.sortingCommandDispatcher = sortingCommandDispatcher;\n this.compositionReadModelService = compositionReadModelService;\n this.state.connect('sortOrder', this.selectSortOrder());\n }\n isAscSort() {\n return this.state.getValue('sortOrder') === SortOrder.ASC;\n }\n isDescSort() {\n return this.state.getValue('sortOrder') === SortOrder.DESC;\n }\n isNoneSort() {\n return this.state.getValue('sortOrder') === SortOrder.NONE;\n }\n setSortOrder(sort) {\n event.preventDefault();\n event.stopPropagation();\n const fieldId = this.state.getValue('fieldId');\n this.sortingCommandDispatcher.setSortOrder(fieldId, sort, this.compositionId, this.structureId);\n }\n getSelectorName() {\n return 'gui-structure-column-config-sort';\n }\n selectSortOrder() {\n return this.state.select('fieldId').pipe(hermesSwitchMap(fieldId => {\n return this.compositionReadModelService.onSortOrder(fieldId, this.compositionId);\n }));\n }\n static ɵfac = function StructureColumnConfigSortComponent_Factory(t) {\n return new (t || StructureColumnConfigSortComponent)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(CompositionId), i0.ɵɵdirectiveInject(StructureId), i0.ɵɵdirectiveInject(SortingPublisher), i0.ɵɵdirectiveInject(CompositionWarehouse));\n };\n static ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: StructureColumnConfigSortComponent,\n selectors: [[\"div\", \"gui-structure-column-config-sort\", \"\", \"column\", \"\", \"dropdownTextTranslation\", \"\"]],\n inputs: {\n column: \"column\",\n dropdownTextTranslation: \"dropdownTextTranslation\"\n },\n features: [i0.ɵɵProvidersFeature([GuiState]), i0.ɵɵInheritDefinitionFeature],\n attrs: _c49,\n decls: 1,\n vars: 1,\n consts: [[\"class\", \"gui-header-menu-dropdown\", 3, \"dropdownText\", \"placement\", \"showOnHover\", \"width\", 4, \"guiLet\"], [1, \"gui-header-menu-dropdown\", 3, \"dropdownText\", \"placement\", \"showOnHover\", \"width\"], [3, \"click\"], [1, \"gui-sort-title\"], [\"gui-structure-arrow-icon\", \"\", 3, \"sort\"], [\"gui-structure-arrow-icon\", \"\", 3, \"position\", \"sort\"]],\n template: function StructureColumnConfigSortComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, StructureColumnConfigSortComponent_gui_dropdown_0_Template, 14, 22, \"gui-dropdown\", 0);\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"guiLet\", ctx.sortOrder$);\n }\n },\n dependencies: [i1$1.FabricDropdownComponent, i1$1.FabricDropdownItemComponent, GuiLetDirective, StructureArrowIconComponent, TranslationPipe],\n encapsulation: 2,\n changeDetection: 0\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(StructureColumnConfigSortComponent, [{\n type: Component,\n args: [{\n selector: 'div[gui-structure-column-config-sort][column][dropdownTextTranslation]',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [GuiState],\n template: \"\\n\\n\\t\\n\\t\\t
\\n\\t\\t\\t{{'headerMenuMainTabColumnSortAscending' | guiTranslate}}\\n\\t\\t\\t
\\n\\t\\t\\t
\\n\\t\\t
\\n\\t
\\n\\n\\t\\n\\t\\t
\\n\\t\\t\\t{{'headerMenuMainTabColumnSortDescending' | guiTranslate}}\\n\\t\\t\\t
\\n\\t\\t\\t
\\n\\t\\t
\\n\\t
\\n\\n\\t\\n\\t\\t{{'headerMenuMainTabColumnSortNone' | guiTranslate}}\\n\\t\\n\\n
\\n\"\n }]\n }], () => [{\n type: i0.ChangeDetectorRef\n }, {\n type: i0.ElementRef\n }, {\n type: CompositionId\n }, {\n type: StructureId\n }, {\n type: SortingPublisher\n }, {\n type: CompositionWarehouse\n }], {\n column: [{\n type: Input\n }],\n dropdownTextTranslation: [{\n type: Input\n }]\n });\n})();\nclass StructureColumnConfigColumnHideComponent extends PureComponent {\n column;\n columnHidden = new EventEmitter();\n constructor(elRef) {\n super(elRef);\n }\n hideColumn() {\n this.columnHidden.emit();\n }\n getSelectorName() {\n return 'gui-structure-column-config-column-hide';\n }\n static ɵfac = function StructureColumnConfigColumnHideComponent_Factory(t) {\n return new (t || StructureColumnConfigColumnHideComponent)(i0.ɵɵdirectiveInject(i0.ElementRef));\n };\n static ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: StructureColumnConfigColumnHideComponent,\n selectors: [[\"div\", \"gui-structure-column-config-column-hide\", \"\"]],\n inputs: {\n column: \"column\"\n },\n outputs: {\n columnHidden: \"columnHidden\"\n },\n features: [i0.ɵɵInheritDefinitionFeature],\n attrs: _c50,\n decls: 3,\n vars: 3,\n consts: [[1, \"gui-header-menu-item\", 3, \"click\"]],\n template: function StructureColumnConfigColumnHideComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 0);\n i0.ɵɵlistener(\"click\", function StructureColumnConfigColumnHideComponent_Template_div_click_0_listener() {\n return ctx.hideColumn();\n });\n i0.ɵɵtext(1);\n i0.ɵɵpipe(2, \"guiTranslate\");\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate1(\" \", i0.ɵɵpipeBind1(2, 1, \"headerMenuMainTabHideColumn\"), \"\\n\");\n }\n },\n dependencies: [TranslationPipe],\n encapsulation: 2,\n changeDetection: 0\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(StructureColumnConfigColumnHideComponent, [{\n type: Component,\n args: [{\n selector: 'div[gui-structure-column-config-column-hide]',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n template: \"
\\n\\t{{'headerMenuMainTabHideColumn' | guiTranslate}}\\n
\\n\"\n }]\n }], () => [{\n type: i0.ElementRef\n }], {\n column: [{\n type: Input\n }],\n columnHidden: [{\n type: Output\n }]\n });\n})();\nclass StructureColumnConfigColumnMoveComponent extends PureComponent {\n column;\n movedLeft = new EventEmitter();\n movedRight = new EventEmitter();\n StructureArrowPosition = StructureArrowPosition;\n constructor(elRef) {\n super(elRef);\n }\n moveLeft() {\n this.movedLeft.emit();\n }\n moveRight() {\n this.movedRight.emit();\n }\n getSelectorName() {\n return 'gui-structure-column-config-column-move';\n }\n static ɵfac = function StructureColumnConfigColumnMoveComponent_Factory(t) {\n return new (t || StructureColumnConfigColumnMoveComponent)(i0.ɵɵdirectiveInject(i0.ElementRef));\n };\n static ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: StructureColumnConfigColumnMoveComponent,\n selectors: [[\"div\", \"gui-structure-column-config-column-move\", \"\", \"column\", \"\"]],\n inputs: {\n column: \"column\"\n },\n outputs: {\n movedLeft: \"movedLeft\",\n movedRight: \"movedRight\"\n },\n features: [i0.ɵɵInheritDefinitionFeature],\n attrs: _c51,\n decls: 9,\n vars: 8,\n consts: [[1, \"gui-header-menu-column-move\"], [1, \"gui-header-menu-column-move-item\", \"left\", 3, \"click\"], [\"gui-structure-arrow-icon\", \"\", 3, \"position\"], [1, \"gui-header-menu-column-move-item\", \"right\", 3, \"click\"]],\n template: function StructureColumnConfigColumnMoveComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 0)(1, \"div\", 1);\n i0.ɵɵlistener(\"click\", function StructureColumnConfigColumnMoveComponent_Template_div_click_1_listener() {\n return ctx.moveLeft();\n });\n i0.ɵɵelement(2, \"div\", 2);\n i0.ɵɵtext(3);\n i0.ɵɵpipe(4, \"guiTranslate\");\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(5, \"div\", 3);\n i0.ɵɵlistener(\"click\", function StructureColumnConfigColumnMoveComponent_Template_div_click_5_listener() {\n return ctx.moveRight();\n });\n i0.ɵɵtext(6);\n i0.ɵɵpipe(7, \"guiTranslate\");\n i0.ɵɵelement(8, \"div\", 2);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"position\", ctx.StructureArrowPosition.LEFT);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate1(\" \", i0.ɵɵpipeBind1(4, 4, \"headerMenuMainTabMoveLeft\"), \" \");\n i0.ɵɵadvance(3);\n i0.ɵɵtextInterpolate1(\" \", i0.ɵɵpipeBind1(7, 6, \"headerMenuMainTabMoveRight\"), \" \");\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"position\", ctx.StructureArrowPosition.RIGHT);\n }\n },\n dependencies: [StructureArrowIconComponent, TranslationPipe],\n encapsulation: 2,\n changeDetection: 0\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(StructureColumnConfigColumnMoveComponent, [{\n type: Component,\n args: [{\n selector: 'div[gui-structure-column-config-column-move][column]',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n template: \"
\\n\\t
\\n\\t\\t
\\n\\t\\t{{'headerMenuMainTabMoveLeft' | guiTranslate}}\\n\\t
\\n\\n\\t
\\n\\t\\t{{'headerMenuMainTabMoveRight' | guiTranslate}}\\n\\t\\t
\\n\\t
\\n
\\n\"\n }]\n }], () => [{\n type: i0.ElementRef\n }], {\n column: [{\n type: Input\n }],\n movedLeft: [{\n type: Output\n }],\n movedRight: [{\n type: Output\n }]\n });\n})();\nclass StructureColumnConfigComponent extends SmartComponent {\n translationFacade;\n structureColumnMenuConfigArchive;\n compositionId;\n compositionCommandInvoker;\n injector;\n column;\n headerSortMenu;\n state = inject(GuiState);\n state$ = this.state.select();\n structureColumnConfigService;\n constructor(changeDetectorRef, elementRef, translationFacade, structureColumnMenuConfigArchive, compositionId, compositionCommandInvoker, injector, column) {\n super(changeDetectorRef, elementRef);\n this.translationFacade = translationFacade;\n this.structureColumnMenuConfigArchive = structureColumnMenuConfigArchive;\n this.compositionId = compositionId;\n this.compositionCommandInvoker = compositionCommandInvoker;\n this.injector = injector;\n this.column = column;\n this.structureColumnConfigService = this.injector.get(StructureColumnConfigService);\n this.state.connect('isEnabled', this.selectIsEnabled());\n this.state.connect('config', this.structureColumnMenuConfigArchive.on());\n this.state.connect('translations', this.translationFacade.onTranslation());\n }\n isEnabled(config) {\n return config.isEnabled();\n }\n hideColumn() {\n this.compositionCommandInvoker.disableColumn(this.column.getColumnDefinitionId(), this.compositionId);\n this.structureColumnConfigService.close();\n }\n moveLeft() {\n this.compositionCommandInvoker.moveLeft(this.column.getColumnDefinitionId(), this.compositionId);\n this.structureColumnConfigService.close();\n }\n moveRight() {\n this.compositionCommandInvoker.moveRight(this.column.getColumnDefinitionId(), this.compositionId);\n this.structureColumnConfigService.close();\n }\n highlightColumn() {\n this.compositionCommandInvoker.highlightColumn(this.column.getColumnDefinitionId(), this.compositionId);\n this.structureColumnConfigService.close();\n }\n getSelectorName() {\n return 'gui-column-config';\n }\n selectIsEnabled() {\n return this.structureColumnMenuConfigArchive.on().pipe(hermesMap(config => config.isEnabled()));\n }\n static ɵfac = function StructureColumnConfigComponent_Factory(t) {\n return new (t || StructureColumnConfigComponent)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(TranslationFacade), i0.ɵɵdirectiveInject(StructureColumnMenuConfigArchive), i0.ɵɵdirectiveInject(CompositionId), i0.ɵɵdirectiveInject(CompositionPublisher), i0.ɵɵdirectiveInject(i0.Injector), i0.ɵɵdirectiveInject('column'));\n };\n static ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: StructureColumnConfigComponent,\n selectors: [[\"div\", \"gui-column-config\", \"\"]],\n viewQuery: function StructureColumnConfigComponent_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(_c52, 5, ElementRef);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.headerSortMenu = _t.first);\n }\n },\n features: [i0.ɵɵProvidersFeature([GuiState]), i0.ɵɵInheritDefinitionFeature],\n attrs: _c53,\n decls: 1,\n vars: 1,\n consts: [[4, \"guiLet\"], [\"class\", \"gui-header-menu-tab\", 4, \"ngIf\"], [1, \"gui-header-menu-tab\"], [3, \"active\", \"menu\"], [4, \"ngIf\"], [1, \"gui-tab-item-dropdown\", 3, \"tab\"], [\"gui-structure-column-config-sort\", \"\", 3, \"column\", \"dropdownTextTranslation\", 4, \"ngIf\"], [\"gui-structure-column-config-column-hide\", \"\", 3, \"columnHidden\", \"column\"], [1, \"gui-header-menu-item\", 3, \"click\"], [\"gui-structure-column-config-column-move\", \"\", 3, \"movedLeft\", \"movedRight\", \"column\"], [\"gui-structure-column-config-sort\", \"\", 3, \"column\", \"dropdownTextTranslation\"], [3, \"tab\"], [\"gui-unique-value-list\", \"\", 3, \"fieldId\"], [\"gui-structure-menu-column-manager\", \"\"]],\n template: function StructureColumnConfigComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, StructureColumnConfigComponent_ng_container_0_Template, 2, 1, \"ng-container\", 0);\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"guiLet\", ctx.state$);\n }\n },\n dependencies: [i4.NgIf, i1$1.FabricTabComponent, i1$1.FabricTabItemComponent, GuiLetDirective, StructureMenuColumnManagerComponent, UniqueValueListComponent, StructureColumnConfigSortComponent, StructureColumnConfigColumnHideComponent, StructureColumnConfigColumnMoveComponent, TranslationPipe],\n encapsulation: 2,\n changeDetection: 0\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(StructureColumnConfigComponent, [{\n type: Component,\n args: [{\n selector: 'div[gui-column-config]',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [GuiState],\n template: \"\\n\\n\\t
\\n\\n\\t\\t\\n\\n\\t\\t\\t\\n\\n\\t\\t\\t\\t\\n\\n\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t
\\n\\n\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t
\\n\\n\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t{{'headerMenuMainTabHighlightColumn' | guiTranslate}}\\n\\t\\t\\t\\t\\t
\\n\\n\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t
\\n\\n\\t\\t\\t\\t
\\n\\n\\t\\t\\t
\\n\\n\\t\\t\\t\\n\\n\\t\\t\\t\\t\\n\\n\\t\\t\\t\\t\\t\\n\\n\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t
\\n\\n\\t\\t\\t\\t
\\n\\n\\t\\t\\t
\\n\\n\\t\\t\\t\\n\\n\\t\\t\\t\\t\\n\\n\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t
\\n\\n\\t\\t\\t\\t
\\n\\n\\t\\t\\t
\\n\\n\\t\\t
\\n\\t
\\n\\n
\\n\"\n }]\n }], () => [{\n type: i0.ChangeDetectorRef\n }, {\n type: i0.ElementRef\n }, {\n type: TranslationFacade\n }, {\n type: StructureColumnMenuConfigArchive\n }, {\n type: CompositionId\n }, {\n type: CompositionPublisher\n }, {\n type: i0.Injector\n }, {\n type: CellTemplateWithContext,\n decorators: [{\n type: Inject,\n args: ['column']\n }]\n }], {\n headerSortMenu: [{\n type: ViewChild,\n args: ['headerSortMenu', {\n read: ElementRef,\n static: false\n }]\n }]\n });\n})();\nclass StructureColumnConfigService extends Reactive {\n injector;\n schemaReadModelRootId;\n schemaWarehouse;\n structureThemeConverter;\n inlineDialogService;\n constructor(injector, schemaReadModelRootId, schemaWarehouse, structureThemeConverter, inlineDialogService) {\n super();\n this.injector = injector;\n this.schemaReadModelRootId = schemaReadModelRootId;\n this.schemaWarehouse = schemaWarehouse;\n this.structureThemeConverter = structureThemeConverter;\n this.inlineDialogService = inlineDialogService;\n }\n open(elementRef, column) {\n this.close();\n const injector = Injector.create({\n providers: [{\n provide: 'column',\n useValue: column\n }],\n parent: this.injector\n });\n this.schemaWarehouse.onceTheme(this.schemaReadModelRootId).pipe(this.hermesTakeUntil()).subscribe(theme => {\n this.inlineDialogService.open(elementRef, StructureColumnConfigComponent, {\n injector: injector,\n placement: FabricPlacement.BOTTOM,\n offset: -34,\n theme: this.structureThemeConverter.convertTheme(theme),\n customClass: 'gui-inline-dialog-header-menu'\n });\n });\n }\n close() {\n this.inlineDialogService.close();\n }\n static ɵfac = function StructureColumnConfigService_Factory(t) {\n return new (t || StructureColumnConfigService)(i0.ɵɵinject(i0.Injector), i0.ɵɵinject(SchemaReadModelRootId), i0.ɵɵinject(SchemaWarehouse), i0.ɵɵinject(StructureThemeConverter), i0.ɵɵinject(i1$1.FabricInlineDialogService));\n };\n static ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: StructureColumnConfigService,\n factory: StructureColumnConfigService.ɵfac\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(StructureColumnConfigService, [{\n type: Injectable\n }], () => [{\n type: i0.Injector\n }, {\n type: SchemaReadModelRootId\n }, {\n type: SchemaWarehouse\n }, {\n type: StructureThemeConverter\n }, {\n type: i1$1.FabricInlineDialogService\n }], null);\n})();\nclass SelectCustomModalComponent extends DynamicallyCreatedComponent {\n formationPublisher;\n structureId = inject(StructureId);\n formationWarehouse = inject(FormationWarehouse);\n selection$ = this.formationWarehouse.onCustomSelections(this.structureId);\n constructor(elRef, formationPublisher) {\n super(elRef);\n this.formationPublisher = formationPublisher;\n }\n selectCustom(id) {\n this.formationPublisher.selectCustom(id, this.structureId);\n }\n getSelectorName() {\n return 'gui-select-custom-modal';\n }\n static ɵfac = function SelectCustomModalComponent_Factory(t) {\n return new (t || SelectCustomModalComponent)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(FormationPublisher));\n };\n static ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: SelectCustomModalComponent,\n selectors: [[\"div\", \"gui-select-custom-modal\", \"\"]],\n features: [i0.ɵɵInheritDefinitionFeature],\n attrs: _c54,\n decls: 1,\n vars: 1,\n consts: [[4, \"guiLet\"], [3, \"click\", 4, \"ngFor\", \"ngForOf\"], [3, \"click\"]],\n template: function SelectCustomModalComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, SelectCustomModalComponent_ul_0_Template, 2, 1, \"ul\", 0);\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"guiLet\", ctx.selection$);\n }\n },\n dependencies: [i4.NgForOf, GuiLetDirective],\n styles: [\".gui-select-custom-modal{background:#fff;border:1px solid #d6d6d6;border-radius:0 0 4px 4px}.gui-select-custom-modal ul{list-style:none;margin:0;padding:0}.gui-select-custom-modal ul li{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background:#fff;border-color:#d6d6d6;box-sizing:border-box;color:#333;cursor:pointer;display:block;font:14px Arial;padding:8px 12px}\\n\"],\n encapsulation: 2,\n changeDetection: 0\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(SelectCustomModalComponent, [{\n type: Component,\n args: [{\n selector: 'div[gui-select-custom-modal]',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n template: \"
    \\n\\t
  • \\n\\t\\t{{sel.text}}\\n\\t
  • \\n
\\n\",\n styles: [\".gui-select-custom-modal{background:#fff;border:1px solid #d6d6d6;border-radius:0 0 4px 4px}.gui-select-custom-modal ul{list-style:none;margin:0;padding:0}.gui-select-custom-modal ul li{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background:#fff;border-color:#d6d6d6;box-sizing:border-box;color:#333;cursor:pointer;display:block;font:14px Arial;padding:8px 12px}\\n\"]\n }]\n }], () => [{\n type: i0.ElementRef\n }, {\n type: FormationPublisher\n }], null);\n})();\nclass StructureSelectCustomService extends Reactive {\n injector;\n schemaReadModelRootId;\n schemaWarehouse;\n structureThemeConverter;\n inlineDialogService;\n constructor(injector, schemaReadModelRootId, schemaWarehouse, structureThemeConverter, inlineDialogService) {\n super();\n this.injector = injector;\n this.schemaReadModelRootId = schemaReadModelRootId;\n this.schemaWarehouse = schemaWarehouse;\n this.structureThemeConverter = structureThemeConverter;\n this.inlineDialogService = inlineDialogService;\n }\n open(elementRef) {\n this.close();\n this.schemaWarehouse.findTheme(this.schemaReadModelRootId).ifPresent(theme => {\n this.inlineDialogService.open(elementRef, SelectCustomModalComponent, {\n injector: this.injector,\n placement: FabricPlacement.BOTTOM,\n offset: 0,\n theme: this.structureThemeConverter.convertTheme(theme),\n customClass: 'gui-inline-dialog-header-menu'\n });\n });\n }\n close() {\n this.inlineDialogService.close();\n }\n static ɵfac = function StructureSelectCustomService_Factory(t) {\n return new (t || StructureSelectCustomService)(i0.ɵɵinject(i0.Injector), i0.ɵɵinject(SchemaReadModelRootId), i0.ɵɵinject(SchemaWarehouse), i0.ɵɵinject(StructureThemeConverter), i0.ɵɵinject(i1$1.FabricInlineDialogService));\n };\n static ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: StructureSelectCustomService,\n factory: StructureSelectCustomService.ɵfac\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(StructureSelectCustomService, [{\n type: Injectable\n }], () => [{\n type: i0.Injector\n }, {\n type: SchemaReadModelRootId\n }, {\n type: SchemaWarehouse\n }, {\n type: StructureThemeConverter\n }, {\n type: i1$1.FabricInlineDialogService\n }], null);\n})();\nclass SelectAllComponent extends GuiComponent {\n structureId;\n formationCommandDispatcher;\n formationWarehouse;\n state = inject(GuiState);\n state$ = this.state.select();\n constructor(elementRef, structureId, formationCommandDispatcher, formationWarehouse) {\n super(elementRef);\n this.structureId = structureId;\n this.formationCommandDispatcher = formationCommandDispatcher;\n this.formationWarehouse = formationWarehouse;\n this.state.setValue({\n modeMulti: false\n });\n this.state.connect('modeMulti', this.selectModeMulti());\n this.state.connect('isAllChecked', this.selectAllChecked());\n this.state.connect('isAllIndeterminate', this.selectAllIndeterminate());\n }\n toggleSelectAll(isAllIndeterminate, isAllChecked) {\n if (isAllIndeterminate) {\n this.formationCommandDispatcher.unselectAll(this.structureId);\n } else {\n if (isAllChecked) {\n this.formationCommandDispatcher.unselectAll(this.structureId);\n } else {\n this.formationCommandDispatcher.selectAll(this.structureId);\n }\n }\n }\n getSelectorName() {\n return 'gui-select-all';\n }\n selectModeMulti() {\n return this.formationWarehouse.onMode(this.structureId).pipe(hermesMap(mode => {\n return mode === RowSelectionMode.MULTIPLE;\n }));\n }\n selectAllChecked() {\n return this.formationWarehouse.onRowSelectedReadModel(this.structureId).pipe(hermesMap(rowSelectedReadModel => {\n return rowSelectedReadModel.isAllSelected();\n }));\n }\n selectAllIndeterminate() {\n return this.formationWarehouse.onRowSelectedReadModel(this.structureId).pipe(hermesMap(rowSelectedReadModel => {\n return rowSelectedReadModel.isIndeterminate();\n }));\n }\n static ɵfac = function SelectAllComponent_Factory(t) {\n return new (t || SelectAllComponent)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(StructureId), i0.ɵɵdirectiveInject(FormationPublisher), i0.ɵɵdirectiveInject(FormationWarehouse));\n };\n static ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: SelectAllComponent,\n selectors: [[\"div\", \"gui-select-all\", \"\"]],\n features: [i0.ɵɵProvidersFeature([GuiState]), i0.ɵɵInheritDefinitionFeature],\n attrs: _c55,\n decls: 1,\n vars: 1,\n consts: [[4, \"guiLet\"], [3, \"checked\", \"gui-tooltip\", \"indeterminate\", \"changed\", 4, \"ngIf\"], [3, \"changed\", \"checked\", \"gui-tooltip\", \"indeterminate\"]],\n template: function SelectAllComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, SelectAllComponent_ng_container_0_Template, 2, 1, \"ng-container\", 0);\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"guiLet\", ctx.state$);\n }\n },\n dependencies: [i4.NgIf, GuiLetDirective, i1$1.FabricCheckboxComponent, i1$1.FabricTooltipDirective],\n encapsulation: 2,\n changeDetection: 0\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(SelectAllComponent, [{\n type: Component,\n args: [{\n selector: 'div[gui-select-all]',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [GuiState],\n template: \"\\n\\t\\n\\t\\n\\n\"\n }]\n }], () => [{\n type: i0.ElementRef\n }, {\n type: StructureId\n }, {\n type: FormationPublisher\n }, {\n type: FormationWarehouse\n }], null);\n})();\nclass StructureColumnMenuIconComponent extends IconComponent {\n constructor(elementRef, changeDetectorRef) {\n super(elementRef, changeDetectorRef);\n }\n getSelectorName() {\n return 'gui-structure-column-menu-icon';\n }\n static ɵfac = function StructureColumnMenuIconComponent_Factory(t) {\n return new (t || StructureColumnMenuIconComponent)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef));\n };\n static ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: StructureColumnMenuIconComponent,\n selectors: [[\"div\", \"gui-structure-menu-icon\", \"\"]],\n features: [i0.ɵɵInheritDefinitionFeature],\n attrs: _c56,\n decls: 4,\n vars: 0,\n consts: [[\"data-name\", \"Layer 1\", \"xmlns\", \"http://www.w3.org/2000/svg\", \"viewBox\", \"0 0 10.32 7.46\"], [\"x1\", \"9.57\", \"y1\", \"3.73\", \"x2\", \"0.75\", \"y2\", \"3.73\", 1, \"cls-1\"], [\"x1\", \"9.57\", \"y1\", \"0.75\", \"x2\", \"0.75\", \"y2\", \"0.75\", 1, \"cls-1\"], [\"x1\", \"9.57\", \"y1\", \"6.71\", \"x2\", \"0.75\", \"y2\", \"6.71\", 1, \"cls-1\"]],\n template: function StructureColumnMenuIconComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"svg\", 0);\n i0.ɵɵelement(1, \"line\", 1)(2, \"line\", 2)(3, \"line\", 3);\n i0.ɵɵelementEnd();\n }\n },\n encapsulation: 2,\n changeDetection: 0\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(StructureColumnMenuIconComponent, [{\n type: Component,\n args: [{\n selector: 'div[gui-structure-menu-icon]',\n template: `\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n }]\n }], () => [{\n type: i0.ElementRef\n }, {\n type: i0.ChangeDetectorRef\n }], null);\n})();\nclass StructureColumnConfigTriggerComponent extends SmartComponent {\n structureColumnConfigService;\n headerDialogContainer;\n column;\n structureColumnMenuConfigArchive = inject(StructureColumnMenuConfigArchive);\n isEnabled$ = this.selectIsEnabled();\n constructor(elementRef, changeDetectorRef, structureColumnConfigService) {\n super(changeDetectorRef, elementRef);\n this.structureColumnConfigService = structureColumnConfigService;\n }\n openConfigDialog() {\n this.structureColumnConfigService.open(this.headerDialogContainer, this.column);\n }\n getSelectorName() {\n return 'gui-structure-column-config-trigger';\n }\n selectIsEnabled() {\n return this.structureColumnMenuConfigArchive.on().pipe(hermesMap(config => {\n return config.isEnabled();\n }));\n }\n static ɵfac = function StructureColumnConfigTriggerComponent_Factory(t) {\n return new (t || StructureColumnConfigTriggerComponent)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(StructureColumnConfigService));\n };\n static ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: StructureColumnConfigTriggerComponent,\n selectors: [[\"div\", \"gui-structure-column-config-trigger\", \"\"]],\n viewQuery: function StructureColumnConfigTriggerComponent_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(_c57, 5, ElementRef);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.headerDialogContainer = _t.first);\n }\n },\n inputs: {\n column: \"column\"\n },\n features: [i0.ɵɵInheritDefinitionFeature],\n attrs: _c58,\n decls: 1,\n vars: 1,\n consts: [[\"headerDialogContainer\", \"\"], [\"class\", \"gui-header-menu-icon-wrapper\", 3, \"click\", 4, \"guiIf\"], [1, \"gui-header-menu-icon-wrapper\", 3, \"click\"], [\"gui-structure-menu-icon\", \"\", 3, \"ngClass\"]],\n template: function StructureColumnConfigTriggerComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, StructureColumnConfigTriggerComponent_div_0_Template, 3, 1, \"div\", 1);\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"guiIf\", ctx.isEnabled$);\n }\n },\n dependencies: [i4.NgClass, GuiIfDirective, StructureColumnMenuIconComponent],\n encapsulation: 2,\n changeDetection: 0\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(StructureColumnConfigTriggerComponent, [{\n type: Component,\n args: [{\n selector: 'div[gui-structure-column-config-trigger]',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n template: \"
\\n\\n\\t
\\n\\n
\\n\"\n }]\n }], () => [{\n type: i0.ElementRef\n }, {\n type: i0.ChangeDetectorRef\n }, {\n type: StructureColumnConfigService\n }], {\n headerDialogContainer: [{\n type: ViewChild,\n args: ['headerDialogContainer', {\n read: ElementRef,\n static: false\n }]\n }],\n column: [{\n type: Input\n }]\n });\n})();\nclass StructureHeaderColumnsComponent extends SmartComponent {\n elementRef;\n injector;\n changeDetectorRef;\n compositionId;\n structureId;\n structureSelectCustomService;\n formationCommandDispatcher;\n sortingCommandDispatcher;\n selectCustomContainer;\n columns;\n showSelection = false;\n showCustom = true;\n constructor(elementRef, injector, changeDetectorRef, compositionId, structureId, structureSelectCustomService, formationCommandDispatcher, sortingCommandDispatcher) {\n super(changeDetectorRef, elementRef);\n this.elementRef = elementRef;\n this.injector = injector;\n this.changeDetectorRef = changeDetectorRef;\n this.compositionId = compositionId;\n this.structureId = structureId;\n this.structureSelectCustomService = structureSelectCustomService;\n this.formationCommandDispatcher = formationCommandDispatcher;\n this.sortingCommandDispatcher = sortingCommandDispatcher;\n }\n toggleSort(column) {\n if (column.isSortEnabled()) {\n this.sortingCommandDispatcher.toggleSort(column.getFieldId(), this.compositionId, this.structureId);\n }\n }\n openConfigDialog() {\n this.structureSelectCustomService.open(this.selectCustomContainer);\n }\n getSelectorName() {\n return 'gui-structure-header-columns';\n }\n static ɵfac = function StructureHeaderColumnsComponent_Factory(t) {\n return new (t || StructureHeaderColumnsComponent)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.Injector), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(CompositionId), i0.ɵɵdirectiveInject(StructureId), i0.ɵɵdirectiveInject(StructureSelectCustomService), i0.ɵɵdirectiveInject(FormationPublisher), i0.ɵɵdirectiveInject(SortingPublisher));\n };\n static ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: StructureHeaderColumnsComponent,\n selectors: [[\"div\", \"gui-structure-header-columns\", \"\", \"columns\", \"\"]],\n viewQuery: function StructureHeaderColumnsComponent_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(_c59, 5, ElementRef);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.selectCustomContainer = _t.first);\n }\n },\n inputs: {\n columns: \"columns\",\n showSelection: \"showSelection\"\n },\n features: [i0.ɵɵProvidersFeature([StructureColumnConfigService, StructureSelectCustomService]), i0.ɵɵInheritDefinitionFeature],\n attrs: _c60,\n decls: 2,\n vars: 2,\n consts: [[\"class\", \"gui-header-cell gui-row-checkbox\\n\\t gui-flex gui-justify-between\\n\\t gui-overflow-hidden gui-relative gui-py-0 gui-px-6 gui-box-border\\n\\t gui-leading-4 gui-whitespace-nowrap gui-overflow-ellipsis\", 4, \"ngIf\"], [\"class\", \"gui-header-cell gui-flex gui-justify-between\\n\\t gui-overflow-hidden gui-relative gui-py-0 gui-px-6 gui-box-border\\n\\t gui-leading-4 gui-whitespace-nowrap gui-overflow-ellipsis\", 3, \"class\", \"ngClass\", \"width\", \"style\", \"click\", 4, \"ngFor\", \"ngForOf\"], [1, \"gui-header-cell\", \"gui-row-checkbox\", \"gui-flex\", \"gui-justify-between\", \"gui-overflow-hidden\", \"gui-relative\", \"gui-py-0\", \"gui-px-6\", \"gui-box-border\", \"gui-leading-4\", \"gui-whitespace-nowrap\", \"gui-overflow-ellipsis\"], [\"gui-select-all\", \"\"], [1, \"gui-header-cell\", \"gui-flex\", \"gui-justify-between\", \"gui-overflow-hidden\", \"gui-relative\", \"gui-py-0\", \"gui-px-6\", \"gui-box-border\", \"gui-leading-4\", \"gui-whitespace-nowrap\", \"gui-overflow-ellipsis\", 3, \"click\", \"ngClass\"], [1, \"gui-header-title\"], [4, \"ngTemplateOutlet\", \"ngTemplateOutletContext\"], [\"class\", \"gui-ml-6\", \"gui-structure-arrow-icon\", \"\", 3, \"position\", \"sort\", 4, \"ngIf\"], [1, \"gui-header-menu\"], [\"gui-structure-column-config-trigger\", \"\", 3, \"column\"], [\"gui-structure-arrow-icon\", \"\", 1, \"gui-ml-6\", 3, \"position\", \"sort\"]],\n template: function StructureHeaderColumnsComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, StructureHeaderColumnsComponent_div_0_Template, 2, 0, \"div\", 0)(1, StructureHeaderColumnsComponent_div_1_Template, 6, 13, \"div\", 1);\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"ngIf\", ctx.showSelection);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngForOf\", ctx.columns);\n }\n },\n dependencies: [i4.NgClass, i4.NgForOf, i4.NgIf, i4.NgTemplateOutlet, SelectAllComponent, StructureColumnConfigTriggerComponent, StructureArrowIconComponent],\n encapsulation: 2,\n changeDetection: 0\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(StructureHeaderColumnsComponent, [{\n type: Component,\n args: [{\n selector: 'div[gui-structure-header-columns][columns]',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [StructureColumnConfigService, StructureSelectCustomService],\n template: \"
\\n\\t
\\n
\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n
\\n\\n\\t
\\n\\t\\t\\n\\t\\t\\n\\n\\t\\t
\\n\\t\\t
\\n\\n\\t
\\n\\n\\t
\\n\\t\\t
\\n\\t\\t
\\n\\t
\\n
\\n\"\n }]\n }], () => [{\n type: i0.ElementRef\n }, {\n type: i0.Injector\n }, {\n type: i0.ChangeDetectorRef\n }, {\n type: CompositionId\n }, {\n type: StructureId\n }, {\n type: StructureSelectCustomService\n }, {\n type: FormationPublisher\n }, {\n type: SortingPublisher\n }], {\n selectCustomContainer: [{\n type: ViewChild,\n args: ['selectCustomContainer', {\n read: ElementRef,\n static: false\n }]\n }],\n columns: [{\n type: Input\n }],\n showSelection: [{\n type: Input\n }]\n });\n})();\nclass StructureHeaderGroupsComponent extends PureComponent {\n elementRef;\n injector;\n changeDetectorRef;\n compositionId;\n structureId;\n formationCommandDispatcher;\n sortingCommandDispatcher;\n groups;\n showGroups;\n checkboxSelection = false;\n globalSearching = false;\n constructor(elementRef, injector, changeDetectorRef, compositionId, structureId, formationCommandDispatcher, sortingCommandDispatcher) {\n super(elementRef);\n this.elementRef = elementRef;\n this.injector = injector;\n this.changeDetectorRef = changeDetectorRef;\n this.compositionId = compositionId;\n this.structureId = structureId;\n this.formationCommandDispatcher = formationCommandDispatcher;\n this.sortingCommandDispatcher = sortingCommandDispatcher;\n }\n toggleSort(column) {\n if (column.isSortEnabled()) {\n this.sortingCommandDispatcher.toggleSort(column.getFieldId(), this.compositionId, this.structureId);\n }\n }\n isSortAsc(column) {\n return column.getSortStatus() === SortOrder.ASC;\n }\n isSortDesc(column) {\n return column.getSortStatus() === SortOrder.DESC;\n }\n isGlobalSortEnabled() {\n return this.globalSearching;\n }\n getSelectorName() {\n return 'gui-structure-header-groups';\n }\n static ɵfac = function StructureHeaderGroupsComponent_Factory(t) {\n return new (t || StructureHeaderGroupsComponent)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.Injector), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(CompositionId), i0.ɵɵdirectiveInject(StructureId), i0.ɵɵdirectiveInject(FormationPublisher), i0.ɵɵdirectiveInject(SortingPublisher));\n };\n static ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: StructureHeaderGroupsComponent,\n selectors: [[\"div\", \"gui-structure-header-groups\", \"\", \"groups\", \"\", \"checkboxSelection\", \"\"]],\n inputs: {\n groups: \"groups\",\n showGroups: \"showGroups\",\n checkboxSelection: \"checkboxSelection\"\n },\n features: [i0.ɵɵProvidersFeature([StructureColumnConfigService]), i0.ɵɵInheritDefinitionFeature],\n attrs: _c62,\n decls: 2,\n vars: 2,\n consts: [[\"class\", \"gui-header-cell gui-row-checkbox gui-flex gui-justify-between\\n\\t gui-overflow-hidden gui-relative gui-py-0 gui-px-6 gui-box-border\\n\\t gui-leading-4 gui-whitespace-nowrap gui-overflow-ellipsis\", 4, \"ngIf\"], [\"class\", \"gui-header-cell gui-flex gui-justify-between\\n\\t gui-overflow-hidden gui-relative gui-py-0 gui-px-6 gui-box-border\\n\\t gui-leading-4 gui-whitespace-nowrap gui-overflow-ellipsis\", 3, \"width\", 4, \"ngFor\", \"ngForOf\"], [1, \"gui-header-cell\", \"gui-row-checkbox\", \"gui-flex\", \"gui-justify-between\", \"gui-overflow-hidden\", \"gui-relative\", \"gui-py-0\", \"gui-px-6\", \"gui-box-border\", \"gui-leading-4\", \"gui-whitespace-nowrap\", \"gui-overflow-ellipsis\"], [\"gui-select-all\", \"\"], [1, \"gui-header-cell\", \"gui-flex\", \"gui-justify-between\", \"gui-overflow-hidden\", \"gui-relative\", \"gui-py-0\", \"gui-px-6\", \"gui-box-border\", \"gui-leading-4\", \"gui-whitespace-nowrap\", \"gui-overflow-ellipsis\"], [1, \"gui-header-title\"]],\n template: function StructureHeaderGroupsComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, StructureHeaderGroupsComponent_div_0_Template, 2, 0, \"div\", 0)(1, StructureHeaderGroupsComponent_div_1_Template, 3, 3, \"div\", 1);\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"ngIf\", ctx.checkboxSelection);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngForOf\", ctx.groups);\n }\n },\n dependencies: [i4.NgForOf, i4.NgIf, SelectAllComponent],\n encapsulation: 2,\n changeDetection: 0\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(StructureHeaderGroupsComponent, [{\n type: Component,\n args: [{\n selector: 'div[gui-structure-header-groups][groups][checkboxSelection]',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [StructureColumnConfigService],\n template: \"
\\n\\t
\\n
\\n\\n
\\n\\n\\t
\\n\\t\\t{{group.header}}\\n\\t
\\n
\\n\"\n }]\n }], () => [{\n type: i0.ElementRef\n }, {\n type: i0.Injector\n }, {\n type: i0.ChangeDetectorRef\n }, {\n type: CompositionId\n }, {\n type: StructureId\n }, {\n type: FormationPublisher\n }, {\n type: SortingPublisher\n }], {\n groups: [{\n type: Input\n }],\n showGroups: [{\n type: Input\n }],\n checkboxSelection: [{\n type: Input\n }]\n });\n})();\nclass StructureHeaderFiltersComponent extends PureComponent {\n structureFilterCommandService;\n formBuilder;\n cd;\n effects;\n structureId;\n columns;\n closed = new EventEmitter();\n filterFieldName = 'phrase';\n filterForm;\n filterMode = false;\n constructor(structureFilterCommandService, formBuilder, cd, effects, elementRef, structureId) {\n super(elementRef);\n this.structureFilterCommandService = structureFilterCommandService;\n this.formBuilder = formBuilder;\n this.cd = cd;\n this.effects = effects;\n this.structureId = structureId;\n this.filterForm = this.formBuilder.group({\n [this.filterFieldName]: ['']\n });\n }\n ngOnInit() {\n this.effects.register(this.selectFilterFormChanges(), f => {\n this.filter(f[this.filterFieldName]);\n });\n }\n filter(phrase) {\n if (phrase === undefined || phrase === null) {\n phrase = '';\n }\n // this.structureFilterCommandService.addFilter(this.columns[0].getFieldId(), '1', phrase, this.structureId);\n }\n clearFilters() {\n this.filterForm.reset();\n }\n turnOnFilterMode() {\n this.filterMode = true;\n this.cd.detectChanges();\n }\n turnOffFilterMode() {\n this.filterMode = false;\n this.cd.detectChanges();\n }\n getSelectorName() {\n return '';\n }\n selectFilterFormChanges() {\n return fromRxJsObservable(this.filterForm.valueChanges);\n }\n static ɵfac = function StructureHeaderFiltersComponent_Factory(t) {\n return new (t || StructureHeaderFiltersComponent)(i0.ɵɵdirectiveInject(FilterPublisher), i0.ɵɵdirectiveInject(i1$2.FormBuilder), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(GuiEffects), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(StructureId));\n };\n static ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: StructureHeaderFiltersComponent,\n selectors: [[\"div\", \"gui-structure-header-filters\", \"\", \"columns\", \"\"]],\n inputs: {\n columns: \"columns\"\n },\n outputs: {\n closed: \"closed\"\n },\n features: [i0.ɵɵProvidersFeature([GuiEffects]), i0.ɵɵInheritDefinitionFeature],\n attrs: _c63,\n decls: 2,\n vars: 2,\n consts: [[4, \"ngIf\"], [\"class\", \"gui-header-cell gui-flex gui-justify-between\\n\\t gui-overflow-hidden gui-relative gui-py-0 gui-px-6 gui-box-border\\n\\t gui-leading-4 gui-whitespace-nowrap gui-overflow-ellipsis\", 3, \"width\", 4, \"ngFor\", \"ngForOf\"], [1, \"gui-header-cell\", \"gui-flex\", \"gui-justify-between\", \"gui-overflow-hidden\", \"gui-relative\", \"gui-py-0\", \"gui-px-6\", \"gui-box-border\", \"gui-leading-4\", \"gui-whitespace-nowrap\", \"gui-overflow-ellipsis\"], [3, \"click\"], [3, \"options\", \"selected\"], [3, \"formGroup\"], [\"type\", \"text\", \"gui-input\", \"\", 3, \"formControlName\"], [\"gui-button\", \"\", 3, \"click\"]],\n template: function StructureHeaderFiltersComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, StructureHeaderFiltersComponent_ng_container_0_Template, 2, 1, \"ng-container\", 0)(1, StructureHeaderFiltersComponent_ng_container_1_Template, 8, 5, \"ng-container\", 0);\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"ngIf\", !ctx.filterMode);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.filterMode);\n }\n },\n dependencies: [i4.NgForOf, i4.NgIf, i1$2.ɵNgNoValidate, i1$2.DefaultValueAccessor, i1$2.NgControlStatus, i1$2.NgControlStatusGroup, i1$2.FormGroupDirective, i1$2.FormControlName, i1$1.FabricButtonComponent, i1$1.FabricSelectComponent, i1$1.FabricInputComponent],\n encapsulation: 2,\n changeDetection: 0\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(StructureHeaderFiltersComponent, [{\n type: Component,\n args: [{\n selector: 'div[gui-structure-header-filters][columns]',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [GuiEffects],\n template: \"\\n\\n\\t
\\n\\n\\t\\t\\n\\t\\t\\n\\n\\t\\t\\n\\n\\t
\\n\\n
\\n\\n\\n\\n\\t\\n\\n\\t\\n\\n\\t
\\n\\t\\t\\n\\t
\\n\\n\\t\\n\\t\\n\\n
\\n\\n\"\n }]\n }], () => [{\n type: FilterPublisher\n }, {\n type: i1$2.FormBuilder\n }, {\n type: i0.ChangeDetectorRef\n }, {\n type: GuiEffects\n }, {\n type: i0.ElementRef\n }, {\n type: StructureId\n }], {\n columns: [{\n type: Input\n }],\n closed: [{\n type: Output\n }]\n });\n})();\nclass StructureHeaderComponent extends GuiComponent {\n filterWarehouse;\n formationWarehouse;\n compositionTemplateWarehouse;\n state = inject(GuiState);\n compositionWarehouse = inject(CompositionWarehouse);\n structureId = inject(StructureId);\n compositionId = inject(CompositionId);\n verticalFormationWarehouse = inject(VerticalFormationWarehouse);\n state$ = this.state.select();\n width$ = this.compositionWarehouse.onContainerWidth(this.compositionId).pipe(hermesMap(width => {\n return {\n width\n };\n }));\n filterHeaderHeight$ = this.verticalFormationWarehouse.onRowHeight(this.structureId).pipe(hermesMap(rowHeight => {\n const headerHeight = +rowHeight + 2;\n return {\n height: headerHeight\n };\n }));\n constructor(elementRef, filterWarehouse, formationWarehouse, compositionTemplateWarehouse) {\n super(elementRef);\n this.filterWarehouse = filterWarehouse;\n this.formationWarehouse = formationWarehouse;\n this.compositionTemplateWarehouse = compositionTemplateWarehouse;\n this.state.setValue({\n headerColumns: [],\n filterRowEnabled: false,\n showGroups: false\n });\n this.state.connect('showSelection', this.selectShowSelection());\n this.state.connect('headerColumns', this.compositionTemplateWarehouse.onHeaderCols(this.compositionId));\n this.state.connect('filterRowEnabled', this.filterWarehouse.onFilteringEnabled(this.structureId));\n this.state.connect('showGroups', this.selectShowGroups());\n this.state.connect('groups', this.selectGroups());\n }\n getSelectorName() {\n return 'gui-structure-header';\n }\n selectGroups() {\n return this.compositionWarehouse.onGroups(this.compositionId).pipe(hermesMap(collection => collection.getGroups()));\n }\n selectShowGroups() {\n return this.compositionWarehouse.onGroups(this.compositionId).pipe(hermesMap(collection => collection.isVisible()));\n }\n selectShowSelection() {\n return this.formationWarehouse.onType(this.structureId).pipe(hermesMap(type => {\n return type === RowSelectionType.CHECKBOX || type === RowSelectionType.RADIO;\n }));\n }\n static ɵfac = function StructureHeaderComponent_Factory(t) {\n return new (t || StructureHeaderComponent)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(FilterWarehouse), i0.ɵɵdirectiveInject(FormationWarehouse), i0.ɵɵdirectiveInject(CompositionTemplateWarehouse));\n };\n static ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: StructureHeaderComponent,\n selectors: [[\"div\", \"gui-structure-header\", \"\"]],\n features: [i0.ɵɵProvidersFeature([GuiState]), i0.ɵɵInheritDefinitionFeature],\n attrs: _c65,\n decls: 3,\n vars: 3,\n consts: [[4, \"guiLet\"], [\"class\", \"gui-header\", \"gui-structure-header-columns\", \"\", 3, \"columns\", \"guiStyle\", \"showSelection\", 4, \"guiLet\"], [\"class\", \"gui-header\", \"gui-structure-header-groups\", \"\", 3, \"checkboxSelection\", \"groups\", 4, \"ngIf\"], [\"gui-structure-header-groups\", \"\", 1, \"gui-header\", 3, \"checkboxSelection\", \"groups\"], [\"gui-structure-header-columns\", \"\", 1, \"gui-header\", 3, \"columns\", \"guiStyle\", \"showSelection\"], [\"class\", \"gui-header\", \"gui-structure-header-filters\", \"\", 3, \"columns\", \"guiStyle\", 4, \"ngIf\"], [\"gui-structure-header-filters\", \"\", 1, \"gui-header\", 3, \"columns\", \"guiStyle\"]],\n template: function StructureHeaderComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, StructureHeaderComponent_ng_container_0_Template, 2, 1, \"ng-container\", 0)(1, StructureHeaderComponent_div_1_Template, 1, 3, \"div\", 1)(2, StructureHeaderComponent_ng_container_2_Template, 2, 1, \"ng-container\", 0);\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"guiLet\", ctx.state$);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"guiLet\", ctx.state$);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"guiLet\", ctx.state$);\n }\n },\n dependencies: [i4.NgIf, GuiLetDirective, GuiStyleDirective, StructureHeaderColumnsComponent, StructureHeaderGroupsComponent, StructureHeaderFiltersComponent],\n encapsulation: 2,\n changeDetection: 0\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(StructureHeaderComponent, [{\n type: Component,\n args: [{\n selector: 'div[gui-structure-header]',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [GuiState],\n template: \"\\n\\t
\\n\\t
\\n
\\n\\n
\\n
\\n\\n\\n\\t
\\n\\t
\\n
\\n\"\n }]\n }], () => [{\n type: i0.ElementRef\n }, {\n type: FilterWarehouse\n }, {\n type: FormationWarehouse\n }, {\n type: CompositionTemplateWarehouse\n }], null);\n})();\nclass ResizeDetector {\n platformId;\n constructor(platformId) {\n this.platformId = platformId;\n }\n on(element) {\n if (isPlatformBrowser(this.platformId)) {\n return fromRxJsObservable(new Observable(observer => {\n const resizeObserver = new ResizeObserver(entries => {\n if (entries && entries.length > 0) {\n observer.next(entries[0].contentRect);\n }\n });\n resizeObserver.observe(element);\n return () => resizeObserver.disconnect();\n }).pipe(throttleTime(25)));\n }\n return hermesEmpty();\n }\n destroy(element) {}\n static ɵfac = function ResizeDetector_Factory(t) {\n return new (t || ResizeDetector)(i0.ɵɵinject(PLATFORM_ID));\n };\n static ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: ResizeDetector,\n factory: ResizeDetector.ɵfac\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(ResizeDetector, [{\n type: Injectable\n }], () => [{\n type: undefined,\n decorators: [{\n type: Inject,\n args: [PLATFORM_ID]\n }]\n }], null);\n})();\nvar RowSelectToggleType;\n(function (RowSelectToggleType) {\n RowSelectToggleType[RowSelectToggleType[\"NONE\"] = 0] = \"NONE\";\n RowSelectToggleType[RowSelectToggleType[\"ADD\"] = 1] = \"ADD\";\n RowSelectToggleType[RowSelectToggleType[\"RANGE\"] = 2] = \"RANGE\";\n})(RowSelectToggleType || (RowSelectToggleType = {}));\nclass ChangedValueEmitter {\n subject$ = new HermesReplaySubject(1);\n constructor() {}\n emit(value) {\n this.subject$.next(value);\n }\n on() {\n return this.subject$.toObservable();\n }\n}\nclass StructureEditSourceItemParams {\n itemId;\n columnFieldId;\n value;\n constructor(itemId, columnFieldId,\n // TODO Rethink\n value) {\n this.itemId = itemId;\n this.columnFieldId = columnFieldId;\n this.value = value;\n }\n getItemId() {\n return this.itemId;\n }\n getColumnFieldId() {\n return this.columnFieldId;\n }\n getValue() {\n return this.value;\n }\n}\nclass StructureCellEditBooleanComponent extends SmartComponent {\n changeDetectorRef;\n structureId;\n sourceCommandService;\n cellContainerRef;\n entity;\n cell;\n editContext;\n valueChanges$;\n status$;\n actualValue;\n constructor(changeDetectorRef, elementRef, structureId, sourceCommandService) {\n super(changeDetectorRef, elementRef);\n this.changeDetectorRef = changeDetectorRef;\n this.structureId = structureId;\n this.sourceCommandService = sourceCommandService;\n }\n ngOnChanges(changes) {\n ifChanged(changes.entity, () => {\n this.initEditContext();\n });\n ifChanged(changes.cell, () => {\n this.initEditContext();\n });\n }\n ngOnInit() {\n this.initEditContext();\n }\n getSelectorName() {\n return 'gui-structure-cell-edit-boolean';\n }\n submitChanges() {\n const itemId = this.entity.getId(),\n updatedValue = this.actualValue,\n fieldId = this.cell.columnFieldId;\n this.sourceCommandService.editItem(new StructureEditSourceItemParams(itemId, fieldId, updatedValue), this.structureId);\n }\n initEditContext() {\n this.valueChanges$ = new ChangedValueEmitter();\n this.status$ = new ChangedValueEmitter();\n this.editContext = {\n status: this.status$,\n valueChanges: this.valueChanges$,\n value: this.cell.getValue(this.entity).value,\n focus: false,\n parent: this.cellContainerRef\n };\n this.observeValueChanges();\n this.status$.on().pipe(this.takeUntil()).subscribe(status => {\n switch (status) {\n case EditEventType.SUBMIT:\n this.submitChanges();\n break;\n default:\n break;\n }\n });\n }\n observeValueChanges() {\n this.valueChanges$.on().pipe(this.takeUntil()).subscribe(value => {\n this.actualValue = value;\n });\n }\n static ɵfac = function StructureCellEditBooleanComponent_Factory(t) {\n return new (t || StructureCellEditBooleanComponent)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(StructureId), i0.ɵɵdirectiveInject(SourcePublisher));\n };\n static ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: StructureCellEditBooleanComponent,\n selectors: [[\"div\", \"gui-structure-cell-edit-boolean\", \"\", \"entity\", \"\", \"cell\", \"\"]],\n viewQuery: function StructureCellEditBooleanComponent_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(_c66, 7);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.cellContainerRef = _t.first);\n }\n },\n inputs: {\n entity: \"entity\",\n cell: \"cell\"\n },\n features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature],\n attrs: _c67,\n decls: 3,\n vars: 2,\n consts: [[\"cellContainer\", \"\"], [4, \"ngTemplateOutlet\", \"ngTemplateOutletContext\"]],\n template: function StructureCellEditBooleanComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"span\", null, 0);\n i0.ɵɵtemplate(2, StructureCellEditBooleanComponent_ng_container_2_Template, 1, 0, \"ng-container\", 1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx.cell.editTemplate)(\"ngTemplateOutletContext\", ctx.editContext);\n }\n },\n dependencies: [i4.NgTemplateOutlet],\n encapsulation: 2,\n changeDetection: 0\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(StructureCellEditBooleanComponent, [{\n type: Component,\n args: [{\n selector: 'div[gui-structure-cell-edit-boolean][entity][cell]',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n template: \"\\n\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t\\n\"\n }]\n }], () => [{\n type: i0.ChangeDetectorRef\n }, {\n type: i0.ElementRef\n }, {\n type: StructureId\n }, {\n type: SourcePublisher\n }], {\n cellContainerRef: [{\n type: ViewChild,\n args: ['cellContainer', {\n static: true\n }]\n }],\n entity: [{\n type: Input\n }],\n cell: [{\n type: Input\n }]\n });\n})();\nclass StructureCellComponent extends SmartComponent {\n changeDetectorRef;\n elementRef;\n structureId;\n compositionId;\n structureCellEditStore;\n cellEditCloseAllService;\n sourceCommandService;\n compositionWarehouse;\n entity;\n cell;\n editMode;\n cellEditorManager;\n searchPhrase;\n rowIndex;\n columnIndex;\n inEditMode = false;\n editContext;\n valueChanges$;\n status$;\n actualValue;\n isHighlighted;\n constructor(changeDetectorRef, elementRef, structureId, compositionId, structureCellEditStore, cellEditCloseAllService, sourceCommandService, compositionWarehouse) {\n super(changeDetectorRef, elementRef);\n this.changeDetectorRef = changeDetectorRef;\n this.elementRef = elementRef;\n this.structureId = structureId;\n this.compositionId = compositionId;\n this.structureCellEditStore = structureCellEditStore;\n this.cellEditCloseAllService = cellEditCloseAllService;\n this.sourceCommandService = sourceCommandService;\n this.compositionWarehouse = compositionWarehouse;\n }\n ngOnInit() {\n this.subscribe(this.compositionWarehouse.onHighlightedColumn(new ColumnId(this.cell.columnDefinitionId.toString()), this.compositionId), value => {\n this.isHighlighted = value;\n });\n }\n ngAfterViewInit() {\n super.ngAfterViewInit();\n this.subscribeWithoutRender(this.cellEditCloseAllService.onCloseAll(), () => {\n this.exitEditMode();\n });\n }\n isCellEditingEnabled() {\n return this.cellEditorManager.isEnabled(this.cell.getValue(this.entity), this.entity.getSourceItem(), this.rowIndex) && this.cell.isCellEditingEnabled();\n }\n enterEditMode(forceCheck = true) {\n if (!this.isCellEditingEnabled()) {\n return;\n }\n this.cellEditCloseAllService.closeAll();\n hermesTimer(0).pipe(this.takeUntil()).subscribe(() => {\n this.inEditMode = true;\n this.valueChanges$ = new ChangedValueEmitter();\n this.status$ = new ChangedValueEmitter();\n this.editContext = {\n status: this.status$,\n valueChanges: this.valueChanges$,\n value: this.cell.getValue(this.entity).value,\n focus: forceCheck,\n parent: this.elementRef\n };\n this.observeFieldStatus();\n this.observeValueChanges();\n this.publishEditEnter();\n if (!forceCheck) {\n this.changeDetectorRef.markForCheck();\n } else {\n this.changeDetectorRef.detectChanges();\n }\n });\n }\n exitEditMode() {\n this.inEditMode = false;\n this.changeDetectorRef.detectChanges();\n }\n submitChangesAndExit() {\n const itemId = this.entity.getId(),\n updatedValue = this.actualValue,\n fieldId = this.cell.columnFieldId;\n this.sourceCommandService.editItem(new StructureEditSourceItemParams(itemId, fieldId, updatedValue), this.structureId);\n this.exitEditMode();\n }\n getSelectorName() {\n return 'gui-structure-cell';\n }\n observeFieldStatus() {\n this.status$.on().pipe(this.takeUntil()).subscribe(status => {\n switch (status) {\n case EditEventType.SUBMIT:\n this.submitChangesAndExit();\n this.publishEditSubmit();\n break;\n case EditEventType.CANCEL:\n this.exitEditMode();\n this.publishEditCancel();\n break;\n default:\n break;\n }\n });\n }\n observeValueChanges() {\n this.valueChanges$.on().pipe(this.takeUntil()).subscribe(value => {\n this.actualValue = value;\n });\n }\n publishEditState(state) {\n this.structureCellEditStore.next(state);\n }\n publishEditEnter() {\n this.publishEditState(StructureCellEditState.ENTER);\n }\n publishEditCancel() {\n this.publishEditState(StructureCellEditState.CANCEL);\n }\n publishEditSubmit() {\n this.publishEditState(StructureCellEditState.SUBMIT);\n }\n static ɵfac = function StructureCellComponent_Factory(t) {\n return new (t || StructureCellComponent)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(StructureId), i0.ɵɵdirectiveInject(CompositionId), i0.ɵɵdirectiveInject(StructureCellEditStore), i0.ɵɵdirectiveInject(StructureCellEditCloseAllService), i0.ɵɵdirectiveInject(SourcePublisher), i0.ɵɵdirectiveInject(CompositionWarehouse));\n };\n static ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: StructureCellComponent,\n selectors: [[\"div\", \"gui-structure-cell\", \"\", \"entity\", \"\", \"cell\", \"\"]],\n inputs: {\n entity: \"entity\",\n cell: \"cell\",\n editMode: \"editMode\",\n cellEditorManager: \"cellEditorManager\",\n searchPhrase: \"searchPhrase\",\n rowIndex: \"rowIndex\",\n columnIndex: \"columnIndex\"\n },\n features: [i0.ɵɵInheritDefinitionFeature],\n attrs: _c68,\n decls: 2,\n vars: 2,\n consts: [[4, \"ngIf\"], [3, \"ngClass\", \"click\", 4, \"ngIf\"], [\"class\", \"gui-cell-edit-mode\", 4, \"ngIf\"], [3, \"click\", \"ngClass\"], [4, \"ngTemplateOutlet\", \"ngTemplateOutletContext\"], [1, \"gui-cell-edit-mode\"], [\"gui-structure-cell-edit-boolean\", \"\", 3, \"cell\", \"entity\"]],\n template: function StructureCellComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, StructureCellComponent_ng_container_0_Template, 3, 2, \"ng-container\", 0)(1, StructureCellComponent_ng_container_1_Template, 2, 2, \"ng-container\", 0);\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"ngIf\", !ctx.cell.isBooleanDataType() || ctx.cell.isBooleanDataType() && !ctx.isCellEditingEnabled());\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.cell.isBooleanDataType() && ctx.isCellEditingEnabled());\n }\n },\n dependencies: [i4.NgClass, i4.NgIf, i4.NgTemplateOutlet, StructureCellEditBooleanComponent],\n encapsulation: 2,\n changeDetection: 0\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(StructureCellComponent, [{\n type: Component,\n args: [{\n selector: 'div[gui-structure-cell][entity][cell]',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n template: \"\\n\\n\\t\\n\\t\\t\\n\\t\\t\\n\\t\\n\\n\\t\\n\\t\\t\\n\\t\\t\\n\\t\\n\\n\\n\\t\\n\\t\\n\\n\\t\\n\\t\\n\\t\\n\\t\\n\\n\\n\\n\\n\\n\\t
\\n\\t
\\n
\\n\"\n }]\n }], () => [{\n type: i0.ChangeDetectorRef\n }, {\n type: i0.ElementRef\n }, {\n type: StructureId\n }, {\n type: CompositionId\n }, {\n type: StructureCellEditStore\n }, {\n type: StructureCellEditCloseAllService\n }, {\n type: SourcePublisher\n }, {\n type: CompositionWarehouse\n }], {\n entity: [{\n type: Input\n }],\n cell: [{\n type: Input\n }],\n editMode: [{\n type: Input\n }],\n cellEditorManager: [{\n type: Input\n }],\n searchPhrase: [{\n type: Input\n }],\n rowIndex: [{\n type: Input\n }],\n columnIndex: [{\n type: Input\n }]\n });\n})();\nclass StructureRowComponent extends SmartComponent {\n changeDetectorRef;\n elRef;\n structureId;\n formationWarehouse;\n formationCommandDispatcher;\n cssClassModifier;\n entity;\n columns;\n editMode;\n cellEditing;\n searchPhrase;\n index;\n rowStyle;\n rowClass;\n checkboxSelection = false;\n radioSelection = false;\n selectedItem = false;\n row;\n styleModifier;\n classModifier;\n constructor(changeDetectorRef, elRef, structureId, formationWarehouse, formationCommandDispatcher, cssClassModifier) {\n super(changeDetectorRef, elRef);\n this.changeDetectorRef = changeDetectorRef;\n this.elRef = elRef;\n this.structureId = structureId;\n this.formationWarehouse = formationWarehouse;\n this.formationCommandDispatcher = formationCommandDispatcher;\n this.cssClassModifier = cssClassModifier;\n this.styleModifier = new StyleModifier(this.elRef.nativeElement);\n this.classModifier = new ClassModifier(this.elRef.nativeElement);\n }\n ngOnChanges(changes) {\n ifChanged(changes.entity, () => {\n this.checkSelectedItem();\n this.updateRowClass(changes.entity.previousValue);\n this.updateRowStyle(changes.entity.previousValue);\n });\n ifChanged(changes.rowClass, () => {\n this.updateRowClass();\n });\n ifChanged(changes.rowStyle, () => {\n this.updateRowStyle();\n });\n }\n ngOnInit() {\n this.subscribeWithoutRender(this.formationWarehouse.onRowSelectedReadModel(this.structureId), row => {\n this.row = row;\n const prevValue = this.selectedItem;\n this.checkSelectedItem();\n if (prevValue !== this.selectedItem) {\n if (prevValue) {\n this.cssClassModifier.unselect(this.elRef.nativeElement);\n } else {\n this.cssClassModifier.select(this.elRef.nativeElement);\n }\n this.changeDetectorRef.detectChanges();\n }\n });\n }\n ngAfterViewInit() {\n super.ngAfterViewInit();\n this.updateRowClass();\n this.updateRowStyle();\n }\n trackByFn() {\n return 0;\n }\n selectCheckbox() {\n event.stopPropagation();\n this.formationCommandDispatcher.toggleSelectedRow(this.entity.getId(), RowSelectToggleType.ADD, this.structureId);\n }\n selectRadio() {\n event.stopPropagation();\n this.formationCommandDispatcher.toggleSelectedRow(this.entity.getId(), RowSelectToggleType.NONE, this.structureId);\n }\n checkSelectedItem() {\n if (this.row) {\n const prevValue = this.selectedItem;\n this.selectedItem = this.row.isSelected(this.entity.getId());\n if (prevValue !== this.selectedItem) {\n if (prevValue) {\n this.cssClassModifier.unselect(this.elRef.nativeElement);\n } else {\n this.cssClassModifier.select(this.elRef.nativeElement);\n }\n }\n }\n }\n getSelectorName() {\n return 'gui-structure-row';\n }\n calculateRowStyle(entity) {\n if (!this.rowStyle) {\n return '';\n }\n if (typeof this.rowStyle.style === 'string') {\n return this.rowStyle.style || '';\n }\n if (typeof this.rowStyle.styleFunction === 'function') {\n return this.rowStyle.styleFunction(entity.getSourceItem(), entity.getPosition());\n }\n return '';\n }\n updateRowStyle(prevEntity) {\n if (prevEntity) {\n const rowStylesToRemove = this.calculateRowStyle(prevEntity);\n this.removeRowStyles(rowStylesToRemove);\n }\n const rowStylesToAdd = this.calculateRowStyle(this.entity);\n this.renderRowStyles(rowStylesToAdd);\n }\n removeRowStyles(rowStyle) {\n if (!rowStyle) {\n return;\n }\n const styles = rowStyle.split(';');\n for (let i = 0; i < styles.length; i += 1) {\n const separatedStyles = styles[i].split(':');\n if (separatedStyles[0] && separatedStyles[1]) {\n this.styleModifier.getHost().removeStyleByName(separatedStyles[0].trim());\n }\n }\n }\n renderRowStyles(rowStyle) {\n if (!rowStyle) {\n return;\n }\n const styles = rowStyle.split(';');\n for (let i = 0; i < styles.length; i += 1) {\n const separatedStyles = styles[i].split(':');\n if (separatedStyles[0] && separatedStyles[1]) {\n this.styleModifier.getHost().setStyleByName(separatedStyles[0].trim(), separatedStyles[1].trim());\n }\n }\n }\n updateRowClass(prevEntity) {\n if (prevEntity) {\n const toRemoveClass = this.calculateRowClass(prevEntity);\n if (toRemoveClass) {\n this.classModifier.getHost().remove(toRemoveClass);\n }\n }\n const toAddClass = this.calculateRowClass(this.entity);\n if (toAddClass) {\n this.classModifier.getHost().add(toAddClass);\n }\n }\n calculateRowClass(entity) {\n if (!this.rowClass) {\n return '';\n }\n let clazz;\n if (typeof this.rowClass.class === 'string') {\n clazz = this.rowClass.class || '';\n }\n if (typeof this.rowClass.classFunction === 'function') {\n if (entity) {\n clazz = this.rowClass.classFunction(entity.getSourceItem(), entity.getPosition()) || '';\n }\n }\n return clazz;\n }\n static ɵfac = function StructureRowComponent_Factory(t) {\n return new (t || StructureRowComponent)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(StructureId), i0.ɵɵdirectiveInject(FormationWarehouse), i0.ɵɵdirectiveInject(FormationPublisher), i0.ɵɵdirectiveInject(CssClassModifier));\n };\n static ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: StructureRowComponent,\n selectors: [[\"div\", \"gui-structure-row\", \"\"]],\n inputs: {\n entity: \"entity\",\n columns: \"columns\",\n editMode: \"editMode\",\n cellEditing: \"cellEditing\",\n searchPhrase: \"searchPhrase\",\n index: \"index\",\n rowStyle: \"rowStyle\",\n rowClass: \"rowClass\",\n checkboxSelection: \"checkboxSelection\",\n radioSelection: \"radioSelection\"\n },\n features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature],\n attrs: _c71,\n decls: 3,\n vars: 4,\n consts: [[\"class\", \"gui-cell gui-row-checkbox\", 4, \"ngIf\"], [\"class\", \"gui-cell gui-row-radio\", 4, \"ngIf\"], [\"class\", \"gui-cell\", \"gui-structure-cell\", \"\", 3, \"cellEditorManager\", \"cell\", \"columnIndex\", \"editMode\", \"entity\", \"rowIndex\", \"searchPhrase\", \"width\", 4, \"ngFor\", \"ngForOf\", \"ngForTrackBy\"], [1, \"gui-cell\", \"gui-row-checkbox\"], [3, \"changed\", \"checked\"], [1, \"gui-cell\", \"gui-row-radio\"], [\"gui-structure-cell\", \"\", 1, \"gui-cell\", 3, \"cellEditorManager\", \"cell\", \"columnIndex\", \"editMode\", \"entity\", \"rowIndex\", \"searchPhrase\"]],\n template: function StructureRowComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, StructureRowComponent_div_0_Template, 2, 1, \"div\", 0)(1, StructureRowComponent_div_1_Template, 2, 1, \"div\", 1)(2, StructureRowComponent_div_2_Template, 1, 9, \"div\", 2);\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"ngIf\", ctx.checkboxSelection);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.radioSelection);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngForOf\", ctx.columns)(\"ngForTrackBy\", ctx.trackByFn);\n }\n },\n dependencies: [i4.NgForOf, i4.NgIf, i1$1.FabricCheckboxComponent, i1$1.FabricRadioButtonComponent, StructureCellComponent],\n encapsulation: 2,\n changeDetection: 0\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(StructureRowComponent, [{\n type: Component,\n args: [{\n selector: 'div[gui-structure-row]',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n template: \"
\\n\\t\\n
\\n\\n
\\n\\t\\n
\\n\\n
\\n
\\n\"\n }]\n }], () => [{\n type: i0.ChangeDetectorRef\n }, {\n type: i0.ElementRef\n }, {\n type: StructureId\n }, {\n type: FormationWarehouse\n }, {\n type: FormationPublisher\n }, {\n type: CssClassModifier\n }], {\n entity: [{\n type: Input\n }],\n columns: [{\n type: Input\n }],\n editMode: [{\n type: Input\n }],\n cellEditing: [{\n type: Input\n }],\n searchPhrase: [{\n type: Input\n }],\n index: [{\n type: Input\n }],\n rowStyle: [{\n type: Input\n }],\n rowClass: [{\n type: Input\n }],\n checkboxSelection: [{\n type: Input\n }],\n radioSelection: [{\n type: Input\n }]\n });\n})();\nclass StructureContentComponent extends SmartComponent {\n formationPublisher;\n structureEditModeArchive;\n formationWarehouse;\n structureWarehouse;\n verticalFormationWarehouse;\n structureId;\n schemaReadModelRootId;\n searchWarehouse;\n schemaWarehouse;\n source;\n columns;\n state = inject(GuiState);\n state$ = this.state.select();\n constructor(elementRef, changeDetectorRef, formationPublisher, structureEditModeArchive, formationWarehouse, structureWarehouse, verticalFormationWarehouse, structureId, schemaReadModelRootId, searchWarehouse, schemaWarehouse) {\n super(changeDetectorRef, elementRef);\n this.formationPublisher = formationPublisher;\n this.structureEditModeArchive = structureEditModeArchive;\n this.formationWarehouse = formationWarehouse;\n this.structureWarehouse = structureWarehouse;\n this.verticalFormationWarehouse = verticalFormationWarehouse;\n this.structureId = structureId;\n this.schemaReadModelRootId = schemaReadModelRootId;\n this.searchWarehouse = searchWarehouse;\n this.schemaWarehouse = schemaWarehouse;\n this.state.setValue({\n checkboxSelection: false,\n radioSelection: false,\n searchPhrase: ''\n });\n this.state.connect('editMode', this.structureEditModeArchive.on());\n this.state.connect('selectionEnabled', this.formationWarehouse.onSelectionEnabled(this.structureId));\n this.state.connect('rowHeight', this.verticalFormationWarehouse.onRowHeight(this.structureId));\n this.state.connect('cellEditing', this.structureWarehouse.onEditManager(this.structureId));\n this.state.connect('schemaRowClass', this.schemaWarehouse.onRowClass(this.schemaReadModelRootId));\n this.state.connect('schemaRowStyle', this.schemaWarehouse.onRowStyle(this.schemaReadModelRootId));\n this.state.connect('checkboxSelection', this.selectCheckboxSelection());\n this.state.connect('radioSelection', this.selectRadioSelection());\n this.state.connect('searchPhrase', this.selectSearchPhrase());\n }\n trackByFn() {\n return 0;\n }\n translateY(index, rowHeight) {\n const height = index * rowHeight;\n return `translateY(${height}px)`;\n }\n toggleSelectedRow(entity, selectionEnabled, checkboxSelection, radioSelection) {\n if (!selectionEnabled) {\n return;\n }\n if (!checkboxSelection && !radioSelection) {\n this.formationPublisher.toggleSelectedRow(entity.getId(), RowSelectToggleType.NONE, this.structureId);\n }\n }\n getSelectorName() {\n return 'gui-structure-content';\n }\n selectCheckboxSelection() {\n return this.formationWarehouse.onType(this.structureId).pipe(hermesMap(type => {\n return type === RowSelectionType.CHECKBOX;\n }));\n }\n selectRadioSelection() {\n return this.formationWarehouse.onType(this.structureId).pipe(hermesMap(type => {\n return type === RowSelectionType.RADIO;\n }));\n }\n selectSearchPhrase() {\n return fromRxJsObservable(combineLatest(toRxJsObservable(this.searchWarehouse.onPhrase(this.structureId)), toRxJsObservable(this.searchWarehouse.onHighlight(this.structureId)))).pipe(hermesMap(([phrase, highlighting]) => {\n if (!highlighting) {\n return '';\n } else {\n return phrase;\n }\n }));\n }\n static ɵfac = function StructureContentComponent_Factory(t) {\n return new (t || StructureContentComponent)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(FormationPublisher), i0.ɵɵdirectiveInject(StructureEditModeArchive), i0.ɵɵdirectiveInject(FormationWarehouse), i0.ɵɵdirectiveInject(StructureWarehouse), i0.ɵɵdirectiveInject(VerticalFormationWarehouse), i0.ɵɵdirectiveInject(StructureId), i0.ɵɵdirectiveInject(SchemaReadModelRootId), i0.ɵɵdirectiveInject(SearchWarehouse), i0.ɵɵdirectiveInject(SchemaWarehouse));\n };\n static ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: StructureContentComponent,\n selectors: [[\"div\", \"gui-structure-content\", \"\"]],\n inputs: {\n source: \"source\",\n columns: \"columns\"\n },\n features: [i0.ɵɵProvidersFeature([GuiState]), i0.ɵɵInheritDefinitionFeature],\n attrs: _c72,\n decls: 1,\n vars: 1,\n consts: [[\"class\", \"gui-content\", 4, \"guiLet\"], [1, \"gui-content\"], [\"class\", \"gui-row\", \"gui-structure-row\", \"\", 3, \"cellEditing\", \"checkboxSelection\", \"columns\", \"editMode\", \"entity\", \"id\", \"index\", \"ngClass\", \"ngStyle\", \"radioSelection\", \"rowClass\", \"rowStyle\", \"searchPhrase\", \"height\", \"click\", 4, \"ngFor\", \"ngForOf\", \"ngForTrackBy\"], [\"gui-structure-row\", \"\", 1, \"gui-row\", 3, \"click\", \"cellEditing\", \"checkboxSelection\", \"columns\", \"editMode\", \"entity\", \"id\", \"index\", \"ngClass\", \"ngStyle\", \"radioSelection\", \"rowClass\", \"rowStyle\", \"searchPhrase\"]],\n template: function StructureContentComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, StructureContentComponent_div_0_Template, 2, 2, \"div\", 0);\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"guiLet\", ctx.state$);\n }\n },\n dependencies: [i4.NgClass, i4.NgForOf, i4.NgStyle, GuiLetDirective, StructureRowComponent],\n encapsulation: 2,\n changeDetection: 0\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(StructureContentComponent, [{\n type: Component,\n args: [{\n selector: 'div[gui-structure-content]',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [GuiState],\n template: \"
\\n\\n\\t
\\n\\t
\\n\\n
\\n\"\n }]\n }], () => [{\n type: i0.ElementRef\n }, {\n type: i0.ChangeDetectorRef\n }, {\n type: FormationPublisher\n }, {\n type: StructureEditModeArchive\n }, {\n type: FormationWarehouse\n }, {\n type: StructureWarehouse\n }, {\n type: VerticalFormationWarehouse\n }, {\n type: StructureId\n }, {\n type: SchemaReadModelRootId\n }, {\n type: SearchWarehouse\n }, {\n type: SchemaWarehouse\n }], {\n source: [{\n type: Input\n }],\n columns: [{\n type: Input\n }]\n });\n})();\nclass StructureContainerComponent extends SmartComponent {\n elRef;\n ngZone;\n structureId;\n compositionId;\n structureCommandService;\n structureWarehouse;\n verticalFormationWarehouse;\n sourceWarehouse;\n compositionCommandInvoker;\n compositionWarehouse;\n compositionTemplateWarehouse;\n formationWarehouse;\n resizeDetector;\n structureInitialValuesReadyArchive;\n structureParent;\n sourceCollectionRef;\n columns = [];\n source = [];\n height;\n rowColoring;\n autoResizeWidthEnabled = false;\n scrollObservation$ = new HermesSubject();\n styleModifier;\n constructor(changeDetectorRef, elRef, ngZone, structureId, compositionId, structureCommandService, structureWarehouse, verticalFormationWarehouse, sourceWarehouse, compositionCommandInvoker, compositionWarehouse, compositionTemplateWarehouse, formationWarehouse, resizeDetector, structureInitialValuesReadyArchive, structureParent) {\n super(changeDetectorRef, elRef);\n this.elRef = elRef;\n this.ngZone = ngZone;\n this.structureId = structureId;\n this.compositionId = compositionId;\n this.structureCommandService = structureCommandService;\n this.structureWarehouse = structureWarehouse;\n this.verticalFormationWarehouse = verticalFormationWarehouse;\n this.sourceWarehouse = sourceWarehouse;\n this.compositionCommandInvoker = compositionCommandInvoker;\n this.compositionWarehouse = compositionWarehouse;\n this.compositionTemplateWarehouse = compositionTemplateWarehouse;\n this.formationWarehouse = formationWarehouse;\n this.resizeDetector = resizeDetector;\n this.structureInitialValuesReadyArchive = structureInitialValuesReadyArchive;\n this.structureParent = structureParent;\n this.styleModifier = new StyleModifier(this.elRef.nativeElement);\n }\n ngOnInit() {\n this.subscribeWithoutRender(this.verticalFormationWarehouse.onContainerHeight(this.structureId), containerHeight => {\n this.setContainerHeight(containerHeight);\n });\n this.subscribe(fromRxJsObservable(toRxJsObservable(this.structureInitialValuesReadyArchive.once(this.structureId)).pipe(flatMap(() => {\n return combineLatest(toRxJsObservable(this.sourceWarehouse.onItems(this.structureId)), toRxJsObservable(this.compositionTemplateWarehouse.onTemplateCols(this.compositionId)));\n }))), arr => {\n this.source = arr[0];\n this.columns = arr[1];\n });\n this.subscribeWithoutRender(this.compositionWarehouse.onResizeWidth(this.compositionId), enabled => {\n this.autoResizeWidthEnabled = enabled;\n });\n }\n ngAfterViewInit() {\n super.ngAfterViewInit();\n // turn on when structure is ready\n if (this.structureParent) {\n this.subscribeWithoutRender(this.resizeDetector.on(this.structureParent.getElementRef().nativeElement).pipe(hermesFilter(() => this.autoResizeWidthEnabled), hermesMap(size => size.width), hermesDistinctUntilChanged()), width => {\n this.recalculateContainer(width);\n });\n }\n this.subscribeWithoutRender(this.compositionWarehouse.onContainerWidth(this.compositionId), width => {\n this.styleModifier.getElement(this.sourceCollectionRef.nativeElement).setWidth(width);\n });\n this.subscribeWithoutRender(this.verticalFormationWarehouse.onEnabled(this.structureId), enabled => {\n if (enabled) {\n this.enableScrollObservation();\n } else {\n this.disableScrollObservation();\n }\n });\n this.subscribeWithoutRender(this.structureWarehouse.on(this.structureId).pipe(hermesFilter(str => {\n return str.isVerticalScrollEnabled();\n })), structure => {\n const topMargin = structure.getTopMargin(),\n sourceHeight = structure.getSourceHeight();\n this.setSourceHeight(topMargin, sourceHeight);\n });\n this.subscribeWithoutRender(this.verticalFormationWarehouse.onScrollBarPosition(this.structureId), scrollPosition => {\n this.elRef.nativeElement.scrollTop = scrollPosition;\n });\n }\n ngOnDestroy() {\n super.ngOnDestroy();\n this.resizeDetector.destroy(this.elRef.nativeElement);\n }\n getSelectorName() {\n return 'gui-structure-container';\n }\n setContainerHeight(height) {\n this.height = height;\n this.styleModifier.getHost().setHeight(height);\n }\n setSourceHeight(topMargin, sourceHeight) {\n this.styleModifier.getElement(this.sourceCollectionRef.nativeElement).setPaddingTop(topMargin);\n this.styleModifier.getElement(this.sourceCollectionRef.nativeElement).setHeight(sourceHeight);\n }\n recalculateContainer(width) {\n if (this.autoResizeWidthEnabled) {\n this.compositionCommandInvoker.setContainerWidth(width, this.compositionId);\n }\n }\n enableScrollObservation() {\n this.ngZone.runOutsideAngular(() => {\n hermesFromEvent(this.elRef.nativeElement, 'scroll').pipe(hermesTakeUntil(this.scrollObservation$)).subscribe(event => {\n const scrollTop = event.target.scrollTop;\n this.structureCommandService.setScrollPosition(scrollTop, this.structureId);\n });\n });\n }\n disableScrollObservation() {\n this.scrollObservation$.next();\n this.scrollObservation$.complete();\n }\n static ɵfac = function StructureContainerComponent_Factory(t) {\n return new (t || StructureContainerComponent)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(StructureId), i0.ɵɵdirectiveInject(CompositionId), i0.ɵɵdirectiveInject(StructurePublisher), i0.ɵɵdirectiveInject(StructureWarehouse), i0.ɵɵdirectiveInject(VerticalFormationWarehouse), i0.ɵɵdirectiveInject(SourceWarehouse), i0.ɵɵdirectiveInject(CompositionPublisher), i0.ɵɵdirectiveInject(CompositionWarehouse), i0.ɵɵdirectiveInject(CompositionTemplateWarehouse), i0.ɵɵdirectiveInject(FormationWarehouse), i0.ɵɵdirectiveInject(ResizeDetector), i0.ɵɵdirectiveInject(StructureInitialValuesReadyArchive), i0.ɵɵdirectiveInject(structureParentComponent, 8));\n };\n static ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: StructureContainerComponent,\n selectors: [[\"div\", \"gui-structure-container\", \"\"]],\n viewQuery: function StructureContainerComponent_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(_c75, 5, ElementRef);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.sourceCollectionRef = _t.first);\n }\n },\n features: [i0.ɵɵInheritDefinitionFeature],\n attrs: _c76,\n decls: 3,\n vars: 2,\n consts: [[\"sourceCollection\", \"\"], [1, \"gui-h-full\", \"gui-w-full\", \"gui-absolute\", \"gui-structure-container-element\"], [\"gui-structure-content\", \"\", 3, \"columns\", \"source\"]],\n template: function StructureContainerComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 1, 0);\n i0.ɵɵelement(2, \"div\", 2);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"columns\", ctx.columns)(\"source\", ctx.source);\n }\n },\n dependencies: [StructureContentComponent],\n encapsulation: 2,\n changeDetection: 0\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(StructureContainerComponent, [{\n type: Component,\n args: [{\n selector: 'div[gui-structure-container]',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n template: \"
\\n\\n\\t
\\n\\t
\\n\\n
\\n\"\n }]\n }], () => [{\n type: i0.ChangeDetectorRef\n }, {\n type: i0.ElementRef\n }, {\n type: i0.NgZone\n }, {\n type: StructureId\n }, {\n type: CompositionId\n }, {\n type: StructurePublisher\n }, {\n type: StructureWarehouse\n }, {\n type: VerticalFormationWarehouse\n }, {\n type: SourceWarehouse\n }, {\n type: CompositionPublisher\n }, {\n type: CompositionWarehouse\n }, {\n type: CompositionTemplateWarehouse\n }, {\n type: FormationWarehouse\n }, {\n type: ResizeDetector\n }, {\n type: StructureInitialValuesReadyArchive\n }, {\n type: undefined,\n decorators: [{\n type: Optional$1\n }, {\n type: Inject,\n args: [structureParentComponent]\n }]\n }], {\n sourceCollectionRef: [{\n type: ViewChild,\n args: ['sourceCollection', {\n read: ElementRef,\n static: false\n }]\n }]\n });\n})();\nclass StructureBannerPanel extends SmartComponent {\n bannerPanel$;\n constructor(changeDetectorRef, elementRef) {\n super(changeDetectorRef, elementRef);\n }\n initObservables() {\n this.bannerPanel$ = this.selectBannerPanelTemplate();\n }\n selectBannerPanelTemplate() {\n return this.onBannerPanelConfig().pipe(hermesMap(config => {\n if (typeof config.template === 'function') {\n return config.template();\n }\n return config.template;\n }));\n }\n static ɵfac = function StructureBannerPanel_Factory(t) {\n return new (t || StructureBannerPanel)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i0.ElementRef));\n };\n static ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: StructureBannerPanel,\n features: [i0.ɵɵInheritDefinitionFeature]\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(StructureBannerPanel, [{\n type: Directive\n }], () => [{\n type: i0.ChangeDetectorRef\n }, {\n type: i0.ElementRef\n }], null);\n})();\nclass StructureTitlePanelComponent extends StructureBannerPanel {\n structureTitlePanelConfigArchive;\n constructor(structureTitlePanelConfigArchive, changeDetectorRef, elementRef) {\n super(changeDetectorRef, elementRef);\n this.structureTitlePanelConfigArchive = structureTitlePanelConfigArchive;\n this.initObservables();\n }\n onBannerPanelConfig() {\n return this.structureTitlePanelConfigArchive.on();\n }\n getSelectorName() {\n return 'gui-structure-title-panel';\n }\n static ɵfac = function StructureTitlePanelComponent_Factory(t) {\n return new (t || StructureTitlePanelComponent)(i0.ɵɵdirectiveInject(StructureTitlePanelConfigArchive), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i0.ElementRef));\n };\n static ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: StructureTitlePanelComponent,\n selectors: [[\"div\", \"gui-structure-title-panel\", \"\"]],\n features: [i0.ɵɵInheritDefinitionFeature],\n attrs: _c77,\n decls: 3,\n vars: 6,\n consts: [[1, \"gui-title-panel\", \"gui-p-6\", \"gui-border-b\", \"gui-border-b-solid\", 3, \"innerHTML\"]],\n template: function StructureTitlePanelComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"div\", 0);\n i0.ɵɵpipe(1, \"guiPush\");\n i0.ɵɵpipe(2, \"guiSafe\");\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"innerHTML\", i0.ɵɵpipeBind2(2, 3, i0.ɵɵpipeBind1(1, 1, ctx.bannerPanel$), \"html\"), i0.ɵɵsanitizeHtml);\n }\n },\n dependencies: [GuiPushPipe, SafePipe],\n encapsulation: 2,\n changeDetection: 0\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(StructureTitlePanelComponent, [{\n type: Component,\n args: [{\n selector: 'div[gui-structure-title-panel]',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n template: \"
\\n
\\n\"\n }]\n }], () => [{\n type: StructureTitlePanelConfigArchive\n }, {\n type: i0.ChangeDetectorRef\n }, {\n type: i0.ElementRef\n }], null);\n})();\nclass StructureFooterPanelComponent extends StructureBannerPanel {\n structureFooterPanelConfigArchive;\n constructor(structureFooterPanelConfigArchive, changeDetectorRef, elementRef) {\n super(changeDetectorRef, elementRef);\n this.structureFooterPanelConfigArchive = structureFooterPanelConfigArchive;\n this.initObservables();\n }\n onBannerPanelConfig() {\n return this.structureFooterPanelConfigArchive.on();\n }\n getSelectorName() {\n return 'gui-structure-footer-panel';\n }\n static ɵfac = function StructureFooterPanelComponent_Factory(t) {\n return new (t || StructureFooterPanelComponent)(i0.ɵɵdirectiveInject(StructureFooterPanelConfigArchive), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i0.ElementRef));\n };\n static ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: StructureFooterPanelComponent,\n selectors: [[\"div\", \"gui-structure-footer-panel\", \"\"]],\n features: [i0.ɵɵInheritDefinitionFeature],\n attrs: _c78,\n decls: 3,\n vars: 6,\n consts: [[1, \"gui-footer-panel\", \"gui-p-6\", \"gui-border-t\", \"gui-border-t-solid\", 3, \"innerHTML\"]],\n template: function StructureFooterPanelComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"div\", 0);\n i0.ɵɵpipe(1, \"guiPush\");\n i0.ɵɵpipe(2, \"guiSafe\");\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"innerHTML\", i0.ɵɵpipeBind2(2, 3, i0.ɵɵpipeBind1(1, 1, ctx.bannerPanel$), \"html\"), i0.ɵɵsanitizeHtml);\n }\n },\n dependencies: [GuiPushPipe, SafePipe],\n encapsulation: 2,\n changeDetection: 0\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(StructureFooterPanelComponent, [{\n type: Component,\n args: [{\n selector: 'div[gui-structure-footer-panel]',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n template: \"\\n\"\n }]\n }], () => [{\n type: StructureFooterPanelConfigArchive\n }, {\n type: i0.ChangeDetectorRef\n }, {\n type: i0.ElementRef\n }], null);\n})();\nclass StructureBlueprintComponent extends SmartComponent {\n structureDefinition;\n className;\n structureId = inject(StructureId);\n summariesWarehouse = inject(SummariesWarehouse);\n structureHeaderTopEnabledArchive = inject(StructureHeaderTopEnabledArchive);\n structureHeaderBottomEnabledArchive = inject(StructureHeaderBottomEnabledArchive);\n searchWarehouse = inject(SearchWarehouse);\n pagingWarehouse = inject(PagingWarehouse);\n structureWarehouse = inject(StructureWarehouse);\n structureInfoPanelArchive = inject(StructureInfoPanelArchive);\n structureTitlePanelConfigArchive = inject(StructureTitlePanelConfigArchive);\n structureFooterPanelConfigArchive = inject(StructureFooterPanelConfigArchive);\n bottomSummariesPanelEnabled$ = this.summariesWarehouse.onBottomEnabled(this.structureId);\n contentCssClass;\n headerCssClass;\n headerTopClasses;\n headerBottomClasses;\n topHeaderEnabled$ = this.structureHeaderTopEnabledArchive.on();\n bottomHeaderEnabled$ = this.structureHeaderBottomEnabledArchive.on();\n footerPanelEnabled$ = this.selectFooterPanelEnabled();\n items$ = this.selectItems();\n topSummariesPanelEnabled$ = this.summariesWarehouse.onTopEnabled(this.structureId);\n searchEnabled$ = this.searchWarehouse.onSearchEnabled(this.structureId);\n titlePanelEnabled$ = this.selectTitlePanelEnabled();\n infoPanelEnabled$ = this.selectInfoPanelEnabled();\n pagingModel$ = this.pagingWarehouse.onPaging(this.structureId);\n constructor(changeDetectorRef, elementRef, structureDefinition, className) {\n super(changeDetectorRef, elementRef);\n this.structureDefinition = structureDefinition;\n this.className = className;\n this.headerCssClass = `gui-${this.className}-header`;\n this.contentCssClass = `gui-${this.className}-content`;\n this.headerTopClasses = this.headerCssClass + ' gui-header-top';\n this.headerBottomClasses = this.headerCssClass + ' gui-header-bottom';\n }\n isColumnHeaderTopEnabled(topHeaderEnabled) {\n return this.structureDefinition.isHeaderEnabled() && topHeaderEnabled;\n }\n isColumnHeaderBottomEnabled(bottomHeaderEnabled) {\n return this.structureDefinition.isHeaderEnabled() && bottomHeaderEnabled;\n }\n isPagingTopEnabled(pagingModel) {\n return this.structureDefinition.getTopPaging().isEnabled() && pagingModel.isPagerTop();\n }\n isPagingBottomEnabled(pagingModel) {\n return this.structureDefinition.getBottomPaging().isEnabled() && pagingModel.isPagerBottom();\n }\n getSelectorName() {\n return 'gui-structure-blueprint';\n }\n selectTitlePanelEnabled() {\n return this.structureTitlePanelConfigArchive.on().pipe(hermesMap(titlePanel => {\n return titlePanel.enabled;\n }));\n }\n selectInfoPanelEnabled() {\n return this.structureInfoPanelArchive.on().pipe(hermesMap(infoPanel => {\n return infoPanel.isEnabled();\n }));\n }\n selectFooterPanelEnabled() {\n return this.structureFooterPanelConfigArchive.on().pipe(hermesMap(footerPanel => {\n return footerPanel.enabled;\n }));\n }\n selectItems() {\n return this.structureWarehouse.on(this.structureId).pipe(hermesMap(structure => {\n return structure.getEntities();\n }));\n }\n static ɵfac = function StructureBlueprintComponent_Factory(t) {\n return new (t || StructureBlueprintComponent)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(StructureDefinition), i0.ɵɵdirectiveInject(STRUCTURE_CSS_CLASS_NAME));\n };\n static ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: StructureBlueprintComponent,\n selectors: [[\"div\", \"gui-structure-blueprint\", \"\"]],\n features: [i0.ɵɵInheritDefinitionFeature],\n attrs: _c79,\n decls: 15,\n vars: 18,\n consts: [[\"gui-structure-title-panel\", \"\", 4, \"guiIf\"], [\"gui-structure-top-panel\", \"\", 4, \"guiIf\"], [4, \"guiLet\"], [\"gui-structure-summaries-panel\", \"\", 1, \"gui-structure-summaries-panel-top\", 3, \"enabled\"], [\"gui-structure-container\", \"\", 3, \"ngClass\"], [\"gui-empty-source\", \"\", 3, \"items\"], [\"gui-structure-summaries-panel\", \"\", 1, \"gui-structure-summaries-panel-bottom\", 3, \"enabled\"], [\"gui-structure-info-panel\", \"\", 4, \"guiIf\"], [\"gui-structure-title-panel\", \"\"], [\"gui-structure-top-panel\", \"\"], [\"gui-paging\", \"\", 3, \"position\", 4, \"ngIf\"], [\"gui-paging\", \"\", 3, \"position\"], [\"gui-structure-header\", \"\", 3, \"ngClass\", 4, \"ngIf\"], [\"gui-structure-header\", \"\", 3, \"ngClass\"], [\"gui-structure-footer-panel\", \"\", 4, \"ngIf\"], [\"gui-structure-footer-panel\", \"\"], [\"gui-structure-info-panel\", \"\"]],\n template: function StructureBlueprintComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, StructureBlueprintComponent_div_0_Template, 1, 0, \"div\", 0)(1, StructureBlueprintComponent_div_1_Template, 1, 0, \"div\", 1)(2, StructureBlueprintComponent_ng_container_2_Template, 2, 1, \"ng-container\", 2);\n i0.ɵɵelement(3, \"div\", 3);\n i0.ɵɵpipe(4, \"guiPush\");\n i0.ɵɵtemplate(5, StructureBlueprintComponent_ng_container_5_Template, 2, 1, \"ng-container\", 2);\n i0.ɵɵelement(6, \"div\", 4)(7, \"div\", 5);\n i0.ɵɵpipe(8, \"guiPush\");\n i0.ɵɵtemplate(9, StructureBlueprintComponent_ng_container_9_Template, 2, 1, \"ng-container\", 2);\n i0.ɵɵelement(10, \"div\", 6);\n i0.ɵɵpipe(11, \"guiPush\");\n i0.ɵɵtemplate(12, StructureBlueprintComponent_ng_container_12_Template, 2, 1, \"ng-container\", 2)(13, StructureBlueprintComponent_ng_container_13_Template, 2, 1, \"ng-container\", 2)(14, StructureBlueprintComponent_div_14_Template, 1, 0, \"div\", 7);\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"guiIf\", ctx.titlePanelEnabled$);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"guiIf\", ctx.searchEnabled$);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"guiLet\", ctx.pagingModel$);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"enabled\", i0.ɵɵpipeBind1(4, 12, ctx.topSummariesPanelEnabled$));\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"guiLet\", ctx.topHeaderEnabled$);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngClass\", ctx.contentCssClass);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"items\", i0.ɵɵpipeBind1(8, 14, ctx.items$));\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"guiLet\", ctx.bottomHeaderEnabled$);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"enabled\", i0.ɵɵpipeBind1(11, 16, ctx.bottomSummariesPanelEnabled$));\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"guiLet\", ctx.footerPanelEnabled$);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"guiLet\", ctx.pagingModel$);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"guiIf\", ctx.infoPanelEnabled$);\n }\n },\n dependencies: [i4.NgClass, i4.NgIf, GuiLetDirective, GuiIfDirective, PagingComponent, StructureSummariesPanelComponent, StructureInfoPanelComponent, StructureTopPanelComponent, EmptySourceComponent, StructureHeaderComponent, StructureContainerComponent, StructureTitlePanelComponent, StructureFooterPanelComponent, GuiPushPipe],\n encapsulation: 2,\n changeDetection: 0\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(StructureBlueprintComponent, [{\n type: Component,\n args: [{\n selector: 'div[gui-structure-blueprint]',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n template: \"\\n
\\n\\n
\\n\\n\\n\\t
\\n\\t
\\n
\\n\\n
\\n
\\n\\n\\n\\t
\\n\\t
\\n
\\n\\n\\n\\n
\\n
\\n\\n
\\n
\\n\\n\\n\\n\\n\\t
\\n\\t
\\n
\\n\\n
\\n
\\n\\n\\n\\t
\\n
\\n\\n\\n\\t
\\n\\t
\\n
\\n\\n
\\n\"\n }]\n }], () => [{\n type: i0.ChangeDetectorRef\n }, {\n type: i0.ElementRef\n }, {\n type: StructureDefinition\n }, {\n type: undefined,\n decorators: [{\n type: Inject,\n args: [STRUCTURE_CSS_CLASS_NAME]\n }]\n }], null);\n})();\n\n/** @internal */\nfunction structureIdFactoryForGrid(generator) {\n return new StructureId('gui-grid-' + generator.generateId());\n}\n/** @internal */\nfunction compositionIdFactoryForGrid(generator) {\n return new CompositionId('gui-grid-' + generator.generateId());\n}\n/** @internal */\nfunction schemaIdFactoryForGrid(generator) {\n return new SchemaReadModelRootId('gui-grid-' + generator.generateId());\n}\n/** @internal */\nclass StructureComponent extends StructureGateway {\n elementRef;\n detectorRef;\n injector;\n structureDefinition;\n structureWarehouse;\n compositionWarehouse;\n schemaStylesManager;\n schemaReadModelRootId;\n structureDetailViewService;\n loaderEnabled = false;\n circleLoaderEnabled = true;\n initialLoaderAnimation = false;\n styleModifier;\n constructor(structureId, compositionId, pagingCommandService, pagingEventRepository, sourceCommandDispatcher, sourceEventService, sortingCommandDispatcher, searchCommandDispatcher, fieldCommandDispatcher, schemaCommandInvoker, compositionCommandDispatcher, compositionEventRepository, formationEventService, structureCommandService, structureEditModeArchive, structureCellEditArchive, structureInfoPanelArchive, structureInfoPanelConfigService, structureCellEditStore, columnFieldFactory, structureColumnMenuConfigArchive, pagingDisplayModeArchive, formationCommandDispatcher, searchEventRepository, structureHeaderBottomEnabledArchive, structureDetailViewConfigArchive, structureTitlePanelConfigArchive, structureFooterPanelConfigArchive, schemaEventRepository, translationService, structureInitialValuesReadyArchive, columnAutoConfigurator, elementRef, detectorRef, injector, structureDefinition, structureWarehouse, compositionWarehouse, schemaStylesManager, schemaReadModelRootId, structureDetailViewService) {\n super(detectorRef, elementRef, columnAutoConfigurator, structureId, compositionId, schemaReadModelRootId, structureCommandService, pagingCommandService, pagingEventRepository, sortingCommandDispatcher, searchCommandDispatcher, sourceCommandDispatcher, sourceEventService, schemaCommandInvoker, compositionCommandDispatcher, compositionEventRepository, formationEventService, structureEditModeArchive, structureCellEditArchive, structureInfoPanelConfigService, structureCellEditStore, columnFieldFactory, formationCommandDispatcher, searchEventRepository, structureHeaderBottomEnabledArchive, schemaEventRepository, translationService, structureInitialValuesReadyArchive);\n this.elementRef = elementRef;\n this.detectorRef = detectorRef;\n this.injector = injector;\n this.structureDefinition = structureDefinition;\n this.structureWarehouse = structureWarehouse;\n this.compositionWarehouse = compositionWarehouse;\n this.schemaStylesManager = schemaStylesManager;\n this.schemaReadModelRootId = schemaReadModelRootId;\n this.structureDetailViewService = structureDetailViewService;\n this.styleModifier = new StyleModifier(this.elementRef.nativeElement);\n structureCommandService.create(this.structureId);\n compositionCommandDispatcher.create(this.compositionId);\n schemaCommandInvoker.create(this.schemaId);\n }\n ngOnInit() {\n super.ngOnInit();\n this.subscribe(this.structureWarehouse.on(this.structureId), structureReadModelRoot => {\n this.loaderEnabled = structureReadModelRoot.getSource().isLoading();\n this.circleLoaderEnabled = structureReadModelRoot.isLoaderVisible();\n if (this.loaderEnabled && !this.initialLoaderAnimation) {\n this.initialLoaderAnimation = true;\n }\n this.detectorRef.detectChanges();\n });\n this.structureDetailViewService.init(this.elementRef);\n }\n ngAfterViewInit() {\n this.structureInitialValuesReadyArchive.next(this.structureId, true);\n let width = this.elementRef.nativeElement.offsetWidth;\n if (width > 0) {\n this.compositionCommandDispatcher.setContainerWidth(width, this.compositionId);\n } else {\n /**\n * When gui-grid is in dynamic container which is created later then grid.\n */\n hermesTimer(0).pipe(this.takeUntil()).subscribe(() => {\n width = this.elementRef.nativeElement.offsetWidth;\n if (width > 0) {\n this.compositionCommandDispatcher.setContainerWidth(width, this.compositionId);\n }\n });\n }\n this.schemaStylesManager.init(this.elementRef, this.schemaReadModelRootId);\n this.subscribeWithoutRender(this.compositionWarehouse.onWidth(this.compositionId), width => {\n this.styleModifier.getHost().setWidth(width);\n });\n }\n isBorderEnabled() {\n return this.structureDefinition.isBorderEnabled();\n }\n getStructureId() {\n return this.structureId;\n }\n getElementRef() {\n return this.elementRef;\n }\n getSelectorName() {\n return 'gui-structure';\n }\n static ɵfac = function StructureComponent_Factory(t) {\n return new (t || StructureComponent)(i0.ɵɵdirectiveInject(StructureId), i0.ɵɵdirectiveInject(CompositionId), i0.ɵɵdirectiveInject(PagingPublisher), i0.ɵɵdirectiveInject(PagingEventRepository), i0.ɵɵdirectiveInject(SourcePublisher), i0.ɵɵdirectiveInject(SourceEventService), i0.ɵɵdirectiveInject(SortingPublisher), i0.ɵɵdirectiveInject(SearchPublisher), i0.ɵɵdirectiveInject(FieldPublisher), i0.ɵɵdirectiveInject(SchemaPublisher), i0.ɵɵdirectiveInject(CompositionPublisher), i0.ɵɵdirectiveInject(CompositionEventRepository), i0.ɵɵdirectiveInject(FormationEventRepository), i0.ɵɵdirectiveInject(StructurePublisher), i0.ɵɵdirectiveInject(StructureEditModeArchive), i0.ɵɵdirectiveInject(StructureCellEditArchive), i0.ɵɵdirectiveInject(StructureInfoPanelArchive), i0.ɵɵdirectiveInject(StructureInfoPanelConfigService), i0.ɵɵdirectiveInject(StructureCellEditStore), i0.ɵɵdirectiveInject(ColumnFieldFactory), i0.ɵɵdirectiveInject(StructureColumnMenuConfigArchive), i0.ɵɵdirectiveInject(PagingDisplayModeArchive), i0.ɵɵdirectiveInject(FormationPublisher), i0.ɵɵdirectiveInject(SearchEventRepository), i0.ɵɵdirectiveInject(StructureHeaderBottomEnabledArchive), i0.ɵɵdirectiveInject(StructureRowDetailConfigArchive), i0.ɵɵdirectiveInject(StructureTitlePanelConfigArchive), i0.ɵɵdirectiveInject(StructureFooterPanelConfigArchive), i0.ɵɵdirectiveInject(SchemaEventRepository), i0.ɵɵdirectiveInject(TranslationFacade), i0.ɵɵdirectiveInject(StructureInitialValuesReadyArchive), i0.ɵɵdirectiveInject(ColumnAutoConfigurator), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i0.Injector), i0.ɵɵdirectiveInject(StructureDefinition), i0.ɵɵdirectiveInject(StructureWarehouse), i0.ɵɵdirectiveInject(CompositionWarehouse), i0.ɵɵdirectiveInject(SchemaCssClassManager), i0.ɵɵdirectiveInject(SchemaReadModelRootId), i0.ɵɵdirectiveInject(StructureRowDetailService));\n };\n static ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: StructureComponent,\n selectors: [[\"gui-structure\"]],\n hostVars: 3,\n hostBindings: function StructureComponent_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵhostProperty(\"id\", ctx.structureId.toString());\n i0.ɵɵclassProp(\"gui-structure-border\", ctx.isBorderEnabled());\n }\n },\n features: [i0.ɵɵProvidersFeature([{\n provide: StructureId,\n useFactory: structureIdFactoryForGrid,\n deps: [StructureIdGenerator]\n }, {\n provide: CompositionId,\n useFactory: compositionIdFactoryForGrid,\n deps: [StructureIdGenerator]\n }, {\n provide: SchemaReadModelRootId,\n useFactory: schemaIdFactoryForGrid,\n deps: [StructureIdGenerator]\n }, SchemaCssClassManager, StructureCellEditCloseAllService, StructureCellEditStore, StructureEditModeArchive, StructureInfoPanelArchive, StructureInfoPanelConfigService, StructureColumnMenuConfigArchive, PagingFeatureModule.forComponent(), TranslationFeatureModule.forComponent(), StructureHeaderTopEnabledArchive, StructureHeaderBottomEnabledArchive, StructureRowDetailConfigArchive, StructureRowDetailService, StructureTitlePanelConfigArchive, StructureFooterPanelConfigArchive, {\n provide: structureComponentToken,\n useExisting: StructureComponent\n }, {\n provide: filterContainerToken,\n useExisting: StructureComponent\n }]), i0.ɵɵInheritDefinitionFeature],\n decls: 3,\n vars: 5,\n consts: [[\"gui-structure-blueprint\", \"\"], [1, \"gui-loading\", 3, \"ngClass\"], [3, \"diameter\", \"primary\", 4, \"ngIf\"], [3, \"diameter\", \"primary\"]],\n template: function StructureComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"div\", 0);\n i0.ɵɵelementStart(1, \"div\", 1);\n i0.ɵɵtemplate(2, StructureComponent_gui_spinner_2_Template, 1, 2, \"gui-spinner\", 2);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngClass\", i0.ɵɵpureFunction2(2, _c80, ctx.loaderEnabled, !ctx.loaderEnabled && ctx.initialLoaderAnimation));\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.circleLoaderEnabled);\n }\n },\n dependencies: [i4.NgClass, i4.NgIf, i1$1.FabricSpinnerComponent, StructureBlueprintComponent],\n styles: [\".gui-box-border{box-sizing:border-box}.gui-bg-transparent{background-color:transparent}.gui-border{border-width:1px}.gui-border-0{border-width:0}.gui-border-b{border-bottom-width:1px}.gui-border-t{border-top-width:1px}.gui-border-solid{border-style:solid}.gui-border-b-solid{border-bottom-style:solid}.gui-border-t-solid{border-top-style:solid}.gui-border-none{border-style:none}.gui-rounded{border-radius:4px}.gui-cursor-pointer{cursor:pointer}.gui-block{display:block}.gui-inline-block{display:inline-block}.gui-inline{display:inline}.gui-flex{display:-ms-flexbox;display:flex}.gui-hidden{display:none}.gui-display-grid{display:grid}.gui-flex-row{-ms-flex-direction:row;flex-direction:row}.gui-flex-row-reverse{-ms-flex-direction:row-reverse;flex-direction:row-reverse}.gui-flex-col{-ms-flex-direction:column;flex-direction:column}.gui-flex-col-reverse{-ms-flex-direction:column-reverse;flex-direction:column-reverse}.gui-justify-start{-ms-flex-pack:start;justify-content:flex-start}.gui-justify-end{-ms-flex-pack:end;justify-content:flex-end}.gui-justify-center{-ms-flex-pack:center;justify-content:center}.gui-justify-between{-ms-flex-pack:justify;justify-content:space-between}.gui-justify-around{-ms-flex-pack:distribute;justify-content:space-around}.gui-justify-evenly{-ms-flex-pack:space-evenly;justify-content:space-evenly}.gui-items-start{-ms-flex-align:start;align-items:flex-start}.gui-items-end{-ms-flex-align:end;align-items:flex-end}.gui-items-center{-ms-flex-align:center;align-items:center}.gui-items-between{-ms-flex-align:space-between;align-items:space-between}.gui-items-around{-ms-flex-align:space-around;align-items:space-around}.gui-items-evenly{-ms-flex-align:space-evenly;align-items:space-evenly}.gui-flex-wrap{-ms-flex-wrap:wrap;flex-wrap:wrap}.gui-flex-wrap-reverse{-ms-flex-wrap:wrap-reverse;flex-wrap:wrap-reverse}.gui-flex-nowrap{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.gui-grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.gui-grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.gui-grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.gui-grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.gui-grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.gui-grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.gui-grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}.gui-grid-cols-8{grid-template-columns:repeat(8,minmax(0,1fr))}.gui-grid-cols-9{grid-template-columns:repeat(9,minmax(0,1fr))}.gui-grid-rows-1{grid-template-rows:repeat(1,minmax(0,1fr))}.gui-grid-rows-2{grid-template-rows:repeat(2,minmax(0,1fr))}.gui-grid-rows-3{grid-template-rows:repeat(3,minmax(0,1fr))}.gui-grid-rows-4{grid-template-rows:repeat(4,minmax(0,1fr))}.gui-grid-rows-5{grid-template-rows:repeat(5,minmax(0,1fr))}.gui-grid-rows-6{grid-template-rows:repeat(6,minmax(0,1fr))}.gui-grid-rows-7{grid-template-rows:repeat(7,minmax(0,1fr))}.gui-grid-rows-8{grid-template-rows:repeat(8,minmax(0,1fr))}.gui-grid-rows-9{grid-template-rows:repeat(9,minmax(0,1fr))}.gui-grid-rows-gap-0{grid-row-gap:0}.gui-grid-rows-gap-1{grid-row-gap:1px}.gui-grid-rows-gap-2{grid-row-gap:2px}.gui-grid-rows-gap-3{grid-row-gap:3px}.gui-grid-rows-gap-4{grid-row-gap:4px}.gui-grid-rows-gap-5{grid-row-gap:6px}.gui-grid-rows-gap-6{grid-row-gap:8px}.gui-grid-rows-gap-7{grid-row-gap:10px}.gui-grid-rows-gap-8{grid-row-gap:12px}.gui-grid-rows-gap-10{grid-row-gap:16px}.gui-grid-rows-gap-13{grid-row-gap:22px}.gui-grid-rows-gap-23{grid-row-gap:42px}.gui-grid-cols-gap-0{grid-column-gap:0}.gui-grid-cols-gap-1{grid-column-gap:1px}.gui-grid-cols-gap-2{grid-column-gap:2px}.gui-grid-cols-gap-3{grid-column-gap:3px}.gui-grid-cols-gap-4{grid-column-gap:4px}.gui-grid-cols-gap-5{grid-column-gap:6px}.gui-grid-cols-gap-6{grid-column-gap:8px}.gui-grid-cols-gap-7{grid-column-gap:10px}.gui-grid-cols-gap-8{grid-column-gap:12px}.gui-grid-cols-gap-10{grid-column-gap:16px}.gui-grid-cols-gap-13{grid-column-gap:22px}.gui-grid-cols-gap-23{grid-column-gap:42px}.gui-h-full{height:100%}.gui-list-none{list-style-type:none}.gui-m-0{margin:0}.gui-mx-0{margin-left:0;margin-right:0}.gui-my-0{margin-bottom:0;margin-top:0}.-gui-m-0{margin:0}.-gui-mx-0{margin-left:0;margin-right:0}.-gui-my-0{margin-bottom:0;margin-top:0}.gui-m-1{margin:1px}.gui-mx-1{margin-left:1px;margin-right:1px}.gui-my-1{margin-bottom:1px;margin-top:1px}.-gui-m-1{margin:-1px}.-gui-mx-1{margin-left:-1px;margin-right:-1px}.-gui-my-1{margin-bottom:-1px;margin-top:-1px}.gui-m-2{margin:2px}.gui-mx-2{margin-left:2px;margin-right:2px}.gui-my-2{margin-bottom:2px;margin-top:2px}.-gui-m-2{margin:-2px}.-gui-mx-2{margin-left:-2px;margin-right:-2px}.-gui-my-2{margin-bottom:-2px;margin-top:-2px}.gui-m-3{margin:3px}.gui-mx-3{margin-left:3px;margin-right:3px}.gui-my-3{margin-bottom:3px;margin-top:3px}.-gui-m-3{margin:-3px}.-gui-mx-3{margin-left:-3px;margin-right:-3px}.-gui-my-3{margin-bottom:-3px;margin-top:-3px}.gui-m-4{margin:4px}.gui-mx-4{margin-left:4px;margin-right:4px}.gui-my-4{margin-bottom:4px;margin-top:4px}.-gui-m-4{margin:-4px}.-gui-mx-4{margin-left:-4px;margin-right:-4px}.-gui-my-4{margin-bottom:-4px;margin-top:-4px}.gui-m-5{margin:6px}.gui-mx-5{margin-left:6px;margin-right:6px}.gui-my-5{margin-bottom:6px;margin-top:6px}.-gui-m-5{margin:-6px}.-gui-mx-5{margin-left:-6px;margin-right:-6px}.-gui-my-5{margin-bottom:-6px;margin-top:-6px}.gui-m-6{margin:8px}.gui-mx-6{margin-left:8px;margin-right:8px}.gui-my-6{margin-bottom:8px;margin-top:8px}.-gui-m-6{margin:-8px}.-gui-mx-6{margin-left:-8px;margin-right:-8px}.-gui-my-6{margin-bottom:-8px;margin-top:-8px}.gui-m-7{margin:10px}.gui-mx-7{margin-left:10px;margin-right:10px}.gui-my-7{margin-bottom:10px;margin-top:10px}.-gui-m-7{margin:-10px}.-gui-mx-7{margin-left:-10px;margin-right:-10px}.-gui-my-7{margin-bottom:-10px;margin-top:-10px}.gui-m-8{margin:12px}.gui-mx-8{margin-left:12px;margin-right:12px}.gui-my-8{margin-bottom:12px;margin-top:12px}.-gui-m-8{margin:-12px}.-gui-mx-8{margin-left:-12px;margin-right:-12px}.-gui-my-8{margin-bottom:-12px;margin-top:-12px}.gui-m-10{margin:16px}.gui-mx-10{margin-left:16px;margin-right:16px}.gui-my-10{margin-bottom:16px;margin-top:16px}.-gui-m-10{margin:-16px}.-gui-mx-10{margin-left:-16px;margin-right:-16px}.-gui-my-10{margin-bottom:-16px;margin-top:-16px}.gui-m-13{margin:22px}.gui-mx-13{margin-left:22px;margin-right:22px}.gui-my-13{margin-bottom:22px;margin-top:22px}.-gui-m-13{margin:-22px}.-gui-mx-13{margin-left:-22px;margin-right:-22px}.-gui-my-13{margin-bottom:-22px;margin-top:-22px}.gui-m-23{margin:42px}.gui-mx-23{margin-left:42px;margin-right:42px}.gui-my-23{margin-bottom:42px;margin-top:42px}.-gui-m-23{margin:-42px}.-gui-mx-23{margin-left:-42px;margin-right:-42px}.-gui-my-23{margin-bottom:-42px;margin-top:-42px}.gui-mb-4{margin-bottom:4px}.gui-mb-6{margin-bottom:8px}.gui-mb-8{margin-bottom:12px}.gui-mb-10{margin-bottom:16px}.gui-mb-18{margin-bottom:32px}.gui-mr-0{margin-right:0}.gui-mr-5{margin-right:6px}.gui-mr-auto{margin-right:auto}.gui-ml-auto{margin-left:auto}.gui-ml-6{margin-left:8px}.gui-mt-0{margin-top:0}.gui-mt-4{margin-top:4px}.gui-mt-6{margin-top:8px}.gui-mt-10{margin-top:16px}.gui-mt-14{margin-top:24px}.gui-overflow-hidden{overflow:hidden}.gui-overflow-y-scroll{overflow-y:scroll}.gui-overflow-x-hidden{overflow-x:hidden}.gui-overflow-auto{overflow:auto}.gui-p-0{padding:0}.gui-px-0{padding-left:0;padding-right:0}.gui-py-0{padding-bottom:0;padding-top:0}.gui-p-1{padding:1px}.gui-px-1{padding-left:1px;padding-right:1px}.gui-py-1{padding-bottom:1px;padding-top:1px}.gui-p-2{padding:2px}.gui-px-2{padding-left:2px;padding-right:2px}.gui-py-2{padding-bottom:2px;padding-top:2px}.gui-p-3{padding:3px}.gui-px-3{padding-left:3px;padding-right:3px}.gui-py-3{padding-bottom:3px;padding-top:3px}.gui-p-4{padding:4px}.gui-px-4{padding-left:4px;padding-right:4px}.gui-py-4{padding-bottom:4px;padding-top:4px}.gui-p-5{padding:6px}.gui-px-5{padding-left:6px;padding-right:6px}.gui-py-5{padding-bottom:6px;padding-top:6px}.gui-p-6{padding:8px}.gui-px-6{padding-left:8px;padding-right:8px}.gui-py-6{padding-bottom:8px;padding-top:8px}.gui-p-7{padding:10px}.gui-px-7{padding-left:10px;padding-right:10px}.gui-py-7{padding-bottom:10px;padding-top:10px}.gui-p-8{padding:12px}.gui-px-8{padding-left:12px;padding-right:12px}.gui-py-8{padding-bottom:12px;padding-top:12px}.gui-p-10{padding:16px}.gui-px-10{padding-left:16px;padding-right:16px}.gui-py-10{padding-bottom:16px;padding-top:16px}.gui-p-13{padding:22px}.gui-px-13{padding-left:22px;padding-right:22px}.gui-py-13{padding-bottom:22px;padding-top:22px}.gui-p-23{padding:42px}.gui-px-23{padding-left:42px;padding-right:42px}.gui-py-23{padding-bottom:42px;padding-top:42px}.gui-pr-10{padding-right:16px}.gui-pl-9{padding-right:10px}.gui-pb-6{padding-bottom:8px}.gui-pb-12{padding-bottom:20px}.gui-pl-21{padding-left:38px}.gui-pt-4{padding-top:4px}.gui-pt-6{padding-top:8px}.gui-pt-10{padding-top:16px}.gui-pt-12{padding-top:20px}.gui-pt-14{padding-top:24px}.gui-static{position:static}.gui-fixed{position:fixed}.gui-relative{position:relative}.gui-absolute{position:absolute}.gui-text-xxs{font-size:11px}.gui-text-xs{font-size:12px}.gui-text-sm{font-size:13px}.gui-text-base{font-size:14px}.gui-text-lg{font-size:16px}.gui-text-xl{font-size:18px}.gui-text-2xl{font-size:20px}.gui-text-3xl{font-size:22px}.gui-leading-4{line-height:16px}.gui-leading-6{line-height:24px}.gui-font-thin{font-weight:100}.gui-font-extralight{font-weight:200}.gui-font-light{font-weight:300}.gui-font-normal{font-weight:400}.gui-font-medium{font-weight:500}.gui-font-semibold{font-weight:600}.gui-font-bold{font-weight:700}.gui-font-extrabold{font-weight:800}.gui-font-black{font-weight:900}.gui-not-italic{font-style:normal}.gui-whitespace-nowrap{white-space:nowrap}.gui-overflow-ellipsis{text-overflow:ellipsis}.gui-no-underline{text-decoration:none}.gui-text-center{text-align:center}.gui-w-full{width:100%}.gui-w-96{width:384px}.gui-w-3\\\\/5{width:60%}.gui-structure *,.gui-structure *:after,.gui-structure *:before{box-sizing:border-box}.gui-structure input{font-size:13px;outline:0}.gui-bold{font-weight:700}.gui-italic{font-style:italic}.gui-bar-view{width:100%}.gui-align-right{display:-ms-flexbox;display:flex;-ms-flex-pack:end;justify-content:flex-end;text-align:right;width:100%}.gui-align-left{text-align:left;width:100%}.gui-align-center{-ms-flex-pack:center;justify-content:center;text-align:center;width:100%}.gui-icon{cursor:pointer}.gui-icon svg{fill:#aaa;stroke:#aaa;transition:stroke .3s ease-in-out}.gui-icon svg:hover{fill:#464646!important;stroke:#464646!important}.gui-view-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gui-percentage-bar{background:#deebff;border-radius:4px;box-shadow:inset 1px 1px 2px #ccc;color:#0747a6;height:22px;padding:4px;position:relative;text-align:center;width:100%}.gui-percentage-bar .gui-percentage{background:#8abcfc;border-radius:4px;height:22px;left:0;position:absolute;top:0}.gui-percentage-bar .gui-percentage-view{color:#031d44;position:relative;width:100%}.gui-clear-search-icon{cursor:pointer;height:16px;position:absolute;right:8px;top:50%;-ms-transform:translateY(-50%);transform:translateY(-50%);width:16px}.gui-clear-search-icon:before,.gui-clear-search-icon:after{background-color:#aaa;border-radius:8px;content:\\\" \\\";height:16px;left:7px;position:absolute;width:2px}.gui-clear-search-icon:before{-ms-transform:rotate(45deg);transform:rotate(45deg)}.gui-clear-search-icon:after{-ms-transform:rotate(-45deg);transform:rotate(-45deg)}.gui-clear-search-icon:hover:before,.gui-clear-search-icon:hover:after{background-color:#464646}\\n\", \".gui-structure,.gui-structure *{border-color:#d6d6d6;font-size:14px}.gui-structure input{color:#333;font-family:Arial}.gui-header{background:#f2f3f4;border-bottom:1px solid;border-color:inherit;height:36px}.gui-header .gui-header-cell.gui-header-sortable{cursor:pointer}.gui-header .gui-header-cell.gui-header-sortable:hover{background:#e6e7e8}.gui-header .gui-header-cell .gui-header-menu-icon{display:none}.gui-header .gui-header-cell:hover .gui-header-menu{cursor:pointer}.gui-header .gui-header-cell:hover .gui-header-menu .gui-header-menu-icon-wrapper .gui-header-menu-icon{display:block}.gui-header .gui-header-cell:last-of-type{border-right:0}.gui-header .gui-header-cell .gui-header-title{display:-ms-flexbox;display:flex;line-height:1.4em}.gui-header .gui-header-cell .gui-header-menu{display:-ms-flexbox;display:flex}.gui-header .gui-header-cell .gui-header-menu .gui-header-menu-icon-wrapper{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;height:16px;padding:16px;position:relative;right:0;width:16px}.gui-header .gui-header-cell .gui-header-menu .gui-header-menu-icon-wrapper .gui-header-menu-icon{display:none;height:16px;width:16px}.gui-header-bottom .gui-header{border-bottom:0;border-color:inherit;border-top:1px solid}.gui-structure{background:#fff;border-color:#d6d6d6;box-sizing:border-box;color:#333;display:block;font-family:Arial;font-size:14px;position:relative}.gui-structure *{box-sizing:border-box}.gui-structure .gui-structure-header{display:block;height:100%;width:100%}.gui-structure .gui-structure-header .gui-structure-header-filters.gui-header{height:32px}.gui-structure .gui-structure-header .gui-structure-header-filters.gui-header .gui-header-cell{padding:4px}.gui-structure .gui-structure-header .gui-structure-header-filters.gui-header .gui-header-cell input{box-sizing:border-box;height:100%;padding:2px;position:relative;width:100%;border-color:#d6d6d6;border-style:solid;border-width:1px;font-size:13px}.gui-structure-container{display:block;height:100%;overflow:auto;overflow-x:hidden;position:relative;width:100%}.gui-structure-container .gui-structure-container-element{height:100%;position:absolute;width:100%}.gui-structure-container .gui-structure-container-element .gui-content{height:100%;position:relative}.gui-structure-container .gui-structure-container-element .gui-content .gui-row{border-bottom:1px solid transparent;position:absolute;width:100%}.gui-structure-container .gui-structure-container-element .gui-content .gui-row:last-child{border-bottom:0}.gui-structure-container .gui-structure-container-element .gui-content .gui-row:hover{background:#ecedee}.gui-structure-container .gui-structure-container-element .gui-content .gui-row.selected{background:#d0e8fb}.gui-structure-container .gui-structure-container-element .gui-content .gui-row .gui-cell{border-right:1px solid transparent;box-sizing:border-box;line-height:1em;overflow:hidden;padding:0;white-space:nowrap}.gui-structure-container .gui-structure-container-element .gui-content .gui-row .gui-cell .gui-cell-view span{line-height:1.4em}.gui-structure-container .gui-structure-container-element .gui-content .gui-row .gui-cell .gui-button{padding:0}.gui-structure-container .gui-structure-container-element .gui-content .gui-row .gui-cell .gui-cell-boolean{-ms-flex-pack:center;justify-content:center}.gui-structure-container .gui-structure-container-element .gui-content .gui-row .gui-cell .gui-checkbox{line-height:24px;position:relative}.gui-structure-container .gui-structure-container-element .gui-content .gui-row .gui-cell .gui-checkbox input{position:relative}.gui-structure-container .gui-structure-container-element .gui-content .gui-row .gui-cell .gui-chip{line-height:1em;margin:0;padding:4px 8px}.gui-structure-container .gui-structure-container-element .gui-content .gui-row .gui-cell .gui-badge{padding:0}.gui-structure-container .gui-structure-container-element .gui-content .gui-row .gui-cell .gui-input{background:transparent;font-size:14px;padding:0;border-radius:0;border-style:none}.gui-structure-container .gui-cell{display:inline-block}.gui-structure-container .gui-cell:last-child .gui-cell-view{padding-right:20px}.gui-structure-container .gui-cell>span{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;height:100%;padding:0 8px;width:100%}.gui-structure-container .gui-cell .gui-cell-edit-mode{border:2px solid #2185d0;height:100%;padding:6px}.gui-structure-container .gui-cell .gui-cell-edit-mode .gui-boolean-edit{margin-left:calc(50% - 11px)}.gui-structure-container .gui-cell .gui-cell-edit-mode input:focus{box-shadow:none;outline:none}.gui-vertical-grid .gui-structure-summaries-cell,.gui-vertical-grid .gui-structure-container-element .gui-content .gui-row .gui-cell,.gui-vertical-grid .gui-structure-header .gui-header .gui-header-cell{border-right:1px solid;border-right-color:inherit}.gui-vertical-grid .gui-structure-container-element .gui-content .gui-row .gui-cell:last-of-type,.gui-vertical-grid .gui-structure-header .gui-header .gui-header-cell:last-of-type{border-right:0}.gui-vertical-grid .gui-row-checkbox{border-right:1px solid!important;border-right-color:inherit!important}.gui-horizontal-grid .gui-structure-container-element .gui-content .gui-row{border-bottom:1px solid;border-bottom-color:inherit}.gui-horizontal-grid .gui-structure-container-element .gui-content .gui-row:last-of-type{border-bottom:0}.gui-rows-even .gui-row.even,.gui-rows-odd .gui-row.odd{background:#f7f8f9}.gui-structure-info-panel{-ms-flex-align:center;align-items:center;background:#f2f3f4;box-sizing:border-box;display:-ms-flexbox;display:flex;height:36px;-ms-flex-pack:justify;justify-content:space-between;padding:0 6px;width:100%;border-top-color:inherit;border-top-style:solid;border-top-width:1px}.gui-structure-info-panel p{margin:0}.gui-structure-info-panel p b{font-weight:700}.gui-structure-info-panel div button{background:#ccc;color:#fff;cursor:pointer;font-family:Arial;font-weight:700;height:16px;line-height:14px;padding:0;width:16px;border-color:transparent;border-radius:50%;border-style:solid;border-width:1px}.gui-structure-info-panel div button:focus{box-shadow:0 0 4px #ccc;outline:none}.gui-structure-border{border:1px solid;border-color:#d6d6d6}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}.gui-loading{-ms-flex-line-pack:center;align-content:center;animation-duration:.2s;background:rgba(255,255,255,.8);border:1px solid;border-color:inherit;display:-ms-flexbox;display:flex;height:100%;-ms-flex-pack:center;justify-content:center;left:0;opacity:0;position:absolute;top:0;visibility:hidden;width:100%}.gui-loading .gui-spinner{-ms-flex-item-align:center;align-self:center}.gui-loading.gui-loader-hidden{animation-name:fadeOut;opacity:0;visibility:visible;z-index:-1}.gui-loading.gui-loader-visible{animation-name:fadeIn;opacity:1;visibility:visible;z-index:1}.gui-text-highlight{background:#fff799;padding:0!important}.gui-title-panel{border-bottom-color:#d6d6d6}.gui-footer-panel{border-top-color:#d6d6d6}.gui-structure-schema-manager-icon{margin-right:16px}.gui-structure-schema-manager-icon svg{height:18px;margin-bottom:-1px;width:18px}.gui-row-radio{-ms-flex-align:center;align-items:center;cursor:pointer;display:-ms-flexbox!important;display:flex!important;-ms-flex-pack:center;justify-content:center;padding:0 12px!important;width:48px!important}.gui-row-radio .gui-radio-button{height:24px;margin:0;padding:0;width:24px}.gui-row-checkbox{-ms-flex-align:center;align-items:center;cursor:pointer;display:-ms-flexbox!important;display:flex!important;-ms-flex-pack:center;justify-content:center;padding:0 12px!important;width:48px!important}.gui-row-checkbox .gui-checkbox{height:24px;margin:0;padding:0;width:24px}.gui-select-all .gui-checkbox .gui-checkmark{top:0}.gui-structure-cell-edit-boolean{height:100%}.gui-column-highlighted{background:#fffddd}.gui-structure-column-manager>div:hover{background:#ecedee}.gui-structure-column-manager label{margin-bottom:0}.gui-structure-ordered-list li:hover{background:#ecedee}\\n\", \".gui-structure-column-menu-icon svg{height:16px;width:16px}.gui-structure-column-menu-icon .cls-1{fill:none;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.5px}.gui-structure-column-menu-arrow-icon{display:inline-block}.gui-structure-column-menu-arrow-icon svg{height:10px;width:12px}.gui-structure-column-menu-arrow-icon .gui-structure-column-menu-sort-icon svg{height:16px}.gui-structure-column-menu-arrow-icon .cls-1{fill:none;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.5px}\\n\", \".gui-summaries-value{font-weight:700}.gui-structure-summaries-panel{background:#f2f3f4}.gui-structure-summaries-panel.gui-structure-summaries-panel-bottom .gui-structure-summaries-cell{border-top:1px solid #d6d6d6}.gui-structure-summaries-panel.gui-structure-summaries-panel-top .gui-structure-summaries-cell{border-bottom:1px solid #d6d6d6}.gui-structure-summaries-panel .gui-structure-summaries-cell{font-size:14px;padding-left:16px;padding-right:16px}.gui-structure-summaries-panel .gui-structure-summaries-cell:last-child{padding-right:20px}.gui-structure-summaries-panel .gui-structure-summaries-value{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;line-height:1em;overflow:hidden;padding:8px 0}.gui-structure-summaries-panel .gui-structure-summaries-value div .gui-math-symbol{position:relative;top:-1px}.gui-structure-summaries-panel .gui-structure-summaries-value .gui-mean,.gui-structure-summaries-panel .gui-structure-summaries-value .gui-median{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;position:relative}.gui-structure-summaries-panel .gui-structure-summaries-value .gui-mean span:nth-child(1){left:1px;position:absolute;top:-15px}.gui-structure-summaries-panel .gui-structure-summaries-value .gui-median span:nth-child(1){left:1px;position:absolute;top:-8px}\\n\", \".gui-structure-column-manager-icon svg{height:16px;width:16px}.gui-structure-column-manager-icon .cls-1,.gui-structure-column-manager-icon .cls-2{fill:none;stroke-linecap:round;stroke-linejoin:round}.gui-structure-column-manager-icon .cls-2{stroke-width:1.5px}.gui-structure-info-icon svg{height:16px;width:16px}.gui-structure-info-icon .cls-1{stroke-width:0}.gui-structure-info-icon .cls-2{fill:none;stroke-linecap:round;stroke-linejoin:round}.gui-structure-info-panel div,.gui-structure-info-panel div button{display:inline-block}.gui-structure-info-panel .gui-right-section .gui-structure-column-manager-icon{margin-right:16px;position:relative}.gui-structure-info-panel .gui-right-section .gui-structure-info-icon{margin-right:4px;position:relative}.gui-structure-info-modal .gui-quote{color:#575757}.gui-structure-info-modal p{color:#333}.gui-structure-info-modal a{color:#2185d0}.gui-structure-info-modal a:hover{color:#59a9e5;text-decoration:underline}\\n\", \"@media (max-width: 500px){.gui-paging>*{padding-left:4px}.gui-paging .gui-paging-stats{padding-left:4px}}\\n\", \".gui-header{display:-ms-flexbox;display:flex}.gui-header .gui-header-cell{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex}.gui-content{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}.gui-content .gui-structure-cell-container,.gui-content .gui-row{display:-ms-flexbox;display:flex}.gui-content .gui-structure-cell-container .gui-cell,.gui-content .gui-row .gui-cell{display:inline-block}.gui-content .gui-structure-row-details{background:#80cbc4;display:block;height:200px;position:absolute;-ms-transform:translateY(0);transform:translateY(0);width:100%}\\n\", \".gui-inline-dialog-header-menu.gui-inline-dialog-wrapper .gui-inline-dialog-content{background:transparent;box-shadow:none}.gui-inline-dialog-header-menu .gui-header-menu-tab .gui-header-item-active{font-weight:700}.gui-inline-dialog-header-menu .gui-header-menu-tab .gui-tab .gui-tab-menu .gui-tab-menu-list{background:#fff}.gui-inline-dialog-header-menu .gui-header-menu-tab .gui-tab .gui-tab-menu .gui-tab-menu-item{color:#333}.gui-inline-dialog-header-menu .gui-header-menu-tab .gui-tab .gui-tab-menu .gui-tab-menu-item:hover{background:#ecedee}.gui-inline-dialog-header-menu .gui-header-menu-tab .gui-tab .gui-tab-menu .gui-tab-menu-item.gui-active{color:#2185d0}.gui-inline-dialog-header-menu .gui-header-menu-tab .gui-tab .gui-tab-content{box-shadow:0 3px 7px #ccc;box-sizing:content-box;padding:0;width:225px}.gui-inline-dialog-header-menu .gui-header-menu-tab .gui-header-menu-column-move{color:#333;display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;padding:0}.gui-inline-dialog-header-menu .gui-header-menu-tab .gui-header-menu-column-move .gui-header-menu-column-move-item{-ms-flex-align:center;align-items:center;cursor:pointer;display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between}.gui-inline-dialog-header-menu .gui-header-menu-tab .gui-header-menu-column-move .gui-header-menu-column-move-item svg line{stroke:#aaa}.gui-inline-dialog-header-menu .gui-header-menu-tab .gui-header-menu-column-move .gui-header-menu-column-move-item.left{padding:12px 16px 12px 12px;width:48%}.gui-inline-dialog-header-menu .gui-header-menu-tab .gui-header-menu-column-move .gui-header-menu-column-move-item.right{padding:12px 10px;width:52%}.gui-inline-dialog-header-menu .gui-header-menu-tab .gui-header-menu-column-move .gui-header-menu-column-move-item:hover{background:#ecedee}.gui-inline-dialog-header-menu .gui-header-menu-tab .gui-header-menu-column-move .gui-header-menu-column-move-item:hover svg line{stroke:#464646}.gui-inline-dialog-header-menu .gui-header-menu-tab .gui-tab-item-dropdown .gui-header-menu-dropdown.gui-dropdown .gui-dropdown-container{border:none;border-radius:0}.gui-inline-dialog-header-menu .gui-header-menu-tab .gui-tab-item-dropdown .gui-header-menu-dropdown.gui-dropdown .gui-dropdown-container:hover{background:#ecedee}.gui-inline-dialog-header-menu .gui-header-menu-tab .gui-tab-item-dropdown .gui-header-menu-dropdown.gui-dropdown .gui-dropdown-container:hover .gui-dropdown-arrow{opacity:1}.gui-inline-dialog-header-menu .gui-header-menu-tab .gui-tab-item-dropdown .gui-header-menu-dropdown.gui-dropdown .gui-dropdown-menu{width:125px}.gui-inline-dialog-header-menu .gui-header-menu-tab .gui-tab-item-dropdown .gui-header-menu-dropdown.gui-dropdown .gui-dropdown-menu .gui-item{background:#fff;color:#333;display:-ms-flexbox;display:flex;padding:8px 8px 8px 12px}.gui-inline-dialog-header-menu .gui-header-menu-tab .gui-tab-item-dropdown .gui-header-menu-dropdown.gui-dropdown .gui-dropdown-menu .gui-item:hover{background:#ecedee}.gui-inline-dialog-header-menu .gui-header-menu-tab .gui-tab-item-dropdown .gui-header-menu-dropdown.gui-dropdown .gui-dropdown-menu .gui-item:hover .gui-sort-title svg line{stroke:#464646}.gui-inline-dialog-header-menu .gui-header-menu-tab .gui-tab-item-dropdown .gui-header-menu-dropdown.gui-dropdown .gui-dropdown-menu .gui-item .gui-sort-title{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;width:100%}.gui-inline-dialog-header-menu .gui-header-menu-tab .gui-tab-item-dropdown .gui-header-menu-dropdown.gui-dropdown .gui-dropdown-menu .gui-item .gui-sort-title svg{margin-top:3px}.gui-inline-dialog-header-menu .gui-header-menu-tab .gui-tab-item-dropdown .gui-header-menu-dropdown.gui-dropdown .gui-dropdown-menu .gui-item .gui-sort-title svg line{stroke:#aaa}.gui-inline-dialog-header-menu .gui-header-menu-tab .gui-header-menu-item{color:#333;cursor:pointer;display:block;padding:8px 12px}.gui-inline-dialog-header-menu .gui-header-menu-tab .gui-header-menu-item:hover{background:#ecedee}.gui-inline-dialog-header-menu .gui-header-menu-tab .gui-checkbox{color:#333;margin-left:12px;padding:8px 12px 8px 32px;width:169px}.gui-inline-dialog-header-menu .gui-header-menu-tab .gui-checkbox label{display:inline-block;width:inherit}\\n\", \".gui-schema-manager-dialog .gui-schema-manager{min-width:180px}.gui-schema-manager-dialog .gui-schema-manager .gui-structure-schema-manager-select,.gui-schema-manager-dialog .gui-schema-manager .gui-checkbox{color:#333}.gui-schema-manager-dialog .gui-schema-manager .gui-structure-schema-manager-select:nth-last-child(1),.gui-schema-manager-dialog .gui-schema-manager .gui-checkbox:nth-last-child(1){margin-bottom:0}.gui-dialog-title{border-bottom:solid 1px #d6d6d6;font-size:18px;font-weight:700;margin-left:-16px;margin-right:-16px;padding-bottom:16px;text-align:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.gui-structure-schema-manager-select{padding:8px 0 24px}.gui-structure-dialog-column-manager ol{max-height:400px;min-width:250px}\\n\", \".gui-cell .gui-checkbox{display:block}.gui-cell .gui-chip{margin:0;padding:2px 8px}.gui-cell .gui-input{display:block;font-size:11px;padding:2px 4px;width:100%}.gui-cell .gui-button{padding:2px 8px}.gui-cell .gui-cell-number{display:block;width:100%}.gui-cell .gui-cell-boolean{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;height:100%;text-align:center;width:100%}.gui-cell .gui-string-edit{width:100%}\\n\", \".gui-fabric{border-color:#d6d6d6;font-family:Arial;font-size:14px}.gui-fabric .gui-header-cell,.gui-fabric .gui-structure-header-columns,.gui-fabric .gui-structure-top-panel,.gui-fabric .gui-structure-info-panel,.gui-fabric .gui-paging{height:42px}\\n\", \".gui-material{border-color:#0000001f;font-family:Arial;font-size:14px}.gui-material *{border-color:#0000001f}.gui-material.gui-structure{border:0;border-radius:0;box-shadow:0 2px 2px #00000024,0 3px 1px -2px #0000001f,0 1px 5px #0003}.gui-material.gui-structure,.gui-material .gui-header{font-family:Arial}.gui-material .gui-header-cell,.gui-material .gui-structure-header-columns{height:56px}.gui-material .gui-header .gui-header-cell.gui-header-sortable:hover{background:transparent}.gui-material .gui-header-cell{padding-left:16px;padding-right:16px}.gui-material .gui-structure-container-element .gui-structure-cell>span{padding-left:16px;padding-right:16px}.gui-material .gui-structure-container .gui-structure-container-element .gui-content .gui-row:hover{background:rgba(0,0,0,.04)}.gui-material .gui-structure-container .gui-structure-container-element .gui-content .gui-row.selected{background:#e6f7ff}.gui-material .gui-structure-header .gui-header{background:transparent;color:#464646;font-weight:700}.gui-material .gui-structure-header .gui-header .gui-header-cell{border-color:inherit}.gui-material .gui-cell .gui-button,.gui-material .gui-cell .gui-badge{padding:0}.gui-material .gui-paging-alternative-navigator .gui-button{background:transparent;color:#333;margin:0 4px;padding:0}.gui-material .gui-paging-alternative-navigator .gui-button:hover{background:transparent}.gui-material .gui-paging-alternative-navigator .gui-button:disabled{background:transparent;color:#ccc;opacity:.4}.gui-material .gui-structure-summaries-panel{background:#fff}.gui-material gui-structure-top-panel,.gui-material .gui-structure-info-panel,.gui-material .gui-paging{height:52px;padding-left:16px;padding-right:16px}.gui-material .gui-structure-info-panel{background:#fff;border-radius:0}.gui-material gui-structure-top-panel{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;padding-right:0}.gui-material gui-structure-top-panel .gui-search-bar form input{border:0;outline:0}.gui-material .gui-search-bar form input{border:0;outline:none}\\n\", \".gui-dark{border-color:#575757;border-radius:2px;color:#f0f0f0;font-family:Arial;font-size:14px}.gui-dark *{border-color:#575757;color:#f0f0f0}.gui-dark.gui-structure{border-radius:2px}.gui-dark .gui-header-cell,.gui-dark .gui-structure-header-columns{background:#333;height:46px}.gui-dark .gui-structure-border{border:none;box-shadow:5px 5px 10px 2px #1f1f1f}.gui-dark .gui-header-cell{border-bottom:1px solid;border-color:inherit;padding-left:16px;padding-right:16px}.gui-dark .gui-structure-container-element .gui-structure-cell>span{padding-left:16px;padding-right:16px}.gui-dark .gui-structure-header .gui-header{border-bottom-color:#666;color:#bdbdbd}.gui-dark .gui-structure-header .gui-header .gui-header-cell:hover{background:#525252}.gui-dark .gui-structure-header .gui-header .gui-header-cell:hover .gui-header-menu .gui-header-menu-icon-wrapper{background-color:#525252}.gui-dark .gui-inline-dialog-header-menu .gui-header-menu-tab .gui-tab .gui-tab-menu .gui-tab-menu-list{background:#383838}.gui-dark .gui-inline-dialog-header-menu .gui-header-menu-tab .gui-tab .gui-tab-menu .gui-tab-menu-item{color:#f0f0f0}.gui-dark .gui-inline-dialog-header-menu .gui-header-menu-tab .gui-tab .gui-tab-menu .gui-tab-menu-item:hover{background:#525252}.gui-dark .gui-inline-dialog-header-menu .gui-header-menu-tab .gui-tab .gui-tab-menu .gui-tab-menu-item.gui-active{color:#ce93d8}.gui-dark .gui-inline-dialog-header-menu .gui-header-menu-tab .gui-tab .gui-tab-content{box-shadow:0 1px 2px #525252}.gui-dark .gui-inline-dialog-header-menu .gui-header-menu-tab .gui-tab .gui-structure-column-manager ol li:hover{background:#525252}.gui-dark .gui-inline-dialog-header-menu .gui-header-menu-tab .gui-header-menu-column-move{color:#f0f0f0}.gui-dark .gui-inline-dialog-header-menu .gui-header-menu-tab .gui-header-menu-column-move .gui-header-menu-column-move-item:hover{background:#525252}.gui-dark .gui-inline-dialog-header-menu .gui-header-menu-tab .gui-header-menu-column-move .gui-header-menu-column-move-item:hover svg line{stroke:#ce93d8}.gui-dark .gui-inline-dialog-header-menu .gui-header-menu-tab .gui-tab-item-dropdown .gui-header-menu-dropdown.gui-dropdown .gui-dropdown-container .gui-dropdown-menu{border-color:#666}.gui-dark .gui-inline-dialog-header-menu .gui-header-menu-tab .gui-tab-item-dropdown .gui-header-menu-dropdown.gui-dropdown .gui-dropdown-container .gui-dropdown-menu .gui-item:hover svg line{stroke:#ce93d8}.gui-dark .gui-inline-dialog-header-menu .gui-header-menu-tab .gui-tab-item-dropdown .gui-header-menu-dropdown.gui-dropdown .gui-dropdown-container:hover{background:#525252}.gui-dark .gui-inline-dialog-header-menu .gui-header-menu-tab .gui-tab-item-dropdown .gui-header-menu-dropdown.gui-dropdown .gui-item{background:#383838;color:#f0f0f0;display:-ms-flexbox;display:flex}.gui-dark .gui-inline-dialog-header-menu .gui-header-menu-tab .gui-tab-item-dropdown .gui-header-menu-dropdown.gui-dropdown .gui-item:hover{background:#525252}.gui-dark .gui-inline-dialog-header-menu .gui-header-menu-tab .gui-header-menu-item{color:#f0f0f0}.gui-dark .gui-inline-dialog-header-menu .gui-header-menu-tab .gui-header-menu-item:hover{background:#525252}.gui-dark .gui-inline-dialog-header-menu .gui-header-menu-tab .gui-checkbox{color:#f0f0f0}.gui-dark .gui-structure-column-manager>div:hover{background:#525252}.gui-dark .gui-structure-container .gui-structure-container-element .gui-content .gui-row:hover{background:#525252}.gui-dark .gui-structure-container .gui-structure-container-element .gui-content .gui-row.selected{background:rgba(124,185,246,.3215686275)}.gui-dark.gui-rows-odd .gui-row.odd,.gui-dark.gui-rows-even .gui-row.even{background:#4f4f4f}.gui-dark .gui-horizontal-grid .gui-structure-container-element .gui-row .gui-cell{border-bottom-color:#666}.gui-dark .gui-paging.gui-paging-bottom{border-top-color:#666}.gui-dark .gui-paging.gui-paging-top{border-bottom-color:#666}.gui-dark ::-webkit-scrollbar{width:15px}.gui-dark ::-webkit-scrollbar-track{background:#616161}.gui-dark ::-webkit-scrollbar-thumb{background:#424242}.gui-dark ::-webkit-scrollbar-thumb:hover{background:#212121}.gui-dark .gui-structure-top-panel,.gui-dark .gui-structure-info-panel,.gui-dark .gui-paging,.gui-dark .gui-structure-container-element,.gui-dark .gui-row{background:#444}.gui-dark .gui-structure-top-panel,.gui-dark .gui-structure-info-panel,.gui-dark .gui-paging{height:42px;padding-left:16px;padding-right:16px}.gui-dark .gui-structure-summaries-cell{background:#383838;color:#f0f0f0}.gui-dark .gui-structure-summaries-panel-bottom .gui-structure-summaries-cell{border-top-color:#666}.gui-dark .gui-structure-summaries-panel-top .gui-structure-summaries-cell{border-bottom-color:#666}.gui-dark .gui-structure-info-panel{background:#383838;border-top-color:#666}.gui-dark .gui-structure-info-panel div{color:#f0f0f0}.gui-dark .gui-structure-info-panel div button{background:#616161}.gui-dark .gui-structure-info-panel p,.gui-dark .gui-structure-info-modal p{color:#f0f0f0}.gui-dark gui-paging-alternative-navigator .gui-button{background:transparent;color:#f0f0f0;margin:0 4px;padding:0}.gui-dark gui-paging-alternative-navigator .gui-button:hover{background:transparent}.gui-dark gui-paging-alternative-navigator .gui-button:disabled{background:transparent;color:#f0f0f0;opacity:.4}.gui-dark gui-paging-alternative-navigator gui-paging-alternative-pages .gui-paging-active-page{box-shadow:0 1px #f0f0f0;color:#f0f0f0}.gui-dark .gui-search-bar form{background:#444}.gui-dark .gui-search-bar input{background:#444;border:0;color:#f0f0f0;cursor:pointer}.gui-dark .gui-search-bar:hover .gui-search-icon-svg line,.gui-dark .gui-search-bar:hover .gui-search-icon-svg circle{stroke:#878787}.gui-dark .gui-icon{cursor:pointer}.gui-dark .gui-icon svg{stroke:#aaa;transition:stroke .3s ease-in-out}.gui-dark .gui-icon svg:hover{stroke:#e6e6e6!important}.gui-dark .gui-empty-source div{background:#383838}.gui-dark .gui-dialog-wrapper .gui-dialog-content .gui-schema-manager-dialog .gui-dialog-title{color:#f0f0f0}.gui-dark .gui-title-panel,.gui-dark .gui-footer-panel{background:#383838}.gui-dark .gui-structure-ordered-list li:hover{background:#525252}\\n\", \".gui-light{border-color:#f0f0f0;font-family:Arial;font-size:14px}.gui-light *{border-color:#f0f0f0}.gui-light.gui-structure-border{border:0}.gui-light.gui-structure,.gui-light .gui-header{background:#fff;color:#333;font-family:Arial}.gui-light .gui-header-cell,.gui-light .gui-structure-header-columns{height:56px}.gui-light.gui-structure-border{border-color:#f0f0f0 transparent}.gui-light .gui-header-cell,.gui-light .gui-structure-container-element .gui-structure-cell>span{padding-left:16px;padding-right:16px}.gui-light .gui-structure-header .gui-header{color:#333;font-weight:700}.gui-light .gui-structure-header .gui-header .gui-header-cell:hover{background:#f3f9ff}.gui-light .gui-structure-header .gui-header .gui-header-cell:hover .gui-header-menu .gui-header-menu-icon-wrapper{background-color:#f3f9ff}.gui-light .gui-structure-container .gui-structure-container-element .gui-content .gui-row:hover{background:#f3f9ff}.gui-light .gui-structure-container .gui-structure-container-element .gui-content .gui-row.selected{background:rgba(124,185,246,.3215686275)}.gui-light.gui-rows-odd .gui-row.odd,.gui-light.gui-rows-even .gui-row.even{background:#f7f7f7}.gui-light gui-paging-alternative-navigator .gui-button{background:transparent;color:#333;margin:0 4px;padding:0}.gui-light gui-paging-alternative-navigator .gui-button:hover{background:transparent}.gui-light gui-paging-alternative-navigator .gui-button:disabled{background:transparent;color:#333;opacity:.4}.gui-light .gui-structure-top-panel,.gui-light .gui-structure-info-panel,.gui-light .gui-paging{height:56px;padding-left:16px;padding-right:16px}.gui-light .gui-structure-top-panel,.gui-light .gui-structure-info-panel,.gui-light .gui-paging,.gui-light .gui-structure-summaries-panel{background:#fff}.gui-light .gui-search-bar form input{border:0;outline:none}\\n\", \".gui-structure.gui-generic{border-color:#2224261a;font-family:Arial;font-size:14px}.gui-structure.gui-generic *{border-color:#2224261a}.gui-structure.gui-generic .gui-header-cell,.gui-structure.gui-generic .gui-structure-header-columns{height:46px}.gui-structure.gui-generic .gui-header .gui-header-cell.gui-header-sortable:hover{background:rgba(0,0,0,.04);transition:.15s all}.gui-structure.gui-generic .gui-header-cell,.gui-structure.gui-generic .gui-structure-container-element .gui-structure-cell>span{padding-left:12px;padding-right:12px}.gui-structure.gui-generic .gui-structure-container-element .gui-structure-cell:last-child>span{padding-right:20px}.gui-structure.gui-generic .gui-structure-header.gui-header-bottom .gui-header{border-color:inherit;border-style:solid;border-width:2px 0 0}.gui-structure.gui-generic .gui-structure-container .gui-structure-container-element .gui-content .gui-row:hover{background:rgba(0,0,0,.04)}.gui-structure.gui-generic .gui-structure-container .gui-structure-container-element .gui-content .gui-row.selected{background:#e6f7ff}.gui-structure.gui-generic .gui-structure-header .gui-header{background:#f9fafb;border-width:0 0 2px;color:#464646;font-weight:700}.gui-structure.gui-generic .gui-rows-odd .gui-row.odd,.gui-structure.gui-generic .gui-rows-even .gui-row.even{background:#f9fafb}.gui-structure.gui-generic .gui-cell .gui-button,.gui-structure.gui-generic .gui-cell .gui-badge{padding:0}.gui-structure.gui-generic .gui-paging-alternative-navigator .gui-button{background:transparent;color:#333;margin:0 4px;padding:0}.gui-structure.gui-generic .gui-paging-alternative-navigator .gui-button:hover{background:transparent}.gui-structure.gui-generic .gui-paging-alternative-navigator .gui-button:disabled{background:transparent;color:#ccc;opacity:.4}.gui-structure.gui-generic .gui-structure-summaries-panel{background:#f9fafb}.gui-structure.gui-generic .gui-structure-top-panel,.gui-structure.gui-generic .gui-structure-info-panel,.gui-structure.gui-generic .gui-paging{height:46px;padding-left:12px;padding-right:12px}.gui-structure.gui-generic .gui-structure-info-panel{background:#f9fafb;border-radius:0}.gui-structure.gui-generic .gui-structure-top-panel{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;padding-right:0}.gui-structure.gui-generic .gui-structure-top-panel .gui-search-bar form input{border:0;outline:0}.gui-structure.gui-generic .gui-rows-odd gui-row.odd,.gui-structure.gui-generic .gui-rows-even .gui-row.even{background:#f9fafb}.gui-structure.gui-generic .gui-row:hover{background:#f9fafb;transition:.15s all}\\n\"],\n encapsulation: 2,\n changeDetection: 0\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(StructureComponent, [{\n type: Component,\n args: [{\n selector: 'gui-structure',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n '[class.gui-structure-border]': 'isBorderEnabled()',\n '[id]': 'structureId.toString()'\n },\n providers: [{\n provide: StructureId,\n useFactory: structureIdFactoryForGrid,\n deps: [StructureIdGenerator]\n }, {\n provide: CompositionId,\n useFactory: compositionIdFactoryForGrid,\n deps: [StructureIdGenerator]\n }, {\n provide: SchemaReadModelRootId,\n useFactory: schemaIdFactoryForGrid,\n deps: [StructureIdGenerator]\n }, SchemaCssClassManager, StructureCellEditCloseAllService, StructureCellEditStore, StructureEditModeArchive, StructureInfoPanelArchive, StructureInfoPanelConfigService, StructureColumnMenuConfigArchive, PagingFeatureModule.forComponent(), TranslationFeatureModule.forComponent(), StructureHeaderTopEnabledArchive, StructureHeaderBottomEnabledArchive, StructureRowDetailConfigArchive, StructureRowDetailService, StructureTitlePanelConfigArchive, StructureFooterPanelConfigArchive, {\n provide: structureComponentToken,\n useExisting: StructureComponent\n }, {\n provide: filterContainerToken,\n useExisting: StructureComponent\n }],\n template: \"
\\n\\n\\n
\\n\\t\\n\\t\\n
\\n\",\n styles: [\".gui-box-border{box-sizing:border-box}.gui-bg-transparent{background-color:transparent}.gui-border{border-width:1px}.gui-border-0{border-width:0}.gui-border-b{border-bottom-width:1px}.gui-border-t{border-top-width:1px}.gui-border-solid{border-style:solid}.gui-border-b-solid{border-bottom-style:solid}.gui-border-t-solid{border-top-style:solid}.gui-border-none{border-style:none}.gui-rounded{border-radius:4px}.gui-cursor-pointer{cursor:pointer}.gui-block{display:block}.gui-inline-block{display:inline-block}.gui-inline{display:inline}.gui-flex{display:-ms-flexbox;display:flex}.gui-hidden{display:none}.gui-display-grid{display:grid}.gui-flex-row{-ms-flex-direction:row;flex-direction:row}.gui-flex-row-reverse{-ms-flex-direction:row-reverse;flex-direction:row-reverse}.gui-flex-col{-ms-flex-direction:column;flex-direction:column}.gui-flex-col-reverse{-ms-flex-direction:column-reverse;flex-direction:column-reverse}.gui-justify-start{-ms-flex-pack:start;justify-content:flex-start}.gui-justify-end{-ms-flex-pack:end;justify-content:flex-end}.gui-justify-center{-ms-flex-pack:center;justify-content:center}.gui-justify-between{-ms-flex-pack:justify;justify-content:space-between}.gui-justify-around{-ms-flex-pack:distribute;justify-content:space-around}.gui-justify-evenly{-ms-flex-pack:space-evenly;justify-content:space-evenly}.gui-items-start{-ms-flex-align:start;align-items:flex-start}.gui-items-end{-ms-flex-align:end;align-items:flex-end}.gui-items-center{-ms-flex-align:center;align-items:center}.gui-items-between{-ms-flex-align:space-between;align-items:space-between}.gui-items-around{-ms-flex-align:space-around;align-items:space-around}.gui-items-evenly{-ms-flex-align:space-evenly;align-items:space-evenly}.gui-flex-wrap{-ms-flex-wrap:wrap;flex-wrap:wrap}.gui-flex-wrap-reverse{-ms-flex-wrap:wrap-reverse;flex-wrap:wrap-reverse}.gui-flex-nowrap{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.gui-grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.gui-grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.gui-grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.gui-grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.gui-grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.gui-grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.gui-grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}.gui-grid-cols-8{grid-template-columns:repeat(8,minmax(0,1fr))}.gui-grid-cols-9{grid-template-columns:repeat(9,minmax(0,1fr))}.gui-grid-rows-1{grid-template-rows:repeat(1,minmax(0,1fr))}.gui-grid-rows-2{grid-template-rows:repeat(2,minmax(0,1fr))}.gui-grid-rows-3{grid-template-rows:repeat(3,minmax(0,1fr))}.gui-grid-rows-4{grid-template-rows:repeat(4,minmax(0,1fr))}.gui-grid-rows-5{grid-template-rows:repeat(5,minmax(0,1fr))}.gui-grid-rows-6{grid-template-rows:repeat(6,minmax(0,1fr))}.gui-grid-rows-7{grid-template-rows:repeat(7,minmax(0,1fr))}.gui-grid-rows-8{grid-template-rows:repeat(8,minmax(0,1fr))}.gui-grid-rows-9{grid-template-rows:repeat(9,minmax(0,1fr))}.gui-grid-rows-gap-0{grid-row-gap:0}.gui-grid-rows-gap-1{grid-row-gap:1px}.gui-grid-rows-gap-2{grid-row-gap:2px}.gui-grid-rows-gap-3{grid-row-gap:3px}.gui-grid-rows-gap-4{grid-row-gap:4px}.gui-grid-rows-gap-5{grid-row-gap:6px}.gui-grid-rows-gap-6{grid-row-gap:8px}.gui-grid-rows-gap-7{grid-row-gap:10px}.gui-grid-rows-gap-8{grid-row-gap:12px}.gui-grid-rows-gap-10{grid-row-gap:16px}.gui-grid-rows-gap-13{grid-row-gap:22px}.gui-grid-rows-gap-23{grid-row-gap:42px}.gui-grid-cols-gap-0{grid-column-gap:0}.gui-grid-cols-gap-1{grid-column-gap:1px}.gui-grid-cols-gap-2{grid-column-gap:2px}.gui-grid-cols-gap-3{grid-column-gap:3px}.gui-grid-cols-gap-4{grid-column-gap:4px}.gui-grid-cols-gap-5{grid-column-gap:6px}.gui-grid-cols-gap-6{grid-column-gap:8px}.gui-grid-cols-gap-7{grid-column-gap:10px}.gui-grid-cols-gap-8{grid-column-gap:12px}.gui-grid-cols-gap-10{grid-column-gap:16px}.gui-grid-cols-gap-13{grid-column-gap:22px}.gui-grid-cols-gap-23{grid-column-gap:42px}.gui-h-full{height:100%}.gui-list-none{list-style-type:none}.gui-m-0{margin:0}.gui-mx-0{margin-left:0;margin-right:0}.gui-my-0{margin-bottom:0;margin-top:0}.-gui-m-0{margin:0}.-gui-mx-0{margin-left:0;margin-right:0}.-gui-my-0{margin-bottom:0;margin-top:0}.gui-m-1{margin:1px}.gui-mx-1{margin-left:1px;margin-right:1px}.gui-my-1{margin-bottom:1px;margin-top:1px}.-gui-m-1{margin:-1px}.-gui-mx-1{margin-left:-1px;margin-right:-1px}.-gui-my-1{margin-bottom:-1px;margin-top:-1px}.gui-m-2{margin:2px}.gui-mx-2{margin-left:2px;margin-right:2px}.gui-my-2{margin-bottom:2px;margin-top:2px}.-gui-m-2{margin:-2px}.-gui-mx-2{margin-left:-2px;margin-right:-2px}.-gui-my-2{margin-bottom:-2px;margin-top:-2px}.gui-m-3{margin:3px}.gui-mx-3{margin-left:3px;margin-right:3px}.gui-my-3{margin-bottom:3px;margin-top:3px}.-gui-m-3{margin:-3px}.-gui-mx-3{margin-left:-3px;margin-right:-3px}.-gui-my-3{margin-bottom:-3px;margin-top:-3px}.gui-m-4{margin:4px}.gui-mx-4{margin-left:4px;margin-right:4px}.gui-my-4{margin-bottom:4px;margin-top:4px}.-gui-m-4{margin:-4px}.-gui-mx-4{margin-left:-4px;margin-right:-4px}.-gui-my-4{margin-bottom:-4px;margin-top:-4px}.gui-m-5{margin:6px}.gui-mx-5{margin-left:6px;margin-right:6px}.gui-my-5{margin-bottom:6px;margin-top:6px}.-gui-m-5{margin:-6px}.-gui-mx-5{margin-left:-6px;margin-right:-6px}.-gui-my-5{margin-bottom:-6px;margin-top:-6px}.gui-m-6{margin:8px}.gui-mx-6{margin-left:8px;margin-right:8px}.gui-my-6{margin-bottom:8px;margin-top:8px}.-gui-m-6{margin:-8px}.-gui-mx-6{margin-left:-8px;margin-right:-8px}.-gui-my-6{margin-bottom:-8px;margin-top:-8px}.gui-m-7{margin:10px}.gui-mx-7{margin-left:10px;margin-right:10px}.gui-my-7{margin-bottom:10px;margin-top:10px}.-gui-m-7{margin:-10px}.-gui-mx-7{margin-left:-10px;margin-right:-10px}.-gui-my-7{margin-bottom:-10px;margin-top:-10px}.gui-m-8{margin:12px}.gui-mx-8{margin-left:12px;margin-right:12px}.gui-my-8{margin-bottom:12px;margin-top:12px}.-gui-m-8{margin:-12px}.-gui-mx-8{margin-left:-12px;margin-right:-12px}.-gui-my-8{margin-bottom:-12px;margin-top:-12px}.gui-m-10{margin:16px}.gui-mx-10{margin-left:16px;margin-right:16px}.gui-my-10{margin-bottom:16px;margin-top:16px}.-gui-m-10{margin:-16px}.-gui-mx-10{margin-left:-16px;margin-right:-16px}.-gui-my-10{margin-bottom:-16px;margin-top:-16px}.gui-m-13{margin:22px}.gui-mx-13{margin-left:22px;margin-right:22px}.gui-my-13{margin-bottom:22px;margin-top:22px}.-gui-m-13{margin:-22px}.-gui-mx-13{margin-left:-22px;margin-right:-22px}.-gui-my-13{margin-bottom:-22px;margin-top:-22px}.gui-m-23{margin:42px}.gui-mx-23{margin-left:42px;margin-right:42px}.gui-my-23{margin-bottom:42px;margin-top:42px}.-gui-m-23{margin:-42px}.-gui-mx-23{margin-left:-42px;margin-right:-42px}.-gui-my-23{margin-bottom:-42px;margin-top:-42px}.gui-mb-4{margin-bottom:4px}.gui-mb-6{margin-bottom:8px}.gui-mb-8{margin-bottom:12px}.gui-mb-10{margin-bottom:16px}.gui-mb-18{margin-bottom:32px}.gui-mr-0{margin-right:0}.gui-mr-5{margin-right:6px}.gui-mr-auto{margin-right:auto}.gui-ml-auto{margin-left:auto}.gui-ml-6{margin-left:8px}.gui-mt-0{margin-top:0}.gui-mt-4{margin-top:4px}.gui-mt-6{margin-top:8px}.gui-mt-10{margin-top:16px}.gui-mt-14{margin-top:24px}.gui-overflow-hidden{overflow:hidden}.gui-overflow-y-scroll{overflow-y:scroll}.gui-overflow-x-hidden{overflow-x:hidden}.gui-overflow-auto{overflow:auto}.gui-p-0{padding:0}.gui-px-0{padding-left:0;padding-right:0}.gui-py-0{padding-bottom:0;padding-top:0}.gui-p-1{padding:1px}.gui-px-1{padding-left:1px;padding-right:1px}.gui-py-1{padding-bottom:1px;padding-top:1px}.gui-p-2{padding:2px}.gui-px-2{padding-left:2px;padding-right:2px}.gui-py-2{padding-bottom:2px;padding-top:2px}.gui-p-3{padding:3px}.gui-px-3{padding-left:3px;padding-right:3px}.gui-py-3{padding-bottom:3px;padding-top:3px}.gui-p-4{padding:4px}.gui-px-4{padding-left:4px;padding-right:4px}.gui-py-4{padding-bottom:4px;padding-top:4px}.gui-p-5{padding:6px}.gui-px-5{padding-left:6px;padding-right:6px}.gui-py-5{padding-bottom:6px;padding-top:6px}.gui-p-6{padding:8px}.gui-px-6{padding-left:8px;padding-right:8px}.gui-py-6{padding-bottom:8px;padding-top:8px}.gui-p-7{padding:10px}.gui-px-7{padding-left:10px;padding-right:10px}.gui-py-7{padding-bottom:10px;padding-top:10px}.gui-p-8{padding:12px}.gui-px-8{padding-left:12px;padding-right:12px}.gui-py-8{padding-bottom:12px;padding-top:12px}.gui-p-10{padding:16px}.gui-px-10{padding-left:16px;padding-right:16px}.gui-py-10{padding-bottom:16px;padding-top:16px}.gui-p-13{padding:22px}.gui-px-13{padding-left:22px;padding-right:22px}.gui-py-13{padding-bottom:22px;padding-top:22px}.gui-p-23{padding:42px}.gui-px-23{padding-left:42px;padding-right:42px}.gui-py-23{padding-bottom:42px;padding-top:42px}.gui-pr-10{padding-right:16px}.gui-pl-9{padding-right:10px}.gui-pb-6{padding-bottom:8px}.gui-pb-12{padding-bottom:20px}.gui-pl-21{padding-left:38px}.gui-pt-4{padding-top:4px}.gui-pt-6{padding-top:8px}.gui-pt-10{padding-top:16px}.gui-pt-12{padding-top:20px}.gui-pt-14{padding-top:24px}.gui-static{position:static}.gui-fixed{position:fixed}.gui-relative{position:relative}.gui-absolute{position:absolute}.gui-text-xxs{font-size:11px}.gui-text-xs{font-size:12px}.gui-text-sm{font-size:13px}.gui-text-base{font-size:14px}.gui-text-lg{font-size:16px}.gui-text-xl{font-size:18px}.gui-text-2xl{font-size:20px}.gui-text-3xl{font-size:22px}.gui-leading-4{line-height:16px}.gui-leading-6{line-height:24px}.gui-font-thin{font-weight:100}.gui-font-extralight{font-weight:200}.gui-font-light{font-weight:300}.gui-font-normal{font-weight:400}.gui-font-medium{font-weight:500}.gui-font-semibold{font-weight:600}.gui-font-bold{font-weight:700}.gui-font-extrabold{font-weight:800}.gui-font-black{font-weight:900}.gui-not-italic{font-style:normal}.gui-whitespace-nowrap{white-space:nowrap}.gui-overflow-ellipsis{text-overflow:ellipsis}.gui-no-underline{text-decoration:none}.gui-text-center{text-align:center}.gui-w-full{width:100%}.gui-w-96{width:384px}.gui-w-3\\\\/5{width:60%}.gui-structure *,.gui-structure *:after,.gui-structure *:before{box-sizing:border-box}.gui-structure input{font-size:13px;outline:0}.gui-bold{font-weight:700}.gui-italic{font-style:italic}.gui-bar-view{width:100%}.gui-align-right{display:-ms-flexbox;display:flex;-ms-flex-pack:end;justify-content:flex-end;text-align:right;width:100%}.gui-align-left{text-align:left;width:100%}.gui-align-center{-ms-flex-pack:center;justify-content:center;text-align:center;width:100%}.gui-icon{cursor:pointer}.gui-icon svg{fill:#aaa;stroke:#aaa;transition:stroke .3s ease-in-out}.gui-icon svg:hover{fill:#464646!important;stroke:#464646!important}.gui-view-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gui-percentage-bar{background:#deebff;border-radius:4px;box-shadow:inset 1px 1px 2px #ccc;color:#0747a6;height:22px;padding:4px;position:relative;text-align:center;width:100%}.gui-percentage-bar .gui-percentage{background:#8abcfc;border-radius:4px;height:22px;left:0;position:absolute;top:0}.gui-percentage-bar .gui-percentage-view{color:#031d44;position:relative;width:100%}.gui-clear-search-icon{cursor:pointer;height:16px;position:absolute;right:8px;top:50%;-ms-transform:translateY(-50%);transform:translateY(-50%);width:16px}.gui-clear-search-icon:before,.gui-clear-search-icon:after{background-color:#aaa;border-radius:8px;content:\\\" \\\";height:16px;left:7px;position:absolute;width:2px}.gui-clear-search-icon:before{-ms-transform:rotate(45deg);transform:rotate(45deg)}.gui-clear-search-icon:after{-ms-transform:rotate(-45deg);transform:rotate(-45deg)}.gui-clear-search-icon:hover:before,.gui-clear-search-icon:hover:after{background-color:#464646}\\n\", \".gui-structure,.gui-structure *{border-color:#d6d6d6;font-size:14px}.gui-structure input{color:#333;font-family:Arial}.gui-header{background:#f2f3f4;border-bottom:1px solid;border-color:inherit;height:36px}.gui-header .gui-header-cell.gui-header-sortable{cursor:pointer}.gui-header .gui-header-cell.gui-header-sortable:hover{background:#e6e7e8}.gui-header .gui-header-cell .gui-header-menu-icon{display:none}.gui-header .gui-header-cell:hover .gui-header-menu{cursor:pointer}.gui-header .gui-header-cell:hover .gui-header-menu .gui-header-menu-icon-wrapper .gui-header-menu-icon{display:block}.gui-header .gui-header-cell:last-of-type{border-right:0}.gui-header .gui-header-cell .gui-header-title{display:-ms-flexbox;display:flex;line-height:1.4em}.gui-header .gui-header-cell .gui-header-menu{display:-ms-flexbox;display:flex}.gui-header .gui-header-cell .gui-header-menu .gui-header-menu-icon-wrapper{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;height:16px;padding:16px;position:relative;right:0;width:16px}.gui-header .gui-header-cell .gui-header-menu .gui-header-menu-icon-wrapper .gui-header-menu-icon{display:none;height:16px;width:16px}.gui-header-bottom .gui-header{border-bottom:0;border-color:inherit;border-top:1px solid}.gui-structure{background:#fff;border-color:#d6d6d6;box-sizing:border-box;color:#333;display:block;font-family:Arial;font-size:14px;position:relative}.gui-structure *{box-sizing:border-box}.gui-structure .gui-structure-header{display:block;height:100%;width:100%}.gui-structure .gui-structure-header .gui-structure-header-filters.gui-header{height:32px}.gui-structure .gui-structure-header .gui-structure-header-filters.gui-header .gui-header-cell{padding:4px}.gui-structure .gui-structure-header .gui-structure-header-filters.gui-header .gui-header-cell input{box-sizing:border-box;height:100%;padding:2px;position:relative;width:100%;border-color:#d6d6d6;border-style:solid;border-width:1px;font-size:13px}.gui-structure-container{display:block;height:100%;overflow:auto;overflow-x:hidden;position:relative;width:100%}.gui-structure-container .gui-structure-container-element{height:100%;position:absolute;width:100%}.gui-structure-container .gui-structure-container-element .gui-content{height:100%;position:relative}.gui-structure-container .gui-structure-container-element .gui-content .gui-row{border-bottom:1px solid transparent;position:absolute;width:100%}.gui-structure-container .gui-structure-container-element .gui-content .gui-row:last-child{border-bottom:0}.gui-structure-container .gui-structure-container-element .gui-content .gui-row:hover{background:#ecedee}.gui-structure-container .gui-structure-container-element .gui-content .gui-row.selected{background:#d0e8fb}.gui-structure-container .gui-structure-container-element .gui-content .gui-row .gui-cell{border-right:1px solid transparent;box-sizing:border-box;line-height:1em;overflow:hidden;padding:0;white-space:nowrap}.gui-structure-container .gui-structure-container-element .gui-content .gui-row .gui-cell .gui-cell-view span{line-height:1.4em}.gui-structure-container .gui-structure-container-element .gui-content .gui-row .gui-cell .gui-button{padding:0}.gui-structure-container .gui-structure-container-element .gui-content .gui-row .gui-cell .gui-cell-boolean{-ms-flex-pack:center;justify-content:center}.gui-structure-container .gui-structure-container-element .gui-content .gui-row .gui-cell .gui-checkbox{line-height:24px;position:relative}.gui-structure-container .gui-structure-container-element .gui-content .gui-row .gui-cell .gui-checkbox input{position:relative}.gui-structure-container .gui-structure-container-element .gui-content .gui-row .gui-cell .gui-chip{line-height:1em;margin:0;padding:4px 8px}.gui-structure-container .gui-structure-container-element .gui-content .gui-row .gui-cell .gui-badge{padding:0}.gui-structure-container .gui-structure-container-element .gui-content .gui-row .gui-cell .gui-input{background:transparent;font-size:14px;padding:0;border-radius:0;border-style:none}.gui-structure-container .gui-cell{display:inline-block}.gui-structure-container .gui-cell:last-child .gui-cell-view{padding-right:20px}.gui-structure-container .gui-cell>span{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;height:100%;padding:0 8px;width:100%}.gui-structure-container .gui-cell .gui-cell-edit-mode{border:2px solid #2185d0;height:100%;padding:6px}.gui-structure-container .gui-cell .gui-cell-edit-mode .gui-boolean-edit{margin-left:calc(50% - 11px)}.gui-structure-container .gui-cell .gui-cell-edit-mode input:focus{box-shadow:none;outline:none}.gui-vertical-grid .gui-structure-summaries-cell,.gui-vertical-grid .gui-structure-container-element .gui-content .gui-row .gui-cell,.gui-vertical-grid .gui-structure-header .gui-header .gui-header-cell{border-right:1px solid;border-right-color:inherit}.gui-vertical-grid .gui-structure-container-element .gui-content .gui-row .gui-cell:last-of-type,.gui-vertical-grid .gui-structure-header .gui-header .gui-header-cell:last-of-type{border-right:0}.gui-vertical-grid .gui-row-checkbox{border-right:1px solid!important;border-right-color:inherit!important}.gui-horizontal-grid .gui-structure-container-element .gui-content .gui-row{border-bottom:1px solid;border-bottom-color:inherit}.gui-horizontal-grid .gui-structure-container-element .gui-content .gui-row:last-of-type{border-bottom:0}.gui-rows-even .gui-row.even,.gui-rows-odd .gui-row.odd{background:#f7f8f9}.gui-structure-info-panel{-ms-flex-align:center;align-items:center;background:#f2f3f4;box-sizing:border-box;display:-ms-flexbox;display:flex;height:36px;-ms-flex-pack:justify;justify-content:space-between;padding:0 6px;width:100%;border-top-color:inherit;border-top-style:solid;border-top-width:1px}.gui-structure-info-panel p{margin:0}.gui-structure-info-panel p b{font-weight:700}.gui-structure-info-panel div button{background:#ccc;color:#fff;cursor:pointer;font-family:Arial;font-weight:700;height:16px;line-height:14px;padding:0;width:16px;border-color:transparent;border-radius:50%;border-style:solid;border-width:1px}.gui-structure-info-panel div button:focus{box-shadow:0 0 4px #ccc;outline:none}.gui-structure-border{border:1px solid;border-color:#d6d6d6}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}.gui-loading{-ms-flex-line-pack:center;align-content:center;animation-duration:.2s;background:rgba(255,255,255,.8);border:1px solid;border-color:inherit;display:-ms-flexbox;display:flex;height:100%;-ms-flex-pack:center;justify-content:center;left:0;opacity:0;position:absolute;top:0;visibility:hidden;width:100%}.gui-loading .gui-spinner{-ms-flex-item-align:center;align-self:center}.gui-loading.gui-loader-hidden{animation-name:fadeOut;opacity:0;visibility:visible;z-index:-1}.gui-loading.gui-loader-visible{animation-name:fadeIn;opacity:1;visibility:visible;z-index:1}.gui-text-highlight{background:#fff799;padding:0!important}.gui-title-panel{border-bottom-color:#d6d6d6}.gui-footer-panel{border-top-color:#d6d6d6}.gui-structure-schema-manager-icon{margin-right:16px}.gui-structure-schema-manager-icon svg{height:18px;margin-bottom:-1px;width:18px}.gui-row-radio{-ms-flex-align:center;align-items:center;cursor:pointer;display:-ms-flexbox!important;display:flex!important;-ms-flex-pack:center;justify-content:center;padding:0 12px!important;width:48px!important}.gui-row-radio .gui-radio-button{height:24px;margin:0;padding:0;width:24px}.gui-row-checkbox{-ms-flex-align:center;align-items:center;cursor:pointer;display:-ms-flexbox!important;display:flex!important;-ms-flex-pack:center;justify-content:center;padding:0 12px!important;width:48px!important}.gui-row-checkbox .gui-checkbox{height:24px;margin:0;padding:0;width:24px}.gui-select-all .gui-checkbox .gui-checkmark{top:0}.gui-structure-cell-edit-boolean{height:100%}.gui-column-highlighted{background:#fffddd}.gui-structure-column-manager>div:hover{background:#ecedee}.gui-structure-column-manager label{margin-bottom:0}.gui-structure-ordered-list li:hover{background:#ecedee}\\n\", \".gui-structure-column-menu-icon svg{height:16px;width:16px}.gui-structure-column-menu-icon .cls-1{fill:none;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.5px}.gui-structure-column-menu-arrow-icon{display:inline-block}.gui-structure-column-menu-arrow-icon svg{height:10px;width:12px}.gui-structure-column-menu-arrow-icon .gui-structure-column-menu-sort-icon svg{height:16px}.gui-structure-column-menu-arrow-icon .cls-1{fill:none;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.5px}\\n\", \".gui-summaries-value{font-weight:700}.gui-structure-summaries-panel{background:#f2f3f4}.gui-structure-summaries-panel.gui-structure-summaries-panel-bottom .gui-structure-summaries-cell{border-top:1px solid #d6d6d6}.gui-structure-summaries-panel.gui-structure-summaries-panel-top .gui-structure-summaries-cell{border-bottom:1px solid #d6d6d6}.gui-structure-summaries-panel .gui-structure-summaries-cell{font-size:14px;padding-left:16px;padding-right:16px}.gui-structure-summaries-panel .gui-structure-summaries-cell:last-child{padding-right:20px}.gui-structure-summaries-panel .gui-structure-summaries-value{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;line-height:1em;overflow:hidden;padding:8px 0}.gui-structure-summaries-panel .gui-structure-summaries-value div .gui-math-symbol{position:relative;top:-1px}.gui-structure-summaries-panel .gui-structure-summaries-value .gui-mean,.gui-structure-summaries-panel .gui-structure-summaries-value .gui-median{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;position:relative}.gui-structure-summaries-panel .gui-structure-summaries-value .gui-mean span:nth-child(1){left:1px;position:absolute;top:-15px}.gui-structure-summaries-panel .gui-structure-summaries-value .gui-median span:nth-child(1){left:1px;position:absolute;top:-8px}\\n\", \".gui-structure-column-manager-icon svg{height:16px;width:16px}.gui-structure-column-manager-icon .cls-1,.gui-structure-column-manager-icon .cls-2{fill:none;stroke-linecap:round;stroke-linejoin:round}.gui-structure-column-manager-icon .cls-2{stroke-width:1.5px}.gui-structure-info-icon svg{height:16px;width:16px}.gui-structure-info-icon .cls-1{stroke-width:0}.gui-structure-info-icon .cls-2{fill:none;stroke-linecap:round;stroke-linejoin:round}.gui-structure-info-panel div,.gui-structure-info-panel div button{display:inline-block}.gui-structure-info-panel .gui-right-section .gui-structure-column-manager-icon{margin-right:16px;position:relative}.gui-structure-info-panel .gui-right-section .gui-structure-info-icon{margin-right:4px;position:relative}.gui-structure-info-modal .gui-quote{color:#575757}.gui-structure-info-modal p{color:#333}.gui-structure-info-modal a{color:#2185d0}.gui-structure-info-modal a:hover{color:#59a9e5;text-decoration:underline}\\n\", \"@media (max-width: 500px){.gui-paging>*{padding-left:4px}.gui-paging .gui-paging-stats{padding-left:4px}}\\n\", \".gui-header{display:-ms-flexbox;display:flex}.gui-header .gui-header-cell{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex}.gui-content{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}.gui-content .gui-structure-cell-container,.gui-content .gui-row{display:-ms-flexbox;display:flex}.gui-content .gui-structure-cell-container .gui-cell,.gui-content .gui-row .gui-cell{display:inline-block}.gui-content .gui-structure-row-details{background:#80cbc4;display:block;height:200px;position:absolute;-ms-transform:translateY(0);transform:translateY(0);width:100%}\\n\", \".gui-inline-dialog-header-menu.gui-inline-dialog-wrapper .gui-inline-dialog-content{background:transparent;box-shadow:none}.gui-inline-dialog-header-menu .gui-header-menu-tab .gui-header-item-active{font-weight:700}.gui-inline-dialog-header-menu .gui-header-menu-tab .gui-tab .gui-tab-menu .gui-tab-menu-list{background:#fff}.gui-inline-dialog-header-menu .gui-header-menu-tab .gui-tab .gui-tab-menu .gui-tab-menu-item{color:#333}.gui-inline-dialog-header-menu .gui-header-menu-tab .gui-tab .gui-tab-menu .gui-tab-menu-item:hover{background:#ecedee}.gui-inline-dialog-header-menu .gui-header-menu-tab .gui-tab .gui-tab-menu .gui-tab-menu-item.gui-active{color:#2185d0}.gui-inline-dialog-header-menu .gui-header-menu-tab .gui-tab .gui-tab-content{box-shadow:0 3px 7px #ccc;box-sizing:content-box;padding:0;width:225px}.gui-inline-dialog-header-menu .gui-header-menu-tab .gui-header-menu-column-move{color:#333;display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;padding:0}.gui-inline-dialog-header-menu .gui-header-menu-tab .gui-header-menu-column-move .gui-header-menu-column-move-item{-ms-flex-align:center;align-items:center;cursor:pointer;display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between}.gui-inline-dialog-header-menu .gui-header-menu-tab .gui-header-menu-column-move .gui-header-menu-column-move-item svg line{stroke:#aaa}.gui-inline-dialog-header-menu .gui-header-menu-tab .gui-header-menu-column-move .gui-header-menu-column-move-item.left{padding:12px 16px 12px 12px;width:48%}.gui-inline-dialog-header-menu .gui-header-menu-tab .gui-header-menu-column-move .gui-header-menu-column-move-item.right{padding:12px 10px;width:52%}.gui-inline-dialog-header-menu .gui-header-menu-tab .gui-header-menu-column-move .gui-header-menu-column-move-item:hover{background:#ecedee}.gui-inline-dialog-header-menu .gui-header-menu-tab .gui-header-menu-column-move .gui-header-menu-column-move-item:hover svg line{stroke:#464646}.gui-inline-dialog-header-menu .gui-header-menu-tab .gui-tab-item-dropdown .gui-header-menu-dropdown.gui-dropdown .gui-dropdown-container{border:none;border-radius:0}.gui-inline-dialog-header-menu .gui-header-menu-tab .gui-tab-item-dropdown .gui-header-menu-dropdown.gui-dropdown .gui-dropdown-container:hover{background:#ecedee}.gui-inline-dialog-header-menu .gui-header-menu-tab .gui-tab-item-dropdown .gui-header-menu-dropdown.gui-dropdown .gui-dropdown-container:hover .gui-dropdown-arrow{opacity:1}.gui-inline-dialog-header-menu .gui-header-menu-tab .gui-tab-item-dropdown .gui-header-menu-dropdown.gui-dropdown .gui-dropdown-menu{width:125px}.gui-inline-dialog-header-menu .gui-header-menu-tab .gui-tab-item-dropdown .gui-header-menu-dropdown.gui-dropdown .gui-dropdown-menu .gui-item{background:#fff;color:#333;display:-ms-flexbox;display:flex;padding:8px 8px 8px 12px}.gui-inline-dialog-header-menu .gui-header-menu-tab .gui-tab-item-dropdown .gui-header-menu-dropdown.gui-dropdown .gui-dropdown-menu .gui-item:hover{background:#ecedee}.gui-inline-dialog-header-menu .gui-header-menu-tab .gui-tab-item-dropdown .gui-header-menu-dropdown.gui-dropdown .gui-dropdown-menu .gui-item:hover .gui-sort-title svg line{stroke:#464646}.gui-inline-dialog-header-menu .gui-header-menu-tab .gui-tab-item-dropdown .gui-header-menu-dropdown.gui-dropdown .gui-dropdown-menu .gui-item .gui-sort-title{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;width:100%}.gui-inline-dialog-header-menu .gui-header-menu-tab .gui-tab-item-dropdown .gui-header-menu-dropdown.gui-dropdown .gui-dropdown-menu .gui-item .gui-sort-title svg{margin-top:3px}.gui-inline-dialog-header-menu .gui-header-menu-tab .gui-tab-item-dropdown .gui-header-menu-dropdown.gui-dropdown .gui-dropdown-menu .gui-item .gui-sort-title svg line{stroke:#aaa}.gui-inline-dialog-header-menu .gui-header-menu-tab .gui-header-menu-item{color:#333;cursor:pointer;display:block;padding:8px 12px}.gui-inline-dialog-header-menu .gui-header-menu-tab .gui-header-menu-item:hover{background:#ecedee}.gui-inline-dialog-header-menu .gui-header-menu-tab .gui-checkbox{color:#333;margin-left:12px;padding:8px 12px 8px 32px;width:169px}.gui-inline-dialog-header-menu .gui-header-menu-tab .gui-checkbox label{display:inline-block;width:inherit}\\n\", \".gui-schema-manager-dialog .gui-schema-manager{min-width:180px}.gui-schema-manager-dialog .gui-schema-manager .gui-structure-schema-manager-select,.gui-schema-manager-dialog .gui-schema-manager .gui-checkbox{color:#333}.gui-schema-manager-dialog .gui-schema-manager .gui-structure-schema-manager-select:nth-last-child(1),.gui-schema-manager-dialog .gui-schema-manager .gui-checkbox:nth-last-child(1){margin-bottom:0}.gui-dialog-title{border-bottom:solid 1px #d6d6d6;font-size:18px;font-weight:700;margin-left:-16px;margin-right:-16px;padding-bottom:16px;text-align:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.gui-structure-schema-manager-select{padding:8px 0 24px}.gui-structure-dialog-column-manager ol{max-height:400px;min-width:250px}\\n\", \".gui-cell .gui-checkbox{display:block}.gui-cell .gui-chip{margin:0;padding:2px 8px}.gui-cell .gui-input{display:block;font-size:11px;padding:2px 4px;width:100%}.gui-cell .gui-button{padding:2px 8px}.gui-cell .gui-cell-number{display:block;width:100%}.gui-cell .gui-cell-boolean{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;height:100%;text-align:center;width:100%}.gui-cell .gui-string-edit{width:100%}\\n\", \".gui-fabric{border-color:#d6d6d6;font-family:Arial;font-size:14px}.gui-fabric .gui-header-cell,.gui-fabric .gui-structure-header-columns,.gui-fabric .gui-structure-top-panel,.gui-fabric .gui-structure-info-panel,.gui-fabric .gui-paging{height:42px}\\n\", \".gui-material{border-color:#0000001f;font-family:Arial;font-size:14px}.gui-material *{border-color:#0000001f}.gui-material.gui-structure{border:0;border-radius:0;box-shadow:0 2px 2px #00000024,0 3px 1px -2px #0000001f,0 1px 5px #0003}.gui-material.gui-structure,.gui-material .gui-header{font-family:Arial}.gui-material .gui-header-cell,.gui-material .gui-structure-header-columns{height:56px}.gui-material .gui-header .gui-header-cell.gui-header-sortable:hover{background:transparent}.gui-material .gui-header-cell{padding-left:16px;padding-right:16px}.gui-material .gui-structure-container-element .gui-structure-cell>span{padding-left:16px;padding-right:16px}.gui-material .gui-structure-container .gui-structure-container-element .gui-content .gui-row:hover{background:rgba(0,0,0,.04)}.gui-material .gui-structure-container .gui-structure-container-element .gui-content .gui-row.selected{background:#e6f7ff}.gui-material .gui-structure-header .gui-header{background:transparent;color:#464646;font-weight:700}.gui-material .gui-structure-header .gui-header .gui-header-cell{border-color:inherit}.gui-material .gui-cell .gui-button,.gui-material .gui-cell .gui-badge{padding:0}.gui-material .gui-paging-alternative-navigator .gui-button{background:transparent;color:#333;margin:0 4px;padding:0}.gui-material .gui-paging-alternative-navigator .gui-button:hover{background:transparent}.gui-material .gui-paging-alternative-navigator .gui-button:disabled{background:transparent;color:#ccc;opacity:.4}.gui-material .gui-structure-summaries-panel{background:#fff}.gui-material gui-structure-top-panel,.gui-material .gui-structure-info-panel,.gui-material .gui-paging{height:52px;padding-left:16px;padding-right:16px}.gui-material .gui-structure-info-panel{background:#fff;border-radius:0}.gui-material gui-structure-top-panel{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;padding-right:0}.gui-material gui-structure-top-panel .gui-search-bar form input{border:0;outline:0}.gui-material .gui-search-bar form input{border:0;outline:none}\\n\", \".gui-dark{border-color:#575757;border-radius:2px;color:#f0f0f0;font-family:Arial;font-size:14px}.gui-dark *{border-color:#575757;color:#f0f0f0}.gui-dark.gui-structure{border-radius:2px}.gui-dark .gui-header-cell,.gui-dark .gui-structure-header-columns{background:#333;height:46px}.gui-dark .gui-structure-border{border:none;box-shadow:5px 5px 10px 2px #1f1f1f}.gui-dark .gui-header-cell{border-bottom:1px solid;border-color:inherit;padding-left:16px;padding-right:16px}.gui-dark .gui-structure-container-element .gui-structure-cell>span{padding-left:16px;padding-right:16px}.gui-dark .gui-structure-header .gui-header{border-bottom-color:#666;color:#bdbdbd}.gui-dark .gui-structure-header .gui-header .gui-header-cell:hover{background:#525252}.gui-dark .gui-structure-header .gui-header .gui-header-cell:hover .gui-header-menu .gui-header-menu-icon-wrapper{background-color:#525252}.gui-dark .gui-inline-dialog-header-menu .gui-header-menu-tab .gui-tab .gui-tab-menu .gui-tab-menu-list{background:#383838}.gui-dark .gui-inline-dialog-header-menu .gui-header-menu-tab .gui-tab .gui-tab-menu .gui-tab-menu-item{color:#f0f0f0}.gui-dark .gui-inline-dialog-header-menu .gui-header-menu-tab .gui-tab .gui-tab-menu .gui-tab-menu-item:hover{background:#525252}.gui-dark .gui-inline-dialog-header-menu .gui-header-menu-tab .gui-tab .gui-tab-menu .gui-tab-menu-item.gui-active{color:#ce93d8}.gui-dark .gui-inline-dialog-header-menu .gui-header-menu-tab .gui-tab .gui-tab-content{box-shadow:0 1px 2px #525252}.gui-dark .gui-inline-dialog-header-menu .gui-header-menu-tab .gui-tab .gui-structure-column-manager ol li:hover{background:#525252}.gui-dark .gui-inline-dialog-header-menu .gui-header-menu-tab .gui-header-menu-column-move{color:#f0f0f0}.gui-dark .gui-inline-dialog-header-menu .gui-header-menu-tab .gui-header-menu-column-move .gui-header-menu-column-move-item:hover{background:#525252}.gui-dark .gui-inline-dialog-header-menu .gui-header-menu-tab .gui-header-menu-column-move .gui-header-menu-column-move-item:hover svg line{stroke:#ce93d8}.gui-dark .gui-inline-dialog-header-menu .gui-header-menu-tab .gui-tab-item-dropdown .gui-header-menu-dropdown.gui-dropdown .gui-dropdown-container .gui-dropdown-menu{border-color:#666}.gui-dark .gui-inline-dialog-header-menu .gui-header-menu-tab .gui-tab-item-dropdown .gui-header-menu-dropdown.gui-dropdown .gui-dropdown-container .gui-dropdown-menu .gui-item:hover svg line{stroke:#ce93d8}.gui-dark .gui-inline-dialog-header-menu .gui-header-menu-tab .gui-tab-item-dropdown .gui-header-menu-dropdown.gui-dropdown .gui-dropdown-container:hover{background:#525252}.gui-dark .gui-inline-dialog-header-menu .gui-header-menu-tab .gui-tab-item-dropdown .gui-header-menu-dropdown.gui-dropdown .gui-item{background:#383838;color:#f0f0f0;display:-ms-flexbox;display:flex}.gui-dark .gui-inline-dialog-header-menu .gui-header-menu-tab .gui-tab-item-dropdown .gui-header-menu-dropdown.gui-dropdown .gui-item:hover{background:#525252}.gui-dark .gui-inline-dialog-header-menu .gui-header-menu-tab .gui-header-menu-item{color:#f0f0f0}.gui-dark .gui-inline-dialog-header-menu .gui-header-menu-tab .gui-header-menu-item:hover{background:#525252}.gui-dark .gui-inline-dialog-header-menu .gui-header-menu-tab .gui-checkbox{color:#f0f0f0}.gui-dark .gui-structure-column-manager>div:hover{background:#525252}.gui-dark .gui-structure-container .gui-structure-container-element .gui-content .gui-row:hover{background:#525252}.gui-dark .gui-structure-container .gui-structure-container-element .gui-content .gui-row.selected{background:rgba(124,185,246,.3215686275)}.gui-dark.gui-rows-odd .gui-row.odd,.gui-dark.gui-rows-even .gui-row.even{background:#4f4f4f}.gui-dark .gui-horizontal-grid .gui-structure-container-element .gui-row .gui-cell{border-bottom-color:#666}.gui-dark .gui-paging.gui-paging-bottom{border-top-color:#666}.gui-dark .gui-paging.gui-paging-top{border-bottom-color:#666}.gui-dark ::-webkit-scrollbar{width:15px}.gui-dark ::-webkit-scrollbar-track{background:#616161}.gui-dark ::-webkit-scrollbar-thumb{background:#424242}.gui-dark ::-webkit-scrollbar-thumb:hover{background:#212121}.gui-dark .gui-structure-top-panel,.gui-dark .gui-structure-info-panel,.gui-dark .gui-paging,.gui-dark .gui-structure-container-element,.gui-dark .gui-row{background:#444}.gui-dark .gui-structure-top-panel,.gui-dark .gui-structure-info-panel,.gui-dark .gui-paging{height:42px;padding-left:16px;padding-right:16px}.gui-dark .gui-structure-summaries-cell{background:#383838;color:#f0f0f0}.gui-dark .gui-structure-summaries-panel-bottom .gui-structure-summaries-cell{border-top-color:#666}.gui-dark .gui-structure-summaries-panel-top .gui-structure-summaries-cell{border-bottom-color:#666}.gui-dark .gui-structure-info-panel{background:#383838;border-top-color:#666}.gui-dark .gui-structure-info-panel div{color:#f0f0f0}.gui-dark .gui-structure-info-panel div button{background:#616161}.gui-dark .gui-structure-info-panel p,.gui-dark .gui-structure-info-modal p{color:#f0f0f0}.gui-dark gui-paging-alternative-navigator .gui-button{background:transparent;color:#f0f0f0;margin:0 4px;padding:0}.gui-dark gui-paging-alternative-navigator .gui-button:hover{background:transparent}.gui-dark gui-paging-alternative-navigator .gui-button:disabled{background:transparent;color:#f0f0f0;opacity:.4}.gui-dark gui-paging-alternative-navigator gui-paging-alternative-pages .gui-paging-active-page{box-shadow:0 1px #f0f0f0;color:#f0f0f0}.gui-dark .gui-search-bar form{background:#444}.gui-dark .gui-search-bar input{background:#444;border:0;color:#f0f0f0;cursor:pointer}.gui-dark .gui-search-bar:hover .gui-search-icon-svg line,.gui-dark .gui-search-bar:hover .gui-search-icon-svg circle{stroke:#878787}.gui-dark .gui-icon{cursor:pointer}.gui-dark .gui-icon svg{stroke:#aaa;transition:stroke .3s ease-in-out}.gui-dark .gui-icon svg:hover{stroke:#e6e6e6!important}.gui-dark .gui-empty-source div{background:#383838}.gui-dark .gui-dialog-wrapper .gui-dialog-content .gui-schema-manager-dialog .gui-dialog-title{color:#f0f0f0}.gui-dark .gui-title-panel,.gui-dark .gui-footer-panel{background:#383838}.gui-dark .gui-structure-ordered-list li:hover{background:#525252}\\n\", \".gui-light{border-color:#f0f0f0;font-family:Arial;font-size:14px}.gui-light *{border-color:#f0f0f0}.gui-light.gui-structure-border{border:0}.gui-light.gui-structure,.gui-light .gui-header{background:#fff;color:#333;font-family:Arial}.gui-light .gui-header-cell,.gui-light .gui-structure-header-columns{height:56px}.gui-light.gui-structure-border{border-color:#f0f0f0 transparent}.gui-light .gui-header-cell,.gui-light .gui-structure-container-element .gui-structure-cell>span{padding-left:16px;padding-right:16px}.gui-light .gui-structure-header .gui-header{color:#333;font-weight:700}.gui-light .gui-structure-header .gui-header .gui-header-cell:hover{background:#f3f9ff}.gui-light .gui-structure-header .gui-header .gui-header-cell:hover .gui-header-menu .gui-header-menu-icon-wrapper{background-color:#f3f9ff}.gui-light .gui-structure-container .gui-structure-container-element .gui-content .gui-row:hover{background:#f3f9ff}.gui-light .gui-structure-container .gui-structure-container-element .gui-content .gui-row.selected{background:rgba(124,185,246,.3215686275)}.gui-light.gui-rows-odd .gui-row.odd,.gui-light.gui-rows-even .gui-row.even{background:#f7f7f7}.gui-light gui-paging-alternative-navigator .gui-button{background:transparent;color:#333;margin:0 4px;padding:0}.gui-light gui-paging-alternative-navigator .gui-button:hover{background:transparent}.gui-light gui-paging-alternative-navigator .gui-button:disabled{background:transparent;color:#333;opacity:.4}.gui-light .gui-structure-top-panel,.gui-light .gui-structure-info-panel,.gui-light .gui-paging{height:56px;padding-left:16px;padding-right:16px}.gui-light .gui-structure-top-panel,.gui-light .gui-structure-info-panel,.gui-light .gui-paging,.gui-light .gui-structure-summaries-panel{background:#fff}.gui-light .gui-search-bar form input{border:0;outline:none}\\n\", \".gui-structure.gui-generic{border-color:#2224261a;font-family:Arial;font-size:14px}.gui-structure.gui-generic *{border-color:#2224261a}.gui-structure.gui-generic .gui-header-cell,.gui-structure.gui-generic .gui-structure-header-columns{height:46px}.gui-structure.gui-generic .gui-header .gui-header-cell.gui-header-sortable:hover{background:rgba(0,0,0,.04);transition:.15s all}.gui-structure.gui-generic .gui-header-cell,.gui-structure.gui-generic .gui-structure-container-element .gui-structure-cell>span{padding-left:12px;padding-right:12px}.gui-structure.gui-generic .gui-structure-container-element .gui-structure-cell:last-child>span{padding-right:20px}.gui-structure.gui-generic .gui-structure-header.gui-header-bottom .gui-header{border-color:inherit;border-style:solid;border-width:2px 0 0}.gui-structure.gui-generic .gui-structure-container .gui-structure-container-element .gui-content .gui-row:hover{background:rgba(0,0,0,.04)}.gui-structure.gui-generic .gui-structure-container .gui-structure-container-element .gui-content .gui-row.selected{background:#e6f7ff}.gui-structure.gui-generic .gui-structure-header .gui-header{background:#f9fafb;border-width:0 0 2px;color:#464646;font-weight:700}.gui-structure.gui-generic .gui-rows-odd .gui-row.odd,.gui-structure.gui-generic .gui-rows-even .gui-row.even{background:#f9fafb}.gui-structure.gui-generic .gui-cell .gui-button,.gui-structure.gui-generic .gui-cell .gui-badge{padding:0}.gui-structure.gui-generic .gui-paging-alternative-navigator .gui-button{background:transparent;color:#333;margin:0 4px;padding:0}.gui-structure.gui-generic .gui-paging-alternative-navigator .gui-button:hover{background:transparent}.gui-structure.gui-generic .gui-paging-alternative-navigator .gui-button:disabled{background:transparent;color:#ccc;opacity:.4}.gui-structure.gui-generic .gui-structure-summaries-panel{background:#f9fafb}.gui-structure.gui-generic .gui-structure-top-panel,.gui-structure.gui-generic .gui-structure-info-panel,.gui-structure.gui-generic .gui-paging{height:46px;padding-left:12px;padding-right:12px}.gui-structure.gui-generic .gui-structure-info-panel{background:#f9fafb;border-radius:0}.gui-structure.gui-generic .gui-structure-top-panel{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;padding-right:0}.gui-structure.gui-generic .gui-structure-top-panel .gui-search-bar form input{border:0;outline:0}.gui-structure.gui-generic .gui-rows-odd gui-row.odd,.gui-structure.gui-generic .gui-rows-even .gui-row.even{background:#f9fafb}.gui-structure.gui-generic .gui-row:hover{background:#f9fafb;transition:.15s all}\\n\"]\n }]\n }], () => [{\n type: StructureId\n }, {\n type: CompositionId\n }, {\n type: PagingPublisher\n }, {\n type: PagingEventRepository\n }, {\n type: SourcePublisher\n }, {\n type: SourceEventService\n }, {\n type: SortingPublisher\n }, {\n type: SearchPublisher\n }, {\n type: FieldPublisher\n }, {\n type: SchemaPublisher\n }, {\n type: CompositionPublisher\n }, {\n type: CompositionEventRepository\n }, {\n type: FormationEventRepository\n }, {\n type: StructurePublisher\n }, {\n type: StructureEditModeArchive\n }, {\n type: StructureCellEditArchive\n }, {\n type: StructureInfoPanelArchive\n }, {\n type: StructureInfoPanelConfigService\n }, {\n type: StructureCellEditStore\n }, {\n type: ColumnFieldFactory\n }, {\n type: StructureColumnMenuConfigArchive\n }, {\n type: PagingDisplayModeArchive\n }, {\n type: FormationPublisher\n }, {\n type: SearchEventRepository\n }, {\n type: StructureHeaderBottomEnabledArchive\n }, {\n type: StructureRowDetailConfigArchive\n }, {\n type: StructureTitlePanelConfigArchive\n }, {\n type: StructureFooterPanelConfigArchive\n }, {\n type: SchemaEventRepository\n }, {\n type: TranslationFacade\n }, {\n type: StructureInitialValuesReadyArchive\n }, {\n type: ColumnAutoConfigurator\n }, {\n type: i0.ElementRef\n }, {\n type: i0.ChangeDetectorRef\n }, {\n type: i0.Injector\n }, {\n type: StructureDefinition\n }, {\n type: StructureWarehouse\n }, {\n type: CompositionWarehouse\n }, {\n type: SchemaCssClassManager\n }, {\n type: SchemaReadModelRootId\n }, {\n type: StructureRowDetailService\n }], null);\n})();\nclass StructureColumnHeaderGate extends Gate {\n structureHeaderTopEnabledArchive;\n structureHeaderBottomEnabledArchive;\n columnHeaderTop;\n columnHeaderBottom;\n constructor(structureHeaderTopEnabledArchive, structureHeaderBottomEnabledArchive) {\n super();\n this.structureHeaderTopEnabledArchive = structureHeaderTopEnabledArchive;\n this.structureHeaderBottomEnabledArchive = structureHeaderBottomEnabledArchive;\n }\n ngOnChanges(changes) {\n if (this.isDefined('columnHeaderTop', changes)) {\n this.structureHeaderTopEnabledArchive.next(this.columnHeaderTop);\n }\n if (this.isDefined('columnHeaderBottom', changes)) {\n this.structureHeaderBottomEnabledArchive.next(this.columnHeaderBottom);\n }\n }\n static ɵfac = function StructureColumnHeaderGate_Factory(t) {\n return new (t || StructureColumnHeaderGate)(i0.ɵɵdirectiveInject(StructureHeaderTopEnabledArchive), i0.ɵɵdirectiveInject(StructureHeaderBottomEnabledArchive));\n };\n static ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: StructureColumnHeaderGate,\n selectors: [[\"gui-structure\", \"columnHeaderTop\", \"\", \"columnHeaderBottom\", \"\"], [\"gui-structure\", \"columnHeaderTop\", \"\"], [\"gui-structure\", \"columnHeaderBottom\", \"\"]],\n inputs: {\n columnHeaderTop: \"columnHeaderTop\",\n columnHeaderBottom: \"columnHeaderBottom\"\n },\n features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature]\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(StructureColumnHeaderGate, [{\n type: Directive,\n args: [{\n selector: 'gui-structure[columnHeaderTop][columnHeaderBottom], gui-structure[columnHeaderTop], gui-structure[columnHeaderBottom]'\n }]\n }], () => [{\n type: StructureHeaderTopEnabledArchive\n }, {\n type: StructureHeaderBottomEnabledArchive\n }], {\n columnHeaderTop: [{\n type: Input\n }],\n columnHeaderBottom: [{\n type: Input\n }]\n });\n})();\nclass PagingGate extends Gate {\n structureId;\n compositionId;\n pagingCommandInvoker;\n pagingEventRepository;\n paging;\n pageChanged = new EventEmitter();\n pageSizeChanged = new EventEmitter();\n constructor(structureId, compositionId, pagingCommandInvoker, pagingEventRepository) {\n super();\n this.structureId = structureId;\n this.compositionId = compositionId;\n this.pagingCommandInvoker = pagingCommandInvoker;\n this.pagingEventRepository = pagingEventRepository;\n }\n ngOnChanges(changes) {\n if (this.isDefined('paging', changes)) {\n let pagingConfig;\n if (typeof this.paging === 'boolean') {\n pagingConfig = {\n enabled: this.paging\n };\n } else {\n pagingConfig = this.paging;\n }\n this.pagingCommandInvoker.setPaging(pagingConfig, this.compositionId);\n }\n }\n ngOnInit() {\n this.subscribeAndEmit(this.pagingEventRepository.onPageChange(this.structureId.toReadModelRootId()), this.pageChanged);\n this.subscribeAndEmit(this.pagingEventRepository.onPageSizeChange(this.structureId.toReadModelRootId()), this.pageSizeChanged);\n }\n onPageChange(page) {\n this.pageChanged.emit(page);\n }\n static ɵfac = function PagingGate_Factory(t) {\n return new (t || PagingGate)(i0.ɵɵdirectiveInject(StructureId), i0.ɵɵdirectiveInject(CompositionId), i0.ɵɵdirectiveInject(PagingPublisher), i0.ɵɵdirectiveInject(PagingEventRepository));\n };\n static ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: PagingGate,\n inputs: {\n paging: \"paging\"\n },\n outputs: {\n pageChanged: \"pageChanged\",\n pageSizeChanged: \"pageSizeChanged\"\n },\n features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature]\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(PagingGate, [{\n type: Directive\n }], () => [{\n type: StructureId\n }, {\n type: CompositionId\n }, {\n type: PagingPublisher\n }, {\n type: PagingEventRepository\n }], {\n paging: [{\n type: Input\n }],\n pageChanged: [{\n type: Output\n }],\n pageSizeChanged: [{\n type: Output\n }]\n });\n})();\nclass StructurePagingGate extends PagingGate {\n pagingDisplayModeArchive;\n constructor(structureId, compositionId, pagingPublisher, pagingEventRepository, pagingDisplayModeArchive) {\n super(structureId, compositionId, pagingPublisher, pagingEventRepository);\n this.pagingDisplayModeArchive = pagingDisplayModeArchive;\n }\n ngOnChanges(changes) {\n if (this.isDefined('paging', changes)) {\n let pagingConfig;\n if (typeof this.paging === 'boolean') {\n pagingConfig = {\n enabled: this.paging\n };\n } else {\n pagingConfig = this.paging;\n if (this.paging.displayMode !== undefined) {\n this.pagingDisplayModeArchive.next(this.paging.displayMode);\n }\n }\n this.pagingCommandInvoker.setPaging(pagingConfig, this.structureId);\n }\n }\n static ɵfac = function StructurePagingGate_Factory(t) {\n return new (t || StructurePagingGate)(i0.ɵɵdirectiveInject(StructureId), i0.ɵɵdirectiveInject(CompositionId), i0.ɵɵdirectiveInject(PagingPublisher), i0.ɵɵdirectiveInject(PagingEventRepository), i0.ɵɵdirectiveInject(PagingDisplayModeArchive));\n };\n static ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: StructurePagingGate,\n selectors: [[\"gui-structure\", \"paging\", \"\"]],\n features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature]\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(StructurePagingGate, [{\n type: Directive,\n args: [{\n selector: 'gui-structure[paging]'\n }]\n }], () => [{\n type: StructureId\n }, {\n type: CompositionId\n }, {\n type: PagingPublisher\n }, {\n type: PagingEventRepository\n }, {\n type: PagingDisplayModeArchive\n }], null);\n})();\nclass SearchingGate extends Gate {\n structureId;\n searchEventRepository;\n searchCommandInvoker;\n searching;\n searchPhraseChanged = new EventEmitter();\n constructor(structureId, searchEventRepository, searchCommandInvoker) {\n super();\n this.structureId = structureId;\n this.searchEventRepository = searchEventRepository;\n this.searchCommandInvoker = searchCommandInvoker;\n }\n ngOnChanges(changes) {\n if (this.isDefined('searching', changes)) {\n let searching;\n if (typeof this.searching === 'boolean') {\n searching = {\n enabled: this.searching\n };\n } else {\n searching = this.searching;\n }\n this.searchCommandInvoker.setSearchingConfig(searching, this.structureId);\n }\n }\n ngOnInit() {\n this.subscribeAndEmit(this.searchEventRepository.onSearchPhrase(this.structureId.toReadModelRootId()), this.searchPhraseChanged);\n }\n static ɵfac = function SearchingGate_Factory(t) {\n return new (t || SearchingGate)(i0.ɵɵdirectiveInject(StructureId), i0.ɵɵdirectiveInject(SearchEventRepository), i0.ɵɵdirectiveInject(SearchPublisher));\n };\n static ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: SearchingGate,\n inputs: {\n searching: \"searching\"\n },\n outputs: {\n searchPhraseChanged: \"searchPhraseChanged\"\n },\n features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature]\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(SearchingGate, [{\n type: Directive\n }], () => [{\n type: StructureId\n }, {\n type: SearchEventRepository\n }, {\n type: SearchPublisher\n }], {\n searching: [{\n type: Input\n }],\n searchPhraseChanged: [{\n type: Output\n }]\n });\n})();\nclass StructureSearchingGate extends SearchingGate {\n constructor(structureId, searchEventRepository, searchCommandInvoker) {\n super(structureId, searchEventRepository, searchCommandInvoker);\n }\n static ɵfac = function StructureSearchingGate_Factory(t) {\n return new (t || StructureSearchingGate)(i0.ɵɵdirectiveInject(StructureId), i0.ɵɵdirectiveInject(SearchEventRepository), i0.ɵɵdirectiveInject(SearchPublisher));\n };\n static ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: StructureSearchingGate,\n selectors: [[\"gui-structure\", \"searching\", \"\"]],\n features: [i0.ɵɵInheritDefinitionFeature]\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(StructureSearchingGate, [{\n type: Directive,\n args: [{\n selector: 'gui-structure[searching]'\n }]\n }], () => [{\n type: StructureId\n }, {\n type: SearchEventRepository\n }, {\n type: SearchPublisher\n }], null);\n})();\nclass SelectionGate extends Gate {\n structureId;\n formationEventRepository;\n formationPublisher;\n rowSelection;\n itemsSelected = new EventEmitter();\n selectedRows = new EventEmitter();\n constructor(structureId, formationEventRepository, formationPublisher) {\n super();\n this.structureId = structureId;\n this.formationEventRepository = formationEventRepository;\n this.formationPublisher = formationPublisher;\n }\n ngOnChanges(changes) {\n if (this.isDefined('rowSelection', changes)) {\n if (this.rowSelection.isEnabledDefined()) {\n this.formationPublisher.setSelection(this.rowSelection.isEnabled(), this.structureId);\n }\n if (this.rowSelection.isTypeDefined()) {\n this.formationPublisher.changeType(this.rowSelection.getType(), this.structureId);\n }\n if (this.rowSelection.isModeDefined()) {\n this.formationPublisher.changeMode(this.rowSelection.getMode(), this.structureId);\n }\n if (this.rowSelection.isMatcherDefined()) {\n this.formationPublisher.setMatcher(this.rowSelection.getMatcher(), this.structureId);\n }\n if (this.rowSelection.isSelectedRowIndexesDefined()) {\n this.formationPublisher.selectByIndex(this.rowSelection.getSelectedRowIndexes(), this.structureId);\n }\n if (this.rowSelection.isSelectedRowIdsDefined()) {\n this.formationPublisher.selectByIds(this.rowSelection.getSelectedRowIds(), this.structureId);\n }\n if (this.rowSelection.isCustomSelectConfig()) {\n this.formationPublisher.setCustomSelection(this.rowSelection.getCustomSelectConfig(), this.structureId);\n }\n }\n }\n ngOnInit() {\n this.subscribeAndEmit(this.formationEventRepository.onItemSelected(this.structureId), this.selectedRows);\n this.subscribeAndEmit(this.selectItemsSelected(), this.itemsSelected);\n }\n selectItemsSelected() {\n return this.formationEventRepository.onItemSelected(this.structureId).pipe(hermesMap(items => {\n return items.map(i => i.getItem());\n }));\n }\n static ɵfac = function SelectionGate_Factory(t) {\n return new (t || SelectionGate)(i0.ɵɵdirectiveInject(StructureId), i0.ɵɵdirectiveInject(FormationEventRepository), i0.ɵɵdirectiveInject(FormationPublisher));\n };\n static ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: SelectionGate,\n inputs: {\n rowSelection: \"rowSelection\"\n },\n outputs: {\n itemsSelected: \"itemsSelected\",\n selectedRows: \"selectedRows\"\n },\n features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature]\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(SelectionGate, [{\n type: Directive\n }], () => [{\n type: StructureId\n }, {\n type: FormationEventRepository\n }, {\n type: FormationPublisher\n }], {\n rowSelection: [{\n type: Input\n }],\n itemsSelected: [{\n type: Output\n }],\n selectedRows: [{\n type: Output\n }]\n });\n})();\nclass StructureSelectionGate extends SelectionGate {\n selectionGate;\n constructor(structureId, formationEventService, formationCommandDispatcher) {\n super(structureId, formationEventService, formationCommandDispatcher);\n }\n static ɵfac = function StructureSelectionGate_Factory(t) {\n return new (t || StructureSelectionGate)(i0.ɵɵdirectiveInject(StructureId), i0.ɵɵdirectiveInject(FormationEventRepository), i0.ɵɵdirectiveInject(FormationPublisher));\n };\n static ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: StructureSelectionGate,\n selectors: [[\"gui-structure\", \"rowSelection\", \"\"], [\"gui-structure\", \"selectionGate\", \"\"]],\n inputs: {\n selectionGate: \"selectionGate\"\n },\n features: [i0.ɵɵInheritDefinitionFeature]\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(StructureSelectionGate, [{\n type: Directive,\n args: [{\n selector: 'gui-structure[rowSelection], gui-structure[selectionGate]'\n }]\n }], () => [{\n type: StructureId\n }, {\n type: FormationEventRepository\n }, {\n type: FormationPublisher\n }], {\n selectionGate: [{\n type: Input\n }]\n });\n})();\nclass StructureL10nGate extends Gate {\n translationService;\n localization;\n constructor(translationService) {\n super();\n this.translationService = translationService;\n }\n ngOnChanges(changes) {\n if (this.isDefined('localization', changes)) {\n if (this.localization.translationResolver) {\n this.translationService.setResolver(this.localization.translationResolver);\n }\n if (this.localization.translation) {\n this.translationService.changeTranslation(this.localization.translation);\n }\n }\n }\n static ɵfac = function StructureL10nGate_Factory(t) {\n return new (t || StructureL10nGate)(i0.ɵɵdirectiveInject(TranslationFacade));\n };\n static ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: StructureL10nGate,\n selectors: [[\"gui-structure\", \"localization\", \"\"]],\n inputs: {\n localization: \"localization\"\n },\n features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature]\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(StructureL10nGate, [{\n type: Directive,\n args: [{\n selector: 'gui-structure[localization]'\n }]\n }], () => [{\n type: TranslationFacade\n }], {\n localization: [{\n type: Input\n }]\n });\n})();\nclass StructurePanelGate extends Gate {\n structureTitlePanelConfigArchive;\n structureFooterPanelConfigArchive;\n titlePanel;\n footerPanel;\n constructor(structureTitlePanelConfigArchive, structureFooterPanelConfigArchive) {\n super();\n this.structureTitlePanelConfigArchive = structureTitlePanelConfigArchive;\n this.structureFooterPanelConfigArchive = structureFooterPanelConfigArchive;\n }\n ngOnChanges(changes) {\n if (this.isDefined('titlePanel', changes)) {\n this.structureTitlePanelConfigArchive.next(this.titlePanel);\n }\n if (this.isDefined('footerPanel', changes)) {\n this.structureFooterPanelConfigArchive.next(this.footerPanel);\n }\n }\n static ɵfac = function StructurePanelGate_Factory(t) {\n return new (t || StructurePanelGate)(i0.ɵɵdirectiveInject(StructureTitlePanelConfigArchive), i0.ɵɵdirectiveInject(StructureFooterPanelConfigArchive));\n };\n static ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: StructurePanelGate,\n selectors: [[\"gui-structure\", \"titlePanel\", \"\", \"footerPanel\", \"\"]],\n inputs: {\n titlePanel: \"titlePanel\",\n footerPanel: \"footerPanel\"\n },\n features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature]\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(StructurePanelGate, [{\n type: Directive,\n args: [{\n selector: 'gui-structure[titlePanel][footerPanel]'\n }]\n }], () => [{\n type: StructureTitlePanelConfigArchive\n }, {\n type: StructureFooterPanelConfigArchive\n }], {\n titlePanel: [{\n type: Input\n }],\n footerPanel: [{\n type: Input\n }]\n });\n})();\nclass StructureRowDetailGate extends Gate {\n structureDetailViewConfigArchive;\n rowDetail;\n constructor(structureDetailViewConfigArchive) {\n super();\n this.structureDetailViewConfigArchive = structureDetailViewConfigArchive;\n }\n ngOnChanges(changes) {\n if (this.isDefined('rowDetail', changes)) {\n this.structureDetailViewConfigArchive.next(this.rowDetail);\n }\n }\n static ɵfac = function StructureRowDetailGate_Factory(t) {\n return new (t || StructureRowDetailGate)(i0.ɵɵdirectiveInject(StructureRowDetailConfigArchive));\n };\n static ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: StructureRowDetailGate,\n selectors: [[\"gui-structure\", \"rowDetail\", \"\"]],\n inputs: {\n rowDetail: \"rowDetail\"\n },\n features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature]\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(StructureRowDetailGate, [{\n type: Directive,\n args: [{\n selector: 'gui-structure[rowDetail]'\n }]\n }], () => [{\n type: StructureRowDetailConfigArchive\n }], {\n rowDetail: [{\n type: Input\n }]\n });\n})();\nclass StructureColumnMenuGate extends Gate {\n structureColumnMenuConfigArchive;\n columnMenu;\n constructor(structureColumnMenuConfigArchive) {\n super();\n this.structureColumnMenuConfigArchive = structureColumnMenuConfigArchive;\n }\n ngOnChanges(changes) {\n if (this.isDefined('columnMenu', changes)) {\n this.structureColumnMenuConfigArchive.nextConfig(this.columnMenu);\n }\n }\n static ɵfac = function StructureColumnMenuGate_Factory(t) {\n return new (t || StructureColumnMenuGate)(i0.ɵɵdirectiveInject(StructureColumnMenuConfigArchive));\n };\n static ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: StructureColumnMenuGate,\n selectors: [[\"gui-structure\", \"columnMenu\", \"\"]],\n inputs: {\n columnMenu: \"columnMenu\"\n },\n features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature]\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(StructureColumnMenuGate, [{\n type: Directive,\n args: [{\n selector: 'gui-structure[columnMenu]'\n }]\n }], () => [{\n type: StructureColumnMenuConfigArchive\n }], {\n columnMenu: [{\n type: Input\n }]\n });\n})();\nclass StructureSummariesGate extends Gate {\n structureId;\n summariesCommandInvoker;\n summaries;\n constructor(structureId, summariesCommandInvoker) {\n super();\n this.structureId = structureId;\n this.summariesCommandInvoker = summariesCommandInvoker;\n }\n ngOnChanges(changes) {\n ifChanged(changes.summaries, () => {\n this.summariesCommandInvoker.setConfig(this.summaries, this.structureId);\n });\n }\n static ɵfac = function StructureSummariesGate_Factory(t) {\n return new (t || StructureSummariesGate)(i0.ɵɵdirectiveInject(StructureId), i0.ɵɵdirectiveInject(SummariesPublisher));\n };\n static ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: StructureSummariesGate,\n selectors: [[\"gui-structure\", \"summaries\", \"\"]],\n inputs: {\n summaries: \"summaries\"\n },\n features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature]\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(StructureSummariesGate, [{\n type: Directive,\n args: [{\n selector: 'gui-structure[summaries]'\n }]\n }], () => [{\n type: StructureId\n }, {\n type: SummariesPublisher\n }], {\n summaries: [{\n type: Input\n }]\n });\n})();\nclass StructureInfoPanelGate extends Gate {\n structureInfoPanelConfigService;\n infoPanel;\n constructor(structureInfoPanelConfigService) {\n super();\n this.structureInfoPanelConfigService = structureInfoPanelConfigService;\n }\n ngOnChanges(changes) {\n if (this.isDefined('infoPanel', changes)) {\n if (typeof this.infoPanel === 'boolean') {\n this.infoPanel = {\n enabled: this.infoPanel\n };\n }\n this.structureInfoPanelConfigService.set(this.infoPanel);\n }\n }\n static ɵfac = function StructureInfoPanelGate_Factory(t) {\n return new (t || StructureInfoPanelGate)(i0.ɵɵdirectiveInject(StructureInfoPanelConfigService));\n };\n static ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: StructureInfoPanelGate,\n selectors: [[\"gui-structure\", \"infoPanel\", \"\"]],\n inputs: {\n infoPanel: \"infoPanel\"\n },\n features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature]\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(StructureInfoPanelGate, [{\n type: Directive,\n args: [{\n selector: 'gui-structure[infoPanel]'\n }]\n }], () => [{\n type: StructureInfoPanelConfigService\n }], {\n infoPanel: [{\n type: Input\n }]\n });\n})();\nclass StructureRowClassGate extends Gate {\n schemaReadModelRootId;\n schemaPublisher;\n rowClass;\n constructor(schemaReadModelRootId, schemaPublisher) {\n super();\n this.schemaReadModelRootId = schemaReadModelRootId;\n this.schemaPublisher = schemaPublisher;\n }\n ngOnChanges(changes) {\n if (this.isDefined('rowClass', changes)) {\n this.schemaPublisher.setRowClass(this.rowClass, this.schemaReadModelRootId);\n }\n }\n static ɵfac = function StructureRowClassGate_Factory(t) {\n return new (t || StructureRowClassGate)(i0.ɵɵdirectiveInject(SchemaReadModelRootId), i0.ɵɵdirectiveInject(SchemaPublisher));\n };\n static ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: StructureRowClassGate,\n selectors: [[\"gui-structure\", \"rowClass\", \"\"]],\n inputs: {\n rowClass: \"rowClass\"\n },\n features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature]\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(StructureRowClassGate, [{\n type: Directive,\n args: [{\n selector: 'gui-structure[rowClass]'\n }]\n }], () => [{\n type: SchemaReadModelRootId\n }, {\n type: SchemaPublisher\n }], {\n rowClass: [{\n type: Input\n }]\n });\n})();\nclass StructureRowStyleGate extends Gate {\n schemaReadModelRootId;\n schemaPublisher;\n rowStyle;\n constructor(schemaReadModelRootId, schemaPublisher) {\n super();\n this.schemaReadModelRootId = schemaReadModelRootId;\n this.schemaPublisher = schemaPublisher;\n }\n ngOnChanges(changes) {\n if (this.isDefined('rowStyle', changes)) {\n this.schemaPublisher.setRowStyle(this.rowStyle, this.schemaReadModelRootId);\n }\n }\n static ɵfac = function StructureRowStyleGate_Factory(t) {\n return new (t || StructureRowStyleGate)(i0.ɵɵdirectiveInject(SchemaReadModelRootId), i0.ɵɵdirectiveInject(SchemaPublisher));\n };\n static ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: StructureRowStyleGate,\n selectors: [[\"gui-structure\", \"rowStyle\", \"\"]],\n inputs: {\n rowStyle: \"rowStyle\"\n },\n features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature]\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(StructureRowStyleGate, [{\n type: Directive,\n args: [{\n selector: 'gui-structure[rowStyle]'\n }]\n }], () => [{\n type: SchemaReadModelRootId\n }, {\n type: SchemaPublisher\n }], {\n rowStyle: [{\n type: Input\n }]\n });\n})();\nclass StructureRowColoringGate extends Gate {\n schemaId;\n schemaCommandInvoker;\n schemaEventRepository;\n rowColoring;\n rowColoringChanged = new EventEmitter();\n constructor(schemaId, schemaCommandInvoker, schemaEventRepository) {\n super();\n this.schemaId = schemaId;\n this.schemaCommandInvoker = schemaCommandInvoker;\n this.schemaEventRepository = schemaEventRepository;\n }\n ngOnChanges(changes) {\n if (this.isDefined('rowColoring', changes)) {\n this.schemaCommandInvoker.setRowColoring(this.rowColoring, this.schemaId);\n }\n }\n ngOnInit() {\n this.subscribeAndEmit(this.schemaEventRepository.onRowColoring(this.schemaId), this.rowColoringChanged);\n }\n ngOnDestroy() {\n super.ngOnDestroy();\n }\n static ɵfac = function StructureRowColoringGate_Factory(t) {\n return new (t || StructureRowColoringGate)(i0.ɵɵdirectiveInject(SchemaReadModelRootId), i0.ɵɵdirectiveInject(SchemaPublisher), i0.ɵɵdirectiveInject(SchemaEventRepository));\n };\n static ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: StructureRowColoringGate,\n selectors: [[\"gui-structure\", \"rowColoring\", \"\"]],\n inputs: {\n rowColoring: \"rowColoring\"\n },\n outputs: {\n rowColoringChanged: \"rowColoringChanged\"\n },\n features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature]\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(StructureRowColoringGate, [{\n type: Directive,\n args: [{\n selector: 'gui-structure[rowColoring]'\n }]\n }], () => [{\n type: SchemaReadModelRootId\n }, {\n type: SchemaPublisher\n }, {\n type: SchemaEventRepository\n }], {\n rowColoring: [{\n type: Input\n }],\n rowColoringChanged: [{\n type: Output\n }]\n });\n})();\nclass ThemeGridGate extends Gate {\n schemaId;\n schemaCommandInvoker;\n schemaEventRepository;\n verticalGrid;\n horizontalGrid;\n horizontalGridChanged = new EventEmitter();\n verticalGridChanged = new EventEmitter();\n constructor(schemaId, schemaCommandInvoker, schemaEventRepository) {\n super();\n this.schemaId = schemaId;\n this.schemaCommandInvoker = schemaCommandInvoker;\n this.schemaEventRepository = schemaEventRepository;\n this.subscribeAndEmit(this.schemaEventRepository.onHorizontalGridChanged(this.schemaId), this.horizontalGridChanged);\n this.subscribeAndEmit(this.schemaEventRepository.onVerticalGridChanged(this.schemaId), this.verticalGridChanged);\n }\n ngOnChanges(changes) {\n if (this.isDefined('verticalGrid', changes)) {\n this.schemaCommandInvoker.setVerticalGrid(this.verticalGrid, this.schemaId);\n }\n if (this.isDefined('horizontalGrid', changes)) {\n this.schemaCommandInvoker.setHorizontalGrid(this.horizontalGrid, this.schemaId);\n }\n }\n static ɵfac = function ThemeGridGate_Factory(t) {\n return new (t || ThemeGridGate)(i0.ɵɵdirectiveInject(SchemaReadModelRootId), i0.ɵɵdirectiveInject(SchemaPublisher), i0.ɵɵdirectiveInject(SchemaEventRepository));\n };\n static ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: ThemeGridGate,\n selectors: [[\"gui-structure\", \"verticalGrid\", \"\", \"horizontalGrid\", \"\"]],\n inputs: {\n verticalGrid: \"verticalGrid\",\n horizontalGrid: \"horizontalGrid\"\n },\n outputs: {\n horizontalGridChanged: \"horizontalGridChanged\",\n verticalGridChanged: \"verticalGridChanged\"\n },\n features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature]\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(ThemeGridGate, [{\n type: Directive,\n args: [{\n selector: 'gui-structure[verticalGrid][horizontalGrid]'\n }]\n }], () => [{\n type: SchemaReadModelRootId\n }, {\n type: SchemaPublisher\n }, {\n type: SchemaEventRepository\n }], {\n verticalGrid: [{\n type: Input\n }],\n horizontalGrid: [{\n type: Input\n }],\n horizontalGridChanged: [{\n type: Output\n }],\n verticalGridChanged: [{\n type: Output\n }]\n });\n})();\nclass StructureSortingGate extends Gate {\n structureId;\n sortingCommandInvoker;\n sorting;\n constructor(structureId, sortingCommandInvoker) {\n super();\n this.structureId = structureId;\n this.sortingCommandInvoker = sortingCommandInvoker;\n }\n ngOnChanges(changes) {\n ifChanged(changes.sorting, () => {\n let sorting;\n if (typeof this.sorting === 'boolean') {\n sorting = {\n enabled: this.sorting\n };\n } else {\n sorting = this.sorting;\n }\n this.sortingCommandInvoker.setSortingConfig(sorting, this.structureId);\n });\n }\n static ɵfac = function StructureSortingGate_Factory(t) {\n return new (t || StructureSortingGate)(i0.ɵɵdirectiveInject(StructureId), i0.ɵɵdirectiveInject(SortingPublisher));\n };\n static ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: StructureSortingGate,\n selectors: [[\"gui-structure\", \"sorting\", \"\"]],\n inputs: {\n sorting: \"sorting\"\n },\n features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature]\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(StructureSortingGate, [{\n type: Directive,\n args: [{\n selector: 'gui-structure[sorting]'\n }]\n }], () => [{\n type: StructureId\n }, {\n type: SortingPublisher\n }], {\n sorting: [{\n type: Input\n }]\n });\n})();\nclass SourceLoadingGate extends Gate {\n structureId;\n sourceCommandInvoker;\n loading;\n constructor(structureId, sourceCommandInvoker) {\n super();\n this.structureId = structureId;\n this.sourceCommandInvoker = sourceCommandInvoker;\n }\n ngOnChanges(changes) {\n if (this.isDefined('loading', changes)) {\n this.sourceCommandInvoker.setLoading(this.loading, this.structureId);\n }\n }\n ngOnInit() {}\n static ɵfac = function SourceLoadingGate_Factory(t) {\n return new (t || SourceLoadingGate)(i0.ɵɵdirectiveInject(StructureId), i0.ɵɵdirectiveInject(SourcePublisher));\n };\n static ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: SourceLoadingGate,\n selectors: [[\"gui-structure\", \"loading\", \"\"]],\n inputs: {\n loading: \"loading\"\n },\n features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature]\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(SourceLoadingGate, [{\n type: Directive,\n args: [{\n selector: 'gui-structure[loading]'\n }]\n }], () => [{\n type: StructureId\n }, {\n type: SourcePublisher\n }], {\n loading: [{\n type: Input\n }]\n });\n})();\nclass StructureFilterGate extends Gate {\n structureId;\n structureCommandInvoker;\n filtering;\n constructor(structureId, structureCommandInvoker) {\n super();\n this.structureId = structureId;\n this.structureCommandInvoker = structureCommandInvoker;\n }\n ngOnChanges(changes) {\n ifChanged(changes.filtering, () => {\n let filtering;\n if (typeof this.filtering === 'boolean') {\n filtering = {\n enabled: this.filtering\n };\n } else {\n filtering = this.filtering;\n }\n this.structureCommandInvoker.setFilterConfig(filtering, this.structureId);\n });\n }\n static ɵfac = function StructureFilterGate_Factory(t) {\n return new (t || StructureFilterGate)(i0.ɵɵdirectiveInject(StructureId), i0.ɵɵdirectiveInject(StructurePublisher));\n };\n static ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: StructureFilterGate,\n selectors: [[\"gui-structure\", \"filtering\", \"\"]],\n inputs: {\n filtering: \"filtering\"\n },\n features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature]\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(StructureFilterGate, [{\n type: Directive,\n args: [{\n selector: 'gui-structure[filtering]'\n }]\n }], () => [{\n type: StructureId\n }, {\n type: StructurePublisher\n }], {\n filtering: [{\n type: Input\n }]\n });\n})();\nclass StructureQuickFiltersGate extends Gate {\n structureId;\n structureCommandInvoker;\n quickFilters;\n constructor(structureId, structureCommandInvoker) {\n super();\n this.structureId = structureId;\n this.structureCommandInvoker = structureCommandInvoker;\n }\n ngOnChanges(changes) {\n ifChanged(changes.quickFilters, () => {\n let quickFilters;\n if (typeof this.quickFilters === 'boolean') {\n quickFilters = {\n enabled: this.quickFilters\n };\n } else {\n quickFilters = this.quickFilters;\n }\n this.structureCommandInvoker.setQuickFiltersConfig(quickFilters, this.structureId);\n });\n }\n static ɵfac = function StructureQuickFiltersGate_Factory(t) {\n return new (t || StructureQuickFiltersGate)(i0.ɵɵdirectiveInject(StructureId), i0.ɵɵdirectiveInject(StructurePublisher));\n };\n static ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: StructureQuickFiltersGate,\n selectors: [[\"gui-structure\", \"quickFilters\", \"\"]],\n inputs: {\n quickFilters: \"quickFilters\"\n },\n features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature]\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(StructureQuickFiltersGate, [{\n type: Directive,\n args: [{\n selector: 'gui-structure[quickFilters]'\n }]\n }], () => [{\n type: StructureId\n }, {\n type: StructurePublisher\n }], {\n quickFilters: [{\n type: Input\n }]\n });\n})();\nclass VerticalFormationGate extends Gate {\n structureId;\n structureCommandInvoker;\n virtualScroll;\n constructor(structureId, structureCommandInvoker) {\n super();\n this.structureId = structureId;\n this.structureCommandInvoker = structureCommandInvoker;\n }\n ngOnChanges(changes) {\n if (this.isDefined('virtualScroll', changes)) {\n if (this.virtualScroll) {\n this.structureCommandInvoker.enableVirtualScroll(this.structureId);\n } else {\n this.structureCommandInvoker.disableVirtualScroll(this.structureId);\n }\n }\n }\n static ɵfac = function VerticalFormationGate_Factory(t) {\n return new (t || VerticalFormationGate)(i0.ɵɵdirectiveInject(StructureId), i0.ɵɵdirectiveInject(StructurePublisher));\n };\n static ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: VerticalFormationGate,\n selectors: [[\"gui-structure\", \"virtualScroll\", \"\"]],\n inputs: {\n virtualScroll: \"virtualScroll\"\n },\n features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature]\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(VerticalFormationGate, [{\n type: Directive,\n args: [{\n selector: 'gui-structure[virtualScroll]'\n }]\n }], () => [{\n type: StructureId\n }, {\n type: StructurePublisher\n }], {\n virtualScroll: [{\n type: Input\n }]\n });\n})();\nclass GuiGridComponent extends GuiGridGateway {\n platformId;\n elementRef;\n changeDetectorRef;\n gridRegister;\n structureIdGenerator;\n formationCommandDispatcher;\n formationWarehouse;\n compositionCommandInvoker;\n compositionWarehouse;\n filterIntegration;\n sourceCommandDispatcher;\n searchCommandInvoker;\n schemaCommandInvoker;\n structureCommandDispatcher;\n summariesCommandInvoker;\n sortingCommandInvoker;\n pagingCommandInvoker;\n static GUI_GRID_ID = 'gui-grid-id';\n structureRef;\n gridId; // can be set once\n api;\n localGridId;\n gridThemeCommandInvoker;\n classModifier;\n attributeModifier;\n constructor(platformId, elementRef, changeDetectorRef, gridRegister, structureIdGenerator,\n // delegate\n formationCommandDispatcher, formationWarehouse, compositionCommandInvoker, compositionWarehouse, filterIntegration, sourceCommandDispatcher, searchCommandInvoker, schemaCommandInvoker, structureCommandDispatcher, summariesCommandInvoker, sortingCommandInvoker, pagingCommandInvoker) {\n super();\n this.platformId = platformId;\n this.elementRef = elementRef;\n this.changeDetectorRef = changeDetectorRef;\n this.gridRegister = gridRegister;\n this.structureIdGenerator = structureIdGenerator;\n this.formationCommandDispatcher = formationCommandDispatcher;\n this.formationWarehouse = formationWarehouse;\n this.compositionCommandInvoker = compositionCommandInvoker;\n this.compositionWarehouse = compositionWarehouse;\n this.filterIntegration = filterIntegration;\n this.sourceCommandDispatcher = sourceCommandDispatcher;\n this.searchCommandInvoker = searchCommandInvoker;\n this.schemaCommandInvoker = schemaCommandInvoker;\n this.structureCommandDispatcher = structureCommandDispatcher;\n this.summariesCommandInvoker = summariesCommandInvoker;\n this.sortingCommandInvoker = sortingCommandInvoker;\n this.pagingCommandInvoker = pagingCommandInvoker;\n this.gridThemeCommandInvoker = new GuiGridThemeCommandInvoker(this.schemaCommandInvoker, this.gridThemeConverter, this.gridRowColoringConverter);\n this.classModifier = new ClassModifier(this.elementRef.nativeElement);\n this.attributeModifier = new AttributeModifier(this.elementRef.nativeElement);\n }\n ngOnInit() {\n this.classModifier.getHost().add('gui-grid');\n this.initApi();\n let gridId = this.gridId;\n if (gridId === undefined) {\n // gridId = this.gridIdGenerator.generateId();\n gridId = 'gui-grid-' + this.structureIdGenerator.generateId();\n }\n this.localGridId = gridId;\n this.exposeGridId();\n // register\n this.gridRegister.register(gridId, this, this.structureRef.getStructureId());\n if (isPlatformBrowser(this.platformId)) {\n window['getGuiGrid'] = gridId => {\n const gridConsoleConfig = this.gridRegister.getValues(gridId);\n if (gridConsoleConfig) {\n return this.api;\n } else {\n return undefined;\n }\n };\n }\n }\n ngOnDestroy() {\n this.gridRegister.unregister(this.localGridId);\n }\n getElementRef() {\n return this.elementRef;\n }\n detectChanges() {\n this.changeDetectorRef.detectChanges();\n }\n exposeGridId() {\n this.attributeModifier.getHost().setAttribute(GuiGridComponent.GUI_GRID_ID, this.localGridId);\n }\n initApi() {\n this.api = new GuiGridApiProvider(this.structureRef.structureId, this.structureRef.compositionId, this.structureRef.schemaReadModelRootId, this.formationCommandDispatcher, this.formationWarehouse, this.compositionCommandInvoker, this.compositionWarehouse, this.filterIntegration, this.sourceCommandDispatcher, this.searchCommandInvoker, this.gridThemeCommandInvoker, this.structureCommandDispatcher, this.summariesCommandInvoker, this.sortingCommandInvoker, this.pagingCommandInvoker).provide();\n }\n static ɵfac = function GuiGridComponent_Factory(t) {\n return new (t || GuiGridComponent)(i0.ɵɵdirectiveInject(PLATFORM_ID), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(GuiGridRegister), i0.ɵɵdirectiveInject(StructureIdGenerator), i0.ɵɵdirectiveInject(FormationPublisher), i0.ɵɵdirectiveInject(FormationWarehouse), i0.ɵɵdirectiveInject(CompositionPublisher), i0.ɵɵdirectiveInject(CompositionWarehouse), i0.ɵɵdirectiveInject(FilterIntegration), i0.ɵɵdirectiveInject(SourcePublisher), i0.ɵɵdirectiveInject(SearchPublisher), i0.ɵɵdirectiveInject(SchemaPublisher), i0.ɵɵdirectiveInject(StructurePublisher), i0.ɵɵdirectiveInject(SummariesPublisher), i0.ɵɵdirectiveInject(SortingPublisher), i0.ɵɵdirectiveInject(PagingPublisher));\n };\n static ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: GuiGridComponent,\n selectors: [[\"gui-grid\"]],\n viewQuery: function GuiGridComponent_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(_c81, 7);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.structureRef = _t.first);\n }\n },\n inputs: {\n gridId: \"gridId\"\n },\n features: [i0.ɵɵProvidersFeature([{\n provide: StructureDefinition,\n useValue: guiGridStructureDefinition\n }, {\n provide: structureParentComponent,\n useExisting: GuiGridComponent\n }]), i0.ɵɵInheritDefinitionFeature],\n decls: 2,\n vars: 31,\n consts: [[\"structure\", \"\"], [3, \"cellEditCanceled\", \"cellEditEntered\", \"cellEditSubmitted\", \"columnsChanged\", \"containerWidthChanged\", \"horizontalGridChanged\", \"itemsSelected\", \"pageChanged\", \"pageSizeChanged\", \"rowColoringChanged\", \"searchPhraseChanged\", \"selectedRows\", \"sourceEdited\", \"themeChanged\", \"verticalGridChanged\", \"autoResizeWidth\", \"cellEditing\", \"columnHeaderBottom\", \"columnHeaderTop\", \"columnMenu\", \"columns\", \"editMode\", \"filtering\", \"footerPanel\", \"horizontalGrid\", \"infoPanel\", \"loading\", \"localization\", \"maxHeight\", \"paging\", \"quickFilters\", \"rowClass\", \"rowColoring\", \"rowDetail\", \"rowHeight\", \"rowSelection\", \"rowStyle\", \"searching\", \"sorting\", \"source\", \"summaries\", \"theme\", \"titlePanel\", \"verticalGrid\", \"virtualScroll\", \"width\"]],\n template: function GuiGridComponent_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"gui-structure\", 1, 0);\n i0.ɵɵlistener(\"cellEditCanceled\", function GuiGridComponent_Template_gui_structure_cellEditCanceled_0_listener() {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx.onCellEditCancel());\n })(\"cellEditEntered\", function GuiGridComponent_Template_gui_structure_cellEditEntered_0_listener() {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx.onCellEditEnter());\n })(\"cellEditSubmitted\", function GuiGridComponent_Template_gui_structure_cellEditSubmitted_0_listener() {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx.onCellEditSubmit());\n })(\"columnsChanged\", function GuiGridComponent_Template_gui_structure_columnsChanged_0_listener() {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx.onColumnsChange());\n })(\"containerWidthChanged\", function GuiGridComponent_Template_gui_structure_containerWidthChanged_0_listener($event) {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx.onContainerWidthChange($event));\n })(\"horizontalGridChanged\", function GuiGridComponent_Template_gui_structure_horizontalGridChanged_0_listener($event) {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx.onHorizontalGrid($event));\n })(\"itemsSelected\", function GuiGridComponent_Template_gui_structure_itemsSelected_0_listener($event) {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx.onItemSelect($event));\n })(\"pageChanged\", function GuiGridComponent_Template_gui_structure_pageChanged_0_listener($event) {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx.onPageChange($event));\n })(\"pageSizeChanged\", function GuiGridComponent_Template_gui_structure_pageSizeChanged_0_listener($event) {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx.onPageSizeChange($event));\n })(\"rowColoringChanged\", function GuiGridComponent_Template_gui_structure_rowColoringChanged_0_listener($event) {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx.onRowColoring($event));\n })(\"searchPhraseChanged\", function GuiGridComponent_Template_gui_structure_searchPhraseChanged_0_listener($event) {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx.onSearchPhrase($event));\n })(\"selectedRows\", function GuiGridComponent_Template_gui_structure_selectedRows_0_listener($event) {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx.onRowsSelect($event));\n })(\"sourceEdited\", function GuiGridComponent_Template_gui_structure_sourceEdited_0_listener($event) {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx.onSourceEdit($event));\n })(\"themeChanged\", function GuiGridComponent_Template_gui_structure_themeChanged_0_listener($event) {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx.onTheme($event));\n })(\"verticalGridChanged\", function GuiGridComponent_Template_gui_structure_verticalGridChanged_0_listener($event) {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx.onVerticalGrid($event));\n });\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"autoResizeWidth\", ctx.autoResizeWidth)(\"cellEditing\", ctx.cellEditingConfig)(\"columnHeaderBottom\", ctx.columnHeaderBottom)(\"columnHeaderTop\", ctx.columnHeaderTop)(\"columnMenu\", ctx.columnMenuConfig)(\"columns\", ctx.columnsConfig)(\"editMode\", ctx.editMode)(\"filtering\", ctx.filtering)(\"footerPanel\", ctx.footerPanel)(\"horizontalGrid\", ctx.horizontalGrid)(\"infoPanel\", ctx.infoPanel)(\"loading\", ctx.loading)(\"localization\", ctx.localization)(\"maxHeight\", ctx.maxHeight)(\"paging\", ctx.paging)(\"quickFilters\", ctx.quickFilters)(\"rowClass\", ctx.rowClass)(\"rowColoring\", ctx.rowColoringConfig)(\"rowDetail\", ctx.rowDetail)(\"rowHeight\", ctx.rowHeight)(\"rowSelection\", ctx.rowSelectionConfig)(\"rowStyle\", ctx.rowStyle)(\"searching\", ctx.searching)(\"sorting\", ctx.sorting)(\"source\", ctx.source)(\"summaries\", ctx.summaries)(\"theme\", ctx.themeConfig)(\"titlePanel\", ctx.titlePanel)(\"verticalGrid\", ctx.verticalGrid)(\"virtualScroll\", ctx.virtualScroll)(\"width\", ctx.width);\n }\n },\n dependencies: [StructureComponent, StructureColumnHeaderGate, StructurePagingGate, StructureSearchingGate, StructureSelectionGate, StructureL10nGate, StructurePanelGate, StructureRowDetailGate, StructureColumnMenuGate, StructureSummariesGate, StructureInfoPanelGate, StructureRowClassGate, StructureRowStyleGate, StructureRowColoringGate, ThemeGridGate, StructureSortingGate, SourceLoadingGate, StructureFilterGate, StructureQuickFiltersGate, VerticalFormationGate],\n styles: [\".gui-grid{display:block;width:100%}\\n\"],\n encapsulation: 2\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(GuiGridComponent, [{\n type: Component,\n args: [{\n selector: 'gui-grid',\n providers: [{\n provide: StructureDefinition,\n useValue: guiGridStructureDefinition\n }, {\n provide: structureParentComponent,\n useExisting: GuiGridComponent\n }],\n encapsulation: ViewEncapsulation.None,\n template: \"\\n\\n\\n\",\n styles: [\".gui-grid{display:block;width:100%}\\n\"]\n }]\n }], () => [{\n type: undefined,\n decorators: [{\n type: Inject,\n args: [PLATFORM_ID]\n }]\n }, {\n type: i0.ElementRef\n }, {\n type: i0.ChangeDetectorRef\n }, {\n type: GuiGridRegister\n }, {\n type: StructureIdGenerator\n }, {\n type: FormationPublisher\n }, {\n type: FormationWarehouse\n }, {\n type: CompositionPublisher\n }, {\n type: CompositionWarehouse\n }, {\n type: FilterIntegration\n }, {\n type: SourcePublisher\n }, {\n type: SearchPublisher\n }, {\n type: SchemaPublisher\n }, {\n type: StructurePublisher\n }, {\n type: SummariesPublisher\n }, {\n type: SortingPublisher\n }, {\n type: PagingPublisher\n }], {\n structureRef: [{\n type: ViewChild,\n args: ['structure', {\n static: true\n }]\n }],\n gridId: [{\n type: Input\n }]\n });\n})();\nconst fabricImports = [FabricBadgeModule, FabricButtonModule, FabricButtonGroupModule, FabricCheckboxModule, FabricChipModule, FabricDrawerModule, FabricDropdownModule, FabricRadioButtonModule, FabricRadioGroupModule, FabricProgressBarModule, FabricProgressSpinnerModule, FabricSelectModule, FabricSpinnerModule, FabricTabModule, FabricTooltipModule, FabricToggleButtonModule, FabricInputModule, FabricDialogModule, FabricInlineDialogModule, FabricTabModule];\nclass NumberFormatterModule {\n static ɵfac = function NumberFormatterModule_Factory(t) {\n return new (t || NumberFormatterModule)();\n };\n static ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: NumberFormatterModule\n });\n static ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({});\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NumberFormatterModule, [{\n type: NgModule,\n args: [{\n declarations: [NumberFormatterPipe],\n exports: [NumberFormatterPipe]\n }]\n }], null, null);\n})();\nconst declarations$3 = [StructureColumnManagerComponent, StructureDialogColumnManagerComponent, StructureMenuColumnManagerComponent, StructureColumnManagerIconComponent];\nclass StructureColumnManagerModule {\n static ɵfac = function StructureColumnManagerModule_Factory(t) {\n return new (t || StructureColumnManagerModule)();\n };\n static ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: StructureColumnManagerModule\n });\n static ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n providers: [StructureDialogColumnManagerService],\n imports: [CommonModule, fabricImports, GuiTemplateModule, TranslationFeatureModule]\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(StructureColumnManagerModule, [{\n type: NgModule,\n args: [{\n imports: [CommonModule, fabricImports, GuiTemplateModule, TranslationFeatureModule],\n declarations: declarations$3,\n exports: declarations$3,\n providers: [StructureDialogColumnManagerService]\n }]\n }], null, null);\n})();\nclass SchemaManagerModule {\n static ɵfac = function SchemaManagerModule_Factory(t) {\n return new (t || SchemaManagerModule)();\n };\n static ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: SchemaManagerModule\n });\n static ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n providers: [StructureDialogSchemaManagerService],\n imports: [CommonModule, fabricImports, TranslationFeatureModule, GuiTemplateModule]\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(SchemaManagerModule, [{\n type: NgModule,\n args: [{\n imports: [CommonModule, fabricImports, TranslationFeatureModule, GuiTemplateModule],\n declarations: [StructureSchemaMangerComponent, StructureDialogSchemaManagerComponent, StructureSchemaManagerIconComponent],\n exports: [StructureSchemaManagerIconComponent],\n providers: [StructureDialogSchemaManagerService]\n }]\n }], null, null);\n})();\nclass FilterIconComponent extends IconComponent {\n constructor(elementRef, changeDetectorRef) {\n super(elementRef, changeDetectorRef);\n }\n getSelectorName() {\n return 'gui-filter-icon';\n }\n static ɵfac = function FilterIconComponent_Factory(t) {\n return new (t || FilterIconComponent)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef));\n };\n static ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: FilterIconComponent,\n selectors: [[\"div\", \"gui-filter-icon\", \"\"]],\n features: [i0.ɵɵInheritDefinitionFeature],\n attrs: _c82,\n decls: 4,\n vars: 0,\n consts: [[\"xmlns\", \"http://www.w3.org/2000/svg\", \"viewBox\", \"0 0 10.32 7.23\"], [\"x1\", \"9.57\", \"y1\", \"0.75\", \"x2\", \"0.75\", \"y2\", \"0.75\", 1, \"cls-1\"], [\"x1\", \"8.14\", \"y1\", \"3.62\", \"x2\", \"2.18\", \"y2\", \"3.62\", 1, \"cls-1\"], [\"x1\", \"6.71\", \"y1\", \"6.48\", \"x2\", \"3.62\", \"y2\", \"6.48\", 1, \"cls-1\"]],\n template: function FilterIconComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"svg\", 0);\n i0.ɵɵelement(1, \"line\", 1)(2, \"line\", 2)(3, \"line\", 3);\n i0.ɵɵelementEnd();\n }\n },\n encapsulation: 2,\n changeDetection: 0\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(FilterIconComponent, [{\n type: Component,\n args: [{\n selector: 'div[gui-filter-icon]',\n template: `\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n }]\n }], () => [{\n type: i0.ElementRef\n }, {\n type: i0.ChangeDetectorRef\n }], null);\n})();\nclass FieldWarehouse {\n constructor() {}\n}\nclass FilterTypeSelectorComponent extends PureComponent {\n filterTypes;\n filterTypeSelected = new EventEmitter();\n filterTypesAsOptions = [];\n disabled = true;\n constructor(elementRef) {\n super(elementRef);\n }\n ngOnChanges(changes) {\n this.ifChanged(changes.filterTypes, () => {\n this.filterTypesAsOptions = this.filterTypes.map(filter => {\n return {\n name: filter.getId().toString(),\n value: filter.getName()\n };\n });\n this.disabled = this.filterTypesAsOptions.length === 0;\n });\n }\n onSelectChange(option) {\n const filterType = this.filterTypes.find(filterType => {\n return filterType.getId().toString() === option.name;\n });\n this.filterTypeSelected.emit(filterType.getId());\n }\n getSelectorName() {\n return 'gui-filter-type-selector';\n }\n static ɵfac = function FilterTypeSelectorComponent_Factory(t) {\n return new (t || FilterTypeSelectorComponent)(i0.ɵɵdirectiveInject(i0.ElementRef));\n };\n static ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: FilterTypeSelectorComponent,\n selectors: [[\"div\", \"gui-filter-type-selector\", \"\", \"filterTypes\", \"\"]],\n inputs: {\n filterTypes: \"filterTypes\"\n },\n outputs: {\n filterTypeSelected: \"filterTypeSelected\"\n },\n features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature],\n attrs: _c83,\n decls: 1,\n vars: 3,\n consts: [[3, \"optionChanged\", \"disabled\", \"options\", \"placeholder\"]],\n template: function FilterTypeSelectorComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"gui-select\", 0);\n i0.ɵɵlistener(\"optionChanged\", function FilterTypeSelectorComponent_Template_gui_select_optionChanged_0_listener($event) {\n return ctx.onSelectChange($event);\n });\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"disabled\", ctx.disabled)(\"options\", ctx.filterTypesAsOptions)(\"placeholder\", \"Select filter type\");\n }\n },\n dependencies: [i1$1.FabricSelectComponent],\n encapsulation: 2,\n changeDetection: 0\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(FilterTypeSelectorComponent, [{\n type: Component,\n args: [{\n selector: 'div[gui-filter-type-selector][filterTypes]',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n template: \"\\n\\n\"\n }]\n }], () => [{\n type: i0.ElementRef\n }], {\n filterTypes: [{\n type: Input\n }],\n filterTypeSelected: [{\n type: Output\n }]\n });\n})();\nclass FilterValueComponent extends SmartComponent {\n effects;\n formBuilder;\n static FORM_FILTER_VALUE = 'filterValue';\n formRef;\n valueChanged = new EventEmitter();\n filterForm;\n constructor(detector, elementRef, effects, formBuilder) {\n super(detector, elementRef);\n this.effects = effects;\n this.formBuilder = formBuilder;\n const controlsConfig = {};\n controlsConfig[FilterValueComponent.FORM_FILTER_VALUE] = '';\n this.filterForm = this.formBuilder.group(controlsConfig);\n }\n ngOnInit() {\n this.effects.register(this.selectFilterFormValue(), value => {\n this.valueChanged.emit(value);\n });\n }\n getSelectorName() {\n return 'gui-filter-value';\n }\n selectFilterFormValue() {\n const value$ = this.filterForm.controls[FilterValueComponent.FORM_FILTER_VALUE].valueChanges;\n return fromRxJsObservable(value$);\n }\n static ɵfac = function FilterValueComponent_Factory(t) {\n return new (t || FilterValueComponent)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(GuiEffects), i0.ɵɵdirectiveInject(i1$2.FormBuilder));\n };\n static ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: FilterValueComponent,\n selectors: [[\"div\", \"gui-filter-value\", \"\"]],\n viewQuery: function FilterValueComponent_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(_c42, 5, ElementRef);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.formRef = _t.first);\n }\n },\n outputs: {\n valueChanged: \"valueChanged\"\n },\n features: [i0.ɵɵProvidersFeature([GuiEffects]), i0.ɵɵInheritDefinitionFeature],\n attrs: _c84,\n decls: 3,\n vars: 1,\n consts: [[\"formRef\", \"\"], [3, \"formGroup\"], [\"formControlName\", \"filterValue\"]],\n template: function FilterValueComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"form\", 1, 0);\n i0.ɵɵelement(2, \"input\", 2);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"formGroup\", ctx.filterForm);\n }\n },\n dependencies: [i1$2.ɵNgNoValidate, i1$2.DefaultValueAccessor, i1$2.NgControlStatus, i1$2.NgControlStatusGroup, i1$2.FormGroupDirective, i1$2.FormControlName],\n encapsulation: 2,\n changeDetection: 0\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(FilterValueComponent, [{\n type: Component,\n args: [{\n selector: 'div[gui-filter-value]',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [GuiEffects],\n template: \"
\\n\\n\\t\\n
\\n\"\n }]\n }], () => [{\n type: i0.ChangeDetectorRef\n }, {\n type: i0.ElementRef\n }, {\n type: GuiEffects\n }, {\n type: i1$2.FormBuilder\n }], {\n formRef: [{\n type: ViewChild,\n args: ['formRef', {\n read: ElementRef,\n static: false\n }]\n }],\n valueChanged: [{\n type: Output\n }]\n });\n})();\nclass FieldSelectorComponent extends PureComponent {\n fields;\n fieldSelected = new EventEmitter();\n fieldsAsOptions;\n constructor(elementRef) {\n super(elementRef);\n }\n ngOnChanges(changes) {\n ifChanged(changes.fields, () => {\n this.fieldsAsOptions = this.fields.map(field => {\n return {\n name: field.getFieldId().toString(),\n value: field.getName()\n };\n });\n });\n }\n onFieldSelected(fieldId) {\n const field = this.fields.find(field => field.getFieldId().toString() === fieldId.name);\n this.fieldSelected.emit(field);\n }\n getSelectorName() {\n return 'gui-field-selector';\n }\n static ɵfac = function FieldSelectorComponent_Factory(t) {\n return new (t || FieldSelectorComponent)(i0.ɵɵdirectiveInject(i0.ElementRef));\n };\n static ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: FieldSelectorComponent,\n selectors: [[\"div\", \"gui-field-selector\", \"\", \"fields\", \"\"]],\n inputs: {\n fields: \"fields\"\n },\n outputs: {\n fieldSelected: \"fieldSelected\"\n },\n features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature],\n attrs: _c85,\n decls: 1,\n vars: 0,\n template: function FieldSelectorComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtext(0, \"./field-selector.component.html\");\n }\n },\n encapsulation: 2,\n changeDetection: 0\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(FieldSelectorComponent, [{\n type: Component,\n args: [{\n selector: 'div[gui-field-selector][fields]',\n template: `./field-selector.component.html`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n }]\n }], () => [{\n type: i0.ElementRef\n }], {\n fields: [{\n type: Input\n }],\n fieldSelected: [{\n type: Output\n }]\n });\n})();\nclass FilterMenuActiveFiltersComponent extends PureComponent {\n activeFilters;\n removedFilter = new EventEmitter();\n constructor(elementRef) {\n super(elementRef);\n this.addClassToHost('gui-py-8');\n }\n remove(filter) {\n this.removedFilter.emit(filter.getFilterId());\n }\n getSelectorName() {\n return 'gui-filter-menu-active-filters';\n }\n static ɵfac = function FilterMenuActiveFiltersComponent_Factory(t) {\n return new (t || FilterMenuActiveFiltersComponent)(i0.ɵɵdirectiveInject(i0.ElementRef));\n };\n static ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: FilterMenuActiveFiltersComponent,\n selectors: [[\"div\", \"gui-filter-menu-active-filters\", \"\", \"activeFilters\", \"\"]],\n inputs: {\n activeFilters: \"activeFilters\"\n },\n outputs: {\n removedFilter: \"removedFilter\"\n },\n features: [i0.ɵɵInheritDefinitionFeature],\n attrs: _c86,\n decls: 1,\n vars: 0,\n template: function FilterMenuActiveFiltersComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtext(0, \"./filter-menu-active-filters.component.html\");\n }\n },\n encapsulation: 2,\n changeDetection: 0\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(FilterMenuActiveFiltersComponent, [{\n type: Component,\n args: [{\n selector: 'div[gui-filter-menu-active-filters][activeFilters]',\n template: `./filter-menu-active-filters.component.html`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n }]\n }], () => [{\n type: i0.ElementRef\n }], {\n activeFilters: [{\n type: Input\n }],\n removedFilter: [{\n type: Output\n }]\n });\n})();\nclass FilterMenuComponent extends SmartComponent {\n filterCommandInvoker;\n structureId = inject(StructureId);\n fieldWarehouse = inject(FieldWarehouse);\n filterWarehouse = inject(FilterWarehouse);\n selectedColumn;\n selectedField;\n filterTypes;\n selectedFilterTypeId;\n selectedValue;\n fields$ = this.fieldWarehouse.onFields(this.structureId);\n activeFilters$ = this.filterWarehouse.onActiveFilters(this.structureId);\n constructor(changeDetectorRef, elementRef, filterCommandInvoker) {\n super(changeDetectorRef, elementRef);\n this.filterCommandInvoker = filterCommandInvoker;\n this.addClassToHost('gui-block');\n }\n onFieldSelect(field) {\n this.selectedField = field;\n const filterTypeMapOpt = this.filterWarehouse.findFilterTypes(this.structureId);\n filterTypeMapOpt.ifPresent(filterTypeMap => {\n this.filterTypes = filterTypeMap.getFilterTypes(this.selectedField.getFieldId());\n this.reRender();\n });\n }\n onFilterTypeSelect(filterTypeId) {\n this.selectedFilterTypeId = filterTypeId;\n this.reRender();\n }\n removeAllFilters() {\n this.filterCommandInvoker.removeAll(this.structureId);\n }\n onValueChanged(value) {\n this.selectedValue = value;\n }\n addFilter() {\n const fieldId = this.selectedField.getFieldId(),\n filterTypeId = this.selectedFilterTypeId,\n value = this.selectedValue;\n this.filterCommandInvoker.add(fieldId, filterTypeId, value, this.structureId);\n this.clearAddFilterForm();\n }\n onRemovedFilter(filterId) {\n event.preventDefault();\n this.filterCommandInvoker.remove(filterId, this.structureId);\n }\n removeFilter() {}\n clearAddFilterForm() {\n this.selectedColumn = null;\n this.selectedField = null;\n this.selectedFilterTypeId = null;\n this.selectedValue = null;\n this.reRender();\n }\n getSelectorName() {\n return 'gui-filter-menu';\n }\n static ɵfac = function FilterMenuComponent_Factory(t) {\n return new (t || FilterMenuComponent)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(FilterPublisher));\n };\n static ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: FilterMenuComponent,\n selectors: [[\"div\", \"gui-filter-menu\", \"\"]],\n features: [i0.ɵɵInheritDefinitionFeature],\n attrs: _c87,\n decls: 24,\n vars: 10,\n consts: [[\"gui-filter-menu-active-filters\", \"\", 3, \"removedFilter\", \"activeFilters\"], [1, \"gui-flex\", \"gui-flex-row\", \"gui-pb-12\"], [\"gui-field-selector\", \"\", 3, \"fieldSelected\", \"fields\"], [\"gui-filter-type-selector\", \"\", 3, \"filterTypeSelected\", \"filterTypes\"], [\"gui-filter-value\", \"\", 3, \"valueChanged\", 4, \"ngIf\"], [3, \"click\"], [\"gui-button\", \"\", 3, \"primary\"], [1, \"gui-flex\", \"gui-flex-row\", \"gui-justify-between\", \"gui-pt-12\"], [\"gui-button\", \"\", 3, \"click\", \"outline\"], [\"gui-filter-value\", \"\", 3, \"valueChanged\"]],\n template: function FilterMenuComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"h1\");\n i0.ɵɵtext(1, \"Filter menu\");\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(2, \"div\", 0);\n i0.ɵɵpipe(3, \"guiPush\");\n i0.ɵɵlistener(\"removedFilter\", function FilterMenuComponent_Template_div_removedFilter_2_listener($event) {\n return ctx.onRemovedFilter($event);\n });\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(4, \"div\", 1)(5, \"div\", 2);\n i0.ɵɵpipe(6, \"guiPush\");\n i0.ɵɵlistener(\"fieldSelected\", function FilterMenuComponent_Template_div_fieldSelected_5_listener($event) {\n return ctx.onFieldSelect($event);\n });\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(7, \"div\", 3);\n i0.ɵɵlistener(\"filterTypeSelected\", function FilterMenuComponent_Template_div_filterTypeSelected_7_listener($event) {\n return ctx.onFilterTypeSelect($event);\n });\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(8, FilterMenuComponent_div_8_Template, 1, 0, \"div\", 4);\n i0.ɵɵelementStart(9, \"button\", 5);\n i0.ɵɵlistener(\"click\", function FilterMenuComponent_Template_button_click_9_listener() {\n return ctx.addFilter();\n });\n i0.ɵɵtext(10, \"Filter\");\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(11, \"button\", 5);\n i0.ɵɵlistener(\"click\", function FilterMenuComponent_Template_button_click_11_listener() {\n return ctx.removeFilter();\n });\n i0.ɵɵtext(12, \"Remove\");\n i0.ɵɵelementEnd()();\n i0.ɵɵelement(13, \"br\")(14, \"br\")(15, \"br\");\n i0.ɵɵelementStart(16, \"button\", 6);\n i0.ɵɵtext(17, \" Add filter\\n\");\n i0.ɵɵelementEnd();\n i0.ɵɵelement(18, \"br\")(19, \"br\")(20, \"br\");\n i0.ɵɵelementStart(21, \"div\", 7)(22, \"button\", 8);\n i0.ɵɵlistener(\"click\", function FilterMenuComponent_Template_button_click_22_listener() {\n return ctx.removeAllFilters();\n });\n i0.ɵɵtext(23, \" Clear filters \");\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"activeFilters\", i0.ɵɵpipeBind1(3, 6, ctx.activeFilters$));\n i0.ɵɵadvance(3);\n i0.ɵɵproperty(\"fields\", i0.ɵɵpipeBind1(6, 8, ctx.fields$));\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"filterTypes\", ctx.filterTypes);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.selectedFilterTypeId);\n i0.ɵɵadvance(8);\n i0.ɵɵproperty(\"primary\", true);\n i0.ɵɵadvance(6);\n i0.ɵɵproperty(\"outline\", false);\n }\n },\n dependencies: [i4.NgIf, i1$1.FabricButtonComponent, FilterTypeSelectorComponent, FilterValueComponent, FieldSelectorComponent, FilterMenuActiveFiltersComponent, GuiPushPipe],\n encapsulation: 2,\n changeDetection: 0\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(FilterMenuComponent, [{\n type: Component,\n args: [{\n selector: 'div[gui-filter-menu]',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n template: \"\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n

Filter menu

\\n\\n\\n
\\n
\\n\\n
\\n\\n\\t
\\n\\t
\\n\\n\\t
\\n\\t
\\n\\n\\t
\\n\\t
\\n\\n\\t\\n\\t\\n\\n
\\n\\n
\\n
\\n
\\n\\n\\n\\tAdd filter\\n\\n\\n
\\n
\\n
\\n\\n
\\n\\n\\t\\n\\n\\t\\n\\t\\n\\t\\n\\t\\n\\t\\n\\t\\n
\\n\\n\"\n }]\n }], () => [{\n type: i0.ChangeDetectorRef\n }, {\n type: i0.ElementRef\n }, {\n type: FilterPublisher\n }], null);\n})();\nclass FilterMenuTriggerComponent extends SmartComponent {\n injector;\n fabricDialogService;\n structureId;\n filterWarehouse;\n activeFiltersExist$ = this.selectActiveFiltersExist();\n constructor(detector, elementRef, injector, fabricDialogService, structureId, filterWarehouse) {\n super(detector, elementRef);\n this.injector = injector;\n this.fabricDialogService = fabricDialogService;\n this.structureId = structureId;\n this.filterWarehouse = filterWarehouse;\n }\n openDrawer() {\n this.fabricDialogService.open({\n component: FilterMenuComponent,\n injector: this.injector\n });\n }\n getSelectorName() {\n return 'gui-filter-menu-trigger';\n }\n selectActiveFiltersExist() {\n return this.filterWarehouse.onActiveFilters(this.structureId).pipe(hermesMap(activeFilters => {\n return activeFilters.length > 0;\n }));\n }\n static ɵfac = function FilterMenuTriggerComponent_Factory(t) {\n return new (t || FilterMenuTriggerComponent)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.Injector), i0.ɵɵdirectiveInject(i1$1.FabricDialogService), i0.ɵɵdirectiveInject(StructureId), i0.ɵɵdirectiveInject(FilterWarehouse));\n };\n static ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: FilterMenuTriggerComponent,\n selectors: [[\"div\", \"gui-filter-menu-trigger\", \"\"]],\n features: [i0.ɵɵInheritDefinitionFeature],\n attrs: _c88,\n decls: 3,\n vars: 2,\n consts: [[1, \"gui-filter-icon-wrapper\", 3, \"click\", \"gui-tooltip\"], [4, \"guiLet\"], [\"gui-filter-icon\", \"\"], [\"class\", \"gui-filter-active\", 4, \"ngIf\"], [1, \"gui-filter-active\"]],\n template: function FilterMenuTriggerComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 0);\n i0.ɵɵlistener(\"click\", function FilterMenuTriggerComponent_Template_div_click_0_listener() {\n return ctx.openDrawer();\n });\n i0.ɵɵtemplate(1, FilterMenuTriggerComponent_ng_container_1_Template, 2, 1, \"ng-container\", 1);\n i0.ɵɵelement(2, \"div\", 2);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"gui-tooltip\", \"Filters\");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"guiLet\", ctx.activeFiltersExist$);\n }\n },\n dependencies: [i4.NgIf, i1$1.FabricTooltipDirective, GuiLetDirective, FilterIconComponent],\n styles: [\".gui-filter-icon-wrapper{height:19px;margin-right:24px;position:relative;width:19px}.gui-filter-active{border:2px solid #aaa!important;border-radius:50%;height:27px;left:-6px;position:absolute;top:-6px;width:27px}.gui-filter-menu{width:600px}.gui-filter-icon svg{height:16px;width:16px}.gui-filter-icon svg .cls-1{fill:none;stroke:#aaa;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.5px;transition:stroke .3s ease-in-out}.gui-filter-icon:hover .cls-1{stroke:#464646}\\n\"],\n encapsulation: 2,\n changeDetection: 0\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(FilterMenuTriggerComponent, [{\n type: Component,\n args: [{\n selector: 'div[gui-filter-menu-trigger]',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: \"
\\n\\n\\t\\n\\t\\t
\\n\\t
\\n\\n\\t
\\n
\\n\",\n styles: [\".gui-filter-icon-wrapper{height:19px;margin-right:24px;position:relative;width:19px}.gui-filter-active{border:2px solid #aaa!important;border-radius:50%;height:27px;left:-6px;position:absolute;top:-6px;width:27px}.gui-filter-menu{width:600px}.gui-filter-icon svg{height:16px;width:16px}.gui-filter-icon svg .cls-1{fill:none;stroke:#aaa;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.5px;transition:stroke .3s ease-in-out}.gui-filter-icon:hover .cls-1{stroke:#464646}\\n\"]\n }]\n }], () => [{\n type: i0.ChangeDetectorRef\n }, {\n type: i0.ElementRef\n }, {\n type: i0.Injector\n }, {\n type: i1$1.FabricDialogService\n }, {\n type: StructureId\n }, {\n type: FilterWarehouse\n }], null);\n})();\nclass ColumnSelectorComponent extends PureComponent {\n columns;\n columnSelected = new EventEmitter();\n constructor(elementRef) {\n super(elementRef);\n }\n onSelectChange(column) {\n this.columnSelected.emit(column);\n }\n getSelectorName() {\n return 'gui-column-selector';\n }\n static ɵfac = function ColumnSelectorComponent_Factory(t) {\n return new (t || ColumnSelectorComponent)(i0.ɵɵdirectiveInject(i0.ElementRef));\n };\n static ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: ColumnSelectorComponent,\n selectors: [[\"div\", \"gui-column-selector\", \"\", \"columns\", \"\"]],\n inputs: {\n columns: \"columns\"\n },\n outputs: {\n columnSelected: \"columnSelected\"\n },\n features: [i0.ɵɵInheritDefinitionFeature],\n attrs: _c89,\n decls: 1,\n vars: 0,\n template: function ColumnSelectorComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtext(0, \"./column-selector.component.html\");\n }\n },\n encapsulation: 2,\n changeDetection: 0\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(ColumnSelectorComponent, [{\n type: Component,\n args: [{\n selector: 'div[gui-column-selector][columns]',\n template: `./column-selector.component.html`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n }]\n }], () => [{\n type: i0.ElementRef\n }], {\n columns: [{\n type: Input\n }],\n columnSelected: [{\n type: Output\n }]\n });\n})();\nclass ToggleFilterCommand extends StructureCommand {\n fieldId;\n externalFilterId;\n filterValue;\n constructor(structureId, fieldId, externalFilterId, filterValue) {\n super(structureId, 'ToggleFilterCommand');\n this.fieldId = fieldId;\n this.externalFilterId = externalFilterId;\n this.filterValue = filterValue;\n }\n getFieldId() {\n return this.fieldId;\n }\n getExternalFilterId() {\n return this.externalFilterId;\n }\n getFilterValue() {\n return this.filterValue;\n }\n}\nclass FilterToggledEvent extends StructureDomainEvent {\n constructor(aggregateId) {\n super(aggregateId, null, 'FilterToggledEvent');\n }\n}\nclass ToggleFilterCommandHandler {\n domainEventPublisher = CoreContainer.resolve(DomainEventPublisher);\n forCommand() {\n return ToggleFilterCommand;\n }\n handle(aggregate, command) {\n const fieldId = command.getFieldId(),\n externalFieldId = command.getExternalFilterId(),\n filterValue = command.getFilterValue();\n aggregate.toggleFilter(fieldId, externalFieldId, filterValue);\n }\n publish(aggregate, command) {\n this.domainEventPublisher.publish(new FilterToggledEvent(command.getAggregateId()));\n }\n}\nclass AddFilterCommand extends StructureCommand {\n fieldId;\n filterTypeId;\n value;\n constructor(structureId, fieldId, filterTypeId, value) {\n super(structureId, 'AddFilterCommand');\n this.fieldId = fieldId;\n this.filterTypeId = filterTypeId;\n this.value = value;\n }\n getFieldId() {\n return this.fieldId;\n }\n getFilterTypeId() {\n return this.filterTypeId;\n }\n getValue() {\n return this.value;\n }\n}\nclass AddFilterCommandHandler {\n forCommand() {\n return AddFilterCommand;\n }\n handle(structure, command) {\n const fieldId = command.getFieldId(),\n filterTypeId = command.getFilterTypeId(),\n value = command.getValue();\n structure.addFilter(fieldId, filterTypeId, value);\n }\n}\nclass RemoveAllFiltersCommand extends StructureCommand {\n constructor(structureId) {\n super(structureId, 'RemoveAllFiltersCommand');\n }\n}\nclass RemoveAllFiltersCommandHandler {\n forCommand() {\n return RemoveAllFiltersCommand;\n }\n handle(structure, command) {\n structure.removeAllFilters();\n }\n}\nclass RemoveFilterCommand extends StructureCommand {\n filterId;\n constructor(structureId, filterId) {\n super(structureId, 'RemoveFilterCommand');\n this.filterId = filterId;\n }\n getFilterId() {\n return this.filterId;\n }\n}\nclass RemoveFilterCommandHandler {\n forCommand() {\n return RemoveFilterCommand;\n }\n handle(structure, command) {\n const filterId = command.getFilterId();\n structure.removeFilter(filterId);\n }\n}\nclass SetConfigFilterCommand extends StructureCommand {\n filterConfig;\n constructor(structureId, filterConfig) {\n super(structureId, 'SetConfigFilterCommand');\n this.filterConfig = filterConfig;\n }\n getConfig() {\n return this.filterConfig;\n }\n}\nclass ConfigFilterSetEvent extends StructureDomainEvent {\n enabled;\n constructor(aggregateId, enabled) {\n super(aggregateId, enabled, 'ConfigFilterSetEvent');\n this.enabled = enabled;\n }\n getEnabled() {\n return this.enabled;\n }\n}\nclass SetConfigFilterCommandHandler {\n domainEventPublisher = CoreContainer.resolve(DomainEventPublisher);\n forCommand() {\n return SetConfigFilterCommand;\n }\n handle(aggregate, command) {\n const filterConfig = command.getConfig();\n aggregate.setFilterConfig(filterConfig);\n }\n publish(aggregate, command) {\n const filterConfig = command.getConfig();\n this.domainEventPublisher.publish(new ConfigFilterSetEvent(command.getAggregateId(), filterConfig.enabled));\n }\n}\nclass SetConfigQuickFilterCommand extends StructureCommand {\n quickFiltersConfig;\n constructor(structureId, quickFiltersConfig) {\n super(structureId, 'SetConfigQuickFilterCommand');\n this.quickFiltersConfig = quickFiltersConfig;\n }\n getConfig() {\n return this.quickFiltersConfig;\n }\n}\nclass ConfigQuickFilterSetEvent extends StructureDomainEvent {\n enabled;\n constructor(aggregateId, enabled) {\n super(aggregateId, enabled, 'ConfigQuickFilterSetEvent');\n this.enabled = enabled;\n }\n getEnabled() {\n return this.enabled;\n }\n}\nclass SetConfigQuickFilterCommandHandler {\n domainEventPublisher = CoreContainer.resolve(DomainEventPublisher);\n forCommand() {\n return SetConfigQuickFilterCommand;\n }\n handle(aggregate, command) {\n const quickFiltersConfig = command.getConfig();\n aggregate.setQuickFiltersConfig(quickFiltersConfig);\n }\n publish(aggregate, command) {\n const structureId = command.getAggregateId(),\n quickFiltersConfig = command.getConfig();\n this.domainEventPublisher.publish(new ConfigQuickFilterSetEvent(structureId, quickFiltersConfig.enabled));\n }\n}\nclass Filter extends Entity {\n filterId;\n fieldId;\n filterTypeId;\n filterValue;\n constructor(filterId, fieldId, filterTypeId, filterValue) {\n super(filterId);\n this.filterId = filterId;\n this.fieldId = fieldId;\n this.filterTypeId = filterTypeId;\n this.filterValue = filterValue;\n }\n getFilterId() {\n return this.filterId;\n }\n getFilterTypeId() {\n return this.filterTypeId;\n }\n getFieldId() {\n return this.fieldId;\n }\n getFilterValue() {\n return this.filterValue;\n }\n}\nclass FilterSettings {\n filteringEnabled = false;\n searchEnabled = false;\n quickFiltersEnabled = false;\n constructor(filteringEnabled = false, searchEnabled = false, quickFiltersEnabled = false) {\n this.filteringEnabled = filteringEnabled;\n this.searchEnabled = searchEnabled;\n this.quickFiltersEnabled = quickFiltersEnabled;\n }\n isFilteringEnabled() {\n return this.filteringEnabled;\n }\n isQuickFilteringEnabled() {\n return this.quickFiltersEnabled;\n }\n isSearchingEnabled() {\n return this.searchEnabled;\n }\n setFilterConfig(config) {\n if (config && config.enabled !== undefined && config.enabled !== null) {\n this.filteringEnabled = config.enabled;\n }\n }\n setSearchingConfig(config) {\n if (config && config.enabled !== undefined && config.enabled !== null) {\n this.searchEnabled = config.enabled;\n }\n }\n setQuickFiltersConfig(config) {\n if (config && config.enabled !== undefined && config.enabled !== null) {\n this.quickFiltersEnabled = config.enabled;\n }\n }\n}\nclass BaseFilterType extends EntityId {\n // private readonly filterTypeId: FilterTypeId;\n constructor(filterTypeId) {\n super(filterTypeId);\n // this.filterTypeId = filterTypeId;\n }\n // getId(): FilterTypeId {\n // \treturn this.filterTypeId;\n // }\n toString() {\n return this.getId().toString();\n }\n filterMany(entities, field, value) {\n if (entities.length === 0) {\n return entities;\n }\n return entities.filter(item => {\n return this.filterEntity(item, field, value);\n });\n }\n filterOne(entity, field, value) {\n return this.filterEntity(entity, field, value);\n }\n}\nclass ContainsFilterType extends BaseFilterType {\n constructor(filterTypeId) {\n super(filterTypeId);\n }\n getName() {\n return 'Contains';\n }\n filterEntity(entity, field, value) {\n const fieldValue = field.getValue(entity);\n return !!fieldValue.includes(value);\n }\n}\nclass FilterTypeId extends EntityId {\n id;\n constructor(id) {\n super(id);\n this.id = id;\n }\n toString() {\n return this.id;\n }\n}\nclass FilterTypeIdGenerator {\n static index = 0;\n generate() {\n FilterTypeIdGenerator.index += 1;\n return new FilterTypeId(`${FilterTypeIdGenerator.index}`);\n }\n}\nclass FilterTypeModel {\n filterTypeId;\n name;\n constructor(id, name) {\n this.filterTypeId = id;\n this.name = name;\n }\n getId() {\n return this.filterTypeId;\n }\n getName() {\n return this.name;\n }\n}\nclass FilterTypeManager {\n fieldIds = [];\n map = new WeakMap();\n filterTypeMap = new WeakMap();\n dataTypeToFilterType = new Map();\n filterTypeIdGenerator = new FilterTypeIdGenerator();\n constructor(fields) {\n this.assignFilterTypes();\n this.addFields(fields);\n }\n getFilterType(filterTypeId) {\n return this.filterTypeMap.get(filterTypeId);\n }\n getFieldIdsToFilterTypes() {\n const map = new Map();\n for (const fieldId of this.fieldIds) {\n const filterTypes = this.map.get(fieldId),\n readModels = filterTypes.map(f => {\n return new FilterTypeModel(f.getId(), f.getName());\n });\n map.set(fieldId.toString(), readModels);\n }\n return map;\n }\n addFields(fields) {\n for (const field of fields) {\n this.addField(field);\n }\n }\n addField(field) {\n const fieldId = field.getId(),\n dataType = field.getDataType();\n const filterTypesFromDataType = this.dataTypeToFilterType.get(dataType);\n this.fieldIds.push(fieldId);\n this.map.set(fieldId, Array.from(filterTypesFromDataType));\n }\n assignFilterTypes() {\n this.assignFilterTypesForDataTypeUnknown();\n this.assignFilterTypesForDataTypeNumber();\n this.assignFilterTypesForDataTypeString();\n this.assignFilterTypesForDataTypeBoolean();\n this.assignFilterTypesForDataTypeDate();\n this.assignFilterTypesForDataTypeCustom();\n }\n assignFilterTypesForDataTypeUnknown() {\n this.dataTypeToFilterType.set(DataType.UNKNOWN, []);\n }\n assignFilterTypesForDataTypeNumber() {\n this.dataTypeToFilterType.set(DataType.NUMBER, []);\n }\n assignFilterTypesForDataTypeString() {\n const filterTypes = [new ContainsFilterType(this.generateId())];\n this.dataTypeToFilterType.set(DataType.STRING, filterTypes);\n this.addFilterTypes(filterTypes);\n }\n assignFilterTypesForDataTypeBoolean() {\n this.dataTypeToFilterType.set(DataType.BOOLEAN, []);\n }\n assignFilterTypesForDataTypeDate() {\n this.dataTypeToFilterType.set(DataType.DATE, []);\n }\n assignFilterTypesForDataTypeCustom() {\n this.dataTypeToFilterType.set(DataType.CUSTOM, []);\n }\n generateId() {\n return this.filterTypeIdGenerator.generate();\n }\n addFilterTypes(filterTypes) {\n for (const filterType of filterTypes) {\n this.filterTypeMap.set(filterType.getId(), filterType);\n }\n }\n}\nclass FilterId extends EntityId {\n constructor(filterId) {\n super(filterId);\n }\n toString() {\n return this.getId();\n }\n}\nclass FilterIdGenerator {\n static index = 0;\n static generateId() {\n return new FilterId(`${FilterIdGenerator.index}`);\n }\n}\nclass ActiveFilterModel {\n filterId;\n fieldName;\n filterTypeName;\n value;\n constructor(filterId, fieldName, filterTypeName, value) {\n this.filterId = filterId;\n this.fieldName = fieldName;\n this.filterTypeName = filterTypeName;\n this.value = value;\n }\n getText() {\n return `${this.fieldName}: ${this.filterTypeName}: ${this.value}`;\n }\n getFilterId() {\n return this.filterId;\n }\n getFieldName() {\n return this.fieldName;\n }\n getFilterTypeName() {\n return this.filterTypeName;\n }\n getValue() {\n return this.value;\n }\n}\nclass FilterManager {\n filterSettings = new FilterSettings();\n // string -> FilterId\n filters = new Map();\n activeFilters = [];\n filterTypeManager;\n constructor() {}\n getSettings() {\n return this.filterSettings;\n }\n getAll() {\n return Array.from(this.filters).map(arr => arr[1]);\n }\n getAllActiveFilters(fields) {\n return this.activeFilters.map(af => {\n return new ActiveFilterModel(af.getFilterId(), fields.get(af.getFieldId().toString()).getName(), this.filterTypeManager.getFilterType(af.getFilterTypeId()).getName(), af.getFilterValue());\n });\n }\n getFilterTypes() {\n return this.filterTypeManager.getFieldIdsToFilterTypes();\n }\n assignFilterTypes(fields) {\n this.filterTypeManager = new FilterTypeManager(fields);\n }\n add(fieldId, filterTypeId, value) {\n const filter = new Filter(FilterIdGenerator.generateId(), fieldId, filterTypeId, value);\n this.activeFilters.push(filter);\n }\n filter(entities, fields) {\n let filteredEntities = Array.from(entities);\n for (const filter of this.activeFilters) {\n const filterTypeId = filter.getFilterTypeId(),\n filterType = this.getFilterType(filterTypeId),\n value = filter.getFilterValue();\n filteredEntities = filterType.filterMany(filteredEntities, fields.get(filter.getFieldId().toString()), value);\n }\n return filteredEntities;\n }\n removeAll() {\n this.activeFilters.length = 0;\n }\n remove(filterId) {\n this.activeFilters = this.activeFilters.filter(filter => {\n return filter.getFilterId() !== filterId;\n });\n }\n getFilterType(filterTypeId) {\n return this.filterTypeManager.getFilterType(filterTypeId);\n }\n}\nclass FilterManagerFactory {\n create(enabled = false) {\n return new FilterManager();\n }\n}\nclass QuickFilterEnabledArchive extends AggregateArchive {\n static default = false;\n constructor() {\n super(QuickFilterEnabledArchive.default);\n }\n}\nclass ConfigQuickFilterSetEventHandler {\n quickFilterEnabledArchive;\n constructor(quickFilterEnabledArchive) {\n this.quickFilterEnabledArchive = quickFilterEnabledArchive;\n }\n static services = [QuickFilterEnabledArchive];\n forEvent() {\n return ConfigQuickFilterSetEvent;\n }\n handle(event) {\n if (event.ofMessageType('ConfigQuickFilterSetEvent')) {\n this.quickFilterEnabledArchive.next(event.getAggregateId(), event.getEnabled());\n }\n }\n}\nclass FilterEnabledArchive extends AggregateArchive {\n static default = false;\n constructor() {\n super(FilterEnabledArchive.default);\n }\n}\nclass ConfigFilterSetEventHandler {\n filterEnabledArchive;\n constructor(filterEnabledArchive) {\n this.filterEnabledArchive = filterEnabledArchive;\n }\n static services = [FilterEnabledArchive];\n forEvent() {\n return ConfigFilterSetEvent;\n }\n handle(event) {\n if (event.ofMessageType('ConfigFilterSetEvent')) {\n this.filterEnabledArchive.next(event.getAggregateId(), event.getEnabled());\n }\n }\n}\nclass FilterTypeCollectionModel {\n map; // = new WeakMap>();\n constructor(map) {\n this.map = map;\n }\n getFilterTypes(fieldId) {\n const result = this.map.get(fieldId.toString());\n if (result === undefined) {\n return [];\n } else {\n return result;\n }\n }\n}\nclass FilterTypeArchive extends AggregateArchive {\n static default = new FilterTypeCollectionModel(new Map());\n constructor() {\n super(FilterTypeArchive.default);\n }\n}\nclass FilterTypesInitedEvent extends StructureDomainEvent {\n map;\n constructor(aggregateId, map) {\n super(aggregateId, map, 'FilterTypesInitedEvent');\n this.map = map;\n }\n getMap() {\n return this.map;\n }\n}\nclass ActiveFilterArchive extends AggregateArchive {\n static default = [];\n constructor() {\n super(ActiveFilterArchive.default);\n }\n}\nconst filterDiContainer = createContainer();\nfilterDiContainer.provide(ActiveFilterArchive);\nfilterDiContainer.provide(FilterTypeArchive);\nconst FilterDiContainer = filterDiContainer;\nclass FilterTypeConfigFilterSetEventHandler {\n filterTypeArchive = FilterDiContainer.resolve(FilterTypeArchive);\n forEvent() {\n return FilterTypesInitedEvent;\n }\n handle(filterTypesInitedEvent) {\n if (filterTypesInitedEvent.ofMessageType('FilterTypesInitedEvent')) {\n const map = filterTypesInitedEvent.getMap();\n this.filterTypeArchive.next(filterTypesInitedEvent.getAggregateId(), new FilterTypeCollectionModel(map));\n }\n }\n}\nclass ActiveFiltersSetEvent extends StructureDomainEvent {\n filters;\n constructor(structureId, filters) {\n super(structureId, filters, 'ActiveFiltersSetEvent');\n this.filters = filters;\n }\n getFilters() {\n return this.filters;\n }\n}\nclass ActiveFiltersSetEventHandler {\n activeFilterRepository = FilterDiContainer.resolve(ActiveFilterArchive);\n forEvent() {\n return ActiveFiltersSetEvent;\n }\n handle(activeFiltersSetEvent) {\n if (activeFiltersSetEvent.ofMessageType('ActiveFiltersSetEvent')) {\n const activeFilters = activeFiltersSetEvent.getFilters();\n this.activeFilterRepository.next(activeFiltersSetEvent.getAggregateId(), activeFilters);\n }\n }\n}\nclass UniqueFilterCalculatedEvent extends StructureDomainEvent {\n map;\n constructor(aggregateId, map) {\n super(aggregateId, map, 'UniqueFilterCalculatedEvent');\n this.map = map;\n }\n getUniqueValues() {\n return this.map;\n }\n}\nclass UniqueValueCollectionModel {\n map = new Map();\n allSelected = new Map();\n allDisabled = new Map();\n constructor(map) {\n this.map = map;\n this.calculateSelection();\n }\n getValues(fieldId) {\n return this.map.get(fieldId.toString());\n }\n areAllSelected(fieldId) {\n return this.allSelected.get(fieldId.toString());\n }\n areAllDisabled(fieldId) {\n return this.allDisabled.get(fieldId.toString());\n }\n isSelectAllChecked(fieldId) {\n return this.areAllSelected(fieldId);\n }\n isIndeterminate(fieldId) {\n return !(this.areAllSelected(fieldId) || this.areAllDisabled(fieldId));\n }\n calculateSelection() {\n for (const key of Array.from(this.map.keys())) {\n const values = this.map.get(key);\n this.allSelected.set(key, !values.some(r => !r.isEnabled()));\n this.allDisabled.set(key, !values.some(r => r.isEnabled()));\n }\n }\n}\nclass UniqueValueCollectionArchive extends AggregateArchive {\n static default = new UniqueValueCollectionModel(new Map());\n constructor() {\n super(UniqueValueCollectionArchive.default);\n }\n}\nclass UniqueValueModel {\n id;\n value;\n displayValue;\n enabled;\n constructor(id, value, enabled) {\n this.id = id;\n this.value = value;\n this.enabled = enabled;\n }\n getId() {\n return this.id;\n }\n getValue() {\n return this.value;\n }\n geDisplayValue() {\n return this.displayValue;\n }\n isEnabled() {\n return this.enabled;\n }\n}\nclass UniqueFilterCalculatedEventHandler {\n uniqueValuesRepository;\n constructor(uniqueValuesRepository) {\n this.uniqueValuesRepository = uniqueValuesRepository;\n }\n static services = [UniqueValueCollectionArchive];\n forEvent() {\n return UniqueFilterCalculatedEvent;\n }\n handle(calculatedEvent) {\n if (calculatedEvent.ofMessageType('UniqueFilterCalculatedEvent')) {\n const uvRM = new Map();\n calculatedEvent.getUniqueValues().forEach((values, key) => {\n const valuesRM = values.map(uv => {\n return new UniqueValueModel(uv.getId(), uv.getDisplayValue(), uv.isEnabled());\n });\n uvRM.set(key, valuesRM);\n });\n const uniqueValues = new UniqueValueCollectionModel(uvRM);\n this.uniqueValuesRepository.next(calculatedEvent.getAggregateId(), uniqueValues);\n }\n }\n}\n\n// TODO Remove\nclass FilterTypeFieldsInitedEventHandler {\n // constructor(private readonly filterTypeManagerRepository: FilterTypeManagerRepository,\n // \t\t\tprivate readonly domainEventPublisher: DomainEventPublisher) {\n // }\n forEvent() {\n return FieldsInitedEvent;\n }\n handle(fieldsInitedEvent) {\n // if (fieldsInitedEvent.ofMessageType('FieldsInitedEvent')) {\n //\n // \tconst fields = fieldsInitedEvent.getFields();\n //\n // \tconst manager = new FilterTypeManager(fields);\n //\n // \tthis.filterTypeManagerRepository.next(fieldsInitedEvent.getAggregateId(), manager);\n //\n // \tthis.domainEventPublisher.publish(new FilterTypesInitedEvent(fieldsInitedEvent.getAggregateId(), manager.getFieldIdsToFieldTypes()));\n // }\n }\n}\nclass UnselectAllUniqueFilterCommand extends StructureCommand {\n fieldId;\n constructor(structureId, fieldId) {\n super(structureId, 'UnselectAllUniqueFilterCommand');\n this.fieldId = fieldId;\n }\n getFieldId() {\n return this.fieldId;\n }\n}\nclass UnselectAllUniqueFilterCommandHandler {\n forCommand() {\n return UnselectAllUniqueFilterCommand;\n }\n handle(structure, command) {\n const fieldId = command.getFieldId();\n structure.unselectAllUniqueFilter(fieldId);\n }\n}\nclass UnselectUniqueFilterCommand extends StructureCommand {\n fieldId;\n uniqueValueId;\n constructor(structureId, fieldId, uniqueValueId) {\n super(structureId, 'UnselectUniqueFilterCommand');\n this.fieldId = fieldId;\n this.uniqueValueId = uniqueValueId;\n }\n getFieldId() {\n return this.fieldId;\n }\n getUniqueValueId() {\n return this.uniqueValueId;\n }\n}\nclass UnselectUniqueFilterCommandHandler {\n forCommand() {\n return UnselectUniqueFilterCommand;\n }\n handle(structure, command) {\n const fieldId = command.getFieldId(),\n uniqueValueId = command.getUniqueValueId();\n structure.unselectUniqueFilter(fieldId, uniqueValueId);\n }\n}\nclass SelectAllUniqueFilterCommand extends StructureCommand {\n fieldId;\n constructor(structureId, fieldId) {\n super(structureId, 'SelectAllUniqueFilterCommand');\n this.fieldId = fieldId;\n }\n getFieldId() {\n return this.fieldId;\n }\n}\nclass SelectAllUniqueFilterCommandHandler {\n forCommand() {\n return SelectAllUniqueFilterCommand;\n }\n handle(structure, command) {\n const fieldId = command.getFieldId();\n structure.selectAllUniqueFilter(fieldId);\n }\n}\nclass SelectUniqueFilterCommand extends StructureCommand {\n fieldId;\n uniqueValueId;\n constructor(structureId, fieldId, uniqueValueId) {\n super(structureId, 'SelectUniqueFilterCommand');\n this.fieldId = fieldId;\n this.uniqueValueId = uniqueValueId;\n }\n getFieldId() {\n return this.fieldId;\n }\n getUniqueValueId() {\n return this.uniqueValueId;\n }\n}\nclass SelectUniqueFilterCommandHandler {\n forCommand() {\n return SelectUniqueFilterCommand;\n }\n handle(structure, command) {\n const fieldId = command.getFieldId(),\n uniqueValueId = command.getUniqueValueId();\n structure.selectUniqueFilter(fieldId, uniqueValueId);\n }\n}\nclass FilterDomainModule {\n defineAggregate() {\n return null;\n }\n registerKey() {\n return structureKey;\n }\n registerProviders(container) {\n container.provide(FilterManagerFactory);\n }\n registerCommandHandlers() {\n return [SetConfigFilterCommandHandler, SetConfigQuickFilterCommandHandler, ToggleFilterCommandHandler, AddFilterCommandHandler, RemoveAllFiltersCommandHandler, RemoveFilterCommandHandler, SelectUniqueFilterCommandHandler, SelectAllUniqueFilterCommandHandler, UnselectUniqueFilterCommandHandler, UnselectAllUniqueFilterCommandHandler];\n }\n registerDomainEventHandler() {\n return [ConfigQuickFilterSetEventHandler, ConfigFilterSetEventHandler, FilterTypeConfigFilterSetEventHandler, ActiveFiltersSetEventHandler, UniqueFilterCalculatedEventHandler, FilterTypeFieldsInitedEventHandler];\n }\n registerMultiDomainEventHandler() {\n return [];\n }\n}\nclass FilterDomainWarehouse extends FilterWarehouse {\n filterEnabledArchive;\n structureQuickFilterRepository;\n uniqueValuesArchive;\n activeFilterArchive = FilterDiContainer.resolve(ActiveFilterArchive);\n filterTypeArchive = FilterDiContainer.resolve(FilterTypeArchive);\n constructor(filterEnabledArchive, structureQuickFilterRepository, uniqueValuesArchive) {\n super();\n this.filterEnabledArchive = filterEnabledArchive;\n this.structureQuickFilterRepository = structureQuickFilterRepository;\n this.uniqueValuesArchive = uniqueValuesArchive;\n }\n static services = [FilterEnabledArchive, QuickFilterEnabledArchive, UniqueValueCollectionArchive];\n onFilteringEnabled(structureId) {\n return this.filterEnabledArchive.on(structureId);\n }\n onQuickFiltersEnabled(structureId) {\n return this.structureQuickFilterRepository.on(structureId);\n }\n onFilterTypes(structureId) {\n return this.filterTypeArchive.on(structureId);\n }\n findFilterTypes(structureId) {\n return this.filterTypeArchive.find(structureId);\n }\n onFilterTypesForFieldId(fieldId, structureId) {\n return this.onFilterTypes(structureId).pipe(hermesMap(map => {\n return map.getFilterTypes(fieldId);\n }));\n }\n onActiveFilters(structureId) {\n return this.activeFilterArchive.on(structureId);\n }\n findFilters(structureId) {\n return this.activeFilterArchive.find(structureId);\n }\n onUniqueValues(structureId) {\n return this.uniqueValuesArchive.on(structureId);\n }\n onceFilterTypeId(fieldId, filterTypeName, structureId) {\n return singleFromObservable(this.onFilterTypes(structureId).pipe(hermesMap(map => {\n const filterTypes = map.getFilterTypes(fieldId);\n const filterType = filterTypes.find(fieldType => fieldType.getName() === filterTypeName);\n if (filterType === undefined) {\n return Optional.empty();\n } else {\n return Optional.of(filterType.getId());\n }\n })));\n }\n}\nclass FilterDomainPublisher extends FilterPublisher {\n commandDispatcher;\n constructor(commandDispatcher) {\n super();\n this.commandDispatcher = commandDispatcher;\n }\n static services = [CommandDispatcher];\n setConfig(config, structureId) {\n this.commandDispatcher.dispatch(new SetConfigFilterCommand(structureId, config));\n }\n add(fieldId, filterTypeId, value, structureId) {\n this.commandDispatcher.dispatch(new AddFilterCommand(structureId, fieldId, filterTypeId, value));\n }\n removeAll(structureId) {\n this.commandDispatcher.dispatch(new RemoveAllFiltersCommand(structureId));\n }\n remove(filterId, structureId) {\n this.commandDispatcher.dispatch(new RemoveFilterCommand(structureId, filterId));\n }\n selectAllUniqueFilter(fieldId, structureId) {\n this.commandDispatcher.dispatch(new SelectAllUniqueFilterCommand(structureId, fieldId));\n }\n unselectAllUniqueFilter(fieldId, structureId) {\n this.commandDispatcher.dispatch(new UnselectAllUniqueFilterCommand(structureId, fieldId));\n }\n selectUniqueFilter(fieldId, uniqueValueId, structureId) {\n this.commandDispatcher.dispatch(new SelectUniqueFilterCommand(structureId, fieldId, uniqueValueId));\n }\n unselectUniqueFilter(fieldId, uniqueValueId, structureId) {\n this.commandDispatcher.dispatch(new UnselectUniqueFilterCommand(structureId, fieldId, uniqueValueId));\n }\n}\nclass FilterApiModule {\n registerProviders(container) {\n container.provide(FilterPublisher, FilterDomainPublisher);\n container.provide(FilterWarehouse, FilterDomainWarehouse);\n container.provide(UniqueValueCollectionArchive);\n container.provide(FilterEnabledArchive);\n container.provide(QuickFilterEnabledArchive);\n container.provide(FilterIntegration);\n }\n}\nfunction initializeFilter() {\n new DomainInitializer(new FilterApiModule(), new FilterDomainModule()).init();\n}\ninitializeFilter();\nfunction provideFilterCommandInvoker() {\n return CoreContainer.resolve(FilterPublisher);\n}\nfunction provideFilterWarehouse() {\n return CoreContainer.resolve(FilterWarehouse);\n}\nfunction provideFilterIntegration() {\n return CoreContainer.resolve(FilterIntegration);\n}\nclass FilterFeatureModule {\n static ɵfac = function FilterFeatureModule_Factory(t) {\n return new (t || FilterFeatureModule)();\n };\n static ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: FilterFeatureModule\n });\n static ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n providers: [{\n provide: FilterPublisher,\n useFactory: provideFilterCommandInvoker\n }, {\n provide: FilterWarehouse,\n useFactory: provideFilterWarehouse\n }, {\n provide: FilterIntegration,\n useFactory: provideFilterIntegration\n }]\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(FilterFeatureModule, [{\n type: NgModule,\n args: [{\n providers: [{\n provide: FilterPublisher,\n useFactory: provideFilterCommandInvoker\n }, {\n provide: FilterWarehouse,\n useFactory: provideFilterWarehouse\n }, {\n provide: FilterIntegration,\n useFactory: provideFilterIntegration\n }]\n }]\n }], null, null);\n})();\nclass ActiveFilterListModule extends FeatureModule {\n static forComponent() {\n return [];\n }\n static ɵfac = /* @__PURE__ */(() => {\n let ɵActiveFilterListModule_BaseFactory;\n return function ActiveFilterListModule_Factory(t) {\n return (ɵActiveFilterListModule_BaseFactory || (ɵActiveFilterListModule_BaseFactory = i0.ɵɵgetInheritedFactory(ActiveFilterListModule)))(t || ActiveFilterListModule);\n };\n })();\n static ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: ActiveFilterListModule\n });\n static ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [CommonModule, fabricImports, GuiTemplateModule, FilterFeatureModule]\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(ActiveFilterListModule, [{\n type: NgModule,\n args: [{\n imports: [CommonModule, fabricImports, GuiTemplateModule, FilterFeatureModule],\n declarations: [ActiveFilterListComponent, ActiveSearchComponent],\n exports: [ActiveFilterListComponent]\n }]\n }], null, null);\n})();\nclass FilterMenuFeatureModule extends FeatureModule {\n static forComponent() {\n return [];\n }\n static ɵfac = /* @__PURE__ */(() => {\n let ɵFilterMenuFeatureModule_BaseFactory;\n return function FilterMenuFeatureModule_Factory(t) {\n return (ɵFilterMenuFeatureModule_BaseFactory || (ɵFilterMenuFeatureModule_BaseFactory = i0.ɵɵgetInheritedFactory(FilterMenuFeatureModule)))(t || FilterMenuFeatureModule);\n };\n })();\n static ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: FilterMenuFeatureModule\n });\n static ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [CommonModule, FabricModule, ReactiveFormsModule, GuiTemplateModule, FilterFeatureModule, ActiveFilterListModule]\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(FilterMenuFeatureModule, [{\n type: NgModule,\n args: [{\n imports: [CommonModule, FabricModule, ReactiveFormsModule, GuiTemplateModule, FilterFeatureModule, ActiveFilterListModule],\n declarations: [FilterIconComponent, FilterMenuComponent, FilterMenuTriggerComponent, ColumnSelectorComponent, FilterTypeSelectorComponent, FilterValueComponent, FieldSelectorComponent, FilterMenuActiveFiltersComponent],\n exports: [FilterMenuTriggerComponent]\n }]\n }], null, null);\n})();\nclass SourceCounterFeatureModule extends FeatureModule {\n static forComponent() {\n return [];\n }\n static ɵfac = /* @__PURE__ */(() => {\n let ɵSourceCounterFeatureModule_BaseFactory;\n return function SourceCounterFeatureModule_Factory(t) {\n return (ɵSourceCounterFeatureModule_BaseFactory || (ɵSourceCounterFeatureModule_BaseFactory = i0.ɵɵgetInheritedFactory(SourceCounterFeatureModule)))(t || SourceCounterFeatureModule);\n };\n })();\n static ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: SourceCounterFeatureModule\n });\n static ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n providers: [ActiveFilterService],\n imports: [CommonModule, FilterMenuFeatureModule, ActiveFilterListModule, FabricButtonModule]\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(SourceCounterFeatureModule, [{\n type: NgModule,\n args: [{\n imports: [CommonModule, FilterMenuFeatureModule, ActiveFilterListModule, FabricButtonModule],\n declarations: [ActiveFilterMenuTriggerDirective, ActiveFilterMenuComponent],\n exports: [ActiveFilterMenuTriggerDirective],\n providers: [ActiveFilterService]\n }]\n }], null, null);\n})();\nclass StructureInfoPanelModule {\n static ɵfac = function StructureInfoPanelModule_Factory(t) {\n return new (t || StructureInfoPanelModule)();\n };\n static ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: StructureInfoPanelModule\n });\n static ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n providers: [StructureInfoPanelConfigConverter],\n imports: [CommonModule, NumberFormatterModule, FabricModule, StructureColumnManagerModule, SchemaManagerModule, SourceCounterFeatureModule, TranslationFeatureModule, GuiTemplateModule]\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(StructureInfoPanelModule, [{\n type: NgModule,\n args: [{\n imports: [CommonModule, NumberFormatterModule, FabricModule, StructureColumnManagerModule, SchemaManagerModule, SourceCounterFeatureModule, TranslationFeatureModule, GuiTemplateModule],\n declarations: [StructureInfoPanelComponent, StructureInfoModalComponent, StructureInfoIconComponent],\n exports: [StructureInfoModalComponent, StructureInfoPanelComponent],\n providers: [StructureInfoPanelConfigConverter]\n }]\n }], null, null);\n})();\nclass StructureHeaderFilterComponent extends SmartComponent {\n changeDetectorRef;\n structureFilterCommandService;\n structureId;\n column;\n sub = new ChangedValueEmitter();\n editContext;\n constructor(changeDetectorRef, elementRef, structureFilterCommandService, structureId) {\n super(changeDetectorRef, elementRef);\n this.changeDetectorRef = changeDetectorRef;\n this.structureFilterCommandService = structureFilterCommandService;\n this.structureId = structureId;\n this.editContext = {\n changes: this.sub\n };\n }\n ngOnInit() {\n this.sub.on().subscribe(phrase => this.filter(phrase));\n }\n filter(phrase) {\n // this.structureFilterCommandService.addFilter(this.column.getFieldId(), '1', phrase, this.structureId);\n }\n getSelectorName() {\n return 'gui-structure-header-filter';\n }\n static ɵfac = function StructureHeaderFilterComponent_Factory(t) {\n return new (t || StructureHeaderFilterComponent)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(FilterPublisher), i0.ɵɵdirectiveInject(StructureId));\n };\n static ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: StructureHeaderFilterComponent,\n selectors: [[\"gui-structure-header-filter\"]],\n inputs: {\n column: \"column\"\n },\n features: [i0.ɵɵInheritDefinitionFeature],\n decls: 2,\n vars: 1,\n consts: [[\"gui-button\", \"\", 3, \"primary\"]],\n template: function StructureHeaderFilterComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"button\", 0);\n i0.ɵɵtext(1, \"Add Filter\");\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"primary\", true);\n }\n },\n dependencies: [i1$1.FabricButtonComponent],\n encapsulation: 2,\n changeDetection: 0\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(StructureHeaderFilterComponent, [{\n type: Component,\n args: [{\n selector: 'gui-structure-header-filter',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n template: \"\\n\\n\\n\\n\\n\\n\\n\\n\"\n }]\n }], () => [{\n type: i0.ChangeDetectorRef\n }, {\n type: i0.ElementRef\n }, {\n type: FilterPublisher\n }, {\n type: StructureId\n }], {\n column: [{\n type: Input\n }]\n });\n})();\nclass StructureQuickFiltersComponent {\n static ɵfac = function StructureQuickFiltersComponent_Factory(t) {\n return new (t || StructureQuickFiltersComponent)();\n };\n static ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: StructureQuickFiltersComponent,\n selectors: [[\"div\", \"gui-structure-quick-filters\", \"\"]],\n attrs: _c90,\n decls: 1,\n vars: 0,\n template: function StructureQuickFiltersComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtext(0, \" QuickFilters \");\n }\n },\n encapsulation: 2,\n changeDetection: 0\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(StructureQuickFiltersComponent, [{\n type: Component,\n args: [{\n selector: 'div[gui-structure-quick-filters]',\n template: `\n\n\t\tQuickFilters\n\n\t`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n }]\n }], null, null);\n})();\nclass ConsoleLogger extends Logger {\n warn(text) {\n // eslint-disable-next-line no-console\n console.warn(text);\n }\n error(text) {\n // eslint-disable-next-line no-console\n console.error(text);\n }\n}\nfunction initializeLogger() {\n CoreContainer.provide(Logger, ConsoleLogger);\n}\ninitializeLogger();\nfunction provideLogger() {\n return CoreContainer.resolve(Logger);\n}\nclass LoggerModule {\n static ɵfac = function LoggerModule_Factory(t) {\n return new (t || LoggerModule)();\n };\n static ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: LoggerModule\n });\n static ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n providers: [{\n provide: Logger,\n useFactory: provideLogger\n }]\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(LoggerModule, [{\n type: NgModule,\n args: [{\n providers: [{\n provide: Logger,\n useFactory: provideLogger\n }]\n }]\n }], null, null);\n})();\nclass Item {\n id;\n source;\n position;\n version = 0;\n constructor(source, position, id, version = 0) {\n this.source = source;\n this.position = position;\n this.version = version;\n if (!id) {\n this.id = RandomStringGenerator.generate();\n } else {\n this.id = id;\n }\n }\n getSourceItem() {\n return this.source;\n }\n getUiId() {\n return 'gui' + this.id.replace(/-/g, '');\n }\n getId() {\n return this.id;\n }\n getVersion() {\n return this.version;\n }\n getPosition() {\n return this.position;\n }\n isSelected() {\n return false;\n }\n isEven() {\n return this.position % 2 === 0;\n }\n isOdd() {\n return this.position % 2 === 1;\n }\n equals(entity) {\n return this.id === entity.id && this.getVersion() === entity.getVersion();\n }\n equalsById(id) {\n return this.id === id;\n }\n}\nclass ItemEntity extends Entity {\n sourceItem; // tODO\n version;\n position;\n constructor(id, sourceItem, position, version = 0) {\n super(id);\n this.sourceItem = sourceItem;\n this.position = position;\n this.version = version;\n }\n getSourceItem() {\n return this.sourceItem;\n }\n getVersion() {\n return this.version;\n }\n getPosition() {\n return this.position;\n }\n bumpVersion() {\n this.version += 1;\n }\n setPosition(position) {\n this.position = position;\n }\n clone() {\n const rawData = {\n ...this.sourceItem\n };\n return new ItemEntity(this.getId(), rawData, this.version);\n }\n}\nclass ItemFactory {\n create(source) {\n if (Array.isArray(source)) {\n return this.createItems(source);\n } else {\n return this.createItem(source);\n }\n }\n createItems(source) {\n return source.map(source => this.createItem(source));\n }\n createItem(originItem) {\n if (originItem instanceof ItemEntity) {\n return new Item(originItem.sourceItem, originItem.getPosition(), originItem.getId().toString(), originItem.getVersion());\n } else {\n return new Item(originItem, 0);\n }\n }\n}\nclass SetConfigSearchingCommand extends StructureCommand {\n searchConfig;\n constructor(structureId, searchConfig) {\n super(structureId, 'SetConfigSearchingCommand');\n this.searchConfig = searchConfig;\n }\n getConfig() {\n return this.searchConfig;\n }\n}\nclass ConfigSearchingSetEvent extends StructureDomainEvent {\n enabled;\n constructor(aggregateId, enabled) {\n super(aggregateId, enabled, 'ConfigSearchingSetEvent');\n this.enabled = enabled;\n }\n isEnabled() {\n return this.enabled;\n }\n}\nclass SetConfigSearchingCommandHandler {\n domainEventPublisher = CoreContainer.resolve(DomainEventPublisher);\n forCommand() {\n return SetConfigSearchingCommand;\n }\n handle(aggregate, command) {\n const searchingConfig = command.getConfig();\n aggregate.setSearchingConfig(searchingConfig);\n }\n publish(aggregate, command) {\n const searchingConfig = command.getConfig();\n this.domainEventPublisher.publish(new ConfigSearchingSetEvent(command.getAggregateId(), searchingConfig.enabled));\n }\n}\nclass SetSearchPhraseCommand extends StructureCommand {\n phrase;\n initial;\n constructor(structureId, phrase, initial) {\n super(structureId, 'SetSearchPhraseCommand');\n this.phrase = phrase;\n this.initial = initial;\n }\n getPhrase() {\n return this.phrase;\n }\n isInitial() {\n return this.initial;\n }\n}\nclass SearchPhraseSetDomainEvent extends StructureDomainEvent {\n phrase;\n initial;\n constructor(aggregateId, phrase, initial) {\n super(aggregateId, {\n phrase,\n initial\n }, 'SearchPhraseSetDomainEvent');\n this.phrase = phrase;\n this.initial = initial;\n }\n getPhrase() {\n return this.phrase;\n }\n isInitial() {\n return this.initial;\n }\n}\nclass OriginSetEvent extends StructureDomainEvent {\n origin;\n constructor(aggregateId, origin) {\n super(aggregateId, origin, 'OriginSetEvent');\n this.origin = origin;\n }\n getOrigin() {\n return this.origin;\n }\n}\nclass StructureSummariesChangedEvent extends StructureDomainEvent {\n values;\n constructor(structureId, values) {\n super(structureId, values, 'StructureSummariesChangedEvent');\n this.values = values;\n }\n getSummaries() {\n return this.values;\n }\n}\nclass StructurePreparedEntitiesSetEvent extends StructureDomainEvent {\n preparedItems;\n constructor(aggregateId, preparedItems) {\n super(aggregateId, preparedItems, 'StructurePreparedEntitiesSetEvent');\n this.preparedItems = preparedItems;\n }\n getPreparedItems() {\n return this.preparedItems;\n }\n}\nclass SourceDomainEventPublisher {\n domainEventPublisher = CoreContainer.resolve(DomainEventPublisher);\n publish(events) {\n events.forEach(event => {\n this.publishEvent(event);\n });\n }\n publishEvent(event) {\n if (event.getType() === 'StructureOriginChangedAggregateEvent') {\n const structureOriginChangedAggregateEvent = event;\n const domainEvent = new OriginSetEvent(structureOriginChangedAggregateEvent.getAggregateId(), structureOriginChangedAggregateEvent.getOrigin());\n this.domainEventPublisher.publish(domainEvent);\n }\n if (event.getType() === 'StructureSourceItemEditedAggregateEvent') {\n const structureSourceItemEditedAggregateEvent = event;\n const domainEvent = new StructureSourceItemEditedEvent(structureSourceItemEditedAggregateEvent.getAggregateId(), structureSourceItemEditedAggregateEvent.getBeforeItem(), structureSourceItemEditedAggregateEvent.getAfterItem());\n this.domainEventPublisher.publish(domainEvent);\n }\n if (event.getType() === 'StructureSummariesChangedAggregateEvent') {\n const structureSummariesChangedAggregateEvent = event;\n const domainEvent = new StructureSummariesChangedEvent(structureSummariesChangedAggregateEvent.getAggregateId(), structureSummariesChangedAggregateEvent.getSummaries());\n this.domainEventPublisher.publish(domainEvent);\n }\n if (event.getType() === 'StructurePreparedEntitiesSetAggregateEvent') {\n const structurePreparedEntitiesSetAggregateEvent = event;\n const domainEvent = new StructurePreparedEntitiesSetEvent(structurePreparedEntitiesSetAggregateEvent.getAggregateId(), structurePreparedEntitiesSetAggregateEvent.getPreparedItems());\n this.domainEventPublisher.publish(domainEvent);\n }\n if (event.getType() === 'UniqueFilterCalculatedAggregateEvent') {\n const uniqueFilterCalculatedAggregateEvent = event;\n const domainEvent = uniqueFilterCalculatedAggregateEvent.toDomainEvent();\n this.domainEventPublisher.publish(domainEvent);\n }\n }\n}\nclass StructureSetSearchPhraseCommandHandler {\n structureSourceDomainEventPublisher;\n domainEventPublisher = CoreContainer.resolve(DomainEventPublisher);\n constructor(structureSourceDomainEventPublisher) {\n this.structureSourceDomainEventPublisher = structureSourceDomainEventPublisher;\n }\n static services = [SourceDomainEventPublisher];\n forCommand() {\n return SetSearchPhraseCommand;\n }\n handle(aggregate, command) {\n const phrase = command.getPhrase();\n aggregate.addSearchPhrase(phrase);\n }\n publish(aggregate, command) {\n const phrase = command.getPhrase(),\n initial = command.isInitial();\n this.domainEventPublisher.publish(new SearchPhraseSetDomainEvent(command.getAggregateId(), phrase, initial));\n this.structureSourceDomainEventPublisher.publish(aggregate.getEvents());\n }\n}\nclass SearchManager {\n searchFields = [];\n searchPhrase;\n enabledDataTypes = [DataType.STRING];\n addSearchPhrase(fields, searchPhrase) {\n if (!searchPhrase) {\n this.searchFields = [];\n return;\n }\n const searchableFields = fields.filter(field => {\n return this.enabledDataTypes.some(dt => dt === field.getDataType());\n });\n if (searchableFields.length === 0) {\n return;\n }\n this.searchFields = searchableFields;\n this.searchPhrase = searchPhrase;\n }\n removeSearchFilters() {\n this.searchFields = [];\n }\n search(entities) {\n if (entities.length === 0 || this.searchFields.length === 0) {\n return entities;\n }\n const searchedItems = new Set();\n for (let i = 0; i < entities.length; i += 1) {\n this.searchFields.filter(field => field.search(entities[i], this.searchPhrase)).forEach(() => {\n searchedItems.add(entities[i]);\n });\n }\n return Array.from(searchedItems);\n }\n}\nclass SearchManagerFactory {\n create() {\n return new SearchManager();\n }\n}\nclass SearchHighlightArchive extends AggregateArchive {\n static HIGHLIGHTING = true;\n constructor() {\n super(SearchHighlightArchive.HIGHLIGHTING);\n }\n}\nclass SearchPlaceholderArchive extends AggregateArchive {\n static PLACEHOLDER = 'Search...';\n constructor() {\n super(SearchPlaceholderArchive.PLACEHOLDER);\n }\n}\nclass SearchDispatcher {\n commandDispatcher;\n searchHighlightArchive;\n searchPlaceholderArchive;\n constructor(commandDispatcher, searchHighlightArchive, searchPlaceholderArchive) {\n this.commandDispatcher = commandDispatcher;\n this.searchHighlightArchive = searchHighlightArchive;\n this.searchPlaceholderArchive = searchPlaceholderArchive;\n }\n static services = [CommandDispatcher, SearchHighlightArchive, SearchPlaceholderArchive];\n setSearchingConfig(config, structureId) {\n if (config.highlighting !== undefined && config.highlighting !== null) {\n this.searchHighlightArchive.next(structureId, config.highlighting);\n }\n if (config.placeholder !== undefined && config.placeholder !== null) {\n this.searchPlaceholderArchive.next(structureId, config.placeholder);\n }\n if (config.phrase !== undefined && config.phrase !== null) {\n this.searchOnInit(config.phrase, structureId);\n }\n this.commandDispatcher.dispatch(new SetConfigSearchingCommand(structureId, config));\n }\n search(phrase, structureId) {\n this.commandDispatcher.dispatch(new SetSearchPhraseCommand(structureId, phrase, false));\n }\n searchOnInit(phrase, structureId) {\n this.commandDispatcher.dispatch(new SetSearchPhraseCommand(structureId, phrase, true));\n }\n}\nclass SearchPhraseArchive extends AggregateArchive {\n static SEARCH_PHRASE = '';\n constructor() {\n super(SearchPhraseArchive.SEARCH_PHRASE);\n }\n}\nclass SearchPhraseSetEventHandler {\n searchPhraseRepository;\n constructor(searchPhraseRepository) {\n this.searchPhraseRepository = searchPhraseRepository;\n }\n static services = [SearchPhraseArchive];\n forEvent() {\n return SearchPhraseSetDomainEvent;\n }\n handle(event) {\n if (event.ofMessageType('SearchPhraseSetDomainEvent')) {\n this.searchPhraseRepository.next(event.getAggregateId(), event.getPhrase());\n }\n }\n}\nclass SearchingEnabledArchive extends AggregateArchive {\n static ENABLED = false;\n constructor() {\n super(SearchingEnabledArchive.ENABLED);\n }\n}\nclass ConfigSearchingSetEventHandler {\n searchingEnabledArchive;\n constructor(searchingEnabledArchive) {\n this.searchingEnabledArchive = searchingEnabledArchive;\n }\n static services = [SearchingEnabledArchive];\n forEvent() {\n return ConfigSearchingSetEvent;\n }\n handle(event) {\n if (event.ofMessageType('ConfigSearchingSetEvent')) {\n this.searchingEnabledArchive.next(event.getAggregateId(), event.isEnabled());\n }\n }\n}\nclass RemoveSearchPhraseCommand extends StructureCommand {\n constructor(structureId) {\n super(structureId, 'RemoveSearchPhraseCommand');\n }\n}\nclass RemoveSearchPhraseCommandHandler {\n domainEventPublisher = CoreContainer.resolve(DomainEventPublisher);\n forCommand() {\n return RemoveSearchPhraseCommand;\n }\n handle(aggregate, command) {\n aggregate.removeSearchPhrase();\n }\n publish(aggregate, command) {\n this.domainEventPublisher.publish(new FilterToggledEvent(command.getAggregateId()));\n }\n}\nclass SearchDomainModule {\n defineAggregate() {\n return null;\n }\n registerKey() {\n return structureKey;\n }\n registerProviders(container) {\n container.provide(SearchManagerFactory);\n container.provide(SearchDispatcher);\n }\n registerCommandHandlers() {\n return [SetConfigSearchingCommandHandler, StructureSetSearchPhraseCommandHandler, RemoveSearchPhraseCommandHandler];\n }\n registerDomainEventHandler() {\n return [SearchPhraseSetEventHandler, ConfigSearchingSetEventHandler];\n }\n registerMultiDomainEventHandler() {\n return [];\n }\n}\nclass SearchDomainWarehouse extends SearchWarehouse {\n searchingEnabledArchive;\n searchPhraseArchive;\n searchHighlightArchive;\n searchPlaceholderArchive;\n constructor(searchingEnabledArchive, searchPhraseArchive, searchHighlightArchive, searchPlaceholderArchive) {\n super();\n this.searchingEnabledArchive = searchingEnabledArchive;\n this.searchPhraseArchive = searchPhraseArchive;\n this.searchHighlightArchive = searchHighlightArchive;\n this.searchPlaceholderArchive = searchPlaceholderArchive;\n }\n static services = [SearchingEnabledArchive, SearchPhraseArchive, SearchHighlightArchive, SearchPlaceholderArchive];\n onSearchEnabled(structureId) {\n return this.searchingEnabledArchive.on(structureId);\n }\n onPhrase(structureId) {\n return this.searchPhraseArchive.on(structureId);\n }\n onHighlight(structureId) {\n return this.searchHighlightArchive.on(structureId);\n }\n onPlaceholder(structureId) {\n return this.searchPlaceholderArchive.on(structureId);\n }\n}\nclass SearchDomainEventRepository extends SearchEventRepository {\n constructor() {\n super();\n }\n onSearchPhrase(structureId) {\n return this.onEvent(structureId, SearchPhraseSetDomainEvent).pipe(hermesFilter(event => event.isInitial() === false), hermesMap(event => event.getPhrase()), hermesFilter(phrase => phrase !== null));\n }\n}\nclass SearchDomainPublisher extends SearchPublisher {\n searchDispatcher;\n constructor(searchDispatcher) {\n super();\n this.searchDispatcher = searchDispatcher;\n }\n static services = [SearchDispatcher];\n setSearchingConfig(config, structureId) {\n this.searchDispatcher.setSearchingConfig(config, structureId);\n }\n search(phrase, structureId) {\n this.searchDispatcher.search(phrase, structureId);\n }\n}\nclass SearchApiModule {\n registerProviders(container) {\n container.provide(SearchPublisher, SearchDomainPublisher);\n container.provide(SearchWarehouse, SearchDomainWarehouse);\n container.provide(SearchEventRepository, SearchDomainEventRepository);\n container.provide(SearchPhraseArchive);\n container.provide(SearchHighlightArchive);\n container.provide(SearchPlaceholderArchive);\n container.provide(SearchingEnabledArchive);\n }\n}\nfunction initializeSearch() {\n new DomainInitializer(new SearchApiModule(), new SearchDomainModule()).init();\n}\ninitializeSearch();\nfunction provideSearchCommandInvoker() {\n return CoreContainer.resolve(SearchPublisher);\n}\nfunction provideSearchWarehouse() {\n return CoreContainer.resolve(SearchWarehouse);\n}\nfunction provideSearchEventRepository() {\n return CoreContainer.resolve(SearchEventRepository);\n}\nclass SearchFeatureModule extends FeatureModule {\n static forComponent() {\n return [];\n }\n static ɵfac = /* @__PURE__ */(() => {\n let ɵSearchFeatureModule_BaseFactory;\n return function SearchFeatureModule_Factory(t) {\n return (ɵSearchFeatureModule_BaseFactory || (ɵSearchFeatureModule_BaseFactory = i0.ɵɵgetInheritedFactory(SearchFeatureModule)))(t || SearchFeatureModule);\n };\n })();\n static ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: SearchFeatureModule\n });\n static ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n providers: [{\n provide: SearchPublisher,\n useFactory: provideSearchCommandInvoker\n }, {\n provide: SearchWarehouse,\n useFactory: provideSearchWarehouse\n }, {\n provide: SearchEventRepository,\n useFactory: provideSearchEventRepository\n }],\n imports: [CommonModule, FabricModule, ReactiveFormsModule, GuiTemplateModule]\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(SearchFeatureModule, [{\n type: NgModule,\n args: [{\n imports: [CommonModule, FabricModule, ReactiveFormsModule, GuiTemplateModule],\n declarations: [SearchIconComponent, SearchComponent],\n exports: [SearchIconComponent, SearchComponent],\n providers: [{\n provide: SearchPublisher,\n useFactory: provideSearchCommandInvoker\n }, {\n provide: SearchWarehouse,\n useFactory: provideSearchWarehouse\n }, {\n provide: SearchEventRepository,\n useFactory: provideSearchEventRepository\n }]\n }]\n }], null, null);\n})();\nclass StructureTopPanelModule {\n static ɵfac = function StructureTopPanelModule_Factory(t) {\n return new (t || StructureTopPanelModule)();\n };\n static ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: StructureTopPanelModule\n });\n static ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [CommonModule, ReactiveFormsModule, FilterMenuFeatureModule, SearchFeatureModule]\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(StructureTopPanelModule, [{\n type: NgModule,\n args: [{\n imports: [CommonModule, ReactiveFormsModule, FilterMenuFeatureModule, SearchFeatureModule],\n declarations: [StructureTopPanelComponent],\n exports: [StructureTopPanelComponent]\n }]\n }], null, null);\n})();\nclass UniqueValueListModule extends FeatureModule {\n static forComponent() {\n return [];\n }\n static ɵfac = /* @__PURE__ */(() => {\n let ɵUniqueValueListModule_BaseFactory;\n return function UniqueValueListModule_Factory(t) {\n return (ɵUniqueValueListModule_BaseFactory || (ɵUniqueValueListModule_BaseFactory = i0.ɵɵgetInheritedFactory(UniqueValueListModule)))(t || UniqueValueListModule);\n };\n })();\n static ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: UniqueValueListModule\n });\n static ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [CommonModule, fabricImports, GuiTemplateModule, FilterFeatureModule]\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(UniqueValueListModule, [{\n type: NgModule,\n args: [{\n imports: [CommonModule, fabricImports, GuiTemplateModule, FilterFeatureModule],\n declarations: [UniqueValueListComponent],\n exports: [UniqueValueListComponent]\n }]\n }], null, null);\n})();\nconst icon$1 = [StructureColumnMenuIconComponent];\nclass StructureMenuIconModule {\n static ɵfac = function StructureMenuIconModule_Factory(t) {\n return new (t || StructureMenuIconModule)();\n };\n static ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: StructureMenuIconModule\n });\n static ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({});\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(StructureMenuIconModule, [{\n type: NgModule,\n args: [{\n declarations: icon$1,\n exports: icon$1\n }]\n }], null, null);\n})();\nconst icon = [StructureArrowIconComponent];\nclass StructureArrowIconModule {\n static ɵfac = function StructureArrowIconModule_Factory(t) {\n return new (t || StructureArrowIconModule)();\n };\n static ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: StructureArrowIconModule\n });\n static ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({});\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(StructureArrowIconModule, [{\n type: NgModule,\n args: [{\n declarations: icon,\n exports: icon\n }]\n }], null, null);\n})();\nconst declarations$2 = [StructureColumnConfigComponent, StructureColumnConfigTriggerComponent, StructureColumnConfigSortComponent, StructureColumnConfigColumnHideComponent, StructureColumnConfigColumnMoveComponent];\nconst icons$1 = [StructureMenuIconModule, StructureArrowIconModule];\nclass StructureColumnMenuModule {\n static ɵfac = function StructureColumnMenuModule_Factory(t) {\n return new (t || StructureColumnMenuModule)();\n };\n static ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: StructureColumnMenuModule\n });\n static ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [CommonModule, fabricImports, GuiTemplateModule, StructureColumnManagerModule, UniqueValueListModule, TranslationFeatureModule, icons$1]\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(StructureColumnMenuModule, [{\n type: NgModule,\n args: [{\n imports: [CommonModule, fabricImports, GuiTemplateModule, StructureColumnManagerModule, UniqueValueListModule, TranslationFeatureModule, icons$1],\n declarations: declarations$2,\n exports: declarations$2\n }]\n }], null, null);\n})();\nclass StructureCellEditComponent extends SmartComponent {\n changeDetectorRef;\n structureId;\n sourceCommandService;\n cellContainerRef;\n entity;\n cell;\n editContext;\n valueChanges$;\n status$;\n actualValue;\n constructor(changeDetectorRef, elementRef, structureId, sourceCommandService) {\n super(changeDetectorRef, elementRef);\n this.changeDetectorRef = changeDetectorRef;\n this.structureId = structureId;\n this.sourceCommandService = sourceCommandService;\n }\n ngOnChanges(changes) {\n ifChanged(changes.entity, () => {\n this.initEditContext();\n });\n ifChanged(changes.cell, () => {\n this.initEditContext();\n });\n }\n ngOnInit() {\n this.initEditContext();\n }\n submitChangesAndExit() {\n const itemId = this.entity.getId(),\n updatedValue = this.actualValue,\n fieldId = this.cell.columnFieldId;\n this.sourceCommandService.editItem(new StructureEditSourceItemParams(itemId, fieldId, updatedValue), this.structureId);\n }\n getSelectorName() {\n return 'gui-structure-cell-edit';\n }\n initEditContext() {\n this.valueChanges$ = new ChangedValueEmitter();\n this.status$ = new ChangedValueEmitter();\n this.editContext = {\n status: this.status$,\n valueChanges: this.valueChanges$,\n value: this.cell.getValue(this.entity),\n focus: false,\n parent: this.cellContainerRef\n };\n this.status$.on().pipe(this.takeUntil()).subscribe(status => {\n switch (status) {\n case EditEventType.SUBMIT:\n this.submitChangesAndExit();\n this.publishEditSubmit();\n break;\n case EditEventType.CANCEL:\n // this.exitEditMode();\n this.publishEditCancel();\n break;\n default:\n break;\n }\n });\n }\n observeValueChanges() {\n this.valueChanges$.on().pipe(this.takeUntil()).subscribe(value => {\n this.actualValue = value;\n });\n }\n publishEditState(state) {\n // this.structureCellEditStore.next(state);\n }\n publishEditEnter() {\n this.publishEditState(StructureCellEditState.ENTER);\n }\n publishEditCancel() {\n this.publishEditState(StructureCellEditState.CANCEL);\n }\n publishEditSubmit() {\n this.publishEditState(StructureCellEditState.SUBMIT);\n }\n static ɵfac = function StructureCellEditComponent_Factory(t) {\n return new (t || StructureCellEditComponent)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(StructureId), i0.ɵɵdirectiveInject(SourcePublisher));\n };\n static ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: StructureCellEditComponent,\n selectors: [[\"div\", \"gui-structure-cell-edit\", \"\", \"entity\", \"\", \"cell\", \"\"]],\n viewQuery: function StructureCellEditComponent_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(_c66, 7, ElementRef);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.cellContainerRef = _t.first);\n }\n },\n inputs: {\n entity: \"entity\",\n cell: \"cell\"\n },\n features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature],\n attrs: _c91,\n decls: 3,\n vars: 2,\n consts: [[\"cellContainer\", \"\"], [4, \"ngTemplateOutlet\", \"ngTemplateOutletContext\"]],\n template: function StructureCellEditComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"span\", null, 0);\n i0.ɵɵtemplate(2, StructureCellEditComponent_ng_container_2_Template, 1, 0, \"ng-container\", 1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx.cell.editTemplate)(\"ngTemplateOutletContext\", ctx.editContext);\n }\n },\n dependencies: [i4.NgTemplateOutlet],\n encapsulation: 2,\n changeDetection: 0\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(StructureCellEditComponent, [{\n type: Component,\n args: [{\n selector: 'div[gui-structure-cell-edit][entity][cell]',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n template: \"\\n\\t\\n\\t\\n\\n\"\n }]\n }], () => [{\n type: i0.ChangeDetectorRef\n }, {\n type: i0.ElementRef\n }, {\n type: StructureId\n }, {\n type: SourcePublisher\n }], {\n cellContainerRef: [{\n type: ViewChild,\n args: ['cellContainer', {\n read: ElementRef,\n static: true\n }]\n }],\n entity: [{\n type: Input\n }],\n cell: [{\n type: Input\n }]\n });\n})();\nclass EmptySourceFeatureModule extends FeatureModule {\n static forComponent() {\n return [];\n }\n static ɵfac = /* @__PURE__ */(() => {\n let ɵEmptySourceFeatureModule_BaseFactory;\n return function EmptySourceFeatureModule_Factory(t) {\n return (ɵEmptySourceFeatureModule_BaseFactory || (ɵEmptySourceFeatureModule_BaseFactory = i0.ɵɵgetInheritedFactory(EmptySourceFeatureModule)))(t || EmptySourceFeatureModule);\n };\n })();\n static ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: EmptySourceFeatureModule\n });\n static ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [CommonModule, TranslationFeatureModule]\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(EmptySourceFeatureModule, [{\n type: NgModule,\n args: [{\n imports: [CommonModule, TranslationFeatureModule],\n declarations: [EmptySourceComponent],\n exports: [EmptySourceComponent]\n }]\n }], null, null);\n})();\nclass ToggleSortCommand extends StructureCommand {\n compositionId;\n fieldId;\n constructor(structureId, compositionId, fieldId) {\n super(structureId, 'ToggleSortCommand');\n this.compositionId = compositionId;\n this.fieldId = fieldId;\n }\n getCompositionId() {\n return this.compositionId;\n }\n getFieldId() {\n return this.fieldId;\n }\n}\nclass ToggleSortCommandHandler {\n domainEventPublisher = CoreContainer.resolve(DomainEventPublisher);\n forCommand() {\n return ToggleSortCommand;\n }\n handle(structure, command) {\n const aggregateId = command.getAggregateId(),\n compositionId = command.getCompositionId(),\n fieldId = command.getFieldId();\n const sorters = structure.toggleSort(fieldId);\n this.publishSortEvent(aggregateId, compositionId, fieldId, sorters);\n }\n publish(aggregate, command) {}\n publishSortEvent(aggregateId, compositionId, fieldId, sorters) {\n const directions = sorters.map(sorter => {\n return {\n direction: sorter.hasDirection(),\n fieldId: sorter.getField().getId()\n };\n });\n this.domainEventPublisher.publish(new SortToggledEvent(aggregateId, compositionId, directions));\n }\n}\nclass SetSortingCommand extends StructureCommand {\n sortingConfig;\n constructor(structureId, sortingConfig) {\n super(structureId, 'SetSortingCommand');\n this.sortingConfig = sortingConfig;\n }\n getSortingConfig() {\n return this.sortingConfig;\n }\n}\nclass SortingSetEvent extends StructureDomainEvent {\n constructor(aggregateId) {\n super(aggregateId, null, 'SortingSetEvent');\n }\n}\nclass SetSortingCommandHandler {\n domainEventPublisher = CoreContainer.resolve(DomainEventPublisher);\n forCommand() {\n return SetSortingCommand;\n }\n handle(aggregate, command) {\n const sortingConfig = command.getSortingConfig();\n aggregate.setSortingConfig(sortingConfig);\n }\n publish(aggregate, command) {\n this.domainEventPublisher.publish(new SortingSetEvent(command.getAggregateId()));\n }\n}\nclass SetSortOrderCommand extends StructureCommand {\n compositionId;\n fieldId;\n sortOrder;\n constructor(structureId, compositionId, fieldId, sortOrder) {\n super(structureId, 'SetSortOrderCommand');\n this.compositionId = compositionId;\n this.fieldId = fieldId;\n this.sortOrder = sortOrder;\n }\n getCompositionId() {\n return this.compositionId;\n }\n getFieldId() {\n return this.fieldId;\n }\n getSortOrder() {\n return this.sortOrder;\n }\n}\nclass SetSortOrderCommandHandler {\n domainEventPublisher = CoreContainer.resolve(DomainEventPublisher);\n forCommand() {\n return SetSortOrderCommand;\n }\n handle(structure, command) {\n const structureId = command.getAggregateId(),\n compositionId = command.getCompositionId(),\n fieldId = command.getFieldId(),\n sortOrder = command.getSortOrder();\n const sorters = structure.setSortOrder(fieldId, sortOrder);\n this.publishSortEvent(structureId, compositionId, fieldId, sorters);\n }\n publish(aggregate, command) {}\n publishSortEvent(aggregateId, compositionId, fieldId, sorters) {\n const directions = sorters.map(sorter => {\n return {\n direction: sorter.hasDirection(),\n fieldId: sorter.getField().getId()\n };\n });\n this.domainEventPublisher.publish(new SortOrderSetEvent(aggregateId, compositionId, directions));\n }\n}\nclass SortingDispatcher {\n commandDispatcher = CoreContainer.resolve(CommandDispatcher);\n setSortingConfig(config, structureId) {\n this.commandDispatcher.dispatch(new SetSortingCommand(structureId, config));\n }\n toggleSort(fieldId, compositionId, structureId) {\n this.commandDispatcher.dispatch(new ToggleSortCommand(structureId, compositionId, fieldId));\n }\n setSortOrder(fieldId, sortOrder, compositionId, structureId) {\n this.commandDispatcher.dispatch(new SetSortOrderCommand(structureId, compositionId, fieldId, sortOrder));\n }\n}\nclass SortingDomainModule {\n defineAggregate() {\n return null;\n }\n registerKey() {\n return structureKey;\n }\n registerProviders(container) {\n container.provide(SortingDispatcher);\n }\n registerCommandHandlers() {\n return [ToggleSortCommandHandler, SetSortingCommandHandler, SetSortOrderCommandHandler];\n }\n registerDomainEventHandler() {\n return [];\n }\n registerMultiDomainEventHandler() {\n return [];\n }\n}\nclass SortingDomainPublisher extends SortingPublisher {\n sortingDispatcher;\n constructor(sortingDispatcher) {\n super();\n this.sortingDispatcher = sortingDispatcher;\n }\n static services = [SortingDispatcher];\n setSortingConfig(config, structureId) {\n this.sortingDispatcher.setSortingConfig(config, structureId);\n }\n toggleSort(fieldId, compositionId, structureId) {\n this.sortingDispatcher.toggleSort(fieldId, compositionId, structureId);\n }\n setSortOrder(fieldId, sortOrder, compositionId, structureId) {\n this.sortingDispatcher.setSortOrder(fieldId, sortOrder, compositionId, structureId);\n }\n}\nclass SortingApiModule {\n registerProviders(container) {\n container.provide(SortingPublisher, SortingDomainPublisher);\n }\n}\nfunction initializeSorting() {\n new DomainInitializer(new SortingApiModule(), new SortingDomainModule()).init();\n}\ninitializeSorting();\nfunction provideSortingCommandInvoker() {\n return CoreContainer.resolve(SortingPublisher);\n}\nclass SortingFeatureModule extends FeatureModule {\n static forComponent() {\n return [];\n }\n static ɵfac = /* @__PURE__ */(() => {\n let ɵSortingFeatureModule_BaseFactory;\n return function SortingFeatureModule_Factory(t) {\n return (ɵSortingFeatureModule_BaseFactory || (ɵSortingFeatureModule_BaseFactory = i0.ɵɵgetInheritedFactory(SortingFeatureModule)))(t || SortingFeatureModule);\n };\n })();\n static ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: SortingFeatureModule\n });\n static ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n providers: [{\n provide: SortingPublisher,\n useFactory: provideSortingCommandInvoker\n }],\n imports: [CommonModule]\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(SortingFeatureModule, [{\n type: NgModule,\n args: [{\n imports: [CommonModule],\n declarations: [],\n exports: [],\n providers: [{\n provide: SortingPublisher,\n useFactory: provideSortingCommandInvoker\n }]\n }]\n }], null, null);\n})();\nclass FieldArchive extends AggregateArchive {\n static default = [];\n constructor() {\n super(FieldArchive.default);\n }\n}\nclass FieldModel {\n id;\n dataType;\n name;\n constructor(id, dataType, name) {\n this.id = id;\n this.dataType = dataType;\n this.name = name;\n }\n getFieldId() {\n return this.id;\n }\n getId() {\n return this.id.getId();\n }\n getDataType() {\n return this.dataType;\n }\n getName() {\n return this.name;\n }\n}\nclass FieldConverter {\n convert(fields) {\n return fields.map(field => {\n return this.convertOne(field);\n });\n }\n convertOne(field) {\n return new FieldModel(field.getId(), field.getDataType(), field.getName());\n }\n}\nclass FieldCollection {\n fieldFactory;\n fields = new Map();\n constructor(fieldFactory) {\n this.fieldFactory = fieldFactory;\n }\n getField(fieldId) {\n if (fieldId === null) {\n return this.getAllFields()[0];\n }\n return this.fields.get(fieldId.getId());\n }\n getAllFieldIds() {\n return Array.from(this.fields.keys());\n }\n getAllFields() {\n return Array.from(this.fields.values());\n }\n getFieldsAsMap() {\n return this.fields;\n }\n initFields(fieldConfigs) {\n const fields = this.fieldFactory.create(fieldConfigs);\n this.clear();\n this.addFields(fields);\n }\n addFields(fields) {\n for (const field of fields) {\n this.addField(field);\n }\n }\n addField(field) {\n this.fields.set(field.getId().toString(), field);\n }\n clear() {\n this.fields.clear();\n }\n}\nclass FieldEntity extends Entity {\n id;\n field;\n name;\n constructor(id, field, name) {\n super(id);\n this.id = id;\n this.field = field;\n this.name = name;\n }\n static of(id, dataField, name) {\n return new FieldEntity(id, dataField, name);\n }\n getId() {\n return this.id;\n }\n getKey() {\n return this.getId().toString();\n }\n getDataType() {\n return this.field.getDataType();\n }\n getName() {\n return this.name;\n }\n /**\n * @deprecated\n */\n getField() {\n return this.field;\n }\n /**\n * Probably should not be used.\n *\n * @deprecated\n */\n getAccessor() {\n return this.field.getAccessor();\n }\n /**\n * Probably should not be used.\n *\n * @deprecated\n */\n getAccessorMethod() {\n return this.field.getAccessorMethod();\n }\n /**\n * Probably should not be used.\n *\n * @deprecated\n */\n getSearchAccessorMethod() {\n return this.field.getSearchAccessorMethod();\n }\n getValue(entity) {\n return this.field.getValue(entity);\n }\n getDisplayValue(value) {\n return this.field.getDisplayValue(value);\n }\n /**\n * Probably should not be used.\n *\n * @deprecated\n */\n isSummaries(type) {\n return this.field.isSummaries(type);\n }\n /**\n * Probably should not be used.\n *\n * @deprecated\n */\n isSummariesEnabled() {\n return this.field.isSummariesEnabled();\n }\n search(item, searchPhrase) {\n return this.field.search(item, searchPhrase);\n }\n filter(item, filterPhrase) {\n const value = this.field.getValue(item);\n if (this.field.getDataType() === DataType.NUMBER) {\n return this.field.filter(value, filterPhrase);\n } else if (this.field.getDataType() === DataType.BOOLEAN) {\n return this.field.filter(value, filterPhrase);\n } else if (this.field.getDataType() === DataType.STRING) {\n return this.field.filter(value, filterPhrase);\n } else if (this.field.getDataType() === DataType.DATE) {\n return this.field.filter(value, filterPhrase);\n } else {\n return true;\n }\n }\n sort(entityOne, entityTwo, direction) {\n const valueOne = direction ? this.field.getSortValue(entityOne) : this.field.getSortValue(entityTwo),\n valueTwo = direction ? this.field.getSortValue(entityTwo) : this.field.getSortValue(entityOne);\n if (this.field.getDataType() === DataType.NUMBER) {\n return this.field.sort(valueOne, valueTwo);\n } else if (this.field.getDataType() === DataType.BOOLEAN) {\n return this.field.sort(valueOne, valueTwo);\n } else if (this.field.getDataType() === DataType.STRING) {\n return this.field.sort(valueOne, valueTwo);\n } else if (this.field.getDataType() === DataType.DATE) {\n return this.field.sort(valueOne, valueTwo);\n } else {\n return 0;\n }\n }\n}\nclass BaseDataField {\n // TODO\n accessor; // (rawData: any) => any;\n dataType;\n accessorMethod;\n matchers;\n constructor(accessor, dataType, matchers) {\n this.accessor = accessor;\n this.dataType = dataType;\n this.matchers = matchers;\n if (typeof accessor === 'string') {\n this.accessorMethod = entity => entity.getSourceItem()[accessor];\n } else if (typeof accessor === 'function') {\n this.accessorMethod = entity => accessor(entity.getSourceItem());\n } else {\n this.accessorMethod = entity => entity;\n }\n }\n getDataType() {\n return this.dataType;\n }\n getAccessor() {\n return this.accessor;\n }\n getAccessorMethod() {\n return this.accessorMethod;\n }\n getMatchers() {\n return this.matchers;\n }\n getSearchAccessorMethod() {\n let matcher;\n this.matchers.getSearchMatcher().ifPresent(m => {\n matcher = m;\n });\n if (matcher) {\n return entity => {\n const val = this.accessorMethod(entity);\n return matcher(val);\n };\n } else {\n return entity => {\n return this.accessorMethod(entity);\n };\n }\n }\n getValue(entity) {\n return this.accessorMethod(entity);\n }\n getSortValue(entity) {\n let value = this.accessorMethod(entity);\n this.matchers.getSortMatcher().ifPresent(matcher => {\n value = matcher(value);\n });\n return value;\n }\n getSearchValue(entity) {\n let value = this.accessorMethod(entity);\n this.matchers.getSearchMatcher().ifPresent(matcher => {\n value = matcher(value);\n });\n return value;\n }\n}\nclass DataField extends BaseDataField {\n summariesEnabled = true;\n summariesTypes;\n possibleSummaries;\n constructor(accessor, dataType, matchers, summariesConfig) {\n super(accessor, dataType, matchers);\n this.possibleSummaries = this.assignPossibleSummaries();\n this.assignSummaries(summariesConfig);\n }\n isSummaries(type) {\n if (!this.isSummariesEnabled()) {\n return false;\n }\n return !!(this.summariesTypes & type);\n }\n isSummariesEnabled() {\n return this.summariesEnabled;\n }\n setSummariesEnabled(enabled) {\n this.summariesEnabled = enabled;\n }\n assignSummaries(summariesConfig) {\n if (!!summariesConfig && Object.keys(summariesConfig).length !== 0) {\n if (summariesConfig.enabled) {\n this.summariesEnabled = !!summariesConfig.enabled;\n }\n if (summariesConfig.summariesTypes) {\n this.summariesTypes = SummariesType.DISTINCT;\n summariesConfig.summariesTypes.forEach(t => {\n this.summariesTypes |= t;\n });\n } else {\n this.summariesTypes = this.assignDefaultSummaries();\n }\n } else {\n this.summariesTypes = this.assignDefaultSummaries();\n }\n }\n}\nclass UnknownDataField extends DataField {\n constructor(accessor, matchers, summariesConfig) {\n super(accessor, DataType.UNKNOWN, matchers, summariesConfig);\n }\n assignDefaultSummaries() {\n return SummariesType.DISTINCT;\n // return SummariesType.COUNT |\n // \tSummariesType.DISTINCT;\n }\n assignPossibleSummaries() {\n return SummariesType.COUNT | SummariesType.DISTINCT;\n }\n search(item, searchPhrase) {\n return false;\n }\n sort(one, two) {\n return 0;\n }\n filter(value, filterPhrase) {\n return false;\n }\n equals(item, value) {\n return false;\n }\n getDisplayValue(item) {\n return item;\n }\n}\nclass NumberDataField extends DataField {\n constructor(accessor, matchers, summariesConfig) {\n super(accessor, DataType.NUMBER, matchers, summariesConfig);\n }\n getField() {\n return this;\n }\n assignDefaultSummaries() {\n return SummariesType.DISTINCT;\n // return SummariesType.COUNT |\n // \tSummariesType.DISTINCT |\n // \tSummariesType.SUM |\n // \tSummariesType.MIN |\n // \tSummariesType.MAX |\n // \tSummariesType.AVERAGE |\n // \tSummariesType.MEDIAN;\n }\n assignPossibleSummaries() {\n return SummariesType.COUNT | SummariesType.DISTINCT | SummariesType.SUM | SummariesType.MIN | SummariesType.MAX | SummariesType.AVERAGE | SummariesType.MEDIAN;\n }\n search(item, searchPhrase) {\n return false;\n }\n sort(numOne, numTwo) {\n const sureNumOne = +numOne,\n sureNumTwo = +numTwo;\n return sureNumOne - sureNumTwo;\n }\n filter(value, filterPhrase) {\n return value > filterPhrase;\n }\n equals(item, value) {\n return this.getValue(item) === value;\n }\n getDisplayValue(item) {\n return `${item}`;\n }\n}\nclass StringDataField extends DataField {\n constructor(accessor, matchers, summariesConfig) {\n super(accessor, DataType.STRING, matchers, summariesConfig);\n }\n assignDefaultSummaries() {\n return SummariesType.DISTINCT;\n // return SummariesType.COUNT |\n // \tSummariesType.DISTINCT;\n }\n assignPossibleSummaries() {\n return SummariesType.COUNT | SummariesType.DISTINCT;\n }\n search(item, searchPhrase) {\n const value = this.getSearchValue(item);\n if (typeof value === 'string') {\n return value.toLowerCase().indexOf(searchPhrase.toLowerCase()) > -1;\n } else {\n return false;\n }\n }\n sort(strOne, strTwo) {\n const sureStrOne = '' + strOne,\n sureStrTwo = '' + strTwo;\n return sureStrOne.localeCompare(sureStrTwo);\n }\n filter(value, filterPhrase) {\n return value.toLowerCase().indexOf(filterPhrase.toLowerCase()) > -1;\n }\n equals(item, value) {\n return this.getValue(item) === value;\n }\n getDisplayValue(item) {\n return item;\n }\n}\nclass BooleanDataField extends DataField {\n constructor(accessor, matchers, summariesConfig) {\n super(accessor, DataType.BOOLEAN, matchers, summariesConfig);\n }\n assignDefaultSummaries() {\n return SummariesType.DISTINCT;\n // return SummariesType.COUNT |\n // \tSummariesType.DISTINCT |\n // \tSummariesType.TRUTHY |\n // \tSummariesType.FALSY;\n }\n assignPossibleSummaries() {\n return SummariesType.COUNT | SummariesType.DISTINCT | SummariesType.TRUTHY | SummariesType.FALSY;\n }\n search(item, searchPhrase) {\n return false;\n }\n sort(booleanOne, booleanTwo) {\n const sureBoolOne = !!booleanOne,\n sureBoolTwo = !!booleanTwo;\n return sureBoolOne === sureBoolTwo ? 0 : sureBoolTwo ? -1 : 1;\n }\n filter(value, filterPhrase) {\n return value === filterPhrase;\n }\n equals(item, value) {\n return this.getValue(item) === value;\n }\n getDisplayValue(item) {\n return item ? 'True' : 'False';\n }\n}\nclass DateDataField extends DataField {\n constructor(accessor, matchers, summariesConfig) {\n super(accessor, DataType.DATE, matchers, summariesConfig);\n }\n assignDefaultSummaries() {\n return SummariesType.DISTINCT;\n // return SummariesType.COUNT |\n // \tSummariesType.DISTINCT;\n }\n assignPossibleSummaries() {\n return SummariesType.COUNT | SummariesType.DISTINCT;\n }\n search(item, searchPhrase) {\n return false;\n }\n sort(dateOne, dateTwo) {\n return dateOne - dateTwo;\n }\n filter(value, filterPhrase) {\n return false;\n }\n equals(item, value) {\n return this.getValue(item).getTime() === value.getTime();\n }\n getDisplayValue(item) {\n return item.toDateString();\n }\n}\nclass FieldMatchers {\n matcher;\n sortMatcher;\n searchMatcher;\n constructor(matcher, sortMatcher, searchMatcher) {\n this.matcher = matcher;\n this.sortMatcher = sortMatcher;\n this.searchMatcher = searchMatcher;\n }\n getMatcher() {\n return Optional.of(this.matcher);\n }\n getSortMatcher() {\n let matcher;\n if (this.sortMatcher) {\n matcher = this.sortMatcher;\n }\n if (this.matcher) {\n matcher = this.matcher;\n }\n return Optional.of(matcher);\n }\n getSearchMatcher() {\n let matcher;\n if (this.searchMatcher) {\n matcher = this.searchMatcher;\n }\n if (this.matcher) {\n matcher = this.matcher;\n }\n return Optional.of(matcher);\n }\n}\nclass DataFieldFactory {\n create(fieldConfig) {\n const fieldMatchers = this.createMatchers(fieldConfig);\n let columnType = fieldConfig.type;\n if (columnType === undefined) {\n columnType = DataType.STRING;\n }\n if (columnType === DataType.UNKNOWN) {\n return new UnknownDataField(fieldConfig.field, fieldMatchers, fieldConfig.summaries);\n }\n if (columnType === DataType.NUMBER) {\n return new NumberDataField(fieldConfig.field, fieldMatchers, fieldConfig.summaries);\n }\n if (columnType === DataType.STRING) {\n return new StringDataField(fieldConfig.field, fieldMatchers);\n }\n if (columnType === DataType.BOOLEAN) {\n return new BooleanDataField(fieldConfig.field, fieldMatchers);\n }\n if (columnType === DataType.DATE) {\n return new DateDataField(fieldConfig.field, fieldMatchers);\n }\n return new UnknownDataField(fieldConfig.field, fieldMatchers, fieldConfig.summaries);\n }\n createMatchers(fieldConfig) {\n const matcher = fieldConfig.matcher;\n let sortMatcher;\n if (fieldConfig.sorting) {\n sortMatcher = fieldConfig.sorting.matcher;\n }\n return new FieldMatchers(matcher, sortMatcher);\n }\n}\nclass FieldEntityIdGenerator {\n generateId() {\n const id = RandomStringGenerator.generate();\n return new FieldId(id);\n }\n}\nclass FieldEntityFactory {\n fieldIdGenerator;\n dataFieldFactory;\n constructor(fieldIdGenerator, dataFieldFactory) {\n this.fieldIdGenerator = fieldIdGenerator;\n this.dataFieldFactory = dataFieldFactory;\n }\n static services = [FieldEntityIdGenerator, DataFieldFactory];\n create(configs) {\n if (!configs) {\n return [];\n }\n return configs.map((fieldConfig, index) => {\n const fieldId = this.fieldIdGenerator.generateId(),\n dataField = this.dataFieldFactory.create(fieldConfig);\n return new FieldEntity(fieldId, dataField, this.getFieldName(fieldConfig, index));\n });\n }\n getFieldName(fieldConfig, index) {\n if (typeof fieldConfig.field === 'string') {\n return fieldConfig.field.toLowerCase();\n } else {\n return 'Field #' + index;\n }\n }\n}\nclass FieldCollectionFactory {\n fieldFactory;\n constructor(fieldFactory) {\n this.fieldFactory = fieldFactory;\n }\n static services = [FieldEntityFactory];\n create() {\n return new FieldCollection(this.fieldFactory);\n }\n}\nclass InitFieldsCommandHandler {\n forCommand() {\n return InitFieldsCommand;\n }\n handle(structure, command) {\n const fieldConfigs = command.getFieldConfigs();\n structure.createFields(fieldConfigs);\n }\n}\nclass FieldsInitedEventHandler {\n fieldArchive;\n fieldConverter;\n constructor(fieldArchive, fieldConverter) {\n this.fieldArchive = fieldArchive;\n this.fieldConverter = fieldConverter;\n }\n static services = [FieldArchive, FieldConverter];\n forEvent() {\n return FieldsInitedEvent;\n }\n handle(event) {\n if (event.ofMessageType('FieldsInitedEvent')) {\n const fields = this.fieldConverter.convert(event.getFields());\n this.fieldArchive.next(event.getAggregateId(), fields);\n }\n }\n}\nclass FieldDomainModule {\n defineAggregate() {\n return null;\n }\n registerKey() {\n return structureKey;\n }\n registerProviders(container) {\n container.provide(FieldCollectionFactory);\n container.provide(FieldEntityFactory);\n container.provide(FieldEntityIdGenerator);\n container.provide(DataFieldFactory);\n }\n registerCommandHandlers() {\n return [InitFieldsCommandHandler];\n }\n registerDomainEventHandler() {\n return [FieldsInitedEventHandler];\n }\n registerMultiDomainEventHandler() {\n return [];\n }\n}\nclass FieldDomainWarehouse extends FieldWarehouse {\n fieldReadModelArchive;\n constructor(fieldReadModelArchive) {\n super();\n this.fieldReadModelArchive = fieldReadModelArchive;\n }\n static services = [FieldArchive];\n onFields(structureId) {\n return this.fieldReadModelArchive.on(structureId);\n }\n findFields(structureId) {\n return this.fieldReadModelArchive.find(structureId);\n }\n}\nclass FieldDomainPublisher extends FieldPublisher {\n commandDispatcher;\n constructor(commandDispatcher) {\n super();\n this.commandDispatcher = commandDispatcher;\n }\n static services = [CommandDispatcher];\n initFields(fieldConfigs, structureId) {\n this.commandDispatcher.dispatch(new InitFieldsCommand(structureId, fieldConfigs));\n }\n}\nclass FieldApiModule {\n registerProviders(container) {\n container.provide(FieldPublisher, FieldDomainPublisher);\n container.provide(FieldArchive);\n container.provide(FieldConverter);\n container.provide(FieldWarehouse, FieldDomainWarehouse);\n }\n}\nfunction initializeField() {\n new DomainInitializer(new FieldApiModule(), new FieldDomainModule()).init();\n}\ninitializeField();\nfunction provideFieldCommandInvoker() {\n return CoreContainer.resolve(FieldPublisher);\n}\nfunction provideFieldWarehouse() {\n return CoreContainer.resolve(FieldWarehouse);\n}\nclass FieldFeatureModule extends FeatureModule {\n static forComponent() {\n return [];\n }\n static ɵfac = /* @__PURE__ */(() => {\n let ɵFieldFeatureModule_BaseFactory;\n return function FieldFeatureModule_Factory(t) {\n return (ɵFieldFeatureModule_BaseFactory || (ɵFieldFeatureModule_BaseFactory = i0.ɵɵgetInheritedFactory(FieldFeatureModule)))(t || FieldFeatureModule);\n };\n })();\n static ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: FieldFeatureModule\n });\n static ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n providers: [{\n provide: FieldPublisher,\n useFactory: provideFieldCommandInvoker\n }, {\n provide: FieldWarehouse,\n useFactory: provideFieldWarehouse\n }],\n imports: [CommonModule]\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(FieldFeatureModule, [{\n type: NgModule,\n args: [{\n imports: [CommonModule],\n declarations: [],\n exports: [],\n providers: [{\n provide: FieldPublisher,\n useFactory: provideFieldCommandInvoker\n }, {\n provide: FieldWarehouse,\n useFactory: provideFieldWarehouse\n }]\n }]\n }], null, null);\n})();\nclass StructureSetSummariesEnabledCommand extends StructureCommand {\n enabled;\n constructor(structureId, enabled) {\n super(structureId, 'StructureSetSummariesEnabledCommand');\n this.enabled = enabled;\n }\n isEnabled() {\n return this.enabled;\n }\n}\nconst StructureSummariesEnabledSetEventName = 'StructureSummariesEnabledSetEvent';\nclass StructureSummariesEnabledSetEvent extends StructureDomainEvent {\n enabled;\n constructor(aggregateId, enabled) {\n super(aggregateId, enabled, StructureSummariesEnabledSetEventName);\n this.enabled = enabled;\n }\n isEnabled() {\n return this.enabled;\n }\n}\nclass StructureSetSummariesEnabledCommandHandler {\n structureSourceDomainEventPublisher;\n domainEventPublisher = CoreContainer.resolve(DomainEventPublisher);\n constructor(structureSourceDomainEventPublisher) {\n this.structureSourceDomainEventPublisher = structureSourceDomainEventPublisher;\n }\n static services = [SourceDomainEventPublisher];\n forCommand() {\n return StructureSetSummariesEnabledCommand;\n }\n handle(structure, command) {\n const enabled = command.isEnabled();\n structure.setSummariesEnabled(enabled);\n }\n publish(aggregate, command) {\n const enabled = command.isEnabled(),\n aggregateEvents = aggregate.getEvents();\n this.domainEventPublisher.publish(new StructureSummariesEnabledSetEvent(command.getAggregateId(), enabled));\n this.structureSourceDomainEventPublisher.publish(aggregateEvents);\n }\n}\nclass StructureSummariesChangedAggregateEvent extends StructureAggregateEvent {\n summarizedValues;\n constructor(aggregateId, summarizedValues) {\n super(aggregateId, 'StructureSummariesChangedAggregateEvent');\n this.summarizedValues = summarizedValues;\n }\n toDomainEvent() {\n return new StructureSummariesChangedEvent(this.getAggregateId(), this.summarizedValues);\n }\n getSummaries() {\n return this.summarizedValues;\n }\n}\nclass SummariesManager {\n calculators;\n static DEFAULT_ENABLED = false;\n structureId;\n enabled;\n values = new Map();\n constructor(structureId, calculators) {\n this.calculators = calculators;\n this.structureId = structureId;\n this.enabled = SummariesManager.DEFAULT_ENABLED;\n }\n calculate(fields, entities) {\n if (!this.enabled) {\n return [];\n }\n const calculations = new Map();\n this.calculators.forEach(calc => {\n const aggregatedValues = calc.calculate(fields, entities);\n if (aggregatedValues) {\n Array.from(aggregatedValues.keys()).forEach(key => {\n calculations.set(key, aggregatedValues.get(key));\n });\n }\n });\n if (calculations.size > 0) {\n return [new StructureSummariesChangedAggregateEvent(this.structureId, calculations)];\n } else {\n return [];\n }\n }\n setEnabled(enabled) {\n this.enabled = enabled;\n }\n add() {}\n remove() {}\n update() {}\n}\nclass SummariesEnabledArchive extends AggregateArchive {\n constructor() {\n super(SummariesManager.DEFAULT_ENABLED);\n }\n init(structureId) {\n this.next(structureId, SummariesManager.DEFAULT_ENABLED);\n }\n}\nclass StructureSummariesEnabledSetEventHandler {\n summariesEnabledArchive;\n constructor(summariesEnabledArchive) {\n this.summariesEnabledArchive = summariesEnabledArchive;\n }\n static services = [SummariesEnabledArchive];\n forEvent() {\n return StructureSummariesEnabledSetEvent;\n }\n handle(event) {\n if (event.ofMessageType('StructureSummariesEnabledSetEvent')) {\n this.summariesEnabledArchive.next(event.getAggregateId(), event.isEnabled());\n }\n }\n}\nclass SummariesCalculator {\n calculate(fields, items) {\n const filteredFields = fields.filter(field => this.forDataType(field.getDataType()));\n if (!filteredFields || filteredFields.length === 0 || items.length === 0) {\n return null;\n }\n const count = new Map(),\n distinct = new Map();\n // init\n filteredFields.forEach(field => {\n const key = field.getKey();\n count.set(key, 0);\n distinct.set(key, new Set());\n this.prepare(field);\n });\n // calculate\n items.forEach(item => {\n filteredFields.forEach(field => {\n const key = field.getKey(),\n value = field.getValue(item);\n if (value !== null || value !== undefined || value !== '') {\n if (field.isSummaries(SummariesType.COUNT)) {\n const countForField = count.get(key);\n count.set(key, countForField + 1);\n }\n if (field.isSummaries(SummariesType.DISTINCT)) {\n const distinctSet = distinct.get(key);\n distinctSet.add(value);\n }\n }\n this.aggregate(field, value);\n });\n });\n filteredFields.forEach(field => {\n this.postCalculate(field, items);\n });\n const summaries = new Map();\n filteredFields.forEach(field => {\n const key = field.getKey();\n const aggregatedValues = this.generateAggregatedValues(field);\n if (field.isSummaries(SummariesType.COUNT)) {\n aggregatedValues.setCount(count.get(key));\n }\n if (field.isSummaries(SummariesType.DISTINCT)) {\n aggregatedValues.setDistinct(distinct.get(key).size);\n }\n summaries.set(key, aggregatedValues);\n });\n return summaries;\n }\n}\nclass SummariesValues {\n count;\n distinct;\n setCount(value) {\n this.count = value;\n }\n setDistinct(value) {\n this.distinct = value;\n }\n}\nclass BooleanSummarizedValues extends SummariesValues {\n truthy;\n falsy;\n constructor(truthy, falsy) {\n super();\n this.truthy = truthy;\n this.falsy = falsy;\n }\n}\nclass BooleanSummariesCalculator extends SummariesCalculator {\n truthy = new Map();\n falsy = new Map();\n constructor() {\n super();\n }\n forDataType(dataType) {\n return dataType === DataType.BOOLEAN;\n }\n prepare(field) {\n const key = field.getKey();\n if (field.isSummaries(SummariesType.TRUTHY)) {\n this.truthy.set(key, 0);\n }\n if (field.isSummaries(SummariesType.FALSY)) {\n this.falsy.set(key, 0);\n }\n }\n postCalculate(field, items) {}\n aggregate(field, value) {\n const booleanValue = value,\n // (value as any === 'true'),\n key = field.getKey(),\n truthyForField = this.truthy.get(key),\n falsyForField = this.falsy.get(key);\n if (booleanValue) {\n if (field.isSummaries(SummariesType.TRUTHY)) {\n this.truthy.set(key, truthyForField + 1);\n }\n } else {\n if (field.isSummaries(SummariesType.FALSY)) {\n this.falsy.set(key, falsyForField + 1);\n }\n }\n }\n generateAggregatedValues(field) {\n const key = field.getKey();\n return new BooleanSummarizedValues(this.truthy.get(key), this.falsy.get(key));\n }\n}\nclass DateSummarizedValues extends SummariesValues {\n constructor() {\n super();\n }\n}\nclass DateSummariesCalculator extends SummariesCalculator {\n constructor() {\n super();\n }\n forDataType(dataType) {\n return dataType === DataType.DATE;\n }\n prepare(field) {}\n postCalculate(field, items) {}\n aggregate(field, value) {}\n generateAggregatedValues(field) {\n return new DateSummarizedValues();\n }\n}\nclass NumberSummarizedValues extends SummariesValues {\n sum;\n min;\n max;\n average;\n median;\n constructor(sum, min, max, average, median) {\n super();\n this.sum = this.setValueWithPrecision(sum);\n this.min = this.setValueWithPrecision(min);\n this.max = this.setValueWithPrecision(max);\n this.average = this.setValueWithPrecision(average);\n this.median = this.setValueWithPrecision(median);\n }\n setValueWithPrecision(value) {\n if (!value && value !== 0) {\n return null;\n }\n if (value === 0) {\n return 0;\n }\n return +value.toFixed(2);\n }\n}\nclass NumberSummariesCalculator extends SummariesCalculator {\n sum = new Map();\n min = new Map();\n max = new Map();\n average = new Map();\n median = new Map();\n constructor() {\n super();\n }\n forDataType(dataType) {\n return dataType === DataType.NUMBER;\n }\n prepare(field) {\n const key = field.getKey();\n this.sum.set(key, 0);\n this.min.set(key, Number.MAX_SAFE_INTEGER);\n this.max.set(key, 0);\n }\n postCalculate(field, items) {\n const key = field.getKey();\n if (field.isSummaries(SummariesType.AVERAGE)) {\n this.average.set(key, this.sum.get(key) / items.length);\n }\n if (field.isSummaries(SummariesType.MEDIAN)) {\n this.median.set(key, field.getValue(items[Math.floor(items.length / 2)]));\n }\n }\n aggregate(field, value) {\n const numberValue = +value,\n key = field.getKey(),\n sumForField = this.sum.get(key),\n minForField = this.min.get(key),\n maxForField = this.max.get(key);\n if (field.isSummaries(SummariesType.SUM) || field.isSummaries(SummariesType.AVERAGE)) {\n this.sum.set(key, sumForField + numberValue);\n }\n if (field.isSummaries(SummariesType.MIN)) {\n if (minForField > numberValue) {\n this.min.set(key, numberValue);\n }\n }\n if (field.isSummaries(SummariesType.MAX)) {\n if (maxForField < numberValue) {\n this.max.set(key, numberValue);\n }\n }\n }\n generateAggregatedValues(field) {\n const key = field.getKey(),\n sum = field.isSummaries(SummariesType.SUM) ? this.sum.get(key) : undefined,\n min = field.isSummaries(SummariesType.MIN) ? this.min.get(key) : undefined,\n max = field.isSummaries(SummariesType.MAX) ? this.max.get(key) : undefined,\n average = field.isSummaries(SummariesType.AVERAGE) ? this.average.get(key) : undefined,\n median = field.isSummaries(SummariesType.MEDIAN) ? this.median.get(key) : undefined;\n return new NumberSummarizedValues(sum, min, max, average, median);\n }\n}\nclass StringSummarizedValues extends SummariesValues {\n constructor() {\n super();\n }\n}\nclass StringSummariesCalculator extends SummariesCalculator {\n constructor() {\n super();\n }\n forDataType(dataType) {\n return dataType === DataType.STRING;\n }\n prepare(field) {}\n postCalculate(field, items) {}\n aggregate(field, value) {}\n generateAggregatedValues(field) {\n return new StringSummarizedValues();\n }\n}\nclass UnknownSummarizedValues extends SummariesValues {\n constructor() {\n super();\n }\n}\nclass UnknownSummariesCalculator extends SummariesCalculator {\n constructor() {\n super();\n }\n forDataType(dataType) {\n return dataType === DataType.UNKNOWN;\n }\n prepare(field) {}\n postCalculate(field, items) {}\n aggregate(field, value) {}\n generateAggregatedValues(field) {\n return new UnknownSummarizedValues();\n }\n}\nconst SUMMARIES_CALCULATORS = 'GUI - Summaries Calculators';\nclass SummariesManagerFactory {\n calculators;\n constructor(calculators) {\n this.calculators = calculators;\n }\n static services = [{\n inject: SUMMARIES_CALCULATORS,\n collection: true\n }];\n create(structureId) {\n return new SummariesManager(structureId, this.calculators);\n }\n}\nclass SummariesDispatcher {\n commandDispatcher = CoreContainer.resolve(CommandDispatcher);\n setSummariesEnabled(enabled, structureId) {\n this.commandDispatcher.dispatch(new StructureSetSummariesEnabledCommand(structureId, enabled));\n }\n}\nclass StructureSummariesPanelConfig {\n static defaultTop = false;\n static defaultBottom = true;\n top = StructureSummariesPanelConfig.defaultTop;\n bottom = StructureSummariesPanelConfig.defaultBottom;\n setTop(top) {\n this.top = top;\n }\n setBottom(bottom) {\n this.bottom = bottom;\n }\n isTopEnabled() {\n return this.top;\n }\n isBottomEnabled() {\n return this.bottom;\n }\n}\nclass StructureSummariesConfigArchive extends AggregateArchive {\n static default = new StructureSummariesPanelConfig();\n constructor() {\n super(StructureSummariesConfigArchive.default);\n }\n}\nclass StructureSummariesPanelConfigConverter {\n convert(config) {\n const panelConfig = new StructureSummariesPanelConfig();\n if (config.top !== undefined && config.top !== null) {\n panelConfig.setTop(config.top);\n }\n if (config.bottom !== undefined && config.bottom !== null) {\n panelConfig.setBottom(config.bottom);\n }\n return panelConfig;\n }\n}\nclass SummariesDomainModule {\n defineAggregate() {\n return null;\n }\n registerKey() {\n return structureKey;\n }\n registerProviders(container) {\n container.provide(SummariesManagerFactory);\n container.provide(SummariesDispatcher);\n container.provide(StructureSummariesConfigArchive);\n container.provide(StructureSummariesPanelConfigConverter);\n container.provideCollection(SUMMARIES_CALCULATORS, BooleanSummariesCalculator);\n container.provideCollection(SUMMARIES_CALCULATORS, DateSummariesCalculator);\n container.provideCollection(SUMMARIES_CALCULATORS, NumberSummariesCalculator);\n container.provideCollection(SUMMARIES_CALCULATORS, StringSummariesCalculator);\n container.provideCollection(SUMMARIES_CALCULATORS, UnknownSummariesCalculator);\n }\n registerCommandHandlers() {\n return [StructureSetSummariesEnabledCommandHandler];\n }\n registerDomainEventHandler() {\n return [StructureSummariesEnabledSetEventHandler];\n }\n registerMultiDomainEventHandler() {\n return [];\n }\n}\nclass SummariesDomainWarehouse extends SummariesWarehouse {\n summariesEnabledArchive;\n structureSummariesArchive;\n constructor(summariesEnabledArchive, structureSummariesArchive) {\n super();\n this.summariesEnabledArchive = summariesEnabledArchive;\n this.structureSummariesArchive = structureSummariesArchive;\n }\n static services = [SummariesEnabledArchive, StructureSummariesConfigArchive];\n onEnabled(structureId) {\n return this.summariesEnabledArchive.on(structureId);\n }\n onTopEnabled(structureId) {\n return this.onEnabled(structureId).pipe(hermesSwitchMap(enabled => {\n return this.structureSummariesArchive.on(structureId).pipe(hermesMap(config => enabled && config.isTopEnabled()));\n }));\n }\n onBottomEnabled(structureId) {\n return this.onEnabled(structureId).pipe(hermesSwitchMap(enabled => {\n return this.structureSummariesArchive.on(structureId).pipe(hermesMap(config => enabled && config.isBottomEnabled()));\n }));\n }\n}\nclass SummariesDomainPublisher extends SummariesPublisher {\n summariesDispatcher;\n configConverter;\n structureSummariesConfigArchive;\n constructor(summariesDispatcher, configConverter, structureSummariesConfigArchive) {\n super();\n this.summariesDispatcher = summariesDispatcher;\n this.configConverter = configConverter;\n this.structureSummariesConfigArchive = structureSummariesConfigArchive;\n }\n static services = [SummariesDispatcher, StructureSummariesPanelConfigConverter, StructureSummariesConfigArchive];\n setSummariesEnabled(enabled, structureId) {\n this.summariesDispatcher.setSummariesEnabled(enabled, structureId);\n }\n setConfig(config, structureId) {\n const summariesPanelConfig = this.configConverter.convert(config);\n this.setSummariesEnabled(config.enabled, structureId);\n this.structureSummariesConfigArchive.next(structureId, summariesPanelConfig);\n }\n}\nclass SummariesDomainEventRepository extends SummariesEventRepository {\n constructor() {\n super();\n }\n onSummariesChanged(structureId) {\n return this.onEvent(structureId, StructureSummariesChangedEvent);\n }\n}\nclass SummariesApiModule {\n registerProviders(container) {\n container.provide(SummariesPublisher, SummariesDomainPublisher);\n container.provide(SummariesEventRepository, SummariesDomainEventRepository);\n container.provide(SummariesWarehouse, SummariesDomainWarehouse);\n container.provide(SummariesEnabledArchive);\n }\n}\nfunction initializeSummaries() {\n new DomainInitializer(new SummariesApiModule(), new SummariesDomainModule()).init();\n}\nfunction provideSummariesCalculator(clazz) {\n return {\n provide: SUMMARIES_CALCULATORS,\n useClass: clazz,\n multi: true\n };\n}\ninitializeSummaries();\nfunction provideSummariesCommandInvoker() {\n return CoreContainer.resolve(SummariesPublisher);\n}\nfunction provideSummariesWarehouse() {\n return CoreContainer.resolve(SummariesWarehouse);\n}\nfunction provideSummariesEventRepository() {\n return CoreContainer.resolve(SummariesEventRepository);\n}\nclass SummariesFeatureModule extends FeatureModule {\n static forComponent() {\n return [];\n }\n static ɵfac = /* @__PURE__ */(() => {\n let ɵSummariesFeatureModule_BaseFactory;\n return function SummariesFeatureModule_Factory(t) {\n return (ɵSummariesFeatureModule_BaseFactory || (ɵSummariesFeatureModule_BaseFactory = i0.ɵɵgetInheritedFactory(SummariesFeatureModule)))(t || SummariesFeatureModule);\n };\n })();\n static ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: SummariesFeatureModule\n });\n static ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n providers: [{\n provide: SummariesPublisher,\n useFactory: provideSummariesCommandInvoker\n }, {\n provide: SummariesWarehouse,\n useFactory: provideSummariesWarehouse\n }, {\n provide: SummariesEventRepository,\n useFactory: provideSummariesEventRepository\n }, provideSummariesCalculator(BooleanSummariesCalculator), provideSummariesCalculator(DateSummariesCalculator), provideSummariesCalculator(NumberSummariesCalculator), provideSummariesCalculator(StringSummariesCalculator), provideSummariesCalculator(UnknownSummariesCalculator)],\n imports: [CommonModule, FabricModule, TranslationFeatureModule, GuiTemplateModule]\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(SummariesFeatureModule, [{\n type: NgModule,\n args: [{\n imports: [CommonModule, FabricModule, TranslationFeatureModule, GuiTemplateModule],\n declarations: [StructureSummariesPanelComponent],\n exports: [StructureSummariesPanelComponent],\n providers: [{\n provide: SummariesPublisher,\n useFactory: provideSummariesCommandInvoker\n }, {\n provide: SummariesWarehouse,\n useFactory: provideSummariesWarehouse\n }, {\n provide: SummariesEventRepository,\n useFactory: provideSummariesEventRepository\n }, provideSummariesCalculator(BooleanSummariesCalculator), provideSummariesCalculator(DateSummariesCalculator), provideSummariesCalculator(NumberSummariesCalculator), provideSummariesCalculator(StringSummariesCalculator), provideSummariesCalculator(UnknownSummariesCalculator)]\n }]\n }], null, null);\n})();\nclass VerticalRange {\n start;\n end;\n margin;\n constructor(start, end, margin) {\n this.start = start;\n this.end = end;\n this.margin = margin;\n }\n getStart() {\n return this.start;\n }\n getEnd() {\n return this.end;\n }\n getMargin() {\n return this.margin;\n }\n}\nlet VerticalFormationContainerHeight = class VerticalFormationContainerHeight {\n containerHeight = Optional.empty();\n sourceHeight;\n isContainerHeightProperForVirtualScroll() {\n if (this.containerHeight.isPresent()) {\n return this.containerHeight.getValueOrNullOrThrowError() > 0;\n } else {\n return false;\n }\n }\n getVisibleContainerHeight() {\n return this.getHeight();\n }\n getHeight() {\n if (this.containerHeight.isPresent()) {\n return this.getContainerHeight();\n }\n return this.sourceHeight;\n }\n getSourceHeight() {\n return this.sourceHeight;\n }\n setContainerHeight(height) {\n if (height >= 0) {\n this.containerHeight = Optional.of(height);\n }\n }\n setSourceSize(height) {\n this.sourceHeight = height;\n }\n getContainerHeight() {\n if (this.containerHeight.getValueOrNullOrThrowError() > this.sourceHeight) {\n return this.sourceHeight;\n } else {\n return this.containerHeight.getValueOrNullOrThrowError();\n }\n }\n};\nVerticalFormationContainerHeight = __decorate([DomainObject], VerticalFormationContainerHeight);\nclass ScrollBarPositionSetEvent extends StructureDomainEvent {\n position;\n constructor(aggregateId, position) {\n super(aggregateId, position, 'ScrollBarPositionSetEvent');\n this.position = position;\n }\n getPosition() {\n return this.position;\n }\n}\nclass ScrollBarPositionSetAggregateEvent extends StructureAggregateEvent {\n position;\n constructor(schemaId, position) {\n super(schemaId, 'ScrollBarPositionSetAggregateEvent');\n this.position = position;\n }\n toDomainEvent() {\n return new ScrollBarPositionSetEvent(this.getAggregateId(), this.position);\n }\n}\nvar VerticalFormation_1;\nlet VerticalFormation = class VerticalFormation {\n static #_ = VerticalFormation_1 = this;\n structureId;\n enabled;\n static ROW_HEIGHT = 42;\n static HIDDEN_ITEMS_TOP = 5;\n static HIDDEN_ITEMS_BOTTOM = 2;\n rowHeight = VerticalFormation_1.ROW_HEIGHT;\n hiddenItemsTop = VerticalFormation_1.HIDDEN_ITEMS_TOP;\n hiddenItemsBottom = VerticalFormation_1.HIDDEN_ITEMS_BOTTOM;\n container = new VerticalFormationContainerHeight();\n scrollPosition;\n range;\n sourceSize;\n logger;\n constructor(structureId, enabled = false, viewportHeight = 0, sourceSize = 0, scrollPosition = 0, rowHeight, hiddenItemsTop, hiddenItemsBottom) {\n this.structureId = structureId;\n this.enabled = enabled;\n this.sourceSize = sourceSize;\n this.container.setSourceSize(this.sourceSize * this.rowHeight);\n this.container.setContainerHeight(viewportHeight);\n this.scrollPosition = scrollPosition;\n if (Number.isInteger(rowHeight)) {\n this.rowHeight = rowHeight;\n }\n if (Number.isInteger(hiddenItemsTop)) {\n this.hiddenItemsTop = hiddenItemsTop;\n }\n if (Number.isInteger(hiddenItemsBottom)) {\n this.hiddenItemsBottom = hiddenItemsBottom;\n }\n this.calculateRange();\n }\n isEnabled() {\n return this.enabled && this.container.getHeight() > 0 && this.sourceSize > 0;\n }\n getViewPortHeight() {\n return this.container.getVisibleContainerHeight();\n }\n getSourceHeight() {\n return this.container.getSourceHeight();\n }\n getRowHeight() {\n return this.rowHeight;\n }\n getRange() {\n return this.range;\n }\n getTopMargin() {\n return this.range.getStart() * this.rowHeight;\n }\n calculateRange() {\n if (this.calcFullHeight() <= this.container.getHeight()) {\n this.range = new VerticalRange(0, this.sourceSize, 0);\n return;\n }\n const itemsInViewport = Math.ceil(this.container.getHeight() / this.rowHeight),\n viewportPositionIndex = Math.floor(this.scrollPosition / this.rowHeight);\n let end = viewportPositionIndex + itemsInViewport + this.hiddenItemsBottom;\n let topMargin = viewportPositionIndex;\n if (topMargin + itemsInViewport >= this.sourceSize) {\n topMargin = this.sourceSize - itemsInViewport;\n }\n let start = Math.max(viewportPositionIndex - this.hiddenItemsTop, 0);\n if (end > this.sourceSize) {\n end = this.sourceSize;\n start = end - itemsInViewport;\n }\n // end - itemsInViewport;\n this.range = new VerticalRange(start, end, topMargin);\n return {\n start,\n end,\n topMargin\n };\n }\n setEnabled(enabled) {\n this.enabled = enabled;\n // TODO dispatch aggregate event\n if (this.enabled && !this.container.isContainerHeightProperForVirtualScroll()) {\n this.logger.warn('Height needs to be specified in order for virtual scroll to work.');\n }\n this.calculateRange();\n }\n setSourceSize(sourceSize = 0) {\n this.sourceSize = sourceSize;\n this.container.setSourceSize(this.sourceSize * this.rowHeight);\n this.calculateRange();\n }\n setTopHiddenItemsCount(count) {\n this.hiddenItemsTop = count;\n this.calculateRange();\n }\n setBottomHiddenItemsCount(count) {\n this.hiddenItemsBottom = count;\n this.calculateRange();\n }\n setScrollPosition(scrollPosition) {\n this.scrollPosition = scrollPosition;\n this.calculateRange();\n }\n scrollToIndex(index) {\n if (index >= this.sourceSize) {\n index = this.sourceSize;\n }\n if (index < -1) {\n index = 0;\n }\n const position = index * this.rowHeight;\n return new ScrollBarPositionSetAggregateEvent(this.structureId, position);\n }\n setViewportHeight(height) {\n this.container.setContainerHeight(height);\n this.calculateRange();\n }\n setRowHeight(rowHeight) {\n this.rowHeight = rowHeight;\n this.container.setSourceSize(this.sourceSize * this.rowHeight);\n this.calculateRange();\n }\n setLogger(logger) {\n this.logger = logger;\n }\n // TODO REMOVE\n calcFullHeight() {\n return this.sourceSize * this.rowHeight;\n }\n};\nVerticalFormation = VerticalFormation_1 = __decorate([DomainObject], VerticalFormation);\nclass VerticalFormationFactory {\n logger;\n constructor(logger) {\n this.logger = logger;\n }\n static services = [Logger];\n create(structureId, enabled = false, viewportHeight = -1, sourceSize = 0, scrollPosition = 0, rowHeight, hiddenItemsTop, hiddenItemsBottom) {\n const vf = new VerticalFormation(structureId, enabled, viewportHeight, sourceSize, scrollPosition, rowHeight, hiddenItemsTop, hiddenItemsBottom);\n vf.setLogger(this.logger);\n return vf;\n }\n}\nclass SetScrollPositionCommand extends StructureCommand {\n position;\n constructor(structureId, position) {\n super(structureId, 'SetScrollPositionCommand');\n this.position = position;\n }\n getPosition() {\n return this.position;\n }\n}\nclass ScrollPositionSetEvent extends StructureDomainEvent {\n constructor(aggregateId) {\n super(aggregateId, null, 'ScrollPositionSetEvent');\n }\n}\nclass SetScrollPositionCommandHandler {\n domainEventPublisher = CoreContainer.resolve(DomainEventPublisher);\n forCommand() {\n return SetScrollPositionCommand;\n }\n handle(structure, command) {\n const position = command.getPosition();\n structure.setScrollPosition(position);\n }\n publish(aggregate, command) {\n this.domainEventPublisher.publish(new ScrollPositionSetEvent(command.getAggregateId()));\n }\n}\nclass SetVerticalScrollEnabledCommand extends StructureCommand {\n enabled;\n constructor(structureId, enabled) {\n super(structureId, 'SetVerticalScrollEnabledCommand');\n this.enabled = enabled;\n }\n isEnabled() {\n return this.enabled;\n }\n}\nclass VerticalScrollEnabledSetEvent extends StructureDomainEvent {\n constructor(aggregateId) {\n super(aggregateId, null, 'VerticalScrollEnabledSetEvent');\n }\n}\nclass SetVerticalScrollEnabledCommandHandler {\n domainEventPublisher = CoreContainer.resolve(DomainEventPublisher);\n forCommand() {\n return SetVerticalScrollEnabledCommand;\n }\n handle(structure, command) {\n const enabled = command.isEnabled();\n structure.setVerticalFormationEnabled(enabled);\n }\n publish(aggregate, command) {\n this.domainEventPublisher.publish(new VerticalScrollEnabledSetEvent(command.getAggregateId()));\n }\n}\nclass SetRowHeightBasedOnThemeCommand extends StructureCommand {\n theme;\n constructor(structureId, theme) {\n super(structureId, 'SetRowHeightBasedOnThemeCommand');\n this.theme = theme;\n }\n getTheme() {\n return this.theme;\n }\n}\nclass RowHeightSetBasedOnThemeEvent extends StructureDomainEvent {\n constructor(structureId) {\n super(structureId, null, 'RowHeightSetBasedOnThemeEvent');\n }\n}\nclass SetRowHeightBasedOnThemeCommandHandler {\n domainEventPublisher = CoreContainer.resolve(DomainEventPublisher);\n forCommand() {\n return SetRowHeightBasedOnThemeCommand;\n }\n handle(structure, command) {\n const theme = command.getTheme();\n structure.setTheme(theme);\n }\n publish(aggregate, command) {\n this.domainEventPublisher.publish(new RowHeightSetBasedOnThemeEvent(command.getAggregateId()));\n }\n}\nclass SetRowHeightCommand extends StructureCommand {\n rowHeight;\n constructor(structureId, rowHeight) {\n super(structureId, 'SetRowHeightCommand');\n this.rowHeight = rowHeight;\n }\n getRowHeight() {\n return this.rowHeight;\n }\n}\nclass RowHeightSetEvent extends StructureDomainEvent {\n constructor(aggregateId) {\n super(aggregateId, null, 'RowHeightSetEvent');\n }\n}\nclass SetRowHeightCommandHandler {\n domainEventPublisher = CoreContainer.resolve(DomainEventPublisher);\n forCommand() {\n return SetRowHeightCommand;\n }\n handle(structure, command) {\n const rowHeight = command.getRowHeight();\n const formation = structure.getVerticalFormation();\n formation.setRowHeight(rowHeight);\n }\n publish(aggregate, command) {\n this.domainEventPublisher.publish(new RowHeightSetEvent(command.getAggregateId()));\n }\n}\nclass StructureSetHeightCommand extends StructureCommand {\n height;\n constructor(structureId, height) {\n super(structureId, 'StructureSetHeightCommand');\n this.height = height;\n }\n getHeight() {\n return this.height;\n }\n}\nclass StructureHeightSetEvent extends StructureDomainEvent {\n constructor(aggregateId) {\n super(aggregateId, null, 'StructureHeightSetEvent');\n }\n}\nclass StructureSetHeightCommandHandler {\n domainEventPublisher = CoreContainer.resolve(DomainEventPublisher);\n forCommand() {\n return StructureSetHeightCommand;\n }\n handle(aggregate, command) {\n const height = command.getHeight();\n aggregate.setHeight(height);\n }\n publish(aggregate, command) {\n this.domainEventPublisher.publish(new StructureHeightSetEvent(command.getAggregateId()));\n }\n}\nclass VerticalFormationScrollBarPositionArchive extends AggregateArchive {\n static DEFAULT_POSITION = 0;\n constructor() {\n super(VerticalFormationScrollBarPositionArchive.DEFAULT_POSITION);\n }\n}\nclass ScrollBarPositionSetEventHandler {\n positionRepository;\n constructor(positionRepository) {\n this.positionRepository = positionRepository;\n }\n static services = [VerticalFormationScrollBarPositionArchive];\n forEvent() {\n return ScrollBarPositionSetEvent;\n }\n handle(event) {\n if (event.ofMessageType('ScrollBarPositionSetEvent')) {\n this.positionRepository.next(event.getAggregateId(), event.getPosition());\n }\n }\n}\nclass SetScrollBarPositionCommand extends StructureCommand {\n position;\n constructor(structureId, position) {\n super(structureId, 'SetScrollBarPositionCommand');\n this.position = position;\n }\n getPosition() {\n return this.position;\n }\n}\nclass SetScrollBarPositionCommandHandler {\n forCommand() {\n return SetScrollBarPositionCommand;\n }\n handle(structure, command) {\n const index = command.getPosition();\n structure.scrollToIndex(index);\n }\n}\nclass VerticalFormationDispatcher {\n commandDispatcher = CoreContainer.resolve(CommandDispatcher);\n setVirtualScrollEnabled(enabled, structureId) {\n this.commandDispatcher.dispatch(new SetVerticalScrollEnabledCommand(structureId, enabled));\n }\n scrollTo(position, structureId) {\n this.commandDispatcher.dispatch(new SetScrollBarPositionCommand(structureId, position));\n }\n setScrollPosition(position, structureId) {\n this.commandDispatcher.dispatch(new SetScrollPositionCommand(structureId, position));\n }\n}\nclass VerticalFormationDomainModule {\n defineAggregate() {\n return null;\n }\n registerKey() {\n return structureKey;\n }\n registerProviders(container) {\n container.provide(VerticalFormationFactory);\n container.provide(VerticalFormationDispatcher);\n }\n registerCommandHandlers() {\n return [SetScrollPositionCommandHandler, SetVerticalScrollEnabledCommandHandler, SetRowHeightBasedOnThemeCommandHandler, SetRowHeightCommandHandler, StructureSetHeightCommandHandler, SetScrollBarPositionCommandHandler];\n }\n registerDomainEventHandler() {\n return [ScrollBarPositionSetEventHandler];\n }\n registerMultiDomainEventHandler() {\n return [];\n }\n}\nlet VerticalFormationModel = class VerticalFormationModel {\n enabled;\n topMargin;\n sourceHeight;\n viewportHeight;\n rowHeight;\n constructor(enabled, topMargin, sourceHeight, viewportHeight, rowHeight) {\n this.enabled = enabled;\n this.topMargin = topMargin;\n this.sourceHeight = sourceHeight;\n this.viewportHeight = viewportHeight;\n this.rowHeight = rowHeight;\n }\n isEnabled() {\n return this.enabled;\n }\n getTopMargin() {\n return this.topMargin; // * this.rowHeight;\n }\n getSourceHeight() {\n return this.sourceHeight;\n }\n getViewPortHeight() {\n return this.viewportHeight;\n }\n getRowHeight() {\n return this.rowHeight;\n }\n};\nVerticalFormationModel = __decorate([ReadModelObject], VerticalFormationModel);\nclass VerticalFormationConverter {\n convert(verticalFormation) {\n const enabled = verticalFormation.isEnabled(),\n topMargin = verticalFormation.getTopMargin(),\n sourceHeight = verticalFormation.getSourceHeight(),\n viewportHeight = verticalFormation.getViewPortHeight(),\n rowHeight = verticalFormation.getRowHeight();\n return new VerticalFormationModel(enabled, topMargin, sourceHeight, viewportHeight, rowHeight);\n }\n}\nclass StructureCreatedEvent extends StructureDomainEvent {\n constructor(aggregateId) {\n super(aggregateId, null, 'StructureCreatedEvent');\n }\n}\nclass InMemoryStructureStore extends InMemoryStore {}\nlet SourceIsLoadingModel = class SourceIsLoadingModel {\n loading;\n constructor(loading) {\n this.loading = loading;\n }\n isLoading() {\n return this.loading;\n }\n};\nSourceIsLoadingModel = __decorate([ReadModelObject], SourceIsLoadingModel);\nclass SourceConverter {\n convert(aggregate) {\n return new SourceIsLoadingModel(aggregate.isLoading());\n }\n}\nclass StructureReadModelRoot extends ReadModelRoot {\n paging;\n entities;\n source;\n verticalFormation;\n constructor(uid, paging, entities, source, verticalFormation) {\n super(uid);\n this.paging = paging;\n this.entities = entities;\n this.source = source;\n this.verticalFormation = verticalFormation;\n }\n getPaging() {\n return this.paging;\n }\n getEntities() {\n return this.entities;\n }\n getSource() {\n return this.source;\n }\n getVerticalFormation() {\n return this.verticalFormation;\n }\n // TODO Remove\n getTopMargin() {\n return this.verticalFormation.getTopMargin();\n }\n isLoaderVisible() {\n return this.getSource().isLoading();\n }\n getSourceHeight() {\n return this.verticalFormation.getSourceHeight();\n }\n isReadyToDisplay() {\n return this.entities.length > 0;\n // this.presentation.getColumns().length > 0; // TODO presentation getColumns\n }\n isVerticalScrollEnabled() {\n return this.verticalFormation.isEnabled();\n }\n}\nclass StructureReadModelRootConverter {\n pagingConverter;\n sourceConverter;\n verticalFormationConverter;\n constructor(pagingConverter, sourceConverter, verticalFormationConverter) {\n this.pagingConverter = pagingConverter;\n this.sourceConverter = sourceConverter;\n this.verticalFormationConverter = verticalFormationConverter;\n }\n static services = [PagingConverter, SourceConverter, VerticalFormationConverter];\n convert(aggregate) {\n const pagingAggregate = aggregate.getPaging(),\n originItemEntities = aggregate.getEntities(),\n sourceCoordinator = aggregate.getSource(),\n verticalFormation = aggregate.getVerticalFormation();\n return new StructureReadModelRoot(aggregate.getId().toReadModelRootId(), this.pagingConverter.convert(pagingAggregate), this.convertSource(originItemEntities), this.sourceConverter.convert(sourceCoordinator), this.verticalFormationConverter.convert(verticalFormation));\n }\n convertSource(source) {\n return source.map(originItem => {\n return new Item(originItem.sourceItem, originItem.getPosition(), originItem.getId().toString(), originItem.getVersion());\n });\n }\n}\nclass InMemoryStructureReadStore extends InMemoryReadModelStore {\n inMemoryProjectStore;\n structureConverter;\n constructor(inMemoryProjectStore, structureConverter) {\n super(inMemoryProjectStore);\n this.inMemoryProjectStore = inMemoryProjectStore;\n this.structureConverter = structureConverter;\n }\n static services = [InMemoryStructureStore, StructureReadModelRootConverter];\n toReadModel(aggregate) {\n return this.structureConverter.convert(aggregate);\n }\n}\nclass SchemaDomainEvent extends DomainEvent {}\nclass SchemaThemeSetEvent extends SchemaDomainEvent {\n theme;\n constructor(schemaId, theme) {\n super(schemaId, theme, 'SchemaThemeSetEvent');\n this.theme = theme;\n }\n getTheme() {\n return this.theme;\n }\n}\nclass UniqueFilterUnselectedEvent extends StructureDomainEvent {\n constructor(aggregateId) {\n super(aggregateId, null, 'UniqueFilterUnselectedEvent');\n }\n}\nclass AllUniqueFilterUnselectedEvent extends StructureDomainEvent {\n constructor(aggregateId) {\n super(aggregateId, null, 'AllUniqueFilterUnselectedEvent');\n }\n}\nclass AllUniqueFilterSelectedEvent extends StructureDomainEvent {\n constructor(aggregateId) {\n super(aggregateId, null, 'AllUniqueFilterSelectedEvent');\n }\n}\nclass UniqueFilterSelectedEvent extends StructureDomainEvent {\n constructor(aggregateId) {\n super(aggregateId, null, 'UniqueFilterSelectedEvent');\n }\n}\nclass VerticalFormationRepository extends Reactive {\n inMemoryStructureReadStore;\n verticalFormation = new Map();\n verticalFormation$ = new HermesReplaySubject(1);\n domainEventBus = CoreContainer.resolve(DomainEventBus);\n constructor(inMemoryStructureReadStore) {\n super();\n this.inMemoryStructureReadStore = inMemoryStructureReadStore;\n this.domainEventBus.ofEvents([StructureCreatedEvent, VerticalScrollEnabledSetEvent, OriginSetEvent, StructureHeightSetEvent, RowHeightSetEvent, SchemaThemeSetEvent, RowHeightSetBasedOnThemeEvent, ScrollPositionSetEvent, SearchPhraseSetDomainEvent, UniqueFilterUnselectedEvent, AllUniqueFilterUnselectedEvent, AllUniqueFilterSelectedEvent, UniqueFilterSelectedEvent, PageChangedEvent, PagingSetEvent, ActiveFiltersSetEvent]).pipe(this.hermesTakeUntil()).subscribe(event => {\n const aggregateId = event.getAggregateId();\n const optStructure = this.inMemoryStructureReadStore.getById(aggregateId);\n optStructure.ifPresent(structureReadModelRoot => {\n const verticalFormation = structureReadModelRoot.getVerticalFormation();\n this.next(aggregateId, verticalFormation);\n });\n });\n }\n static services = [InMemoryStructureReadStore];\n onVerticalScrollEnabled(structureId) {\n return this.onVerticalFormation(structureId).pipe(hermesMap(v => v.isEnabled()), hermesDistinctUntilChanged());\n }\n onRowHeight(structureId) {\n return this.onVerticalFormation(structureId).pipe(hermesMap(v => v.getRowHeight()), hermesDistinctUntilChanged());\n }\n onContainerHeight(structureId) {\n return this.onVerticalFormation(structureId).pipe(hermesMap(v => v.getViewPortHeight()), hermesDistinctUntilChanged());\n }\n onTopMargin(structureId) {\n return this.onVerticalFormation(structureId).pipe(hermesMap(v => v.getTopMargin()), hermesDistinctUntilChanged());\n }\n onVerticalFormation(structureId) {\n return this.verticalFormation$.toObservable().pipe(hermesFilter(idToVerticalFormation => {\n const key = structureId.getId();\n return idToVerticalFormation.has(key);\n }), hermesMap(idToVerticalFormation => idToVerticalFormation.get(structureId.getId())));\n }\n next(structureId, verticalFormation) {\n this.verticalFormation.set(structureId.toString(), verticalFormation);\n this.verticalFormation$.next(this.verticalFormation);\n }\n}\nclass VerticalFormationDomainWarehouse extends VerticalFormationWarehouse {\n verticalFormationRepository;\n positionRepository;\n constructor(verticalFormationRepository, positionRepository) {\n super();\n this.verticalFormationRepository = verticalFormationRepository;\n this.positionRepository = positionRepository;\n }\n static services = [VerticalFormationRepository, VerticalFormationScrollBarPositionArchive];\n onEnabled(structureId) {\n return this.verticalFormationRepository.onVerticalScrollEnabled(structureId);\n }\n onRowHeight(structureId) {\n return this.verticalFormationRepository.onRowHeight(structureId);\n }\n onContainerHeight(structureId) {\n return this.verticalFormationRepository.onContainerHeight(structureId);\n }\n onTopMargin(structureId) {\n return this.verticalFormationRepository.onTopMargin(structureId);\n }\n onScrollBarPosition(structureId) {\n return this.positionRepository.on(structureId);\n }\n}\nclass VerticalFormationPublisher {\n constructor() {}\n}\nclass VerticalFormationDomainPublisher extends VerticalFormationPublisher {\n verticalFormationDispatcher;\n constructor(verticalFormationDispatcher) {\n super();\n this.verticalFormationDispatcher = verticalFormationDispatcher;\n }\n static services = [VerticalFormationDispatcher];\n enableVirtualScroll(structureId) {\n this.verticalFormationDispatcher.setVirtualScrollEnabled(true, structureId);\n }\n disableVirtualScroll(structureId) {\n this.verticalFormationDispatcher.setVirtualScrollEnabled(false, structureId);\n }\n scrollToTop(structureId) {\n this.verticalFormationDispatcher.scrollTo(0, structureId);\n }\n scrollToBottom(structureId) {\n this.verticalFormationDispatcher.scrollTo(Number.MAX_SAFE_INTEGER, structureId);\n }\n scrollToIndex(index, structureId) {\n this.verticalFormationDispatcher.scrollTo(index, structureId);\n }\n setScrollPosition(position, structureId) {\n this.verticalFormationDispatcher.setScrollPosition(position, structureId);\n }\n}\nclass VerticalFormationApiModule {\n registerProviders(container) {\n container.provide(VerticalFormationConverter);\n container.provide(VerticalFormationRepository);\n container.provide(VerticalFormationWarehouse, VerticalFormationDomainWarehouse);\n container.provide(VerticalFormationPublisher, VerticalFormationDomainPublisher);\n container.provide(VerticalFormationScrollBarPositionArchive);\n }\n}\nfunction initializeVerticalFormation() {\n new DomainInitializer(new VerticalFormationApiModule(), new VerticalFormationDomainModule()).init();\n}\ninitializeVerticalFormation();\nfunction provideVerticalFormationCommandInvoker() {\n return CoreContainer.resolve(VerticalFormationPublisher);\n}\nfunction provideVerticalFormationWarehouse() {\n return CoreContainer.resolve(VerticalFormationWarehouse);\n}\nclass VerticalFormationFeatureModule extends FeatureModule {\n static forComponent() {\n return [];\n }\n static ɵfac = /* @__PURE__ */(() => {\n let ɵVerticalFormationFeatureModule_BaseFactory;\n return function VerticalFormationFeatureModule_Factory(t) {\n return (ɵVerticalFormationFeatureModule_BaseFactory || (ɵVerticalFormationFeatureModule_BaseFactory = i0.ɵɵgetInheritedFactory(VerticalFormationFeatureModule)))(t || VerticalFormationFeatureModule);\n };\n })();\n static ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: VerticalFormationFeatureModule\n });\n static ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n providers: [{\n provide: VerticalFormationPublisher,\n useFactory: provideVerticalFormationCommandInvoker\n }, {\n provide: VerticalFormationWarehouse,\n useFactory: provideVerticalFormationWarehouse\n }],\n imports: [CommonModule]\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(VerticalFormationFeatureModule, [{\n type: NgModule,\n args: [{\n imports: [CommonModule],\n declarations: [],\n exports: [],\n providers: [{\n provide: VerticalFormationPublisher,\n useFactory: provideVerticalFormationCommandInvoker\n }, {\n provide: VerticalFormationWarehouse,\n useFactory: provideVerticalFormationWarehouse\n }]\n }]\n }], null, null);\n})();\nclass SchemaAggregateRepository extends AggregateRepository {}\nclass InMemorySchemaStore extends InMemoryStore {}\nclass InMemorySchemaAggregateStore extends InMemoryAggregateStore {\n constructor(inMemorySchemaStore) {\n super(inMemorySchemaStore);\n }\n static services = [InMemorySchemaStore];\n}\nclass InMemorySchemaAggregateRepository extends SchemaAggregateRepository {\n inMemorySchemaAggregateStore;\n constructor(inMemorySchemaAggregateStore) {\n super();\n this.inMemorySchemaAggregateStore = inMemorySchemaAggregateStore;\n }\n static services = [InMemorySchemaAggregateStore];\n findById(schemaId) {\n return this.inMemorySchemaAggregateStore.findById(schemaId);\n }\n save(schemaAggregate) {\n this.inMemorySchemaAggregateStore.save(schemaAggregate);\n }\n}\nclass SchemaCommand extends Command {}\nclass SetSchemaThemeCommand extends SchemaCommand {\n theme;\n constructor(schemaId, theme) {\n super(schemaId, 'SetSchemaThemeCommand');\n this.theme = theme;\n }\n getTheme() {\n return this.theme;\n }\n}\nclass SetSchemaThemeCommandHandler {\n forCommand() {\n return SetSchemaThemeCommand;\n }\n handle(schemaAggregate, command) {\n const theme = command.getTheme();\n schemaAggregate.changeTheme(theme);\n }\n}\nclass SetRowColoringCommand extends SchemaCommand {\n coloring;\n constructor(schemaId, coloring) {\n super(schemaId, 'SetRowColoringCommand');\n this.coloring = coloring;\n }\n getColoring() {\n return this.coloring;\n }\n}\nclass SetRowColoringCommandHandler {\n forCommand() {\n return SetRowColoringCommand;\n }\n handle(schemaAggregate, command) {\n const coloring = command.getColoring();\n schemaAggregate.setRowColoring(coloring);\n }\n}\nclass SetSchemaHorizontalGridCommand extends SchemaCommand {\n enabled;\n constructor(schemaId, enabled) {\n super(schemaId, 'SetSchemaHorizontalGridCommand');\n this.enabled = enabled;\n }\n isEnabled() {\n return this.enabled;\n }\n}\nclass SetSchemaHorizontalGridCommandHandler {\n domainEventPublisher = CoreContainer.resolve(DomainEventPublisher);\n forCommand() {\n return SetSchemaHorizontalGridCommand;\n }\n handle(schemaAggregate, command) {\n const enabled = command.isEnabled();\n schemaAggregate.setHorizontalGrid(enabled);\n }\n publish(schemaAggregate, command) {\n this.domainEventPublisher.publishFromAggregate(schemaAggregate);\n }\n}\nclass SetSchemaVerticalGridCommand extends SchemaCommand {\n enabled;\n constructor(schemaId, enabled) {\n super(schemaId, 'SetSchemaVerticalGridCommand');\n this.enabled = enabled;\n }\n isEnabled() {\n return this.enabled;\n }\n}\nclass SetSchemaVerticalGridCommandHandler {\n domainEventPublisher = CoreContainer.resolve(DomainEventPublisher);\n forCommand() {\n return SetSchemaVerticalGridCommand;\n }\n handle(schemaAggregate, command) {\n const enabled = command.isEnabled();\n schemaAggregate.setVerticalGrid(enabled);\n }\n publish(schemaAggregate, command) {\n this.domainEventPublisher.publishFromAggregate(schemaAggregate);\n }\n}\nclass SchemaCssClassesRepository extends AggregateArchive {\n constructor() {\n super();\n }\n}\nclass RowColoringSetEvent extends SchemaDomainEvent {\n rowColoring;\n constructor(schemaId, rowColoring) {\n super(schemaId, rowColoring, 'RowColoringSetEvent');\n this.rowColoring = rowColoring;\n }\n getRowColoring() {\n return this.rowColoring;\n }\n}\nclass SchemaHorizontalGridSetEvent extends SchemaDomainEvent {\n horizontalGrid;\n constructor(schemaId, horizontalGrid) {\n super(schemaId, horizontalGrid, 'SchemaHorizontalGridSetEvent');\n this.horizontalGrid = horizontalGrid;\n }\n getHorizontalGrid() {\n return this.horizontalGrid;\n }\n}\nclass SchemaVerticalGridSetEvent extends SchemaDomainEvent {\n verticalGrid;\n constructor(schemaId, verticalGrid) {\n super(schemaId, verticalGrid, 'SchemaVerticalGridSetEvent');\n this.verticalGrid = verticalGrid;\n }\n getVerticalGrid() {\n return this.verticalGrid;\n }\n}\nclass SchemaCssClass {\n verticalGrid;\n horizontalGrid;\n theme;\n rowColoring;\n constructor(verticalGrid, horizontalGrid, theme, rowColoring) {\n this.verticalGrid = verticalGrid;\n this.horizontalGrid = horizontalGrid;\n this.theme = theme;\n this.rowColoring = rowColoring;\n }\n getRowColoring() {\n return this.rowColoring;\n }\n}\nclass SchemaCssClassesEventHandler {\n schemaCssClassesRepository;\n rowColoring;\n horizontalGrid;\n verticalGrid;\n schemaTheme;\n constructor(schemaCssClassesRepository) {\n this.schemaCssClassesRepository = schemaCssClassesRepository;\n }\n static services = [SchemaCssClassesRepository];\n forEvents() {\n return [SchemaThemeSetEvent, RowColoringSetEvent, SchemaHorizontalGridSetEvent, SchemaVerticalGridSetEvent];\n }\n handle(event) {\n if (event.ofMessageType('RowColoringSetEvent')) {\n this.rowColoring = event.getRowColoring();\n }\n if (event.ofMessageType('SchemaHorizontalGridSetEvent')) {\n this.horizontalGrid = event.getHorizontalGrid();\n }\n if (event.ofMessageType('SchemaVerticalGridSetEvent')) {\n this.verticalGrid = event.getVerticalGrid();\n }\n if (event.ofMessageType('SchemaThemeSetEvent')) {\n this.schemaTheme = event.getTheme();\n }\n this.publish(event.getAggregateId());\n }\n publish(aggregateId) {\n if (this.rowColoring !== undefined && this.horizontalGrid !== undefined && this.verticalGrid !== undefined && this.schemaTheme !== undefined) {\n this.schemaCssClassesRepository.next(aggregateId, new SchemaCssClass(this.verticalGrid, this.horizontalGrid, this.schemaTheme, this.rowColoring));\n }\n }\n}\nconst schemaKey = 'SchemaAggregate';\nclass SchemaVerticalGridRepository extends EventDrivenRepository {\n constructor() {\n super();\n }\n forEvent() {\n return SchemaVerticalGridSetEvent;\n }\n}\nclass SchemaThemeRepository extends EventDrivenRepository {\n constructor() {\n super();\n }\n forEvent() {\n return SchemaThemeSetEvent;\n }\n}\nclass SchemaRowColoringRepository extends EventDrivenRepository {\n constructor() {\n super();\n }\n forEvent() {\n return RowColoringSetEvent;\n }\n}\nclass SchemaHorizontalGridRepository extends EventDrivenRepository {\n constructor() {\n super();\n }\n forEvent() {\n return SchemaHorizontalGridSetEvent;\n }\n}\nclass CreateSchemaCommand extends CreateAggregateCommand {\n constructor(schemaId) {\n super(schemaId, 'CreateSchemaCommand');\n }\n}\nclass CreateSchemaCommandHandler {\n forCommand() {\n return CreateSchemaCommand;\n }\n}\nclass SchemaAggregateEvent extends AggregateEvent {}\nclass SchemaThemeSetAggregateEvent extends SchemaAggregateEvent {\n theme;\n constructor(schemaId, theme) {\n super(schemaId, 'SchemaThemeSetAggregateEvent');\n this.theme = theme;\n }\n toDomainEvent() {\n return new SchemaThemeSetEvent(this.getAggregateId(), this.theme);\n }\n}\nclass RowColoringSetAggregateEvent extends SchemaAggregateEvent {\n rowColoring;\n constructor(schemaId, rowColoring) {\n super(schemaId, 'RowColoringSetEvent');\n this.rowColoring = rowColoring;\n }\n toDomainEvent() {\n return new RowColoringSetEvent(this.getAggregateId(), this.rowColoring);\n }\n}\nclass SchemaVerticalGridSetAggregateEvent extends SchemaAggregateEvent {\n verticalGrid;\n constructor(schemaId, verticalGrid) {\n super(schemaId, 'SchemaHorizontalGridSetEvent');\n this.verticalGrid = verticalGrid;\n }\n toDomainEvent() {\n return new SchemaVerticalGridSetEvent(this.getAggregateId(), this.verticalGrid);\n }\n}\nclass SchemaHorizontalGridSetAggregateEvent extends SchemaAggregateEvent {\n horizontalGrid;\n constructor(schemaId, horizontalGrid) {\n super(schemaId, 'SchemaHorizontalGridSetEvent');\n this.horizontalGrid = horizontalGrid;\n }\n toDomainEvent() {\n return new SchemaHorizontalGridSetEvent(this.getAggregateId(), this.horizontalGrid);\n }\n}\nclass SchemaCreatedEvent extends SchemaDomainEvent {\n constructor(aggregateId) {\n super(aggregateId, null, 'SchemaCreatedEvent');\n }\n}\nclass SchemaCreatedAggregateEvent extends SchemaAggregateEvent {\n constructor(aggregateId) {\n super(aggregateId, 'SchemaCreatedAggregateEvent');\n }\n toDomainEvent() {\n return new SchemaCreatedEvent(this.getAggregateId());\n }\n}\nclass SchemaAggregate extends AggregateRoot {\n static DEFAULT_THEME = SchemaTheme.GENERIC;\n static DEFAULT_ROW_COLORING = SchemaRowColoring.ODD;\n static DEFAULT_VERTICAL_GRID = true;\n static DEFAULT_HORIZONTAL_GRID = true;\n horizontalGrid;\n verticalGrid;\n theme;\n rowColoring;\n constructor(id) {\n super(id, 'SchemaAggregate');\n this.setTheme(SchemaAggregate.DEFAULT_THEME);\n this.setHorizontalGrid(SchemaAggregate.DEFAULT_HORIZONTAL_GRID);\n this.setVerticalGrid(SchemaAggregate.DEFAULT_VERTICAL_GRID);\n this.setRowColoring(SchemaAggregate.DEFAULT_ROW_COLORING);\n }\n createEvent() {\n return SchemaCreatedAggregateEvent;\n }\n changeTheme(theme) {\n this.setTheme(theme);\n if (theme === SchemaTheme.MATERIAL) {\n this.setRowColoring(SchemaRowColoring.NONE);\n this.setVerticalGrid(false);\n }\n if (theme === SchemaTheme.LIGHT) {\n this.setRowColoring(SchemaRowColoring.NONE);\n this.setVerticalGrid(false);\n }\n if (theme === SchemaTheme.DARK) {\n this.setRowColoring(SchemaRowColoring.NONE);\n this.setVerticalGrid(false);\n }\n if (theme === SchemaTheme.GENERIC) {\n this.setRowColoring(SchemaRowColoring.ODD);\n }\n }\n setRowColoring(coloring) {\n this.rowColoring = coloring;\n this.addEvent(new RowColoringSetAggregateEvent(this.getId(), this.rowColoring));\n }\n setVerticalGrid(enabled) {\n this.verticalGrid = enabled;\n this.addEvent(new SchemaVerticalGridSetAggregateEvent(this.getId(), this.verticalGrid));\n }\n setHorizontalGrid(enabled) {\n this.horizontalGrid = enabled;\n this.addEvent(new SchemaHorizontalGridSetAggregateEvent(this.getId(), this.horizontalGrid));\n }\n setTheme(theme) {\n this.theme = theme;\n this.addEvent(new SchemaThemeSetAggregateEvent(this.getId(), this.theme));\n }\n}\nclass SchemaAggregateFactory extends AggregateFactory {\n constructor() {\n super();\n }\n create(aggregateId) {\n return new SchemaAggregate(aggregateId);\n }\n}\nclass SchemaRowClassArchive extends AggregateArchive {\n constructor() {\n super();\n }\n}\nclass SchemaRowStyleArchive extends AggregateArchive {\n constructor() {\n super();\n }\n}\nclass SchemaDomainModule {\n defineAggregate() {\n return {\n aggregateKey: schemaKey,\n createCommandHandler: CreateSchemaCommandHandler,\n factory: SchemaAggregateFactory,\n repository: InMemorySchemaAggregateRepository\n };\n }\n registerKey() {\n return schemaKey;\n }\n registerProviders(container) {\n container.provide(SchemaRowClassArchive);\n container.provide(SchemaRowStyleArchive);\n }\n registerCommandHandlers() {\n return [SetSchemaThemeCommandHandler, SetRowColoringCommandHandler, SetSchemaHorizontalGridCommandHandler, SetSchemaVerticalGridCommandHandler];\n }\n registerDomainEventHandler() {\n return [SchemaThemeRepository, SchemaHorizontalGridRepository, SchemaRowColoringRepository, SchemaVerticalGridRepository];\n }\n registerMultiDomainEventHandler() {\n return [SchemaCssClassesEventHandler];\n }\n}\nclass SchemaDispatcher {\n commandDispatcher = CoreContainer.resolve(CommandDispatcher);\n create(schemaId) {\n this.commandDispatcher.dispatch(new CreateSchemaCommand(schemaId));\n }\n setTheme(theme, schemaId) {\n this.commandDispatcher.dispatch(new SetSchemaThemeCommand(schemaId, theme));\n }\n setRowColoring(rowColoring, schemaId) {\n this.commandDispatcher.dispatch(new SetRowColoringCommand(schemaId, rowColoring));\n }\n setVerticalGrid(verticalGrid, schemaId) {\n this.commandDispatcher.dispatch(new SetSchemaVerticalGridCommand(schemaId, verticalGrid));\n }\n setHorizontalGrid(horizontalGrid, schemaId) {\n this.commandDispatcher.dispatch(new SetSchemaHorizontalGridCommand(schemaId, horizontalGrid));\n }\n}\nclass SchemaDomainPublisher extends SchemaPublisher {\n schemaDispatcher;\n structurePublisher;\n fabricModalThemeService;\n schemaRowClassArchive;\n schemaRowStyleArchive;\n constructor(schemaDispatcher, structurePublisher, fabricModalThemeService, schemaRowClassArchive, schemaRowStyleArchive) {\n super();\n this.schemaDispatcher = schemaDispatcher;\n this.structurePublisher = structurePublisher;\n this.fabricModalThemeService = fabricModalThemeService;\n this.schemaRowClassArchive = schemaRowClassArchive;\n this.schemaRowStyleArchive = schemaRowStyleArchive;\n }\n static services = [SchemaDispatcher, StructurePublisher, FabricModalThemeService, SchemaRowClassArchive, SchemaRowStyleArchive];\n create(schemaId) {\n this.schemaDispatcher.create(schemaId.toAggregateId());\n }\n setTheme(theme, schemaId, structureId) {\n this.schemaDispatcher.setTheme(theme, schemaId.toAggregateId());\n this.fabricModalThemeService.changeTheme(this.toFabricTheme(theme)); // TODO github #2162\n this.structurePublisher.setRowHeightBasedOnTheme(theme, structureId);\n }\n setRowColoring(rowColoring, schemaId) {\n const schemaRowColoring = this.toSchemaRowColoring(rowColoring);\n this.schemaDispatcher.setRowColoring(schemaRowColoring, schemaId.toAggregateId());\n }\n setVerticalGrid(verticalGrid, schemaId) {\n this.schemaDispatcher.setVerticalGrid(verticalGrid, schemaId.toAggregateId());\n }\n setHorizontalGrid(horizontalGrid, schemaId) {\n this.schemaDispatcher.setHorizontalGrid(horizontalGrid, schemaId.toAggregateId());\n }\n setRowClass(schemaRowClass, schemaId) {\n return this.schemaRowClassArchive.next(schemaId.toAggregateId(), schemaRowClass);\n }\n setRowStyle(rowStyle, schemaId) {\n return this.schemaRowStyleArchive.next(schemaId.toAggregateId(), rowStyle);\n }\n // move to function\n toSchemaRowColoring(coloring) {\n switch (coloring) {\n case RowColoring.NONE:\n return SchemaRowColoring.NONE;\n case RowColoring.ODD:\n return SchemaRowColoring.ODD;\n case RowColoring.EVEN:\n return SchemaRowColoring.EVEN;\n default:\n return SchemaRowColoring.NONE;\n }\n }\n // move to function\n toFabricTheme(schemaTheme) {\n switch (schemaTheme) {\n case SchemaTheme.DARK:\n {\n return Theme.DARK;\n }\n case SchemaTheme.FABRIC:\n {\n return Theme.FABRIC;\n }\n case SchemaTheme.GENERIC:\n {\n return Theme.GENERIC;\n }\n case SchemaTheme.LIGHT:\n {\n return Theme.LIGHT;\n }\n case SchemaTheme.MATERIAL:\n {\n return Theme.MATERIAL;\n }\n default:\n return Theme.FABRIC;\n }\n }\n}\nclass SchemaDomainWarehouse extends SchemaWarehouse {\n schemaCssClassesRepository;\n schemaThemeRepository;\n schemaHorizontalGridRepository;\n schemaRowColoringRepository;\n schemaVerticalGridRepository;\n schemaRowClassArchive;\n schemaRowStyleArchive;\n constructor(schemaCssClassesRepository, schemaThemeRepository, schemaHorizontalGridRepository, schemaRowColoringRepository, schemaVerticalGridRepository, schemaRowClassArchive, schemaRowStyleArchive) {\n super();\n this.schemaCssClassesRepository = schemaCssClassesRepository;\n this.schemaThemeRepository = schemaThemeRepository;\n this.schemaHorizontalGridRepository = schemaHorizontalGridRepository;\n this.schemaRowColoringRepository = schemaRowColoringRepository;\n this.schemaVerticalGridRepository = schemaVerticalGridRepository;\n this.schemaRowClassArchive = schemaRowClassArchive;\n this.schemaRowStyleArchive = schemaRowStyleArchive;\n }\n static services = [SchemaCssClassesRepository, SchemaThemeRepository, SchemaHorizontalGridRepository, SchemaRowColoringRepository, SchemaVerticalGridRepository, SchemaRowClassArchive, SchemaRowStyleArchive];\n onTheme(schemaId) {\n return this.schemaThemeRepository.on(schemaId.toAggregateId());\n }\n onceTheme(schemaId) {\n return singleFromObservable(this.onTheme(schemaId));\n }\n findTheme(schemaId) {\n return this.schemaThemeRepository.find(schemaId.toAggregateId());\n }\n onHorizontalGrid(schemaId) {\n return this.schemaHorizontalGridRepository.on(schemaId.toAggregateId());\n }\n onVerticalGrid(schemaId) {\n return this.schemaVerticalGridRepository.on(schemaId.toAggregateId());\n }\n onRowColoring(schemaId) {\n return this.schemaRowColoringRepository.on(schemaId.toAggregateId());\n }\n onCssClasses(schemaId) {\n return this.schemaCssClassesRepository.on(schemaId.toAggregateId());\n }\n onRowClass(schemaId) {\n return this.schemaRowClassArchive.on(schemaId.toAggregateId());\n }\n onRowStyle(schemaId) {\n return this.schemaRowStyleArchive.on(schemaId.toAggregateId());\n }\n}\nclass SchemaDomainEventRepository extends SchemaEventRepository {\n constructor() {\n super();\n }\n onThemeChanged(schemaId) {\n return this.onEvent(schemaId, SchemaThemeSetEvent).pipe(hermesMap(event => {\n return event.getTheme();\n }));\n }\n onHorizontalGridChanged(schemaId) {\n return this.onEvent(schemaId, SchemaHorizontalGridSetEvent).pipe(hermesMap(event => event.getHorizontalGrid()));\n }\n onVerticalGridChanged(schemaId) {\n return this.onEvent(schemaId, SchemaVerticalGridSetEvent).pipe(hermesMap(event => event.getVerticalGrid()));\n }\n onRowColoring(schemaId) {\n return this.onEvent(schemaId, RowColoringSetEvent).pipe(hermesMap(event => event.getRowColoring()));\n }\n}\nclass SchemaApiModule {\n registerProviders(container) {\n container.provide(SchemaDispatcher);\n container.provide(SchemaAggregateRepository, InMemorySchemaAggregateRepository);\n container.provide(InMemorySchemaAggregateStore);\n container.provide(InMemorySchemaStore);\n container.provide(SchemaPublisher, SchemaDomainPublisher);\n container.provide(SchemaWarehouse, SchemaDomainWarehouse);\n container.provide(SchemaEventRepository, SchemaDomainEventRepository);\n container.provide(SchemaCssClassesRepository);\n }\n}\nconst initSchema = () => {\n new DomainInitializer(new SchemaApiModule(), new SchemaDomainModule()).init();\n};\nfunction useFactorySchemaCommandInvoker() {\n return CoreContainer.resolve(SchemaPublisher);\n}\nfunction useFactorySchemaWarehouse() {\n return CoreContainer.resolve(SchemaWarehouse);\n}\nfunction useFactorySchemaEventRepository() {\n return CoreContainer.resolve(SchemaEventRepository);\n}\ninitSchema();\nclass SchemaFeatureModule extends FeatureModule {\n constructor() {\n super();\n }\n static forComponent() {\n return [];\n }\n static ɵfac = function SchemaFeatureModule_Factory(t) {\n return new (t || SchemaFeatureModule)();\n };\n static ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: SchemaFeatureModule\n });\n static ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n providers: [{\n provide: SchemaPublisher,\n useFactory: useFactorySchemaCommandInvoker\n }, {\n provide: SchemaWarehouse,\n useFactory: useFactorySchemaWarehouse\n }, {\n provide: SchemaEventRepository,\n useFactory: useFactorySchemaEventRepository\n }],\n imports: [CommonModule]\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(SchemaFeatureModule, [{\n type: NgModule,\n args: [{\n imports: [CommonModule],\n providers: [{\n provide: SchemaPublisher,\n useFactory: useFactorySchemaCommandInvoker\n }, {\n provide: SchemaWarehouse,\n useFactory: useFactorySchemaWarehouse\n }, {\n provide: SchemaEventRepository,\n useFactory: useFactorySchemaEventRepository\n }],\n declarations: [],\n exports: []\n }]\n }], () => [], null);\n})();\nclass SanitizeModule {\n static ɵfac = function SanitizeModule_Factory(t) {\n return new (t || SanitizeModule)();\n };\n static ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: SanitizeModule\n });\n static ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [CommonModule]\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(SanitizeModule, [{\n type: NgModule,\n args: [{\n imports: [CommonModule],\n declarations: [SafePipe],\n exports: [SafePipe]\n }]\n }], null, null);\n})();\nclass ColumnQueryComponent {\n cellTemplate;\n header;\n headerTemplate;\n static ɵfac = function ColumnQueryComponent_Factory(t) {\n return new (t || ColumnQueryComponent)();\n };\n static ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: ColumnQueryComponent,\n selectors: [[\"gui-column\", \"header\", \"\"]],\n contentQueries: function ColumnQueryComponent_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, TemplateRef, 5, TemplateRef);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.cellTemplate = _t.first);\n }\n },\n inputs: {\n header: \"header\"\n },\n attrs: _c92,\n decls: 0,\n vars: 0,\n template: function ColumnQueryComponent_Template(rf, ctx) {},\n encapsulation: 2\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(ColumnQueryComponent, [{\n type: Component,\n args: [{\n selector: 'gui-column[header]',\n template: ''\n }]\n }], null, {\n cellTemplate: [{\n type: ContentChild,\n args: [TemplateRef, {\n read: TemplateRef,\n static: false\n }]\n }],\n header: [{\n type: Input\n }]\n });\n})();\nconst components = [ViewTemplatesComponent, EditTemplatesComponent, StringEditTemplateComponent, NumberEditTemplateComponent, BooleanEditTemplateComponent, DateEditTemplateComponent, ColumnQueryComponent, FunctionViewComponent, BarViewComponent, PercentageViewComponent, TextViewComponent, HtmlViewComponent];\nconst exportDeclarations$2 = [ViewTemplatesComponent, EditTemplatesComponent, ColumnQueryComponent, FabricChipModule, FabricCheckboxModule, FabricButtonModule, FabricInputModule, FunctionViewComponent, BarViewComponent, PercentageViewComponent, HtmlViewComponent];\ninitializeComposition();\nfunction provideCompositionCommandPublisher() {\n return CoreContainer.resolve(CompositionPublisher);\n}\nfunction provideCompositionWarehouse() {\n return CoreContainer.resolve(CompositionWarehouse);\n}\nfunction provideCompositionEventRepository() {\n return CoreContainer.resolve(CompositionEventRepository);\n}\nfunction provideColumnAutoConfigurator() {\n return CoreContainer.resolve(ColumnAutoConfigurator);\n}\nfunction provideColumnFieldFactory() {\n return CoreContainer.resolve(ColumnFieldFactory);\n}\nclass CompositionFeatureModule extends FeatureModule {\n constructor(cfr) {\n super();\n CoreContainer.provideValue(ComponentFactoryResolver, cfr);\n }\n static forComponent() {\n return [];\n }\n static ɵfac = function CompositionFeatureModule_Factory(t) {\n return new (t || CompositionFeatureModule)(i0.ɵɵinject(i0.ComponentFactoryResolver));\n };\n static ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: CompositionFeatureModule\n });\n static ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n providers: [{\n provide: CompositionPublisher,\n useFactory: provideCompositionCommandPublisher\n }, {\n provide: CompositionWarehouse,\n useFactory: provideCompositionWarehouse\n }, {\n provide: CompositionEventRepository,\n useFactory: provideCompositionEventRepository\n }, CompositionTemplateWarehouse, ViewTemplateRepository, ViewTemplateFactory, EditTemplateRepository, EditTemplateFactory, {\n provide: ColumnAutoConfigurator,\n useFactory: provideColumnAutoConfigurator\n }, {\n provide: ColumnFieldFactory,\n useFactory: provideColumnFieldFactory\n }],\n imports: [CommonModule, ReactiveFormsModule, SanitizeModule, FabricChipModule, FabricCheckboxModule, FabricButtonModule, FabricInputModule, FabricDatePickerModule, FabricChipModule, FabricCheckboxModule, FabricButtonModule, FabricInputModule]\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(CompositionFeatureModule, [{\n type: NgModule,\n args: [{\n imports: [CommonModule, ReactiveFormsModule, SanitizeModule, FabricChipModule, FabricCheckboxModule, FabricButtonModule, FabricInputModule, FabricDatePickerModule],\n declarations: [components],\n exports: [exportDeclarations$2],\n providers: [{\n provide: CompositionPublisher,\n useFactory: provideCompositionCommandPublisher\n }, {\n provide: CompositionWarehouse,\n useFactory: provideCompositionWarehouse\n }, {\n provide: CompositionEventRepository,\n useFactory: provideCompositionEventRepository\n }, CompositionTemplateWarehouse, ViewTemplateRepository, ViewTemplateFactory, EditTemplateRepository, EditTemplateFactory, {\n provide: ColumnAutoConfigurator,\n useFactory: provideColumnAutoConfigurator\n }, {\n provide: ColumnFieldFactory,\n useFactory: provideColumnFieldFactory\n }]\n }]\n }], () => [{\n type: i0.ComponentFactoryResolver\n }], null);\n})();\nconst structureGates = [StructureColumnHeaderGate, StructurePagingGate, StructureSearchingGate,\n// StructureSourceGate,\nStructureSelectionGate, StructureL10nGate, StructurePanelGate, StructureRowDetailGate, StructureColumnMenuGate, StructureSummariesGate, StructureInfoPanelGate, StructureRowClassGate, StructureRowStyleGate, StructureRowColoringGate, ThemeGridGate, StructureSortingGate, SourceLoadingGate, StructureFilterGate, StructureQuickFiltersGate, VerticalFormationGate];\nclass SetSourceLoadingEvent extends StructureDomainEvent {\n constructor(aggregateId) {\n super(aggregateId, null, 'SetSourceLoadingEvent');\n }\n}\nclass SourceSetLoadingCommand extends StructureCommand {\n enabled;\n constructor(structureId, enabled) {\n super(structureId, 'SourceSetLoadingCommand');\n this.enabled = enabled;\n }\n isEnabled() {\n return this.enabled;\n }\n}\nclass SourceSetLoadingCommandHandler {\n domainEventPublisher = CoreContainer.resolve(DomainEventPublisher);\n forCommand() {\n return SourceSetLoadingCommand;\n }\n handle(aggregate, command) {\n const enabled = command.isEnabled(),\n source = aggregate.getSource();\n source.setLoading(enabled);\n }\n publish(aggregate, command) {\n this.domainEventPublisher.publish(new SetSourceLoadingEvent(command.getAggregateId()));\n }\n}\nclass SetOriginCommand extends StructureCommand {\n items;\n constructor(structureId, items = []) {\n super(structureId, 'SetOriginCommand');\n this.items = items;\n }\n getItems() {\n return this.items;\n }\n}\nclass SetOriginCommandHandler {\n structureSourceDomainEventPublisher;\n constructor(structureSourceDomainEventPublisher) {\n this.structureSourceDomainEventPublisher = structureSourceDomainEventPublisher;\n }\n static services = [SourceDomainEventPublisher];\n forCommand() {\n return SetOriginCommand;\n }\n handle(structure, command) {\n const items = command.getItems();\n structure.setOrigin(items);\n }\n publish(aggregate, command) {\n const aggregateEvents = aggregate.getEvents();\n this.structureSourceDomainEventPublisher.publish(aggregateEvents);\n }\n}\nclass StructureEditSourceItemCommand extends StructureCommand {\n params;\n constructor(structureId, params) {\n super(structureId, 'StructureEditSourceItemCommand');\n this.params = params;\n }\n getParams() {\n return this.params;\n }\n}\nclass StructureEditSourceItemCommandHandler {\n structureSourceDomainEventPublisher;\n constructor(structureSourceDomainEventPublisher) {\n this.structureSourceDomainEventPublisher = structureSourceDomainEventPublisher;\n }\n static services = [SourceDomainEventPublisher];\n forCommand() {\n return StructureEditSourceItemCommand;\n }\n handle(structure, command) {\n const params = command.getParams();\n structure.editItem(params);\n }\n publish(aggregate, command) {\n const aggregateEvents = aggregate.getEvents();\n this.structureSourceDomainEventPublisher.publish(aggregateEvents);\n }\n}\nclass StructureSourceItemEditedAggregateEvent extends StructureAggregateEvent {\n beforeItem;\n afterItem;\n constructor(aggregateId, beforeItem, afterItem) {\n super(aggregateId, 'StructureSourceItemEditedAggregateEvent');\n this.beforeItem = beforeItem;\n this.afterItem = afterItem;\n }\n toDomainEvent() {\n return new StructureSourceItemEditedEvent(this.getAggregateId(), this.beforeItem, this.afterItem);\n }\n getBeforeItem() {\n return this.beforeItem;\n }\n getAfterItem() {\n return this.afterItem;\n }\n}\nclass StructureOriginChangedAggregateEvent extends StructureAggregateEvent {\n origin;\n constructor(aggregateId, origin) {\n super(aggregateId, 'StructureOriginChangedAggregateEvent');\n this.origin = origin;\n }\n toDomainEvent() {\n return new OriginSetEvent(this.getAggregateId(), this.origin);\n }\n getOrigin() {\n return this.origin;\n }\n}\nclass ItemEntityId extends EntityId {\n constructor(id) {\n super(id);\n }\n toString() {\n return this.getId();\n }\n}\nclass SourceManager {\n events = [];\n loading = false;\n fetched = false;\n origin;\n entities = [];\n // Entities after filtering, searching\n preparedEntities = [];\n slicedEntities = [];\n formationManager;\n constructor(formationManager) {\n this.formationManager = formationManager;\n this.events.push(...this.formationManager.init(true, RowSelectionMode.SINGLE, RowSelectionType.ROW));\n }\n isLoading() {\n return this.loading;\n }\n setLoading(enabled) {\n this.loading = enabled;\n }\n setEntities(ent) {\n this.entities = ent;\n this.recalculatePositions();\n }\n getEntities() {\n return this.entities;\n }\n setPreparedEntities() {\n this.preparedEntities = Array.from(this.entities);\n }\n getPreparedEntities() {\n return this.preparedEntities;\n }\n setSlicedEntities(ent) {\n this.slicedEntities = ent;\n }\n getSlicedEntities() {\n return this.slicedEntities;\n }\n setOrigin(items = [], structureId) {\n this.origin = this.convertItems(items);\n return this.createOriginChangedEvent(structureId);\n }\n setConvertedOrigin(items = [], structureId) {\n this.origin = Array.from(items);\n return this.createOriginChangedEvent(structureId);\n }\n getOrigin() {\n return this.origin;\n }\n editOriginItem(itemId, value, field, structureId) {\n const item = this.findOriginItem(itemId),\n itemBeforeChange = item.clone();\n if (item) {\n item.sourceItem[field.getAccessor()] = value;\n item.bumpVersion();\n }\n return [new StructureSourceItemEditedAggregateEvent(structureId, itemBeforeChange, item.clone()), this.createOriginChangedEvent(structureId)];\n }\n deleteAllSelected(structureId) {\n let events = [];\n const itemEntityIds = this.formationManager.getSelectedItemIds();\n itemEntityIds.forEach(itemEntityId => {\n events = events.concat(this.deleteOriginItemByItemId(itemEntityId, structureId));\n });\n return events;\n }\n deleteOriginItem(payload, structureId) {\n if (payload instanceof ItemEntityId) {\n return this.deleteOriginItemByItemId(payload, structureId);\n } else if (Array.isArray(payload)) {\n let events = [];\n payload.forEach(item => {\n events = events.concat(this.deleteOneOriginItem(item, structureId));\n });\n return events;\n } else if (Number.isInteger(payload)) {\n return this.deleteOriginItemByIndex(payload, structureId);\n } else {\n return [];\n }\n }\n addOriginItem(item, structureId) {\n this.origin.push(item);\n return [this.createOriginChangedEvent(structureId)];\n }\n setCustomConfig(config) {\n return this.formationManager.setCustomConfig(config);\n }\n selectCustom(id) {\n this.formationManager.selectCustom(id, this.getEntities());\n }\n selectAll() {\n this.formationManager.selectAll(this.getEntities().map(entity => entity.getId()));\n }\n unselectAll() {\n this.formationManager.unselectAll();\n }\n selectByIndex(indexes) {\n this.formationManager.selectByIndex(indexes, this.getEntities().map(e => e.getId()));\n }\n selectByIds(ids) {\n this.formationManager.selectByIds(ids, this.getEntities());\n }\n reSelect() {\n this.formationManager.reSelectByIds(this.getEntities());\n }\n setSelectedRows(selectedRows) {\n this.formationManager.selectRows(selectedRows, this.getEntities().map(e => e.getId()));\n }\n toggleRow(itemId, type) {\n this.formationManager.toggleRow(itemId, type, this.getEntities().map(e => e.getId()));\n }\n getFormation() {\n return this.formationManager;\n }\n convertItems(items) {\n return items.map((item, index) => {\n return new ItemEntity(new ItemEntityId(RandomStringGenerator.generate()), item, index);\n });\n }\n createOriginChangedEvent(structureId) {\n return new StructureOriginChangedAggregateEvent(structureId, this.origin);\n }\n findOriginItem(itemId) {\n return this.origin.find(item => item.getId().toString() === itemId);\n }\n findOriginItemIndex(itemId) {\n return this.origin.findIndex(item => item.getId().toString() === itemId);\n }\n recalculatePositions() {\n this.entities.forEach((ent, index) => {\n ent.setPosition(index);\n });\n }\n deleteOneOriginItem(item, structureId) {\n if (item instanceof ItemEntityId) {\n return this.deleteOriginItemByItemId(item, structureId);\n } else if (Number.isInteger(item)) {\n return this.deleteOriginItemByIndex(item, structureId);\n } else {\n return [];\n }\n }\n deleteOriginItemByItemId(itemId, structureId) {\n const index = this.findOriginItemIndex(itemId.toString());\n return this.deleteOriginItemByIndex(index, structureId);\n }\n deleteOriginItemByIndex(index, structureId) {\n if (index > -1) {\n const removedItems = this.origin.splice(index, 1);\n if (removedItems.length > 0) {\n for (const element of removedItems) {\n this.formationManager.unselectRow(element.getId());\n }\n this.formationManager.calculateAllSelected(removedItems.map(f => f.getId()));\n this.formationManager.calculateAllUnselected();\n }\n return [this.createOriginChangedEvent(structureId)];\n }\n return [];\n }\n deleteManyOriginItemByIndex(indexes, structureId) {\n let events = [];\n indexes.forEach(index => {\n events = events.concat(this.deleteOriginItemByIndex(index, structureId));\n });\n return events;\n }\n deleteManyOriginItemByItemID(itemIds, structureId) {\n let events = [];\n itemIds.forEach(itemId => {\n events = events.concat(this.deleteOriginItemByItemId(itemId, structureId));\n });\n return events;\n }\n}\nclass FormationSelection {\n mode;\n type;\n constructor(mode, type) {\n this.mode = mode;\n this.type = type;\n }\n setMode(mode) {\n this.mode = mode;\n }\n getMode() {\n if (this.type === RowSelectionType.RADIO) {\n return RowSelectionMode.SINGLE;\n } else {\n return this.mode;\n }\n }\n isSingle() {\n return this.getMode() === RowSelectionMode.SINGLE;\n }\n setType(type) {\n this.type = type;\n }\n getType() {\n return this.type;\n }\n}\nclass SelectionModeSetEvent extends StructureDomainEvent {\n mode;\n constructor(aggregateId, mode) {\n super(aggregateId, mode, 'SelectionModeSetEvent');\n this.mode = mode;\n }\n getMode() {\n return this.mode;\n }\n}\nclass SelectionModeSetAggregateEvent extends StructureAggregateEvent {\n mode;\n constructor(structureId, mode) {\n super(structureId, 'SelectionModeSetAggregateEvent');\n this.mode = mode;\n }\n toDomainEvent() {\n return new SelectionModeSetEvent(this.getAggregateId(), this.mode);\n }\n}\nclass SelectionTypeSetEvent extends StructureDomainEvent {\n selectionType;\n constructor(aggregateId, selectionType) {\n super(aggregateId, selectionType, 'SelectionTypeSetEvent');\n this.selectionType = selectionType;\n }\n getType() {\n return this.selectionType;\n }\n}\nclass SelectionTypeSetAggregateEvent extends StructureAggregateEvent {\n selectionType;\n constructor(structureId, selectionType) {\n super(structureId, 'SelectionTypeSetAggregateEvent');\n this.selectionType = selectionType;\n }\n toDomainEvent() {\n return new SelectionTypeSetEvent(this.getAggregateId(), this.selectionType);\n }\n}\nclass SelectionEnabledSetEvent extends StructureDomainEvent {\n enabled;\n constructor(aggregateId, enabled) {\n super(aggregateId, enabled, 'SelectionEnabledSetEvent');\n this.enabled = enabled;\n }\n isEnabled() {\n return this.enabled;\n }\n}\nclass SelectionEnabledSetAggregateEvent extends StructureAggregateEvent {\n enabled;\n constructor(structureId, enabled) {\n super(structureId, 'SelectionEnabledSetAggregateEvent');\n this.enabled = enabled;\n }\n toDomainEvent() {\n return new SelectionEnabledSetEvent(this.getAggregateId(), this.enabled);\n }\n}\nclass FormationCustomSelectId extends HermesId {\n constructor(uid) {\n super(uid);\n }\n toString() {\n return super.getId();\n }\n}\nclass FormationCustomSelectionFunctionModel {\n key;\n text;\n customSelectId;\n builtIn;\n method;\n constructor(key, text, customSelectId, builtIn, method) {\n this.key = key;\n this.text = text;\n this.customSelectId = customSelectId;\n this.builtIn = builtIn;\n this.method = method;\n }\n getKey() {\n return this.key;\n }\n getText() {\n return this.text;\n }\n getCustomSelectId() {\n return this.customSelectId;\n }\n isBuiltIn() {\n return this.builtIn;\n }\n customSelect(items) {\n return this.method(items);\n }\n}\nclass FormationCustomSelection {\n enabled;\n selections;\n constructor(enabled, selections) {\n this.enabled = enabled;\n this.selections = selections;\n }\n isEnabled() {\n return this.enabled;\n }\n getSelections() {\n return this.selections;\n }\n}\nclass FormationCustomManager {\n enabled;\n selections;\n static id = 0;\n constructor(enabled, selections) {\n this.enabled = enabled;\n this.selections = selections;\n }\n init() {\n return [];\n }\n isEnabled() {\n return this.enabled;\n }\n setEnabled(enabled) {\n this.enabled = enabled;\n }\n getSelections() {\n return this.selections;\n }\n setSelections(selections) {\n this.selections = selections.map(sel => {\n if (typeof sel === 'string') {\n return new FormationCustomSelectionFunctionModel('', sel, new FormationCustomSelectId(sel), true);\n } else {\n FormationCustomManager.id++;\n return new FormationCustomSelectionFunctionModel(sel.key, sel.text, new FormationCustomSelectId(`${FormationCustomManager.id}`), false, sel.select);\n }\n });\n }\n findSelection(id) {\n return Optional.of(this.selections.find(s => s.getCustomSelectId().equals(id)));\n }\n}\nclass FormationCustomSelectionChangeEvent extends StructureDomainEvent {\n customSelection;\n constructor(aggregateId, customSelection) {\n super(aggregateId, customSelection, 'FormationCustomSelectionChangeEvent');\n this.customSelection = customSelection;\n }\n getCustomSelection() {\n return this.customSelection;\n }\n}\nclass FormationCustomSelectionChangeAggregateEvent extends StructureAggregateEvent {\n customSelection;\n constructor(structureId, customSelection) {\n super(structureId, 'FormationCustomSelectionChangeAggregateEvent');\n this.customSelection = customSelection;\n }\n toDomainEvent() {\n return new FormationCustomSelectionChangeEvent(this.getAggregateId(), this.customSelection);\n }\n}\nclass FormationManager {\n id;\n selectedItemIds;\n enabled;\n selection = new FormationSelection(RowSelectionMode.SINGLE, RowSelectionType.ROW);\n allSelected;\n allUnselected;\n customSelection;\n matcher = item => item.id;\n constructor(id, selectedItemIds) {\n this.id = id;\n this.selectedItemIds = selectedItemIds;\n }\n init(enabled, mode, type) {\n this.enabled = enabled;\n this.selection.setMode(mode);\n this.selection.setType(type);\n this.customSelection = new FormationCustomManager(false, [new FormationCustomSelectionFunctionModel('select_all', 'SELECT_ALL', new FormationCustomSelectId('SELECT_ALL'), true), new FormationCustomSelectionFunctionModel('UNSELECT_ALL', 'UNSELECT_ALL', new FormationCustomSelectId('UNSELECT_ALL'), true), new FormationCustomSelectionFunctionModel('', 'INVERT', new FormationCustomSelectId('INVERT'), true)]);\n return [new SelectionEnabledSetAggregateEvent(this.getId(), this.enabled), new SelectionModeSetAggregateEvent(this.getId(), this.selection.getMode()), new SelectionTypeSetAggregateEvent(this.getId(), this.selection.getType()), new FormationCustomSelectionChangeAggregateEvent(this.getId(), new FormationCustomSelection(this.customSelection.isEnabled(), this.customSelection.getSelections()))];\n }\n setSelection(enabled) {\n this.enabled = enabled;\n return [new SelectionEnabledSetAggregateEvent(this.getId(), this.enabled)];\n }\n setMode(mode) {\n this.selection.setMode(mode);\n return [new SelectionModeSetAggregateEvent(this.getId(), this.selection.getMode()), new SelectionTypeSetAggregateEvent(this.getId(), this.selection.getType())];\n }\n setType(type) {\n this.selection.setType(type);\n return [new SelectionModeSetAggregateEvent(this.getId(), this.selection.getMode()), new SelectionTypeSetAggregateEvent(this.getId(), this.selection.getType())];\n }\n setMatcher(matcher) {\n this.matcher = matcher;\n }\n setCustomConfig(config) {\n if (config?.enabled) {\n this.customSelection.setEnabled(config.enabled);\n }\n if (config?.selections) {\n this.customSelection.setSelections(config.selections);\n }\n return [new FormationCustomSelectionChangeAggregateEvent(this.getId(), new FormationCustomSelection(this.customSelection.isEnabled(), this.customSelection.getSelections()))];\n }\n isAllSelected() {\n return this.allSelected;\n }\n isAllUnselected() {\n return this.allUnselected;\n }\n getSelectedItemIds() {\n return Array.from(this.selectedItemIds).map(id => new ItemEntityId(id));\n }\n selectCustom(id, itemEntities) {\n this.customSelection.findSelection(id).ifPresent(s => {\n if (s.isBuiltIn()) {\n switch (s.getCustomSelectId().toString()) {\n case 'SELECT_ALL':\n this.selectAll(itemEntities.map(i => i.getId()));\n break;\n case 'UNSELECT_ALL':\n this.unselectAll();\n break;\n case 'INVERT':\n this.invertSelected(itemEntities.map(i => i.getId()));\n break;\n default:\n break;\n }\n } else {\n const selectedItems = s.customSelect(itemEntities);\n this.selectedItemIds = new Set(selectedItems.map(item => item.getId().toString()));\n }\n });\n }\n selectAll(allEntityIds) {\n this.selectedItemIds = new Set(allEntityIds.map(id => id.toString()));\n this.allSelected = true;\n this.allUnselected = false;\n }\n unselectAll() {\n this.selectedItemIds.clear();\n this.allSelected = false;\n this.allUnselected = true;\n }\n invertSelected(allEntityIds) {\n const selectedItemIds = this.getSelectedItemIds();\n const a = allEntityIds.filter(id => {\n return !selectedItemIds.some(selId => selId.equals(id));\n });\n this.selectedItemIds = new Set(a.map(id => id.toString()));\n this.calculateAllSelected(allEntityIds);\n this.calculateAllUnselected();\n }\n reSelectByIds(itemEntities) {\n this.selectByIds(this.getSelectedItemIds().map(i => i.getId()), itemEntities);\n this.calculateAllSelected(itemEntities.map(i => i.getId()));\n this.calculateAllUnselected();\n }\n selectByIds(ids, itemEntities) {\n if (!this.enabled) {\n return;\n }\n const itemIds = [];\n for (let i = 0; i < ids.length; i++) {\n const items = itemEntities.filter(item => {\n return this.matcher(item.getSourceItem()) === ids[i];\n }).map(item => item.getId().toString());\n itemIds.push(...items);\n }\n let type = RowSelectToggleType.ADD;\n if (this.selection.isSingle()) {\n type = RowSelectToggleType.NONE;\n }\n itemIds.forEach(id => {\n this.toggleRowByType(type, id);\n });\n this.calculateAllSelected(itemEntities.map(i => i.getId()));\n this.calculateAllUnselected();\n }\n selectByIndex(indexes, allEntityIds) {\n if (!this.enabled) {\n return;\n }\n const itemIds = indexes.map(i => {\n if (!allEntityIds[i]) {\n console.error('Item not found');\n }\n return allEntityIds[i].toString();\n });\n let type = RowSelectToggleType.ADD;\n if (this.selection.isSingle()) {\n type = RowSelectToggleType.NONE;\n }\n itemIds.forEach(id => {\n this.toggleRowByType(type, id);\n });\n this.calculateAllSelected(allEntityIds);\n this.calculateAllUnselected();\n }\n selectRows(itemIds, itemEntityIds) {}\n toggleRow(itemId, type, itemEntityIds) {\n if (!this.enabled) {\n return;\n }\n if (type === RowSelectToggleType.ADD && this.selection.isSingle()) {\n type = RowSelectToggleType.NONE;\n }\n this.toggleRowByType(type, itemId);\n this.calculateAllSelected(itemEntityIds);\n this.calculateAllUnselected();\n }\n calculateAllSelected(itemEntityIds) {\n if (itemEntityIds.length !== this.selectedItemIds.size) {\n this.allSelected = false;\n } else {\n const rows = Array.from(this.selectedItemIds);\n let equal = true;\n rows.sort();\n itemEntityIds.sort();\n for (let i = 0; i < rows.length; i += 1) {\n if (rows[i] !== itemEntityIds[i].toString()) {\n equal = false;\n break;\n }\n }\n this.allSelected = equal;\n }\n }\n calculateAllUnselected() {\n this.allUnselected = this.selectedItemIds.size === 0;\n }\n unselectRow(itemEntityId) {\n if (this.selectedItemIds.has(itemEntityId.toString())) {\n this.selectedItemIds.delete(itemEntityId.toString());\n }\n }\n getId() {\n return this.id;\n }\n getType() {\n return this.selection.getType();\n }\n toggleRowByType(type, itemId) {\n switch (type) {\n case RowSelectToggleType.NONE:\n if (this.selectedItemIds.has(itemId)) {\n this.selectedItemIds.delete(itemId);\n } else {\n this.selectedItemIds.clear();\n this.selectedItemIds.add(itemId);\n }\n break;\n case RowSelectToggleType.ADD:\n if (this.selectedItemIds.has(itemId)) {\n this.selectedItemIds.delete(itemId);\n } else {\n this.selectedItemIds.add(itemId);\n }\n break;\n case RowSelectToggleType.RANGE:\n break;\n default:\n break;\n }\n }\n}\nclass FormationManagerFactory {\n create(id) {\n return new FormationManager(id, new Set());\n }\n}\nclass SourceManagerFactory {\n formationManagerFactory;\n constructor(formationManagerFactory) {\n this.formationManagerFactory = formationManagerFactory;\n }\n static services = [FormationManagerFactory];\n createDefault(id) {\n const fm = this.formationManagerFactory.create(id);\n return new SourceManager(fm);\n }\n create(id) {\n const fm = this.formationManagerFactory.create(id);\n return new SourceManager(fm);\n }\n}\nvar DeleteCommandPayloadType;\n(function (DeleteCommandPayloadType) {\n DeleteCommandPayloadType[DeleteCommandPayloadType[\"INDEX\"] = 0] = \"INDEX\";\n DeleteCommandPayloadType[DeleteCommandPayloadType[\"ITEM_ID\"] = 1] = \"ITEM_ID\";\n DeleteCommandPayloadType[DeleteCommandPayloadType[\"MANY_INDEX\"] = 2] = \"MANY_INDEX\";\n DeleteCommandPayloadType[DeleteCommandPayloadType[\"MANY_ITEM_ID\"] = 3] = \"MANY_ITEM_ID\";\n})(DeleteCommandPayloadType || (DeleteCommandPayloadType = {}));\nclass DeleteOriginItemCommand extends StructureCommand {\n payload;\n type;\n constructor(structureId, payload, type) {\n super(structureId, 'DeleteOriginItemCommand');\n this.payload = payload;\n this.type = type;\n }\n static byIndex(structureId, index) {\n return new DeleteOriginItemCommand(structureId, index, DeleteCommandPayloadType.INDEX);\n }\n static byManyIndex(structureId, indexes) {\n return new DeleteOriginItemCommand(structureId, indexes, DeleteCommandPayloadType.MANY_INDEX);\n }\n static byItemId(structureId, itemId) {\n return new DeleteOriginItemCommand(structureId, itemId, DeleteCommandPayloadType.ITEM_ID);\n }\n static byManyItemId(structureId, itemIds) {\n return new DeleteOriginItemCommand(structureId, itemIds, DeleteCommandPayloadType.MANY_ITEM_ID);\n }\n getType() {\n return this.type;\n }\n getPayload() {\n return this.payload;\n }\n}\nclass DeleteOriginItemCommandHandler {\n forCommand() {\n return DeleteOriginItemCommand;\n }\n handle(aggregate, command) {\n aggregate.deleteItem(command.getPayload());\n }\n}\nclass StructureSourceOriginArchive extends AggregateArchive {\n static default = [];\n constructor() {\n super(StructureSourceOriginArchive.default);\n }\n}\nclass StructureOriginChangedEventHandler {\n structureSourceOriginRepository;\n constructor(structureSourceOriginRepository) {\n this.structureSourceOriginRepository = structureSourceOriginRepository;\n }\n static services = [StructureSourceOriginArchive];\n forEvent() {\n return OriginSetEvent;\n }\n handle(event) {\n if (event.ofMessageType('OriginSetEvent')) {\n const origin = event.getOrigin();\n this.structureSourceOriginRepository.next(event.getAggregateId(), origin);\n }\n }\n}\nclass StructurePreparedItemsArchive extends AggregateArchive {\n static default = [];\n constructor() {\n super(StructurePreparedItemsArchive.default);\n }\n /**\n * @deprecated\n */\n getPreparedItems(structureId) {\n return this.find(structureId).getValueOrNullOrThrowError();\n }\n}\nclass StructurePreparedItemsEventHandler {\n structurePreparedItemsRepository;\n constructor(structurePreparedItemsRepository) {\n this.structurePreparedItemsRepository = structurePreparedItemsRepository;\n }\n static services = [StructurePreparedItemsArchive];\n forEvent() {\n return StructurePreparedEntitiesSetEvent;\n }\n handle(event) {\n if (event.ofMessageType('StructurePreparedEntitiesSetEvent')) {\n const preparedItems = event.getPreparedItems();\n this.structurePreparedItemsRepository.next(event.getAggregateId(), preparedItems);\n }\n }\n}\nclass SourceDomainModule {\n defineAggregate() {\n return null;\n }\n registerKey() {\n return structureKey;\n }\n registerProviders(container) {\n container.provide(StructureSourceOriginArchive);\n container.provide(SourceManagerFactory);\n container.provide(SourceDomainEventPublisher);\n }\n registerCommandHandlers() {\n return [SourceSetLoadingCommandHandler, SetOriginCommandHandler, StructureEditSourceItemCommandHandler, DeleteOriginItemCommandHandler];\n }\n registerDomainEventHandler() {\n return [StructureOriginChangedEventHandler, StructurePreparedItemsEventHandler];\n }\n registerMultiDomainEventHandler() {\n return [];\n }\n}\nclass SourceDomainWarehouse extends SourceWarehouse {\n structureRepository;\n structurePreparedItemsRepository;\n structureSourceOriginRepository;\n constructor(structureRepository, structurePreparedItemsRepository, structureSourceOriginRepository) {\n super();\n this.structureRepository = structureRepository;\n this.structurePreparedItemsRepository = structurePreparedItemsRepository;\n this.structureSourceOriginRepository = structureSourceOriginRepository;\n }\n static services = [StructureReadModelRepository, StructurePreparedItemsArchive, StructureSourceOriginArchive];\n findItems(structureId) {\n return this.structureRepository.getStructure(structureId).getEntities();\n }\n onItems(structureId) {\n return this.structureRepository.on(structureId).pipe(hermesMap(structure => structure.getEntities()), hermesDistinctUntilChanged((ents1, ents2) => {\n if (ents1.length !== ents2.length) {\n return false;\n }\n let flag = true;\n ents1.forEach((ent, index) => {\n if (!ent.equals(ents2[index])) {\n flag = false;\n return;\n }\n });\n return flag;\n }));\n }\n onItemsSize(structureId) {\n return this.onItems(structureId).pipe(hermesMap(entities => {\n return entities.length;\n }));\n }\n onceItems(structureId) {\n return singleFromObservable(this.onItems(structureId));\n }\n onOriginSize(structureId) {\n return this.structureSourceOriginRepository.on(structureId).pipe(hermesMap(origin => origin.length));\n }\n onLoading(structureId) {\n return this.structureRepository.on(structureId).pipe(hermesMap(structure => structure.getSource().isLoading()));\n }\n onPreparedItems(structureId) {\n return this.structurePreparedItemsRepository.on(structureId);\n }\n findPreparedItems(structureId) {\n return this.structurePreparedItemsRepository.getPreparedItems(structureId);\n }\n}\nclass SourceDomainPublisher extends SourcePublisher {\n commandDispatcher;\n fieldWarehouse;\n sourceReadModelService;\n constructor(commandDispatcher, fieldWarehouse, sourceReadModelService) {\n super();\n this.commandDispatcher = commandDispatcher;\n this.fieldWarehouse = fieldWarehouse;\n this.sourceReadModelService = sourceReadModelService;\n }\n static services = [CommandDispatcher, FieldWarehouse, SourceWarehouse];\n setOrigin(items, structureId) {\n this.commandDispatcher.dispatch(new SetOriginCommand(structureId, items));\n }\n setLoading(enabled, structureId) {\n this.commandDispatcher.dispatch(new SourceSetLoadingCommand(structureId, enabled));\n }\n editItem(params, structureId) {\n this.commandDispatcher.dispatch(new StructureEditSourceItemCommand(structureId, params));\n }\n editItemByIndex(itemIndex, fieldIndex, value, structureId) {\n const itemId$ = toRxJsObservable(this.sourceReadModelService.onceItems(structureId).pipe(hermesMap(entities => {\n return entities[itemIndex].getId();\n })));\n const fieldId$ = toRxJsObservable(this.fieldWarehouse.onFields(structureId));\n fromRxJsObservable(zip(itemId$, fieldId$)).pipe(hermesTake(1)).subscribe(array => {\n const itemId = array[0],\n fields = array[1];\n this.editItem(new StructureEditSourceItemParams(itemId, fields[fieldIndex], value), structureId);\n });\n }\n deleteRow(row, structureId) {\n if (row.getItemId() !== undefined) {\n this.deleteItemById(row.getItemId(), structureId);\n } else if (row.getIndex() !== undefined) {\n this.deleteItemByIndex(row.getIndex(), structureId);\n }\n }\n deleteRows(rows, structureId) {\n if (rows.length > 0) {\n if (rows[0].getItemId() !== undefined) {\n this.deleteManyItemsByItemIds(rows.map(r => r.getItemId()), structureId);\n } else if (rows[0].getIndex() !== undefined) {\n this.deleteManyItemsByIndex(rows.map(r => r.getIndex()), structureId);\n }\n }\n }\n deleteItemByIndex(index, structureId) {\n this.commandDispatcher.dispatch(DeleteOriginItemCommand.byIndex(structureId, index));\n }\n deleteItemById(itemId, structureId) {\n this.commandDispatcher.dispatch(DeleteOriginItemCommand.byItemId(structureId, itemId));\n }\n deleteManyItemsByIndex(indexes, structureId) {\n this.commandDispatcher.dispatch(DeleteOriginItemCommand.byManyIndex(structureId, indexes));\n }\n deleteManyItemsByItemIds(itemIds, structureId) {\n this.commandDispatcher.dispatch(DeleteOriginItemCommand.byManyItemId(structureId, itemIds));\n }\n}\nclass SourceApiModule {\n registerProviders(container) {\n container.provide(SourcePublisher, SourceDomainPublisher);\n container.provide(SourceWarehouse, SourceDomainWarehouse);\n container.provide(SourceEventService);\n container.provide(StructurePreparedItemsArchive);\n container.provide(SourceConverter);\n }\n}\nfunction initializeSource() {\n new DomainInitializer(new SourceApiModule(), new SourceDomainModule()).init();\n}\ninitializeSource();\nfunction provideSourceCommandInvoker() {\n return CoreContainer.resolve(SourcePublisher);\n}\nfunction provideSourceWarehouse() {\n return CoreContainer.resolve(SourceWarehouse);\n}\nfunction provideSourceEventRepository() {\n return CoreContainer.resolve(SourceEventService);\n}\nclass SourceFeatureModule extends FeatureModule {\n static forComponent() {\n return [];\n }\n static ɵfac = /* @__PURE__ */(() => {\n let ɵSourceFeatureModule_BaseFactory;\n return function SourceFeatureModule_Factory(t) {\n return (ɵSourceFeatureModule_BaseFactory || (ɵSourceFeatureModule_BaseFactory = i0.ɵɵgetInheritedFactory(SourceFeatureModule)))(t || SourceFeatureModule);\n };\n })();\n static ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: SourceFeatureModule\n });\n static ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n providers: [{\n provide: SourcePublisher,\n useFactory: provideSourceCommandInvoker\n }, {\n provide: SourceWarehouse,\n useFactory: provideSourceWarehouse\n }, {\n provide: SourceEventService,\n useFactory: provideSourceEventRepository\n }],\n imports: [CommonModule]\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(SourceFeatureModule, [{\n type: NgModule,\n args: [{\n imports: [CommonModule],\n declarations: [],\n exports: [],\n providers: [{\n provide: SourcePublisher,\n useFactory: provideSourceCommandInvoker\n }, {\n provide: SourceWarehouse,\n useFactory: provideSourceWarehouse\n }, {\n provide: SourceEventService,\n useFactory: provideSourceEventRepository\n }]\n }]\n }], null, null);\n})();\nCoreContainer.provide(CssClassModifier);\nfunction provideCssClassModifier() {\n return CoreContainer.resolve(CssClassModifier);\n}\nclass CssClassModule {\n static ɵfac = function CssClassModule_Factory(t) {\n return new (t || CssClassModule)();\n };\n static ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: CssClassModule\n });\n static ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n providers: [{\n provide: CssClassModifier,\n useFactory: provideCssClassModifier\n }]\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(CssClassModule, [{\n type: NgModule,\n args: [{\n providers: [{\n provide: CssClassModifier,\n useFactory: provideCssClassModifier\n }]\n }]\n }], null, null);\n})();\nclass StructureSharedModule {\n static ɵfac = function StructureSharedModule_Factory(t) {\n return new (t || StructureSharedModule)();\n };\n static ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: StructureSharedModule\n });\n static ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [CssClassModule]\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(StructureSharedModule, [{\n type: NgModule,\n args: [{\n imports: [CssClassModule]\n }]\n }], null, null);\n})();\nclass ResizeDetectorModule {\n static ɵfac = function ResizeDetectorModule_Factory(t) {\n return new (t || ResizeDetectorModule)();\n };\n static ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: ResizeDetectorModule\n });\n static ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n providers: [ResizeDetector]\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(ResizeDetectorModule, [{\n type: NgModule,\n args: [{\n providers: [ResizeDetector]\n }]\n }], null, null);\n})();\nclass RowSelectedReadModel {\n itemIds;\n allSelected;\n allUnselected;\n constructor(itemIds, allSelected, allUnselected) {\n this.itemIds = itemIds;\n this.allSelected = allSelected;\n this.allUnselected = allUnselected;\n }\n getAll() {\n return this.itemIds;\n }\n isSelected(id) {\n return this.itemIds.some(itemId => itemId === id);\n }\n isAllSelected() {\n return this.allSelected;\n }\n isAllUnselected() {\n return this.allUnselected;\n }\n isIndeterminate() {\n return !(this.isAllSelected() || this.isAllUnselected());\n }\n}\nclass RowSelectedArchive extends AggregateArchive {\n static default = new RowSelectedReadModel([], false, false);\n constructor() {\n super(RowSelectedArchive.default);\n }\n}\nclass SetEnabledSelectionCommand extends StructureCommand {\n enabled;\n constructor(structureId, enabled) {\n super(structureId, 'SetEnabledSelectionCommand');\n this.enabled = enabled;\n }\n isEnabled() {\n return this.enabled;\n }\n}\nclass SetEnabledSelectionCommandHandler {\n forCommand() {\n return SetEnabledSelectionCommand;\n }\n handle(aggregate, command) {\n aggregate.setSelection(command.isEnabled());\n }\n}\nclass ToggleSelectedRowCommand extends StructureCommand {\n selectedRow;\n type;\n constructor(structureId, selectedRow, type) {\n super(structureId, 'ToggleSelectedRowCommand');\n this.selectedRow = selectedRow;\n this.type = type;\n }\n getSelectedRow() {\n return this.selectedRow;\n }\n getType() {\n return this.type;\n }\n}\nclass ToggleSelectedRowCommandHandler {\n forCommand() {\n return ToggleSelectedRowCommand;\n }\n handle(aggregate, command) {\n const selectedRow = command.getSelectedRow(),\n type = command.getType();\n aggregate.toggleRow(selectedRow, type);\n }\n}\nclass SelectedRowChangedEventHandler {\n rowSelectedArchive;\n constructor(rowSelectedArchive) {\n this.rowSelectedArchive = rowSelectedArchive;\n }\n static services = [RowSelectedArchive];\n forEvent() {\n return SelectedRowChangedEvent;\n }\n handle(rowChangedEvent) {\n if (rowChangedEvent.ofMessageType('SelectedRowChangedEvent')) {\n const rowSelectedRead = new RowSelectedReadModel(rowChangedEvent.getSelectedRows(), rowChangedEvent.isAllSelected(), rowChangedEvent.isAllUnselected());\n this.rowSelectedArchive.next(rowChangedEvent.getAggregateId(), rowSelectedRead);\n }\n }\n}\nclass SetSelectionModeCommand extends StructureCommand {\n mode;\n constructor(structureId, mode) {\n super(structureId, 'SetSelectionModeCommand');\n this.mode = mode;\n }\n getMode() {\n return this.mode;\n }\n}\nclass SetSelectionModeCommandHandler {\n forCommand() {\n return SetSelectionModeCommand;\n }\n handle(aggregate, command) {\n aggregate.setSelectionMode(command.getMode());\n }\n}\nclass SelectAllRowsCommand extends StructureCommand {\n constructor(structureId) {\n super(structureId, 'SelectAllRowsCommand');\n }\n}\nclass SelectAllRowsCommandHandler {\n forCommand() {\n return SelectAllRowsCommand;\n }\n handle(aggregate, command) {\n aggregate.selectAll();\n }\n}\nclass UnselectAllRowsCommand extends StructureCommand {\n constructor(structureId) {\n super(structureId, 'UnselectAllRowsCommand');\n }\n}\nclass UnselectAllRowsCommandHandler {\n forCommand() {\n return UnselectAllRowsCommand;\n }\n handle(aggregate, command) {\n aggregate.unselectAll();\n }\n}\nclass SetSelectionTypeCommand extends StructureCommand {\n type;\n constructor(structureId, type) {\n super(structureId, 'SetSelectionTypeCommand');\n this.type = type;\n }\n getType() {\n return this.type;\n }\n}\nclass SetSelectionTypeCommandHandler {\n forCommand() {\n return SetSelectionTypeCommand;\n }\n handle(aggregate, command) {\n aggregate.setSelectionType(command.getType());\n }\n}\nclass FormationTypeRepository extends EventDrivenRepository {\n constructor() {\n super();\n }\n forEvent() {\n return SelectionTypeSetEvent;\n }\n}\nclass FormationModeRepository extends EventDrivenRepository {\n constructor() {\n super();\n }\n forEvent() {\n return SelectionModeSetEvent;\n }\n}\nclass FormationEnabledRepository extends EventDrivenRepository {\n constructor() {\n super();\n }\n forEvent() {\n return SelectionEnabledSetEvent;\n }\n}\nclass SetSelectedRowCommand extends StructureCommand {\n selectedRows;\n constructor(structureId, selectedRows) {\n super(structureId, 'SetSelectedRowCommand');\n this.selectedRows = selectedRows;\n }\n getSelectedRows() {\n return this.selectedRows;\n }\n}\nclass SetSelectedRowCommandHandler {\n forCommand() {\n return SetSelectedRowCommand;\n }\n handle(aggregate, command) {\n const selectedRows = command.getSelectedRows();\n aggregate.setSelectedRows(selectedRows);\n }\n}\nclass SelectRowByIndexCommand extends StructureCommand {\n indexes;\n constructor(structureId, indexes) {\n super(structureId, 'SelectRowByIndexCommand');\n this.indexes = indexes;\n }\n getIndexes() {\n return this.indexes;\n }\n}\nclass SelectRowByIndexCommandHandler {\n forCommand() {\n return SelectRowByIndexCommand;\n }\n handle(aggregate, command) {\n const selectedRowIndexes = command.getIndexes();\n aggregate.selectByIndex(selectedRowIndexes);\n }\n}\nclass SelectRowByIdCommand extends StructureCommand {\n ids;\n constructor(structureId, ids) {\n super(structureId, 'SelectRowByIdCommand');\n this.ids = ids;\n }\n getIds() {\n return this.ids;\n }\n}\nclass SelectRowByIdCommandHandler {\n forCommand() {\n return SelectRowByIdCommand;\n }\n handle(aggregate, command) {\n const selectedRowIds = command.getIds();\n aggregate.selectByIds(selectedRowIds);\n }\n}\nclass FormationSetMatcherCommand extends StructureCommand {\n matcher;\n constructor(structureId, matcher) {\n super(structureId, 'FormationSetMatcherCommand');\n this.matcher = matcher;\n }\n getMatcher() {\n return this.matcher;\n }\n}\nclass FormationSetMatcherCommandHandler {\n forCommand() {\n return FormationSetMatcherCommand;\n }\n handle(aggregate, command) {\n const matcher = command.getMatcher();\n aggregate.setFormationMatcher(matcher);\n }\n}\nclass FormationCustomRepository extends EventDrivenRepository {\n constructor() {\n super();\n }\n forEvent() {\n return FormationCustomSelectionChangeEvent;\n }\n}\nclass FormationCustomSelectCommand extends StructureCommand {\n customSelectId;\n constructor(structureId, customSelectId) {\n super(structureId, 'FormationCustomSelectCommand');\n this.customSelectId = customSelectId;\n }\n getCustomSelectId() {\n return this.customSelectId;\n }\n}\nclass FormationCustomSelectCommandHandler {\n forCommand() {\n return FormationCustomSelectCommand;\n }\n handle(aggregate, command) {\n const customSelectId = command.getCustomSelectId();\n aggregate.selectCustom(customSelectId);\n }\n}\nclass FormationSetCustomSelectConfigCommand extends StructureCommand {\n config;\n constructor(structureId, config) {\n super(structureId, 'FormationSetCustomSelectConfigCommand');\n this.config = config;\n }\n getConfig() {\n return this.config;\n }\n}\nclass FormationSetCustomSelectConfigCommandHandler {\n forCommand() {\n return FormationSetCustomSelectConfigCommand;\n }\n handle(aggregate, command) {\n const config = command.getConfig();\n aggregate.setSelectionCustomConfig(config);\n }\n}\nclass FormationDomainModule {\n defineAggregate() {\n return null;\n }\n registerKey() {\n return structureKey;\n }\n registerProviders(container) {\n container.provide(FormationManagerFactory);\n }\n registerCommandHandlers() {\n return [SetEnabledSelectionCommandHandler, SetSelectionModeCommandHandler, SetSelectionTypeCommandHandler, SelectAllRowsCommandHandler, UnselectAllRowsCommandHandler, ToggleSelectedRowCommandHandler, SetSelectedRowCommandHandler, SelectRowByIndexCommandHandler, SelectRowByIdCommandHandler, FormationSetMatcherCommandHandler, FormationCustomSelectCommandHandler, FormationSetCustomSelectConfigCommandHandler];\n }\n registerDomainEventHandler() {\n return [SelectedRowChangedEventHandler, FormationTypeRepository, FormationModeRepository, FormationEnabledRepository, FormationCustomRepository];\n }\n registerMultiDomainEventHandler() {\n return [];\n }\n}\nclass FormationDomainWarehouse extends FormationWarehouse {\n rowSelectedRepository;\n formationModeRepository;\n formationTypeRepository;\n formationEnabledRepository;\n formationCustomRepository;\n sourceWarehouse;\n constructor(rowSelectedRepository, formationModeRepository, formationTypeRepository, formationEnabledRepository, formationCustomRepository, sourceWarehouse) {\n super();\n this.rowSelectedRepository = rowSelectedRepository;\n this.formationModeRepository = formationModeRepository;\n this.formationTypeRepository = formationTypeRepository;\n this.formationEnabledRepository = formationEnabledRepository;\n this.formationCustomRepository = formationCustomRepository;\n this.sourceWarehouse = sourceWarehouse;\n }\n static services = [RowSelectedArchive, FormationModeRepository, FormationTypeRepository, FormationEnabledRepository, FormationCustomRepository, SourceWarehouse];\n findSelectedRows(structureId) {\n const items = this.sourceWarehouse.findPreparedItems(structureId),\n selectedItemIds = this.findSelectedItemIds(structureId).getValueOrNullOrThrowError();\n const selectedItems = [],\n length = items.length;\n for (let i = 0; i < length; i += 1) {\n const item = items[i];\n if (selectedItemIds.some(itemId => itemId === item.getId().toString())) {\n selectedItems.push(new SelectedRow(item.getSourceItem(), i, item.getId()));\n }\n }\n return Optional.of(selectedItems);\n }\n onRowSelectedReadModel(structureId) {\n return this.rowSelectedRepository.on(structureId);\n }\n findSelectedItemIds(structureId) {\n return this.rowSelectedRepository.find(structureId).map(r => {\n return r.getAll();\n });\n }\n onSelectedRows(structureId) {\n return this.rowSelectedRepository.on(structureId).pipe(hermesMap(rm => {\n return rm.getAll();\n }));\n }\n onMode(structureId) {\n return this.formationModeRepository.on(structureId);\n }\n onType(structureId) {\n return this.formationTypeRepository.on(structureId);\n }\n onSelectionEnabled(structureId) {\n return this.formationEnabledRepository.on(structureId);\n }\n onCustomSelections(structureId) {\n return this.formationCustomRepository.on(structureId);\n }\n}\nclass FormationDomainPublisher extends FormationPublisher {\n commandDispatcher;\n constructor(commandDispatcher) {\n super();\n this.commandDispatcher = commandDispatcher;\n }\n static services = [CommandDispatcher];\n setSelection(enabled, structureId) {\n this.commandDispatcher.dispatch(new SetEnabledSelectionCommand(structureId, enabled));\n }\n selectRows(selectedRow, structureId) {\n this.commandDispatcher.dispatch(new SetSelectedRowCommand(structureId, selectedRow));\n }\n selectByIndex(indexes, structureId) {\n this.commandDispatcher.dispatch(new SelectRowByIndexCommand(structureId, indexes));\n }\n selectByIds(ids, structureId) {\n this.commandDispatcher.dispatch(new SelectRowByIdCommand(structureId, ids));\n }\n toggleSelectedRow(selectedRow, type, structureId) {\n this.commandDispatcher.dispatch(new ToggleSelectedRowCommand(structureId, selectedRow, type));\n }\n changeMode(mode, structureId) {\n this.commandDispatcher.dispatch(new SetSelectionModeCommand(structureId, mode));\n }\n changeType(type, structureId) {\n this.commandDispatcher.dispatch(new SetSelectionTypeCommand(structureId, type));\n }\n setMatcher(matcher, structureId) {\n this.commandDispatcher.dispatch(new FormationSetMatcherCommand(structureId, matcher));\n }\n selectAll(structureId) {\n this.commandDispatcher.dispatch(new SelectAllRowsCommand(structureId));\n }\n unselectAll(structureId) {\n this.commandDispatcher.dispatch(new UnselectAllRowsCommand(structureId));\n }\n selectCustom(id, structureId) {\n this.commandDispatcher.dispatch(new FormationCustomSelectCommand(structureId, id));\n }\n setCustomSelection(config, structureId) {\n this.commandDispatcher.dispatch(new FormationSetCustomSelectConfigCommand(structureId, config));\n }\n}\nclass FormationApiModule {\n registerProviders(container) {\n container.provide(RowSelectedArchive);\n container.provide(FormationEventRepository);\n container.provide(FormationPublisher, FormationDomainPublisher);\n container.provide(FormationWarehouse, FormationDomainWarehouse);\n }\n}\nfunction initializeFormation() {\n new DomainInitializer(new FormationApiModule(), new FormationDomainModule()).init();\n}\nclass SelectCustomComponent extends SmartComponent {\n changeDetectorRef;\n structureSelectCustomService;\n structureId;\n formationCommandDispatcher;\n formationWarehouse;\n // @ViewChild('selectCustomContainer', { static: true })\n headerDialogContainer;\n options = ['a', 'b'];\n context = useReactiveContext();\n constructor(changeDetectorRef, elementRef, structureSelectCustomService, structureId, formationCommandDispatcher, formationWarehouse) {\n super(changeDetectorRef, elementRef);\n this.changeDetectorRef = changeDetectorRef;\n this.structureSelectCustomService = structureSelectCustomService;\n this.structureId = structureId;\n this.formationCommandDispatcher = formationCommandDispatcher;\n this.formationWarehouse = formationWarehouse;\n }\n openConfigDialog() {\n this.structureSelectCustomService.open(this.headerDialogContainer);\n }\n getSelectorName() {\n return 'gui-select-custom';\n }\n static ɵfac = function SelectCustomComponent_Factory(t) {\n return new (t || SelectCustomComponent)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(StructureSelectCustomService), i0.ɵɵdirectiveInject(StructureId), i0.ɵɵdirectiveInject(FormationPublisher), i0.ɵɵdirectiveInject(FormationWarehouse));\n };\n static ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: SelectCustomComponent,\n selectors: [[\"gui-select-custom\"]],\n features: [i0.ɵɵProvidersFeature([StructureSelectCustomService]), i0.ɵɵInheritDefinitionFeature],\n decls: 3,\n vars: 0,\n consts: [[\"selectCustomContainer\", \"\"], [3, \"click\"], [\"gui-structure-menu-icon\", \"\"]],\n template: function SelectCustomComponent_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"div\", 1, 0);\n i0.ɵɵlistener(\"click\", function SelectCustomComponent_Template_div_click_0_listener() {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx.openConfigDialog());\n });\n i0.ɵɵelement(2, \"div\", 2);\n i0.ɵɵelementEnd();\n }\n },\n encapsulation: 2,\n changeDetection: 0\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(SelectCustomComponent, [{\n type: Component,\n args: [{\n selector: 'gui-select-custom',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [StructureSelectCustomService],\n template: \"
\\n\\t
\\n
\\n\"\n }]\n }], () => [{\n type: i0.ChangeDetectorRef\n }, {\n type: i0.ElementRef\n }, {\n type: StructureSelectCustomService\n }, {\n type: StructureId\n }, {\n type: FormationPublisher\n }, {\n type: FormationWarehouse\n }], null);\n})();\ninitializeFormation();\nfunction provideFormationCommandInvoker() {\n return CoreContainer.resolve(FormationPublisher);\n}\nfunction provideFormationWarehouse() {\n return CoreContainer.resolve(FormationWarehouse);\n}\nfunction provideFormationEventRepository() {\n return CoreContainer.resolve(FormationEventRepository);\n}\nclass FormationFeatureModule extends FeatureModule {\n static ɵfac = /* @__PURE__ */(() => {\n let ɵFormationFeatureModule_BaseFactory;\n return function FormationFeatureModule_Factory(t) {\n return (ɵFormationFeatureModule_BaseFactory || (ɵFormationFeatureModule_BaseFactory = i0.ɵɵgetInheritedFactory(FormationFeatureModule)))(t || FormationFeatureModule);\n };\n })();\n static ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: FormationFeatureModule\n });\n static ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n providers: [{\n provide: FormationPublisher,\n useFactory: provideFormationCommandInvoker\n }, {\n provide: FormationWarehouse,\n useFactory: provideFormationWarehouse\n }, {\n provide: FormationEventRepository,\n useFactory: provideFormationEventRepository\n }],\n imports: [CommonModule, GuiTemplateModule, FabricCheckboxModule, FabricTooltipModule]\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(FormationFeatureModule, [{\n type: NgModule,\n args: [{\n imports: [CommonModule, GuiTemplateModule, FabricCheckboxModule, FabricTooltipModule],\n declarations: [SelectAllComponent, SelectCustomComponent, SelectCustomModalComponent],\n exports: [SelectAllComponent, SelectCustomComponent, SelectCustomModalComponent],\n providers: [{\n provide: FormationPublisher,\n useFactory: provideFormationCommandInvoker\n }, {\n provide: FormationWarehouse,\n useFactory: provideFormationWarehouse\n }, {\n provide: FormationEventRepository,\n useFactory: provideFormationEventRepository\n }]\n }]\n }], null, null);\n})();\nclass CreateStructureCommand extends StructureCommand {\n constructor(structureId) {\n super(structureId, 'CreateStructureCommand');\n }\n}\nclass CreateStructureCommandHandler {\n forCommand() {\n return CreateStructureCommand;\n }\n}\nclass StructurePreparedEntitiesSetAggregateEvent extends StructureAggregateEvent {\n preparedItems;\n constructor(aggregateId, preparedItems) {\n super(aggregateId, 'StructurePreparedEntitiesSetAggregateEvent');\n this.preparedItems = preparedItems;\n }\n toDomainEvent() {\n return new StructurePreparedEntitiesSetEvent(this.getAggregateId(), this.preparedItems);\n }\n getPreparedItems() {\n return this.preparedItems;\n }\n}\nclass FieldsInitedAggregateEvent extends StructureAggregateEvent {\n fieldConfigs;\n fields;\n constructor(structureId, fieldConfigs,\n // TODO merge\n fields) {\n super(structureId, 'FieldsInitedAggregateEvent');\n this.fieldConfigs = fieldConfigs;\n this.fields = fields;\n }\n toDomainEvent() {\n return new FieldsInitedEvent(this.getAggregateId(), this.fieldConfigs, this.fields);\n }\n getFieldConfigs() {\n return this.fieldConfigs;\n }\n getFields() {\n return this.fields;\n }\n}\nclass StructureCreatedAggregateEvent extends StructureAggregateEvent {\n constructor(aggregateId) {\n super(aggregateId, 'StructureCreatedAggregateEvent');\n }\n toDomainEvent() {\n return new StructureCreatedEvent(this.getAggregateId());\n }\n}\nclass FilterTypesInitedAggregateEvent extends StructureAggregateEvent {\n filterTypes;\n constructor(structureId, filterTypes) {\n super(structureId, 'FilterTypesInitedAggregateEvent');\n this.filterTypes = filterTypes;\n }\n toDomainEvent() {\n return new FilterTypesInitedEvent(this.getAggregateId(), this.filterTypes);\n }\n getFilterTypes() {\n return this.filterTypes;\n }\n}\nclass AllFiltersRemovedAggregateEvent extends StructureAggregateEvent {\n constructor(aggregateId) {\n super(aggregateId, 'FilterAddedEvent');\n }\n toDomainEvent() {\n return new ActiveFiltersSetEvent(this.getAggregateId(), []);\n }\n}\nclass FilterAddedAggregateEvent extends StructureAggregateEvent {\n activeFilters;\n constructor(aggregateId, activeFilters) {\n super(aggregateId, 'FilterAddedEvent');\n this.activeFilters = activeFilters;\n }\n toDomainEvent() {\n return new ActiveFiltersSetEvent(this.getAggregateId(), this.activeFilters);\n }\n}\nclass FilterRemovedAggregateEvent extends StructureAggregateEvent {\n activeFilters;\n constructor(aggregateId, activeFilters) {\n super(aggregateId, 'FilterRemovedAggregateEvent');\n this.activeFilters = activeFilters;\n }\n toDomainEvent() {\n return new ActiveFiltersSetEvent(this.getAggregateId(), this.activeFilters);\n }\n}\nclass UniqueFilterCalculatedAggregateEvent extends StructureAggregateEvent {\n map;\n constructor(aggregateId, map) {\n super(aggregateId, 'UniqueFilterCalculatedAggregateEvent');\n this.map = map;\n }\n toDomainEvent() {\n return new UniqueFilterCalculatedEvent(this.getAggregateId(), this.map);\n }\n}\nclass UniqueFilterSelectedAggregateEvent extends StructureAggregateEvent {\n constructor(aggregateId) {\n super(aggregateId, 'UniqueFilterSelectedAggregateEvent');\n }\n toDomainEvent() {\n return new UniqueFilterSelectedEvent(this.getAggregateId());\n }\n}\nclass UniqueFilterUnselectedAggregateEvent extends StructureAggregateEvent {\n constructor(aggregateId) {\n super(aggregateId, 'UniqueFilterUnselectedAggregateEvent');\n }\n toDomainEvent() {\n return new UniqueFilterUnselectedEvent(this.getAggregateId());\n }\n}\nclass AllUniqueFilterUnselectedAggregateEvent extends StructureAggregateEvent {\n constructor(aggregateId) {\n super(aggregateId, 'AllUniqueFilterUnselectedAggregateEvent');\n }\n toDomainEvent() {\n return new AllUniqueFilterUnselectedEvent(this.getAggregateId());\n }\n}\nclass AllUniqueFilterSelectedAggregateEvent extends StructureAggregateEvent {\n constructor(aggregateId) {\n super(aggregateId, 'AllUniqueFilterSelectedAggregateEvent');\n }\n toDomainEvent() {\n return new AllUniqueFilterSelectedEvent(this.getAggregateId());\n }\n}\nclass SelectedRowChangedAggregateEvent extends StructureAggregateEvent {\n selectedRows;\n allSelected;\n allUnselected;\n constructor(structureId, selectedRows, allSelected, allUnselected) {\n super(structureId, 'SelectedRowChangedAggregateEvent');\n this.selectedRows = selectedRows;\n this.allSelected = allSelected;\n this.allUnselected = allUnselected;\n }\n toDomainEvent() {\n return new SelectedRowChangedEvent(this.getAggregateId(), this.selectedRows, this.allSelected, this.allUnselected);\n }\n}\nclass StructureAggregate extends AggregateRoot {\n pagingManager;\n sourceManager;\n sorterManager;\n filterManager;\n searchManager;\n verticalFormation;\n fieldCollection;\n summariesManager;\n uniqueFilterManager;\n constructor(structureId, pagingAggregate, sourceManager, verticalFormation, summariesManager, sorterCollection, filterManager, uniqueFilterManager, searchManager, fieldCollection) {\n super(structureId, structureKey);\n this.pagingManager = pagingAggregate;\n this.sourceManager = sourceManager;\n this.verticalFormation = verticalFormation;\n this.summariesManager = summariesManager;\n this.sorterManager = sorterCollection;\n this.filterManager = filterManager;\n this.uniqueFilterManager = uniqueFilterManager;\n this.searchManager = searchManager;\n this.fieldCollection = fieldCollection;\n this.addEvent(this.sourceManager.events);\n this.sourceManager.events = [];\n }\n createEvent() {\n return StructureCreatedAggregateEvent;\n }\n clearEvents() {\n super.clearEvents();\n this.pagingManager.clearEvents();\n }\n init() {\n this.initTheme();\n }\n setVerticalFormationEnabled(enabled) {\n this.verticalFormation.setEnabled(enabled);\n this.calculateSource();\n }\n getVerticalFormation() {\n return this.verticalFormation;\n }\n setSummariesEnabled(enabled) {\n this.summariesManager.setEnabled(enabled);\n this.calculateSource();\n return this.getEvents();\n }\n setOrigin(items) {\n this.addEvent(this.sourceManager.setOrigin(items, this.getId()));\n // if (false) {\n this.calculateUniqueValues();\n // }\n this.calculateSource();\n return this.getEvents();\n }\n deleteItem(payload) {\n this.addEvent(this.sourceManager.deleteOriginItem(payload, this.getId()));\n this.generateSelectedRowChangedEvent();\n this.calculateSource();\n }\n editItem(editParams) {\n const itemId = editParams.getItemId(),\n fieldId = editParams.getColumnFieldId(),\n field = this.fieldCollection.getField(fieldId),\n // as FieldId\n value = editParams.getValue();\n const editItemEvents = this.sourceManager.editOriginItem(itemId, value, field, this.getId());\n editItemEvents.forEach(e => this.addEvent(e));\n // TODO\n this.calculateUniqueValues();\n this.calculateSource();\n return this.getEvents();\n }\n setHeight(height) {\n this.verticalFormation.setViewportHeight(height);\n this.calculateSourceBasedOnVirtualScroll();\n }\n setTheme(theme) {\n // #1707 Move to SchemeAggregate\n if (theme === SchemaTheme.MATERIAL) {\n this.getVerticalFormation().setRowHeight(52);\n }\n if (theme === SchemaTheme.GENERIC) {\n this.getVerticalFormation().setRowHeight(42);\n }\n if (theme === SchemaTheme.FABRIC) {\n this.getVerticalFormation().setRowHeight(36);\n }\n if (theme === SchemaTheme.LIGHT) {\n this.getVerticalFormation().setRowHeight(56);\n }\n if (theme === SchemaTheme.DARK) {\n this.getVerticalFormation().setRowHeight(38);\n }\n }\n setScrollPosition(position) {\n this.verticalFormation.setScrollPosition(position);\n this.calculateSourceBasedOnVirtualScroll();\n }\n scrollToIndex(index) {\n this.addEvent(this.verticalFormation.scrollToIndex(index));\n }\n setSelection(enabled) {\n this.sourceManager.getFormation().setSelection(enabled);\n this.addEvent(new SelectionEnabledSetAggregateEvent(this.getId(), enabled));\n }\n setSelectionMode(mode) {\n this.addEvent(this.sourceManager.getFormation().setMode(mode));\n }\n setSelectionType(type) {\n this.addEvent(this.sourceManager.getFormation().setType(type));\n }\n setFormationMatcher(matcher) {\n this.getFormation().setMatcher(matcher);\n this.sourceManager.reSelect();\n this.generateSelectedRowChangedEvent();\n }\n selectByIndex(indexes) {\n this.sourceManager.selectByIndex(indexes);\n this.generateSelectedRowChangedEvent();\n }\n selectByIds(ids) {\n this.sourceManager.selectByIds(ids);\n this.generateSelectedRowChangedEvent();\n }\n /**\n *\n * Doesnt' work\n */\n setSelectedRows(selectedRows) {\n this.sourceManager.setSelectedRows(selectedRows);\n this.generateSelectedRowChangedEvent();\n }\n setSelectionCustomConfig(config) {\n this.addEvent(this.sourceManager.setCustomConfig(config));\n }\n toggleRow(selectedRow, type) {\n this.sourceManager.toggleRow(selectedRow, type);\n this.generateSelectedRowChangedEvent();\n }\n selectCustom(id) {\n this.sourceManager.selectCustom(id);\n this.generateSelectedRowChangedEvent();\n }\n selectAll() {\n this.sourceManager.selectAll();\n this.generateSelectedRowChangedEvent();\n }\n unselectAll() {\n this.sourceManager.unselectAll();\n this.generateSelectedRowChangedEvent();\n }\n getFormation() {\n return this.sourceManager.getFormation();\n }\n getPaging() {\n return this.pagingManager;\n }\n changePaging(config) {\n this.pagingManager.change(config);\n this.calculateSource();\n }\n setPaging(paging) {\n this.pagingManager = paging;\n this.calculateSource();\n }\n nextPage() {\n this.pagingManager.nextPage();\n this.calculateSource();\n }\n prevPage() {\n this.pagingManager.prevPage();\n this.calculateSource();\n }\n changePageSize(pageSize) {\n const pagingEvents = this.pagingManager.changePageSize(pageSize);\n // TODO\n pagingEvents.forEach(event => {\n this.addEvent(event);\n });\n this.calculateSource();\n return this.getEvents();\n }\n getEntities() {\n return this.sourceManager.getSlicedEntities();\n }\n getSource() {\n return this.sourceManager;\n }\n createFields(fieldConfigs) {\n this.fieldCollection.initFields(fieldConfigs);\n const fields = this.fieldCollection.getAllFields();\n this.addEvent(new FieldsInitedAggregateEvent(this.getId(), fieldConfigs, fields));\n this.filterManager.assignFilterTypes(fields);\n this.addEvent(new FilterTypesInitedAggregateEvent(this.getId(), this.filterManager.getFilterTypes()));\n return this.getEvents();\n }\n setSortingConfig(config) {\n this.sorterManager.setConfig(config);\n }\n toggleSort(fieldId) {\n const field = this.fieldCollection.getField(fieldId);\n this.sorterManager.toggle(field);\n this.calculateSource();\n return this.sorterManager.getAll();\n }\n setSortOrder(fieldId, sortOrder) {\n const field = this.fieldCollection.getField(fieldId);\n this.sorterManager.setSortOrder(field, sortOrder);\n this.calculateSource();\n return this.sorterManager.getAll();\n }\n setFilterConfig(config) {\n this.filterManager.getSettings().setFilterConfig(config);\n }\n setQuickFiltersConfig(config) {\n this.filterManager.getSettings().setQuickFiltersConfig(config);\n }\n toggleFilter(fieldId, externalFilterId, filterValue) {\n const field = this.fieldCollection.getField(fieldId);\n // Field not found\n // TODO throw aggregate event\n if (field === undefined) {\n return [];\n }\n // this.filterManager.addFilter(field, externalFilterId, filterValue);\n this.calculateSource();\n return [];\n }\n addFilter(fieldId, filterTypeId, value) {\n this.filterManager.add(fieldId, filterTypeId, value);\n const fields = this.fieldCollection.getFieldsAsMap();\n const activeFilters = this.filterManager.getAllActiveFilters(fields);\n this.addEvent(new FilterAddedAggregateEvent(this.getId(), activeFilters));\n this.calculateSource();\n }\n removeAllFilters() {\n this.filterManager.removeAll();\n this.addEvent(new AllFiltersRemovedAggregateEvent(this.getId()));\n this.calculateSource();\n }\n removeFilter(filterId) {\n this.filterManager.remove(filterId);\n const fields = this.fieldCollection.getFieldsAsMap();\n const activeFilters = this.filterManager.getAllActiveFilters(fields);\n this.addEvent(new FilterRemovedAggregateEvent(this.getId(), activeFilters));\n this.calculateSource();\n }\n setSearchingConfig(config) {\n this.filterManager.getSettings().setSearchingConfig(config);\n }\n addSearchPhrase(phrase) {\n const fields = this.fieldCollection.getAllFields();\n this.searchManager.addSearchPhrase(fields, phrase);\n this.calculateSource();\n return [];\n }\n removeSearchPhrase() {\n this.searchManager.removeSearchFilters();\n this.calculateSource();\n return [];\n }\n selectAllUniqueFilter(fieldId) {\n this.uniqueFilterManager.selectAll(fieldId);\n this.addEvent(new AllUniqueFilterSelectedAggregateEvent(this.getId()));\n this.generateCalculateUniqueValuesAggregateEvent();\n this.calculateSource();\n }\n selectUniqueFilter(fieldId, uniqueValueId) {\n this.uniqueFilterManager.select(fieldId, uniqueValueId);\n this.addEvent(new UniqueFilterSelectedAggregateEvent(this.getId()));\n this.generateCalculateUniqueValuesAggregateEvent();\n this.calculateSource();\n }\n unselectAllUniqueFilter(fieldId) {\n this.uniqueFilterManager.unselectAll(fieldId);\n this.addEvent(new AllUniqueFilterUnselectedAggregateEvent(this.getId()));\n this.generateCalculateUniqueValuesAggregateEvent();\n this.calculateSource();\n }\n unselectUniqueFilter(fieldId, uniqueValueId) {\n this.uniqueFilterManager.unselect(fieldId, uniqueValueId);\n this.addEvent(new UniqueFilterUnselectedAggregateEvent(this.getId()));\n this.generateCalculateUniqueValuesAggregateEvent();\n this.calculateSource();\n }\n calculateSource() {\n if (!this.sourceManager.getOrigin() || !this.pagingManager) {\n return;\n }\n // TODO Refactor\n this.sourceManager.setEntities(this.sourceManager.getOrigin());\n // filtering\n this.sourceManager.setEntities(this.filterManager.filter(this.sourceManager.getEntities(), this.fieldCollection.getFieldsAsMap()));\n // search\n const searchedEntities = this.searchManager.search(this.sourceManager.getEntities());\n this.sourceManager.setEntities(searchedEntities);\n // unique filtering\n if (true) {\n // this.sourceManager.setEntities(\n // \tthis.uniqueFilterManager.filterAll(this.sourceManager.getEntities(), this.fieldCollection.getAllFields())\n // );\n }\n // sorting\n const ents = this.sorterManager.sort(this.sourceManager.getEntities());\n this.sourceManager.setEntities(ents);\n // calculate filteredEntities\n this.sourceManager.setPreparedEntities();\n this.pagingManager.setSourceSize(this.sourceManager.getPreparedEntities().length);\n this.addEvent(new StructurePreparedEntitiesSetAggregateEvent(this.getId(), ents));\n // summaries\n const summariesEvents = this.summariesManager.calculate(this.fieldCollection.getAllFields(), this.sourceManager.getEntities());\n summariesEvents.forEach(ae => {\n this.addEvent(ae);\n });\n // paging\n this.sourceManager.setEntities(this.pagingManager.sample(this.sourceManager.getEntities()));\n this.verticalFormation.setSourceSize(this.sourceManager.getEntities().length);\n this.calculateSourceBasedOnVirtualScroll();\n }\n calculateSourceBasedOnVirtualScroll() {\n if (this.verticalFormation.isEnabled()) {\n const range = this.verticalFormation.getRange();\n this.sourceManager.setSlicedEntities(this.sourceManager.getEntities().slice(range.getStart(), range.getEnd()));\n } else {\n this.sourceManager.setSlicedEntities(this.sourceManager.getEntities());\n }\n }\n initTheme() {\n // TODO\n const theme = SchemaAggregate.DEFAULT_THEME;\n this.setTheme(theme);\n }\n calculateUniqueValues() {\n const fields = this.fieldCollection.getAllFields(),\n items = this.sourceManager.getOrigin();\n this.uniqueFilterManager.calculateAll(items, fields);\n this.generateCalculateUniqueValuesAggregateEvent();\n }\n generateCalculateUniqueValuesAggregateEvent() {\n this.addEvent(new UniqueFilterCalculatedAggregateEvent(this.getId(), this.uniqueFilterManager.getAll(this.fieldCollection.getAllFields())));\n }\n generateSelectedRowChangedEvent() {\n this.addEvent(new SelectedRowChangedAggregateEvent(this.getId(), this.sourceManager.getFormation().getSelectedItemIds().map(i => i.toString()), this.sourceManager.getFormation().isAllSelected(), this.sourceManager.getFormation().isAllUnselected()));\n }\n}\nclass Sorter {\n sorterId;\n columnId;\n field;\n rank = 1;\n direction;\n constructor(id, field, direction = true) {\n this.sorterId = id;\n this.field = field;\n this.direction = direction;\n }\n getId() {\n return this.sorterId;\n }\n getRank() {\n return this.rank;\n }\n getField() {\n return this.field;\n }\n hasDirection() {\n return this.direction;\n }\n changeDirection() {\n this.direction = !this.direction;\n }\n setDirection(direction) {\n this.direction = direction;\n }\n sort(entities) {\n if (entities.length === 0) {\n return entities;\n }\n return entities.sort((entityOne, entityTwo) => {\n return this.field.sort(entityOne, entityTwo, this.direction);\n });\n }\n}\nclass SorterId {\n sorterId;\n constructor(id) {\n this.sorterId = id;\n }\n getId() {\n return this.sorterId;\n }\n}\nclass SorterManager {\n enabled;\n multi;\n sorters = new Map();\n constructor(enabled = false, multi = false) {\n this.enabled = enabled;\n this.multi = multi;\n }\n setConfig(config) {\n if (config && config.enabled !== undefined && config.enabled !== null) {\n this.enabled = config.enabled;\n }\n if (config && config.multiSorting !== undefined && config.multiSorting !== null) {\n this.multi = config.multiSorting;\n this.sorters.clear();\n }\n }\n toggle(field) {\n const fieldId = field.getId(),\n sorter = this.sorters.get(fieldId.getId());\n if (sorter) {\n if (sorter.hasDirection()) {\n sorter.changeDirection();\n } else {\n this.delete(fieldId);\n }\n } else {\n this.add(field);\n }\n }\n setSortOrder(field, sortOrder) {\n const fieldId = field.getId(),\n sorter = this.sorters.get(fieldId.getId());\n if (sortOrder === SortOrder.NONE) {\n this.delete(fieldId);\n } else if (sortOrder === SortOrder.ASC || sortOrder === SortOrder.DESC) {\n this.delete(fieldId);\n const direction = sortOrder === SortOrder.ASC;\n this.add(field, direction);\n }\n }\n add(field, direction = true) {\n this.addSorter(field.getId(), new Sorter(new SorterId(RandomStringGenerator.generate()), field, direction));\n }\n addSorter(fieldId, sorter) {\n if (!this.multi) {\n this.sorters.clear();\n }\n this.sorters.set(fieldId.getId(), sorter);\n }\n delete(fieldId) {\n this.sorters.delete(fieldId.getId());\n }\n update() {}\n // TODO Remove the loop from sorter.sort\n sort(entities) {\n const sorters = this.getAll();\n let sortedEntities = Array.from(entities);\n for (const sorter of sorters) {\n sortedEntities = sorter.sort(sortedEntities);\n }\n return sortedEntities;\n }\n getAll() {\n if (!this.enabled) {\n return [];\n }\n return Array.from(this.sorters).map(arr => arr[1]).sort((sorterOne, sorterTwo) => {\n return sorterOne.getRank() - sorterTwo.getRank();\n }).reverse();\n }\n}\nclass UniqueValue {\n id;\n value;\n displayValue;\n enabled;\n constructor(id, value, displayValue, enabled) {\n this.id = id;\n this.value = value;\n this.displayValue = displayValue;\n this.enabled = enabled;\n }\n getId() {\n return this.id;\n }\n getValue() {\n return this.value;\n }\n getDisplayValue() {\n return this.displayValue;\n }\n isEnabled() {\n return this.enabled;\n }\n isDisabled() {\n return !this.enabled;\n }\n select() {\n this.enabled = true;\n }\n unselect() {\n this.enabled = false;\n }\n}\nclass UniqueValueId {\n id;\n constructor(uniqueValueId) {\n this.id = uniqueValueId;\n }\n toString() {\n return this.id;\n }\n equals(uniqueValueId) {\n return uniqueValueId.toString() === this.id;\n }\n}\nclass UniqueValueIdGenerator {\n static index = 0;\n static generate() {\n UniqueValueIdGenerator.index += 1;\n return new UniqueValueId(`${UniqueValueIdGenerator.index}`);\n }\n}\nclass UniqueValueCollection {\n values = [];\n allSelected;\n allDisabled;\n constructor(values, field) {\n for (const value of values) {\n this.values.push(new UniqueValue(UniqueValueIdGenerator.generate(), value, field.getDisplayValue(value), true));\n }\n this.calculateAllSelected();\n this.calculateAllDisabled();\n }\n getAll() {\n return this.values;\n }\n isAllSelected() {\n return this.allSelected;\n }\n isAllDisabled() {\n return this.allDisabled;\n }\n getNotSelected() {\n return this.values.filter(uv => uv.isDisabled());\n }\n selectAll() {\n this.values.forEach(uv => {\n uv.select();\n });\n this.allSelected = true;\n this.allDisabled = false;\n }\n select(uniqueValueId) {\n this.values.filter(uv => uv.getId().equals(uniqueValueId)).forEach(uv => {\n uv.select();\n });\n this.calculateAllSelected();\n this.calculateAllDisabled();\n }\n unselectAll() {\n this.values.forEach(uv => {\n uv.unselect();\n });\n this.allSelected = false;\n this.allDisabled = true;\n }\n unselect(uniqueValueId) {\n this.values.filter(uv => uv.getId().equals(uniqueValueId)).forEach(uv => {\n uv.unselect();\n });\n this.calculateAllSelected();\n this.calculateAllDisabled();\n }\n calculateAllSelected() {\n this.allSelected = !this.values.some(f => f.isDisabled());\n }\n calculateAllDisabled() {\n this.allDisabled = !this.values.some(f => f.isEnabled());\n }\n}\nclass UniqueFilterManager {\n uniqueValueMap = new KeyMap();\n calculate(entities, field) {\n const fieldId = field.getId();\n const optUVM = this.uniqueValueMap.find(fieldId);\n optUVM.ifEmpty(() => {\n const set = new Set();\n for (const entity of entities) {\n set.add(field.getValue(entity));\n }\n // sort\n const sortedValues = Array.from(set.values()).sort((a, b) => {\n return field.getField().sort(a, b);\n });\n const uvc = new UniqueValueCollection(sortedValues, field);\n this.uniqueValueMap.set(field.getId(), uvc);\n });\n }\n calculateAll(entities, fields) {\n for (const field of fields) {\n this.calculate(entities, field);\n }\n }\n filterAll(entities, fields) {\n let values = entities;\n for (const field of fields) {\n values = this.filter(values, field);\n }\n return values;\n }\n filter(entities, field) {\n let values = [];\n this.uniqueValueMap.find(field.getId()).ifPresent(uvc => {\n if (uvc.isAllSelected()) {\n values = entities;\n } else if (uvc.isAllDisabled()) {\n values = [];\n } else {\n values = entities.filter(itemEntity => {\n for (const notSelectedValue of uvc.getNotSelected()) {\n if (field.getField().equals(itemEntity, notSelectedValue.getValue())) {\n return false;\n }\n }\n return true;\n });\n }\n });\n return values;\n }\n selectAll(fieldId) {\n this.uniqueValueMap.find(fieldId).ifPresent(uvc => {\n uvc.selectAll();\n });\n }\n select(fieldId, uniqueValueId) {\n this.uniqueValueMap.find(fieldId).ifPresent(uvc => {\n uvc.select(uniqueValueId);\n });\n }\n unselectAll(fieldId) {\n this.uniqueValueMap.find(fieldId).ifPresent(uvc => {\n uvc.unselectAll();\n });\n }\n unselect(fieldId, uniqueValueId) {\n this.uniqueValueMap.find(fieldId).ifPresent(uvc => {\n uvc.unselect(uniqueValueId);\n });\n }\n getAll(fields) {\n const map = new Map();\n for (const field of fields) {\n this.getValues(field).ifPresent(v => {\n map.set(field.getId().toString(), v);\n });\n }\n return map;\n }\n getValues(field) {\n return this.uniqueValueMap.find(field.getId()).map(uvc => {\n return uvc.getAll();\n });\n }\n}\nclass StructureAggregateFactory extends AggregateFactory {\n pagingAggregateFactory;\n sourceManagerFactory;\n verticalFormationFactory;\n summariesManagerFactory;\n filterManagerFactory;\n searchManagerFactory;\n fieldCollectionFactory;\n constructor(pagingAggregateFactory, sourceManagerFactory, verticalFormationFactory, summariesManagerFactory, filterManagerFactory, searchManagerFactory, fieldCollectionFactory) {\n super();\n this.pagingAggregateFactory = pagingAggregateFactory;\n this.sourceManagerFactory = sourceManagerFactory;\n this.verticalFormationFactory = verticalFormationFactory;\n this.summariesManagerFactory = summariesManagerFactory;\n this.filterManagerFactory = filterManagerFactory;\n this.searchManagerFactory = searchManagerFactory;\n this.fieldCollectionFactory = fieldCollectionFactory;\n }\n static services = [PagingManagerFactory, SourceManagerFactory, VerticalFormationFactory, SummariesManagerFactory, FilterManagerFactory, SearchManagerFactory, FieldCollectionFactory];\n create(structureId) {\n const paging = this.pagingAggregateFactory.createDefault(),\n source = this.sourceManagerFactory.createDefault(structureId),\n verticalFormation = this.verticalFormationFactory.create(structureId);\n const sorterContainer = new SorterManager(),\n filterContainer = this.filterManagerFactory.create(false),\n fieldContainer = this.fieldCollectionFactory.create(),\n summariesManager = this.summariesManagerFactory.create(structureId),\n searchManager = this.searchManagerFactory.create();\n const structureAggregate = new StructureAggregate(structureId, paging, source, verticalFormation, summariesManager, sorterContainer, filterContainer, new UniqueFilterManager(), searchManager, fieldContainer);\n this.init(structureAggregate);\n return structureAggregate;\n }\n init(structureAggregate) {\n structureAggregate.init();\n }\n}\nclass StructureAggregateRepository extends AggregateRepository {}\nclass InMemoryStructureAggregateStore extends InMemoryAggregateStore {\n constructor(inMemoryStructureStore) {\n super(inMemoryStructureStore);\n }\n static services = [InMemoryStructureStore];\n}\nclass InMemoryStructureAggregateRepository extends StructureAggregateRepository {\n inMemoryStructureAggregateStore;\n constructor(inMemoryStructureAggregateStore) {\n super();\n this.inMemoryStructureAggregateStore = inMemoryStructureAggregateStore;\n }\n static services = [InMemoryStructureAggregateStore];\n findById(aggregateId) {\n return this.inMemoryStructureAggregateStore.findById(aggregateId);\n }\n save(aggregate) {\n this.inMemoryStructureAggregateStore.save(aggregate);\n }\n}\nclass StructureCreatedEventHandler {\n summariesEnabledArchive;\n constructor(summariesEnabledArchive) {\n this.summariesEnabledArchive = summariesEnabledArchive;\n }\n static services = [SummariesEnabledArchive];\n forEvent() {\n return StructureCreatedEvent;\n }\n handle(event) {\n if (event.ofMessageType('StructureCreatedEvent')) {\n const structureId = event.getAggregateId();\n this.summariesEnabledArchive.init(structureId);\n }\n }\n}\nclass StructureDomainModule {\n defineAggregate() {\n return {\n aggregateKey: structureKey,\n createCommandHandler: CreateStructureCommandHandler,\n factory: StructureAggregateFactory,\n repository: InMemoryStructureAggregateRepository\n };\n }\n registerKey() {\n return structureKey;\n }\n registerProviders(container) {\n // container.provide(ListViewDispatcher);\n }\n registerCommandHandlers() {\n return [\n // SetListViewModeCommandHandler,\n // ToggleListViewSelectorCommandHandler\n ];\n }\n registerDomainEventHandler() {\n return [StructureCreatedEventHandler];\n }\n registerMultiDomainEventHandler() {\n return [];\n }\n}\nclass FilterAddedEvent extends StructureDomainEvent {\n fieldId;\n filterTypeId;\n value;\n constructor(aggregateId, fieldId, filterTypeId, value) {\n super(aggregateId, {\n fieldId,\n filterTypeId,\n value\n }, 'FilterAddedEvent');\n this.fieldId = fieldId;\n this.filterTypeId = filterTypeId;\n this.value = value;\n }\n}\nclass InMemoryStructureRepository extends StructureReadModelRepository {\n inMemoryStructureReadStore;\n structureIdToStructure = new Map();\n hermesStructure$ = new HermesReplaySubject(1);\n constructor(inMemoryStructureReadStore) {\n super();\n this.inMemoryStructureReadStore = inMemoryStructureReadStore;\n }\n static services = [InMemoryStructureReadStore];\n getStructure(structureId) {\n return this.structureIdToStructure.get(structureId.getId());\n }\n on(structureId) {\n return this.hermesStructure$.toObservable().pipe(hermesFilter(structureIdToStructure => {\n const key = structureId.getId();\n return structureIdToStructure.has(key);\n }), hermesMap(structureIdToStructure => {\n return structureIdToStructure.get(structureId.getId());\n }));\n }\n forEvents() {\n return [StructureCreatedEvent, SetSourceLoadingEvent, PagingSetEvent, PrevPageEvent, NextPageEvent, PagesizeChangedEvent, SelectionEnabledSetEvent, VerticalScrollEnabledSetEvent, ScrollPositionSetEvent, SortToggledEvent, FilterToggledEvent, SearchPhraseSetDomainEvent, SortOrderSetEvent, OriginSetEvent, RowHeightSetEvent, StructureHeightSetEvent, RowHeightSetBasedOnThemeEvent, FilterAddedEvent, ActiveFiltersSetEvent, UniqueFilterSelectedEvent, AllUniqueFilterSelectedEvent, UniqueFilterUnselectedEvent, AllUniqueFilterUnselectedEvent];\n }\n subs(event) {\n const aggregateId = event.getAggregateId();\n const optStructure = this.inMemoryStructureReadStore.getById(aggregateId);\n optStructure.ifPresent(structureReadModelRoot => {\n const key = structureReadModelRoot.getId().toString();\n this.structureIdToStructure.set(key, structureReadModelRoot);\n this.hermesStructure$.next(this.structureIdToStructure);\n });\n }\n}\nclass StructureDomainPublisher extends StructurePublisher {\n filterCommandInvoker;\n sourcePublisher;\n verticalFormationCommandInvoker;\n structureCellEditArchive;\n commandDispatcher = CoreContainer.resolve(CommandDispatcher);\n constructor(filterCommandInvoker, sourcePublisher, verticalFormationCommandInvoker, structureCellEditArchive) {\n super();\n this.filterCommandInvoker = filterCommandInvoker;\n this.sourcePublisher = sourcePublisher;\n this.verticalFormationCommandInvoker = verticalFormationCommandInvoker;\n this.structureCellEditArchive = structureCellEditArchive;\n }\n static services = [FilterPublisher, SourcePublisher, VerticalFormationPublisher, StructureCellEditArchive];\n create(structureId) {\n this.commandDispatcher.dispatch(new CreateStructureCommand(structureId));\n }\n // REMOVE\n enableVirtualScroll(structureId) {\n this.verticalFormationCommandInvoker.enableVirtualScroll(structureId);\n }\n // REMOVE\n disableVirtualScroll(structureId) {\n this.verticalFormationCommandInvoker.disableVirtualScroll(structureId);\n }\n // REMOVE\n scrollToTop(structureId) {\n this.verticalFormationCommandInvoker.scrollToTop(structureId);\n }\n // REMOVE\n scrollToBottom(structureId) {\n this.verticalFormationCommandInvoker.scrollToBottom(structureId);\n }\n // REMOVE\n scrollToIndex(index, structureId) {\n this.verticalFormationCommandInvoker.scrollToIndex(index, structureId);\n }\n // REMOVE\n setScrollPosition(position, structureId) {\n this.verticalFormationCommandInvoker.setScrollPosition(position, structureId);\n }\n setFilterConfig(config, structureId) {\n this.filterCommandInvoker.setConfig(config, structureId);\n }\n setQuickFiltersConfig(config, structureId) {\n this.commandDispatcher.dispatch(new SetConfigQuickFilterCommand(structureId, config));\n }\n setRowHeight(rowHeight, structureId) {\n this.commandDispatcher.dispatch(new SetRowHeightCommand(structureId, +rowHeight));\n }\n // REMOVE\n setContainerHeight(height, structureId) {\n this.commandDispatcher.dispatch(new StructureSetHeightCommand(structureId, +height));\n }\n // REMOVE\n setRowHeightBasedOnTheme(theme, structureId) {\n this.commandDispatcher.dispatch(new SetRowHeightBasedOnThemeCommand(structureId, theme));\n }\n setCellEdit(cellEdit, structureId) {\n this.structureCellEditArchive.next(structureId, new CellEditorManager(cellEdit));\n }\n}\nclass StructureApiModule {\n registerProviders(container) {\n container.provide(InMemoryStructureReadStore);\n container.provide(StructureReadModelRepository, InMemoryStructureRepository);\n container.provide(StructureAggregateFactory);\n container.provide(StructureReadModelRootConverter);\n container.provide(StructureWarehouse);\n container.provide(StructurePublisher, StructureDomainPublisher);\n container.provide(StructureInitialValuesReadyArchive);\n container.provide(InMemoryStructureAggregateStore);\n container.provide(InMemoryStructureStore);\n container.provide(StructureAggregateRepository, InMemoryStructureAggregateRepository);\n container.provide(FabricModalThemeService);\n container.provide(StructureCellEditArchive);\n }\n}\nfunction initializeStructure() {\n new DomainInitializer(new StructureApiModule(), new StructureDomainModule()).init();\n}\nclass CreateListViewCommand extends CreateAggregateCommand {\n constructor(listViewId) {\n super(listViewId, 'CreateListViewCommand');\n }\n}\nclass ListViewCommand extends Command {}\nclass SetListViewModeCommand extends ListViewCommand {\n mode;\n constructor(listViewId, mode) {\n super(listViewId, 'SetListViewModeCommand');\n this.mode = mode;\n }\n getMode() {\n return this.mode;\n }\n}\nclass ToggleListViewSelectorCommand extends ListViewCommand {\n enabled;\n constructor(listViewId, enabled) {\n super(listViewId, 'ToggleListViewSelectorCommand');\n this.enabled = enabled;\n }\n isEnabled() {\n return this.enabled;\n }\n}\nclass ListViewDispatcher {\n commandDispatcher = CoreContainer.resolve(CommandDispatcher);\n create(listViewId) {\n this.commandDispatcher.dispatch(new CreateListViewCommand(listViewId));\n }\n setMode(mode, listViewId) {\n this.commandDispatcher.dispatch(new SetListViewModeCommand(listViewId, mode));\n }\n toggleSelector(enabled, listViewId) {\n this.commandDispatcher.dispatch(new ToggleListViewSelectorCommand(listViewId, enabled));\n }\n}\nclass ListViewId extends AggregateId {\n constructor(id) {\n super(id);\n }\n toReadModelRootId() {\n return new ListViewReadModelRootId(this.getId());\n }\n}\nclass ListViewReadModelRootId extends ReadModelRootId {\n constructor(id) {\n super(id);\n }\n toAggregateId() {\n return new ListViewId(this.getId());\n }\n}\nconst listViewGlobalId = new ListViewReadModelRootId('-1');\nclass ListViewPublisher {\n listViewDispatcher;\n constructor(listViewDispatcher) {\n this.listViewDispatcher = listViewDispatcher;\n }\n static services = [ListViewDispatcher];\n create(listViewReadModelRootId = listViewGlobalId) {\n this.listViewDispatcher.create(listViewReadModelRootId.toAggregateId());\n }\n setMode(mode, listViewReadModelRootId = listViewGlobalId) {\n this.listViewDispatcher.setMode(mode, listViewReadModelRootId.toAggregateId());\n }\n toggleSelector(enabled, listViewReadModelRootId = listViewGlobalId) {\n this.listViewDispatcher.toggleSelector(enabled, listViewReadModelRootId.toAggregateId());\n }\n}\nclass ListViewDomainEvent extends DomainEvent {}\nclass ListViewModeSetEvent extends ListViewDomainEvent {\n mode;\n constructor(schemaId, mode) {\n super(schemaId, mode, 'ListViewModeSetEvent');\n this.mode = mode;\n }\n getTheme() {\n return this.mode;\n }\n}\nclass ListViewEventRepository extends EventRepository {\n constructor() {\n super();\n }\n onModeChange(listViewReadModelRootId) {\n return this.onEvent(listViewReadModelRootId, ListViewModeSetEvent);\n }\n}\nvar ListViewMode;\n(function (ListViewMode) {\n ListViewMode[\"LIST\"] = \"List\";\n ListViewMode[\"CARD\"] = \"Card\";\n})(ListViewMode || (ListViewMode = {}));\nclass ListViewModeArchive extends AggregateArchive {\n static default = ListViewMode.LIST;\n constructor() {\n super(ListViewModeArchive.default);\n }\n}\nclass ListViewSelectorArchive extends AggregateArchive {\n static default = false;\n constructor() {\n super(ListViewSelectorArchive.default);\n }\n}\nclass ListViewWarehouse {\n listViewModeArchive;\n listViewSelectorArchive;\n constructor(listViewModeArchive, listViewSelectorArchive) {\n this.listViewModeArchive = listViewModeArchive;\n this.listViewSelectorArchive = listViewSelectorArchive;\n }\n static services = [ListViewModeArchive, ListViewSelectorArchive];\n onMode(id) {\n return this.listViewModeArchive.on(id);\n }\n onSelector(id) {\n return this.listViewSelectorArchive.on(id);\n }\n}\nclass InMemoryListViewStore extends InMemoryStore {}\nclass InMemoryListViewAggregateStore extends InMemoryAggregateStore {\n constructor(inMemorySchemaStore) {\n super(inMemorySchemaStore);\n }\n static services = [InMemoryListViewStore];\n}\nclass SetListViewModeCommandHandler {\n forCommand() {\n return SetListViewModeCommand;\n }\n handle(listViewAggregate, command) {\n const mode = command.getMode();\n listViewAggregate.setMode(mode);\n }\n}\nclass ToggleListViewSelectorCommandHandler {\n forCommand() {\n return ToggleListViewSelectorCommand;\n }\n handle(listViewAggregate, command) {\n const enabled = command.isEnabled();\n listViewAggregate.toggleModeSelector(enabled);\n }\n}\nclass ListViewModeSetEventHandler {\n listViewModeArchive;\n constructor(listViewModeArchive) {\n this.listViewModeArchive = listViewModeArchive;\n }\n static services = [ListViewModeArchive];\n forEvent() {\n return ListViewModeSetEvent;\n }\n handle(event) {\n if (event.ofMessageType('ListViewModeSetEvent')) {\n this.listViewModeArchive.next(event.getAggregateId(), event.getTheme());\n }\n }\n}\nclass ListViewSelectorToggledEvent extends ListViewDomainEvent {\n enabled;\n constructor(schemaId, enabled) {\n super(schemaId, enabled, 'ListViewSelectorToggledEvent');\n this.enabled = enabled;\n }\n isEnabled() {\n return this.enabled;\n }\n}\nclass ListViewSelectorToggledEventHandler {\n listViewSelectorArchive;\n constructor(listViewSelectorArchive) {\n this.listViewSelectorArchive = listViewSelectorArchive;\n }\n static services = [ListViewSelectorArchive];\n forEvent() {\n return ListViewSelectorToggledEvent;\n }\n handle(event) {\n if (event.ofMessageType('ListViewSelectorToggledEvent')) {\n this.listViewSelectorArchive.next(event.getAggregateId(), event.isEnabled());\n }\n }\n}\nclass CreateListViewCommandHandler {\n forCommand() {\n return CreateListViewCommand;\n }\n}\nclass ListViewCreatedEvent extends ListViewDomainEvent {\n constructor(aggregateId) {\n super(aggregateId, null, 'ListViewCreatedEvent');\n }\n}\nclass ListViewAggregateEvent extends AggregateEvent {}\nclass ListViewCreatedAggregateEvent extends ListViewAggregateEvent {\n constructor(aggregateId) {\n super(aggregateId, 'ListViewCreatedAggregateEvent');\n }\n toDomainEvent() {\n return new ListViewCreatedEvent(this.getAggregateId());\n }\n}\nclass ListViewModeSetAggregateEvent extends ListViewAggregateEvent {\n mode;\n constructor(listViewId, mode) {\n super(listViewId, 'ListViewModeSetAggregateEvent');\n this.mode = mode;\n }\n toDomainEvent() {\n return new ListViewModeSetEvent(this.getAggregateId(), this.mode);\n }\n}\nclass SelectorVisibility {\n enabled = null;\n visible = false;\n constructor() {}\n isVisible() {\n if (this.enabled !== null) {\n return this.enabled;\n }\n return this.visible;\n }\n setEnabled(enabled) {\n this.enabled = enabled;\n }\n setVisible(visible) {\n this.visible = visible;\n }\n}\nclass ListViewSelectorToggledAggregateEvent extends ListViewAggregateEvent {\n enabled;\n constructor(listViewId, enabled) {\n super(listViewId, 'ListViewSelectorToggledAggregateEvent');\n this.enabled = enabled;\n }\n toDomainEvent() {\n return new ListViewSelectorToggledEvent(this.getAggregateId(), this.enabled);\n }\n}\nclass ListViewAggregate extends AggregateRoot {\n mode;\n selectorVisibility;\n constructor(listViewId) {\n super(listViewId, 'ListViewAggregate');\n this.setMode(ListViewMode.LIST);\n this.initSelectorVisibility();\n }\n createEvent() {\n return ListViewCreatedAggregateEvent;\n }\n setMode(mode) {\n this.mode = mode;\n this.addEvent(new ListViewModeSetAggregateEvent(this.getId(), this.mode));\n }\n toggleModeSelector(enabled) {\n this.selectorVisibility.setEnabled(enabled);\n this.emitEventAfterSelectorVisibilityChange();\n }\n initSelectorVisibility() {\n this.selectorVisibility = new SelectorVisibility();\n this.emitEventAfterSelectorVisibilityChange();\n }\n emitEventAfterSelectorVisibilityChange() {\n this.addEvent(new ListViewSelectorToggledAggregateEvent(this.getId(), this.selectorVisibility.isVisible()));\n }\n}\nclass ListViewAggregateFactory extends AggregateFactory {\n constructor() {\n super();\n }\n create(id) {\n return new ListViewAggregate(id);\n }\n}\nclass ListViewAggregateRepository extends AggregateRepository {}\nclass InMemoryListViewAggregateRepository extends ListViewAggregateRepository {\n inMemorySchemaAggregateStore;\n constructor(inMemorySchemaAggregateStore) {\n super();\n this.inMemorySchemaAggregateStore = inMemorySchemaAggregateStore;\n }\n static services = [InMemoryListViewAggregateStore];\n findById(listViewId) {\n return this.inMemorySchemaAggregateStore.findById(listViewId);\n }\n save(listViewAggregate) {\n this.inMemorySchemaAggregateStore.save(listViewAggregate);\n }\n}\nclass ListViewDomainModule {\n defineAggregate() {\n return {\n aggregateKey: listViewKey,\n createCommandHandler: CreateListViewCommandHandler,\n factory: ListViewAggregateFactory,\n repository: InMemoryListViewAggregateRepository\n };\n }\n registerKey() {\n return listViewKey;\n }\n registerProviders(container) {\n container.provide(ListViewDispatcher);\n }\n registerCommandHandlers() {\n return [SetListViewModeCommandHandler, ToggleListViewSelectorCommandHandler];\n }\n registerDomainEventHandler() {\n return [ListViewModeSetEventHandler, ListViewSelectorToggledEventHandler];\n }\n registerMultiDomainEventHandler() {\n return [];\n }\n}\nconst listViewKey = 'ListViewKey';\nclass ListViewApiModule {\n registerProviders(container) {\n container.provide(ListViewPublisher);\n container.provide(ListViewEventRepository);\n container.provide(ListViewWarehouse);\n container.provide(ListViewModeArchive);\n container.provide(ListViewSelectorArchive);\n container.provide(InMemoryListViewAggregateStore);\n container.provide(InMemoryListViewStore);\n }\n}\nfunction initializeListView() {\n new DomainInitializer(new ListViewApiModule(), new ListViewDomainModule()).init();\n}\nfunction provideStructureCommandInvoker() {\n return CoreContainer.resolve(StructurePublisher);\n}\nfunction provideStructureWarehouse() {\n return CoreContainer.resolve(StructureWarehouse);\n}\nfunction provideStructureInitialValuesReadyArchive() {\n return CoreContainer.resolve(StructureInitialValuesReadyArchive);\n}\nconst structureProviders = [{\n provide: StructurePublisher,\n useFactory: provideStructureCommandInvoker\n}, {\n provide: StructureWarehouse,\n useFactory: provideStructureWarehouse\n}, {\n provide: StructureInitialValuesReadyArchive,\n useFactory: provideStructureInitialValuesReadyArchive\n}];\nfunction createStructureDefinition() {\n return new StructureDefinition.DefaultBuilder().build();\n}\nconst icons = [StructureArrowIconModule, StructureMenuIconModule];\nconst imports$1 = [CommonModule, ReactiveFormsModule, TranslationFeatureModule, GuiTemplateModule,\n// .withConfig({\n// \tloggers: false\n// }),\nfabricImports, ResizeDetectorModule, PagingFeatureModule, SortingFeatureModule, FieldFeatureModule, FormationFeatureModule, SearchFeatureModule, FilterMenuFeatureModule, SourceFeatureModule, SummariesFeatureModule, VerticalFormationFeatureModule, SchemaFeatureModule, StructureSharedModule, StructureInfoPanelModule, StructureTopPanelModule, StructureColumnMenuModule, StructureColumnManagerModule, SchemaManagerModule, EmptySourceFeatureModule, CompositionFeatureModule, LoggerModule, SanitizeModule, icons];\nconst declarations$1 = [StructureComponent, StructureHeaderComponent, StructureHeaderColumnsComponent, StructureHeaderGroupsComponent, StructureHeaderFiltersComponent, StructureHeaderFilterComponent, StructureContentComponent, StructureRowComponent, StructureCellComponent, StructureCellEditComponent, StructureCellEditBooleanComponent, StructureContainerComponent, StructureQuickFiltersComponent, StructureBlueprintComponent, StructureRowDetailViewComponent, StructureTitlePanelComponent, StructureFooterPanelComponent, structureGates];\nconst exportDeclarations$1 = [FabricModule, StructureComponent, StructureHeaderComponent, StructureContentComponent, StructureRowComponent, StructureContainerComponent, fabricImports, PagingFeatureModule, structureGates];\nfunction provideStructureCellEditArchive() {\n return CoreContainer.resolve(StructureCellEditArchive);\n}\nfunction provideFabricModalThemeService() {\n return CoreContainer.resolve(FabricModalThemeService);\n}\ninitializeListView();\ninitializeStructure();\nclass GridViewFeatureModule {\n platformId;\n static HERMES_API = 'hermesApi';\n static exportDeclarations = Array.from(exportDeclarations$1);\n static withConfig(structureConfig = {\n cssClassName: '',\n hermesModuleConfig: {\n loggers: false\n }\n }) {\n return {\n ngModule: GridViewFeatureModule,\n providers: [{\n provide: STRUCTURE_CSS_CLASS_NAME,\n useValue: structureConfig.cssClassName\n }, {\n provide: COMMAND_LOGGER_ENABLED,\n useValue: structureConfig.hermesModuleConfig.loggers\n }, {\n provide: EVENT_LOGGER_ENABLED,\n useValue: structureConfig.hermesModuleConfig.loggers\n }, {\n provide: STRUCTURE_CSS_CLASS_NAME,\n useValue: 'structure'\n }, {\n provide: StructureDefinition,\n useFactory: createStructureDefinition\n }, ItemFactory, StructureThemeConverter, StructureIdGenerator, {\n provide: StructureCellEditArchive,\n useFactory: provideStructureCellEditArchive\n }, {\n provide: FabricModalThemeService,\n useFactory: provideFabricModalThemeService\n }, structureProviders]\n };\n }\n constructor(platformId) {\n this.platformId = platformId;\n runHermes();\n if (isPlatformBrowser(this.platformId)) {\n initHermesApi();\n window[GridViewFeatureModule.HERMES_API].loggers = false;\n }\n }\n static ɵfac = function GridViewFeatureModule_Factory(t) {\n return new (t || GridViewFeatureModule)(i0.ɵɵinject(PLATFORM_ID));\n };\n static ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: GridViewFeatureModule\n });\n static ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [imports$1, FabricModule, i1$1.FabricBadgeModule, i1$1.FabricButtonModule, i1$1.FabricButtonGroupModule, i1$1.FabricCheckboxModule, i1$1.FabricChipModule, i1$1.FabricDrawerModule, i1$1.FabricDropdownModule, i1$1.FabricRadioButtonModule, i1$1.FabricRadioGroupModule, i1$1.FabricProgressBarModule, i1$1.FabricProgressSpinnerModule, i1$1.FabricSelectModule, i1$1.FabricSpinnerModule, i1$1.FabricTabModule, i1$1.FabricTooltipModule, i1$1.FabricToggleButtonModule, i1$1.FabricInputModule, i1$1.FabricDialogModule, i1$1.FabricInlineDialogModule, i1$1.FabricTabModule, PagingFeatureModule]\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(GridViewFeatureModule, [{\n type: NgModule,\n args: [{\n imports: [imports$1],\n declarations: declarations$1,\n exports: exportDeclarations$1\n }]\n }], () => [{\n type: undefined,\n decorators: [{\n type: Inject,\n args: [PLATFORM_ID]\n }]\n }], null);\n})();\nclass GuiGridIdGenerator {\n static PREFIX = 'gui-grid-';\n static index = 0;\n generateId() {\n GuiGridIdGenerator.index++;\n return GuiGridIdGenerator.PREFIX + GuiGridIdGenerator.index;\n }\n static ɵfac = function GuiGridIdGenerator_Factory(t) {\n return new (t || GuiGridIdGenerator)();\n };\n static ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: GuiGridIdGenerator,\n factory: GuiGridIdGenerator.ɵfac\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(GuiGridIdGenerator, [{\n type: Injectable\n }], null, null);\n})();\nconst imports = [GridViewFeatureModule.withConfig({\n cssClassName: 'grid',\n hermesModuleConfig: {\n loggers: true\n }\n})];\nconst declarations = [GuiGridComponent, GuiGridColumnComponent];\nconst providers = [GuiGridIdGenerator, GuiGridRegister];\nconst exportDeclarations = [GuiGridComponent, GuiGridColumnComponent];\nconst elementComponents = [GuiGridComponent, GuiGridColumnComponent];\nclass GuiGridModule {\n static exportDeclarations = Array.from(exportDeclarations);\n static elementComponents = Array.from(elementComponents);\n static ɵfac = function GuiGridModule_Factory(t) {\n return new (t || GuiGridModule)();\n };\n static ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: GuiGridModule\n });\n static ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n providers: providers,\n imports: [imports]\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(GuiGridModule, [{\n type: NgModule,\n args: [{\n imports,\n declarations,\n providers,\n exports: exportDeclarations\n }]\n }], null, null);\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { GuiBooleanCellView, GuiCellView, GuiColumnAlign, GuiDataType, GuiDateCellView, GuiDefaultTranslation, GuiGridColumnComponent, GuiGridComponent, GuiGridModule, GuiNumberCellView, GuiPagingDisplay, GuiRowColoring, GuiRowSelectionMode, GuiRowSelectionType, GuiSortingOrder, GuiStringCellView, GuiTheme };","map":{"version":3,"names":["i0","Injectable","TemplateRef","Component","ContentChild","Input","EventEmitter","Directive","ContentChildren","Output","InjectionToken","ChangeDetectionStrategy","ViewEncapsulation","Inject","Injector","ChangeDetectorRef","inject","Pipe","NgModule","Attribute","ViewChild","ComponentFactoryResolver","ElementRef","PLATFORM_ID","Optional","Optional$1","i4","CommonModule","isPlatformBrowser","RandomIdGenerator","EntityId","hermesMap","hermesFilter","hermesTake","hermesSwitchMap","ReadModelRootId","AggregateId","Reactive","Archive","HermesSubject","hermesTakeUntil","Command","DomainEvent","CommandDispatcher","CoreContainer","DomainEventBus","EventRepository","AggregateArchive","singleFromObservable","HermesReplaySubject","hermesDistinctUntilChanged","AggregateEvent","DomainEventPublisher","ReadModelObject","DomainInitializer","FeatureModule","Entity","RandomStringGenerator","HermesId","InMemoryStore","InMemoryAggregateStore","AggregateRepository","ReadModelEntity","ReadModelEntityId","ReadModelRoot","InMemoryReadModelStore","ReadModelRootRepository","AggregateRoot","KeyMap","AggregateFactory","hermesFromEvent","fromRxJsObservable","hermesEmpty","hermesTimer","toRxJsObservable","createContainer","DomainObject","EventDrivenRepository","CreateAggregateCommand","COMMAND_LOGGER_ENABLED","EVENT_LOGGER_ENABLED","runHermes","initHermesApi","i1","i1$1","FabricModule","Theme","Placement","FabricPlacement","FabricBadgeModule","FabricButtonModule","FabricButtonGroupModule","FabricCheckboxModule","FabricChipModule","FabricDrawerModule","FabricDropdownModule","FabricRadioButtonModule","FabricRadioGroupModule","FabricProgressBarModule","FabricProgressSpinnerModule","FabricSelectModule","FabricSpinnerModule","FabricTabModule","FabricTooltipModule","FabricToggleButtonModule","FabricInputModule","FabricDialogModule","FabricInlineDialogModule","FabricModalThemeService","FabricDatePickerModule","__decorate","i1$2","ReactiveFormsModule","debounceTime","throttleTime","flatMap","Observable","combineLatest","zip","_c0","_c1","_c2","_c3","PagingStatsComponent_ng_container_0_Template","rf","ctx","ɵɵelementContainerStart","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵpipe","ɵɵelementContainerEnd","ctx_r0","ɵɵnextContext","ɵɵadvance","ɵɵtextInterpolate","firstItemIndex","lastItemIndex","ɵɵtextInterpolate1","ɵɵpipeBind1","sourceSize","PagingStatsComponent_ng_template_1_Template","_c4","_c5","_c6","AlternativePagingPagesComponent_ng_container_0_div_1_Template","_r1","ɵɵgetCurrentView","ɵɵlistener","AlternativePagingPagesComponent_ng_container_0_div_1_Template_div_click_2_listener","page_r2","ɵɵrestoreView","$implicit","ctx_r2","ɵɵresetView","goToPage","ɵɵclassProp","activePage","calculateVisiblePages","AlternativePagingPagesComponent_ng_container_0_Template","ɵɵtemplate","ɵɵproperty","pages","AlternativePagingPagesComponent_ng_template_1_Template","_c7","PagingComponent_ng_container_0_ng_container_1_ng_container_1_Template","PagingComponent_ng_container_0_ng_container_1_ng_container_1_Template_div_pageSizeChanged_1_listener","$event","ctx_r1","changePageSize","ɵɵelement","PagingComponent_ng_container_0_ng_container_1_ng_container_1_Template_div_nextPageChanged_3_listener","localState_r3","nextPage","PagingComponent_ng_container_0_ng_container_1_ng_container_1_Template_div_prevPageChanged_3_listener","prevPage","paging","PagingComponent_ng_container_0_ng_container_1_ng_template_2_Template","_r4","PagingComponent_ng_container_0_ng_container_1_ng_template_2_Template_div_nextPageChanged_1_listener","PagingComponent_ng_container_0_ng_container_1_ng_template_2_Template_div_prevPageChanged_1_listener","PagingComponent_ng_container_0_ng_container_1_Template","ɵɵtemplateRefExtractor","minimalTemplate_r5","ɵɵreference","minimal","PagingComponent_ng_container_0_ng_container_2_Template","_r6","PagingComponent_ng_container_0_ng_container_2_Template_div_pageSizeChanged_1_listener","PagingComponent_ng_container_0_ng_container_2_Template_div_nextPageChanged_2_listener","PagingComponent_ng_container_0_ng_container_2_Template_div_prevPageChanged_2_listener","PagingComponent_ng_container_0_Template","isPagingVisible","alternativeDisplay","_c8","BarViewComponent_gui_percentage_view_2_Template","value","TextViewComponent_ng_container_0_Template","ɵɵpipeBind2","ɵɵsanitizeHtml","TextViewComponent_ng_template_1_Template","_c9","_c10","_c11","_c12","_c13","_c14","_c15","_c16","_c17","_c18","_c19","_c20","_c21","_c22","_c23","ViewTemplatesComponent_ng_template_0_Template","element_r1","element","ViewTemplatesComponent_ng_template_2_Template","element_r2","ViewTemplatesComponent_ng_template_4_Template","element_r3","ViewTemplatesComponent_ng_template_6_Template","element_r4","ɵɵpropertyInterpolate","ɵɵsanitizeUrl","ViewTemplatesComponent_ng_template_8_Template","element_r5","ViewTemplatesComponent_ng_template_10_Template","element_r6","ViewTemplatesComponent_ng_template_12_Template","element_r7","ViewTemplatesComponent_ng_template_14_Template","element_r8","ViewTemplatesComponent_ng_template_16_Template","element_r9","ViewTemplatesComponent_ng_template_18_Template","element_r10","ViewTemplatesComponent_ng_template_20_Template","element_r11","ViewTemplatesComponent_ng_template_22_Template","element_r12","ViewTemplatesComponent_ng_template_24_Template","element_r13","ViewTemplatesComponent_ng_template_26_Template","element_r14","ViewTemplatesComponent_ng_template_28_Template","element_r15","_c24","_c25","_c26","_c27","_c28","EditTemplatesComponent_ng_template_0_Template","valueChanges_r1","valueChanges","value_r2","status_r3","status","focus_r4","focus","EditTemplatesComponent_ng_template_2_Template","valueChanges_r5","value_r6","status_r7","focus_r8","EditTemplatesComponent_ng_template_4_Template","valueChanges_r9","value_r10","status_r11","focus_r12","EditTemplatesComponent_ng_template_6_Template","valueChanges_r13","value_r14","status_r15","focus_r16","parent_r17","parent","EditTemplatesComponent_ng_template_8_Template","_c29","StructureSummariesPanelComponent_ng_container_0_ng_container_1_div_1_Template","StructureSummariesPanelComponent_ng_container_0_ng_container_1_div_3_ng_container_1_div_1_Template","column_r1","localState_r2","summariesTranslations","countTooltip","summaries","get","getFieldId","getId","count","StructureSummariesPanelComponent_ng_container_0_ng_container_1_div_3_ng_container_1_div_2_Template","distinctTooltip","distinct","StructureSummariesPanelComponent_ng_container_0_ng_container_1_div_3_ng_container_1_div_3_Template","sum","StructureSummariesPanelComponent_ng_container_0_ng_container_1_div_3_ng_container_1_div_4_Template","averageTooltip","average","StructureSummariesPanelComponent_ng_container_0_ng_container_1_div_3_ng_container_1_div_5_Template","minTooltip","min","StructureSummariesPanelComponent_ng_container_0_ng_container_1_div_3_ng_container_1_div_6_Template","maxTooltip","max","StructureSummariesPanelComponent_ng_container_0_ng_container_1_div_3_ng_container_1_div_7_Template","medTooltip","median","StructureSummariesPanelComponent_ng_container_0_ng_container_1_div_3_ng_container_1_div_8_Template","truthy","StructureSummariesPanelComponent_ng_container_0_ng_container_1_div_3_ng_container_1_div_9_Template","falsy","StructureSummariesPanelComponent_ng_container_0_ng_container_1_div_3_ng_container_1_Template","isSummariesTypePresent","StructureSummariesPanelComponent_ng_container_0_ng_container_1_div_3_Template","ɵɵstyleProp","width","StructureSummariesPanelComponent_ng_container_0_ng_container_1_Template","checkboxSelection$","headerColumns$","StructureSummariesPanelComponent_ng_container_0_Template","enabled","sourceEmpty","_c30","_c31","StructureColumnManagerComponent_ol_0_li_1_ng_container_2_Template","ɵɵelementContainer","StructureColumnManagerComponent_ol_0_li_1_Template","StructureColumnManagerComponent_ol_0_li_1_Template_li_click_0_listener","column_r2","toggleColumn","localState_r4","isEnabled","enabledColumnsCount","viewTemplate","context","StructureColumnManagerComponent_ol_0_Template","columns","_c32","_c33","StructureSchemaMangerComponent_li_17_Template","StructureSchemaMangerComponent_li_17_Template_li_click_0_listener","verticalGrid_r2","toggleVerticalGrid","StructureSchemaMangerComponent_li_18_Template","StructureSchemaMangerComponent_li_18_Template_li_click_0_listener","horizontalGrid_r5","toggleHorizontalGrid","_c34","_c35","_c36","_c37","ActiveSearchComponent_ng_container_0_Template","ActiveSearchComponent_ng_container_0_Template_button_click_7_listener","clearSearch","phrase_r3","_c38","ActiveFilterListComponent_ng_container_0_div_1_Template","ActiveFilterListComponent_ng_container_0_div_1_Template_span_click_2_listener","filter_r2","removeFilter","getText","ActiveFilterListComponent_ng_container_0_Template","activeFilters_r4","_c39","_c40","StructureInfoPanelComponent_ng_container_0_div_1_div_1_ng_container_1_ng_container_1_Template","totalItemsSize_r1","StructureInfoPanelComponent_ng_container_0_div_1_div_1_ng_container_1_span_2_Template","preparedItemsSize","StructureInfoPanelComponent_ng_container_0_div_1_div_1_ng_container_1_Template","StructureInfoPanelComponent_ng_container_0_div_1_div_1_Template","undefined","StructureInfoPanelComponent_ng_container_0_div_1_Template","infoPanelConfig","isSourceSizeEnabled","StructureInfoPanelComponent_ng_container_0_div_4_Template","_r3","StructureInfoPanelComponent_ng_container_0_div_4_Template_div_click_0_listener","ctx_r3","openSchemaManager","translations","infoPanelThemeMangerTooltipText","StructureInfoPanelComponent_ng_container_0_div_5_Template","_r5","StructureInfoPanelComponent_ng_container_0_div_5_Template_div_click_0_listener","openColumnManager","infoPanelColumnManagerTooltipText","StructureInfoPanelComponent_ng_container_0_div_6_Template","StructureInfoPanelComponent_ng_container_0_div_6_Template_div_click_0_listener","openInfo","infoPanelInfoTooltipText","StructureInfoPanelComponent_ng_container_0_Template","totalItemsSize$","isSchemaManagerEnabled","isColumnsManagerEnabled","isInfoDialogEnabled","_c41","_c42","_c43","SearchComponent_ng_container_0_span_6_Template","SearchComponent_ng_container_0_span_6_Template_span_click_0_listener","clear","SearchComponent_ng_container_0_Template","searchForm","placeholder$","controls","_c44","_c45","EmptySourceComponent_ng_container_0_Template","_c46","_c47","UniqueValueListComponent_ng_container_0_div_4_Template","UniqueValueListComponent_ng_container_0_div_4_Template_gui_checkbox_changed_1_listener","value_r4","toggleSelect","getValue","UniqueValueListComponent_ng_container_0_Template","UniqueValueListComponent_ng_container_0_Template_gui_checkbox_changed_1_listener","toggleAllSelect","UniqueValueListComponent_ng_container_0_Template_button_click_6_listener","clearFilters","state_r5","selectAllChecked","selectAllIndeterminate","uniqueValues","_c48","_c49","StructureColumnConfigSortComponent_gui_dropdown_0_Template","StructureColumnConfigSortComponent_gui_dropdown_0_Template_gui_dropdown_item_click_1_listener","setSortOrder","ASC","StructureColumnConfigSortComponent_gui_dropdown_0_Template_gui_dropdown_item_click_6_listener","DESC","StructureColumnConfigSortComponent_gui_dropdown_0_Template_gui_dropdown_item_click_11_listener","NONE","dropdownTextTranslation","placement","isAscSort","isDescSort","StructureArrowPosition","DOWN","isNoneSort","_c50","_c51","_c52","_c53","StructureColumnConfigComponent_ng_container_0_div_1_ng_container_2_div_2_Template","column","headerMenuMainTabColumnSort","StructureColumnConfigComponent_ng_container_0_div_1_ng_container_2_Template","StructureColumnConfigComponent_ng_container_0_div_1_ng_container_2_Template_div_columnHidden_3_listener","hideColumn","StructureColumnConfigComponent_ng_container_0_div_1_ng_container_2_Template_div_click_4_listener","highlightColumn","StructureColumnConfigComponent_ng_container_0_div_1_ng_container_2_Template_div_movedLeft_7_listener","moveLeft","StructureColumnConfigComponent_ng_container_0_div_1_ng_container_2_Template_div_movedRight_7_listener","moveRight","headerMenuMainTab","isSortEnabled","StructureColumnConfigComponent_ng_container_0_div_1_ng_container_3_Template","headerMenuFilterTab","StructureColumnConfigComponent_ng_container_0_div_1_ng_container_4_Template","headerMenuColumnsTab","StructureColumnConfigComponent_ng_container_0_div_1_Template","config","getActiveMenu","getMenus","isMainEnabled","isFilteringEnabled","isColumnManagerEnabled","StructureColumnConfigComponent_ng_container_0_Template","_c54","SelectCustomModalComponent_ul_0_li_1_Template","SelectCustomModalComponent_ul_0_li_1_Template_li_click_0_listener","sel_r2","selectCustom","getCustomSelectId","ɵɵattribute","key","text","SelectCustomModalComponent_ul_0_Template","selection_r4","getSelections","_c55","SelectAllComponent_ng_container_0_gui_checkbox_1_Template","SelectAllComponent_ng_container_0_gui_checkbox_1_Template_gui_checkbox_changed_0_listener","toggleSelectAll","isAllIndeterminate","isAllChecked","SelectAllComponent_ng_container_0_Template","modeMulti","_c56","_c57","_c58","StructureColumnConfigTriggerComponent_div_0_Template","StructureColumnConfigTriggerComponent_div_0_Template_div_click_0_listener","openConfigDialog","_c59","_c60","_c61","a0","StructureHeaderColumnsComponent_div_0_Template","StructureHeaderColumnsComponent_div_1_ng_container_2_Template","StructureHeaderColumnsComponent_div_1_div_3_Template","getSortStatus","StructureHeaderColumnsComponent_div_1_Template","StructureHeaderColumnsComponent_div_1_Template_div_click_0_listener","toggleSort","ɵɵstyleMap","getStyles","ɵɵclassMap","getCssClasses","ɵɵpureFunction1","isNoSort","_c62","StructureHeaderGroupsComponent_div_0_Template","StructureHeaderGroupsComponent_div_1_Template","group_r1","header","_c63","_c64","StructureHeaderFiltersComponent_ng_container_0_div_1_Template","StructureHeaderFiltersComponent_ng_container_0_div_1_Template_button_click_1_listener","turnOnFilterMode","cell_r3","StructureHeaderFiltersComponent_ng_container_0_Template","StructureHeaderFiltersComponent_ng_container_1_Template","StructureHeaderFiltersComponent_ng_container_1_Template_button_click_4_listener","StructureHeaderFiltersComponent_ng_container_1_Template_button_click_6_listener","turnOffFilterMode","ɵɵpureFunction0","filterForm","filterFieldName","_c65","StructureHeaderComponent_ng_container_0_div_1_Template","localState_r1","showSelection","groups","StructureHeaderComponent_ng_container_0_Template","showGroups","StructureHeaderComponent_div_1_Template","headerColumns","width$","StructureHeaderComponent_ng_container_2_div_1_Template","filterHeaderHeight$","StructureHeaderComponent_ng_container_2_Template","filterRowEnabled","_c66","_c67","StructureCellEditBooleanComponent_ng_container_2_Template","_c68","_c69","a1","a2","a3","_c70","index","item","StructureCellComponent_ng_container_0_span_1_ng_container_1_Template","StructureCellComponent_ng_container_0_span_1_Template","StructureCellComponent_ng_container_0_span_1_Template_span_click_0_listener","enterEditMode","ɵɵpureFunction4","cell","isAlignLeft","isAlignCenter","isAlignRight","isHighlighted","template","entity","searchPhrase","getPosition","getSourceItem","StructureCellComponent_ng_container_0_span_2_ng_container_1_Template","StructureCellComponent_ng_container_0_span_2_Template","editTemplate","editContext","StructureCellComponent_ng_container_0_Template","inEditMode","StructureCellComponent_ng_container_1_Template","_c71","StructureRowComponent_div_0_Template","StructureRowComponent_div_0_Template_gui_checkbox_changed_1_listener","selectCheckbox","selectedItem","StructureRowComponent_div_1_Template","StructureRowComponent_div_1_Template_gui_radio_button_changed_1_listener","selectRadio","StructureRowComponent_div_2_Template","column_r4","i_r5","cellEditing","editMode","_c72","_c73","_c74","StructureContentComponent_div_0_div_1_Template","StructureContentComponent_div_0_div_1_Template_div_click_0_listener","entity_r2","toggleSelectedRow","selectionEnabled","checkboxSelection","radioSelection","index_r5","rowHeight","getUiId","ɵɵpureFunction2","isEven","isOdd","translateY","schemaRowClass","schemaRowStyle","StructureContentComponent_div_0_Template","source","trackByFn","_c75","_c76","_c77","_c78","_c79","StructureBlueprintComponent_div_0_Template","StructureBlueprintComponent_div_1_Template","StructureBlueprintComponent_ng_container_2_div_1_Template","StructureBlueprintComponent_ng_container_2_Template","pagingModel_r1","isPagingTopEnabled","StructureBlueprintComponent_ng_container_5_div_1_Template","headerTopClasses","StructureBlueprintComponent_ng_container_5_Template","topHeaderEnabled_r3","isColumnHeaderTopEnabled","StructureBlueprintComponent_ng_container_9_div_1_Template","headerBottomClasses","StructureBlueprintComponent_ng_container_9_Template","bottomHeaderEnabled_r4","isColumnHeaderBottomEnabled","StructureBlueprintComponent_ng_container_12_div_1_Template","StructureBlueprintComponent_ng_container_12_Template","footerPanelEnabled_r5","StructureBlueprintComponent_ng_container_13_div_1_Template","StructureBlueprintComponent_ng_container_13_Template","pagingModel_r6","isPagingBottomEnabled","StructureBlueprintComponent_div_14_Template","_c80","StructureComponent_gui_spinner_2_Template","_c81","_c82","_c83","_c84","_c85","_c86","_c87","FilterMenuComponent_div_8_Template","FilterMenuComponent_div_8_Template_div_valueChanged_0_listener","onValueChanged","_c88","FilterMenuTriggerComponent_ng_container_1_div_1_Template","FilterMenuTriggerComponent_ng_container_1_Template","activeFiltersExist_r1","_c89","_c90","_c91","StructureCellEditComponent_ng_container_2_Template","_c92","enTranslation","pagingItemsPerPage","pagingOf","pagingNextPage","pagingPrevPage","pagingNoItems","infoPanelShowing","infoPanelItems","infoPanelOutOf","themeManagerModalTitle","themeManagerModalTheme","themeManagerModalRowColoring","themeManagerModalVerticalGrid","themeManagerModalHorizontalGrid","columnManagerModalTitle","headerMenuMainTabHideColumn","headerMenuMainTabHighlightColumn","headerMenuMainTabMoveLeft","headerMenuMainTabMoveRight","headerMenuMainTabColumnSortAscending","headerMenuMainTabColumnSortDescending","headerMenuMainTabColumnSortNone","summariesCount","summariesDist","summariesSum","summariesAvg","summariesMin","summariesMax","summariesMed","summariesTruthy","summariesFalsy","summariesDistinctValuesTooltip","summariesAverageTooltip","summariesMinTooltip","summariesMaxTooltip","summariesMedTooltip","summariesCountTooltip","defaultTranslation","GuiDataType","GuiCellView","GuiNumberCellView","GuiStringCellView","GuiBooleanCellView","GuiDateCellView","GuiTheme","GuiRowColoring","GuiSortingOrder","GuiPagingDisplay","GuiColumnAlign","GuiRowSelectionType","GuiRowSelectionMode","GuiRowCustomSelectionType","GuiDefaultTranslation","DataType","GuiGridColumnTypeConverter","convertType","type","convertTypeString","convertTypeEnum","enumType","STRING","NUMBER","BOOLEAN","DATE","UNKNOWN","CUSTOM","loweredType","toLocaleLowerCase","SummariesType","GuiGridColumnSummariesConverter","convert","summariesConfig","columnSummariesConfig","summariesTypes","convertSummariesTypes","configSummariesTypes","forEach","summariesType","convertSummariesType","push","loweredSummariesType","COUNT","DISTINCT","SUM","AVERAGE","MIN","MAX","MEDIAN","TRUTHY","FALSY","EARLIEST","LATEST","CellView","GuiGridColumnViewConverter","view","convertString","convertEnum","loweredView","TEXT","CHIP","LINK","IMAGE","BOLD","ITALIC","CHECKBOX","BAR","PERCENTAGE_BAR","PERCENTAGE","GuiGridColumnSortingConverter","sortingConfig","GuiGridColumnCellEditingConverter","ColumnAlign","GuiGridColumnAlignConverter","align","RIGHT","CENTER","LEFT","GuiGridColumnConverter","columnTypeConverter","columnSummariesConverter","columnViewConverter","columnSortingConverter","columnCellEditingConverter","columnAlignConverter","configs","map","c","convertColumn","guiColumn","columnConfig","name","field","sorting","formatter","matcher","cssClasses","styles","templateRef","NG_TEMPLATE","SchemaTheme","GuiGridThemeConverter","theme","convertToGuiTheme","MATERIAL","FABRIC","LIGHT","DARK","GENERIC","loweredTheme","RowColoring","GuiGridRowColoringConverter","rowColoring","convertToGuiRowColoring","EVEN","ODD","loweredRowColoring","GuiGridColumnMenuConverter","ɵfac","GuiGridColumnMenuConverter_Factory","t","ɵprov","ɵɵdefineInjectable","token","factory","ngDevMode","ɵsetClassMetadata","PagingDisplayMode","GuiGridPagingConverter","guiPaging","pagingConfig","page","pageSize","pageSizes","pagerTop","pagerBottom","display","displayMode","convertDisplay","pagingDisplay","loweredPaging","BASIC","ADVANCED","GenericBuilder","build","buildObject","RowSelectionType","RowSelectionMode","RowSelection","selectedRowIndexes","selectedRowIds","mode","customConfig","constructor","isModeDefined","isTypeDefined","isSelectedRowIndexesDefined","isSelectedRowIdsDefined","isEnabledDefined","isMatcherDefined","isCustomSelectConfig","getSelectedRowIndexes","getSelectedRowIds","getMode","getType","getMatcher","getCustomSelectConfig","Builder","RowSelectionBuilder","withEnabled","withSelectedRowIndexes","indexes","withSelectedRowIds","ids","withType","withMode","withMatcher","witCustomSelection","FormationCustomSelectionConfig","selections","GuiGridRowSelectionConverter","selection","builder","convertMode","convertMatcher","custom","customSelection","convertCustomSelection","toLowerCase","SINGLE","MULTIPLE","ROW","RADIO","formationConfig","Array","isArray","GuiGridColumnComponent","GuiGridColumnComponent_Factory","ɵcmp","ɵɵdefineComponent","selectors","contentQueries","GuiGridColumnComponent_ContentQueries","dirIndex","ɵɵcontentQuery","_t","ɵɵqueryRefresh","ɵɵloadQuery","first","inputs","decls","vars","GuiGridColumnComponent_Template","encapsulation","args","selector","static","GuiGridCellEditConverter","checkInput","prop","isChanged","hasChanged","ifChanged","callback","currentValue","GuiGridGateway","guiGridColumnComponent","columnHeaderTop","columnHeaderBottom","maxHeight","autoResizeWidth","verticalGrid","horizontalGrid","rowSelection","rowStyle","rowClass","loading","virtualScroll","searching","titlePanel","footerPanel","filtering","quickFilters","infoPanel","columnMenu","rowDetail","localization","pageChanged","pageSizeChanged","itemsSelected","selectedRows","columnsChanged","containerWidthChanged","sourceEdited","cellEditEntered","cellEditCanceled","cellEditSubmitted","searchPhraseChanged","themeChanged","horizontalGridChanged","verticalGridChanged","rowColoringChanged","columnsConfig","themeConfig","rowColoringConfig","columnMenuConfig","rowSelectionConfig","cellEditingConfig","gridColumnConverter","gridThemeConverter","gridRowColoringConverter","gridColumnMenuConverter","gridPagingConverter","gridRowSelectionConverter","guiGridCellEditConverter","ngOnChanges","changes","ngAfterContentInit","toArray","length","onPageChange","emit","onPageSizeChange","onItemSelect","onRowsSelect","rows","guiRows","row","getIndex","getItem","itemId","getItemId","onColumnsChange","onContainerWidthChange","containerWidth","onSourceEdit","onCellEditEnter","onCellEditSubmit","onCellEditCancel","onSearchPhrase","onTheme","onHorizontalGrid","onVerticalGrid","onRowColoring","GuiGridGateway_Factory","ɵdir","ɵɵdefineDirective","GuiGridGateway_ContentQueries","outputs","features","ɵɵNgOnChangesFeature","structureParentComponent","SelectedRow","GuiGridApiProvider","structureId","compositionId","schemaId","formationCommandInvoker","formationWarehouse","compositionCommandInvoker","compositionWarehouse","filterIntegration","sourceCommandInvoker","searchCommandInvoker","gridThemeCommandInvoker","structureCommandInvoker","summariesCommandInvoker","sortingCommandInvoker","pagingCommandInvoker","formationCommandDispatcher","provide","fcd","fw","scd","setSource","setOrigin","showLoading","setLoading","hideLoading","deleteRow","deleteRows","deleteSelectedRows","getSelectedRows","findSelectedRows","getValueOrNullOrThrowError","r","selectAll","unselectAll","getColumns","onTemplateColumns","subscribe","v","getFilters","filters","findFilters","filterCollection","Object","keys","filter","columnName","filterId","filterType","getFiltersForColumn","getFilterTypes","getFilterTypesForColumn","findFilterTypes","removeAll","removeFiltersFromColumn","enablePaging","enable","disablePaging","disable","setPagingConfig","setPaging","setSearchingConfig","search","phrase","clearSearchPhrase","scrollToTop","scrollToBottom","scrollToRowByIndex","scrollToIndex","setTheme","setVerticalGrid","setHorizontalGrid","setRowColoring","enableVirtualScroll","disableVirtualScroll","enableSummaries","setSummariesEnabled","disableSummaries","setSortConfig","setSortingConfig","GuiGridThemeCommandInvoker","schemaCommandInvoker","schemaTheme","schemaRowColoring","Modifier","hostElement","getElement","htmlElement","createModifier","getHost","Error","ClassModifier","add","classes","addClassToDomElement","remove","removeClassFromDomElement","removeAttribute","i","classList","AttributeModifier","setAttribute","StructurePagingDefinitionBuilder","PagingDefinition","StructurePagingDefinitionDefaultBuilder","defaultEnabled","DefaultBuilder","StructureDefinitionBuilder","headerEnabled","bottomPaging","topPaging","border","withHeader","withBottomPaging","withTopPaging","withBorder","StructureDefinition","StructureDefinitionDefaultBuilder","defaultHeaderEnabled","defaultBottomPaging","defaultTopPaging","isHeaderEnabled","isBorderEnabled","getBottomPaging","getTopPaging","guiGridStructureDefinition","GuiGridRegister","gridMap","Map","register","gridId","component","set","unregister","delete","getValues","GuiGridRegister_Factory","StructureIdGenerator","generateId","generate","FormationPublisher","FormationWarehouse","CompositionPublisher","CompositionWarehouse","FilterWarehouse","FieldId","id","equals","fieldId","toString","FilterPublisher","FilterIntegration","filterCommandInvoker","filterWarehouse","services","filterTypes","pipe","cols","find","col","getName","onFilterTypesForFieldId","columnFieldId","types","columnNames","findColumnNames","obj","getFieldName","getFilterId","getFilterTypeName","onceFilterTypeId","filterTypeId","params","ifPresent","ftId","SourcePublisher","SearchPublisher","SchemaPublisher","StructurePublisher","SummariesPublisher","SortingPublisher","PagingPublisher","StructureReadModelRootId","toAggregateId","StructureId","toReadModelRootId","CompositionReadModelRootId","CompositionId","SchemaRowColoring","SchemaWarehouse","SchemaCssClassManager","schemaReadModelRepository","VERTICAL_GRID_CLASS_NAME","HORIZONTAL_GRID_CLASS_NAME","THEME_FABRIC_CLASS_NAME","THEME_MATERIAL_CLASS_NAME","THEME_LIGHT_CLASS_NAME","THEME_DARK_CLASS_NAME","THEME_GENERIC_CLASS_NAME","ROW_COLORING_ODD","ROW_COLORING_EVEN","classModifier","cssClass","cssHostRef","init","elementRef","schemaReadModelRootId","onCssClasses","diff","updateState","renderCssClasses","css","hasOwnProperty","toggleCssClass","removeThemeCssClasses","addClass","resolveThemeClassName","removeRowColoringClasses","resolveRowColoringClassName","toggle","cssClassName","removeClass","className","coloring","nativeElement","SchemaCssClassManager_Factory","ɵɵinject","StructureCellEditStore","StructureCellEditStore_Factory","StructureEditModeArchive","StructureEditModeArchive_Factory","StructureInfoPanelConfig","infoDialog","columnsManager","schemaManager","isNotUndefinedOrNull","StructureInfoPanelArchive","structureComponentToken","GuiComponent","innerElementRef","innerClassModifier","initClassModifier","addHostClass","addClassToHost","removeClassFromHost","getSelectorName","GuiComponent_Factory","ɵɵdirectiveInject","SmartComponent","detector","viewInDom","unsubscribe$","ngAfterViewInit","ngOnDestroy","unsubscribe","reRender","isViewInDom","detectChanges","stream$","takeUntil","streamValues","subscribeWithoutRender","subscribeAndEmit","emitter","mapper","next","complete","SmartComponent_Factory","ɵɵInheritDefinitionFeature","StructureCellEditState","StructureCommand","InitFieldsCommand","fieldConfigs","getFieldConfigs","StructureDomainEvent","FieldsInitedEvent","fields","aggregateId","getFields","ColumnFieldId","ColumnParams","getColumn","getField","StructureColumnInputHandler","columnFieldFactory","columnAutoConfigurator","commandDispatcher","resolve","domainEventBus","handle","configure","setGroups","getConfigs","initCommand","ofEvents","event","getAggregateId","columnFieldIds","convertColumnFieldIds","convertColumns","setColumns","dispatch","columnConfigs","groupConfigs","concat","columnField","create","getAccessorMethod","getDataType","getSearchAccessorMethod","ColumnAutoConfigurator","SchemaId","SchemaReadModelRootId","PagingEventRepository","EditedItemModel","after","before","StructureSourceItemEditedEvent","beforeItem","afterItem","getBeforeItem","getAfterItem","SourceEventService","onSourceEdited","CompositionEventRepository","SourceWarehouse","SelectedRowChangedEvent","allSelected","allUnselected","isAllSelected","isAllUnselected","FormationEventRepository","sourceWarehouse","domainEventBusTOREMOVE","subject$","onPreparedItems","items","selectedItems","itemsMap","j","e","onItemSelected","toObservable","has","CellEditorManager","rowEdit","cellEdit","StructureCellEditArchive","default","StructureCellEditArchive_Factory","StructureInfoPanelConfigConverter","StructureInfoPanelConfigService","structureInfoPanelConfigConverter","structureInfoPanelArchive","StructureInfoPanelConfigService_Factory","ColumnField","accessor","searchAccessor","dataType","getAccessor","getSearchAccessor","ColumnFieldFactory","SearchEventRepository","StructureHeaderBottomEnabledArchive","StructureHeaderBottomEnabledArchive_Factory","SchemaEventRepository","TranslationFacade","StructureInitialValuesReadyArchive","on","once","StructureGateway","changeDetectorRef","structurePagingCommandDispatcher","pagingEventRepository","sourceCommandService","sourceEventService","compositionCommandDispatcher","compositionEventRepository","formationEventService","structureEditModeArchive","structureCellEditArchive","structureInfoPanelConfigService","structureCellEditStore","searchEventRepository","structureHeaderBottomEnabledArchive","schemaEventRepository","translationService","structureInitialValuesReadyArchive","structureColumnInputHandler","changeAfterInit","setDefaultTranslation","editingConfig","setCellEdit","setWidth","setRowHeight","setResizeWidth","setContainerHeight","ngOnInit","onColumnsChanged","onContainerWidthChanged","values","state","ENTER","SUBMIT","CANCEL","onThemeChanged","componentInitialized","StructureGateway_Factory","StructureColumnMenuConfig","sort","mainMenu","filterMenu","columnsMenu","fromConfig","isSortingEnabled","menus","getMainMenu","getFilterMenu","getColumnMenu","setMainMenu","setFilterMenu","setColumnsMenu","StructureColumnMenuConfigArchive","nextConfig","menuConfig","StructureColumnMenuConfigArchive_Factory","StructureCellEditCloseAllService","closeAll$","closeAll","onCloseAll","StructureCellEditCloseAllService_Factory","StructureHeaderTopEnabledArchive","StructureHeaderTopEnabledArchive_Factory","StructureRowDetailConfigArchive","StructureRowDetailConfigArchive_Factory","structureRowDetailViewItem","structureRowDetailViewTemplate","DynamicallyCreatedComponent","subClassConstructor","elRef","hasInputs","throwError","isEmpty","reason","DynamicallyCreatedComponent_Factory","StructureRowDetailViewComponent","sanitizer","selectedRowValue","safeHTML","bypassSecurityTrustHtml","StructureRowDetailViewComponent_Factory","DomSanitizer","attrs","consts","StructureRowDetailViewComponent_Template","changeDetection","OnPush","None","decorators","StructureRowDetailService","injector","structureDetailViewConfigArchive","drawerService","ref","turnOn","turnOff","close","providers","useValue","open","appendToElement","StructureRowDetailService_Factory","FabricDrawerService","PagingPosition","CssClass","GuiState","state$","destroy$","setValue","assign","select","preparedState$","connect","arg","value$","setPartialState","newState","GuiState_Factory","StreamCloser","isCompleted","Gate","streamCloser","hermesUnsubscribe$","hermesUnsubscribe","isDefined","propertyName","Gate_Factory","StaticComponent","detach","StaticComponent_Factory","IconComponent","IconComponent_Factory","PureComponent","subClassNgOnInit","hasConstructorOnlyElementRefInjected","arguments","isElementRef","PureComponent_Factory","useReactiveContext","cd","unsub$","changeDetector","innerStream$","onDestroy","error","subscribeAndRender","CssClassModifier","SELECTED","unselect","clazzName","PagingWarehouse","PagingDisplayModeArchive","PagingDisplayModeArchive_Factory","GuiSubscriber","subscription","obs$","onError","onComplete","destroy","_error","GuiLetViewChanger","vcr","onNext","createEmbeddedView","GuiLetDirective","subscriber","guiLet","guiLetViewChanger","GuiLetDirective_Factory","ViewContainerRef","ɵɵProvidersFeature","TranslationPipe","actualTranslationValue","transform","onTranslation","translation","markForCheck","TranslationPipe_Factory","ɵpipe","ɵɵdefinePipe","pure","PagingNavigatorComponent","nextPageChanged","prevPageChanged","prevDisabled","nextDisabled","calculatePrev","calculateNext","isPrevPageDisabled","isNextPageDisabled","PagingNavigatorComponent_Factory","PagingNavigatorComponent_Template","PagingNavigatorComponent_Template_button_click_1_listener","PagingNavigatorComponent_Template_button_click_4_listener","dependencies","FabricButtonComponent","FabricButtonGroupComponent","PagingSelectComponent","selectPageSizes","selectPageSize","getSelectPageSizes","getSelectPageSize","getPageSize","getPageSizes","selectOption","PagingSelectComponent_Factory","PagingSelectComponent_Template","PagingSelectComponent_Template_gui_select_optionChanged_3_listener","FabricSelectComponent","PagingStatsComponent","calculate","getStart","getEnd","getSourceSize","isSourceNotEmpty","PagingStatsComponent_Factory","PagingStatsComponent_Template","noSource_r2","NgIf","AlternativePagingNavigatorComponent","firstPage","getPage","lastPage","numberOfPages","Math","ceil","AlternativePagingNavigatorComponent_Factory","ngContentSelectors","AlternativePagingNavigatorComponent_Template","ɵɵprojectionDef","AlternativePagingNavigatorComponent_Template_button_click_0_listener","ɵɵnamespaceSVG","ɵɵnamespaceHTML","AlternativePagingNavigatorComponent_Template_button_click_5_listener","ɵɵprojection","AlternativePagingNavigatorComponent_Template_button_click_9_listener","AlternativePagingNavigatorComponent_Template_button_click_12_listener","AlternativePagingPagesComponent","pagingCommandService","currentPage","numberOfVisiblePages","pageNumber","AlternativePagingPagesComponent_Factory","AlternativePagingPagesComponent_Template","noSource_r4","NgForOf","PagingComponent","cssClassModifier","pagingWarehouse","pagingDisplayModeArchive","position","onOriginSize","selectIsAdvancedPagingEnabled","onPaging","selectIsPagingVisible","BOTTOM","PAGING_TOP_CLASS_NAME","PAGING_BOTTOM_CLASS_NAME","mapIsPagingVisible","TOP","isPagerTop","isPagerBottom","PagingComponent_Factory","PagingComponent_Template","Logger","PageChangedEvent","StructureAggregateEvent","PageChangedAggregateEvent","toDomainEvent","PagesizeChangedEvent","PagesizeChangedAggregateEvent","PagingManager","events","logger","defaultPagingDefinition","isDisabled","change","warn","setSourceSize","size","ps","setPage","setPageSize","calculateStart","firstItem","calculateEnd","lastItem","sample","start","slice","clearEvents","PagingManagerFactory","createDefault","createFromConfig","SetPagingCommand","getPagingConfig","ChangePagesizeCommand","NextPageCommand","PrevPageCommand","PagingDispatcher","PagingSetEvent","SetPagingCommandHandler","domainEventPublisher","forCommand","structureAggregate","command","changePaging","publish","aggregate","NextPageEvent","NextPageCommandHandler","PrevPageEvent","PrevPageCommandHandler","structure","ChangePagesizeCommandHandler","aggregateEvents","getEvents","publishAggregateEvents","publishAggregateEvent","pageChangedEvent","pagesizeChangedEvent","structureKey","PagingDomainModule","defineAggregate","registerKey","registerProviders","container","registerCommandHandlers","registerDomainEventHandler","registerMultiDomainEventHandler","PagingModel","isNextDisabled","isPrevDisabled","end","compare","target","JSON","stringify","PagingConverter","StructureReadModelRepository","forEvents","subs","console","PagingRepository","structureRepository","getPaging","PagingDomainWarehouse","pagingRepository","oncePaging","PagingDomainPublisher","pagingDispatcher","changePagerTop","changePagerBottom","PagingDomainEventRepository","eventBusToRemove","PagingApiModule","initializePaging","Dictionary","resolver","changeTranslation","getTranslation","from","reduce","setResolver","TranslationDomainFacade","dictionary","dictionary$","changeTranslationAndPropagate","setResolverAndPropagate","TranslationFeatureModule","forComponent","useClass","ɵTranslationFeatureModule_BaseFactory","TranslationFeatureModule_Factory","ɵɵgetInheritedFactory","ɵmod","ɵɵdefineNgModule","ɵinj","ɵɵdefineInjector","imports","declarations","exports","GuiPushSubscriber","actualObs$","baseValues$","scheduleCD","setTimeout","GuiPushPipe","GuiPushPipe_Factory","GuiIfDirective","guiIf","GuiIfDirective_Factory","GuiForDirective","guiForOf","GuiForDirective_Factory","GuiStyleDirective","STYLE","guiStyle","setStyleByName","GuiStyleDirective_Factory","GuiClassManager","Set","update","newClasses","actualClasses","classesToAdd","classesToRemove","clazz","some","actualClass","newClass","GuiClassDirective","guiClass","classManager","GuiClassDirective_Factory","required","GuiTemplateModule","GuiTemplateModule_Factory","providePagingCommandInvoker","providePagingWarehouse","providePagingEventRepository","PagingFeatureModule","ɵPagingFeatureModule_BaseFactory","PagingFeatureModule_Factory","useFactory","StructureTitlePanelConfigArchive","titlePanelConfig","StructureFooterPanelConfigArchive","footerPanelConfig","filterContainerToken","StyleName","StyleModifier","WIDTH","toPx","setHeight","HEIGHT","setPaddingTop","PADDING_TOP","styleName","removeStyleByName","FieldPublisher","StructureWarehouse","onEditManager","SearchWarehouse","prefix","STRUCTURE_CSS_CLASS_NAME","SummariesWarehouse","SummariesTranslations","SortOrder","CellTemplateWithContext","columnDefinitionId","sortStatus","sortable","getHeader","getColumnDefinitionId","getAlign","CompositionTemplateModel","CellValueType","CellValue","HTML","CellTemplateWithAccessor","editable","templateFun","formatterFun","cellEditingEnabled","getCellView","getColumnConfig","isCellEditingEnabled","isBooleanDataType","getView","cellValue","findValue","getClasses","FUNCTION","txt","lowerCasedText","loweredSearchPhrase","positions","found","indexOf","arr","split","pos","ph","join","CompositionAccessorModel","CompositionAggregateEvents","CompositionResizeWidthSetAggregateEvent","ColumnsSetAggregateEvent","CompositionContainerWidthSetAggregateEvent","CompositionWidthSetAggregateEvent","CompositionColumnSetEnabledAggregateEvent","CompositionColumnMovedLeftAggregateEvent","CompositionColumnMovedRightAggregateEvent","GroupsSetAggregateEvent","CompositionDomainEvent","CompositionResizeWidthSetEvent","CompositionColumnsSetEvent","CompositionContainerWidthSetEvent","payload","CompositionWidthSetEvent","CompositionColumnSetEnabledEvent","CompositionColumnMovedLeftEvent","CompositionColumnMovedRightEvent","CompositionGroupsSetEvent","CompositionEventConverter","convertEvents","convertEvent","aggregateEvent","CompositionCommand","SetColumnsCommand","getParams","SetColumnsCommandHandler","compositionEventConverter","setColumnsParams","publishEvents","composition","domainEvents","SetCompositionWidthCommand","getWidth","SetCompositionWidthCommandHandler","SetCompositionResizeWidthCommand","getEnabled","SetCompositionResizeWidthCommandHandler","SetCompositionContainerWidthCommand","SetCompositionContainerWidthCommandHandler","setContainerWidth","CompositionSetColumnEnabledCommand","columnId","getColumnId","CompositionSetColumnEnabledCommandHandler","enableColumn","CompositionChangeSortStatusCommand","sortParams","getCompositionId","getSortParams","CompositionChangeSortStatusEvent","activeColumns","getActiveColumns","CompositionChangeSortStatusCommandHandler","changeSort","CompositionMoveLeftColumnCommand","CompositionMoveLeftColumnCommandHandler","CompositionMoveRightColumnCommand","CompositionMoveRightColumnCommandHandler","SortToggledEvent","directions","getDirections","CreateCompositionCommand","SetGroupsCommand","CompositionDispatcher","setColumnEnabled","ChangeSortParams","direction","SortOrderSetEvent","CompositionChangeSortStatusEventHandler","compositionDispatcher","ofMessageType","dirs","dir","ViewEntity","templateFunction","cellView","fromDataType","getTemplateFunction","AbstractColumnEntity","presentation","setInitialAlign","getPresentation","getFormatterFunction","setView","setHeader","ColumnEntity","getDefaultView","getDefaultAlign","setEnabled","setSortStatus","ColumnId","ColumnPresentation","NumberColumnPresentation","instance","getInstance","getPossibleViews","BooleanColumnPresentation","DateColumnPresentation","StringColumnPresentation","UnknownColumnPresentation","ColumnPresentationConverter","ColumnEntityFactory","columnPresentationConverter","createColumns","createColumn","convertWidth","columnEntity","columnEntities","Group","GroupId","CompositionGroupFactory","SetGroupsCommandHandler","ColumnHighlightManager","highlightedColumns","ColumnHighlightArchive","manager","a","b","createDefaultValue","defaultValue","InMemoryCompositionStore","InMemoryCompositionAggregateStore","inMemoryCompositionStore","CompositionAggregateRepository","InMemoryCompositionAggregateRepository","inMemoryCompositionAggregateStore","findById","save","CellContext","ColumnDefinition","formatterFunction","setField","setTemplateFunction","setFormatterFunction","toHeaderCellTemplateWithContext","headerCellContext","toContentCellTemplateWithAccessor","ColumnDefinitionId","ColumnDefinitionFactory","createFromColumnEntity","createFromActiveColumnEntity","columnDef","activeColumn","CompositionReadModeRoot","ready","allColumns","resizeWidth","uid","getAllColumns","getActiveHeaderColumns","getHeaderColumns","getTemplateColumns","getContainerWidth","isReady","isResizeWidthEnabled","equalsByColumns","CompositionReadModelRootConverter","columnDefinitionFactory","allColumnDefs","convertToColumnDef","activeColumnDefs","convertActiveColumnsToColumnDef","isResizeEnabled","columnDefs","InMemoryCompositionReadStore","compositionConverter","toReadModel","CompositionReadModelRootRepository","CompositionCreatedEvent","InMemoryCompositionRepository","inMemoryCompositionReadStore","compositionIdToComposition","composition$","of","optComposition","getById","CreateCompositionCommandHandler","CompositionContainerWidthCalculator","MIN_COLUMN_WIDTH","calculateMinWidth","columnWidths","staticColumns","fluidColumns","segregateColumns","columnWidth","isTypeNumber","isTypeAuto","isTypePercentage","CompositionAggregateEvent","ColumnWidthType","ColumnWidth","baseWidth","setWidthAndType","getColumnType","AUTO","isPercentage","percentageToNumber","isStringNumber","clone","widthAsNumber","Number","isNaN","CompositionWidthCalculator","adjustMinimalWidth","newColumns","evenWidth","adjustPercentageWidth","percentageColumns","adjustAutoWidth","leftWidth","autoColumns","splitWidth","ColumnWidthCollection","baseColumnWidths","getColumnWidths","getColumnsWidth","getWidths","getMinWidth","calculator","getMinColumnWidth","CompositionChangeSortStatusAggregateEvent","ActiveColumnContainer","columnWidthCollection","gridWidth","addColumn","splice","removeColumn","updatedWidths","param","findColumnIndex","move","fromIndex","toIndex","validateMoveIndex","findIndex","ActiveColumnEntity","fromEntity","ActiveColumnEntityConverter","convertMany","entities","CompositionCreatedAggregateEvent","emptyGroup","CompositionAggregate","baseColumns","baseParams","containerInDOMWidth","resizeWidthEnabled","columnFactory","groupFactory","activeColumnContainer","activeColumnEntityConverter","columnNameToGroupId","columnsParams","getEnabledColumns","createEvent","group","addEvent","setContainerWidthWithEvent","recalculateColumns","setWidthWithEvent","setResizeWidthWithEvent","enabledIndex","prevState","columnToAdd","columnIndex","nextLeft","nextLeftIndex","leftColumn","nextRight","nextRightIndex","rightColumn","minWidth","CompositionAggregateFactory","compositionKey","CompositionDomainModule","aggregateKey","createCommandHandler","repository","FunctionViewComponent","FunctionViewComponent_Factory","FunctionViewComponent_Template","PercentageViewComponent","PercentageViewComponent_Factory","PercentageViewComponent_Template","BarViewComponent","showPercentage","BarViewComponent_Factory","BarViewComponent_Template","SafePipe","bypassSecurityTrustStyle","bypassSecurityTrustScript","bypassSecurityTrustUrl","bypassSecurityTrustResourceUrl","SafePipe_Factory","TextViewComponent","isHtml","isBold","isItalic","TextViewComponent_Factory","ɵɵinjectAttribute","TextViewComponent_Template","text_r2","HtmlViewComponent","HtmlViewComponent_Factory","HtmlViewComponent_Template","ViewTemplatesComponent","textTemplate","numberTemplate","chipTemplate","linkTemplate","imageTemplate","checkboxTemplate","boldTemplate","italicTemplate","customTemplate","functionTemplate","htmlTemplate","dateTemplate","barTemplate","percentageBarTemplate","percentageTemplate","getTemplate","ViewTemplatesComponent_Factory","viewQuery","ViewTemplatesComponent_Query","ɵɵviewQuery","ViewTemplatesComponent_Template","FabricChipComponent","FabricCheckboxComponent","DatePipe","read","TemplateFactory","templatesComponentDefinition","componentFactoryResolver","templates","templatesComponent","createTemplatesComponent","getTemplates","componentFactory","resolveComponentFactory","generateMap","generateMapKeys","findAndSetTemplate","dt","ViewTemplateFactory","ViewTemplateFactory_Factory","ViewTemplateRepository","columnTemplateFactory","findTemplate","typeToTemplate","ViewTemplateRepository_Factory","EditEventType","EditCommunicationComponent","ENTER_KEY_CODE","ESC_KEY_CODE","submit","emitStatus","cancel","EditCommunicationComponent_Factory","InputEditTemplateComponent","formBuilder","inputRef","observeChanges","inputElement","focusField","emitValueChange","keyup$","keyCode","InputEditTemplateComponent_Factory","FormBuilder","InputEditTemplateComponent_Query","StringEditTemplateComponent","fb","setSelectionRange","StringEditTemplateComponent_Factory","StringEditTemplateComponent_Template","ɵNgNoValidate","DefaultValueAccessor","NgControlStatus","NgControlStatusGroup","FormGroupDirective","FormControlName","NumberEditTemplateComponent","NumberEditTemplateComponent_Factory","NumberEditTemplateComponent_Template","NumberValueAccessor","BooleanEditTemplateComponent","checkboxRef","changed","BooleanEditTemplateComponent_Factory","BooleanEditTemplateComponent_Query","BooleanEditTemplateComponent_Template","BooleanEditTemplateComponent_Template_gui_checkbox_changed_1_listener","DateEditTemplateComponent","datePickerRef","opened","localStreamCloser","querySelector","dialogOpened","DateEditTemplateComponent_Factory","DateEditTemplateComponent_Query","DateEditTemplateComponent_Template","DateEditTemplateComponent_Template_gui_date_picker_dialogOpened_0_listener","DateEditTemplateComponent_Template_gui_date_picker_dateSelected_0_listener","FabricDatePickerComponent","EditTemplatesComponent","stringTemplate","booleanTemplate","emptyTemplate","EditTemplatesComponent_Factory","EditTemplatesComponent_Query","EditTemplatesComponent_Template","EditTemplateFactory","EditTemplateFactory_Factory","EditTemplateRepository","editTemplateFactory","EditTemplateRepository_Factory","GroupCollection","getGroups","isVisible","CompositionGroupArchive","CompositionDomainPublisher","compositionGroupRepository","columnHighlightArchive","toColumnId","disableColumn","defId","CompositionDomainWarehouse","compositionRepository","compositionGroupArchive","onWidth","onContainerWidth","onWidthForEachColumn","onHeaderColumns","onAllColumns","onSortOrder","onResizeWidth","onGroups","onHighlightedColumn","names","CompositionDomainEventRepository","onEvent","getPayload","DomainColumnAutoConfigurator","rawItem","toColumnConfig","toUpperCase","Date","CompositionApiModule","initializeComposition","CompositionTemplateWarehouse","viewTemplateRepository","editTemplateRepository","onHeaderCols","headerTemplate","findViewTemplate","findEditTemplate","onAll","onTemplateCols","cellTemplate","CompositionTemplateWarehouse_Factory","SummariesEventRepository","StructureSummariesPanelComponent","structureSummariesEventRepository","compositionTemplateWarehouse","selectCheckboxSelection","selectSummariesTranslations","selectSourceEmpty","selectSummaries","onType","onItemsSize","onSummariesChanged","getSummaries","StructureSummariesPanelComponent_Factory","StructureSummariesPanelComponent_Template","FabricTooltipDirective","StructureInfoModalComponent","StructureInfoModalComponent_Factory","StructureInfoModalComponent_Template","StructureColumnManagerComponent","selectColumns","selectEnabledColumnsCount","stopPropagation","accumulator","StructureColumnManagerComponent_Factory","StructureColumnManagerComponent_Template","NgTemplateOutlet","StructureDialogColumnManagerComponent","StructureDialogColumnManagerComponent_Factory","StructureDialogColumnManagerComponent_Template","StructureThemeConverter","convertTheme","StructureThemeConverter_Factory","StructureDialogColumnManagerService","schemaWarehouse","structureThemeConverter","fabricDialogService","readModelId","parentInjector","findTheme","StructureDialogColumnManagerService_Factory","FabricDialogService","StructureSchemaMangerComponent","schemaPublisher","createColoringOptions","themes","createThemeOptions","rowColoring$","selectRowColoring","theme$","selectTheme","verticalGrid$","horizontalGrid$","toggleTheme","toTheme","toggleRowColoring","toRowColoring","val","isInteger","StructureSchemaMangerComponent_Factory","StructureSchemaMangerComponent_Template","StructureSchemaMangerComponent_Template_gui_select_optionChanged_8_listener","StructureSchemaMangerComponent_Template_gui_select_optionChanged_14_listener","StructureDialogSchemaManagerComponent","StructureDialogSchemaManagerComponent_Factory","StructureDialogSchemaManagerComponent_Template","StructureDialogSchemaManagerService","StructureDialogSchemaManagerService_Factory","StructureColumnManagerIconComponent","StructureColumnManagerIconComponent_Factory","StructureColumnManagerIconComponent_Template","StructureSchemaManagerIconComponent","cdr","StructureSchemaManagerIconComponent_Factory","StructureSchemaManagerIconComponent_Template","ActiveSearchComponent","searchCommandDispatcher","searchWarehouse","phrase$","onPhrase","ActiveSearchComponent_Factory","ActiveSearchComponent_Template","ActiveFilterListComponent","filterCommandDispatcher","activeFilters$","onActiveFilters","ActiveFilterListComponent_Factory","ActiveFilterListComponent_Template","ActiveFilterMenuComponent","ActiveFilterMenuComponent_Factory","ActiveFilterMenuComponent_Template","ActiveFilterService","ActiveFilterService_Factory","ActiveFilterMenuTriggerDirective","el","activeFilterService","ActiveFilterMenuTriggerDirective_Factory","StructureInfoIconComponent","StructureInfoIconComponent_Factory","StructureInfoIconComponent_Template","NumberFormatterPipe","number","replace","NumberFormatterPipe_Factory","StructureInfoPanelComponent","dialog","menuColumnManagerService","schemaManagerService","infoModal","StructureInfoPanelComponent_Factory","StructureInfoPanelComponent_Template","GuiEffects","effect$","log","GuiEffects_Factory","SearchIconComponent","SearchIconComponent_Factory","SearchIconComponent_Template","SearchComponent","effects","FORM_SEARCH_NAME","formRef","onPlaceholder","searchingEnabled$","onSearchEnabled","searchInputSubscription","controlsConfig","registerOnPhraseEffect","registerOnChangesEffect","reset","selectPhrase","searchPhrase$","unregisterObserveChangesEffect","SearchComponent_Factory","SearchComponent_Query","SearchComponent_Template","StructureTopPanelComponent","StructureTopPanelComponent_Factory","StructureTopPanelComponent_Template","EmptySourceComponent","EmptySourceComponent_Factory","EmptySourceComponent_Template","VerticalFormationWarehouse","StructureMenuColumnManagerComponent","StructureMenuColumnManagerComponent_Factory","StructureMenuColumnManagerComponent_Template","UniqueValueListComponent","selectUniqueValues","isSelectAllChecked","isSelectAllIndeterminate","unselectAllUniqueFilter","selectAllUniqueFilter","uniqueValueModel","unselectUniqueFilter","selectUniqueFilter","onUniqueValues","uniqueValueCollectionModel","isIndeterminate","UniqueValueListComponent_Factory","UniqueValueListComponent_Template","StructureArrowIconComponent","UP","styleModifier","getTransformValue","getRotationDeg","StructureArrowIconComponent_Factory","StructureArrowIconComponent_Template","StructureColumnConfigSortComponent","sortingCommandDispatcher","compositionReadModelService","Right","sortOrder$","selectSortOrder","preventDefault","StructureColumnConfigSortComponent_Factory","StructureColumnConfigSortComponent_Template","FabricDropdownComponent","FabricDropdownItemComponent","StructureColumnConfigColumnHideComponent","columnHidden","StructureColumnConfigColumnHideComponent_Factory","StructureColumnConfigColumnHideComponent_Template","StructureColumnConfigColumnHideComponent_Template_div_click_0_listener","StructureColumnConfigColumnMoveComponent","movedLeft","movedRight","StructureColumnConfigColumnMoveComponent_Factory","StructureColumnConfigColumnMoveComponent_Template","StructureColumnConfigColumnMoveComponent_Template_div_click_1_listener","StructureColumnConfigColumnMoveComponent_Template_div_click_5_listener","StructureColumnConfigComponent","translationFacade","structureColumnMenuConfigArchive","headerSortMenu","structureColumnConfigService","StructureColumnConfigService","selectIsEnabled","StructureColumnConfigComponent_Factory","StructureColumnConfigComponent_Query","StructureColumnConfigComponent_Template","FabricTabComponent","FabricTabItemComponent","inlineDialogService","onceTheme","offset","customClass","StructureColumnConfigService_Factory","FabricInlineDialogService","SelectCustomModalComponent","formationPublisher","selection$","onCustomSelections","SelectCustomModalComponent_Factory","SelectCustomModalComponent_Template","StructureSelectCustomService","StructureSelectCustomService_Factory","SelectAllComponent","selectModeMulti","onMode","onRowSelectedReadModel","rowSelectedReadModel","SelectAllComponent_Factory","SelectAllComponent_Template","StructureColumnMenuIconComponent","StructureColumnMenuIconComponent_Factory","StructureColumnMenuIconComponent_Template","StructureColumnConfigTriggerComponent","headerDialogContainer","isEnabled$","StructureColumnConfigTriggerComponent_Factory","StructureColumnConfigTriggerComponent_Query","StructureColumnConfigTriggerComponent_Template","NgClass","StructureHeaderColumnsComponent","structureSelectCustomService","selectCustomContainer","showCustom","StructureHeaderColumnsComponent_Factory","StructureHeaderColumnsComponent_Query","StructureHeaderColumnsComponent_Template","StructureHeaderGroupsComponent","globalSearching","isSortAsc","isSortDesc","isGlobalSortEnabled","StructureHeaderGroupsComponent_Factory","StructureHeaderGroupsComponent_Template","StructureHeaderFiltersComponent","structureFilterCommandService","closed","filterMode","selectFilterFormChanges","f","StructureHeaderFiltersComponent_Factory","StructureHeaderFiltersComponent_Template","FabricInputComponent","StructureHeaderComponent","verticalFormationWarehouse","onRowHeight","headerHeight","height","selectShowSelection","onFilteringEnabled","selectShowGroups","selectGroups","collection","StructureHeaderComponent_Factory","StructureHeaderComponent_Template","ResizeDetector","platformId","observer","resizeObserver","ResizeObserver","entries","contentRect","observe","disconnect","ResizeDetector_Factory","RowSelectToggleType","ChangedValueEmitter","StructureEditSourceItemParams","getColumnFieldId","StructureCellEditBooleanComponent","cellContainerRef","valueChanges$","status$","actualValue","initEditContext","submitChanges","updatedValue","editItem","observeValueChanges","StructureCellEditBooleanComponent_Factory","StructureCellEditBooleanComponent_Query","StructureCellEditBooleanComponent_Template","StructureCellComponent","cellEditCloseAllService","cellEditorManager","rowIndex","exitEditMode","forceCheck","observeFieldStatus","publishEditEnter","submitChangesAndExit","publishEditSubmit","publishEditCancel","publishEditState","StructureCellComponent_Factory","StructureCellComponent_Template","StructureRowComponent","checkSelectedItem","updateRowClass","previousValue","updateRowStyle","prevValue","ADD","isSelected","calculateRowStyle","style","styleFunction","prevEntity","rowStylesToRemove","removeRowStyles","rowStylesToAdd","renderRowStyles","separatedStyles","trim","toRemoveClass","calculateRowClass","toAddClass","class","classFunction","StructureRowComponent_Factory","StructureRowComponent_Template","FabricRadioButtonComponent","StructureContentComponent","structureWarehouse","onSelectionEnabled","onRowClass","onRowStyle","selectRadioSelection","selectSearchPhrase","onHighlight","highlighting","StructureContentComponent_Factory","StructureContentComponent_Template","NgStyle","StructureContainerComponent","ngZone","structureCommandService","resizeDetector","structureParent","sourceCollectionRef","autoResizeWidthEnabled","scrollObservation$","onContainerHeight","containerHeight","onItems","getElementRef","recalculateContainer","onEnabled","enableScrollObservation","disableScrollObservation","str","isVerticalScrollEnabled","topMargin","getTopMargin","sourceHeight","getSourceHeight","setSourceHeight","onScrollBarPosition","scrollPosition","scrollTop","runOutsideAngular","setScrollPosition","StructureContainerComponent_Factory","NgZone","StructureContainerComponent_Query","StructureContainerComponent_Template","StructureBannerPanel","bannerPanel$","initObservables","selectBannerPanelTemplate","onBannerPanelConfig","StructureBannerPanel_Factory","StructureTitlePanelComponent","structureTitlePanelConfigArchive","StructureTitlePanelComponent_Factory","StructureTitlePanelComponent_Template","StructureFooterPanelComponent","structureFooterPanelConfigArchive","StructureFooterPanelComponent_Factory","StructureFooterPanelComponent_Template","StructureBlueprintComponent","structureDefinition","summariesWarehouse","structureHeaderTopEnabledArchive","bottomSummariesPanelEnabled$","onBottomEnabled","contentCssClass","headerCssClass","topHeaderEnabled$","bottomHeaderEnabled$","footerPanelEnabled$","selectFooterPanelEnabled","items$","selectItems","topSummariesPanelEnabled$","onTopEnabled","searchEnabled$","titlePanelEnabled$","selectTitlePanelEnabled","infoPanelEnabled$","selectInfoPanelEnabled","pagingModel$","topHeaderEnabled","bottomHeaderEnabled","pagingModel","getEntities","StructureBlueprintComponent_Factory","StructureBlueprintComponent_Template","structureIdFactoryForGrid","generator","compositionIdFactoryForGrid","schemaIdFactoryForGrid","StructureComponent","detectorRef","schemaStylesManager","structureDetailViewService","loaderEnabled","circleLoaderEnabled","initialLoaderAnimation","sourceCommandDispatcher","fieldCommandDispatcher","structureReadModelRoot","getSource","isLoading","isLoaderVisible","offsetWidth","getStructureId","StructureComponent_Factory","hostVars","hostBindings","StructureComponent_HostBindings","ɵɵhostProperty","deps","useExisting","StructureComponent_Template","FabricSpinnerComponent","host","StructureColumnHeaderGate","StructureColumnHeaderGate_Factory","PagingGate","PagingGate_Factory","StructurePagingGate","pagingPublisher","StructurePagingGate_Factory","SearchingGate","SearchingGate_Factory","StructureSearchingGate","StructureSearchingGate_Factory","SelectionGate","formationEventRepository","setSelection","changeType","changeMode","setMatcher","selectByIndex","selectByIds","setCustomSelection","selectItemsSelected","SelectionGate_Factory","StructureSelectionGate","selectionGate","StructureSelectionGate_Factory","StructureL10nGate","translationResolver","StructureL10nGate_Factory","StructurePanelGate","StructurePanelGate_Factory","StructureRowDetailGate","StructureRowDetailGate_Factory","StructureColumnMenuGate","StructureColumnMenuGate_Factory","StructureSummariesGate","setConfig","StructureSummariesGate_Factory","StructureInfoPanelGate","StructureInfoPanelGate_Factory","StructureRowClassGate","setRowClass","StructureRowClassGate_Factory","StructureRowStyleGate","setRowStyle","StructureRowStyleGate_Factory","StructureRowColoringGate","StructureRowColoringGate_Factory","ThemeGridGate","onHorizontalGridChanged","onVerticalGridChanged","ThemeGridGate_Factory","StructureSortingGate","StructureSortingGate_Factory","SourceLoadingGate","SourceLoadingGate_Factory","StructureFilterGate","setFilterConfig","StructureFilterGate_Factory","StructureQuickFiltersGate","setQuickFiltersConfig","StructureQuickFiltersGate_Factory","VerticalFormationGate","VerticalFormationGate_Factory","GuiGridComponent","gridRegister","structureIdGenerator","structureCommandDispatcher","GUI_GRID_ID","structureRef","api","localGridId","attributeModifier","initApi","exposeGridId","window","gridConsoleConfig","GuiGridComponent_Factory","GuiGridComponent_Query","GuiGridComponent_Template","GuiGridComponent_Template_gui_structure_cellEditCanceled_0_listener","GuiGridComponent_Template_gui_structure_cellEditEntered_0_listener","GuiGridComponent_Template_gui_structure_cellEditSubmitted_0_listener","GuiGridComponent_Template_gui_structure_columnsChanged_0_listener","GuiGridComponent_Template_gui_structure_containerWidthChanged_0_listener","GuiGridComponent_Template_gui_structure_horizontalGridChanged_0_listener","GuiGridComponent_Template_gui_structure_itemsSelected_0_listener","GuiGridComponent_Template_gui_structure_pageChanged_0_listener","GuiGridComponent_Template_gui_structure_pageSizeChanged_0_listener","GuiGridComponent_Template_gui_structure_rowColoringChanged_0_listener","GuiGridComponent_Template_gui_structure_searchPhraseChanged_0_listener","GuiGridComponent_Template_gui_structure_selectedRows_0_listener","GuiGridComponent_Template_gui_structure_sourceEdited_0_listener","GuiGridComponent_Template_gui_structure_themeChanged_0_listener","GuiGridComponent_Template_gui_structure_verticalGridChanged_0_listener","fabricImports","NumberFormatterModule","NumberFormatterModule_Factory","declarations$3","StructureColumnManagerModule","StructureColumnManagerModule_Factory","SchemaManagerModule","SchemaManagerModule_Factory","FilterIconComponent","FilterIconComponent_Factory","FilterIconComponent_Template","FieldWarehouse","FilterTypeSelectorComponent","filterTypeSelected","filterTypesAsOptions","disabled","onSelectChange","option","FilterTypeSelectorComponent_Factory","FilterTypeSelectorComponent_Template","FilterTypeSelectorComponent_Template_gui_select_optionChanged_0_listener","FilterValueComponent","FORM_FILTER_VALUE","valueChanged","selectFilterFormValue","FilterValueComponent_Factory","FilterValueComponent_Query","FilterValueComponent_Template","FieldSelectorComponent","fieldSelected","fieldsAsOptions","onFieldSelected","FieldSelectorComponent_Factory","FieldSelectorComponent_Template","FilterMenuActiveFiltersComponent","activeFilters","removedFilter","FilterMenuActiveFiltersComponent_Factory","FilterMenuActiveFiltersComponent_Template","FilterMenuComponent","fieldWarehouse","selectedColumn","selectedField","selectedFilterTypeId","selectedValue","fields$","onFields","onFieldSelect","filterTypeMapOpt","filterTypeMap","onFilterTypeSelect","removeAllFilters","addFilter","clearAddFilterForm","onRemovedFilter","FilterMenuComponent_Factory","FilterMenuComponent_Template","FilterMenuComponent_Template_div_removedFilter_2_listener","FilterMenuComponent_Template_div_fieldSelected_5_listener","FilterMenuComponent_Template_div_filterTypeSelected_7_listener","FilterMenuComponent_Template_button_click_9_listener","FilterMenuComponent_Template_button_click_11_listener","FilterMenuComponent_Template_button_click_22_listener","FilterMenuTriggerComponent","activeFiltersExist$","selectActiveFiltersExist","openDrawer","FilterMenuTriggerComponent_Factory","FilterMenuTriggerComponent_Template","FilterMenuTriggerComponent_Template_div_click_0_listener","ColumnSelectorComponent","columnSelected","ColumnSelectorComponent_Factory","ColumnSelectorComponent_Template","ToggleFilterCommand","externalFilterId","filterValue","getExternalFilterId","getFilterValue","FilterToggledEvent","ToggleFilterCommandHandler","externalFieldId","toggleFilter","AddFilterCommand","getFilterTypeId","AddFilterCommandHandler","RemoveAllFiltersCommand","RemoveAllFiltersCommandHandler","RemoveFilterCommand","RemoveFilterCommandHandler","SetConfigFilterCommand","filterConfig","getConfig","ConfigFilterSetEvent","SetConfigFilterCommandHandler","SetConfigQuickFilterCommand","quickFiltersConfig","ConfigQuickFilterSetEvent","SetConfigQuickFilterCommandHandler","Filter","FilterSettings","filteringEnabled","searchEnabled","quickFiltersEnabled","isQuickFilteringEnabled","isSearchingEnabled","BaseFilterType","filterMany","filterEntity","filterOne","ContainsFilterType","fieldValue","includes","FilterTypeId","FilterTypeIdGenerator","FilterTypeModel","FilterTypeManager","fieldIds","WeakMap","dataTypeToFilterType","filterTypeIdGenerator","assignFilterTypes","addFields","getFilterType","getFieldIdsToFilterTypes","readModels","addField","filterTypesFromDataType","assignFilterTypesForDataTypeUnknown","assignFilterTypesForDataTypeNumber","assignFilterTypesForDataTypeString","assignFilterTypesForDataTypeBoolean","assignFilterTypesForDataTypeDate","assignFilterTypesForDataTypeCustom","addFilterTypes","FilterId","FilterIdGenerator","ActiveFilterModel","fieldName","filterTypeName","FilterManager","filterSettings","filterTypeManager","getSettings","getAll","getAllActiveFilters","af","filteredEntities","FilterManagerFactory","QuickFilterEnabledArchive","ConfigQuickFilterSetEventHandler","quickFilterEnabledArchive","forEvent","FilterEnabledArchive","ConfigFilterSetEventHandler","filterEnabledArchive","FilterTypeCollectionModel","result","FilterTypeArchive","FilterTypesInitedEvent","getMap","ActiveFilterArchive","filterDiContainer","FilterDiContainer","FilterTypeConfigFilterSetEventHandler","filterTypeArchive","filterTypesInitedEvent","ActiveFiltersSetEvent","ActiveFiltersSetEventHandler","activeFilterRepository","activeFiltersSetEvent","UniqueFilterCalculatedEvent","getUniqueValues","UniqueValueCollectionModel","allDisabled","calculateSelection","areAllSelected","areAllDisabled","UniqueValueCollectionArchive","UniqueValueModel","displayValue","geDisplayValue","UniqueFilterCalculatedEventHandler","uniqueValuesRepository","calculatedEvent","uvRM","valuesRM","uv","getDisplayValue","FilterTypeFieldsInitedEventHandler","fieldsInitedEvent","UnselectAllUniqueFilterCommand","UnselectAllUniqueFilterCommandHandler","UnselectUniqueFilterCommand","uniqueValueId","getUniqueValueId","UnselectUniqueFilterCommandHandler","SelectAllUniqueFilterCommand","SelectAllUniqueFilterCommandHandler","SelectUniqueFilterCommand","SelectUniqueFilterCommandHandler","FilterDomainModule","FilterDomainWarehouse","structureQuickFilterRepository","uniqueValuesArchive","activeFilterArchive","onQuickFiltersEnabled","onFilterTypes","fieldType","empty","FilterDomainPublisher","FilterApiModule","initializeFilter","provideFilterCommandInvoker","provideFilterWarehouse","provideFilterIntegration","FilterFeatureModule","FilterFeatureModule_Factory","ActiveFilterListModule","ɵActiveFilterListModule_BaseFactory","ActiveFilterListModule_Factory","FilterMenuFeatureModule","ɵFilterMenuFeatureModule_BaseFactory","FilterMenuFeatureModule_Factory","SourceCounterFeatureModule","ɵSourceCounterFeatureModule_BaseFactory","SourceCounterFeatureModule_Factory","StructureInfoPanelModule","StructureInfoPanelModule_Factory","StructureHeaderFilterComponent","sub","StructureHeaderFilterComponent_Factory","StructureHeaderFilterComponent_Template","StructureQuickFiltersComponent","StructureQuickFiltersComponent_Factory","StructureQuickFiltersComponent_Template","ConsoleLogger","initializeLogger","provideLogger","LoggerModule","LoggerModule_Factory","Item","version","getVersion","equalsById","ItemEntity","sourceItem","bumpVersion","setPosition","rawData","ItemFactory","createItems","createItem","originItem","SetConfigSearchingCommand","searchConfig","ConfigSearchingSetEvent","SetConfigSearchingCommandHandler","searchingConfig","SetSearchPhraseCommand","initial","getPhrase","isInitial","SearchPhraseSetDomainEvent","OriginSetEvent","origin","getOrigin","StructureSummariesChangedEvent","StructurePreparedEntitiesSetEvent","preparedItems","getPreparedItems","SourceDomainEventPublisher","publishEvent","structureOriginChangedAggregateEvent","domainEvent","structureSourceItemEditedAggregateEvent","structureSummariesChangedAggregateEvent","structurePreparedEntitiesSetAggregateEvent","uniqueFilterCalculatedAggregateEvent","StructureSetSearchPhraseCommandHandler","structureSourceDomainEventPublisher","addSearchPhrase","SearchManager","searchFields","enabledDataTypes","searchableFields","removeSearchFilters","searchedItems","SearchManagerFactory","SearchHighlightArchive","HIGHLIGHTING","SearchPlaceholderArchive","PLACEHOLDER","SearchDispatcher","searchHighlightArchive","searchPlaceholderArchive","placeholder","searchOnInit","SearchPhraseArchive","SEARCH_PHRASE","SearchPhraseSetEventHandler","searchPhraseRepository","SearchingEnabledArchive","ENABLED","ConfigSearchingSetEventHandler","searchingEnabledArchive","RemoveSearchPhraseCommand","RemoveSearchPhraseCommandHandler","removeSearchPhrase","SearchDomainModule","SearchDomainWarehouse","searchPhraseArchive","SearchDomainEventRepository","SearchDomainPublisher","searchDispatcher","SearchApiModule","initializeSearch","provideSearchCommandInvoker","provideSearchWarehouse","provideSearchEventRepository","SearchFeatureModule","ɵSearchFeatureModule_BaseFactory","SearchFeatureModule_Factory","StructureTopPanelModule","StructureTopPanelModule_Factory","UniqueValueListModule","ɵUniqueValueListModule_BaseFactory","UniqueValueListModule_Factory","icon$1","StructureMenuIconModule","StructureMenuIconModule_Factory","icon","StructureArrowIconModule","StructureArrowIconModule_Factory","declarations$2","icons$1","StructureColumnMenuModule","StructureColumnMenuModule_Factory","StructureCellEditComponent","StructureCellEditComponent_Factory","StructureCellEditComponent_Query","StructureCellEditComponent_Template","EmptySourceFeatureModule","ɵEmptySourceFeatureModule_BaseFactory","EmptySourceFeatureModule_Factory","ToggleSortCommand","ToggleSortCommandHandler","sorters","publishSortEvent","sorter","hasDirection","SetSortingCommand","getSortingConfig","SortingSetEvent","SetSortingCommandHandler","SetSortOrderCommand","sortOrder","getSortOrder","SetSortOrderCommandHandler","SortingDispatcher","SortingDomainModule","SortingDomainPublisher","sortingDispatcher","SortingApiModule","initializeSorting","provideSortingCommandInvoker","SortingFeatureModule","ɵSortingFeatureModule_BaseFactory","SortingFeatureModule_Factory","FieldArchive","FieldModel","FieldConverter","convertOne","FieldCollection","fieldFactory","getAllFields","getAllFieldIds","getFieldsAsMap","initFields","FieldEntity","dataField","getKey","isSummaries","isSummariesEnabled","filterPhrase","entityOne","entityTwo","valueOne","getSortValue","valueTwo","BaseDataField","accessorMethod","matchers","getMatchers","getSearchMatcher","m","getSortMatcher","getSearchValue","DataField","summariesEnabled","possibleSummaries","assignPossibleSummaries","assignSummaries","assignDefaultSummaries","UnknownDataField","one","two","NumberDataField","numOne","numTwo","sureNumOne","sureNumTwo","StringDataField","strOne","strTwo","sureStrOne","sureStrTwo","localeCompare","BooleanDataField","booleanOne","booleanTwo","sureBoolOne","sureBoolTwo","DateDataField","dateOne","dateTwo","getTime","toDateString","FieldMatchers","sortMatcher","searchMatcher","DataFieldFactory","fieldConfig","fieldMatchers","createMatchers","columnType","FieldEntityIdGenerator","FieldEntityFactory","fieldIdGenerator","dataFieldFactory","FieldCollectionFactory","InitFieldsCommandHandler","createFields","FieldsInitedEventHandler","fieldArchive","fieldConverter","FieldDomainModule","FieldDomainWarehouse","fieldReadModelArchive","findFields","FieldDomainPublisher","FieldApiModule","initializeField","provideFieldCommandInvoker","provideFieldWarehouse","FieldFeatureModule","ɵFieldFeatureModule_BaseFactory","FieldFeatureModule_Factory","StructureSetSummariesEnabledCommand","StructureSummariesEnabledSetEventName","StructureSummariesEnabledSetEvent","StructureSetSummariesEnabledCommandHandler","StructureSummariesChangedAggregateEvent","summarizedValues","SummariesManager","calculators","DEFAULT_ENABLED","calculations","calc","aggregatedValues","SummariesEnabledArchive","StructureSummariesEnabledSetEventHandler","summariesEnabledArchive","SummariesCalculator","filteredFields","forDataType","prepare","countForField","distinctSet","postCalculate","generateAggregatedValues","setCount","setDistinct","SummariesValues","BooleanSummarizedValues","BooleanSummariesCalculator","booleanValue","truthyForField","falsyForField","DateSummarizedValues","DateSummariesCalculator","NumberSummarizedValues","setValueWithPrecision","toFixed","NumberSummariesCalculator","MAX_SAFE_INTEGER","floor","numberValue","sumForField","minForField","maxForField","StringSummarizedValues","StringSummariesCalculator","UnknownSummarizedValues","UnknownSummariesCalculator","SUMMARIES_CALCULATORS","SummariesManagerFactory","SummariesDispatcher","StructureSummariesPanelConfig","defaultTop","defaultBottom","top","bottom","setTop","setBottom","isTopEnabled","isBottomEnabled","StructureSummariesConfigArchive","StructureSummariesPanelConfigConverter","panelConfig","SummariesDomainModule","provideCollection","SummariesDomainWarehouse","structureSummariesArchive","SummariesDomainPublisher","summariesDispatcher","configConverter","structureSummariesConfigArchive","summariesPanelConfig","SummariesDomainEventRepository","SummariesApiModule","initializeSummaries","provideSummariesCalculator","multi","provideSummariesCommandInvoker","provideSummariesWarehouse","provideSummariesEventRepository","SummariesFeatureModule","ɵSummariesFeatureModule_BaseFactory","SummariesFeatureModule_Factory","VerticalRange","margin","getMargin","VerticalFormationContainerHeight","isContainerHeightProperForVirtualScroll","isPresent","getVisibleContainerHeight","getHeight","getContainerHeight","ScrollBarPositionSetEvent","ScrollBarPositionSetAggregateEvent","VerticalFormation_1","VerticalFormation","_","ROW_HEIGHT","HIDDEN_ITEMS_TOP","HIDDEN_ITEMS_BOTTOM","hiddenItemsTop","hiddenItemsBottom","range","viewportHeight","calculateRange","getViewPortHeight","getRowHeight","getRange","calcFullHeight","itemsInViewport","viewportPositionIndex","setTopHiddenItemsCount","setBottomHiddenItemsCount","setViewportHeight","setLogger","VerticalFormationFactory","vf","SetScrollPositionCommand","ScrollPositionSetEvent","SetScrollPositionCommandHandler","SetVerticalScrollEnabledCommand","VerticalScrollEnabledSetEvent","SetVerticalScrollEnabledCommandHandler","setVerticalFormationEnabled","SetRowHeightBasedOnThemeCommand","getTheme","RowHeightSetBasedOnThemeEvent","SetRowHeightBasedOnThemeCommandHandler","SetRowHeightCommand","RowHeightSetEvent","SetRowHeightCommandHandler","formation","getVerticalFormation","StructureSetHeightCommand","StructureHeightSetEvent","StructureSetHeightCommandHandler","VerticalFormationScrollBarPositionArchive","DEFAULT_POSITION","ScrollBarPositionSetEventHandler","positionRepository","SetScrollBarPositionCommand","SetScrollBarPositionCommandHandler","VerticalFormationDispatcher","setVirtualScrollEnabled","scrollTo","VerticalFormationDomainModule","VerticalFormationModel","VerticalFormationConverter","verticalFormation","StructureCreatedEvent","InMemoryStructureStore","SourceIsLoadingModel","SourceConverter","StructureReadModelRoot","isReadyToDisplay","StructureReadModelRootConverter","pagingConverter","sourceConverter","verticalFormationConverter","pagingAggregate","originItemEntities","sourceCoordinator","convertSource","InMemoryStructureReadStore","inMemoryProjectStore","structureConverter","SchemaDomainEvent","SchemaThemeSetEvent","UniqueFilterUnselectedEvent","AllUniqueFilterUnselectedEvent","AllUniqueFilterSelectedEvent","UniqueFilterSelectedEvent","VerticalFormationRepository","inMemoryStructureReadStore","verticalFormation$","optStructure","onVerticalScrollEnabled","onVerticalFormation","onTopMargin","idToVerticalFormation","VerticalFormationDomainWarehouse","verticalFormationRepository","VerticalFormationPublisher","VerticalFormationDomainPublisher","verticalFormationDispatcher","VerticalFormationApiModule","initializeVerticalFormation","provideVerticalFormationCommandInvoker","provideVerticalFormationWarehouse","VerticalFormationFeatureModule","ɵVerticalFormationFeatureModule_BaseFactory","VerticalFormationFeatureModule_Factory","SchemaAggregateRepository","InMemorySchemaStore","InMemorySchemaAggregateStore","inMemorySchemaStore","InMemorySchemaAggregateRepository","inMemorySchemaAggregateStore","schemaAggregate","SchemaCommand","SetSchemaThemeCommand","SetSchemaThemeCommandHandler","changeTheme","SetRowColoringCommand","getColoring","SetRowColoringCommandHandler","SetSchemaHorizontalGridCommand","SetSchemaHorizontalGridCommandHandler","publishFromAggregate","SetSchemaVerticalGridCommand","SetSchemaVerticalGridCommandHandler","SchemaCssClassesRepository","RowColoringSetEvent","getRowColoring","SchemaHorizontalGridSetEvent","getHorizontalGrid","SchemaVerticalGridSetEvent","getVerticalGrid","SchemaCssClass","SchemaCssClassesEventHandler","schemaCssClassesRepository","schemaKey","SchemaVerticalGridRepository","SchemaThemeRepository","SchemaRowColoringRepository","SchemaHorizontalGridRepository","CreateSchemaCommand","CreateSchemaCommandHandler","SchemaAggregateEvent","SchemaThemeSetAggregateEvent","RowColoringSetAggregateEvent","SchemaVerticalGridSetAggregateEvent","SchemaHorizontalGridSetAggregateEvent","SchemaCreatedEvent","SchemaCreatedAggregateEvent","SchemaAggregate","DEFAULT_THEME","DEFAULT_ROW_COLORING","DEFAULT_VERTICAL_GRID","DEFAULT_HORIZONTAL_GRID","SchemaAggregateFactory","SchemaRowClassArchive","SchemaRowStyleArchive","SchemaDomainModule","SchemaDispatcher","SchemaDomainPublisher","schemaDispatcher","structurePublisher","fabricModalThemeService","schemaRowClassArchive","schemaRowStyleArchive","toFabricTheme","setRowHeightBasedOnTheme","toSchemaRowColoring","SchemaDomainWarehouse","schemaThemeRepository","schemaHorizontalGridRepository","schemaRowColoringRepository","schemaVerticalGridRepository","SchemaDomainEventRepository","SchemaApiModule","initSchema","useFactorySchemaCommandInvoker","useFactorySchemaWarehouse","useFactorySchemaEventRepository","SchemaFeatureModule","SchemaFeatureModule_Factory","SanitizeModule","SanitizeModule_Factory","ColumnQueryComponent","ColumnQueryComponent_Factory","ColumnQueryComponent_ContentQueries","ColumnQueryComponent_Template","components","exportDeclarations$2","provideCompositionCommandPublisher","provideCompositionWarehouse","provideCompositionEventRepository","provideColumnAutoConfigurator","provideColumnFieldFactory","CompositionFeatureModule","cfr","provideValue","CompositionFeatureModule_Factory","structureGates","SetSourceLoadingEvent","SourceSetLoadingCommand","SourceSetLoadingCommandHandler","SetOriginCommand","getItems","SetOriginCommandHandler","StructureEditSourceItemCommand","StructureEditSourceItemCommandHandler","StructureSourceItemEditedAggregateEvent","StructureOriginChangedAggregateEvent","ItemEntityId","SourceManager","fetched","preparedEntities","slicedEntities","formationManager","setEntities","ent","recalculatePositions","setPreparedEntities","getPreparedEntities","setSlicedEntities","getSlicedEntities","convertItems","createOriginChangedEvent","setConvertedOrigin","editOriginItem","findOriginItem","itemBeforeChange","deleteAllSelected","itemEntityIds","getSelectedItemIds","itemEntityId","deleteOriginItemByItemId","deleteOriginItem","deleteOneOriginItem","deleteOriginItemByIndex","addOriginItem","setCustomConfig","reSelect","reSelectByIds","setSelectedRows","selectRows","toggleRow","getFormation","findOriginItemIndex","removedItems","unselectRow","calculateAllSelected","calculateAllUnselected","deleteManyOriginItemByIndex","deleteManyOriginItemByItemID","itemIds","FormationSelection","setMode","isSingle","setType","SelectionModeSetEvent","SelectionModeSetAggregateEvent","SelectionTypeSetEvent","selectionType","SelectionTypeSetAggregateEvent","SelectionEnabledSetEvent","SelectionEnabledSetAggregateEvent","FormationCustomSelectId","FormationCustomSelectionFunctionModel","customSelectId","builtIn","method","isBuiltIn","customSelect","FormationCustomSelection","FormationCustomManager","setSelections","sel","findSelection","s","FormationCustomSelectionChangeEvent","getCustomSelection","FormationCustomSelectionChangeAggregateEvent","FormationManager","selectedItemIds","itemEntities","invertSelected","allEntityIds","selId","toggleRowByType","equal","RANGE","FormationManagerFactory","SourceManagerFactory","formationManagerFactory","fm","DeleteCommandPayloadType","DeleteOriginItemCommand","byIndex","INDEX","byManyIndex","MANY_INDEX","byItemId","ITEM_ID","byManyItemId","MANY_ITEM_ID","DeleteOriginItemCommandHandler","deleteItem","StructureSourceOriginArchive","StructureOriginChangedEventHandler","structureSourceOriginRepository","StructurePreparedItemsArchive","StructurePreparedItemsEventHandler","structurePreparedItemsRepository","SourceDomainModule","SourceDomainWarehouse","findItems","getStructure","ents1","ents2","flag","onceItems","onLoading","findPreparedItems","SourceDomainPublisher","sourceReadModelService","editItemByIndex","itemIndex","fieldIndex","itemId$","fieldId$","array","deleteItemById","deleteItemByIndex","deleteManyItemsByItemIds","deleteManyItemsByIndex","SourceApiModule","initializeSource","provideSourceCommandInvoker","provideSourceWarehouse","provideSourceEventRepository","SourceFeatureModule","ɵSourceFeatureModule_BaseFactory","SourceFeatureModule_Factory","provideCssClassModifier","CssClassModule","CssClassModule_Factory","StructureSharedModule","StructureSharedModule_Factory","ResizeDetectorModule","ResizeDetectorModule_Factory","RowSelectedReadModel","RowSelectedArchive","SetEnabledSelectionCommand","SetEnabledSelectionCommandHandler","ToggleSelectedRowCommand","selectedRow","getSelectedRow","ToggleSelectedRowCommandHandler","SelectedRowChangedEventHandler","rowSelectedArchive","rowChangedEvent","rowSelectedRead","SetSelectionModeCommand","SetSelectionModeCommandHandler","setSelectionMode","SelectAllRowsCommand","SelectAllRowsCommandHandler","UnselectAllRowsCommand","UnselectAllRowsCommandHandler","SetSelectionTypeCommand","SetSelectionTypeCommandHandler","setSelectionType","FormationTypeRepository","FormationModeRepository","FormationEnabledRepository","SetSelectedRowCommand","SetSelectedRowCommandHandler","SelectRowByIndexCommand","getIndexes","SelectRowByIndexCommandHandler","SelectRowByIdCommand","getIds","SelectRowByIdCommandHandler","FormationSetMatcherCommand","FormationSetMatcherCommandHandler","setFormationMatcher","FormationCustomRepository","FormationCustomSelectCommand","FormationCustomSelectCommandHandler","FormationSetCustomSelectConfigCommand","FormationSetCustomSelectConfigCommandHandler","setSelectionCustomConfig","FormationDomainModule","FormationDomainWarehouse","rowSelectedRepository","formationModeRepository","formationTypeRepository","formationEnabledRepository","formationCustomRepository","findSelectedItemIds","onSelectedRows","rm","FormationDomainPublisher","FormationApiModule","initializeFormation","SelectCustomComponent","options","SelectCustomComponent_Factory","SelectCustomComponent_Template","SelectCustomComponent_Template_div_click_0_listener","provideFormationCommandInvoker","provideFormationWarehouse","provideFormationEventRepository","FormationFeatureModule","ɵFormationFeatureModule_BaseFactory","FormationFeatureModule_Factory","CreateStructureCommand","CreateStructureCommandHandler","StructurePreparedEntitiesSetAggregateEvent","FieldsInitedAggregateEvent","StructureCreatedAggregateEvent","FilterTypesInitedAggregateEvent","AllFiltersRemovedAggregateEvent","FilterAddedAggregateEvent","FilterRemovedAggregateEvent","UniqueFilterCalculatedAggregateEvent","UniqueFilterSelectedAggregateEvent","UniqueFilterUnselectedAggregateEvent","AllUniqueFilterUnselectedAggregateEvent","AllUniqueFilterSelectedAggregateEvent","SelectedRowChangedAggregateEvent","StructureAggregate","pagingManager","sourceManager","sorterManager","filterManager","searchManager","fieldCollection","summariesManager","uniqueFilterManager","sorterCollection","initTheme","calculateSource","calculateUniqueValues","generateSelectedRowChangedEvent","editParams","editItemEvents","calculateSourceBasedOnVirtualScroll","pagingEvents","generateCalculateUniqueValuesAggregateEvent","searchedEntities","ents","summariesEvents","ae","calculateAll","Sorter","sorterId","rank","getRank","changeDirection","setDirection","SorterId","SorterManager","multiSorting","addSorter","sortedEntities","sorterOne","sorterTwo","reverse","UniqueValue","UniqueValueId","UniqueValueIdGenerator","UniqueValueCollection","calculateAllDisabled","isAllDisabled","getNotSelected","UniqueFilterManager","uniqueValueMap","optUVM","ifEmpty","sortedValues","uvc","filterAll","itemEntity","notSelectedValue","StructureAggregateFactory","pagingAggregateFactory","sourceManagerFactory","verticalFormationFactory","summariesManagerFactory","filterManagerFactory","searchManagerFactory","fieldCollectionFactory","sorterContainer","filterContainer","fieldContainer","StructureAggregateRepository","InMemoryStructureAggregateStore","inMemoryStructureStore","InMemoryStructureAggregateRepository","inMemoryStructureAggregateStore","StructureCreatedEventHandler","StructureDomainModule","FilterAddedEvent","InMemoryStructureRepository","structureIdToStructure","hermesStructure$","StructureDomainPublisher","sourcePublisher","verticalFormationCommandInvoker","StructureApiModule","initializeStructure","CreateListViewCommand","listViewId","ListViewCommand","SetListViewModeCommand","ToggleListViewSelectorCommand","ListViewDispatcher","toggleSelector","ListViewId","ListViewReadModelRootId","listViewGlobalId","ListViewPublisher","listViewDispatcher","listViewReadModelRootId","ListViewDomainEvent","ListViewModeSetEvent","ListViewEventRepository","onModeChange","ListViewMode","ListViewModeArchive","LIST","ListViewSelectorArchive","ListViewWarehouse","listViewModeArchive","listViewSelectorArchive","onSelector","InMemoryListViewStore","InMemoryListViewAggregateStore","SetListViewModeCommandHandler","listViewAggregate","ToggleListViewSelectorCommandHandler","toggleModeSelector","ListViewModeSetEventHandler","ListViewSelectorToggledEvent","ListViewSelectorToggledEventHandler","CreateListViewCommandHandler","ListViewCreatedEvent","ListViewAggregateEvent","ListViewCreatedAggregateEvent","ListViewModeSetAggregateEvent","SelectorVisibility","visible","setVisible","ListViewSelectorToggledAggregateEvent","ListViewAggregate","selectorVisibility","initSelectorVisibility","emitEventAfterSelectorVisibilityChange","ListViewAggregateFactory","ListViewAggregateRepository","InMemoryListViewAggregateRepository","ListViewDomainModule","listViewKey","ListViewApiModule","initializeListView","provideStructureCommandInvoker","provideStructureWarehouse","provideStructureInitialValuesReadyArchive","structureProviders","createStructureDefinition","icons","imports$1","declarations$1","exportDeclarations$1","provideStructureCellEditArchive","provideFabricModalThemeService","GridViewFeatureModule","HERMES_API","exportDeclarations","withConfig","structureConfig","hermesModuleConfig","loggers","ngModule","GridViewFeatureModule_Factory","GuiGridIdGenerator","PREFIX","GuiGridIdGenerator_Factory","elementComponents","GuiGridModule","GuiGridModule_Factory"],"sources":["E:/TekH/Visual Studio/WebUserManager/DigitalData.UserManager.NgWebUI/ClientApp/node_modules/@generic-ui/ngx-grid/fesm2022/generic-ui-ngx-grid.mjs"],"sourcesContent":["import * as i0 from '@angular/core';\nimport { Injectable, TemplateRef, Component, ContentChild, Input, EventEmitter, Directive, ContentChildren, Output, InjectionToken, ChangeDetectionStrategy, ViewEncapsulation, Inject, Injector, ChangeDetectorRef, inject, Pipe, NgModule, Attribute, ViewChild, ComponentFactoryResolver, ElementRef, PLATFORM_ID, Optional as Optional$1 } from '@angular/core';\nimport * as i4 from '@angular/common';\nimport { CommonModule, isPlatformBrowser } from '@angular/common';\nimport { RandomIdGenerator, EntityId, hermesMap, hermesFilter, hermesTake, hermesSwitchMap, ReadModelRootId, AggregateId, Reactive, Archive, HermesSubject, hermesTakeUntil, Command, DomainEvent, CommandDispatcher, CoreContainer, DomainEventBus, EventRepository, AggregateArchive, singleFromObservable, HermesReplaySubject, hermesDistinctUntilChanged, AggregateEvent, DomainEventPublisher, ReadModelObject, DomainInitializer, FeatureModule, Entity, RandomStringGenerator, HermesId, InMemoryStore, InMemoryAggregateStore, AggregateRepository, ReadModelEntity, ReadModelEntityId, ReadModelRoot, InMemoryReadModelStore, ReadModelRootRepository, Optional, AggregateRoot, KeyMap, AggregateFactory, hermesFromEvent, fromRxJsObservable, hermesEmpty, hermesTimer, toRxJsObservable, createContainer, DomainObject, EventDrivenRepository, CreateAggregateCommand, COMMAND_LOGGER_ENABLED, EVENT_LOGGER_ENABLED, runHermes, initHermesApi } from '@generic-ui/hermes';\nimport * as i1 from '@angular/platform-browser';\nimport * as i1$1 from '@generic-ui/fabric';\nimport { FabricModule, Theme, Placement, FabricPlacement, FabricBadgeModule, FabricButtonModule, FabricButtonGroupModule, FabricCheckboxModule, FabricChipModule, FabricDrawerModule, FabricDropdownModule, FabricRadioButtonModule, FabricRadioGroupModule, FabricProgressBarModule, FabricProgressSpinnerModule, FabricSelectModule, FabricSpinnerModule, FabricTabModule, FabricTooltipModule, FabricToggleButtonModule, FabricInputModule, FabricDialogModule, FabricInlineDialogModule, FabricModalThemeService, FabricDatePickerModule } from '@generic-ui/fabric';\nimport { __decorate } from 'tslib';\nimport * as i1$2 from '@angular/forms';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { debounceTime, throttleTime, flatMap } from 'rxjs/operators';\nimport { Observable, combineLatest, zip } from 'rxjs';\n\nconst enTranslation = {\n sourceEmpty: 'There are no items to show.',\n pagingItemsPerPage: 'Items per page:',\n pagingOf: 'of',\n pagingNextPage: 'Next',\n pagingPrevPage: 'Prev',\n pagingNoItems: 'There is no items.',\n infoPanelShowing: 'Showing',\n infoPanelItems: 'items',\n infoPanelOutOf: 'out of',\n infoPanelThemeMangerTooltipText: 'Theme manager',\n infoPanelColumnManagerTooltipText: 'Column manager',\n infoPanelInfoTooltipText: 'info',\n themeManagerModalTitle: 'Theme manager',\n themeManagerModalTheme: 'Theme:',\n themeManagerModalRowColoring: 'Row coloring:',\n themeManagerModalVerticalGrid: 'Vertical grid',\n themeManagerModalHorizontalGrid: 'HorizontalGrid',\n columnManagerModalTitle: 'Manage columns',\n headerMenuMainTab: 'Menu',\n headerMenuMainTabColumnSort: 'Column sort',\n headerMenuMainTabHideColumn: 'Hide column',\n headerMenuMainTabHighlightColumn: 'Highlight',\n headerMenuMainTabMoveLeft: 'Move left',\n headerMenuMainTabMoveRight: 'Move right',\n headerMenuMainTabColumnSortAscending: 'Ascending',\n headerMenuMainTabColumnSortDescending: 'Descending',\n headerMenuMainTabColumnSortNone: 'None',\n headerMenuFilterTab: 'Filter',\n headerMenuColumnsTab: 'Columns',\n summariesCount: 'Count',\n summariesDist: 'Dist',\n summariesSum: 'Sum',\n summariesAvg: 'Avg',\n summariesMin: 'Min',\n summariesMax: 'Max',\n summariesMed: 'Med',\n summariesTruthy: 'Truthy',\n summariesFalsy: 'Falsy',\n summariesDistinctValuesTooltip: 'Distinct values',\n summariesAverageTooltip: 'Average',\n summariesMinTooltip: 'Min',\n summariesMaxTooltip: 'Max',\n summariesMedTooltip: 'Median',\n summariesCountTooltip: 'Number of items in the grid'\n};\n\nconst defaultTranslation = enTranslation;\n\nvar GuiDataType;\n(function (GuiDataType) {\n GuiDataType[GuiDataType[\"UNKNOWN\"] = 0] = \"UNKNOWN\";\n GuiDataType[GuiDataType[\"NUMBER\"] = 1] = \"NUMBER\";\n GuiDataType[GuiDataType[\"STRING\"] = 2] = \"STRING\";\n GuiDataType[GuiDataType[\"BOOLEAN\"] = 3] = \"BOOLEAN\";\n GuiDataType[GuiDataType[\"DATE\"] = 4] = \"DATE\";\n GuiDataType[GuiDataType[\"CUSTOM\"] = 5] = \"CUSTOM\";\n})(GuiDataType || (GuiDataType = {}));\nvar GuiCellView;\n(function (GuiCellView) {\n GuiCellView[GuiCellView[\"TEXT\"] = 0] = \"TEXT\";\n GuiCellView[GuiCellView[\"CHIP\"] = 1] = \"CHIP\";\n GuiCellView[GuiCellView[\"LINK\"] = 2] = \"LINK\";\n GuiCellView[GuiCellView[\"IMAGE\"] = 3] = \"IMAGE\";\n GuiCellView[GuiCellView[\"BOLD\"] = 4] = \"BOLD\";\n GuiCellView[GuiCellView[\"ITALIC\"] = 5] = \"ITALIC\";\n GuiCellView[GuiCellView[\"CHECKBOX\"] = 6] = \"CHECKBOX\";\n GuiCellView[GuiCellView[\"CUSTOM\"] = 7] = \"CUSTOM\";\n GuiCellView[GuiCellView[\"BAR\"] = 8] = \"BAR\";\n GuiCellView[GuiCellView[\"PERCENTAGE_BAR\"] = 9] = \"PERCENTAGE_BAR\";\n GuiCellView[GuiCellView[\"PERCENTAGE\"] = 10] = \"PERCENTAGE\";\n})(GuiCellView || (GuiCellView = {}));\nvar GuiNumberCellView;\n(function (GuiNumberCellView) {\n GuiNumberCellView[GuiNumberCellView[\"TEXT\"] = 0] = \"TEXT\";\n GuiNumberCellView[GuiNumberCellView[\"BOLD\"] = 1] = \"BOLD\";\n GuiNumberCellView[GuiNumberCellView[\"ITALIC\"] = 2] = \"ITALIC\";\n GuiNumberCellView[GuiNumberCellView[\"CHIP\"] = 3] = \"CHIP\";\n})(GuiNumberCellView || (GuiNumberCellView = {}));\nvar GuiStringCellView;\n(function (GuiStringCellView) {\n GuiStringCellView[GuiStringCellView[\"TEXT\"] = 0] = \"TEXT\";\n GuiStringCellView[GuiStringCellView[\"BOLD\"] = 1] = \"BOLD\";\n GuiStringCellView[GuiStringCellView[\"ITALIC\"] = 2] = \"ITALIC\";\n GuiStringCellView[GuiStringCellView[\"CHIP\"] = 3] = \"CHIP\";\n})(GuiStringCellView || (GuiStringCellView = {}));\nvar GuiBooleanCellView;\n(function (GuiBooleanCellView) {\n GuiBooleanCellView[GuiBooleanCellView[\"TEXT\"] = 0] = \"TEXT\";\n GuiBooleanCellView[GuiBooleanCellView[\"BOLD\"] = 1] = \"BOLD\";\n GuiBooleanCellView[GuiBooleanCellView[\"ITALIC\"] = 2] = \"ITALIC\";\n GuiBooleanCellView[GuiBooleanCellView[\"CHIP\"] = 3] = \"CHIP\";\n GuiBooleanCellView[GuiBooleanCellView[\"CHECKBOX\"] = 4] = \"CHECKBOX\";\n})(GuiBooleanCellView || (GuiBooleanCellView = {}));\nvar GuiDateCellView;\n(function (GuiDateCellView) {\n GuiDateCellView[GuiDateCellView[\"TEXT\"] = 0] = \"TEXT\";\n GuiDateCellView[GuiDateCellView[\"BOLD\"] = 1] = \"BOLD\";\n GuiDateCellView[GuiDateCellView[\"ITALIC\"] = 2] = \"ITALIC\";\n GuiDateCellView[GuiDateCellView[\"CHIP\"] = 3] = \"CHIP\";\n})(GuiDateCellView || (GuiDateCellView = {}));\nvar GuiTheme;\n(function (GuiTheme) {\n GuiTheme[GuiTheme[\"FABRIC\"] = 0] = \"FABRIC\";\n GuiTheme[GuiTheme[\"MATERIAL\"] = 1] = \"MATERIAL\";\n GuiTheme[GuiTheme[\"LIGHT\"] = 2] = \"LIGHT\";\n GuiTheme[GuiTheme[\"DARK\"] = 3] = \"DARK\";\n GuiTheme[GuiTheme[\"GENERIC\"] = 4] = \"GENERIC\";\n})(GuiTheme || (GuiTheme = {}));\nvar GuiRowColoring;\n(function (GuiRowColoring) {\n GuiRowColoring[GuiRowColoring[\"NONE\"] = 0] = \"NONE\";\n GuiRowColoring[GuiRowColoring[\"EVEN\"] = 1] = \"EVEN\";\n GuiRowColoring[GuiRowColoring[\"ODD\"] = 2] = \"ODD\";\n})(GuiRowColoring || (GuiRowColoring = {}));\nvar GuiSortingOrder;\n(function (GuiSortingOrder) {\n GuiSortingOrder[GuiSortingOrder[\"NONE\"] = 0] = \"NONE\";\n GuiSortingOrder[GuiSortingOrder[\"ASC\"] = 1] = \"ASC\";\n GuiSortingOrder[GuiSortingOrder[\"DESC\"] = 2] = \"DESC\";\n})(GuiSortingOrder || (GuiSortingOrder = {}));\nvar GuiPagingDisplay;\n(function (GuiPagingDisplay) {\n GuiPagingDisplay[GuiPagingDisplay[\"BASIC\"] = 0] = \"BASIC\";\n GuiPagingDisplay[GuiPagingDisplay[\"ADVANCED\"] = 1] = \"ADVANCED\";\n})(GuiPagingDisplay || (GuiPagingDisplay = {}));\nvar GuiColumnAlign;\n(function (GuiColumnAlign) {\n GuiColumnAlign[GuiColumnAlign[\"RIGHT\"] = 0] = \"RIGHT\";\n GuiColumnAlign[GuiColumnAlign[\"CENTER\"] = 1] = \"CENTER\";\n GuiColumnAlign[GuiColumnAlign[\"LEFT\"] = 2] = \"LEFT\";\n})(GuiColumnAlign || (GuiColumnAlign = {}));\nvar GuiRowSelectionType;\n(function (GuiRowSelectionType) {\n GuiRowSelectionType[GuiRowSelectionType[\"ROW\"] = 0] = \"ROW\";\n GuiRowSelectionType[GuiRowSelectionType[\"CHECKBOX\"] = 1] = \"CHECKBOX\";\n GuiRowSelectionType[GuiRowSelectionType[\"RADIO\"] = 2] = \"RADIO\";\n})(GuiRowSelectionType || (GuiRowSelectionType = {}));\nvar GuiRowSelectionMode;\n(function (GuiRowSelectionMode) {\n GuiRowSelectionMode[GuiRowSelectionMode[\"SINGLE\"] = 0] = \"SINGLE\";\n GuiRowSelectionMode[GuiRowSelectionMode[\"MULTIPLE\"] = 1] = \"MULTIPLE\";\n})(GuiRowSelectionMode || (GuiRowSelectionMode = {}));\nvar GuiRowCustomSelectionType;\n(function (GuiRowCustomSelectionType) {\n GuiRowCustomSelectionType[\"SELECT_ALL\"] = \"SELECT_ALL\";\n GuiRowCustomSelectionType[\"UNSELECT_ALL\"] = \"UNSELECT_ALL\";\n GuiRowCustomSelectionType[\"INVERT\"] = \"INVERT\";\n})(GuiRowCustomSelectionType || (GuiRowCustomSelectionType = {}));\nconst GuiDefaultTranslation = defaultTranslation;\n\nvar DataType;\n(function (DataType) {\n DataType[DataType[\"UNKNOWN\"] = 0] = \"UNKNOWN\";\n DataType[DataType[\"NUMBER\"] = 1] = \"NUMBER\";\n DataType[DataType[\"STRING\"] = 2] = \"STRING\";\n DataType[DataType[\"BOOLEAN\"] = 3] = \"BOOLEAN\";\n DataType[DataType[\"DATE\"] = 4] = \"DATE\";\n DataType[DataType[\"CUSTOM\"] = 5] = \"CUSTOM\";\n})(DataType || (DataType = {}));\n\nclass GuiGridColumnTypeConverter {\n convertType(type) {\n if (typeof type === 'string') {\n return this.convertTypeString(type);\n }\n else {\n return this.convertTypeEnum(type);\n }\n }\n convertTypeEnum(enumType) {\n switch (enumType) {\n case GuiDataType.STRING:\n return DataType.STRING;\n case GuiDataType.NUMBER:\n return DataType.NUMBER;\n case GuiDataType.BOOLEAN:\n return DataType.BOOLEAN;\n case GuiDataType.DATE:\n return DataType.DATE;\n case GuiDataType.UNKNOWN:\n return DataType.UNKNOWN;\n case GuiDataType.CUSTOM:\n return DataType.CUSTOM;\n default:\n return DataType.STRING;\n }\n }\n convertTypeString(type) {\n const loweredType = type.toLocaleLowerCase();\n switch (loweredType) {\n case 'string':\n return DataType.STRING;\n case 'number':\n return DataType.NUMBER;\n case 'boolean':\n return DataType.BOOLEAN;\n case 'date':\n return DataType.DATE;\n case 'unknown':\n return DataType.UNKNOWN;\n case 'custom':\n return DataType.CUSTOM;\n default:\n return DataType.STRING;\n }\n }\n}\n\nvar SummariesType;\n(function (SummariesType) {\n SummariesType[SummariesType[\"COUNT\"] = 1024] = \"COUNT\";\n SummariesType[SummariesType[\"DISTINCT\"] = 1] = \"DISTINCT\";\n SummariesType[SummariesType[\"SUM\"] = 2] = \"SUM\";\n SummariesType[SummariesType[\"AVERAGE\"] = 4] = \"AVERAGE\";\n SummariesType[SummariesType[\"MIN\"] = 8] = \"MIN\";\n SummariesType[SummariesType[\"MAX\"] = 16] = \"MAX\";\n SummariesType[SummariesType[\"MEDIAN\"] = 32] = \"MEDIAN\";\n SummariesType[SummariesType[\"TRUTHY\"] = 64] = \"TRUTHY\";\n SummariesType[SummariesType[\"FALSY\"] = 128] = \"FALSY\";\n SummariesType[SummariesType[\"EARLIEST\"] = 256] = \"EARLIEST\";\n SummariesType[SummariesType[\"LATEST\"] = 512] = \"LATEST\";\n})(SummariesType || (SummariesType = {}));\n// count\n// count distinct\n// percentile\n// std.dev\n// std.dev Pop\n// variance\n// variance pop\n\nclass GuiGridColumnSummariesConverter {\n convert(summariesConfig) {\n const columnSummariesConfig = {};\n if (summariesConfig.enabled !== undefined && summariesConfig.enabled !== null) {\n columnSummariesConfig.enabled = summariesConfig.enabled;\n }\n if (summariesConfig.summariesTypes !== undefined && summariesConfig.summariesTypes !== null) {\n columnSummariesConfig.summariesTypes = this.convertSummariesTypes(summariesConfig.summariesTypes);\n }\n return columnSummariesConfig;\n }\n convertSummariesTypes(configSummariesTypes) {\n const summariesTypes = [];\n configSummariesTypes.forEach((type) => {\n const summariesType = this.convertSummariesType(type);\n if (summariesType !== undefined && summariesType !== null) {\n summariesTypes.push(summariesType);\n }\n });\n return summariesTypes;\n }\n convertSummariesType(type) {\n const loweredSummariesType = type.toLocaleLowerCase();\n switch (loweredSummariesType) {\n case 'count':\n return SummariesType.COUNT;\n case 'distinct':\n return SummariesType.DISTINCT;\n case 'sum':\n return SummariesType.SUM;\n case 'average':\n return SummariesType.AVERAGE;\n case 'min':\n return SummariesType.MIN;\n case 'max':\n return SummariesType.MAX;\n case 'median':\n return SummariesType.MEDIAN;\n case 'truthy':\n return SummariesType.TRUTHY;\n case 'falsy':\n return SummariesType.FALSY;\n case 'earliest':\n return SummariesType.EARLIEST;\n case 'latest':\n return SummariesType.LATEST;\n default:\n return null;\n }\n }\n}\n\nvar CellView;\n(function (CellView) {\n CellView[CellView[\"TEXT\"] = 0] = \"TEXT\";\n CellView[CellView[\"NUMBER\"] = 1] = \"NUMBER\";\n CellView[CellView[\"CHIP\"] = 2] = \"CHIP\";\n CellView[CellView[\"LINK\"] = 3] = \"LINK\";\n CellView[CellView[\"IMAGE\"] = 4] = \"IMAGE\";\n CellView[CellView[\"BOLD\"] = 5] = \"BOLD\";\n CellView[CellView[\"ITALIC\"] = 6] = \"ITALIC\";\n CellView[CellView[\"CHECKBOX\"] = 7] = \"CHECKBOX\";\n CellView[CellView[\"CUSTOM\"] = 8] = \"CUSTOM\";\n CellView[CellView[\"FUNCTION\"] = 9] = \"FUNCTION\";\n CellView[CellView[\"DATE\"] = 10] = \"DATE\";\n CellView[CellView[\"BAR\"] = 11] = \"BAR\";\n CellView[CellView[\"PERCENTAGE_BAR\"] = 12] = \"PERCENTAGE_BAR\";\n CellView[CellView[\"PERCENTAGE\"] = 13] = \"PERCENTAGE\";\n CellView[CellView[\"NG_TEMPLATE\"] = 14] = \"NG_TEMPLATE\";\n CellView[CellView[\"HTML\"] = 15] = \"HTML\";\n})(CellView || (CellView = {}));\n\nclass GuiGridColumnViewConverter {\n convert(view) {\n if (typeof view === 'string') {\n return this.convertString(view);\n }\n else if (typeof view === 'function') {\n return view;\n }\n else {\n return this.convertEnum(view);\n }\n }\n convertString(view) {\n const loweredView = view.toLocaleLowerCase();\n switch (loweredView) {\n case 'text':\n return CellView.TEXT;\n case 'chip':\n return CellView.CHIP;\n case 'link':\n return CellView.LINK;\n case 'image':\n return CellView.IMAGE;\n case 'bold':\n return CellView.BOLD;\n case 'italic':\n return CellView.ITALIC;\n case 'checkbox':\n return CellView.CHECKBOX;\n case 'custom':\n return CellView.CUSTOM;\n case 'bar':\n return CellView.BAR;\n case 'percentage_bar':\n return CellView.PERCENTAGE_BAR;\n case 'percentage':\n return CellView.PERCENTAGE;\n default:\n return CellView.TEXT;\n }\n }\n convertEnum(view) {\n switch (view) {\n case GuiCellView.TEXT:\n return CellView.TEXT;\n case GuiCellView.CHIP:\n return CellView.CHIP;\n case GuiCellView.LINK:\n return CellView.LINK;\n case GuiCellView.IMAGE:\n return CellView.IMAGE;\n case GuiCellView.BOLD:\n return CellView.BOLD;\n case GuiCellView.ITALIC:\n return CellView.ITALIC;\n case GuiCellView.CHECKBOX:\n return CellView.CHECKBOX;\n case GuiCellView.CUSTOM:\n return CellView.CUSTOM;\n case GuiCellView.BAR:\n return CellView.BAR;\n case GuiCellView.PERCENTAGE_BAR:\n return CellView.PERCENTAGE_BAR;\n case GuiCellView.PERCENTAGE:\n return CellView.PERCENTAGE;\n default:\n return CellView.TEXT;\n }\n }\n}\n\nclass GuiGridColumnSortingConverter {\n convert(sortingConfig) {\n if (typeof sortingConfig === 'boolean') {\n return {\n enabled: sortingConfig\n };\n }\n else {\n return sortingConfig;\n }\n }\n}\n\nclass GuiGridColumnCellEditingConverter {\n convert(config) {\n if (typeof config === 'boolean') {\n return {\n enabled: config\n };\n }\n return config;\n }\n}\n\nvar ColumnAlign;\n(function (ColumnAlign) {\n ColumnAlign[ColumnAlign[\"RIGHT\"] = 0] = \"RIGHT\";\n ColumnAlign[ColumnAlign[\"CENTER\"] = 1] = \"CENTER\";\n ColumnAlign[ColumnAlign[\"LEFT\"] = 2] = \"LEFT\";\n})(ColumnAlign || (ColumnAlign = {}));\n\nclass GuiGridColumnAlignConverter {\n convert(align) {\n if (typeof align === 'string') {\n return this.convertTypeString(align);\n }\n else {\n return this.convertTypeEnum(align);\n }\n }\n convertTypeEnum(align) {\n switch (align) {\n case GuiColumnAlign.RIGHT:\n return ColumnAlign.RIGHT;\n case GuiColumnAlign.CENTER:\n return ColumnAlign.CENTER;\n case GuiColumnAlign.LEFT:\n return ColumnAlign.LEFT;\n default:\n return ColumnAlign.LEFT;\n }\n }\n convertTypeString(align) {\n const loweredType = align.toLocaleLowerCase();\n switch (loweredType) {\n case 'right':\n return ColumnAlign.RIGHT;\n case 'center':\n return ColumnAlign.CENTER;\n case 'left':\n return ColumnAlign.LEFT;\n default:\n return ColumnAlign.LEFT;\n }\n }\n}\n\nclass GuiGridColumnConverter {\n columnTypeConverter = new GuiGridColumnTypeConverter();\n columnSummariesConverter = new GuiGridColumnSummariesConverter();\n columnViewConverter = new GuiGridColumnViewConverter();\n columnSortingConverter = new GuiGridColumnSortingConverter();\n columnCellEditingConverter = new GuiGridColumnCellEditingConverter();\n columnAlignConverter = new GuiGridColumnAlignConverter();\n convert(configs) {\n return configs.map((config) => {\n if (config.columns !== undefined) {\n const columns = (config.columns).map((c) => this.convertColumn(c));\n return {\n header: config.header,\n columns: columns\n };\n }\n else {\n return this.convertColumn(config);\n }\n });\n }\n convertColumn(guiColumn) {\n const columnConfig = {};\n if (guiColumn.name !== undefined && guiColumn.name !== null) {\n columnConfig.name = guiColumn.name;\n }\n else if (guiColumn.field !== undefined && guiColumn.field !== null) {\n if (typeof guiColumn.field === 'string') {\n columnConfig.name = guiColumn.field;\n }\n }\n if (guiColumn.type !== undefined && guiColumn.type !== null) {\n columnConfig.type = this.columnTypeConverter.convertType(guiColumn.type);\n }\n if (guiColumn.header !== undefined && guiColumn.header !== null) {\n columnConfig.header = guiColumn.header;\n }\n if (guiColumn.enabled !== undefined && guiColumn.enabled !== null) {\n columnConfig.enabled = guiColumn.enabled;\n }\n if (guiColumn.field !== undefined && guiColumn.field !== null) {\n columnConfig.field = guiColumn.field;\n }\n if (guiColumn.width !== undefined && guiColumn.width !== null) {\n columnConfig.width = guiColumn.width;\n }\n if (guiColumn.align !== undefined && guiColumn.align !== null) {\n columnConfig.align = this.columnAlignConverter.convert(guiColumn.align);\n }\n if (guiColumn.view !== undefined && guiColumn.view !== null) {\n columnConfig.view = this.columnViewConverter.convert(guiColumn.view);\n }\n if (guiColumn.summaries !== undefined && guiColumn.summaries !== null) {\n columnConfig.summaries = this.columnSummariesConverter.convert(guiColumn.summaries);\n }\n if (guiColumn.sorting !== undefined && guiColumn.sorting !== null) {\n columnConfig.sorting = this.columnSortingConverter.convert(guiColumn.sorting);\n }\n if (guiColumn.cellEditing !== undefined && guiColumn.cellEditing !== null) {\n columnConfig.cellEditing = this.columnCellEditingConverter.convert(guiColumn.cellEditing);\n }\n if (guiColumn.formatter !== undefined && guiColumn.formatter !== null) {\n columnConfig.formatter = guiColumn.formatter;\n }\n if (guiColumn.matcher !== undefined && guiColumn.matcher !== null) {\n columnConfig.matcher = guiColumn.matcher;\n }\n if (guiColumn.cssClasses !== undefined && guiColumn.cssClasses !== null) {\n columnConfig.cssClasses = guiColumn.cssClasses;\n }\n if (guiColumn.styles !== undefined && guiColumn.styles !== null) {\n columnConfig.styles = guiColumn.styles;\n }\n if (guiColumn.templateRef !== undefined && guiColumn.templateRef !== null) {\n columnConfig.templateRef = guiColumn.templateRef;\n columnConfig.view = CellView.NG_TEMPLATE;\n }\n return columnConfig;\n }\n}\n\nvar SchemaTheme;\n(function (SchemaTheme) {\n SchemaTheme[SchemaTheme[\"FABRIC\"] = 0] = \"FABRIC\";\n SchemaTheme[SchemaTheme[\"MATERIAL\"] = 1] = \"MATERIAL\";\n SchemaTheme[SchemaTheme[\"LIGHT\"] = 2] = \"LIGHT\";\n SchemaTheme[SchemaTheme[\"DARK\"] = 3] = \"DARK\";\n SchemaTheme[SchemaTheme[\"GENERIC\"] = 4] = \"GENERIC\";\n})(SchemaTheme || (SchemaTheme = {}));\n\nclass GuiGridThemeConverter {\n convert(theme) {\n if (typeof theme === 'string') {\n return this.convertString(theme);\n }\n else {\n return this.convertEnum(theme);\n }\n }\n convertToGuiTheme(theme) {\n switch (theme) {\n case SchemaTheme.MATERIAL:\n return GuiTheme.MATERIAL;\n case SchemaTheme.FABRIC:\n return GuiTheme.FABRIC;\n case SchemaTheme.LIGHT:\n return GuiTheme.LIGHT;\n case SchemaTheme.DARK:\n return GuiTheme.DARK;\n case SchemaTheme.GENERIC:\n return GuiTheme.GENERIC;\n default:\n return GuiTheme.GENERIC;\n }\n }\n convertString(theme) {\n const loweredTheme = theme.toLocaleLowerCase();\n switch (loweredTheme) {\n case 'material':\n return SchemaTheme.MATERIAL;\n case 'fabric':\n return SchemaTheme.FABRIC;\n case 'light':\n return SchemaTheme.LIGHT;\n case 'dark':\n return SchemaTheme.DARK;\n case 'generic':\n return SchemaTheme.GENERIC;\n default:\n return SchemaTheme.FABRIC;\n }\n }\n convertEnum(theme) {\n switch (theme) {\n case GuiTheme.MATERIAL:\n return SchemaTheme.MATERIAL;\n case GuiTheme.FABRIC:\n return SchemaTheme.FABRIC;\n case GuiTheme.LIGHT:\n return SchemaTheme.LIGHT;\n case GuiTheme.DARK:\n return SchemaTheme.DARK;\n case GuiTheme.GENERIC:\n return SchemaTheme.GENERIC;\n default:\n return SchemaTheme.FABRIC;\n }\n }\n}\n\nvar RowColoring;\n(function (RowColoring) {\n RowColoring[RowColoring[\"NONE\"] = 0] = \"NONE\";\n RowColoring[RowColoring[\"EVEN\"] = 1] = \"EVEN\";\n RowColoring[RowColoring[\"ODD\"] = 2] = \"ODD\";\n})(RowColoring || (RowColoring = {}));\n\nclass GuiGridRowColoringConverter {\n convert(rowColoring) {\n if (typeof rowColoring === 'string') {\n return this.convertString(rowColoring);\n }\n else {\n return this.convertEnum(rowColoring);\n }\n }\n convertToGuiRowColoring(value) {\n switch (value) {\n case RowColoring.NONE:\n return GuiRowColoring.NONE;\n case RowColoring.EVEN:\n return GuiRowColoring.EVEN;\n case RowColoring.ODD:\n return GuiRowColoring.ODD;\n default:\n return GuiRowColoring.EVEN;\n }\n }\n convertString(rowColoring) {\n const loweredRowColoring = rowColoring.toLocaleLowerCase();\n switch (loweredRowColoring) {\n case 'none':\n return RowColoring.NONE;\n case 'even':\n return RowColoring.EVEN;\n case 'odd':\n return RowColoring.ODD;\n default:\n return RowColoring.EVEN;\n }\n }\n convertEnum(rowColoring) {\n switch (rowColoring) {\n case GuiRowColoring.NONE:\n return RowColoring.NONE;\n case GuiRowColoring.EVEN:\n return RowColoring.EVEN;\n case GuiRowColoring.ODD:\n return RowColoring.ODD;\n default:\n return RowColoring.EVEN;\n }\n }\n}\n\nclass GuiGridColumnMenuConverter {\n convert(config) {\n return config;\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: GuiGridColumnMenuConverter, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: GuiGridColumnMenuConverter });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: GuiGridColumnMenuConverter, decorators: [{\n type: Injectable\n }] });\n\nvar PagingDisplayMode;\n(function (PagingDisplayMode) {\n PagingDisplayMode[PagingDisplayMode[\"BASIC\"] = 0] = \"BASIC\";\n PagingDisplayMode[PagingDisplayMode[\"ADVANCED\"] = 1] = \"ADVANCED\";\n})(PagingDisplayMode || (PagingDisplayMode = {}));\n\nclass GuiGridPagingConverter {\n convert(guiPaging) {\n const pagingConfig = {};\n if (guiPaging.enabled !== undefined && guiPaging.enabled !== null) {\n pagingConfig.enabled = guiPaging.enabled;\n }\n if (guiPaging.page !== undefined && guiPaging.page !== null) {\n pagingConfig.page = guiPaging.page;\n }\n if (guiPaging.pageSize !== undefined && guiPaging.pageSize !== null) {\n pagingConfig.pageSize = guiPaging.pageSize;\n }\n if (guiPaging.pageSizes !== undefined && guiPaging.pageSizes !== null) {\n pagingConfig.pageSizes = guiPaging.pageSizes;\n }\n if (guiPaging.pagerTop !== undefined && guiPaging.pagerTop !== null) {\n pagingConfig.pagerTop = guiPaging.pagerTop;\n }\n if (guiPaging.pagerBottom !== undefined && guiPaging.pagerBottom !== null) {\n pagingConfig.pagerBottom = guiPaging.pagerBottom;\n }\n if (guiPaging.display !== undefined && guiPaging.display !== null) {\n pagingConfig.displayMode = this.convertDisplay(guiPaging.display);\n }\n return pagingConfig;\n }\n convertDisplay(pagingDisplay) {\n if (typeof pagingDisplay === 'string') {\n return this.convertString(pagingDisplay);\n }\n else {\n return this.convertEnum(pagingDisplay);\n }\n }\n convertString(pagingDisplay) {\n const loweredPaging = pagingDisplay.toLocaleLowerCase();\n switch (loweredPaging) {\n case 'basic':\n return PagingDisplayMode.BASIC;\n case 'advanced':\n return PagingDisplayMode.ADVANCED;\n default:\n return PagingDisplayMode.BASIC;\n }\n }\n convertEnum(pagingDisplay) {\n switch (pagingDisplay) {\n case GuiPagingDisplay.BASIC:\n return PagingDisplayMode.BASIC;\n case GuiPagingDisplay.ADVANCED:\n return PagingDisplayMode.ADVANCED;\n default:\n return PagingDisplayMode.BASIC;\n }\n }\n}\n\nclass GenericBuilder {\n build() {\n return this.buildObject();\n }\n}\n\nvar RowSelectionType;\n(function (RowSelectionType) {\n RowSelectionType[\"ROW\"] = \"ROW\";\n RowSelectionType[\"CHECKBOX\"] = \"CHECKBOX\";\n RowSelectionType[\"RADIO\"] = \"RADIO\";\n})(RowSelectionType || (RowSelectionType = {}));\nvar RowSelectionMode;\n(function (RowSelectionMode) {\n RowSelectionMode[\"SINGLE\"] = \"SINGLE\";\n RowSelectionMode[\"MULTIPLE\"] = \"MULTIPLE\";\n})(RowSelectionMode || (RowSelectionMode = {}));\nclass RowSelection {\n enabled;\n selectedRowIndexes;\n selectedRowIds;\n type;\n mode;\n matcher;\n customConfig;\n constructor(config) {\n if (config.enabled !== undefined) {\n this.enabled = config.enabled;\n }\n if (config?.selectedRowIndexes) {\n this.selectedRowIndexes = config.selectedRowIndexes;\n }\n if (config?.selectedRowIds) {\n this.selectedRowIds = config.selectedRowIds;\n }\n if (config?.mode) {\n this.mode = config.mode;\n }\n if (config?.type) {\n this.type = config.type;\n }\n if (config?.matcher) {\n this.matcher = config.matcher;\n }\n if (config?.config) {\n this.customConfig = config.config;\n }\n }\n isModeDefined() {\n return this.mode !== undefined;\n }\n isTypeDefined() {\n return this.type !== undefined;\n }\n isSelectedRowIndexesDefined() {\n return this.selectedRowIndexes !== undefined;\n }\n isSelectedRowIdsDefined() {\n return this.selectedRowIds !== undefined;\n }\n isEnabledDefined() {\n return this.enabled !== undefined;\n }\n isMatcherDefined() {\n return this.matcher !== undefined;\n }\n isEnabled() {\n return this.enabled;\n }\n isCustomSelectConfig() {\n return this.customConfig !== undefined;\n }\n getSelectedRowIndexes() {\n return this.selectedRowIndexes;\n }\n getSelectedRowIds() {\n return this.selectedRowIds;\n }\n getMode() {\n return this.mode;\n }\n getType() {\n return this.type;\n }\n getMatcher() {\n return this.matcher;\n }\n getCustomSelectConfig() {\n return this.customConfig;\n }\n // eslint-disable-next-line @typescript-eslint/member-ordering\n static Builder = class RowSelectionBuilder extends GenericBuilder {\n enabled;\n selectedRowIndexes;\n selectedRowIds;\n type;\n mode;\n config;\n matcher;\n constructor() {\n super();\n }\n buildObject() {\n return new RowSelection({\n enabled: this.enabled,\n selectedRowIndexes: this.selectedRowIndexes,\n selectedRowIds: this.selectedRowIds,\n type: this.type,\n mode: this.mode,\n matcher: this.matcher,\n config: this.config\n });\n }\n withEnabled(enabled) {\n this.enabled = enabled;\n return this;\n }\n withSelectedRowIndexes(indexes) {\n this.selectedRowIndexes = indexes;\n return this;\n }\n withSelectedRowIds(ids) {\n this.selectedRowIds = ids;\n return this;\n }\n withType(type) {\n this.type = type;\n return this;\n }\n withMode(mode) {\n this.mode = mode;\n return this;\n }\n withMatcher(matcher) {\n this.matcher = matcher;\n return this;\n }\n witCustomSelection(config) {\n this.config = config;\n return this;\n }\n };\n}\n\nclass FormationCustomSelectionConfig {\n enabled;\n selections;\n}\n\nclass GuiGridRowSelectionConverter {\n convert(selection) {\n const builder = new RowSelection.Builder();\n if (typeof selection === 'boolean') {\n return builder.withEnabled(selection).build();\n }\n else {\n if (selection.enabled !== undefined) {\n builder.withEnabled(selection.enabled);\n }\n if (selection.selectedRowIndexes !== undefined) {\n builder.withSelectedRowIndexes(selection.selectedRowIndexes);\n }\n if (selection.selectedRowIds !== undefined) {\n builder.withSelectedRowIds(selection.selectedRowIds);\n }\n if (selection.mode !== undefined) {\n const mode = this.convertMode(selection.mode);\n builder.withMode(mode);\n }\n if (selection.type !== undefined) {\n const type = this.convertType(selection.type);\n builder.withType(type);\n }\n if (selection.matcher !== undefined) {\n const matcher = this.convertMatcher(selection.matcher);\n builder.withMatcher(matcher);\n }\n if (selection.custom !== undefined) {\n const customSelection = this.convertCustomSelection(selection.custom);\n builder.witCustomSelection(customSelection);\n }\n return builder.build();\n }\n }\n convertMode(mode) {\n if (typeof mode === 'string') {\n switch (mode.toLowerCase()) {\n case 'single':\n return RowSelectionMode.SINGLE;\n case 'multiple':\n return RowSelectionMode.MULTIPLE;\n default:\n return RowSelectionMode.SINGLE;\n }\n }\n else {\n switch (mode) {\n case GuiRowSelectionMode.SINGLE:\n return RowSelectionMode.SINGLE;\n case GuiRowSelectionMode.MULTIPLE:\n return RowSelectionMode.MULTIPLE;\n default:\n return RowSelectionMode.SINGLE;\n }\n }\n }\n convertType(type) {\n if (typeof type === 'string') {\n switch (type.toLowerCase()) {\n case 'row':\n return RowSelectionType.ROW;\n case 'checkbox':\n return RowSelectionType.CHECKBOX;\n case 'radio':\n return RowSelectionType.RADIO;\n default:\n return RowSelectionType.ROW;\n }\n }\n else {\n switch (type) {\n case GuiRowSelectionType.ROW:\n return RowSelectionType.ROW;\n case GuiRowSelectionType.CHECKBOX:\n return RowSelectionType.CHECKBOX;\n case GuiRowSelectionType.RADIO:\n return RowSelectionType.RADIO;\n default:\n return RowSelectionType.ROW;\n }\n }\n }\n convertMatcher(matcher) {\n if (typeof matcher === 'string') {\n return (item) => item[matcher];\n }\n else {\n return matcher;\n }\n }\n convertCustomSelection(config) {\n let formationConfig = new FormationCustomSelectionConfig();\n if (config?.enabled) {\n formationConfig.enabled = config.enabled;\n }\n if (config?.selections && Array.isArray(config?.selections)) {\n formationConfig.selections =\n config.selections.map((customSelection) => {\n if (typeof customSelection === 'string') {\n return customSelection;\n }\n else {\n return customSelection;\n }\n });\n }\n return formationConfig;\n }\n}\n\nclass GuiGridColumnComponent {\n templateRef;\n name;\n field;\n type;\n view;\n header;\n width;\n enabled;\n align;\n summaries;\n sorting;\n cellEditing;\n formatter;\n matcher;\n cssClasses;\n styles;\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: GuiGridColumnComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"17.0.2\", type: GuiGridColumnComponent, selector: \"gui-grid-column\", inputs: { name: \"name\", field: \"field\", type: \"type\", view: \"view\", header: \"header\", width: \"width\", enabled: \"enabled\", align: \"align\", summaries: \"summaries\", sorting: \"sorting\", cellEditing: \"cellEditing\", formatter: \"formatter\", matcher: \"matcher\", cssClasses: \"cssClasses\", styles: \"styles\" }, queries: [{ propertyName: \"templateRef\", first: true, predicate: TemplateRef, descendants: true, static: true }], ngImport: i0, template: '', isInline: true });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: GuiGridColumnComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'gui-grid-column',\n template: ''\n }]\n }], propDecorators: { templateRef: [{\n type: ContentChild,\n args: [TemplateRef, { static: true }]\n }], name: [{\n type: Input\n }], field: [{\n type: Input\n }], type: [{\n type: Input\n }], view: [{\n type: Input\n }], header: [{\n type: Input\n }], width: [{\n type: Input\n }], enabled: [{\n type: Input\n }], align: [{\n type: Input\n }], summaries: [{\n type: Input\n }], sorting: [{\n type: Input\n }], cellEditing: [{\n type: Input\n }], formatter: [{\n type: Input\n }], matcher: [{\n type: Input\n }], cssClasses: [{\n type: Input\n }], styles: [{\n type: Input\n }] } });\n\nclass GuiGridCellEditConverter {\n convert(config) {\n if (typeof config === 'boolean') {\n return {\n enabled: config\n };\n }\n return config;\n }\n}\n\nfunction checkInput(prop) {\n return {\n isChanged: () => {\n return hasChanged(prop);\n },\n ifChanged: (callback) => {\n if (hasChanged(prop)) {\n callback();\n }\n }\n };\n}\nfunction ifChanged(prop, callback) {\n if (hasChanged(prop)) {\n callback(prop.currentValue);\n }\n}\nfunction hasChanged(prop) {\n return prop !== undefined && prop.currentValue !== undefined;\n}\n\nclass GuiGridGateway {\n guiGridColumnComponent;\n /**\n * INPUTS\n */\n columnHeaderTop;\n columnHeaderBottom;\n maxHeight;\n width;\n rowHeight;\n autoResizeWidth;\n source = [];\n columns = [];\n paging;\n verticalGrid;\n horizontalGrid;\n theme;\n rowColoring;\n rowSelection;\n rowStyle;\n rowClass;\n loading;\n virtualScroll;\n sorting;\n searching;\n titlePanel;\n footerPanel;\n /**\n * @experimental\n */\n filtering;\n /**\n * @experimental\n */\n quickFilters;\n /**\n * @experimental\n */\n editMode;\n /**\n * @experimental\n */\n cellEditing;\n infoPanel;\n /**\n * @experimental\n */\n summaries;\n columnMenu;\n rowDetail;\n localization;\n /**\n * OUTPUTS\n */\n pageChanged = new EventEmitter();\n pageSizeChanged = new EventEmitter();\n itemsSelected = new EventEmitter();\n selectedRows = new EventEmitter();\n columnsChanged = new EventEmitter();\n containerWidthChanged = new EventEmitter();\n sourceEdited = new EventEmitter();\n cellEditEntered = new EventEmitter();\n cellEditCanceled = new EventEmitter();\n cellEditSubmitted = new EventEmitter();\n searchPhraseChanged = new EventEmitter();\n themeChanged = new EventEmitter();\n horizontalGridChanged = new EventEmitter();\n verticalGridChanged = new EventEmitter();\n rowColoringChanged = new EventEmitter();\n /** @internal */\n columnsConfig;\n themeConfig; // SchemaTheme;\n rowColoringConfig; // RowColoring;\n columnMenuConfig;\n rowSelectionConfig;\n cellEditingConfig;\n gridColumnConverter = new GuiGridColumnConverter();\n gridThemeConverter = new GuiGridThemeConverter();\n gridRowColoringConverter = new GuiGridRowColoringConverter();\n gridColumnMenuConverter = new GuiGridColumnMenuConverter();\n gridPagingConverter = new GuiGridPagingConverter();\n gridRowSelectionConverter = new GuiGridRowSelectionConverter();\n guiGridCellEditConverter = new GuiGridCellEditConverter();\n constructor() {\n }\n ngOnChanges(changes) {\n ifChanged(changes.columns, () => {\n this.columnsConfig = this.gridColumnConverter.convert(this.columns);\n });\n ifChanged(changes.theme, () => {\n this.themeConfig = this.gridThemeConverter.convert(this.theme);\n });\n ifChanged(changes.rowColoring, () => {\n this.rowColoringConfig = this.gridRowColoringConverter.convert(this.rowColoring);\n });\n ifChanged(changes.columnMenu, () => {\n this.columnMenuConfig = this.gridColumnMenuConverter.convert(this.columnMenu);\n });\n ifChanged(changes.rowSelection, () => {\n this.rowSelectionConfig = this.gridRowSelectionConverter.convert(this.rowSelection);\n });\n ifChanged(changes.cellEditing, () => {\n this.cellEditingConfig = this.guiGridCellEditConverter.convert(this.cellEditing);\n });\n // TODO\n ifChanged(changes.paging, () => {\n if (typeof this.paging !== 'boolean') {\n this.paging = this.gridPagingConverter.convert(this.paging);\n }\n });\n }\n ngAfterContentInit() {\n if (this.guiGridColumnComponent && this.guiGridColumnComponent.toArray().length > 0) {\n this.columnsConfig = this.gridColumnConverter.convert(this.guiGridColumnComponent.toArray());\n }\n }\n onPageChange(page) {\n this.pageChanged.emit(page);\n }\n onPageSizeChange(pageSize) {\n this.pageSizeChanged.emit(pageSize);\n }\n onItemSelect(item) {\n this.itemsSelected.emit(item);\n }\n onRowsSelect(rows) {\n const guiRows = rows.map((row) => {\n return {\n index: row.getIndex(),\n source: row.getItem(),\n itemId: row.getItemId()\n };\n });\n this.selectedRows.emit(guiRows);\n }\n onColumnsChange() {\n this.columnsChanged.emit();\n }\n onContainerWidthChange(containerWidth) {\n this.containerWidthChanged.emit(containerWidth);\n }\n onSourceEdit(value) {\n this.sourceEdited.emit(value);\n }\n onCellEditEnter() {\n this.cellEditEntered.emit();\n }\n onCellEditSubmit() {\n this.cellEditSubmitted.emit();\n }\n onCellEditCancel() {\n this.cellEditCanceled.emit();\n }\n onSearchPhrase(value) {\n this.searchPhraseChanged.emit(value);\n }\n onTheme(value) {\n this.themeChanged.emit(this.gridThemeConverter.convertToGuiTheme(value));\n }\n onHorizontalGrid(value) {\n this.horizontalGridChanged.emit(value);\n }\n onVerticalGrid(value) {\n this.verticalGridChanged.emit(value);\n }\n onRowColoring(value) {\n this.rowColoringChanged.emit(this.gridRowColoringConverter.convertToGuiRowColoring(value));\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: GuiGridGateway, deps: [], target: i0.ɵɵFactoryTarget.Directive });\n static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"17.0.2\", type: GuiGridGateway, inputs: { columnHeaderTop: \"columnHeaderTop\", columnHeaderBottom: \"columnHeaderBottom\", maxHeight: \"maxHeight\", width: \"width\", rowHeight: \"rowHeight\", autoResizeWidth: \"autoResizeWidth\", source: \"source\", columns: \"columns\", paging: \"paging\", verticalGrid: \"verticalGrid\", horizontalGrid: \"horizontalGrid\", theme: \"theme\", rowColoring: \"rowColoring\", rowSelection: \"rowSelection\", rowStyle: \"rowStyle\", rowClass: \"rowClass\", loading: \"loading\", virtualScroll: \"virtualScroll\", sorting: \"sorting\", searching: \"searching\", titlePanel: \"titlePanel\", footerPanel: \"footerPanel\", filtering: \"filtering\", quickFilters: \"quickFilters\", editMode: \"editMode\", cellEditing: \"cellEditing\", infoPanel: \"infoPanel\", summaries: \"summaries\", columnMenu: \"columnMenu\", rowDetail: \"rowDetail\", localization: \"localization\" }, outputs: { pageChanged: \"pageChanged\", pageSizeChanged: \"pageSizeChanged\", itemsSelected: \"itemsSelected\", selectedRows: \"selectedRows\", columnsChanged: \"columnsChanged\", containerWidthChanged: \"containerWidthChanged\", sourceEdited: \"sourceEdited\", cellEditEntered: \"cellEditEntered\", cellEditCanceled: \"cellEditCanceled\", cellEditSubmitted: \"cellEditSubmitted\", searchPhraseChanged: \"searchPhraseChanged\", themeChanged: \"themeChanged\", horizontalGridChanged: \"horizontalGridChanged\", verticalGridChanged: \"verticalGridChanged\", rowColoringChanged: \"rowColoringChanged\" }, queries: [{ propertyName: \"guiGridColumnComponent\", predicate: GuiGridColumnComponent }], usesOnChanges: true, ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: GuiGridGateway, decorators: [{\n type: Directive\n }], ctorParameters: () => [], propDecorators: { guiGridColumnComponent: [{\n type: ContentChildren,\n args: [GuiGridColumnComponent]\n }], columnHeaderTop: [{\n type: Input\n }], columnHeaderBottom: [{\n type: Input\n }], maxHeight: [{\n type: Input\n }], width: [{\n type: Input\n }], rowHeight: [{\n type: Input\n }], autoResizeWidth: [{\n type: Input\n }], source: [{\n type: Input\n }], columns: [{\n type: Input\n }], paging: [{\n type: Input\n }], verticalGrid: [{\n type: Input\n }], horizontalGrid: [{\n type: Input\n }], theme: [{\n type: Input\n }], rowColoring: [{\n type: Input\n }], rowSelection: [{\n type: Input\n }], rowStyle: [{\n type: Input\n }], rowClass: [{\n type: Input\n }], loading: [{\n type: Input\n }], virtualScroll: [{\n type: Input\n }], sorting: [{\n type: Input\n }], searching: [{\n type: Input\n }], titlePanel: [{\n type: Input\n }], footerPanel: [{\n type: Input\n }], filtering: [{\n type: Input\n }], quickFilters: [{\n type: Input\n }], editMode: [{\n type: Input\n }], cellEditing: [{\n type: Input\n }], infoPanel: [{\n type: Input\n }], summaries: [{\n type: Input\n }], columnMenu: [{\n type: Input\n }], rowDetail: [{\n type: Input\n }], localization: [{\n type: Input\n }], pageChanged: [{\n type: Output\n }], pageSizeChanged: [{\n type: Output\n }], itemsSelected: [{\n type: Output\n }], selectedRows: [{\n type: Output\n }], columnsChanged: [{\n type: Output\n }], containerWidthChanged: [{\n type: Output\n }], sourceEdited: [{\n type: Output\n }], cellEditEntered: [{\n type: Output\n }], cellEditCanceled: [{\n type: Output\n }], cellEditSubmitted: [{\n type: Output\n }], searchPhraseChanged: [{\n type: Output\n }], themeChanged: [{\n type: Output\n }], horizontalGridChanged: [{\n type: Output\n }], verticalGridChanged: [{\n type: Output\n }], rowColoringChanged: [{\n type: Output\n }] } });\n\nconst structureParentComponent = new InjectionToken('StructureParentComponent');\n\nclass SelectedRow {\n index;\n itemId;\n item;\n constructor(item, index, itemId) {\n this.item = item;\n this.index = index;\n this.itemId = itemId;\n }\n getItem() {\n return this.item;\n }\n getIndex() {\n return this.index;\n }\n getItemId() {\n return this.itemId;\n }\n}\n\nclass GuiGridApiProvider {\n structureId;\n compositionId;\n schemaId;\n formationCommandInvoker;\n formationWarehouse;\n compositionCommandInvoker;\n compositionWarehouse;\n filterIntegration;\n sourceCommandInvoker;\n searchCommandInvoker;\n gridThemeCommandInvoker;\n structureCommandInvoker;\n summariesCommandInvoker;\n sortingCommandInvoker;\n pagingCommandInvoker;\n constructor(structureId, compositionId, schemaId, formationCommandDispatcher, formationWarehouse, compositionCommandInvoker, compositionWarehouse, filterIntegration, sourceCommandInvoker, searchCommandInvoker, gridThemeCommandInvoker, structureCommandInvoker, summariesCommandInvoker, sortingCommandInvoker, pagingCommandInvoker) {\n this.structureId = structureId;\n this.compositionId = compositionId;\n this.schemaId = schemaId;\n this.formationCommandInvoker = formationCommandDispatcher;\n this.formationWarehouse = formationWarehouse;\n this.compositionCommandInvoker = compositionCommandInvoker;\n this.compositionWarehouse = compositionWarehouse;\n this.filterIntegration = filterIntegration;\n this.sourceCommandInvoker = sourceCommandInvoker;\n this.searchCommandInvoker = searchCommandInvoker;\n this.gridThemeCommandInvoker = gridThemeCommandInvoker;\n this.structureCommandInvoker = structureCommandInvoker;\n this.summariesCommandInvoker = summariesCommandInvoker;\n this.sortingCommandInvoker = sortingCommandInvoker;\n this.pagingCommandInvoker = pagingCommandInvoker;\n }\n provide() {\n const structureId = this.structureId, compositionId = this.compositionId, schemaId = this.schemaId, fcd = this.formationCommandInvoker, fw = this.formationWarehouse, compositionCommandInvoker = this.compositionCommandInvoker, compositionWarehouse = this.compositionWarehouse, filterIntegration = this.filterIntegration, scd = this.sourceCommandInvoker, searchCommandInvoker = this.searchCommandInvoker, gridThemeCommandInvoker = this.gridThemeCommandInvoker, structureCommandInvoker = this.structureCommandInvoker, summariesCommandInvoker = this.summariesCommandInvoker, sortingCommandInvoker = this.sortingCommandInvoker, pagingCommandInvoker = this.pagingCommandInvoker;\n return {\n setSource(source) {\n scd.setOrigin(source, structureId);\n },\n showLoading() {\n scd.setLoading(true, structureId);\n },\n hideLoading() {\n scd.setLoading(false, structureId);\n },\n deleteRow(row) {\n scd.deleteRow(new SelectedRow(row.source, row.index, row.itemId), structureId);\n },\n deleteRows(rows) {\n const selectedRows = rows.map((row) => new SelectedRow(row.source, row.index, row.itemId));\n scd.deleteRows(selectedRows, structureId);\n },\n deleteSelectedRows() {\n // this.sourceCommandDispatcher.\n },\n getSelectedRows() {\n const rows = fw.findSelectedRows(structureId).getValueOrNullOrThrowError();\n return rows.map((r) => {\n return { source: r.getItem(), index: r.getIndex(), itemId: r.getItemId() };\n });\n },\n selectAll() {\n fcd.selectAll(structureId);\n },\n unselectAll() {\n fcd.unselectAll(structureId);\n },\n /**\n * Columns\n */\n getColumns() {\n let columns = [];\n compositionWarehouse.onTemplateColumns(compositionId)\n .subscribe((v) => {\n columns = v;\n });\n return columns;\n },\n /**\n * Filtering\n */\n getFilters() {\n const filters = filterIntegration.findFilters(compositionId, structureId);\n const filterCollection = {};\n Object.keys(filters)\n .forEach((key) => {\n filterCollection[key] =\n filters[key].map((filter) => {\n return {\n columnName: filter.columnName,\n filterId: filter.filterId,\n filterType: filter.type,\n value: filter.value\n };\n });\n });\n return filterCollection;\n },\n getFiltersForColumn(columnName) {\n return [];\n },\n getFilterTypes() {\n return [];\n },\n getFilterTypesForColumn(columnName) {\n return filterIntegration.findFilterTypes(columnName, compositionId, structureId);\n },\n removeAll() {\n },\n removeFilter(filterId) {\n },\n removeFiltersFromColumn(columnName) {\n },\n filter(columnName, filterType, value) {\n filterIntegration.filter(columnName, filterType, value, compositionId, structureId);\n },\n /**\n * Paging\n */\n enablePaging() {\n pagingCommandInvoker.enable(structureId);\n },\n disablePaging() {\n pagingCommandInvoker.disable(structureId);\n },\n nextPage() {\n pagingCommandInvoker.nextPage(structureId);\n },\n prevPage() {\n pagingCommandInvoker.prevPage(structureId);\n },\n changePageSize(pageSize) {\n pagingCommandInvoker.changePageSize(pageSize, structureId);\n },\n setPagingConfig(config) {\n pagingCommandInvoker.setPaging(config, structureId);\n },\n /**\n * Searching\n */\n setSearchingConfig(config) {\n searchCommandInvoker.setSearchingConfig(config, structureId);\n },\n search(phrase) {\n searchCommandInvoker.search(phrase, structureId);\n },\n clearSearchPhrase() {\n searchCommandInvoker.search('', structureId);\n },\n /**\n * View port\n */\n scrollToTop() {\n structureCommandInvoker.scrollToTop(structureId);\n },\n scrollToBottom() {\n structureCommandInvoker.scrollToBottom(structureId);\n },\n scrollToRowByIndex(index) {\n structureCommandInvoker.scrollToIndex(index, structureId);\n },\n /**\n * Visual - Schema\n */\n setTheme(theme) {\n gridThemeCommandInvoker.setTheme(theme, schemaId, structureId);\n },\n setVerticalGrid(enabled) {\n gridThemeCommandInvoker.setVerticalGrid(enabled, schemaId);\n },\n setHorizontalGrid(enabled) {\n gridThemeCommandInvoker.setHorizontalGrid(enabled, schemaId);\n },\n setRowColoring(rowColoring) {\n gridThemeCommandInvoker.setRowColoring(rowColoring, schemaId);\n },\n /**\n * Virtual scroll\n */\n enableVirtualScroll() {\n structureCommandInvoker.enableVirtualScroll(structureId);\n },\n disableVirtualScroll() {\n structureCommandInvoker.disableVirtualScroll(structureId);\n },\n /**\n * Summaries\n */\n enableSummaries() {\n summariesCommandInvoker.setSummariesEnabled(true, structureId);\n },\n disableSummaries() {\n summariesCommandInvoker.setSummariesEnabled(false, structureId);\n },\n /**\n * Sorting\n */\n setSortConfig(config) {\n sortingCommandInvoker.setSortingConfig(config, structureId);\n }\n };\n }\n}\n\nclass GuiGridThemeCommandInvoker {\n schemaCommandInvoker;\n gridThemeConverter;\n gridRowColoringConverter;\n constructor(schemaCommandInvoker, gridThemeConverter, gridRowColoringConverter) {\n this.schemaCommandInvoker = schemaCommandInvoker;\n this.gridThemeConverter = gridThemeConverter;\n this.gridRowColoringConverter = gridRowColoringConverter;\n }\n setTheme(theme, schemaId, structureId) {\n const schemaTheme = this.gridThemeConverter.convert(theme);\n this.schemaCommandInvoker.setTheme(schemaTheme, schemaId, structureId);\n }\n setRowColoring(rowColoring, schemaId) {\n const schemaRowColoring = this.gridRowColoringConverter.convert(rowColoring);\n this.schemaCommandInvoker.setRowColoring(schemaRowColoring, schemaId);\n }\n setVerticalGrid(verticalGrid, schemaId) {\n this.schemaCommandInvoker.setVerticalGrid(verticalGrid, schemaId);\n }\n setHorizontalGrid(horizontalGrid, schemaId) {\n this.schemaCommandInvoker.setHorizontalGrid(horizontalGrid, schemaId);\n }\n}\n\nclass Modifier {\n hostElement;\n constructor(hostElement) {\n this.hostElement = hostElement;\n }\n getElement(htmlElement) {\n return this.createModifier(htmlElement);\n }\n getHost() {\n if (!this.hostElement) {\n throw new Error('Missing host element in DomRenderer constructor.');\n }\n return this.createModifier(this.hostElement);\n }\n}\n\nclass ClassModifier extends Modifier {\n htmlElement;\n constructor(htmlElement) {\n super(htmlElement);\n this.htmlElement = htmlElement;\n }\n createModifier(htmlElement) {\n return new ClassModifier.ClassModifier(htmlElement);\n }\n // eslint-disable-next-line\n static ClassModifier = class {\n htmlElement;\n constructor(htmlElement) {\n this.htmlElement = htmlElement;\n }\n add(...classes) {\n this.addClassToDomElement(this.htmlElement, classes);\n }\n remove(...classes) {\n this.removeClassFromDomElement(this.htmlElement, classes);\n }\n clear() {\n this.htmlElement.removeAttribute('class');\n }\n addClassToDomElement(htmlElement, classes) {\n for (let i = 0; i < classes.length; i++) {\n htmlElement.classList.add(classes[i]);\n }\n }\n removeClassFromDomElement(htmlElement, classes) {\n for (let i = 0; i < classes.length; i++) {\n htmlElement.classList.remove(classes[i]);\n }\n }\n };\n}\n\nclass AttributeModifier extends Modifier {\n htmlElement;\n static AttributeModifier = class {\n htmlElement;\n constructor(htmlElement) {\n this.htmlElement = htmlElement;\n }\n setAttribute(name, value) {\n this.htmlElement.setAttribute(name, value);\n }\n removeAttribute(name) {\n this.htmlElement.removeAttribute(name);\n }\n };\n constructor(htmlElement) {\n super(htmlElement);\n this.htmlElement = htmlElement;\n }\n createModifier(htmlElement) {\n return new AttributeModifier.AttributeModifier(htmlElement);\n }\n}\n\nclass StructurePagingDefinitionBuilder extends GenericBuilder {\n enabled;\n constructor(enabled) {\n super();\n this.enabled = enabled;\n }\n withEnabled(enabled) {\n this.enabled = enabled;\n return this;\n }\n buildObject() {\n return new PagingDefinition(this.enabled);\n }\n}\nclass StructurePagingDefinitionDefaultBuilder extends StructurePagingDefinitionBuilder {\n static defaultEnabled = true;\n constructor() {\n super(StructurePagingDefinitionDefaultBuilder.defaultEnabled);\n }\n}\nclass PagingDefinition {\n static Builder = StructurePagingDefinitionBuilder;\n static DefaultBuilder = StructurePagingDefinitionDefaultBuilder;\n enabled;\n constructor(enabled) {\n this.enabled = enabled;\n }\n isEnabled() {\n return this.enabled;\n }\n}\n\nclass StructureDefinitionBuilder extends GenericBuilder {\n headerEnabled;\n bottomPaging;\n topPaging;\n border = true;\n constructor(headerEnabled, bottomPaging, topPaging) {\n super();\n this.headerEnabled = headerEnabled;\n this.bottomPaging = bottomPaging;\n this.topPaging = topPaging;\n }\n withHeader(enabled) {\n this.headerEnabled = enabled;\n return this;\n }\n withBottomPaging(paging) {\n this.bottomPaging = paging;\n return this;\n }\n withTopPaging(paging) {\n this.topPaging = paging;\n return this;\n }\n withBorder(enabled) {\n this.border = enabled;\n return this;\n }\n buildObject() {\n return new StructureDefinition(this.headerEnabled, this.bottomPaging, this.topPaging, this.border);\n }\n}\nclass StructureDefinitionDefaultBuilder extends StructureDefinitionBuilder {\n static defaultHeaderEnabled = true;\n static defaultBottomPaging = new PagingDefinition.DefaultBuilder().build();\n static defaultTopPaging = new PagingDefinition.DefaultBuilder().build();\n constructor() {\n super(StructureDefinitionDefaultBuilder.defaultHeaderEnabled, StructureDefinitionDefaultBuilder.defaultBottomPaging, StructureDefinitionDefaultBuilder.defaultTopPaging);\n }\n}\nclass StructureDefinition {\n static Builder = StructureDefinitionBuilder;\n static DefaultBuilder = StructureDefinitionDefaultBuilder;\n headerEnabled;\n bottomPaging;\n topPaging;\n border;\n constructor(headerEnabled, bottomPaging, topPaging, border) {\n this.headerEnabled = headerEnabled;\n this.bottomPaging = bottomPaging;\n this.topPaging = topPaging;\n this.border = border;\n }\n isHeaderEnabled() {\n return this.headerEnabled;\n }\n isBorderEnabled() {\n return this.border;\n }\n getBottomPaging() {\n return this.bottomPaging;\n }\n getTopPaging() {\n return this.topPaging;\n }\n}\n\n/** @internal */\nconst guiGridStructureDefinition = new StructureDefinition.DefaultBuilder().build();\n\nclass GuiGridRegister {\n gridMap = new Map();\n // structureId: StructureId\n register(gridId, component, structureId) {\n this.gridMap.set(gridId, { component, structureId });\n }\n unregister(gridId) {\n this.gridMap.delete(gridId);\n }\n getValues(gridId) {\n return this.gridMap.get(gridId);\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: GuiGridRegister, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: GuiGridRegister });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: GuiGridRegister, decorators: [{\n type: Injectable\n }] });\n\nclass StructureIdGenerator {\n // private increment = 0;\n generateId() {\n return RandomIdGenerator.generate();\n }\n}\n\nclass FormationPublisher {\n constructor() {\n }\n}\n\nclass FormationWarehouse {\n constructor() {\n }\n}\n\nclass CompositionPublisher {\n constructor() {\n }\n}\n\nclass CompositionWarehouse {\n constructor() {\n }\n}\n\nclass FilterWarehouse {\n constructor() {\n }\n}\n\nclass FieldId extends EntityId {\n id;\n constructor(id) {\n super(id);\n this.id = id;\n }\n getId() {\n return this.id;\n }\n equals(fieldId) {\n return fieldId.toString() === this.id;\n }\n toString() {\n return this.id;\n }\n}\n\nclass FilterPublisher {\n constructor() {\n }\n}\n\nclass FilterIntegration {\n compositionWarehouse;\n filterCommandInvoker;\n filterWarehouse;\n constructor(compositionWarehouse, filterCommandInvoker, filterWarehouse) {\n this.compositionWarehouse = compositionWarehouse;\n this.filterCommandInvoker = filterCommandInvoker;\n this.filterWarehouse = filterWarehouse;\n }\n static services = [CompositionWarehouse, FilterPublisher, FilterWarehouse];\n findFilterTypes(columnName, compositionId, structureId) {\n let filterTypes = [];\n this.compositionWarehouse\n .onTemplateColumns(compositionId)\n .pipe(hermesMap((cols) => {\n return cols.find((col) => {\n return col.getName() === columnName;\n });\n }), hermesFilter((col) => {\n return col !== undefined;\n }), hermesTake(1), hermesSwitchMap((col) => {\n return this.filterWarehouse\n .onFilterTypesForFieldId(new FieldId(col.columnFieldId.getId()), structureId);\n }))\n .subscribe((types) => {\n filterTypes = types.map((type) => type.getName());\n });\n return filterTypes;\n }\n findFilters(compositionId, structureId) {\n const filters = this.filterWarehouse.findFilters(structureId).getValueOrNullOrThrowError();\n const columnNames = this.compositionWarehouse.findColumnNames(compositionId);\n const obj = {};\n for (let i = 0; i < columnNames.length; i += 1) {\n obj[columnNames[i]] = filters.filter((filter) => {\n return filter.getFieldName() === columnNames[i];\n })\n .map((filter) => {\n return {\n columnName: filter.getFieldName(),\n filterId: filter.getFilterId().toString(),\n type: filter.getFilterTypeName(),\n value: filter.getValue()\n };\n });\n }\n return obj;\n }\n filter(columnName, filterType, value, compositionId, structureId) {\n this.compositionWarehouse\n .onTemplateColumns(compositionId)\n .pipe(hermesMap((cols) => {\n return cols.find((col) => {\n return col.getName() === columnName;\n });\n }), hermesFilter((col) => {\n return col !== undefined;\n }), hermesTake(1), hermesSwitchMap((col) => {\n return this.filterWarehouse\n .onceFilterTypeId(new FieldId(col.columnFieldId.getId()), filterType, structureId)\n .pipe(hermesMap((filterTypeId) => {\n return {\n fieldId: new FieldId(col.columnFieldId.getId()),\n filterTypeId: filterTypeId\n };\n }));\n }))\n .subscribe((params) => {\n const { fieldId, filterTypeId } = params;\n filterTypeId.ifPresent((ftId) => {\n this.filterCommandInvoker.add(fieldId, ftId, value, structureId);\n });\n });\n }\n}\n\nclass SourcePublisher {\n constructor() {\n }\n}\n\nclass SearchPublisher {\n constructor() {\n }\n}\n\nclass SchemaPublisher {\n constructor() {\n }\n}\n\nclass StructurePublisher {\n constructor() {\n }\n}\n\nclass SummariesPublisher {\n constructor() {\n }\n}\n\nclass SortingPublisher {\n constructor() {\n }\n}\n\nclass PagingPublisher {\n constructor() {\n }\n}\n\nclass StructureReadModelRootId extends ReadModelRootId {\n constructor(id) {\n super(id);\n }\n toAggregateId() {\n return new StructureId(this.toString());\n }\n}\n\nclass StructureId extends AggregateId {\n constructor(id) {\n super(id);\n }\n toReadModelRootId() {\n return new StructureReadModelRootId(this.getId());\n }\n}\n\nclass CompositionReadModelRootId extends ReadModelRootId {\n constructor(id) {\n super(id);\n }\n toAggregateId() {\n return new CompositionId(this.toString());\n }\n}\n\nclass CompositionId extends AggregateId {\n constructor(id) {\n super(id);\n }\n toReadModelRootId() {\n return new CompositionReadModelRootId(this.getId());\n }\n}\n\nvar SchemaRowColoring;\n(function (SchemaRowColoring) {\n SchemaRowColoring[SchemaRowColoring[\"NONE\"] = 0] = \"NONE\";\n SchemaRowColoring[SchemaRowColoring[\"EVEN\"] = 1] = \"EVEN\";\n SchemaRowColoring[SchemaRowColoring[\"ODD\"] = 2] = \"ODD\";\n})(SchemaRowColoring || (SchemaRowColoring = {}));\n\nclass SchemaWarehouse {\n}\n\nclass SchemaCssClassManager extends Reactive {\n schemaReadModelRepository;\n static VERTICAL_GRID_CLASS_NAME = 'gui-vertical-grid';\n static HORIZONTAL_GRID_CLASS_NAME = 'gui-horizontal-grid';\n static THEME_FABRIC_CLASS_NAME = 'gui-fabric';\n static THEME_MATERIAL_CLASS_NAME = 'gui-material';\n static THEME_LIGHT_CLASS_NAME = 'gui-light';\n static THEME_DARK_CLASS_NAME = 'gui-dark';\n static THEME_GENERIC_CLASS_NAME = 'gui-generic';\n static ROW_COLORING_ODD = 'gui-rows-odd';\n static ROW_COLORING_EVEN = 'gui-rows-even';\n classModifier;\n cssClass = null;\n cssHostRef;\n constructor(schemaReadModelRepository) {\n super();\n this.schemaReadModelRepository = schemaReadModelRepository;\n this.classModifier = new ClassModifier();\n }\n init(elementRef, schemaReadModelRootId) {\n this.cssHostRef = elementRef;\n this.schemaReadModelRepository\n .onCssClasses(schemaReadModelRootId)\n .pipe(this.hermesTakeUntil())\n .subscribe((classes) => {\n const diff = this.updateState(classes);\n this.renderCssClasses(diff);\n });\n }\n updateState(css) {\n if (!this.cssClass) {\n this.cssClass = css;\n return this.cssClass;\n }\n else {\n const diff = {};\n Object.keys(this.cssClass)\n .forEach((key) => {\n if (css[key] !== this.cssClass[key]) {\n diff[key] = css[key];\n }\n });\n this.cssClass = css;\n return diff;\n }\n }\n renderCssClasses(diff) {\n if (diff.hasOwnProperty('verticalGrid')) {\n this.toggleCssClass(diff.verticalGrid, SchemaCssClassManager.VERTICAL_GRID_CLASS_NAME);\n }\n if (diff.hasOwnProperty('horizontalGrid')) {\n this.toggleCssClass(diff.horizontalGrid, SchemaCssClassManager.HORIZONTAL_GRID_CLASS_NAME);\n }\n if (diff.hasOwnProperty('theme')) {\n this.removeThemeCssClasses();\n this.addClass(this.resolveThemeClassName(diff.theme));\n }\n if (diff.hasOwnProperty('rowColoring')) {\n this.removeRowColoringClasses();\n this.addClass(this.resolveRowColoringClassName(diff.rowColoring));\n }\n }\n toggleCssClass(toggle, cssClassName) {\n if (toggle) {\n this.addClass(cssClassName);\n }\n else {\n this.removeClass(cssClassName);\n }\n }\n removeThemeCssClasses() {\n Object.keys(SchemaTheme)\n .map((key) => SchemaTheme[key])\n .map((theme) => this.resolveThemeClassName(theme))\n .filter((className) => !!className)\n .forEach((className) => {\n this.removeClass(className);\n });\n }\n resolveThemeClassName(theme) {\n switch (theme) {\n case SchemaTheme.FABRIC:\n case SchemaTheme[SchemaTheme.FABRIC]:\n return SchemaCssClassManager.THEME_FABRIC_CLASS_NAME;\n case SchemaTheme.MATERIAL:\n case SchemaTheme[SchemaTheme.MATERIAL]:\n return SchemaCssClassManager.THEME_MATERIAL_CLASS_NAME;\n case SchemaTheme.LIGHT:\n case SchemaTheme[SchemaTheme.LIGHT]:\n return SchemaCssClassManager.THEME_LIGHT_CLASS_NAME;\n case SchemaTheme.DARK:\n case SchemaTheme[SchemaTheme.DARK]:\n return SchemaCssClassManager.THEME_DARK_CLASS_NAME;\n case SchemaTheme.GENERIC:\n case SchemaTheme[SchemaTheme.GENERIC]:\n return SchemaCssClassManager.THEME_GENERIC_CLASS_NAME;\n default:\n return SchemaCssClassManager.THEME_FABRIC_CLASS_NAME;\n }\n }\n resolveRowColoringClassName(coloring) {\n switch (coloring) {\n case SchemaRowColoring.ODD:\n case SchemaRowColoring[SchemaRowColoring.ODD]:\n return SchemaCssClassManager.ROW_COLORING_ODD;\n case SchemaRowColoring.EVEN:\n case SchemaRowColoring[SchemaRowColoring.EVEN]:\n return SchemaCssClassManager.ROW_COLORING_EVEN;\n default:\n return null;\n }\n }\n removeRowColoringClasses() {\n Object.keys(SchemaRowColoring)\n .map((key) => SchemaRowColoring[key])\n .map((coloring) => this.resolveRowColoringClassName(coloring))\n .filter((className) => !!className)\n .forEach((className) => {\n this.removeClass(className);\n });\n }\n addClass(cssClassName) {\n if (cssClassName) {\n this.classModifier.getElement(this.cssHostRef.nativeElement).add(cssClassName);\n }\n }\n removeClass(cssClassName) {\n if (cssClassName) {\n this.classModifier.getElement(this.cssHostRef.nativeElement).remove(cssClassName);\n }\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: SchemaCssClassManager, deps: [{ token: SchemaWarehouse }], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: SchemaCssClassManager });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: SchemaCssClassManager, decorators: [{\n type: Injectable\n }], ctorParameters: () => [{ type: SchemaWarehouse }] });\n\nclass StructureCellEditStore extends Archive {\n constructor() {\n super();\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureCellEditStore, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureCellEditStore });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureCellEditStore, decorators: [{\n type: Injectable\n }], ctorParameters: () => [] });\n\nclass StructureEditModeArchive extends Archive {\n constructor() {\n super();\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureEditModeArchive, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureEditModeArchive });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureEditModeArchive, decorators: [{\n type: Injectable\n }], ctorParameters: () => [] });\n\nclass StructureInfoPanelConfig {\n enabled = false;\n infoDialog = true;\n columnsManager = true;\n schemaManager = true;\n sourceSize = true;\n constructor(enabled, infoDialog, columnsManager, schemaManager, sourceSize) {\n if (this.isNotUndefinedOrNull(enabled)) {\n this.enabled = enabled;\n }\n if (this.isNotUndefinedOrNull(infoDialog)) {\n this.infoDialog = infoDialog;\n }\n if (this.isNotUndefinedOrNull(columnsManager)) {\n this.columnsManager = columnsManager;\n }\n if (this.isNotUndefinedOrNull(sourceSize)) {\n this.sourceSize = sourceSize;\n }\n if (this.isNotUndefinedOrNull(schemaManager)) {\n this.schemaManager = schemaManager;\n }\n }\n isEnabled() {\n return this.enabled;\n }\n isInfoDialogEnabled() {\n return this.infoDialog;\n }\n isColumnsManagerEnabled() {\n return this.columnsManager;\n }\n isSourceSizeEnabled() {\n return this.sourceSize;\n }\n isSchemaManagerEnabled() {\n return this.schemaManager;\n }\n isNotUndefinedOrNull(config) {\n return config !== undefined && config !== null;\n }\n}\n\nclass StructureInfoPanelArchive extends Archive {\n constructor() {\n super(new StructureInfoPanelConfig());\n }\n}\n\nconst structureComponentToken = new InjectionToken('StructureComponentToken');\n\nclass GuiComponent {\n innerElementRef;\n innerClassModifier;\n constructor(innerElementRef) {\n this.innerElementRef = innerElementRef;\n this.initClassModifier();\n this.addHostClass();\n }\n addClassToHost(className) {\n this.innerClassModifier.getHost().add(className);\n }\n removeClassFromHost(className) {\n this.innerClassModifier.getHost().remove(className);\n }\n hasChanged(prop) {\n return prop !== undefined && prop.currentValue !== undefined;\n }\n ifChanged(prop, callback) {\n if (this.hasChanged(prop)) {\n callback();\n }\n }\n initClassModifier() {\n this.innerClassModifier = new ClassModifier(this.innerElementRef.nativeElement);\n }\n addHostClass() {\n this.innerClassModifier.getHost().add(this.getSelectorName());\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: GuiComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });\n static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"17.0.2\", type: GuiComponent, ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: GuiComponent, decorators: [{\n type: Directive\n }], ctorParameters: () => [{ type: i0.ElementRef }] });\n\nclass SmartComponent extends GuiComponent {\n detector;\n viewInDom = false;\n unsubscribe$ = new HermesSubject();\n constructor(detector, elementRef) {\n super(elementRef);\n this.detector = detector;\n }\n ngAfterViewInit() {\n this.viewInDom = true;\n }\n ngOnDestroy() {\n this.unsubscribe();\n }\n reRender() {\n if (this.isViewInDom()) {\n this.detector.detectChanges();\n }\n }\n isViewInDom() {\n return this.viewInDom;\n }\n /**\n * @deprecated instead use useReactiveContext\n */\n subscribe(stream$, callback) {\n stream$\n .pipe(this.takeUntil())\n .subscribe((streamValues) => {\n callback(streamValues);\n this.reRender();\n });\n }\n /**\n * @deprecated instead use useReactiveContext\n */\n subscribeWithoutRender(stream$, callback) {\n stream$\n .pipe(this.takeUntil())\n .subscribe((streamValues) => {\n callback(streamValues);\n });\n }\n // for gate\n subscribeAndEmit(stream$, emitter, mapper = (value) => value) {\n stream$\n .pipe(this.takeUntil())\n .subscribe((value) => {\n emitter.emit(mapper(value));\n });\n }\n unsubscribe() {\n this.unsubscribe$.next();\n this.unsubscribe$.complete();\n }\n takeUntil() {\n return hermesTakeUntil(this.unsubscribe$);\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: SmartComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });\n static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"17.0.2\", type: SmartComponent, usesInheritance: true, ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: SmartComponent, decorators: [{\n type: Directive\n }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }] });\n\nvar StructureCellEditState;\n(function (StructureCellEditState) {\n StructureCellEditState[StructureCellEditState[\"ENTER\"] = 0] = \"ENTER\";\n StructureCellEditState[StructureCellEditState[\"SUBMIT\"] = 1] = \"SUBMIT\";\n StructureCellEditState[StructureCellEditState[\"CANCEL\"] = 2] = \"CANCEL\";\n})(StructureCellEditState || (StructureCellEditState = {}));\n\nclass StructureCommand extends Command {\n}\n\nclass InitFieldsCommand extends StructureCommand {\n fieldConfigs;\n constructor(structureId, fieldConfigs) {\n super(structureId, 'InitFieldsCommand');\n this.fieldConfigs = fieldConfigs;\n }\n getFieldConfigs() {\n return this.fieldConfigs;\n }\n}\n\nclass StructureDomainEvent extends DomainEvent {\n}\n\nclass FieldsInitedEvent extends StructureDomainEvent {\n fieldConfigs;\n fields;\n constructor(aggregateId, fieldConfigs, // TODO merge\n fields) {\n super(aggregateId, { fieldConfigs, fields }, 'FieldsInitedEvent');\n this.fieldConfigs = fieldConfigs;\n this.fields = fields;\n }\n getFields() {\n return this.fields;\n }\n}\n\nclass ColumnFieldId {\n id;\n constructor(id) {\n this.id = id;\n }\n getId() {\n return this.id;\n }\n}\n\nclass ColumnParams {\n column;\n field;\n constructor(column, field) {\n this.column = column;\n this.field = field;\n }\n getColumn() {\n return this.column;\n }\n getField() {\n return this.field;\n }\n}\n\nclass StructureColumnInputHandler {\n structureId;\n compositionId;\n columnFieldFactory;\n columnAutoConfigurator;\n compositionCommandInvoker;\n commandDispatcher = CoreContainer.resolve(CommandDispatcher);\n domainEventBus = CoreContainer.resolve(DomainEventBus);\n columns;\n constructor(structureId, compositionId, columnFieldFactory, columnAutoConfigurator, compositionCommandInvoker) {\n this.structureId = structureId;\n this.compositionId = compositionId;\n this.columnFieldFactory = columnFieldFactory;\n this.columnAutoConfigurator = columnAutoConfigurator;\n this.compositionCommandInvoker = compositionCommandInvoker;\n }\n handle(changes) {\n let config = [];\n if (changes.columns !== undefined && changes.columns.currentValue !== undefined) {\n config = changes.columns.currentValue;\n this.columns = config;\n }\n else {\n if (this.columns === undefined && changes.source !== undefined && changes.source !== null) {\n config = this.columnAutoConfigurator.configure(changes.source.currentValue);\n this.columns = config;\n }\n else {\n return;\n }\n }\n this.compositionCommandInvoker.setGroups(config, this.compositionId);\n // prepare model\n const { columns, groups } = this.getConfigs(config);\n const fieldConfigs = this.getFieldConfigs(columns);\n // const fieldConfigs = columns as Array;\n const initCommand = new InitFieldsCommand(this.structureId, fieldConfigs);\n this.domainEventBus\n .ofEvents([\n FieldsInitedEvent\n ])\n .pipe(hermesFilter((event) => event.getAggregateId().toString() === this.structureId.toString()), hermesTake(1))\n .subscribe((event) => {\n const fields = event.getFields(), columnFieldIds = this.convertColumnFieldIds(fields), params = this.convertColumns(columns, fields, columnFieldIds);\n this.compositionCommandInvoker.setColumns(params, this.compositionId);\n // this.compositionCommandInvoker.setGroups(this.compositionId);\n });\n this.commandDispatcher.dispatch(initCommand);\n }\n getConfigs(configs) {\n let columnConfigs = [];\n const groupConfigs = [];\n for (let i = 0; i < configs.length; i += 1) {\n const config = configs[i];\n if (config.columns !== undefined) {\n groupConfigs.push(config);\n columnConfigs = columnConfigs.concat(config.columns);\n }\n else {\n columnConfigs.push(config);\n }\n }\n return {\n columns: columnConfigs,\n groups: groupConfigs\n };\n }\n getFieldConfigs(columns) {\n return columns.map((c) => {\n return {\n field: c.field,\n type: c.type,\n matcher: c.matcher,\n summaries: c.summaries,\n sorting: c.sorting\n };\n });\n }\n convertColumnFieldIds(fields) {\n if (!fields) {\n return [];\n }\n return fields.map((field) => new ColumnFieldId(field.getId().getId()));\n }\n convertColumns(columns, fields, columnFieldIds) {\n if (!columns) {\n return [];\n }\n return columns.map((column, index) => {\n const columnFieldId = columnFieldIds[index], field = fields[index];\n const columnField = this.columnFieldFactory.create(columnFieldId, field.getAccessorMethod(), field.getDataType(), field.getSearchAccessorMethod());\n return new ColumnParams(column, columnField);\n });\n }\n}\n\nclass ColumnAutoConfigurator {\n}\n\nclass SchemaId extends AggregateId {\n constructor(id) {\n super(id);\n }\n toReadModelRootId() {\n return new SchemaReadModelRootId(this.getId());\n }\n}\n\nclass SchemaReadModelRootId extends ReadModelRootId {\n constructor(id) {\n super(id);\n }\n toAggregateId() {\n return new SchemaId(this.getId());\n }\n}\n\nclass PagingEventRepository extends EventRepository {\n}\n\nclass EditedItemModel {\n after;\n before;\n constructor(after, before) {\n this.after = after;\n this.before = before;\n }\n}\n\nclass StructureSourceItemEditedEvent extends StructureDomainEvent {\n beforeItem;\n afterItem;\n constructor(aggregateId, beforeItem, afterItem) {\n super(aggregateId, { beforeItem, afterItem }, 'StructureSourceItemEditedEvent');\n this.beforeItem = beforeItem;\n this.afterItem = afterItem;\n }\n getBeforeItem() {\n return this.beforeItem;\n }\n getAfterItem() {\n return this.afterItem;\n }\n}\n\nclass SourceEventService {\n domainEventBus = CoreContainer.resolve(DomainEventBus);\n onSourceEdited(structureId) {\n return this.domainEventBus\n .ofEvents([\n StructureSourceItemEditedEvent\n ])\n .pipe(hermesFilter((event) => event.getAggregateId().toString() === structureId.toString()), hermesMap((event) => {\n const afterItem = event.getAfterItem().getSourceItem(), beforeItem = event.getBeforeItem().getSourceItem();\n return new EditedItemModel(afterItem, beforeItem);\n }));\n }\n}\n\nclass CompositionEventRepository extends EventRepository {\n}\n\nclass SourceWarehouse {\n constructor() {\n }\n}\n\nclass SelectedRowChangedEvent extends StructureDomainEvent {\n selectedRows;\n allSelected;\n allUnselected;\n constructor(structureId, selectedRows, allSelected, allUnselected) {\n super(structureId, { selectedRows, allSelected, allUnselected }, 'SelectedRowChangedEvent');\n this.selectedRows = selectedRows;\n this.allSelected = allSelected;\n this.allUnselected = allUnselected;\n }\n getSelectedRows() {\n return this.selectedRows;\n }\n isAllSelected() {\n return this.allSelected;\n }\n isAllUnselected() {\n return this.allUnselected;\n }\n}\n\nclass FormationEventRepository extends EventRepository {\n sourceWarehouse;\n domainEventBusTOREMOVE;\n map = new Map();\n subject$ = new HermesSubject();\n constructor(sourceWarehouse, domainEventBusTOREMOVE) {\n super();\n this.sourceWarehouse = sourceWarehouse;\n this.domainEventBusTOREMOVE = domainEventBusTOREMOVE;\n this.domainEventBusTOREMOVE\n .ofEvents([\n SelectedRowChangedEvent\n ])\n .pipe(hermesSwitchMap((event) => {\n const selectedRows = event.getSelectedRows();\n const structureId = event.getAggregateId();\n return this.sourceWarehouse\n .onPreparedItems(structureId)\n .pipe(hermesTake(1), hermesMap((items) => {\n const selectedItems = [], length = items.length, itemsMap = new Map();\n for (let i = 0; i < length; i += 1) {\n itemsMap.set(items[i].getId().toString(), items[i]);\n }\n for (let j = 0; j < selectedRows.length; j += 1) {\n const item = itemsMap.get(selectedRows[j]);\n selectedItems.push(new SelectedRow(item.getSourceItem(), j, item.getId()));\n }\n return {\n id: structureId,\n items: selectedItems\n };\n }));\n }))\n .subscribe((e) => {\n this.map.set(e.id.toString(), e.items);\n this.subject$.next(this.map);\n });\n }\n static services = [SourceWarehouse, DomainEventBus];\n onItemSelected(structureId) {\n return this.subject$\n .toObservable()\n .pipe(hermesFilter((map) => {\n return map.has(structureId.toString());\n }), hermesMap((map) => {\n return map.get(structureId.toString());\n }));\n }\n}\n\nclass CellEditorManager {\n enabled = false;\n rowEdit = () => true;\n cellEdit = () => true;\n constructor(config) {\n if (config.enabled !== undefined) {\n this.enabled = config.enabled;\n }\n if (config.rowEdit !== undefined) {\n this.rowEdit = config.rowEdit;\n }\n if (config.cellEdit !== undefined) {\n this.cellEdit = config.cellEdit;\n }\n }\n isEnabled(value, item, index) {\n return this.enabled && this.rowEdit(value, item, index) && this.cellEdit(value, item, index);\n }\n}\n\nclass StructureCellEditArchive extends AggregateArchive {\n static default = new CellEditorManager({ enabled: false });\n constructor() {\n super(StructureCellEditArchive.default);\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureCellEditArchive, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureCellEditArchive });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureCellEditArchive, decorators: [{\n type: Injectable\n }], ctorParameters: () => [] });\n\nclass StructureInfoPanelConfigConverter {\n convert(config) {\n let infoDialog, columnsManager, sourceSize, schemaManager;\n if (config.infoDialog !== undefined) {\n infoDialog = config.infoDialog;\n }\n if (config.columnsManager !== undefined) {\n columnsManager = config.columnsManager;\n }\n if (config.schemaManager !== undefined) {\n schemaManager = config.schemaManager;\n }\n if (config.sourceSize !== undefined) {\n sourceSize = config.sourceSize;\n }\n return new StructureInfoPanelConfig(config.enabled, infoDialog, columnsManager, schemaManager, sourceSize);\n }\n}\n\nclass StructureInfoPanelConfigService {\n structureInfoPanelConfigConverter;\n structureInfoPanelArchive;\n constructor(structureInfoPanelConfigConverter, structureInfoPanelArchive) {\n this.structureInfoPanelConfigConverter = structureInfoPanelConfigConverter;\n this.structureInfoPanelArchive = structureInfoPanelArchive;\n }\n static services = [StructureInfoPanelConfigConverter, StructureInfoPanelArchive];\n set(config) {\n const infoPanelConfig = this.structureInfoPanelConfigConverter.convert(config);\n this.structureInfoPanelArchive.next(infoPanelConfig);\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureInfoPanelConfigService, deps: [{ token: StructureInfoPanelConfigConverter }, { token: StructureInfoPanelArchive }], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureInfoPanelConfigService });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureInfoPanelConfigService, decorators: [{\n type: Injectable\n }], ctorParameters: () => [{ type: StructureInfoPanelConfigConverter }, { type: StructureInfoPanelArchive }] });\n\nclass ColumnField {\n fieldId;\n accessor;\n searchAccessor;\n dataType;\n constructor(fieldId, accessor, dataType, searchAccessor) {\n this.fieldId = fieldId;\n this.accessor = accessor;\n this.dataType = dataType;\n this.searchAccessor = searchAccessor;\n }\n getId() {\n return this.fieldId;\n }\n getValue(entity) {\n return this.accessor(entity);\n }\n getAccessor() {\n return this.accessor;\n }\n getSearchAccessor() {\n return this.searchAccessor;\n }\n getDataType() {\n return this.dataType;\n }\n}\n\nclass ColumnFieldFactory {\n create(columnFieldId, accessor, dataType, searchAccessor) {\n return new ColumnField(columnFieldId, accessor, dataType, searchAccessor);\n }\n}\n\nclass SearchEventRepository extends EventRepository {\n constructor() {\n super();\n }\n}\n\nclass StructureHeaderBottomEnabledArchive extends Archive {\n constructor() {\n super(false);\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureHeaderBottomEnabledArchive, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureHeaderBottomEnabledArchive });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureHeaderBottomEnabledArchive, decorators: [{\n type: Injectable\n }], ctorParameters: () => [] });\n\nclass SchemaEventRepository extends EventRepository {\n constructor() {\n super();\n }\n}\n\nclass TranslationFacade {\n}\n\nclass StructureInitialValuesReadyArchive extends AggregateArchive {\n static default = false;\n constructor() {\n super(StructureInitialValuesReadyArchive.default);\n }\n on(aggregateId) {\n return super.on(aggregateId)\n .pipe(hermesFilter(v => v));\n }\n once(aggregateId) {\n return singleFromObservable(this.on(aggregateId));\n }\n}\n\n/** @internal */\nclass StructureGateway extends SmartComponent {\n changeDetectorRef;\n columnAutoConfigurator;\n structureId;\n compositionId;\n schemaId;\n structureCommandInvoker;\n structurePagingCommandDispatcher;\n pagingEventRepository;\n sortingCommandInvoker;\n searchCommandInvoker;\n sourceCommandService;\n sourceEventService;\n schemaCommandInvoker;\n compositionCommandDispatcher;\n compositionEventRepository;\n formationEventService;\n structureEditModeArchive;\n structureCellEditArchive;\n structureInfoPanelConfigService;\n structureCellEditStore;\n columnFieldFactory;\n formationCommandDispatcher;\n searchEventRepository;\n structureHeaderBottomEnabledArchive;\n schemaEventRepository;\n translationService;\n structureInitialValuesReadyArchive;\n /** *********************\n * INPUTS\n ***********************/\n maxHeight;\n width;\n rowHeight;\n autoResizeWidth;\n // DOESNT WORK WITH GATE\n source = [];\n // DOESNT WORK WITH GATE\n columns;\n // @Input()\n // filtering: boolean | FilterConfig;\n // @Input()\n // quickFilters: boolean | QuickFiltersConfig;\n editMode;\n cellEditing;\n theme;\n /** *********************\n * OUTPUTS\n ***********************/\n themeChanged = new EventEmitter();\n columnsChanged = new EventEmitter();\n containerWidthChanged = new EventEmitter();\n sourceEdited = new EventEmitter();\n cellEditEntered = new EventEmitter();\n cellEditCanceled = new EventEmitter();\n cellEditSubmitted = new EventEmitter();\n structureColumnInputHandler;\n changeAfterInit = false;\n constructor(changeDetectorRef, elementRef, columnAutoConfigurator, structureId, compositionId, schemaId, structureCommandInvoker, structurePagingCommandDispatcher, pagingEventRepository, sortingCommandInvoker, searchCommandInvoker, sourceCommandService, sourceEventService, schemaCommandInvoker, compositionCommandDispatcher, compositionEventRepository, formationEventService, structureEditModeArchive, structureCellEditArchive, structureInfoPanelConfigService, structureCellEditStore, columnFieldFactory, formationCommandDispatcher, searchEventRepository, structureHeaderBottomEnabledArchive, schemaEventRepository, translationService, structureInitialValuesReadyArchive) {\n super(changeDetectorRef, elementRef);\n this.changeDetectorRef = changeDetectorRef;\n this.columnAutoConfigurator = columnAutoConfigurator;\n this.structureId = structureId;\n this.compositionId = compositionId;\n this.schemaId = schemaId;\n this.structureCommandInvoker = structureCommandInvoker;\n this.structurePagingCommandDispatcher = structurePagingCommandDispatcher;\n this.pagingEventRepository = pagingEventRepository;\n this.sortingCommandInvoker = sortingCommandInvoker;\n this.searchCommandInvoker = searchCommandInvoker;\n this.sourceCommandService = sourceCommandService;\n this.sourceEventService = sourceEventService;\n this.schemaCommandInvoker = schemaCommandInvoker;\n this.compositionCommandDispatcher = compositionCommandDispatcher;\n this.compositionEventRepository = compositionEventRepository;\n this.formationEventService = formationEventService;\n this.structureEditModeArchive = structureEditModeArchive;\n this.structureCellEditArchive = structureCellEditArchive;\n this.structureInfoPanelConfigService = structureInfoPanelConfigService;\n this.structureCellEditStore = structureCellEditStore;\n this.columnFieldFactory = columnFieldFactory;\n this.formationCommandDispatcher = formationCommandDispatcher;\n this.searchEventRepository = searchEventRepository;\n this.structureHeaderBottomEnabledArchive = structureHeaderBottomEnabledArchive;\n this.schemaEventRepository = schemaEventRepository;\n this.translationService = translationService;\n this.structureInitialValuesReadyArchive = structureInitialValuesReadyArchive;\n this.structureColumnInputHandler = new StructureColumnInputHandler(structureId, compositionId, columnFieldFactory, columnAutoConfigurator, compositionCommandDispatcher);\n this.translationService.setDefaultTranslation();\n }\n ngOnChanges(changes) {\n ifChanged(changes.editMode, () => {\n this.structureEditModeArchive.next(this.editMode);\n });\n ifChanged(changes.cellEditing, () => {\n let editingConfig;\n if (typeof this.cellEditing === 'boolean') {\n editingConfig = {\n enabled: this.cellEditing\n };\n }\n else {\n editingConfig = this.cellEditing;\n }\n this.structureCommandInvoker.setCellEdit(editingConfig, this.structureId);\n });\n ifChanged(changes.width, (width) => {\n this.compositionCommandDispatcher.setWidth(width, this.compositionId);\n });\n ifChanged(changes.theme, () => {\n this.schemaCommandInvoker.setTheme(this.theme, this.schemaId, this.structureId);\n });\n ifChanged(changes.rowHeight, () => {\n this.structureCommandInvoker.setRowHeight(this.rowHeight, this.structureId);\n });\n ifChanged(changes.autoResizeWidth, () => {\n this.compositionCommandDispatcher.setResizeWidth(this.autoResizeWidth, this.compositionId);\n });\n /**\n * Columns\n */\n this.structureColumnInputHandler.handle(changes);\n ifChanged(changes.maxHeight, () => {\n this.structureCommandInvoker.setContainerHeight(this.maxHeight, this.structureId);\n });\n /**\n * Setting source should be last step\n */\n ifChanged(changes.source, () => {\n this.sourceCommandService.setOrigin(this.source, this.structureId);\n });\n }\n ngOnInit() {\n this.compositionEventRepository\n .onColumnsChanged(this.compositionId.toReadModelRootId())\n .pipe(this.takeUntil())\n .subscribe(() => {\n this.columnsChanged.emit();\n });\n this.compositionEventRepository\n .onContainerWidthChanged(this.compositionId.toReadModelRootId())\n .pipe(this.takeUntil())\n .subscribe((containerWidth) => {\n this.containerWidthChanged.emit(containerWidth);\n });\n this.sourceEventService\n .onSourceEdited(this.structureId)\n .subscribe((values) => {\n this.sourceEdited.emit(values);\n });\n this.structureCellEditStore\n .on()\n .pipe(this.takeUntil())\n .subscribe((state) => {\n switch (state) {\n case StructureCellEditState.ENTER:\n this.cellEditEntered.emit();\n break;\n case StructureCellEditState.SUBMIT:\n this.cellEditSubmitted.emit();\n break;\n case StructureCellEditState.CANCEL:\n this.cellEditCanceled.emit();\n break;\n default:\n break;\n }\n });\n this.subscribeAndEmit(this.schemaEventRepository.onThemeChanged(this.schemaId), this.themeChanged);\n this.componentInitialized();\n }\n componentInitialized() {\n this.changeAfterInit = true;\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureGateway, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: ColumnAutoConfigurator }, { token: StructureId }, { token: CompositionId }, { token: SchemaReadModelRootId }, { token: StructurePublisher }, { token: PagingPublisher }, { token: PagingEventRepository }, { token: SortingPublisher }, { token: SearchPublisher }, { token: SourcePublisher }, { token: SourceEventService }, { token: SchemaPublisher }, { token: CompositionPublisher }, { token: CompositionEventRepository }, { token: FormationEventRepository }, { token: StructureEditModeArchive }, { token: StructureCellEditArchive }, { token: StructureInfoPanelConfigService }, { token: StructureCellEditStore }, { token: ColumnFieldFactory }, { token: FormationPublisher }, { token: SearchEventRepository }, { token: StructureHeaderBottomEnabledArchive }, { token: SchemaEventRepository }, { token: TranslationFacade }, { token: StructureInitialValuesReadyArchive }], target: i0.ɵɵFactoryTarget.Directive });\n static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"17.0.2\", type: StructureGateway, inputs: { maxHeight: \"maxHeight\", width: \"width\", rowHeight: \"rowHeight\", autoResizeWidth: \"autoResizeWidth\", source: \"source\", columns: \"columns\", editMode: \"editMode\", cellEditing: \"cellEditing\", theme: \"theme\" }, outputs: { themeChanged: \"themeChanged\", columnsChanged: \"columnsChanged\", containerWidthChanged: \"containerWidthChanged\", sourceEdited: \"sourceEdited\", cellEditEntered: \"cellEditEntered\", cellEditCanceled: \"cellEditCanceled\", cellEditSubmitted: \"cellEditSubmitted\" }, usesInheritance: true, usesOnChanges: true, ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureGateway, decorators: [{\n type: Directive\n }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: ColumnAutoConfigurator }, { type: StructureId }, { type: CompositionId }, { type: SchemaReadModelRootId }, { type: StructurePublisher }, { type: PagingPublisher }, { type: PagingEventRepository }, { type: SortingPublisher }, { type: SearchPublisher }, { type: SourcePublisher }, { type: SourceEventService }, { type: SchemaPublisher }, { type: CompositionPublisher }, { type: CompositionEventRepository }, { type: FormationEventRepository }, { type: StructureEditModeArchive }, { type: StructureCellEditArchive }, { type: StructureInfoPanelConfigService }, { type: StructureCellEditStore }, { type: ColumnFieldFactory }, { type: FormationPublisher }, { type: SearchEventRepository }, { type: StructureHeaderBottomEnabledArchive }, { type: SchemaEventRepository }, { type: TranslationFacade }, { type: StructureInitialValuesReadyArchive }], propDecorators: { maxHeight: [{\n type: Input\n }], width: [{\n type: Input\n }], rowHeight: [{\n type: Input\n }], autoResizeWidth: [{\n type: Input\n }], source: [{\n type: Input\n }], columns: [{\n type: Input\n }], editMode: [{\n type: Input\n }], cellEditing: [{\n type: Input\n }], theme: [{\n type: Input\n }], themeChanged: [{\n type: Output\n }], columnsChanged: [{\n type: Output\n }], containerWidthChanged: [{\n type: Output\n }], sourceEdited: [{\n type: Output\n }], cellEditEntered: [{\n type: Output\n }], cellEditCanceled: [{\n type: Output\n }], cellEditSubmitted: [{\n type: Output\n }] } });\n\nclass StructureColumnMenuConfig {\n enabled;\n sort;\n filter;\n columnsManager;\n mainMenu = 'Menu';\n filterMenu = 'Filter';\n columnsMenu = 'Columns';\n constructor(enabled = false, sort = true, filter = false, columnsManager = false) {\n this.enabled = enabled;\n this.sort = sort;\n this.filter = filter;\n this.columnsManager = columnsManager;\n }\n static default() {\n return new StructureColumnMenuConfig();\n }\n static fromConfig(config) {\n return new StructureColumnMenuConfig(config.enabled, config.sort, config.filter, config.columnsManager);\n }\n isEnabled() {\n return this.enabled &&\n (this.sort || this.filter || this.columnsManager);\n }\n isMainEnabled() {\n return this.sort;\n }\n isSortingEnabled() {\n return this.sort;\n }\n isFilteringEnabled() {\n return this.filter;\n }\n isColumnManagerEnabled() {\n return this.columnsManager;\n }\n getMenus() {\n const menus = [];\n if (this.isMainEnabled()) {\n menus.push(this.getMainMenu());\n }\n if (this.isFilteringEnabled()) {\n menus.push(this.getFilterMenu());\n }\n if (this.isColumnManagerEnabled()) {\n menus.push(this.getColumnMenu());\n }\n return menus;\n }\n getActiveMenu() {\n return this.getMenus()[0];\n }\n getMainMenu() {\n return this.mainMenu;\n }\n getFilterMenu() {\n return this.filterMenu;\n }\n getColumnMenu() {\n return this.columnsMenu;\n }\n setMainMenu(mainMenu) {\n this.mainMenu = mainMenu;\n }\n setFilterMenu(filterMenu) {\n this.filterMenu = filterMenu;\n }\n setColumnsMenu(columnsMenu) {\n this.columnsMenu = columnsMenu;\n }\n}\n\nclass StructureColumnMenuConfigArchive extends Archive {\n constructor() {\n super(StructureColumnMenuConfig.default());\n }\n nextConfig(config) {\n const menuConfig = StructureColumnMenuConfig.fromConfig(config);\n this.next(menuConfig);\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureColumnMenuConfigArchive, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureColumnMenuConfigArchive });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureColumnMenuConfigArchive, decorators: [{\n type: Injectable\n }], ctorParameters: () => [] });\n\nclass StructureCellEditCloseAllService {\n closeAll$ = new HermesSubject();\n closeAll() {\n this.closeAll$.next();\n }\n onCloseAll() {\n return this.closeAll$.toObservable();\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureCellEditCloseAllService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureCellEditCloseAllService });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureCellEditCloseAllService, decorators: [{\n type: Injectable\n }] });\n\nclass StructureHeaderTopEnabledArchive extends Archive {\n constructor() {\n super(true);\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureHeaderTopEnabledArchive, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureHeaderTopEnabledArchive });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureHeaderTopEnabledArchive, decorators: [{\n type: Injectable\n }], ctorParameters: () => [] });\n\nclass StructureRowDetailConfigArchive extends Archive {\n constructor() {\n super({\n enabled: false,\n template: (item => 'Detail View')\n });\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureRowDetailConfigArchive, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureRowDetailConfigArchive });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureRowDetailConfigArchive, decorators: [{\n type: Injectable\n }], ctorParameters: () => [] });\n\nconst structureRowDetailViewItem = new InjectionToken('structureRowDetailViewItem');\nconst structureRowDetailViewTemplate = new InjectionToken('structureRowDetailViewTemplate');\n\nclass DynamicallyCreatedComponent extends GuiComponent {\n subClassConstructor;\n constructor(elRef) {\n super(elRef);\n this.subClassConstructor = this.constructor;\n if (this.hasInputs()) {\n this.throwError('it cannot have properties annotated with @Inputs().');\n }\n }\n hasInputs() {\n return !this.isEmpty(this.constructor.ɵcmp.inputs);\n }\n throwError(reason) {\n throw new Error(`Component \"${this.subClassConstructor.name}\" is a DynamicallyCreatedComponent, ${reason}.`);\n }\n isEmpty(obj) {\n for (const key in obj) {\n if (obj.hasOwnProperty(key))\n return false;\n }\n return true;\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: DynamicallyCreatedComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });\n static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"17.0.2\", type: DynamicallyCreatedComponent, usesInheritance: true, ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: DynamicallyCreatedComponent, decorators: [{\n type: Directive\n }], ctorParameters: () => [{ type: i0.ElementRef }] });\n\nclass StructureRowDetailViewComponent extends DynamicallyCreatedComponent {\n item;\n template;\n sanitizer;\n selectedRowValue;\n safeHTML;\n constructor(elRef, item, template, sanitizer) {\n super(elRef);\n this.item = item;\n this.template = template;\n this.sanitizer = sanitizer;\n this.safeHTML = this.sanitizer.bypassSecurityTrustHtml(this.template(this.item.getItem(), this.item.getIndex()));\n this.selectedRowValue = this.item.getItem();\n }\n getSelectorName() {\n return 'gui-row-detail';\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureRowDetailViewComponent, deps: [{ token: i0.ElementRef }, { token: structureRowDetailViewItem }, { token: structureRowDetailViewTemplate }, { token: i1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"17.0.2\", type: StructureRowDetailViewComponent, selector: \"div[gui-row-detail]\", usesInheritance: true, ngImport: i0, template: \"
\\n\", changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureRowDetailViewComponent, decorators: [{\n type: Component,\n args: [{ selector: 'div[gui-row-detail]', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: \"
\\n\" }]\n }], ctorParameters: () => [{ type: i0.ElementRef }, { type: SelectedRow, decorators: [{\n type: Inject,\n args: [structureRowDetailViewItem]\n }] }, { type: undefined, decorators: [{\n type: Inject,\n args: [structureRowDetailViewTemplate]\n }] }, { type: i1.DomSanitizer }] });\n\nclass StructureRowDetailService extends Reactive {\n injector;\n structureId;\n structureDetailViewConfigArchive;\n formationEventService;\n drawerService;\n enabled = false;\n config;\n elementRef;\n constructor(injector, structureId, structureDetailViewConfigArchive, formationEventService, drawerService) {\n super();\n this.injector = injector;\n this.structureId = structureId;\n this.structureDetailViewConfigArchive = structureDetailViewConfigArchive;\n this.formationEventService = formationEventService;\n this.drawerService = drawerService;\n }\n init(ref) {\n this.elementRef = ref;\n this.structureDetailViewConfigArchive\n .on()\n .pipe(this.hermesTakeUntil())\n .subscribe((config) => {\n this.config = config;\n if (config.enabled === true) {\n this.turnOn();\n }\n else if (config.enabled === false) {\n this.turnOff();\n }\n });\n this.formationEventService\n .onItemSelected(this.structureId)\n .pipe(this.hermesTakeUntil())\n .subscribe((items) => {\n if (!this.enabled) {\n return;\n }\n this.drawerService.close();\n if (items.length === 0) {\n return;\n }\n const item = items[0];\n const injector = Injector.create({\n parent: this.injector,\n providers: [\n { provide: structureRowDetailViewItem, useValue: item },\n { provide: structureRowDetailViewTemplate, useValue: this.config.template }\n ]\n });\n this.drawerService.open({\n appendToElement: this.elementRef,\n component: StructureRowDetailViewComponent,\n injector: injector\n });\n });\n }\n turnOn() {\n this.enabled = true;\n }\n turnOff() {\n this.enabled = false;\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureRowDetailService, deps: [{ token: i0.Injector }, { token: StructureId }, { token: StructureRowDetailConfigArchive }, { token: FormationEventRepository }, { token: i1$1.FabricDrawerService }], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureRowDetailService });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureRowDetailService, decorators: [{\n type: Injectable\n }], ctorParameters: () => [{ type: i0.Injector }, { type: StructureId }, { type: StructureRowDetailConfigArchive }, { type: FormationEventRepository }, { type: i1$1.FabricDrawerService }] });\n\nvar PagingPosition;\n(function (PagingPosition) {\n PagingPosition[PagingPosition[\"TOP\"] = 0] = \"TOP\";\n PagingPosition[PagingPosition[\"BOTTOM\"] = 1] = \"BOTTOM\";\n})(PagingPosition || (PagingPosition = {}));\n\nvar CssClass;\n(function (CssClass) {\n CssClass[\"SELECTED\"] = \"selected\";\n CssClass[\"PAGING_TOP_CLASS_NAME\"] = \"gui-paging-top\";\n CssClass[\"PAGING_BOTTOM_CLASS_NAME\"] = \"gui-paging-bottom\";\n})(CssClass || (CssClass = {}));\n\nclass GuiState {\n state = {};\n state$ = new HermesReplaySubject();\n destroy$ = new HermesReplaySubject();\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n setValue(state) {\n this.state = Object.assign({}, this.state, state);\n this.state$.next(this.state);\n }\n getValue(key) {\n if (key !== undefined) {\n return this.state[key];\n }\n else {\n return this.state;\n }\n }\n select(key) {\n let preparedState$ = this.state$;\n if (key !== undefined) {\n preparedState$ = this.state$.pipe(hermesMap((state) => {\n return state[key];\n }));\n }\n return preparedState$.pipe(hermesDistinctUntilChanged());\n }\n connect(arg, value$) {\n if (typeof arg === 'string') {\n value$\n .pipe(hermesTakeUntil(this.destroy$))\n .subscribe((value) => {\n this.setPartialState(arg, value);\n });\n }\n else {\n arg\n .pipe(hermesTakeUntil(this.destroy$))\n .subscribe((state) => {\n this.setValue(state);\n });\n }\n }\n setPartialState(key, value) {\n const newState = {};\n newState[key] = value;\n this.state = Object.assign({}, this.state, newState);\n this.state$.next(this.state);\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: GuiState, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: GuiState });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: GuiState, decorators: [{\n type: Injectable\n }] });\n\nclass StreamCloser {\n unsubscribe$ = new HermesSubject();\n constructor() {\n }\n takeUntil() {\n return hermesTakeUntil(this.unsubscribe$);\n }\n unsubscribe() {\n if (this.unsubscribe$.isCompleted) {\n return;\n }\n this.unsubscribe$.next();\n this.unsubscribe$.complete();\n }\n}\n\nclass Gate {\n streamCloser = new StreamCloser();\n hermesUnsubscribe$ = new HermesSubject();\n constructor() {\n }\n ngOnDestroy() {\n this.streamCloser.unsubscribe();\n this.hermesUnsubscribe();\n }\n isDefined(propertyName, changes) {\n return changes[propertyName] !== undefined && changes[propertyName].currentValue !== undefined;\n }\n subscribeAndEmit(stream$, emitter) {\n stream$\n .pipe(this.hermesTakeUntil())\n .subscribe((value) => {\n emitter.emit(value);\n });\n }\n unsubscribe() {\n this.streamCloser.unsubscribe();\n }\n hermesUnsubscribe() {\n this.hermesUnsubscribe$.next();\n this.hermesUnsubscribe$.complete();\n }\n hermesTakeUntil() {\n return hermesTakeUntil(this.hermesUnsubscribe$);\n }\n takeUntil() {\n return this.streamCloser.takeUntil();\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: Gate, deps: [], target: i0.ɵɵFactoryTarget.Directive });\n static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"17.0.2\", type: Gate, ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: Gate, decorators: [{\n type: Directive\n }], ctorParameters: () => [] });\n\nclass StaticComponent extends GuiComponent {\n changeDetectorRef;\n constructor(elementRef, changeDetectorRef) {\n super(elementRef);\n this.changeDetectorRef = changeDetectorRef;\n }\n ngOnInit() {\n this.changeDetectorRef.detach();\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StaticComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive });\n static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"17.0.2\", type: StaticComponent, usesInheritance: true, ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StaticComponent, decorators: [{\n type: Directive\n }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }] });\n\nclass IconComponent extends StaticComponent {\n constructor(elementRef, changeDetectorRef) {\n super(elementRef, changeDetectorRef);\n this.addClassToHost('gui-icon');\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: IconComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive });\n static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"17.0.2\", type: IconComponent, usesInheritance: true, ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: IconComponent, decorators: [{\n type: Directive\n }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }] });\n\n/**\n * https://netbasal.com/create-a-typed-version-of-simplechanges-in-angular-451f86593003\n */\n\nclass PureComponent extends GuiComponent {\n subClassConstructor;\n subClassNgOnInit;\n constructor(elementRef) {\n super(elementRef);\n this.subClassConstructor = this.constructor;\n this.subClassNgOnInit = this.ngOnInit;\n if (!this.hasConstructorOnlyElementRefInjected(arguments)) {\n this.throwError('it should not inject services');\n }\n if (this.subClassNgOnInit) {\n this.throwError('it should not use ngOnInit');\n }\n }\n hasConstructorOnlyElementRefInjected(args) {\n if (arguments.length > 1) {\n return false;\n }\n if (arguments.length === 1) {\n return this.isElementRef(arguments[0]);\n }\n return false;\n }\n isElementRef(elRef) {\n return elRef.nativeElement !== null;\n }\n throwError(reason) {\n throw new Error(`Component \"${this.subClassConstructor.name}\" is a PureComponent, ${reason}.`);\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: PureComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });\n static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"17.0.2\", type: PureComponent, usesInheritance: true, ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: PureComponent, decorators: [{\n type: Directive\n }], ctorParameters: () => [{ type: i0.ElementRef }] });\n\nfunction useReactiveContext(stream$, cd) {\n const unsub$ = new HermesSubject();\n let changeDetector;\n if (cd) {\n changeDetector = cd;\n }\n else {\n changeDetector = inject(ChangeDetectorRef);\n }\n let innerStream$;\n if (stream$) {\n innerStream$ = stream$.pipe(hermesTakeUntil(unsub$));\n }\n changeDetector.onDestroy(() => {\n unsub$.next();\n unsub$.complete();\n });\n const context = {\n connect: (stream$) => {\n innerStream$ = stream$.pipe(hermesTakeUntil(unsub$));\n return context;\n },\n subscribe(next, error, complete) {\n return innerStream$.subscribe(next, error, complete);\n },\n subscribeAndRender(next, error, complete) {\n return innerStream$.subscribe((v) => {\n next(v);\n changeDetector.detectChanges();\n }, error, complete);\n },\n unsubscribe() {\n unsub$.next();\n unsub$.complete();\n }\n };\n return context;\n}\n\nclass CssClassModifier {\n classModifier = new ClassModifier();\n select(htmlElement) {\n this.classModifier.getElement(htmlElement).add(CssClass.SELECTED);\n }\n unselect(htmlElement) {\n this.classModifier.getElement(htmlElement).remove(CssClass.SELECTED);\n }\n add(htmlElement, clazzName) {\n this.classModifier.getElement(htmlElement).add(clazzName);\n }\n remove(htmlElement, clazzName) {\n this.classModifier.getElement(htmlElement).remove(clazzName);\n }\n toggle(htmlElement) {\n }\n}\n\nclass PagingWarehouse {\n constructor() {\n }\n}\n\nclass PagingDisplayModeArchive extends Archive {\n constructor() {\n super(PagingDisplayMode.BASIC);\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: PagingDisplayModeArchive, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: PagingDisplayModeArchive });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: PagingDisplayModeArchive, decorators: [{\n type: Injectable\n }], ctorParameters: () => [] });\n\nclass GuiSubscriber {\n destroy$ = new HermesReplaySubject(1);\n subscription;\n subscribe(obs$, next) {\n if (this.subscription !== undefined) {\n this.subscription.unsubscribe();\n }\n this.subscription =\n obs$\n .pipe(hermesDistinctUntilChanged(), hermesTakeUntil(this.destroy$))\n .subscribe((v) => next(v), (error) => this.onError(error), () => this.onComplete());\n }\n destroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n onError(_error) {\n }\n onComplete() {\n }\n}\n\nclass GuiLetViewChanger {\n cd;\n vcr;\n template;\n constructor(cd, vcr, template) {\n this.cd = cd;\n this.vcr = vcr;\n this.template = template;\n }\n onNext(v) {\n this.vcr.clear();\n this.vcr.createEmbeddedView(this.template, { $implicit: v });\n this.cd.detectChanges();\n }\n}\n\nclass GuiLetDirective {\n subscriber;\n cd;\n vcr;\n template;\n guiLet;\n guiLetViewChanger;\n constructor(subscriber, cd, vcr, template) {\n this.subscriber = subscriber;\n this.cd = cd;\n this.vcr = vcr;\n this.template = template;\n this.guiLetViewChanger = new GuiLetViewChanger(this.cd, this.vcr, this.template);\n }\n ngOnChanges(changes) {\n if (changes['guiLet'] !== undefined) {\n this.subscriber\n .subscribe(this.guiLet, (v) => {\n this.guiLetViewChanger.onNext(v);\n });\n }\n }\n ngOnDestroy() {\n this.subscriber.destroy();\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: GuiLetDirective, deps: [{ token: GuiSubscriber }, { token: i0.ChangeDetectorRef }, { token: i0.ViewContainerRef }, { token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });\n static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"17.0.2\", type: GuiLetDirective, selector: \"[guiLet]\", inputs: { guiLet: \"guiLet\" }, providers: [\n GuiSubscriber\n ], usesOnChanges: true, ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: GuiLetDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[guiLet]',\n providers: [\n GuiSubscriber\n ]\n }]\n }], ctorParameters: () => [{ type: GuiSubscriber }, { type: i0.ChangeDetectorRef }, { type: i0.ViewContainerRef }, { type: i0.TemplateRef }], propDecorators: { guiLet: [{\n type: Input\n }] } });\n\nclass TranslationPipe {\n changeDetectorRef;\n translationService;\n actualTranslationValue = '';\n subscription;\n constructor(changeDetectorRef, translationService) {\n this.changeDetectorRef = changeDetectorRef;\n this.translationService = translationService;\n }\n ngOnDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n transform(key) {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n this.subscription =\n this.translationService\n .onTranslation()\n .subscribe((translation) => {\n const value = translation[key];\n if (!value) {\n this.actualTranslationValue = key;\n }\n this.actualTranslationValue = value;\n this.changeDetectorRef.markForCheck();\n });\n return this.actualTranslationValue;\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: TranslationPipe, deps: [{ token: i0.ChangeDetectorRef }, { token: TranslationFacade }], target: i0.ɵɵFactoryTarget.Pipe });\n static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"17.0.2\", ngImport: i0, type: TranslationPipe, name: \"guiTranslate\", pure: false });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: TranslationPipe, decorators: [{\n type: Pipe,\n args: [{\n name: 'guiTranslate',\n pure: false\n }]\n }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: TranslationFacade }] });\n\nclass PagingNavigatorComponent extends PureComponent {\n paging;\n sourceSize;\n nextPageChanged = new EventEmitter();\n prevPageChanged = new EventEmitter();\n prevDisabled = false;\n nextDisabled = false;\n constructor(elementRef) {\n super(elementRef);\n }\n ngOnChanges() {\n this.calculatePrev();\n this.calculateNext();\n }\n prevPage() {\n this.prevPageChanged.emit();\n }\n nextPage() {\n this.nextPageChanged.emit();\n }\n getSelectorName() {\n return 'gui-paging-navigator';\n }\n calculatePrev() {\n if (!this.paging) {\n return;\n }\n this.prevDisabled = this.paging.isPrevPageDisabled();\n }\n calculateNext() {\n if (!this.paging && !this.sourceSize) {\n return;\n }\n this.nextDisabled = this.paging.isNextPageDisabled();\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: PagingNavigatorComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"17.0.2\", type: PagingNavigatorComponent, selector: \"div[gui-paging-navigator][paging]\", inputs: { paging: \"paging\", sourceSize: \"sourceSize\" }, outputs: { nextPageChanged: \"nextPageChanged\", prevPageChanged: \"prevPageChanged\" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: \"\\n\\t\\n\\n\\t\\n\\n\", dependencies: [{ kind: \"component\", type: i1$1.FabricButtonComponent, selector: \"button[gui-button], a[gui-button]\", inputs: [\"link\", \"text\"] }, { kind: \"component\", type: i1$1.FabricButtonGroupComponent, selector: \"gui-button-group\" }, { kind: \"pipe\", type: TranslationPipe, name: \"guiTranslate\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: PagingNavigatorComponent, decorators: [{\n type: Component,\n args: [{ selector: 'div[gui-paging-navigator][paging]', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: \"\\n\\t\\n\\n\\t\\n\\n\" }]\n }], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { paging: [{\n type: Input\n }], sourceSize: [{\n type: Input\n }], nextPageChanged: [{\n type: Output\n }], prevPageChanged: [{\n type: Output\n }] } });\n\nclass PagingSelectComponent extends PureComponent {\n paging;\n pageSizeChanged = new EventEmitter();\n selectPageSizes;\n selectPageSize;\n constructor(elementRef) {\n super(elementRef);\n }\n ngOnChanges(changes) {\n ifChanged(changes.paging, () => {\n if (this.paging) {\n this.selectPageSizes = this.getSelectPageSizes();\n this.selectPageSize = this.getSelectPageSize(this.paging.getPageSize());\n }\n });\n }\n changePageSize(pageSize) {\n this.pageSizeChanged.emit(+pageSize.value);\n }\n getSelectorName() {\n return 'gui-paging-select';\n }\n getSelectPageSizes() {\n const selectPageSizes = [], pageSizes = this.paging.getPageSizes();\n pageSizes.forEach((pageSize) => {\n const selectOption = this.getSelectPageSize(pageSize);\n selectPageSizes.push(selectOption);\n });\n return selectPageSizes;\n }\n getSelectPageSize(pageSize) {\n return { name: pageSize.toString(), value: pageSize.toString() };\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: PagingSelectComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"17.0.2\", type: PagingSelectComponent, selector: \"div[gui-paging-select][paging]\", inputs: { paging: \"paging\" }, outputs: { pageSizeChanged: \"pageSizeChanged\" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: \"\\n\\t{{ 'pagingItemsPerPage' | guiTranslate }}\\n\\n\\n\\n\\n\", dependencies: [{ kind: \"component\", type: i1$1.FabricSelectComponent, selector: \"gui-select\", inputs: [\"options\", \"placeholder\", \"selected\", \"width\", \"disabled\"], outputs: [\"optionChanged\"] }, { kind: \"pipe\", type: TranslationPipe, name: \"guiTranslate\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: PagingSelectComponent, decorators: [{\n type: Component,\n args: [{ selector: 'div[gui-paging-select][paging]', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: \"\\n\\t{{ 'pagingItemsPerPage' | guiTranslate }}\\n\\n\\n\\n\\n\" }]\n }], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { paging: [{\n type: Input\n }], pageSizeChanged: [{\n type: Output\n }] } });\n\nclass PagingStatsComponent extends PureComponent {\n paging;\n sourceSize;\n firstItemIndex;\n lastItemIndex;\n constructor(elementRef) {\n super(elementRef);\n this.addClassToHost('gui-mx-6');\n }\n ngOnChanges() {\n this.calculate();\n }\n calculate() {\n if (this.paging) {\n this.firstItemIndex = this.paging.getStart();\n this.lastItemIndex = this.paging.getEnd();\n this.sourceSize = this.paging.getSourceSize();\n }\n }\n isSourceNotEmpty() {\n return this.sourceSize > 0;\n }\n getSelectorName() {\n return 'gui-paging-stats';\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: PagingStatsComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"17.0.2\", type: PagingStatsComponent, selector: \"div[gui-paging-stats][paging]\", inputs: { paging: \"paging\" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: \"\\n\\t\\n\\t\\t{{firstItemIndex}}\\n\\t\\t-\\n\\t\\t{{lastItemIndex}}\\n\\t\\n\\t\\n\\t\\t{{ 'pagingOf' | guiTranslate }}\\n\\t\\n\\t\\n\\t\\t{{sourceSize}}\\n\\t\\n\\n\\n\\n\\t\\n\\t\\t{{'pagingNoItems' | guiTranslate}}\\n\\t\\n\\n\", dependencies: [{ kind: \"directive\", type: i4.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { kind: \"pipe\", type: TranslationPipe, name: \"guiTranslate\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: PagingStatsComponent, decorators: [{\n type: Component,\n args: [{ selector: 'div[gui-paging-stats][paging]', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: \"\\n\\t\\n\\t\\t{{firstItemIndex}}\\n\\t\\t-\\n\\t\\t{{lastItemIndex}}\\n\\t\\n\\t\\n\\t\\t{{ 'pagingOf' | guiTranslate }}\\n\\t\\n\\t\\n\\t\\t{{sourceSize}}\\n\\t\\n\\n\\n\\n\\t\\n\\t\\t{{'pagingNoItems' | guiTranslate}}\\n\\t\\n\\n\" }]\n }], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { paging: [{\n type: Input\n }] } });\n\nclass AlternativePagingNavigatorComponent extends PureComponent {\n structureId;\n pagingCommandInvoker;\n paging;\n sourceSize;\n nextPageChanged = new EventEmitter();\n prevPageChanged = new EventEmitter();\n prevDisabled = false;\n nextDisabled = false;\n constructor(elRef, structureId, pagingCommandInvoker) {\n super(elRef);\n this.structureId = structureId;\n this.pagingCommandInvoker = pagingCommandInvoker;\n }\n ngOnChanges() {\n this.calculatePrev();\n this.calculateNext();\n }\n prevPage() {\n this.prevPageChanged.emit();\n }\n nextPage() {\n this.nextPageChanged.emit();\n }\n firstPage() {\n this.pagingCommandInvoker.goToPage(1, this.paging.getPage(), this.structureId);\n }\n lastPage() {\n const numberOfPages = Math.ceil(this.sourceSize / this.paging.getPageSize());\n this.pagingCommandInvoker.goToPage(numberOfPages, this.paging.getPage(), this.structureId);\n }\n getSelectorName() {\n return 'gui-paging-alternative-navigator';\n }\n calculatePrev() {\n if (!this.paging) {\n return;\n }\n this.prevDisabled = this.paging.isPrevPageDisabled();\n }\n calculateNext() {\n if (!this.paging && !this.sourceSize) {\n return;\n }\n this.nextDisabled = this.paging.isNextPageDisabled();\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: AlternativePagingNavigatorComponent, deps: [{ token: i0.ElementRef }, { token: StructureId }, { token: PagingPublisher }], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"17.0.2\", type: AlternativePagingNavigatorComponent, selector: \"div[gui-paging-alternative-navigator][paging][sourceSize]\", inputs: { paging: \"paging\", sourceSize: \"sourceSize\" }, outputs: { nextPageChanged: \"nextPageChanged\", prevPageChanged: \"prevPageChanged\" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: \"\\n\\n\\n\\n\\n\\n\\n\\n\\n\", dependencies: [{ kind: \"component\", type: i1$1.FabricButtonComponent, selector: \"button[gui-button], a[gui-button]\", inputs: [\"link\", \"text\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: AlternativePagingNavigatorComponent, decorators: [{\n type: Component,\n args: [{ selector: 'div[gui-paging-alternative-navigator][paging][sourceSize]', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: \"\\n\\n\\n\\n\\n\\n\\n\\n\\n\" }]\n }], ctorParameters: () => [{ type: i0.ElementRef }, { type: StructureId }, { type: PagingPublisher }], propDecorators: { paging: [{\n type: Input\n }], sourceSize: [{\n type: Input\n }], nextPageChanged: [{\n type: Output\n }], prevPageChanged: [{\n type: Output\n }] } });\n\nclass AlternativePagingPagesComponent extends PureComponent {\n structureId;\n pagingCommandService;\n paging;\n sourceSize = 0;\n currentPage;\n pages;\n numberOfVisiblePages = 3;\n constructor(elRef, structureId, pagingCommandService) {\n super(elRef);\n this.structureId = structureId;\n this.pagingCommandService = pagingCommandService;\n }\n ngOnChanges(changes) {\n this.calculate();\n }\n calculate() {\n if (this.paging && this.sourceSize) {\n const numberOfPages = Math.ceil(this.sourceSize / this.paging.getPageSize());\n this.currentPage = this.paging.getPage();\n this.pages = [];\n if (this.pages.length <= numberOfPages) {\n for (let i = 1; i <= numberOfPages; i++) {\n this.pages.push(i);\n }\n }\n }\n }\n isSourceNotEmpty() {\n return this.sourceSize > 0;\n }\n goToPage(pageNumber) {\n const currentPage = this.paging.getPage();\n this.pagingCommandService.goToPage(pageNumber, currentPage, this.structureId);\n }\n calculateVisiblePages(page) {\n return this.paging.calculateVisiblePages(this.currentPage, this.numberOfVisiblePages, page);\n }\n activePage(page) {\n return this.currentPage === page;\n }\n getSelectorName() {\n return 'gui-paging-alternative-pages';\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: AlternativePagingPagesComponent, deps: [{ token: i0.ElementRef }, { token: StructureId }, { token: PagingPublisher }], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"17.0.2\", type: AlternativePagingPagesComponent, selector: \"div[gui-paging-alternative-pages][paging]\", inputs: { paging: \"paging\", sourceSize: \"sourceSize\" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: \"\\n\\n\\t
\\n\\t\\t
\\n\\t\\t\\t
\\n\\t\\t\\t\\t{{page}}\\n\\t\\t\\t
\\n\\t\\t
\\n\\t
\\n\\n
\\n\\n\\n\\t\\n\\t\\t{{'pagingNoItems' | guiTranslate}}\\n\\t\\n\\n\", dependencies: [{ kind: \"directive\", type: i4.NgForOf, selector: \"[ngFor][ngForOf]\", inputs: [\"ngForOf\", \"ngForTrackBy\", \"ngForTemplate\"] }, { kind: \"directive\", type: i4.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { kind: \"pipe\", type: TranslationPipe, name: \"guiTranslate\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: AlternativePagingPagesComponent, decorators: [{\n type: Component,\n args: [{ selector: 'div[gui-paging-alternative-pages][paging]', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: \"\\n\\n\\t
\\n\\t\\t
\\n\\t\\t\\t
\\n\\t\\t\\t\\t{{page}}\\n\\t\\t\\t
\\n\\t\\t
\\n\\t
\\n\\n
\\n\\n\\n\\t\\n\\t\\t{{'pagingNoItems' | guiTranslate}}\\n\\t\\n\\n\" }]\n }], ctorParameters: () => [{ type: i0.ElementRef }, { type: StructureId }, { type: PagingPublisher }], propDecorators: { paging: [{\n type: Input\n }], sourceSize: [{\n type: Input\n }] } });\n\nclass PagingComponent extends GuiComponent {\n elRef;\n cssClassModifier;\n structureId;\n pagingWarehouse;\n pagingCommandInvoker;\n sourceWarehouse;\n pagingDisplayModeArchive;\n position;\n minimal;\n state = inject((GuiState));\n state$ = this.state.select();\n constructor(elRef, cssClassModifier, structureId, pagingWarehouse, pagingCommandInvoker, sourceWarehouse, pagingDisplayModeArchive) {\n super(elRef);\n this.elRef = elRef;\n this.cssClassModifier = cssClassModifier;\n this.structureId = structureId;\n this.pagingWarehouse = pagingWarehouse;\n this.pagingCommandInvoker = pagingCommandInvoker;\n this.sourceWarehouse = sourceWarehouse;\n this.pagingDisplayModeArchive = pagingDisplayModeArchive;\n this.addClassToHost('gui-flex');\n this.addClassToHost('gui-justify-end');\n this.addClassToHost('gui-items-center');\n this.addClassToHost('gui-p-4');\n this.state.setValue({\n alternativeDisplay: false,\n isPagingVisible: false\n });\n this.state.connect('sourceSize', this.sourceWarehouse.onOriginSize(this.structureId));\n this.state.connect('alternativeDisplay', this.selectIsAdvancedPagingEnabled());\n this.state.connect('paging', this.pagingWarehouse.onPaging(this.structureId));\n this.state.connect('isPagingVisible', this.selectIsPagingVisible());\n }\n ngOnChanges(changes) {\n if (changes.position) {\n if (this.position === PagingPosition.BOTTOM) {\n this.cssClassModifier.remove(this.elRef.nativeElement, CssClass.PAGING_TOP_CLASS_NAME);\n this.cssClassModifier.add(this.elRef.nativeElement, CssClass.PAGING_BOTTOM_CLASS_NAME);\n }\n else {\n this.cssClassModifier.remove(this.elRef.nativeElement, CssClass.PAGING_BOTTOM_CLASS_NAME);\n this.cssClassModifier.add(this.elRef.nativeElement, CssClass.PAGING_TOP_CLASS_NAME);\n }\n }\n }\n changePageSize(pageSize) {\n this.pagingCommandInvoker.changePageSize(pageSize, this.structureId);\n }\n nextPage(sourceSize) {\n if (!sourceSize) {\n return;\n }\n this.pagingCommandInvoker.nextPage(this.structureId);\n }\n prevPage() {\n this.pagingCommandInvoker.prevPage(this.structureId);\n }\n getSelectorName() {\n return 'gui-paging';\n }\n selectIsPagingVisible() {\n return this.pagingWarehouse\n .onPaging(this.structureId)\n .pipe(hermesMap((paging) => {\n return this.mapIsPagingVisible(paging);\n }));\n }\n mapIsPagingVisible(paging) {\n return paging && paging.isEnabled() &&\n (((this.position === PagingPosition.TOP) && paging.isPagerTop()) ||\n ((this.position === PagingPosition.BOTTOM) && paging.isPagerBottom()));\n }\n selectIsAdvancedPagingEnabled() {\n return this.pagingDisplayModeArchive\n .on()\n .pipe(hermesMap((mode) => {\n return mode === PagingDisplayMode.ADVANCED;\n }));\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: PagingComponent, deps: [{ token: i0.ElementRef }, { token: CssClassModifier }, { token: StructureId }, { token: PagingWarehouse }, { token: PagingPublisher }, { token: SourceWarehouse }, { token: PagingDisplayModeArchive }], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"17.0.2\", type: PagingComponent, selector: \"div[gui-paging][position]\", inputs: { position: \"position\", minimal: \"minimal\" }, providers: [\n GuiState\n ], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: \"\\n\\n\\t\\n\\n\\t\\t\\n\\n\\t\\t\\t
\\n\\t\\t\\t
\\n\\n\\t\\t\\t
\\n\\t\\t\\t
\\n\\n\\t\\t\\t
\\n\\t\\t\\t
\\n\\n\\t\\t
\\n\\n\\t\\t\\n\\n\\t\\t\\t
\\n\\t\\t\\t
\\n\\n\\t\\t\\t
\\n\\t\\t\\t
\\n\\n\\t\\t
\\n\\n\\t
\\n\\n\\t\\n\\n\\t\\t
\\n\\t\\t
\\n\\n\\t\\t
\\n\\n\\t\\t\\t
\\n\\t\\t\\t
\\n\\n\\t\\t
\\n\\n\\t
\\n
\\n\", styles: [\".gui-paging-alternative-navigator .gui-button{-ms-flex-line-pack:center;align-content:center;background:transparent;display:-ms-flexbox;display:flex;font-size:14px;line-height:21px;margin:0 2px;padding:0}.gui-paging-alternative-navigator .gui-button svg{-ms-flex-item-align:center;align-self:center;height:12px;margin:-1px 2px 0;width:auto}.gui-paging-alternative-navigator .gui-button svg path{stroke:#ccc;transition:stroke .3s ease-in-out}.gui-paging-alternative-navigator .gui-button:hover{background:transparent}.gui-paging-alternative-navigator .gui-button:hover svg path{stroke:#333}.gui-paging-alternative-navigator .gui-button:disabled svg{opacity:.4}.gui-paging-alternative-navigator .gui-material .gui-button{padding:2px 16px}.gui-paging-alternative-pages{line-height:21px}.gui-paging-alternative-pages .gui-paging-page{display:none}.gui-paging-alternative-pages .gui-paging-visible-page .gui-paging-page{display:block;font-family:Arial,serif}.gui-paging-alternative-pages .gui-paging-visible-page.gui-paging-active-page{color:#333}.gui-paging-alternative-pages .gui-paging-visible-page.gui-paging-active-page .gui-paging-page{font-weight:700}.gui-paging-bottom{border-top:1px solid;border-top-color:inherit}.gui-paging-top{border-bottom:1px solid;border-bottom-color:inherit}\\n\", \".gui-generic .gui-paging,.gui-generic .gui-paging *{border-color:#2224261a;font-size:14px}\\n\"], dependencies: [{ kind: \"directive\", type: i4.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { kind: \"directive\", type: GuiLetDirective, selector: \"[guiLet]\", inputs: [\"guiLet\"] }, { kind: \"component\", type: PagingNavigatorComponent, selector: \"div[gui-paging-navigator][paging]\", inputs: [\"paging\", \"sourceSize\"], outputs: [\"nextPageChanged\", \"prevPageChanged\"] }, { kind: \"component\", type: PagingSelectComponent, selector: \"div[gui-paging-select][paging]\", inputs: [\"paging\"], outputs: [\"pageSizeChanged\"] }, { kind: \"component\", type: PagingStatsComponent, selector: \"div[gui-paging-stats][paging]\", inputs: [\"paging\"] }, { kind: \"component\", type: AlternativePagingNavigatorComponent, selector: \"div[gui-paging-alternative-navigator][paging][sourceSize]\", inputs: [\"paging\", \"sourceSize\"], outputs: [\"nextPageChanged\", \"prevPageChanged\"] }, { kind: \"component\", type: AlternativePagingPagesComponent, selector: \"div[gui-paging-alternative-pages][paging]\", inputs: [\"paging\", \"sourceSize\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: PagingComponent, decorators: [{\n type: Component,\n args: [{ selector: 'div[gui-paging][position]', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, providers: [\n GuiState\n ], template: \"\\n\\n\\t\\n\\n\\t\\t\\n\\n\\t\\t\\t
\\n\\t\\t\\t
\\n\\n\\t\\t\\t
\\n\\t\\t\\t
\\n\\n\\t\\t\\t
\\n\\t\\t\\t
\\n\\n\\t\\t
\\n\\n\\t\\t\\n\\n\\t\\t\\t
\\n\\t\\t\\t
\\n\\n\\t\\t\\t
\\n\\t\\t\\t
\\n\\n\\t\\t
\\n\\n\\t
\\n\\n\\t\\n\\n\\t\\t
\\n\\t\\t
\\n\\n\\t\\t
\\n\\n\\t\\t\\t
\\n\\t\\t\\t
\\n\\n\\t\\t
\\n\\n\\t
\\n
\\n\", styles: [\".gui-paging-alternative-navigator .gui-button{-ms-flex-line-pack:center;align-content:center;background:transparent;display:-ms-flexbox;display:flex;font-size:14px;line-height:21px;margin:0 2px;padding:0}.gui-paging-alternative-navigator .gui-button svg{-ms-flex-item-align:center;align-self:center;height:12px;margin:-1px 2px 0;width:auto}.gui-paging-alternative-navigator .gui-button svg path{stroke:#ccc;transition:stroke .3s ease-in-out}.gui-paging-alternative-navigator .gui-button:hover{background:transparent}.gui-paging-alternative-navigator .gui-button:hover svg path{stroke:#333}.gui-paging-alternative-navigator .gui-button:disabled svg{opacity:.4}.gui-paging-alternative-navigator .gui-material .gui-button{padding:2px 16px}.gui-paging-alternative-pages{line-height:21px}.gui-paging-alternative-pages .gui-paging-page{display:none}.gui-paging-alternative-pages .gui-paging-visible-page .gui-paging-page{display:block;font-family:Arial,serif}.gui-paging-alternative-pages .gui-paging-visible-page.gui-paging-active-page{color:#333}.gui-paging-alternative-pages .gui-paging-visible-page.gui-paging-active-page .gui-paging-page{font-weight:700}.gui-paging-bottom{border-top:1px solid;border-top-color:inherit}.gui-paging-top{border-bottom:1px solid;border-bottom-color:inherit}\\n\", \".gui-generic .gui-paging,.gui-generic .gui-paging *{border-color:#2224261a;font-size:14px}\\n\"] }]\n }], ctorParameters: () => [{ type: i0.ElementRef }, { type: CssClassModifier }, { type: StructureId }, { type: PagingWarehouse }, { type: PagingPublisher }, { type: SourceWarehouse }, { type: PagingDisplayModeArchive }], propDecorators: { position: [{\n type: Input\n }], minimal: [{\n type: Input\n }] } });\n\nclass Logger {\n}\n\nclass PageChangedEvent extends StructureDomainEvent {\n constructor(aggregateId) {\n super(aggregateId, null, 'PageChangedEvent');\n }\n}\n\nclass StructureAggregateEvent extends AggregateEvent {\n}\n\nclass PageChangedAggregateEvent extends StructureAggregateEvent {\n constructor(structureId) {\n super(structureId, 'PageChangedAggregateEvent');\n }\n toDomainEvent() {\n return new PageChangedEvent(this.getAggregateId());\n }\n}\n\nclass PagesizeChangedEvent extends StructureDomainEvent {\n constructor(aggregateId) {\n super(aggregateId, null, 'PagesizeChangedEvent');\n }\n}\n\nclass PagesizeChangedAggregateEvent extends StructureAggregateEvent {\n constructor(structureId) {\n super(structureId, 'PagesizeChangedAggregateEvent');\n }\n toDomainEvent() {\n return new PagesizeChangedEvent(this.getAggregateId());\n }\n}\n\nclass PagingManager {\n enabled;\n page;\n pageSize;\n pageSizes;\n pagerTop;\n pagerBottom;\n sourceSize;\n // TODO\n events = [];\n logger;\n constructor(enabled, page, pageSize, pageSizes, pagerTop, pagerBottom, sourceSize, logger) {\n this.enabled = enabled;\n this.page = page;\n this.pageSize = pageSize;\n this.pageSizes = pageSizes;\n this.pagerTop = pagerTop;\n this.pagerBottom = pagerBottom;\n this.sourceSize = sourceSize;\n this.logger = logger;\n }\n // TODO Remove\n static default(logger) {\n return new PagingManager(false, 1, 25, [10, 25, 50, 100], false, true, 0, logger);\n }\n // TODO Remove\n static fromConfig(paging, logger) {\n const defaultPagingDefinition = PagingManager.default(logger), enabled = paging.enabled || defaultPagingDefinition.isEnabled(), page = paging.page || defaultPagingDefinition.getPage(), pageSize = paging.pageSize || defaultPagingDefinition.getPageSize(), pageSizes = paging.pageSizes || defaultPagingDefinition.getPageSizes(), pagerTop = paging.pagerTop || defaultPagingDefinition.isPagerTop(), pagerBottom = paging.pagerBottom || defaultPagingDefinition.isPagerBottom();\n return new PagingManager(enabled, page, pageSize, pageSizes, pagerTop, pagerBottom, 0, logger);\n }\n isEnabled() {\n return this.enabled;\n }\n isDisabled() {\n return !this.enabled;\n }\n getPage() {\n return this.page;\n }\n getPageSize() {\n return this.pageSize;\n }\n getPageSizes() {\n return this.pageSizes;\n }\n isPagerTop() {\n if (this.isDisabled()) {\n return false;\n }\n return this.pagerTop;\n }\n isPagerBottom() {\n if (this.isDisabled()) {\n return false;\n }\n return this.pagerBottom;\n }\n getSourceSize() {\n return this.sourceSize;\n }\n change(pagingConfig) {\n if (pagingConfig.enabled !== undefined) {\n this.enabled = pagingConfig.enabled;\n }\n if (pagingConfig.page !== undefined) {\n this.page = pagingConfig.page;\n if (pagingConfig.enabled === undefined) {\n this.enabled = true;\n }\n }\n if (pagingConfig.pageSize !== undefined) {\n this.pageSize = pagingConfig.pageSize;\n if (pagingConfig.enabled === undefined) {\n this.enabled = true;\n }\n }\n if (pagingConfig.pageSizes !== undefined) {\n this.pageSizes = pagingConfig.pageSizes;\n if (pagingConfig.enabled === undefined) {\n this.enabled = true;\n }\n }\n if (pagingConfig.pagerTop !== undefined) {\n this.pagerTop = pagingConfig.pagerTop;\n if (pagingConfig.enabled === undefined) {\n this.enabled = true;\n }\n }\n if (pagingConfig.pagerBottom !== undefined) {\n this.pagerBottom = pagingConfig.pagerBottom;\n if (pagingConfig.enabled === undefined) {\n this.enabled = true;\n }\n }\n if (this.enabled === true &&\n pagingConfig.pagerTop === false &&\n pagingConfig.pagerBottom === false) {\n this.pagerBottom = true;\n this.logger.warn('Pagers cannot be turn off when paging is enabled.');\n }\n }\n setSourceSize(size) {\n this.sourceSize = size;\n }\n nextPage() {\n let nextPage = this.page;\n if (!this.isNextPageDisabled()) {\n nextPage += 1;\n }\n this.page = nextPage;\n }\n prevPage() {\n let prevPage = this.page;\n if (!this.isPrevPageDisabled()) {\n prevPage -= 1;\n }\n this.page = prevPage;\n }\n changePageSize(pageSize) {\n if (this.pageSizes.find((ps) => ps === pageSize)) {\n this.setPage(1);\n this.setPageSize(pageSize);\n }\n return this.events;\n }\n isNextPageDisabled() {\n if (this.sourceSize === 0) {\n return true;\n }\n return this.page === Math.ceil(this.sourceSize / this.pageSize);\n }\n isPrevPageDisabled() {\n return this.page === 1;\n }\n calculateStart() {\n const firstItem = 1 + ((this.page - 1) * this.pageSize);\n if (this.sourceSize < firstItem) {\n return 0;\n }\n return firstItem;\n }\n calculateEnd() {\n const lastItem = this.page * this.pageSize;\n if (this.sourceSize < lastItem) {\n return this.sourceSize;\n }\n return lastItem;\n }\n sample(source) {\n if (this.isDisabled()) {\n return source;\n }\n let start = this.calculateStart();\n if (start !== 0) {\n start -= 1;\n }\n return source.slice(start, this.calculateEnd());\n }\n clearEvents() {\n this.events.length = 0;\n }\n setPage(page) {\n this.page = page;\n this.events.push(new PageChangedAggregateEvent(new StructureId('TODO need to be changed')));\n }\n setPageSize(pageSize) {\n this.pageSize = pageSize;\n this.events.push(new PagesizeChangedAggregateEvent(new StructureId('TODO need to be changed')));\n }\n}\n\nclass PagingManagerFactory {\n logger;\n constructor(logger) {\n this.logger = logger;\n }\n static services = [Logger];\n createDefault() {\n return PagingManager.default(this.logger);\n }\n createFromConfig(config) {\n return PagingManager.fromConfig(config, this.logger);\n }\n}\n\nclass SetPagingCommand extends StructureCommand {\n config;\n constructor(structureId, config) {\n super(structureId, 'SetPagingCommand');\n this.config = config;\n }\n getPagingConfig() {\n return this.config;\n }\n}\n\nclass ChangePagesizeCommand extends StructureCommand {\n pageSize;\n constructor(structureId, pageSize) {\n super(structureId, 'ChangePagesizeCommand');\n this.pageSize = pageSize;\n }\n getPageSize() {\n return this.pageSize;\n }\n}\n\nclass NextPageCommand extends StructureCommand {\n constructor(structureId) {\n super(structureId, 'NextPageCommand');\n }\n}\n\nclass PrevPageCommand extends StructureCommand {\n constructor(structureId) {\n super(structureId, 'PrevPageCommand');\n }\n}\n\nclass PagingDispatcher {\n commandDispatcher;\n constructor(commandDispatcher) {\n this.commandDispatcher = commandDispatcher;\n }\n static services = [CommandDispatcher];\n setPaging(paging, structureId) {\n this.commandDispatcher.dispatch(new SetPagingCommand(structureId, paging));\n }\n changePageSize(pageSize, structureId) {\n this.commandDispatcher.dispatch(new ChangePagesizeCommand(structureId, pageSize));\n }\n nextPage(structureId) {\n this.commandDispatcher.dispatch(new NextPageCommand(structureId));\n }\n prevPage(structureId) {\n this.commandDispatcher.dispatch(new PrevPageCommand(structureId));\n }\n}\n\nclass PagingSetEvent extends StructureDomainEvent {\n constructor(aggregateId) {\n super(aggregateId, null, 'PagingSetEvent');\n }\n}\n\nclass SetPagingCommandHandler {\n domainEventPublisher = CoreContainer.resolve(DomainEventPublisher);\n forCommand() {\n return SetPagingCommand;\n }\n handle(structureAggregate, command) {\n const pagingConfig = command.getPagingConfig();\n structureAggregate.changePaging(pagingConfig);\n }\n publish(aggregate, command) {\n this.domainEventPublisher.publish(new PagingSetEvent(command.getAggregateId()));\n }\n}\n\nclass NextPageEvent extends StructureDomainEvent {\n constructor(aggregateId) {\n super(aggregateId, null, 'NextPageEvent');\n }\n}\n\nclass NextPageCommandHandler {\n domainEventPublisher = CoreContainer.resolve(DomainEventPublisher);\n forCommand() {\n return NextPageCommand;\n }\n handle(aggregate, command) {\n // missing implementation\n aggregate.nextPage();\n }\n publish(aggregate, command) {\n this.domainEventPublisher.publish(new NextPageEvent(command.getAggregateId()));\n }\n}\n\nclass PrevPageEvent extends StructureDomainEvent {\n constructor(aggregateId) {\n super(aggregateId, null, 'PrevPageEvent');\n }\n}\n\nclass PrevPageCommandHandler {\n domainEventPublisher = CoreContainer.resolve(DomainEventPublisher);\n forCommand() {\n return PrevPageCommand;\n }\n handle(structure, command) {\n structure.prevPage();\n }\n publish(aggregate, command) {\n this.domainEventPublisher.publish(new PrevPageEvent(command.getAggregateId()));\n }\n}\n\nclass ChangePagesizeCommandHandler {\n domainEventPublisher = CoreContainer.resolve(DomainEventPublisher);\n forCommand() {\n return ChangePagesizeCommand;\n }\n handle(structureAggregate, command) {\n const pageSize = command.getPageSize();\n structureAggregate.changePageSize(pageSize);\n }\n publish(aggregate, command) {\n const aggregateEvents = aggregate.getEvents();\n aggregateEvents.forEach((event) => {\n event.aggregateId = aggregate.getId();\n });\n this.publishAggregateEvents(aggregateEvents, command);\n aggregate.clearEvents();\n }\n publishAggregateEvents(events, command) {\n for (const event of events) {\n this.publishAggregateEvent(event, command);\n }\n }\n publishAggregateEvent(event, command) {\n switch (event.getType()) {\n case 'PageChangedAggregateEvent':\n const pageChangedEvent = new PageChangedEvent(command.getAggregateId());\n this.domainEventPublisher.publish(pageChangedEvent);\n break;\n case 'PagesizeChangedAggregateEvent':\n const pagesizeChangedEvent = new PagesizeChangedEvent(command.getAggregateId());\n this.domainEventPublisher.publish(pagesizeChangedEvent);\n break;\n case 'StructurePreparedEntitiesSetAggregateEvent':\n this.domainEventPublisher.publish(event.toDomainEvent());\n break;\n default:\n break;\n }\n }\n}\n\nconst structureKey = 'StructureAggregate';\n\nclass PagingDomainModule {\n defineAggregate() {\n return null;\n }\n registerKey() {\n return structureKey;\n }\n registerProviders(container) {\n container.provide(PagingDispatcher);\n container.provide(PagingManagerFactory);\n }\n registerCommandHandlers() {\n return [\n SetPagingCommandHandler,\n NextPageCommandHandler,\n PrevPageCommandHandler,\n ChangePagesizeCommandHandler\n ];\n }\n registerDomainEventHandler() {\n return [];\n }\n registerMultiDomainEventHandler() {\n return [];\n }\n}\n\nlet PagingModel = class PagingModel {\n enabled;\n page;\n pageSize;\n pageSizes;\n pagerTop;\n pagerBottom;\n isNextDisabled;\n isPrevDisabled;\n start;\n end;\n sourceSize;\n constructor(enabled, page, pageSize, pageSizes, pagerTop, pagerBottom, isNextDisabled, isPrevDisabled, start, end, sourceSize) {\n this.enabled = enabled;\n this.page = page;\n this.pageSize = pageSize;\n this.pageSizes = pageSizes;\n this.pagerTop = pagerTop;\n this.pagerBottom = pagerBottom;\n this.isNextDisabled = isNextDisabled;\n this.isPrevDisabled = isPrevDisabled;\n this.start = start;\n this.end = end;\n this.sourceSize = sourceSize;\n }\n isEnabled() {\n return this.enabled;\n }\n getPage() {\n return this.page;\n }\n getPageSize() {\n return this.pageSize;\n }\n getPageSizes() {\n return this.pageSizes;\n }\n isPagerTop() {\n return this.pagerTop;\n }\n isPagerBottom() {\n return this.pagerBottom;\n }\n isNextPageDisabled() {\n return this.isNextDisabled;\n }\n isPrevPageDisabled() {\n return this.isPrevDisabled;\n }\n getStart() {\n return this.start;\n }\n getEnd() {\n return this.end;\n }\n getSourceSize() {\n return this.sourceSize;\n }\n calculateVisiblePages(currentPage, numberOfVisiblePages, page) {\n return currentPage - numberOfVisiblePages < page && page < currentPage + numberOfVisiblePages;\n }\n sample(source) {\n let start = this.getStart();\n if (start !== 0) {\n start -= 1;\n }\n return source.slice(start, this.getEnd());\n }\n // TODO\n compare(target) {\n return JSON.stringify(this) === JSON.stringify(target);\n }\n};\nPagingModel = __decorate([\n ReadModelObject\n], PagingModel);\n\nclass PagingConverter {\n convert(aggregate) {\n return new PagingModel(aggregate.isEnabled(), aggregate.getPage(), aggregate.getPageSize(), aggregate.getPageSizes(), aggregate.isPagerTop(), aggregate.isPagerBottom(), aggregate.isNextPageDisabled(), aggregate.isPrevPageDisabled(), aggregate.calculateStart(), aggregate.calculateEnd(), aggregate.getSourceSize());\n }\n}\n\nclass StructureReadModelRepository extends Reactive {\n domainEventBus = CoreContainer.resolve(DomainEventBus);\n constructor() {\n super();\n this.domainEventBus\n .ofEvents(this.forEvents())\n .pipe(this.hermesTakeUntil())\n .subscribe((event) => {\n try {\n this.subs(event);\n }\n catch (e) {\n // eslint-disable-next-line no-console\n console.error(e);\n }\n });\n }\n}\n\nclass PagingRepository {\n structureRepository;\n constructor(structureRepository) {\n this.structureRepository = structureRepository;\n }\n static services = [StructureReadModelRepository];\n on(structureId) {\n return this.structureRepository\n .on(structureId)\n .pipe(hermesFilter((structure) => structure.getId().toString() === structureId.toString()), hermesMap((structure) => structure.getPaging()));\n }\n}\n\nclass PagingDomainWarehouse extends PagingWarehouse {\n pagingRepository;\n constructor(pagingRepository) {\n super();\n this.pagingRepository = pagingRepository;\n }\n static services = [PagingRepository];\n onPaging(structureId) {\n return this.pagingRepository.on(structureId);\n }\n oncePaging(structureId) {\n return singleFromObservable(this.pagingRepository.on(structureId));\n }\n}\n\nclass PagingDomainPublisher extends PagingPublisher {\n pagingDispatcher;\n constructor(pagingDispatcher) {\n super();\n this.pagingDispatcher = pagingDispatcher;\n }\n static services = [PagingDispatcher];\n enable(structureId) {\n this.pagingDispatcher.setPaging({ enabled: true }, structureId);\n }\n disable(structureId) {\n this.pagingDispatcher.setPaging({ enabled: false }, structureId);\n }\n setPaging(paging, structureId) {\n this.pagingDispatcher.setPaging(paging, structureId);\n }\n changePageSize(pageSize, structureId) {\n this.pagingDispatcher.changePageSize(pageSize, structureId);\n }\n nextPage(structureId) {\n this.pagingDispatcher.nextPage(structureId);\n }\n prevPage(structureId) {\n this.pagingDispatcher.prevPage(structureId);\n }\n goToPage(pageNumber, currentPage, structureId) {\n if (currentPage < pageNumber) {\n while (currentPage !== pageNumber) {\n this.nextPage(structureId);\n currentPage += 1;\n }\n }\n else {\n while (currentPage !== pageNumber) {\n this.prevPage(structureId);\n currentPage -= 1;\n }\n }\n }\n changePagerTop(enabled, structureId) {\n this.pagingDispatcher.setPaging({ pagerTop: enabled }, structureId);\n }\n changePagerBottom(enabled, structureId) {\n this.pagingDispatcher.setPaging({ pagerBottom: enabled }, structureId);\n }\n}\n\nclass PagingDomainEventRepository extends PagingEventRepository {\n pagingWarehouse;\n eventBusToRemove = CoreContainer.resolve(DomainEventBus);\n constructor(pagingWarehouse) {\n super();\n this.pagingWarehouse = pagingWarehouse;\n }\n static services = [PagingWarehouse];\n onPageChange(structureId) {\n return this.eventBusToRemove\n .ofEvents([\n PrevPageEvent,\n NextPageEvent,\n PageChangedEvent\n ])\n .pipe(hermesFilter((event) => event.getAggregateId().toString() === structureId.toAggregateId().toString()), hermesSwitchMap((event) => {\n return this.pagingWarehouse\n .oncePaging(structureId.toAggregateId())\n .pipe(hermesMap((paging) => paging.getPage()));\n }));\n }\n onPageSizeChange(structureId) {\n return this.eventBusToRemove\n .ofEvents([\n PagesizeChangedEvent\n ])\n .pipe(hermesFilter((event) => event.getAggregateId().toString() === structureId.toAggregateId().toString()), hermesSwitchMap((event) => {\n return this.pagingWarehouse\n .oncePaging(structureId.toAggregateId())\n .pipe(hermesMap((paging) => paging.getPageSize()));\n }));\n }\n}\n\nclass PagingApiModule {\n registerProviders(container) {\n container.provide(PagingPublisher, PagingDomainPublisher);\n container.provide(PagingWarehouse, PagingDomainWarehouse);\n container.provide(PagingEventRepository, PagingDomainEventRepository);\n container.provide(PagingRepository);\n container.provide(PagingConverter);\n }\n}\nfunction initializePaging() {\n new DomainInitializer(new PagingApiModule(), new PagingDomainModule()).init();\n}\n\nclass Dictionary {\n translation = new Map();\n resolver = (key, value) => value;\n changeTranslation(change) {\n for (const key of Object.keys(change)) {\n this.translation.set(key, change[key]);\n }\n }\n getTranslation() {\n return Array.from(this.translation)\n .reduce((obj, [key, value]) => (Object.assign(obj, { [key]: this.resolver(key, value) })), {});\n }\n setResolver(resolver) {\n this.resolver = resolver;\n }\n}\n\nclass TranslationDomainFacade extends TranslationFacade {\n defaultTranslation = enTranslation;\n dictionary = new Dictionary();\n dictionary$ = new HermesReplaySubject(1);\n constructor() {\n super();\n }\n getTranslation() {\n return this.dictionary.getTranslation();\n }\n onTranslation() {\n return this.dictionary$.toObservable();\n }\n setDefaultTranslation() {\n this.changeTranslationAndPropagate(this.defaultTranslation);\n }\n changeTranslation(change) {\n this.changeTranslationAndPropagate(change);\n }\n setResolver(resolver) {\n this.setResolverAndPropagate(resolver);\n }\n changeTranslationAndPropagate(change) {\n this.dictionary.changeTranslation(change);\n this.dictionary$.next(this.dictionary.getTranslation());\n }\n setResolverAndPropagate(resolver) {\n this.dictionary.setResolver(resolver);\n this.dictionary$.next(this.dictionary.getTranslation());\n }\n}\n\nclass TranslationFeatureModule extends FeatureModule {\n static forComponent() {\n return [{ provide: TranslationFacade, useClass: TranslationDomainFacade }];\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: TranslationFeatureModule, deps: null, target: i0.ɵɵFactoryTarget.NgModule });\n static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"17.0.2\", ngImport: i0, type: TranslationFeatureModule, declarations: [TranslationPipe], imports: [CommonModule], exports: [TranslationPipe] });\n static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: TranslationFeatureModule, imports: [CommonModule] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: TranslationFeatureModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [\n CommonModule\n ],\n declarations: [\n TranslationPipe\n ],\n exports: [\n TranslationPipe\n ]\n }]\n }] });\n\nclass GuiPushSubscriber {\n cd;\n value;\n actualObs$;\n baseValues$ = new HermesSubject();\n destroy$ = new HermesReplaySubject(1);\n constructor(cd) {\n this.cd = cd;\n this.baseValues$\n .pipe(hermesFilter((obs$) => obs$ !== this.actualObs$), hermesSwitchMap((value$) => {\n this.actualObs$ = value$;\n return value$;\n }), hermesDistinctUntilChanged(), hermesTakeUntil(this.destroy$))\n .subscribe((v) => {\n this.value = v;\n this.scheduleCD();\n });\n }\n destroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n subscribe(value) {\n this.baseValues$.next(value);\n return this.value;\n }\n scheduleCD() {\n setTimeout(() => {\n this.cd.detectChanges();\n });\n }\n}\n\nclass GuiPushPipe {\n cd = inject(ChangeDetectorRef);\n subscriber = new GuiPushSubscriber(this.cd);\n transform(value) {\n return this.subscriber.subscribe(value);\n }\n ngOnDestroy() {\n this.subscriber.destroy();\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: GuiPushPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });\n static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"17.0.2\", ngImport: i0, type: GuiPushPipe, name: \"guiPush\", pure: false });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: GuiPushPipe, decorators: [{\n type: Pipe,\n args: [{\n name: 'guiPush',\n pure: false\n }]\n }] });\n\nclass GuiIfDirective {\n subscriber;\n vcr;\n template;\n guiIf;\n constructor(subscriber, vcr, template) {\n this.subscriber = subscriber;\n this.vcr = vcr;\n this.template = template;\n }\n ngOnChanges(changes) {\n if (changes['guiIf'] !== undefined) {\n this.subscriber\n .subscribe(this.guiIf, (v) => {\n if (v) {\n this.vcr.createEmbeddedView(this.template);\n }\n else {\n this.vcr.clear();\n }\n });\n }\n }\n ngOnDestroy() {\n this.subscriber.destroy();\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: GuiIfDirective, deps: [{ token: GuiSubscriber }, { token: i0.ViewContainerRef }, { token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });\n static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"17.0.2\", type: GuiIfDirective, selector: \"[guiIf]\", inputs: { guiIf: \"guiIf\" }, providers: [\n GuiSubscriber\n ], usesOnChanges: true, ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: GuiIfDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[guiIf]',\n providers: [\n GuiSubscriber\n ]\n }]\n }], ctorParameters: () => [{ type: GuiSubscriber }, { type: i0.ViewContainerRef }, { type: i0.TemplateRef }], propDecorators: { guiIf: [{\n type: Input\n }] } });\n\nclass GuiForDirective {\n subscriber;\n vcr;\n template;\n guiForOf;\n constructor(subscriber, vcr, template) {\n this.subscriber = subscriber;\n this.vcr = vcr;\n this.template = template;\n }\n ngOnChanges(changes) {\n if (changes['guiForOf'] !== undefined) {\n this.guiForOf\n .subscribe((values) => {\n this.vcr.clear();\n for (const value of values) {\n this.vcr.createEmbeddedView(this.template, { $implicit: value });\n }\n });\n this.subscriber\n .subscribe(this.guiForOf, (values) => {\n this.vcr.clear();\n for (const value of values) {\n this.vcr.createEmbeddedView(this.template, { $implicit: value });\n }\n });\n }\n }\n ngOnDestroy() {\n this.subscriber.destroy();\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: GuiForDirective, deps: [{ token: GuiSubscriber }, { token: i0.ViewContainerRef }, { token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });\n static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"17.0.2\", type: GuiForDirective, selector: \"[guiFor]\", inputs: { guiForOf: \"guiForOf\" }, providers: [\n GuiSubscriber\n ], usesOnChanges: true, ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: GuiForDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[guiFor]',\n providers: [\n GuiSubscriber\n ]\n }]\n }], ctorParameters: () => [{ type: GuiSubscriber }, { type: i0.ViewContainerRef }, { type: i0.TemplateRef }], propDecorators: { guiForOf: [{\n type: Input\n }] } });\n\nclass GuiStyleDirective {\n subscriber;\n elementRef;\n static STYLE = 'style';\n guiStyle;\n constructor(subscriber, elementRef) {\n this.subscriber = subscriber;\n this.elementRef = elementRef;\n }\n ngOnChanges(changes) {\n if (changes['guiStyle'] !== undefined) {\n this.subscriber\n .subscribe(this.guiStyle, (styles) => {\n Object.keys(styles)\n .forEach((key) => {\n this.setStyleByName(key, styles[key]);\n });\n });\n }\n }\n ngOnDestroy() {\n this.subscriber.destroy();\n }\n setStyleByName(name, value) {\n this.set(name, value);\n }\n set(name, value) {\n this.elementRef.nativeElement[GuiStyleDirective.STYLE][name] = value;\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: GuiStyleDirective, deps: [{ token: GuiSubscriber }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });\n static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"17.0.2\", type: GuiStyleDirective, selector: \"[guiStyle]\", inputs: { guiStyle: \"guiStyle\" }, providers: [\n GuiSubscriber\n ], usesOnChanges: true, ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: GuiStyleDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[guiStyle]',\n providers: [\n GuiSubscriber\n ]\n }]\n }], ctorParameters: () => [{ type: GuiSubscriber }, { type: i0.ElementRef }], propDecorators: { guiStyle: [{\n type: Input\n }] } });\n\nclass GuiClassManager {\n nativeElement;\n classes = new Set();\n constructor(nativeElement) {\n this.nativeElement = nativeElement;\n }\n update(newClasses) {\n const actualClasses = Array.from(this.classes);\n const classesToAdd = [];\n const classesToRemove = [];\n for (const clazz of newClasses) {\n if (!actualClasses.some((actualClass) => actualClass === clazz)) {\n classesToAdd.push(clazz);\n }\n }\n for (const actualClass of actualClasses) {\n if (!newClasses.some((newClass) => actualClass === newClass)) {\n classesToRemove.push(actualClass);\n }\n }\n this.remove(...classesToRemove);\n this.add(...classesToAdd);\n this.classes = new Set(newClasses);\n }\n add(...classes) {\n this.addClassToDomElement(this.nativeElement, classes);\n }\n remove(...classes) {\n this.removeClassFromDomElement(this.nativeElement, classes);\n }\n addClassToDomElement(htmlElement, classes) {\n for (let i = 0; i < classes.length; i++) {\n htmlElement.classList.add(classes[i]);\n }\n }\n removeClassFromDomElement(htmlElement, classes) {\n for (let i = 0; i < classes.length; i++) {\n htmlElement.classList.remove(classes[i]);\n }\n }\n}\n\nclass GuiClassDirective {\n subscriber;\n elementRef;\n guiClass;\n classManager;\n constructor(subscriber, elementRef) {\n this.subscriber = subscriber;\n this.elementRef = elementRef;\n this.classManager = new GuiClassManager(this.elementRef.nativeElement);\n }\n ngOnChanges(changes) {\n if (changes['guiClass'] !== undefined) {\n this.subscriber\n .subscribe(this.guiClass, (newClasses) => {\n this.classManager.update(newClasses);\n });\n }\n }\n ngOnDestroy() {\n this.subscriber.destroy();\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: GuiClassDirective, deps: [{ token: GuiSubscriber }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });\n static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"17.0.2\", type: GuiClassDirective, selector: \"[guiClass]\", inputs: { guiClass: \"guiClass\" }, providers: [\n GuiSubscriber\n ], usesOnChanges: true, ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: GuiClassDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[guiClass]',\n providers: [\n GuiSubscriber\n ]\n }]\n }], ctorParameters: () => [{ type: GuiSubscriber }, { type: i0.ElementRef }], propDecorators: { guiClass: [{\n type: Input,\n args: [{ required: true }]\n }] } });\n\nclass GuiTemplateModule {\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: GuiTemplateModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\n static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"17.0.2\", ngImport: i0, type: GuiTemplateModule, declarations: [GuiPushPipe,\n GuiLetDirective,\n GuiIfDirective,\n GuiForDirective,\n GuiStyleDirective,\n GuiClassDirective], imports: [CommonModule], exports: [GuiPushPipe,\n GuiLetDirective,\n GuiIfDirective,\n GuiForDirective,\n GuiStyleDirective,\n GuiClassDirective] });\n static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: GuiTemplateModule, imports: [CommonModule] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: GuiTemplateModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [\n CommonModule\n ],\n declarations: [\n GuiPushPipe,\n GuiLetDirective,\n GuiIfDirective,\n GuiForDirective,\n GuiStyleDirective,\n GuiClassDirective\n ],\n exports: [\n GuiPushPipe,\n GuiLetDirective,\n GuiIfDirective,\n GuiForDirective,\n GuiStyleDirective,\n GuiClassDirective\n ]\n }]\n }] });\n\ninitializePaging();\nfunction providePagingCommandInvoker() {\n return CoreContainer.resolve(PagingPublisher);\n}\nfunction providePagingWarehouse() {\n return CoreContainer.resolve(PagingWarehouse);\n}\nfunction providePagingEventRepository() {\n return CoreContainer.resolve(PagingEventRepository);\n}\nclass PagingFeatureModule extends FeatureModule {\n static forComponent() {\n return [\n PagingDisplayModeArchive\n ];\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: PagingFeatureModule, deps: null, target: i0.ɵɵFactoryTarget.NgModule });\n static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"17.0.2\", ngImport: i0, type: PagingFeatureModule, declarations: [PagingComponent,\n PagingNavigatorComponent,\n PagingSelectComponent,\n PagingStatsComponent,\n AlternativePagingNavigatorComponent,\n AlternativePagingPagesComponent], imports: [CommonModule,\n FabricModule,\n TranslationFeatureModule,\n GuiTemplateModule], exports: [PagingComponent,\n PagingNavigatorComponent,\n PagingSelectComponent,\n PagingStatsComponent,\n AlternativePagingNavigatorComponent,\n AlternativePagingPagesComponent] });\n static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: PagingFeatureModule, providers: [\n { provide: PagingPublisher, useFactory: providePagingCommandInvoker },\n { provide: PagingWarehouse, useFactory: providePagingWarehouse },\n { provide: PagingEventRepository, useFactory: providePagingEventRepository }\n ], imports: [CommonModule,\n FabricModule,\n TranslationFeatureModule,\n GuiTemplateModule] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: PagingFeatureModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [\n CommonModule,\n FabricModule,\n TranslationFeatureModule,\n GuiTemplateModule\n ],\n declarations: [\n PagingComponent,\n PagingNavigatorComponent,\n PagingSelectComponent,\n PagingStatsComponent,\n AlternativePagingNavigatorComponent,\n AlternativePagingPagesComponent\n ],\n exports: [\n PagingComponent,\n PagingNavigatorComponent,\n PagingSelectComponent,\n PagingStatsComponent,\n AlternativePagingNavigatorComponent,\n AlternativePagingPagesComponent\n ],\n providers: [\n { provide: PagingPublisher, useFactory: providePagingCommandInvoker },\n { provide: PagingWarehouse, useFactory: providePagingWarehouse },\n { provide: PagingEventRepository, useFactory: providePagingEventRepository }\n ]\n }]\n }] });\n\nclass StructureTitlePanelConfigArchive extends Archive {\n static titlePanelConfig = {\n enabled: false,\n template: 'Title Panel'\n };\n constructor() {\n super({ ...StructureTitlePanelConfigArchive.titlePanelConfig });\n }\n}\n\nclass StructureFooterPanelConfigArchive extends Archive {\n static footerPanelConfig = {\n enabled: false,\n template: 'Footer Panel'\n };\n constructor() {\n super({ ...StructureFooterPanelConfigArchive.footerPanelConfig });\n }\n}\n\nconst filterContainerToken = 'Filter container token';\n\nvar StyleName;\n(function (StyleName) {\n StyleName[\"WIDTH\"] = \"width\";\n StyleName[\"HEIGHT\"] = \"height\";\n StyleName[\"PADDING_TOP\"] = \"padding-top\";\n})(StyleName || (StyleName = {}));\n\nconst STYLE = 'style';\nclass StyleModifier extends Modifier {\n constructor(htmlElement) {\n super(htmlElement);\n }\n createModifier(htmlElement) {\n return new StyleModifier.StyleModifier(htmlElement);\n }\n // eslint-disable-next-line\n static StyleModifier = class {\n htmlElement;\n constructor(htmlElement) {\n this.htmlElement = htmlElement;\n }\n setStyleByName(name, value) {\n this.set(name, value);\n }\n setWidth(value) {\n this.set(StyleName.WIDTH, this.toPx(value));\n }\n setHeight(value) {\n this.set(StyleName.HEIGHT, this.toPx(value));\n }\n setPaddingTop(value) {\n this.set(StyleName.PADDING_TOP, this.toPx(value));\n }\n remove(styleName) {\n this.htmlElement[STYLE][styleName] = '';\n }\n removeStyleByName(name) {\n this.htmlElement[STYLE][name] = '';\n }\n clear() {\n this.htmlElement.removeAttribute(STYLE);\n }\n set(name, value) {\n this.htmlElement[STYLE][name] = value;\n }\n toPx(value) {\n return value > 0 ? `${value}px` : `${value}`;\n }\n };\n}\n\nclass FieldPublisher {\n constructor() {\n }\n}\n\nclass StructureWarehouse {\n structureRepository;\n structureCellEditArchive;\n constructor(structureRepository, structureCellEditArchive) {\n this.structureRepository = structureRepository;\n this.structureCellEditArchive = structureCellEditArchive;\n }\n static services = [StructureReadModelRepository, StructureCellEditArchive];\n on(structureId) {\n return this.structureRepository.on(structureId);\n }\n onEditManager(structureId) {\n return this.structureCellEditArchive\n .on(structureId);\n }\n}\n\nclass SearchWarehouse {\n constructor() {\n }\n}\n\nconst prefix = 'Structure -';\nconst STRUCTURE_CSS_CLASS_NAME = new InjectionToken(`${prefix} - css className`);\n\nclass SummariesWarehouse {\n constructor() {\n }\n}\n\nclass SummariesTranslations {\n distinctTooltip;\n averageTooltip;\n minTooltip;\n maxTooltip;\n medTooltip;\n countTooltip;\n constructor(distinctTooltip, averageTooltip, minTooltip, maxTooltip, medTooltip, countTooltip) {\n this.distinctTooltip = distinctTooltip;\n this.averageTooltip = averageTooltip;\n this.minTooltip = minTooltip;\n this.maxTooltip = maxTooltip;\n this.medTooltip = medTooltip;\n this.countTooltip = countTooltip;\n }\n}\n\nvar SortOrder;\n(function (SortOrder) {\n SortOrder[SortOrder[\"ASC\"] = 0] = \"ASC\";\n SortOrder[SortOrder[\"DESC\"] = 1] = \"DESC\";\n SortOrder[SortOrder[\"NONE\"] = 2] = \"NONE\";\n})(SortOrder || (SortOrder = {}));\n\n// Basically header template\nclass CellTemplateWithContext {\n header;\n dataType;\n context;\n width;\n fieldId;\n columnDefinitionId;\n sortStatus;\n enabled;\n cssClasses;\n styles;\n sortable;\n align;\n constructor(\n // public viewTemplate: TemplateRef | null = null,\n // \t\tpublic editTemplate: TemplateRef | null = null,\n // public editContext: any,\n header, dataType, context, width, fieldId, columnDefinitionId, sortStatus, enabled, cssClasses, styles, sortable, align) {\n this.header = header;\n this.dataType = dataType;\n this.context = context;\n this.width = width;\n this.fieldId = fieldId;\n this.columnDefinitionId = columnDefinitionId;\n this.sortStatus = sortStatus;\n this.enabled = enabled;\n this.cssClasses = cssClasses;\n this.styles = styles;\n this.sortable = sortable;\n this.align = align;\n }\n getHeader() {\n return this.header;\n }\n getDataType() {\n return this.dataType;\n }\n getColumnDefinitionId() {\n return this.columnDefinitionId;\n }\n getFieldId() {\n return this.fieldId;\n }\n getSortStatus() {\n return this.sortStatus;\n }\n getCssClasses() {\n return this.cssClasses;\n }\n getStyles() {\n return this.styles;\n }\n isSortEnabled() {\n return this.sortable;\n }\n isAscSort() {\n return this.sortStatus === SortOrder.ASC;\n }\n isDescSort() {\n return this.sortStatus === SortOrder.DESC;\n }\n isNoSort() {\n return this.sortStatus === SortOrder.NONE;\n }\n isEnabled() {\n return this.enabled;\n }\n isAlignLeft() {\n return this.align === ColumnAlign.LEFT;\n }\n isAlignCenter() {\n return this.align === ColumnAlign.CENTER;\n }\n isAlignRight() {\n return this.align === ColumnAlign.RIGHT;\n }\n getAlign() {\n return this.align;\n }\n}\n\nclass CompositionTemplateModel extends CellTemplateWithContext {\n viewTemplate;\n editTemplate;\n constructor(viewTemplate = null, editTemplate = null, context) {\n super(context.getHeader(), context.getDataType(), context.context, context.width, context.getFieldId(), context.getColumnDefinitionId(), context.getSortStatus(), context.isEnabled(), context.getCssClasses(), context.getStyles(), context.isSortEnabled(), context.getAlign());\n this.viewTemplate = viewTemplate;\n this.editTemplate = editTemplate;\n }\n}\n\nvar CellValueType;\n(function (CellValueType) {\n CellValueType[CellValueType[\"TEXT\"] = 0] = \"TEXT\";\n CellValueType[CellValueType[\"HTML\"] = 1] = \"HTML\";\n})(CellValueType || (CellValueType = {}));\nclass CellValue {\n value;\n type;\n constructor(value, type) {\n this.value = value;\n this.type = type;\n }\n static text(value) {\n return new CellValue(value, CellValueType.TEXT);\n }\n static HTML(value) {\n return new CellValue(value, CellValueType.HTML);\n }\n}\n\nclass CellTemplateWithAccessor {\n columnConfig;\n columnDefinitionId;\n name;\n editable;\n templateFun;\n formatterFun;\n accessor;\n searchAccessor;\n width;\n columnFieldId;\n align;\n cellEditingEnabled;\n type;\n view;\n constructor(columnConfig, columnDefinitionId, name, \n // public template: TemplateRef | null = null,\n // public editTemplate: TemplateRef | null = null,\n editable, templateFun, formatterFun, accessor, searchAccessor, width, columnFieldId, align, cellEditingEnabled, type, // REFACTOR\n view) {\n this.columnConfig = columnConfig;\n this.columnDefinitionId = columnDefinitionId;\n this.name = name;\n this.editable = editable;\n this.templateFun = templateFun;\n this.formatterFun = formatterFun;\n this.accessor = accessor;\n this.searchAccessor = searchAccessor;\n this.width = width;\n this.columnFieldId = columnFieldId;\n this.align = align;\n this.cellEditingEnabled = cellEditingEnabled;\n this.type = type;\n this.view = view;\n }\n getDataType() {\n return this.type;\n }\n getCellView() {\n return this.view.getCellView();\n }\n getColumnConfig() {\n return this.columnConfig;\n }\n isCellEditingEnabled() {\n return this.cellEditingEnabled;\n }\n isBooleanDataType() {\n return this.type === DataType.BOOLEAN;\n }\n isAlignLeft() {\n return this.align === ColumnAlign.LEFT;\n }\n isAlignCenter() {\n return this.align === ColumnAlign.CENTER;\n }\n isAlignRight() {\n return this.align === ColumnAlign.RIGHT;\n }\n getAlign() {\n return this.align;\n }\n getType() {\n return this.type;\n }\n getView() {\n return this.view;\n }\n getName() {\n return this.name;\n }\n // REFACTOR #1581\n getValue(entity, searchPhrase) {\n const cellValue = this.findValue(entity, searchPhrase);\n cellValue.value = this.templateFun(cellValue.value, entity.getSourceItem());\n if (this.formatterFun) {\n cellValue.value = this.formatterFun(cellValue.value, entity.getSourceItem());\n }\n return cellValue;\n }\n getClasses() {\n return 'gui-cell-highlighted';\n }\n findValue(entity, searchPhrase) {\n const value = this.accessor(entity);\n if (this.type !== DataType.STRING) {\n return CellValue.text(value);\n }\n if (this.view && this.view.getCellView() === CellView.FUNCTION) {\n return CellValue.text(value);\n }\n if (searchPhrase) {\n let txt = '' + this.searchAccessor(entity);\n const lowerCasedText = txt.toLocaleLowerCase(), loweredSearchPhrase = searchPhrase.toLocaleLowerCase();\n const positions = [];\n let index = 0;\n while (index < loweredSearchPhrase.length) {\n const found = lowerCasedText.indexOf(loweredSearchPhrase, index);\n if (found >= 0) {\n positions.push(found);\n index = found + searchPhrase.length;\n }\n else {\n index = loweredSearchPhrase.length;\n }\n }\n const arr = txt.split('');\n positions.forEach((pos) => {\n for (let i = 0; i < searchPhrase.length; i += 1) {\n let ph;\n if (i === 0) {\n ph = `${arr[pos + i]}`;\n }\n else {\n ph = arr[pos + i];\n }\n if (i === searchPhrase.length - 1) {\n ph += '';\n }\n arr[pos + i] = ph;\n }\n });\n txt = arr.join('');\n return CellValue.HTML(txt);\n }\n else {\n return CellValue.text(value);\n }\n }\n}\n\nclass CompositionAccessorModel extends CellTemplateWithAccessor {\n template;\n editTemplate;\n constructor(template = null, editTemplate = null, context) {\n super(context.getColumnConfig(), context.columnDefinitionId, context.getName(), context.editable, context.templateFun, context.formatterFun, context.accessor, context.searchAccessor, context.width, context.columnFieldId, context.getAlign(), context.isCellEditingEnabled(), context.getType(), context.getView());\n this.template = template;\n this.editTemplate = editTemplate;\n }\n}\n\nconst CompositionAggregateEvents = {\n CompositionResizeWidthSetAggregateEvent: 'CompositionResizeWidthSetAggregateEvent',\n ColumnsSetAggregateEvent: 'ColumnsSetAggregateEvent',\n CompositionContainerWidthSetAggregateEvent: 'CompositionContainerWidthSetAggregateEvent',\n CompositionWidthSetAggregateEvent: 'CompositionWidthSetAggregateEvent',\n CompositionColumnSetEnabledAggregateEvent: 'CompositionColumnSetEnabledAggregateEvent',\n CompositionColumnMovedLeftAggregateEvent: 'CompositionColumnMovedLeftAggregateEvent',\n CompositionColumnMovedRightAggregateEvent: 'CompositionColumnMovedRightAggregateEvent',\n GroupsSetAggregateEvent: 'GroupsSetAggregateEvent'\n};\n\nclass CompositionDomainEvent extends DomainEvent {\n}\n\nclass CompositionResizeWidthSetEvent extends CompositionDomainEvent {\n constructor(aggregateId) {\n super(aggregateId, null, 'CompositionResizeWidthSetEvent');\n }\n}\n\nclass CompositionColumnsSetEvent extends CompositionDomainEvent {\n constructor(compositionId) {\n super(compositionId, null, 'CompositionColumnsSetEvent');\n }\n}\n\nclass CompositionContainerWidthSetEvent extends CompositionDomainEvent {\n constructor(compositionId, payload) {\n super(compositionId, payload, 'CompositionContainerWidthSetEvent');\n }\n}\n\nclass CompositionWidthSetEvent extends CompositionDomainEvent {\n constructor(compositionId) {\n super(compositionId, null, 'CompositionWidthSetEvent');\n }\n}\n\nclass CompositionColumnSetEnabledEvent extends CompositionDomainEvent {\n constructor(aggregateId) {\n super(aggregateId, null, 'CompositionColumnSetEnabledEvent');\n }\n}\n\nclass CompositionColumnMovedLeftEvent extends CompositionDomainEvent {\n constructor(aggregateId) {\n super(aggregateId, null, 'CompositionColumnMovedLeftEvent');\n }\n}\n\nclass CompositionColumnMovedRightEvent extends CompositionDomainEvent {\n constructor(aggregateId) {\n super(aggregateId, null, 'CompositionColumnMovedRightEvent');\n }\n}\n\nclass CompositionGroupsSetEvent extends CompositionDomainEvent {\n constructor(compositionId) {\n super(compositionId, null, 'CompositionGroupsSetEvent');\n }\n}\n\nclass CompositionEventConverter {\n convert(arg) {\n if (Array.isArray(arg)) {\n return this.convertEvents(arg);\n }\n else {\n return this.convertEvent(arg);\n }\n }\n convertEvents(aggregateEvents) {\n return aggregateEvents.map((event) => {\n return this.convertEvent(event);\n });\n }\n convertEvent(aggregateEvent) {\n switch (aggregateEvent.getType()) {\n case CompositionAggregateEvents.CompositionResizeWidthSetAggregateEvent:\n return new CompositionResizeWidthSetEvent(aggregateEvent.getAggregateId());\n case CompositionAggregateEvents.ColumnsSetAggregateEvent:\n return new CompositionColumnsSetEvent(aggregateEvent.getAggregateId());\n case CompositionAggregateEvents.CompositionContainerWidthSetAggregateEvent:\n const payload = aggregateEvent.containerWidth;\n return new CompositionContainerWidthSetEvent(aggregateEvent.getAggregateId(), payload);\n case CompositionAggregateEvents.CompositionWidthSetAggregateEvent:\n return new CompositionWidthSetEvent(aggregateEvent.getAggregateId());\n case CompositionAggregateEvents.CompositionColumnSetEnabledAggregateEvent:\n return new CompositionColumnSetEnabledEvent(aggregateEvent.getAggregateId());\n case CompositionAggregateEvents.CompositionColumnMovedLeftAggregateEvent:\n return new CompositionColumnMovedLeftEvent(aggregateEvent.getAggregateId());\n case CompositionAggregateEvents.CompositionColumnMovedRightAggregateEvent:\n return new CompositionColumnMovedRightEvent(aggregateEvent.getAggregateId());\n case CompositionAggregateEvents.GroupsSetAggregateEvent:\n return new CompositionGroupsSetEvent(aggregateEvent.getAggregateId());\n default:\n return new CompositionResizeWidthSetEvent(aggregateEvent.getAggregateId());\n }\n }\n}\n\nclass CompositionCommand extends Command {\n}\n\nclass SetColumnsCommand extends CompositionCommand {\n compositionId;\n columns;\n constructor(compositionId, columns) {\n super(compositionId, 'SetColumnsCommand');\n this.compositionId = compositionId;\n this.columns = columns;\n }\n getParams() {\n return this.columns;\n }\n}\n\nclass SetColumnsCommandHandler {\n compositionEventConverter;\n domainEventPublisher = CoreContainer.resolve(DomainEventPublisher);\n constructor(compositionEventConverter) {\n this.compositionEventConverter = compositionEventConverter;\n }\n static services = [CompositionEventConverter];\n forCommand() {\n return SetColumnsCommand;\n }\n handle(aggregate, command) {\n const setColumnsParams = command.getParams();\n aggregate.setColumns(setColumnsParams);\n }\n publish(aggregate, command) {\n this.publishEvents(aggregate, command);\n }\n publishEvents(composition, command) {\n const events = composition.getEvents();\n const domainEvents = this.compositionEventConverter.convert(events);\n this.domainEventPublisher.publish(domainEvents);\n }\n}\n\nclass SetCompositionWidthCommand extends CompositionCommand {\n structureId;\n width;\n constructor(structureId, width) {\n super(structureId, 'SetCompositionWidthCommand');\n this.structureId = structureId;\n this.width = width;\n }\n getWidth() {\n return this.width;\n }\n}\n\nclass SetCompositionWidthCommandHandler {\n domainEventPublisher = CoreContainer.resolve(DomainEventPublisher);\n forCommand() {\n return SetCompositionWidthCommand;\n }\n handle(composition, command) {\n const width = command.getWidth();\n composition.setWidth(width);\n }\n publish(aggregate, command) {\n this.domainEventPublisher.publish(new CompositionWidthSetEvent(command.getAggregateId()));\n }\n}\n\nclass SetCompositionResizeWidthCommand extends CompositionCommand {\n structureId;\n enabled;\n constructor(structureId, enabled) {\n super(structureId, 'SetCompositionResizeWidthCommand');\n this.structureId = structureId;\n this.enabled = enabled;\n }\n getEnabled() {\n return this.enabled;\n }\n}\n\nclass SetCompositionResizeWidthCommandHandler {\n domainEventPublisher = CoreContainer.resolve(DomainEventPublisher);\n forCommand() {\n return SetCompositionResizeWidthCommand;\n }\n handle(composition, command) {\n const enabled = command.getEnabled();\n composition.setResizeWidth(enabled);\n }\n publish(aggregate, command) {\n this.domainEventPublisher.publish(new CompositionResizeWidthSetEvent(command.getAggregateId()));\n }\n}\n\nclass SetCompositionContainerWidthCommand extends CompositionCommand {\n structureId;\n width;\n constructor(structureId, width) {\n super(structureId, 'SetCompositionContainerWidthCommand');\n this.structureId = structureId;\n this.width = width;\n }\n getWidth() {\n return this.width;\n }\n}\n\nclass SetCompositionContainerWidthCommandHandler {\n compositionEventConverter;\n domainEventPublisher = CoreContainer.resolve(DomainEventPublisher);\n constructor(compositionEventConverter) {\n this.compositionEventConverter = compositionEventConverter;\n }\n static services = [CompositionEventConverter];\n forCommand() {\n return SetCompositionContainerWidthCommand;\n }\n handle(composition, command) {\n const width = command.getWidth();\n composition.setContainerWidth(width);\n }\n publish(aggregate, command) {\n this.publishAggregateEvents(aggregate.getEvents());\n }\n publishAggregateEvents(aggregateEvents) {\n const domainEvents = this.compositionEventConverter.convert(aggregateEvents);\n this.domainEventPublisher.publish(domainEvents);\n }\n}\n\nclass CompositionSetColumnEnabledCommand extends CompositionCommand {\n compositionId;\n columnId;\n enabled;\n constructor(compositionId, columnId, enabled) {\n super(compositionId, 'CompositionSetColumnEnabledCommand');\n this.compositionId = compositionId;\n this.columnId = columnId;\n this.enabled = enabled;\n }\n getColumnId() {\n return this.columnId;\n }\n isEnabled() {\n return this.enabled;\n }\n}\n\nclass CompositionSetColumnEnabledCommandHandler {\n compositionEventConverter;\n domainEventPublisher = CoreContainer.resolve(DomainEventPublisher);\n constructor(compositionEventConverter) {\n this.compositionEventConverter = compositionEventConverter;\n }\n static services = [CompositionEventConverter];\n forCommand() {\n return CompositionSetColumnEnabledCommand;\n }\n handle(aggregate, command) {\n const columnId = command.getColumnId(), enabled = command.isEnabled();\n aggregate.enableColumn(columnId, enabled);\n }\n publish(aggregate, command) {\n this.publishEvents(aggregate, command);\n }\n publishEvents(composition, command) {\n const events = composition.getEvents();\n const domainEvents = this.compositionEventConverter.convert(events);\n if (domainEvents && domainEvents.length > 0) {\n this.domainEventPublisher.publish(domainEvents);\n }\n }\n}\n\nclass CompositionChangeSortStatusCommand extends CompositionCommand {\n compositionId;\n sortParams;\n constructor(compositionId, sortParams) {\n super(compositionId, 'CompositionChangeSortStatusCommand');\n this.compositionId = compositionId;\n this.sortParams = sortParams;\n }\n getCompositionId() {\n return this.compositionId;\n }\n getSortParams() {\n return this.sortParams;\n }\n}\n\nclass CompositionChangeSortStatusEvent extends CompositionDomainEvent {\n activeColumns;\n constructor(aggregateId, activeColumns) {\n super(aggregateId, activeColumns, 'CompositionChangeSortStatusEvent');\n this.activeColumns = activeColumns;\n }\n getCompositionId() {\n return this.getAggregateId();\n }\n getActiveColumns() {\n return this.activeColumns;\n }\n}\n\nclass CompositionChangeSortStatusCommandHandler {\n domainEventPublisher = CoreContainer.resolve(DomainEventPublisher);\n forCommand() {\n return CompositionChangeSortStatusCommand;\n }\n handle(composition, command) {\n const sortParams = command.getSortParams();\n composition.changeSort(sortParams);\n }\n publish(composition, command) {\n const compositionId = command.getAggregateId(), columns = composition.getActiveColumns();\n this.domainEventPublisher.publish(new CompositionChangeSortStatusEvent(compositionId, columns));\n }\n}\n\nclass CompositionMoveLeftColumnCommand extends CompositionCommand {\n compositionId;\n columnId;\n constructor(compositionId, columnId) {\n super(compositionId, 'CompositionMoveLeftColumnCommand');\n this.compositionId = compositionId;\n this.columnId = columnId;\n }\n getColumnId() {\n return this.columnId;\n }\n}\n\nclass CompositionMoveLeftColumnCommandHandler {\n compositionEventConverter;\n domainEventPublisher = CoreContainer.resolve(DomainEventPublisher);\n constructor(compositionEventConverter) {\n this.compositionEventConverter = compositionEventConverter;\n }\n static services = [CompositionEventConverter];\n forCommand() {\n return CompositionMoveLeftColumnCommand;\n }\n handle(aggregate, command) {\n const columnId = command.getColumnId();\n aggregate.moveLeft(columnId);\n }\n publish(aggregate, command) {\n this.publishEvents(aggregate, command);\n }\n publishEvents(composition, command) {\n const events = composition.getEvents();\n const domainEvents = this.compositionEventConverter.convert(events);\n if (domainEvents && domainEvents.length > 0) {\n this.domainEventPublisher.publish(domainEvents);\n }\n }\n}\n\nclass CompositionMoveRightColumnCommand extends CompositionCommand {\n columnId;\n constructor(compositionId, columnId) {\n super(compositionId, 'CompositionMoveRightColumnCommand');\n this.columnId = columnId;\n }\n getColumnId() {\n return this.columnId;\n }\n}\n\nclass CompositionMoveRightColumnCommandHandler {\n compositionEventConverter;\n domainEventPublisher = CoreContainer.resolve(DomainEventPublisher);\n constructor(compositionEventConverter) {\n this.compositionEventConverter = compositionEventConverter;\n }\n static services = [CompositionEventConverter];\n forCommand() {\n return CompositionMoveRightColumnCommand;\n }\n handle(aggregate, command) {\n const columnId = command.getColumnId();\n aggregate.moveRight(columnId);\n }\n publish(aggregate, command) {\n this.publishEvents(aggregate, command);\n }\n publishEvents(composition, command) {\n const events = composition.getEvents();\n const domainEvents = this.compositionEventConverter.convert(events);\n if (domainEvents && domainEvents.length > 0) {\n this.domainEventPublisher.publish(domainEvents);\n }\n }\n}\n\nclass SortToggledEvent extends StructureDomainEvent {\n compositionId;\n directions;\n constructor(aggregateId, compositionId, directions) {\n super(aggregateId, { compositionId, directions }, 'SortToggledEvent');\n this.compositionId = compositionId;\n this.directions = directions;\n }\n getCompositionId() {\n return this.compositionId;\n }\n getDirections() {\n return this.directions;\n }\n}\n\nclass CreateCompositionCommand extends CompositionCommand {\n compositionId;\n constructor(compositionId) {\n super(compositionId, 'CreateCompositionCommand');\n this.compositionId = compositionId;\n }\n}\n\nclass SetGroupsCommand extends CompositionCommand {\n compositionId;\n configs;\n constructor(compositionId, configs) {\n super(compositionId, 'SetGroupsCommand');\n this.compositionId = compositionId;\n this.configs = configs;\n }\n getConfigs() {\n return this.configs;\n }\n}\n\nclass CompositionDispatcher {\n commandDispatcher = CoreContainer.resolve(CommandDispatcher);\n create(compositionId) {\n this.commandDispatcher.dispatch(new CreateCompositionCommand(compositionId));\n }\n setColumns(compositionId, params) {\n this.commandDispatcher.dispatch(new SetColumnsCommand(compositionId, params));\n }\n setGroups(compositionId, params) {\n this.commandDispatcher.dispatch(new SetGroupsCommand(compositionId, params));\n }\n setWidth(compositionId, width) {\n this.commandDispatcher.dispatch(new SetCompositionWidthCommand(compositionId, width));\n }\n setContainerWidth(compositionId, width) {\n this.commandDispatcher.dispatch(new SetCompositionContainerWidthCommand(compositionId, width));\n }\n setResizeWidth(compositionId, enabled) {\n this.commandDispatcher.dispatch(new SetCompositionResizeWidthCommand(compositionId, enabled));\n }\n changeSort(compositionId, params) {\n this.commandDispatcher.dispatch(new CompositionChangeSortStatusCommand(compositionId, params));\n }\n setColumnEnabled(compositionId, columnId, enabled) {\n this.commandDispatcher.dispatch(new CompositionSetColumnEnabledCommand(compositionId, columnId, enabled));\n }\n moveLeft(compositionId, columnId) {\n this.commandDispatcher.dispatch(new CompositionMoveLeftColumnCommand(compositionId, columnId));\n }\n moveRight(compositionId, columnId) {\n this.commandDispatcher.dispatch(new CompositionMoveRightColumnCommand(compositionId, columnId));\n }\n}\n\nclass ChangeSortParams {\n fieldId;\n direction;\n constructor(fieldId, direction) {\n this.fieldId = fieldId;\n this.direction = direction;\n }\n}\n\nclass SortOrderSetEvent extends StructureDomainEvent {\n compositionId;\n directions;\n constructor(aggregateId, compositionId, directions) {\n super(aggregateId, { compositionId, directions }, 'SortOrderSetEvent');\n this.compositionId = compositionId;\n this.directions = directions;\n }\n getCompositionId() {\n return this.compositionId;\n }\n getDirections() {\n return this.directions;\n }\n}\n\nclass CompositionChangeSortStatusEventHandler {\n compositionDispatcher;\n constructor(compositionDispatcher) {\n this.compositionDispatcher = compositionDispatcher;\n }\n static services = [CompositionDispatcher];\n forEvents() {\n return [\n SortToggledEvent,\n SortOrderSetEvent\n ];\n }\n handle(event) {\n if (event.ofMessageType('SortToggledEvent')) {\n const compositionId = event.getCompositionId(), dirs = event.getDirections();\n const params = dirs.map((dir) => {\n const columnFieldId = new ColumnFieldId(dir.fieldId.getId());\n return new ChangeSortParams(columnFieldId, dir.direction);\n });\n this.compositionDispatcher.changeSort(compositionId, params);\n }\n if (event.ofMessageType('SortOrderSetEvent')) {\n const compositionId = event.getCompositionId(), dirs = event.getDirections();\n const params = dirs.map((dir) => {\n const columnFieldId = new ColumnFieldId(dir.fieldId.getId());\n return new ChangeSortParams(columnFieldId, dir.direction);\n });\n this.compositionDispatcher.changeSort(compositionId, params);\n }\n }\n}\n\nclass ViewEntity {\n view;\n templateFunction = (cellValue, item) => cellValue;\n constructor(cellView) {\n if (typeof cellView === 'function') {\n this.view = CellView.FUNCTION;\n this.templateFunction = cellView;\n }\n else {\n this.view = cellView;\n }\n }\n static fromDataType(dataType) {\n if (dataType === DataType.DATE) {\n return new ViewEntity(CellView.DATE);\n }\n else {\n return new ViewEntity(CellView.TEXT);\n }\n }\n getCellView() {\n return this.view;\n }\n getTemplateFunction() {\n return this.templateFunction;\n }\n}\n\nclass AbstractColumnEntity extends Entity {\n columnField;\n header;\n width;\n columnConfig;\n view;\n align;\n presentation;\n constructor(columnId, columnField, columnConfig, presentation, header, align, view, width) {\n super(columnId);\n this.columnField = columnField;\n this.columnConfig = columnConfig;\n this.presentation = presentation;\n this.view = ViewEntity.fromDataType(columnField.getDataType());\n if (header) {\n this.header = header;\n }\n if (view) {\n this.view = view;\n }\n if (width) {\n this.width = width;\n }\n this.setInitialAlign(columnField, align);\n }\n getPresentation() {\n return this.presentation;\n }\n getColumnConfig() {\n return this.columnConfig;\n }\n getField() {\n return this.columnField;\n }\n getHeader() {\n return this.header;\n }\n getDataType() {\n return this.columnField.getDataType();\n }\n getCellView() {\n return this.view.getCellView();\n }\n getTemplateFunction() {\n return this.view.getTemplateFunction();\n }\n getFormatterFunction() {\n return this.columnConfig.formatter;\n }\n setView(view) {\n this.view = view;\n }\n setHeader(header) {\n this.header = header;\n }\n getView() {\n return this.view;\n }\n getAlign() {\n return this.align;\n }\n setWidth(width) {\n this.width = width;\n }\n getWidth() {\n return this.width;\n }\n isSortingEnabled() {\n const config = this.columnConfig;\n if (config.sorting !== undefined && config.sorting !== null) {\n if (config.sorting.enabled === undefined || config.sorting.enabled === null) {\n return true;\n }\n return config.sorting.enabled;\n }\n return true;\n }\n isCellEditingEnabled() {\n const config = this.columnConfig;\n if (config.cellEditing !== undefined && config.cellEditing !== null) {\n if (config.cellEditing.enabled === undefined || config.cellEditing.enabled === null) {\n return true;\n }\n return config.cellEditing.enabled;\n }\n return true;\n }\n setInitialAlign(columnField, align) {\n if (align !== undefined && align !== null) {\n this.align = align;\n }\n else if (columnField.getDataType() === DataType.NUMBER) {\n this.align = ColumnAlign.RIGHT;\n }\n else {\n this.align = ColumnAlign.LEFT;\n }\n }\n}\n\nclass ColumnEntity extends AbstractColumnEntity {\n sortable;\n sortStatus = SortOrder.NONE;\n enabled = true;\n constructor(columnId, columnField, columnConfig, enabled, presentation, header, align, view, width) {\n super(columnId, columnField, columnConfig, presentation, header, align, view, width);\n this.enabled = enabled;\n if (view === undefined) {\n this.view = new ViewEntity(this.presentation.getDefaultView());\n }\n if (align === undefined) {\n this.align = this.presentation.getDefaultAlign(this.view);\n }\n }\n isEnabled() {\n return this.enabled;\n }\n setEnabled(enabled) {\n this.enabled = enabled;\n }\n getSortStatus() {\n return this.sortStatus;\n }\n setSortStatus(status) {\n this.sortStatus = status;\n }\n}\n\nclass ColumnId extends EntityId {\n constructor(id) {\n super(id);\n }\n toString() {\n return this.getId();\n }\n}\n\nclass ColumnPresentation {\n}\n\nclass NumberColumnPresentation extends ColumnPresentation {\n static instance = null;\n constructor() {\n super();\n }\n static getInstance() {\n if (!NumberColumnPresentation.instance) {\n NumberColumnPresentation.instance = new NumberColumnPresentation();\n }\n return NumberColumnPresentation.instance;\n }\n getPossibleViews() {\n return [\n CellView.TEXT,\n CellView.BAR,\n CellView.PERCENTAGE_BAR,\n CellView.PERCENTAGE\n ];\n }\n getDefaultView() {\n return CellView.NUMBER;\n }\n getDefaultAlign(view) {\n return ColumnAlign.RIGHT;\n }\n}\n\nclass BooleanColumnPresentation extends ColumnPresentation {\n static instance = null;\n constructor() {\n super();\n }\n static getInstance() {\n if (!BooleanColumnPresentation.instance) {\n BooleanColumnPresentation.instance = new BooleanColumnPresentation();\n }\n return BooleanColumnPresentation.instance;\n }\n getPossibleViews() {\n return [\n CellView.TEXT,\n CellView.ITALIC,\n CellView.CHIP,\n CellView.BOLD,\n CellView.CHECKBOX\n ];\n }\n getDefaultView() {\n return CellView.TEXT;\n }\n getDefaultAlign(view) {\n if (view.getCellView() === CellView.CHECKBOX) {\n return ColumnAlign.CENTER;\n }\n else {\n return ColumnAlign.LEFT;\n }\n }\n}\n\nclass DateColumnPresentation extends ColumnPresentation {\n static getInstance() {\n if (!DateColumnPresentation.instance) {\n DateColumnPresentation.instance = new DateColumnPresentation();\n }\n return DateColumnPresentation.instance;\n }\n static instance = null;\n constructor() {\n super();\n }\n getPossibleViews() {\n return [\n CellView.DATE,\n CellView.TEXT,\n CellView.ITALIC,\n CellView.BOLD,\n CellView.CHIP\n ];\n }\n getDefaultView() {\n return CellView.DATE;\n }\n getDefaultAlign() {\n return ColumnAlign.LEFT;\n }\n}\n\nclass StringColumnPresentation extends ColumnPresentation {\n static instance = null;\n constructor() {\n super();\n }\n static getInstance() {\n if (!StringColumnPresentation.instance) {\n StringColumnPresentation.instance = new StringColumnPresentation();\n }\n return StringColumnPresentation.instance;\n }\n getPossibleViews() {\n return [\n CellView.TEXT,\n CellView.ITALIC,\n CellView.BOLD,\n CellView.IMAGE,\n CellView.LINK,\n CellView.CHIP\n ];\n }\n getDefaultView() {\n return CellView.TEXT;\n }\n getDefaultAlign() {\n return ColumnAlign.LEFT;\n }\n}\n\nclass UnknownColumnPresentation extends ColumnPresentation {\n static instance = null;\n constructor() {\n super();\n }\n static getInstance() {\n if (!UnknownColumnPresentation.instance) {\n UnknownColumnPresentation.instance = new UnknownColumnPresentation();\n }\n return UnknownColumnPresentation.instance;\n }\n getPossibleViews() {\n return [\n CellView.TEXT\n ];\n }\n getDefaultView() {\n return CellView.TEXT;\n }\n getDefaultAlign() {\n return ColumnAlign.LEFT;\n }\n}\n\nclass ColumnPresentationConverter {\n convert(dataType) {\n if (dataType === DataType.NUMBER) {\n return NumberColumnPresentation.getInstance();\n }\n else if (dataType === DataType.BOOLEAN) {\n return BooleanColumnPresentation.getInstance();\n }\n else if (dataType === DataType.DATE) {\n return DateColumnPresentation.getInstance();\n }\n else if (dataType === DataType.STRING) {\n return StringColumnPresentation.getInstance();\n }\n else {\n return UnknownColumnPresentation.getInstance();\n }\n }\n}\n\nclass ColumnEntityFactory {\n columnPresentationConverter;\n constructor(columnPresentationConverter) {\n this.columnPresentationConverter = columnPresentationConverter;\n }\n static services = [ColumnPresentationConverter];\n create(source) {\n if (Array.isArray(source)) {\n return this.createColumns(source);\n }\n else {\n return this.createColumn(source);\n }\n }\n createColumn(params) {\n const columnConfig = params.getColumn(), field = params.getField(), dataType = field.getDataType(), width = this.convertWidth(columnConfig.width) || undefined;\n let view, enabled;\n if (columnConfig.view !== undefined) {\n view = new ViewEntity(columnConfig.view);\n }\n if (columnConfig.enabled !== undefined) {\n enabled = columnConfig.enabled;\n }\n else {\n enabled = true;\n }\n const presentation = this.getPresentation(dataType);\n const columnEntity = new ColumnEntity(new ColumnId(RandomStringGenerator.generate()), field, columnConfig, enabled, presentation, undefined, columnConfig.align, view, width);\n if (columnConfig.header !== undefined) {\n columnEntity.setHeader(columnConfig.header);\n }\n return columnEntity;\n }\n createColumns(columns) {\n const columnEntities = [];\n columns.forEach((column) => {\n columnEntities.push(this.createColumn(column));\n });\n return columnEntities;\n }\n convertWidth(width) {\n return +width;\n }\n getPresentation(dataType) {\n return this.columnPresentationConverter.convert(dataType);\n }\n}\n\nclass Group {\n id;\n header;\n width;\n constructor(id, header, width) {\n this.id = id;\n this.header = header;\n this.width = width;\n }\n}\n\nclass GroupId extends HermesId {\n constructor(id) {\n super(id);\n }\n toString() {\n return this.getId();\n }\n}\n\nclass CompositionGroupFactory {\n create(config) {\n return new Group(new GroupId(RandomStringGenerator.generate()), config.header, config.width);\n }\n}\n\nclass SetGroupsCommandHandler {\n compositionEventConverter;\n domainEventPublisher = CoreContainer.resolve(DomainEventPublisher);\n constructor(compositionEventConverter) {\n this.compositionEventConverter = compositionEventConverter;\n }\n static services = [CompositionEventConverter];\n forCommand() {\n return SetGroupsCommand;\n }\n handle(aggregate, command) {\n const groupConfigs = command.getConfigs();\n aggregate.setGroups(groupConfigs);\n }\n publish(aggregate, command) {\n this.publishEvents(aggregate, command);\n }\n publishEvents(composition, command) {\n const events = composition.getEvents();\n const domainEvents = this.compositionEventConverter.convert(events);\n this.domainEventPublisher.publish(domainEvents);\n }\n}\n\nclass ColumnHighlightManager {\n enabled = true;\n highlightedColumns = new Set(); // should be set of ColumnId\n isHighlighted(columnId) {\n return this.highlightedColumns.has(columnId.toString());\n }\n toggle(columnId) {\n if (this.highlightedColumns.has(columnId.toString())) {\n this.highlightedColumns.delete(columnId.toString());\n }\n else {\n this.highlightedColumns.add(columnId.toString());\n }\n }\n remove(columnId) {\n this.highlightedColumns.delete(columnId.toString());\n }\n}\n\nclass ColumnHighlightArchive extends AggregateArchive {\n constructor() {\n super(new ColumnHighlightManager());\n }\n toggle(key, value) {\n this.find(key)\n .ifPresent((manager) => {\n manager.toggle(value);\n this.next(key, manager);\n });\n }\n equals(a, b) {\n return false;\n }\n createDefaultValue(defaultValue) {\n return new ColumnHighlightManager();\n }\n}\n\nclass InMemoryCompositionStore extends InMemoryStore {\n}\n\nclass InMemoryCompositionAggregateStore extends InMemoryAggregateStore {\n constructor(inMemoryCompositionStore) {\n super(inMemoryCompositionStore);\n }\n static services = [InMemoryCompositionStore];\n}\n\nclass CompositionAggregateRepository extends AggregateRepository {\n}\n\nclass InMemoryCompositionAggregateRepository extends CompositionAggregateRepository {\n inMemoryCompositionAggregateStore;\n constructor(inMemoryCompositionAggregateStore) {\n super();\n this.inMemoryCompositionAggregateStore = inMemoryCompositionAggregateStore;\n }\n static services = [InMemoryCompositionAggregateStore];\n findById(aggregateId) {\n return this.inMemoryCompositionAggregateStore.findById(aggregateId);\n }\n save(aggregate) {\n this.inMemoryCompositionAggregateStore.save(aggregate);\n }\n}\n\nclass CellContext {\n element;\n constructor(element) {\n this.element = element;\n }\n}\n\nclass ColumnDefinition extends ReadModelEntity {\n columnConfig;\n name;\n type;\n view;\n align;\n cssClasses;\n styles;\n // cellTemplate: TemplateRef | null = null;\n //\n // headerTemplate: TemplateRef | null = null;\n //\n // editTemplate: TemplateRef | null = null;\n width;\n templateFunction;\n formatterFunction;\n columnDefinitionId;\n field;\n header;\n sortStatus;\n sortable = true;\n enabled;\n cellEditingEnabled;\n constructor(field, columnDefinitionId, // REFACTOR Id first argument\n columnConfig, name, enabled, type, // REFACTOR\n view, // REFACTOR\n align, // REFACTOR\n header, cellEditingEnabled, cssClasses, styles, sort = SortOrder.NONE, sortable = true) {\n super(columnDefinitionId);\n this.columnConfig = columnConfig;\n this.name = name;\n this.type = type;\n this.view = view;\n this.align = align;\n this.cssClasses = cssClasses;\n this.styles = styles;\n this.field = field;\n this.columnDefinitionId = columnDefinitionId;\n this.enabled = enabled;\n this.header = header;\n this.cellEditingEnabled = cellEditingEnabled;\n this.sortStatus = sort;\n this.sortable = sortable;\n }\n getName() {\n return this.name;\n }\n isEnabled() {\n return this.enabled;\n }\n setHeader(header) {\n this.header = header;\n }\n setField(field) {\n this.field = field;\n }\n setTemplateFunction(templateFun) {\n this.templateFunction = templateFun;\n }\n setFormatterFunction(formatter) {\n this.formatterFunction = formatter;\n }\n toHeaderCellTemplateWithContext(index) {\n const header = this.header || '';\n let headerCellContext;\n if (typeof header === 'string') {\n headerCellContext = new CellContext(CellValue.text(header));\n }\n else if (typeof header === 'function') {\n headerCellContext = new CellContext(CellValue.text(header(index)));\n }\n const fieldId = new FieldId(this.field.getId().getId());\n return new CellTemplateWithContext(header, this.type, headerCellContext, this.width, fieldId, this.columnDefinitionId, this.sortStatus, this.enabled, this.cssClasses, this.styles, this.sortable, this.align);\n }\n toContentCellTemplateWithAccessor() {\n const accessor = (entity) => {\n return this.field.getAccessor()(entity);\n }, searchAccessor = (entity) => {\n return this.field.getSearchAccessor()(entity);\n };\n return new CellTemplateWithAccessor(this.columnConfig, this.columnDefinitionId, this.name, \n // null,\n // null,\n true, this.templateFunction, this.formatterFunction, accessor, searchAccessor, this.width, this.field.getId(), this.align, this.cellEditingEnabled, this.type, this.view);\n }\n}\n\nclass ColumnDefinitionId extends ReadModelEntityId {\n constructor(id) {\n super(id);\n }\n}\n\nclass ColumnDefinitionFactory {\n create(column) {\n if (column instanceof ColumnEntity) {\n return this.createFromColumnEntity(column);\n }\n else {\n return this.createFromActiveColumnEntity(column);\n }\n }\n createColumns(columns) {\n return columns.map((column) => this.create(column));\n }\n createFromColumnEntity(column) {\n const columnDef = new ColumnDefinition(column.getField(), new ColumnDefinitionId(column.getId().toString()), column.getColumnConfig(), column.getColumnConfig().name, column.isEnabled(), column.getDataType(), column.getView(), column.getAlign(), column.getHeader(), column.isCellEditingEnabled(), column.getColumnConfig().cssClasses, column.getColumnConfig().styles, column.getSortStatus(), column.isSortingEnabled());\n columnDef.setTemplateFunction(column.getTemplateFunction());\n columnDef.setFormatterFunction(column.getFormatterFunction());\n columnDef.width = +column.getWidth();\n return columnDef;\n }\n createFromActiveColumnEntity(activeColumn) {\n const columnDef = new ColumnDefinition(activeColumn.getField(), new ColumnDefinitionId(activeColumn.getId().toString()), activeColumn.getColumnConfig(), activeColumn.getColumnConfig().name, true, // remove,\n activeColumn.getDataType(), activeColumn.getView(), activeColumn.getAlign(), activeColumn.getHeader(), activeColumn.isCellEditingEnabled(), activeColumn.getColumnConfig().cssClasses, activeColumn.getColumnConfig().styles, activeColumn.getSortStatus(), activeColumn.isSortingEnabled());\n columnDef.setTemplateFunction(activeColumn.getTemplateFunction());\n columnDef.setFormatterFunction(activeColumn.getFormatterFunction());\n columnDef.width = +activeColumn.getWidth();\n return columnDef;\n }\n}\n\nclass CompositionReadModeRoot extends ReadModelRoot {\n ready;\n allColumns;\n activeColumns;\n width;\n resizeWidth;\n constructor(uid, ready, allColumns, activeColumns, width, resizeWidth) {\n super(uid);\n this.ready = ready;\n this.allColumns = allColumns;\n this.activeColumns = activeColumns;\n this.width = width;\n this.resizeWidth = resizeWidth;\n }\n getActiveColumns() {\n return this.activeColumns;\n }\n getAllColumns() {\n return this.allColumns;\n }\n getActiveHeaderColumns() {\n return this.getActiveColumns()\n .map((column, index) => column.toHeaderCellTemplateWithContext(index));\n }\n getHeaderColumns() {\n return this.getAllColumns()\n .map((column, index) => column.toHeaderCellTemplateWithContext(index));\n }\n getTemplateColumns() {\n return this.getActiveColumns()\n .map((column) => column.toContentCellTemplateWithAccessor());\n }\n getWidth() {\n return this.width;\n }\n getContainerWidth() {\n return +this.width - 2;\n }\n isReady() {\n return this.ready;\n }\n isResizeWidthEnabled() {\n return this.resizeWidth;\n }\n equals(composition) {\n return this.width === composition.width &&\n this.resizeWidth === composition.resizeWidth &&\n this.equalsByColumns(composition.allColumns);\n }\n equalsByColumns(columns) {\n return this.allColumns.length === columns.length;\n }\n}\n\nclass CompositionReadModelRootConverter {\n columnDefinitionFactory;\n constructor(columnDefinitionFactory) {\n this.columnDefinitionFactory = columnDefinitionFactory;\n }\n static services = [ColumnDefinitionFactory];\n convert(aggregate) {\n const ready = aggregate.isReady(), allColumns = aggregate.getColumns(), activeColumns = aggregate.getActiveColumns(), allColumnDefs = this.convertToColumnDef(allColumns), activeColumnDefs = this.convertActiveColumnsToColumnDef(activeColumns), width = aggregate.getWidth(), resizeWidth = aggregate.isResizeEnabled(), aggregateId = aggregate.getId();\n return new CompositionReadModeRoot(aggregateId.toReadModelRootId(), ready, allColumnDefs, activeColumnDefs, width, resizeWidth);\n }\n convertToColumnDef(columns) {\n const columnDefs = [];\n columns.forEach((column) => {\n const columnDef = this.columnDefinitionFactory.create(column);\n columnDefs.push(columnDef);\n });\n return columnDefs;\n }\n convertActiveColumnsToColumnDef(activeColumns) {\n const columnDefs = [];\n activeColumns.forEach((column) => {\n const columnDef = this.columnDefinitionFactory.create(column);\n columnDefs.push(columnDef);\n });\n return columnDefs;\n }\n}\n\nclass InMemoryCompositionReadStore extends InMemoryReadModelStore {\n inMemoryCompositionStore;\n compositionConverter;\n constructor(inMemoryCompositionStore, compositionConverter) {\n super(inMemoryCompositionStore);\n this.inMemoryCompositionStore = inMemoryCompositionStore;\n this.compositionConverter = compositionConverter;\n }\n static services = [InMemoryCompositionStore, CompositionReadModelRootConverter];\n toReadModel(aggregate) {\n return this.compositionConverter.convert(aggregate);\n }\n}\n\nclass CompositionReadModelRootRepository extends ReadModelRootRepository {\n constructor() {\n super();\n }\n}\n\nclass CompositionCreatedEvent extends CompositionDomainEvent {\n constructor(compositionId) {\n super(compositionId, null, 'CompositionCreatedEvent');\n }\n}\n\nclass InMemoryCompositionRepository extends CompositionReadModelRootRepository {\n inMemoryCompositionReadStore;\n compositionIdToComposition = new Map();\n composition$ = new HermesReplaySubject(1);\n constructor(inMemoryCompositionReadStore) {\n super();\n this.inMemoryCompositionReadStore = inMemoryCompositionReadStore;\n }\n static services = [InMemoryCompositionReadStore];\n on(compositionId) {\n return this.composition$\n .toObservable()\n .pipe(hermesFilter((compositionIdToComposition) => {\n const key = compositionId.getId();\n return compositionIdToComposition.has(key);\n }), hermesMap((compositionIdToComposition) => compositionIdToComposition.get(compositionId.getId())));\n }\n find(compositionId) {\n const key = compositionId.getId();\n return Optional.of(this.compositionIdToComposition.get(key));\n }\n forEvents() {\n return [\n CompositionCreatedEvent,\n CompositionResizeWidthSetEvent,\n CompositionColumnsSetEvent,\n CompositionContainerWidthSetEvent,\n CompositionWidthSetEvent,\n CompositionColumnSetEnabledEvent,\n CompositionColumnMovedLeftEvent,\n CompositionColumnMovedRightEvent,\n CompositionChangeSortStatusEvent\n ];\n }\n subscribe(event) {\n const aggregateId = event.getAggregateId();\n const optComposition = this.inMemoryCompositionReadStore.getById(aggregateId);\n optComposition.ifPresent((composition) => {\n const key = composition.getId().toString();\n this.compositionIdToComposition.set(key, composition);\n this.composition$.next(this.compositionIdToComposition);\n });\n }\n}\n\nclass CreateCompositionCommandHandler {\n forCommand() {\n return CreateCompositionCommand;\n }\n}\n\nclass CompositionContainerWidthCalculator {\n MIN_COLUMN_WIDTH;\n constructor(MIN_COLUMN_WIDTH) {\n this.MIN_COLUMN_WIDTH = MIN_COLUMN_WIDTH;\n }\n calculateMinWidth(columnWidths) {\n const { staticColumns, fluidColumns } = this.segregateColumns(columnWidths);\n // TODO reduce\n let sum = 0;\n staticColumns.forEach((c) => {\n sum += c.getWidth();\n });\n sum += fluidColumns.length * this.MIN_COLUMN_WIDTH;\n return sum;\n }\n segregateColumns(columns) {\n const staticColumns = columns.filter((columnWidth) => columnWidth.isTypeNumber() && columnWidth.getWidth() > this.MIN_COLUMN_WIDTH), fluidColumns = columns.filter((columnWidth) => {\n return columnWidth.isTypeAuto() ||\n columnWidth.isTypePercentage() ||\n (columnWidth.isTypeNumber() && columnWidth.getWidth() <= this.MIN_COLUMN_WIDTH);\n });\n return {\n staticColumns: staticColumns,\n fluidColumns: fluidColumns\n };\n }\n}\n\nclass CompositionAggregateEvent extends AggregateEvent {\n}\n\nclass CompositionWidthSetAggregateEvent extends CompositionAggregateEvent {\n constructor(aggregateId) {\n super(aggregateId, 'CompositionWidthSetAggregateEvent');\n }\n toDomainEvent() {\n return new CompositionWidthSetEvent(this.getAggregateId());\n }\n}\n\nclass CompositionContainerWidthSetAggregateEvent extends CompositionAggregateEvent {\n containerWidth;\n constructor(compositionId, containerWidth) {\n super(compositionId, 'CompositionContainerWidthSetAggregateEvent');\n this.containerWidth = containerWidth;\n }\n toDomainEvent() {\n return new CompositionContainerWidthSetEvent(this.getAggregateId(), this.containerWidth);\n }\n}\n\nclass CompositionResizeWidthSetAggregateEvent extends CompositionAggregateEvent {\n constructor(compositionId) {\n super(compositionId, 'CompositionResizeWidthSetAggregateEvent');\n }\n toDomainEvent() {\n return new CompositionResizeWidthSetEvent(this.getAggregateId());\n }\n}\n\nclass CompositionColumnSetEnabledAggregateEvent extends CompositionAggregateEvent {\n activeColumns;\n constructor(aggregateId, activeColumns) {\n super(aggregateId, 'CompositionColumnSetEnabledAggregateEvent');\n this.activeColumns = activeColumns;\n }\n toDomainEvent() {\n return new CompositionColumnSetEnabledEvent(this.getAggregateId());\n }\n getActiveColumns() {\n return this.activeColumns;\n }\n}\n\nvar ColumnWidthType;\n(function (ColumnWidthType) {\n ColumnWidthType[ColumnWidthType[\"PERCENTAGE\"] = 0] = \"PERCENTAGE\";\n ColumnWidthType[ColumnWidthType[\"NUMBER\"] = 1] = \"NUMBER\";\n ColumnWidthType[ColumnWidthType[\"AUTO\"] = 2] = \"AUTO\";\n})(ColumnWidthType || (ColumnWidthType = {}));\n\nclass ColumnWidth {\n template;\n baseWidth;\n width;\n constructor(width) {\n this.baseWidth = width;\n this.setWidthAndType(width);\n }\n getWidth() {\n return this.width;\n }\n getColumnType() {\n return this.template;\n }\n isTypePercentage() {\n return this.template === ColumnWidthType.PERCENTAGE;\n }\n isTypeAuto() {\n return this.template === ColumnWidthType.AUTO;\n }\n isTypeNumber() {\n return this.template === ColumnWidthType.NUMBER;\n }\n setWidth(width) {\n this.width = width;\n }\n setWidthAndType(width) {\n if (width === undefined || width === null || width === 'auto') {\n this.template = ColumnWidthType.AUTO;\n this.setWidth(null);\n }\n else if (this.isPercentage(width)) {\n this.template = ColumnWidthType.PERCENTAGE;\n this.setWidth(this.percentageToNumber('' + width));\n }\n else if (this.isStringNumber(width)) {\n this.template = ColumnWidthType.NUMBER;\n this.setWidth(+width);\n }\n else {\n this.template = ColumnWidthType.NUMBER;\n this.setWidth(+width);\n }\n }\n clone() {\n return new ColumnWidth(this.baseWidth);\n }\n isPercentage(width) {\n return typeof width === 'string' && width[width.length - 1] === '%';\n }\n /**\n * Width needs to be in format '89%'\n * @param width\n */\n percentageToNumber(width) {\n return +(width.slice(0, -1));\n }\n isStringNumber(width) {\n const widthAsNumber = +width;\n return Number.isNaN(widthAsNumber);\n }\n}\n\nclass CompositionWidthCalculator {\n source;\n width;\n MIN_COLUMN_WIDTH;\n columns;\n constructor(source, width, MIN_COLUMN_WIDTH) {\n this.source = source;\n this.width = width;\n this.MIN_COLUMN_WIDTH = MIN_COLUMN_WIDTH;\n this.columns = this.source.map((c) => c.clone());\n }\n calculate() {\n let width = this.width, columns = Array.from(this.columns);\n // adjust min value\n this.adjustMinimalWidth(columns);\n // remove number columns\n const newColumns = [];\n columns.forEach((column, index) => {\n if (column.isTypeNumber()) {\n width -= column.getWidth();\n }\n else {\n newColumns.push(column);\n }\n });\n columns = newColumns;\n // split even auto columns\n if (columns.length !== 0) {\n const evenWidth = width / columns.length;\n columns.forEach((column, index) => {\n column.setWidth(evenWidth);\n });\n }\n // adjust number columns\n // let numberColumns = this.columns.filter((columnWidth: ColumnWidth) => columnWidth.isTypeNumber());\n //\n // // sort by min values\n // numberColumns.sort((columnOne: ColumnWidth, columnTwo: ColumnWidth) => {\n // \treturn columnOne.getWidth() - columnTwo.getWidth();\n // });\n //\n // numberColumns.forEach(() => {\n // });\n // this.adjustMinimalWidth(ColumnWidthType.NUMBER);\n //\n // this.adjustPercentageWidth();\n //\n // this.adjustAutoWidth();\n return this.columns;\n }\n adjustMinimalWidth(columns) {\n columns.forEach((column) => {\n if (column.isTypeNumber()) {\n if (column.getWidth() < this.MIN_COLUMN_WIDTH) {\n column.setWidthAndType(this.MIN_COLUMN_WIDTH);\n }\n }\n });\n }\n adjustPercentageWidth() {\n const percentageColumns = this.columns.filter((columnWidth) => columnWidth.isTypePercentage());\n for (const column of this.columns) {\n if (column.getColumnType() === ColumnWidthType.PERCENTAGE) {\n column.setWidth(this.width * column.getWidth() * 0.01);\n }\n }\n }\n adjustAutoWidth() {\n let leftWidth = this.width;\n const autoColumns = [];\n for (let i = 0; i < this.columns.length; i += 1) {\n const column = this.columns[i];\n if (column.getColumnType() !== ColumnWidthType.AUTO) {\n leftWidth -= column.getWidth();\n }\n else {\n autoColumns.push(column);\n }\n }\n if (autoColumns.length > 0) {\n const splitWidth = leftWidth / autoColumns.length;\n for (const column of autoColumns) {\n column.setWidth(splitWidth);\n }\n }\n }\n}\n\nclass ColumnWidthCollection {\n MIN_COLUMN_WIDTH;\n baseColumnWidths;\n columnWidths;\n width;\n constructor(MIN_COLUMN_WIDTH, columns = [], width = 100) {\n this.MIN_COLUMN_WIDTH = MIN_COLUMN_WIDTH;\n this.baseColumnWidths = columns.map((column) => new ColumnWidth(column.width));\n this.columnWidths = columns.map((column) => new ColumnWidth(column.width));\n this.setContainerWidth(width);\n this.calculate();\n }\n getColumnWidths() {\n return this.baseColumnWidths;\n }\n getColumnsWidth() {\n return this.width;\n }\n getWidths() {\n return this.columnWidths.map(c => c.getWidth());\n }\n getMinWidth() {\n const calculator = new CompositionContainerWidthCalculator(this.MIN_COLUMN_WIDTH);\n return calculator.calculateMinWidth(this.columnWidths);\n }\n setWidth(width) {\n this.setContainerWidth(width);\n this.calculate();\n }\n setColumns(columnConfigs) {\n this.baseColumnWidths = columnConfigs.map((column) => new ColumnWidth(column.width));\n this.columnWidths = columnConfigs.map((column) => new ColumnWidth(column.width));\n this.calculate();\n }\n getMinColumnWidth() {\n return this.MIN_COLUMN_WIDTH;\n }\n calculate() {\n if (this.baseColumnWidths && this.width) {\n const calculator = new CompositionWidthCalculator(this.baseColumnWidths, this.width, this.MIN_COLUMN_WIDTH);\n this.columnWidths = calculator.calculate();\n }\n }\n setContainerWidth(width) {\n if (this.getMinWidth() > width) {\n this.width = this.getMinWidth();\n }\n else {\n this.width = width;\n }\n this.calculate();\n }\n}\n\nclass CompositionChangeSortStatusAggregateEvent extends CompositionAggregateEvent {\n activeColumns;\n constructor(aggregateId, activeColumns) {\n super(aggregateId, 'CompositionChangeSortStatusAggregateEvent');\n this.activeColumns = activeColumns;\n }\n toDomainEvent() {\n return new CompositionChangeSortStatusEvent(this.getAggregateId(), this.activeColumns);\n }\n}\n\nclass ActiveColumnContainer {\n compositionId;\n MIN_COLUMN_WIDTH = 50;\n columns;\n /**\n * Columns taken from user config.\n * This should not be modified and it should be used as a reference point.\n */\n columnWidthCollection = new ColumnWidthCollection(this.MIN_COLUMN_WIDTH);\n constructor(compositionId, columns = [], gridWidth, columnConfigs) {\n this.compositionId = compositionId;\n this.columns = columns;\n if (gridWidth && columnConfigs) {\n this.columnWidthCollection = new ColumnWidthCollection(this.MIN_COLUMN_WIDTH, columnConfigs, gridWidth);\n }\n }\n getColumnWidths() {\n return this.columnWidthCollection.getColumnWidths();\n }\n // REMOVE\n getColumns() {\n return this.columns;\n }\n setWidth(width) {\n this.columnWidthCollection.setWidth(width);\n }\n addColumn(column, index) {\n this.columns.splice(index, 0, column);\n }\n removeColumn(index) {\n this.columns.splice(index, 1);\n }\n setColumns(columns, columnConfigs) {\n this.columns = columns;\n this.columnWidthCollection.setColumns(columnConfigs);\n const updatedWidths = this.columnWidthCollection.getWidths();\n this.columns.forEach((column, index) => {\n column.setWidth(updatedWidths[index]);\n });\n // TODO\n // this.addEvent(new ColumnsSetAggregateEvent(this.getId(), columns));\n }\n changeSort(sortParams) {\n this.columns.forEach((column) => {\n column.setSortStatus(SortOrder.NONE);\n });\n for (const param of sortParams) {\n const fieldId = param.fieldId, direction = param.direction, sortStatus = direction ? SortOrder.ASC : SortOrder.DESC;\n const columns = this.columns.filter((column) => {\n return column.getField().getId().getId() === fieldId.getId();\n });\n if (columns.length > 0) {\n columns.forEach((column) => {\n column.setSortStatus(sortStatus);\n });\n }\n }\n return new CompositionChangeSortStatusAggregateEvent(this.getCompositionId(), this.columns);\n }\n moveLeft(columnId) {\n const index = this.findColumnIndex(columnId);\n this.move(index, index - 1);\n }\n moveRight(columnId) {\n const index = this.findColumnIndex(columnId);\n this.move(index, index + 1);\n }\n getMinColumnWidth() {\n return this.MIN_COLUMN_WIDTH;\n }\n move(fromIndex, toIndex) {\n if (!this.validateMoveIndex(fromIndex) || !this.validateMoveIndex(toIndex)) {\n return;\n }\n const column = this.columns[fromIndex];\n this.columns[fromIndex] = this.columns[toIndex];\n this.columns[toIndex] = column;\n }\n validateMoveIndex(index) {\n return index >= 0;\n }\n getCompositionId() {\n return this.compositionId;\n }\n findColumnIndex(columnId) {\n return this.columns.findIndex(c => c.getId().equals(columnId));\n }\n}\n\nclass ActiveColumnEntity extends ColumnEntity {\n constructor(columnId, columnField, header, align, view, config, presentation) {\n super(columnId, columnField, config, true, presentation, header, align, view, undefined);\n }\n static fromEntity(entity) {\n return new ActiveColumnEntity(entity.getId(), entity.getField(), entity.getHeader(), entity.getAlign(), entity.getView(), entity.getColumnConfig(), entity.getPresentation());\n }\n}\n\nclass ActiveColumnEntityConverter {\n convertMany(entities) {\n return entities.map(e => this.convert(e));\n }\n convert(entity) {\n return ActiveColumnEntity.fromEntity(entity);\n }\n}\n\nclass CompositionColumnMovedLeftAggregateEvent extends CompositionAggregateEvent {\n constructor(aggregateId) {\n super(aggregateId, 'CompositionColumnMovedLeftAggregateEvent');\n }\n toDomainEvent() {\n return new CompositionColumnMovedLeftEvent(this.getAggregateId());\n }\n}\n\nclass CompositionColumnMovedRightAggregateEvent extends CompositionAggregateEvent {\n constructor(aggregateId) {\n super(aggregateId, 'CompositionColumnMovedRightAggregateEvent');\n }\n toDomainEvent() {\n return new CompositionColumnMovedRightEvent(this.getAggregateId());\n }\n}\n\nclass ColumnsSetAggregateEvent extends CompositionAggregateEvent {\n constructor(compositionId) {\n super(compositionId, 'ColumnsSetAggregateEvent');\n }\n toDomainEvent() {\n return new CompositionColumnsSetEvent(this.getAggregateId());\n }\n}\n\nclass CompositionCreatedAggregateEvent extends CompositionAggregateEvent {\n constructor(compositionId) {\n super(compositionId, 'SchemaCreatedEvent');\n }\n toDomainEvent() {\n return new CompositionCreatedEvent(this.getAggregateId());\n }\n}\n\nconst emptyGroup = new Group(new GroupId('-1'), '', 100);\n\nclass CompositionAggregate extends AggregateRoot {\n allColumns = [];\n baseColumns;\n baseParams;\n /**\n * Value taken from user config [width]\n */\n width;\n containerInDOMWidth;\n resizeWidthEnabled = true;\n columnFactory;\n groupFactory;\n activeColumnContainer;\n activeColumnEntityConverter = new ActiveColumnEntityConverter();\n groups = new KeyMap();\n columnNameToGroupId = new Map();\n constructor(id, columnFactory, groupFactory, columnsParams = [], width, resizeWidth) {\n super(id, 'CompositionAggregate');\n const columnConfigs = columnsParams.map((param) => param.getColumn());\n this.baseParams = columnsParams;\n this.baseColumns = columnConfigs;\n this.columnFactory = columnFactory;\n this.groupFactory = groupFactory;\n this.width = width;\n this.allColumns = this.columnFactory.create(columnsParams);\n const activeColumns = this.activeColumnEntityConverter.convertMany(this.getEnabledColumns());\n this.activeColumnContainer = new ActiveColumnContainer(this.getId(), activeColumns, width, columnConfigs);\n if (resizeWidth !== undefined && resizeWidth !== null) {\n this.resizeWidthEnabled = resizeWidth;\n }\n }\n createEvent() {\n return CompositionCreatedAggregateEvent;\n }\n // REMOVE\n getColumns() {\n return this.allColumns;\n }\n // REMOVE\n getActiveColumns() {\n return this.activeColumnContainer.getColumns();\n }\n // make private\n getWidth() {\n if (this.resizeWidthEnabled) {\n return this.containerInDOMWidth;\n }\n else {\n return this.width;\n }\n }\n // REMOVE\n isResizeEnabled() {\n return this.resizeWidthEnabled;\n }\n // REMOVE\n isReady() {\n return !!this.getWidth() && this.getActiveColumns().length > 0;\n }\n setGroups(configs) {\n for (let i = 0; i < configs.length; i += 1) {\n const config = configs[i];\n if (config.columns !== undefined) {\n const group = this.groupFactory.create(config);\n this.groups.set(group.id, group);\n config.columns.forEach((c, index) => {\n this.columnNameToGroupId.set(c.header, group.id);\n });\n }\n else {\n this.columnNameToGroupId.set(config.header, emptyGroup.id);\n }\n }\n }\n setColumns(params) {\n this.allColumns = this.columnFactory.create(params);\n const columnConfigs = params.map((param) => param.getColumn());\n const activeColumns = this.activeColumnEntityConverter.convertMany(this.getEnabledColumns());\n this.activeColumnContainer.setColumns(activeColumns, columnConfigs);\n this.addEvent(new ColumnsSetAggregateEvent(this.getId()));\n }\n setContainerWidth(containerWidth) {\n this.setContainerWidthWithEvent(containerWidth);\n this.recalculateColumns();\n }\n setWidth(width) {\n this.setWidthWithEvent(width);\n this.setResizeWidthWithEvent(false);\n this.recalculateColumns();\n }\n setResizeWidth(enabled) {\n this.setResizeWidthWithEvent(enabled);\n }\n changeSort(sortParams) {\n this.addEvent(this.activeColumnContainer.changeSort(sortParams));\n }\n // DELEGATE\n enableColumn(columnId, enabled) {\n let enabledIndex = -1;\n this.allColumns.forEach((column, index) => {\n if (column.getId().getId() === columnId.getId()) {\n const prevState = column.isEnabled();\n column.setEnabled(enabled);\n if (prevState !== enabled) {\n enabledIndex = index;\n }\n }\n });\n if (enabledIndex > 0) {\n if (enabled) {\n // convert\n const columnToAdd = this.activeColumnEntityConverter.convert(this.allColumns[enabledIndex]);\n this.activeColumnContainer.addColumn(columnToAdd, enabledIndex);\n }\n else {\n this.activeColumnContainer.removeColumn(enabledIndex);\n }\n }\n this.recalculateColumns();\n this.addEvent(new CompositionColumnSetEnabledAggregateEvent(this.getId(), this.getActiveColumns()));\n }\n moveLeft(columnId) {\n const columnIndex = this.findColumnIndex(columnId);\n let nextLeft, nextLeftIndex = -1;\n for (let i = columnIndex - 1; i >= 0; i -= 1) {\n const leftColumn = this.allColumns[i];\n if (leftColumn.isEnabled()) {\n nextLeft = leftColumn;\n nextLeftIndex = i;\n break;\n }\n }\n if (nextLeft && nextLeftIndex >= 0 && columnIndex >= 0) {\n const column = this.allColumns[columnIndex];\n this.allColumns[columnIndex] = nextLeft;\n this.allColumns[nextLeftIndex] = column;\n }\n this.activeColumnContainer.moveLeft(columnId);\n this.addEvent(new CompositionColumnMovedLeftAggregateEvent(this.getId()));\n }\n moveRight(columnId) {\n const columnIndex = this.findColumnIndex(columnId);\n let nextRight, nextRightIndex = -1;\n for (let i = columnIndex + 1; i < this.allColumns.length; i += 1) {\n const rightColumn = this.allColumns[i];\n if (rightColumn.isEnabled()) {\n nextRight = rightColumn;\n nextRightIndex = i;\n break;\n }\n }\n if (nextRight && nextRightIndex >= 0 && columnIndex >= 0) {\n const column = this.allColumns[columnIndex];\n this.allColumns[columnIndex] = nextRight;\n this.allColumns[nextRightIndex] = column;\n }\n this.activeColumnContainer.moveRight(columnId);\n this.addEvent(new CompositionColumnMovedRightAggregateEvent(this.getId()));\n }\n recalculateColumns() {\n const activeColumns = this.activeColumnEntityConverter.convertMany(this.getEnabledColumns());\n this.activeColumnContainer.setColumns(activeColumns, activeColumns.map(c => c.getColumnConfig()));\n }\n // TODO Refactor\n setWidthWithEvent(width) {\n const calculator = new CompositionContainerWidthCalculator(this.getMinColumnWidth());\n const minWidth = calculator.calculateMinWidth(this.activeColumnContainer.getColumnWidths());\n if (minWidth > width) {\n this.width = minWidth;\n }\n else {\n this.width = width;\n }\n this.activeColumnContainer.setWidth(this.getWidth());\n this.addEvent(new CompositionWidthSetAggregateEvent(this.getId()));\n }\n // TODO Refactor\n setContainerWidthWithEvent(containerWidth) {\n const calculator = new CompositionContainerWidthCalculator(this.getMinColumnWidth());\n const minWidth = calculator.calculateMinWidth(this.activeColumnContainer.getColumnWidths());\n if (minWidth > containerWidth) {\n this.containerInDOMWidth = minWidth;\n }\n else {\n this.containerInDOMWidth = containerWidth;\n }\n this.activeColumnContainer.setWidth(this.getWidth());\n this.addEvent(new CompositionContainerWidthSetAggregateEvent(this.getId(), containerWidth));\n }\n setResizeWidthWithEvent(enabled) {\n this.resizeWidthEnabled = enabled;\n this.activeColumnContainer.setWidth(this.getWidth());\n this.addEvent(new CompositionResizeWidthSetAggregateEvent(this.getId()));\n }\n // REMOVE -> move to allColumnsContainer\n getEnabledColumns() {\n return this.allColumns.filter(c => c.isEnabled());\n }\n findColumnIndex(columnId) {\n return this.allColumns.findIndex((column) => column.getId().equals(columnId));\n }\n getMinColumnWidth() {\n return this.activeColumnContainer.getMinColumnWidth();\n }\n}\n\nclass CompositionAggregateFactory extends AggregateFactory {\n columnFactory;\n groupFactory;\n constructor(columnFactory, groupFactory) {\n super();\n this.columnFactory = columnFactory;\n this.groupFactory = groupFactory;\n }\n static services = [\n ColumnEntityFactory,\n CompositionGroupFactory\n ];\n create(id) {\n return new CompositionAggregate(id, this.columnFactory, this.groupFactory);\n }\n}\n\nconst compositionKey = 'CompositionAggregate';\nclass CompositionDomainModule {\n defineAggregate() {\n return {\n aggregateKey: compositionKey,\n createCommandHandler: CreateCompositionCommandHandler,\n factory: CompositionAggregateFactory,\n repository: InMemoryCompositionAggregateRepository\n };\n }\n registerKey() {\n return compositionKey;\n }\n registerProviders(container) {\n container.provide(InMemoryCompositionAggregateStore);\n container.provide(CompositionAggregateRepository, InMemoryCompositionAggregateRepository);\n container.provide(CompositionDispatcher);\n container.provide(ColumnEntityFactory);\n container.provide(ColumnPresentationConverter);\n container.provide(CompositionEventConverter);\n container.provide(ColumnFieldFactory);\n container.provide(CompositionGroupFactory);\n container.provide(ColumnHighlightArchive);\n container.provide(InMemoryCompositionStore);\n container.provide(InMemoryCompositionReadStore);\n container.provide(CompositionReadModelRootRepository, InMemoryCompositionRepository);\n }\n registerCommandHandlers() {\n return [\n SetColumnsCommandHandler,\n SetCompositionWidthCommandHandler,\n SetCompositionResizeWidthCommandHandler,\n SetCompositionContainerWidthCommandHandler,\n CompositionSetColumnEnabledCommandHandler,\n CompositionChangeSortStatusCommandHandler,\n CompositionMoveLeftColumnCommandHandler,\n CompositionMoveRightColumnCommandHandler,\n SetGroupsCommandHandler\n ];\n }\n registerDomainEventHandler() {\n return [];\n }\n registerMultiDomainEventHandler() {\n return [\n CompositionChangeSortStatusEventHandler\n ];\n }\n}\n\nclass FunctionViewComponent extends PureComponent {\n sanitizer;\n element;\n safeHTML;\n constructor(sanitizer, elRef) {\n super(elRef);\n this.sanitizer = sanitizer;\n this.addClassToHost('gui-h-full');\n this.addClassToHost('gui-w-full');\n }\n ngOnChanges() {\n this.safeHTML = this.sanitizer.bypassSecurityTrustHtml(this.element.value);\n }\n getSelectorName() {\n return 'gui-function-view';\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: FunctionViewComponent, deps: [{ token: i1.DomSanitizer }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"17.0.2\", type: FunctionViewComponent, selector: \"gui-function-view\", inputs: { element: \"element\" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: `\n\n\t\t
\n\t\t
\n\n\t`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: FunctionViewComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'gui-function-view',\n template: `\n\n\t\t
\n\t\t
\n\n\t`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n }]\n }], ctorParameters: () => [{ type: i1.DomSanitizer }, { type: i0.ElementRef }], propDecorators: { element: [{\n type: Input\n }] } });\n\nclass PercentageViewComponent extends PureComponent {\n value;\n constructor(elementRef) {\n super(elementRef);\n }\n getSelectorName() {\n return 'gui-percentage-view';\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: PercentageViewComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"17.0.2\", type: PercentageViewComponent, selector: \"gui-percentage-view[value]\", inputs: { value: \"value\" }, usesInheritance: true, ngImport: i0, template: `\n\t\t{{ value }} %\n\t`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: PercentageViewComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'gui-percentage-view[value]',\n template: `\n\t\t{{ value }} %\n\t`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n }]\n }], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { value: [{\n type: Input\n }] } });\n\nclass BarViewComponent extends PureComponent {\n value;\n showPercentage = false;\n width;\n constructor(elementRef) {\n super(elementRef);\n }\n ngOnChanges(changes) {\n ifChanged(changes.value, () => {\n this.width = this.value > 100 ? 100 : this.value;\n });\n }\n getSelectorName() {\n return 'gui-bar-view';\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: BarViewComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"17.0.2\", type: BarViewComponent, selector: \"gui-bar-view[value]\", inputs: { value: \"value\", showPercentage: \"showPercentage\" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: `\n\t\t
\n\t\t\t
\n\t\t\t
\n\t\t\t\n\t\t\t\n\t\t
\n\t`, isInline: true, dependencies: [{ kind: \"directive\", type: i4.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { kind: \"component\", type: PercentageViewComponent, selector: \"gui-percentage-view[value]\", inputs: [\"value\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: BarViewComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'gui-bar-view[value]',\n template: `\n\t\t
\n\t\t\t
\n\t\t\t
\n\t\t\t\n\t\t\t\n\t\t
\n\t`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n }]\n }], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { value: [{\n type: Input\n }], showPercentage: [{\n type: Input\n }] } });\n\nclass SafePipe {\n sanitizer;\n constructor(sanitizer) {\n this.sanitizer = sanitizer;\n }\n transform(value, type) {\n switch (type) {\n case 'html':\n return this.sanitizer.bypassSecurityTrustHtml(value);\n case 'style':\n return this.sanitizer.bypassSecurityTrustStyle(value);\n case 'script':\n return this.sanitizer.bypassSecurityTrustScript(value);\n case 'url':\n return this.sanitizer.bypassSecurityTrustUrl(value);\n case 'resourceUrl':\n return this.sanitizer.bypassSecurityTrustResourceUrl(value);\n default:\n throw new Error(`Invalid safe type specified: ${type}`);\n }\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: SafePipe, deps: [{ token: i1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Pipe });\n static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"17.0.2\", ngImport: i0, type: SafePipe, name: \"guiSafe\" });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: SafePipe, decorators: [{\n type: Pipe,\n args: [{\n name: 'guiSafe'\n }]\n }], ctorParameters: () => [{ type: i1.DomSanitizer }] });\n\nclass TextViewComponent extends PureComponent {\n value;\n isHtml = false;\n constructor(isBold, isItalic, elementRef) {\n super(elementRef);\n if (isBold !== null) {\n this.addClassToHost('gui-bold');\n }\n if (isItalic !== null) {\n this.addClassToHost('gui-italic');\n }\n }\n ngOnChanges() {\n this.isHtml = this.value.type === CellValueType.HTML;\n }\n getSelectorName() {\n return 'gui-text-view';\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: TextViewComponent, deps: [{ token: 'bold', attribute: true }, { token: 'italic', attribute: true }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"17.0.2\", type: TextViewComponent, selector: \"gui-view-text[value]\", inputs: { value: \"value\" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: `\n\n\t\t\n\t\t\t\n\t\t\n\n\t\t\n\t\t\t\n\t\t\t\t{{value.value}}\n\t\t\t\n\t\t\n\t`, isInline: true, dependencies: [{ kind: \"directive\", type: i4.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { kind: \"pipe\", type: SafePipe, name: \"guiSafe\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: TextViewComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'gui-view-text[value]',\n template: `\n\n\t\t\n\t\t\t\n\t\t\n\n\t\t\n\t\t\t\n\t\t\t\t{{value.value}}\n\t\t\t\n\t\t\n\t`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n }]\n }], ctorParameters: () => [{ type: undefined, decorators: [{\n type: Attribute,\n args: ['bold']\n }] }, { type: undefined, decorators: [{\n type: Attribute,\n args: ['italic']\n }] }, { type: i0.ElementRef }], propDecorators: { value: [{\n type: Input\n }] } });\n\nclass HtmlViewComponent extends PureComponent {\n sanitizer;\n element;\n safeHTML;\n constructor(sanitizer, elRef) {\n super(elRef);\n this.sanitizer = sanitizer;\n this.addClassToHost('gui-h-full');\n this.addClassToHost('gui-w-full');\n }\n ngOnChanges() {\n this.safeHTML = this.sanitizer.bypassSecurityTrustHtml(this.element.value);\n }\n getSelectorName() {\n return 'gui-html-view';\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: HtmlViewComponent, deps: [{ token: i1.DomSanitizer }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"17.0.2\", type: HtmlViewComponent, selector: \"gui-html-view\", inputs: { element: \"element\" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: `\n\n\t\t
\n\t\t
\n\n\t`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: HtmlViewComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'gui-html-view',\n template: `\n\n\t\t
\n\t\t
\n\n\t`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n }]\n }], ctorParameters: () => [{ type: i1.DomSanitizer }, { type: i0.ElementRef }], propDecorators: { element: [{\n type: Input\n }] } });\n\nclass ViewTemplatesComponent {\n textTemplate;\n numberTemplate;\n chipTemplate;\n linkTemplate;\n imageTemplate;\n checkboxTemplate;\n boldTemplate;\n italicTemplate;\n customTemplate;\n functionTemplate;\n htmlTemplate;\n dateTemplate;\n barTemplate;\n percentageBarTemplate;\n percentageTemplate;\n getTemplate(view) {\n switch (view) {\n case CellView.TEXT:\n return this.textTemplate;\n case CellView.NUMBER:\n return this.numberTemplate;\n case CellView.CHIP:\n return this.chipTemplate;\n case CellView.LINK:\n return this.linkTemplate;\n case CellView.IMAGE:\n return this.imageTemplate;\n case CellView.CHECKBOX:\n return this.checkboxTemplate;\n case CellView.BOLD:\n return this.boldTemplate;\n case CellView.ITALIC:\n return this.italicTemplate;\n case CellView.CUSTOM:\n return this.customTemplate;\n case CellView.FUNCTION:\n return this.functionTemplate;\n case CellView.HTML:\n return this.htmlTemplate;\n case CellView.DATE:\n return this.dateTemplate;\n case CellView.BAR:\n return this.barTemplate;\n case CellView.PERCENTAGE_BAR:\n return this.percentageBarTemplate;\n case CellView.PERCENTAGE:\n return this.percentageTemplate;\n default:\n return this.textTemplate;\n }\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: ViewTemplatesComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"17.0.2\", type: ViewTemplatesComponent, selector: \"ng-component\", viewQueries: [{ propertyName: \"textTemplate\", first: true, predicate: [\"text\"], descendants: true, read: TemplateRef, static: true }, { propertyName: \"numberTemplate\", first: true, predicate: [\"number\"], descendants: true, read: TemplateRef, static: true }, { propertyName: \"chipTemplate\", first: true, predicate: [\"chip\"], descendants: true, read: TemplateRef, static: true }, { propertyName: \"linkTemplate\", first: true, predicate: [\"link\"], descendants: true, read: TemplateRef, static: true }, { propertyName: \"imageTemplate\", first: true, predicate: [\"image\"], descendants: true, read: TemplateRef, static: true }, { propertyName: \"checkboxTemplate\", first: true, predicate: [\"checkbox\"], descendants: true, read: TemplateRef, static: true }, { propertyName: \"boldTemplate\", first: true, predicate: [\"bold\"], descendants: true, read: TemplateRef, static: true }, { propertyName: \"italicTemplate\", first: true, predicate: [\"italic\"], descendants: true, read: TemplateRef, static: true }, { propertyName: \"customTemplate\", first: true, predicate: [\"custom\"], descendants: true, read: TemplateRef, static: true }, { propertyName: \"functionTemplate\", first: true, predicate: [\"function\"], descendants: true, read: TemplateRef, static: true }, { propertyName: \"htmlTemplate\", first: true, predicate: [\"html\"], descendants: true, read: TemplateRef, static: true }, { propertyName: \"dateTemplate\", first: true, predicate: [\"date\"], descendants: true, read: TemplateRef, static: true }, { propertyName: \"barTemplate\", first: true, predicate: [\"bar\"], descendants: true, read: TemplateRef, static: true }, { propertyName: \"percentageBarTemplate\", first: true, predicate: [\"percentageBar\"], descendants: true, read: TemplateRef, static: true }, { propertyName: \"percentageTemplate\", first: true, predicate: [\"percentage\"], descendants: true, read: TemplateRef, static: true }], ngImport: i0, template: `\n\n\t\t\n\t\t\t\n\t\t\n\n\t\t\n\t\t\t\n\t\t\t\t{{ element.value }}\n\t\t\t\n\t\t\n\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\n\t\t\n\t\t\t\n\t\t\n\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\n\t\t\n\t\t\t\n\t\t\n\n\t\t\n\t\t\t\n\t\t\n\n\t\t\n\t\t\t{{ element.value }}\n\t\t\n\n\t\t\n\t\t\t\n\t\t\n\n\t\t\n\t\t\t\n\t\t\n\n\t\t\n\t\t\t{{ element.value | date: 'dd/MM/yyyy' }}\n\t\t\n\n\t\t\n\t\t\t\n\t\t\n\n\t\t\n\t\t\t\n\t\t\n\n\t\t\n\t\t\t\n\t\t\n\n\t`, isInline: true, dependencies: [{ kind: \"component\", type: i1$1.FabricChipComponent, selector: \"gui-chip\" }, { kind: \"component\", type: i1$1.FabricCheckboxComponent, selector: \"gui-checkbox\", inputs: [\"name\", \"checked\", \"disabled\", \"readonly\", \"indeterminate\"], outputs: [\"changed\"] }, { kind: \"component\", type: i1$1.FabricButtonComponent, selector: \"button[gui-button], a[gui-button]\", inputs: [\"link\", \"text\"] }, { kind: \"component\", type: FunctionViewComponent, selector: \"gui-function-view\", inputs: [\"element\"] }, { kind: \"component\", type: BarViewComponent, selector: \"gui-bar-view[value]\", inputs: [\"value\", \"showPercentage\"] }, { kind: \"component\", type: PercentageViewComponent, selector: \"gui-percentage-view[value]\", inputs: [\"value\"] }, { kind: \"component\", type: TextViewComponent, selector: \"gui-view-text[value]\", inputs: [\"value\"] }, { kind: \"component\", type: HtmlViewComponent, selector: \"gui-html-view\", inputs: [\"element\"] }, { kind: \"pipe\", type: i4.DatePipe, name: \"date\" }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: ViewTemplatesComponent, decorators: [{\n type: Component,\n args: [{\n template: `\n\n\t\t\n\t\t\t\n\t\t\n\n\t\t\n\t\t\t\n\t\t\t\t{{ element.value }}\n\t\t\t\n\t\t\n\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\n\t\t\n\t\t\t\n\t\t\n\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\n\t\t\n\t\t\t\n\t\t\n\n\t\t\n\t\t\t\n\t\t\n\n\t\t\n\t\t\t{{ element.value }}\n\t\t\n\n\t\t\n\t\t\t\n\t\t\n\n\t\t\n\t\t\t\n\t\t\n\n\t\t\n\t\t\t{{ element.value | date: 'dd/MM/yyyy' }}\n\t\t\n\n\t\t\n\t\t\t\n\t\t\n\n\t\t\n\t\t\t\n\t\t\n\n\t\t\n\t\t\t\n\t\t\n\n\t`\n }]\n }], propDecorators: { textTemplate: [{\n type: ViewChild,\n args: ['text', { read: TemplateRef, static: true }]\n }], numberTemplate: [{\n type: ViewChild,\n args: ['number', { read: TemplateRef, static: true }]\n }], chipTemplate: [{\n type: ViewChild,\n args: ['chip', { read: TemplateRef, static: true }]\n }], linkTemplate: [{\n type: ViewChild,\n args: ['link', { read: TemplateRef, static: true }]\n }], imageTemplate: [{\n type: ViewChild,\n args: ['image', { read: TemplateRef, static: true }]\n }], checkboxTemplate: [{\n type: ViewChild,\n args: ['checkbox', { read: TemplateRef, static: true }]\n }], boldTemplate: [{\n type: ViewChild,\n args: ['bold', { read: TemplateRef, static: true }]\n }], italicTemplate: [{\n type: ViewChild,\n args: ['italic', { read: TemplateRef, static: true }]\n }], customTemplate: [{\n type: ViewChild,\n args: ['custom', { read: TemplateRef, static: true }]\n }], functionTemplate: [{\n type: ViewChild,\n args: ['function', { read: TemplateRef, static: true }]\n }], htmlTemplate: [{\n type: ViewChild,\n args: ['html', { read: TemplateRef, static: true }]\n }], dateTemplate: [{\n type: ViewChild,\n args: ['date', { read: TemplateRef, static: true }]\n }], barTemplate: [{\n type: ViewChild,\n args: ['bar', { read: TemplateRef, static: true }]\n }], percentageBarTemplate: [{\n type: ViewChild,\n args: ['percentageBar', { read: TemplateRef, static: true }]\n }], percentageTemplate: [{\n type: ViewChild,\n args: ['percentage', { read: TemplateRef, static: true }]\n }] } });\n\nclass TemplateFactory {\n templatesComponentDefinition;\n componentFactoryResolver;\n templates = new Map();\n templatesComponent = null;\n constructor(templatesComponentDefinition, componentFactoryResolver) {\n this.templatesComponentDefinition = templatesComponentDefinition;\n this.componentFactoryResolver = componentFactoryResolver;\n this.createTemplatesComponent();\n }\n getTemplates() {\n return this.templates;\n }\n destroy() {\n if (this.templatesComponent) {\n this.templatesComponent.destroy();\n this.templatesComponent = null;\n }\n }\n createTemplatesComponent() {\n const componentFactory = this.componentFactoryResolver.resolveComponentFactory(this.templatesComponentDefinition);\n const injector = Injector.create({ providers: [] });\n this.templatesComponent = componentFactory.create(injector);\n this.generateMap();\n }\n generateMap() {\n this.generateMapKeys()\n .forEach((type) => {\n this.findAndSetTemplate(type);\n });\n }\n ;\n findAndSetTemplate(dt) {\n const template = this.templatesComponent.instance.getTemplate(dt);\n this.templates.set(dt, template);\n }\n}\n\nclass ViewTemplateFactory extends TemplateFactory {\n constructor(componentFactoryResolver) {\n super(ViewTemplatesComponent, componentFactoryResolver);\n }\n static services = [ComponentFactoryResolver];\n generateMapKeys() {\n return Object.keys(CellView)\n .map(key => CellView[key]);\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: ViewTemplateFactory, deps: [{ token: i0.ComponentFactoryResolver }], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: ViewTemplateFactory });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: ViewTemplateFactory, decorators: [{\n type: Injectable\n }], ctorParameters: () => [{ type: i0.ComponentFactoryResolver }] });\n\nclass ViewTemplateRepository {\n columnTemplateFactory;\n constructor(columnTemplateFactory) {\n this.columnTemplateFactory = columnTemplateFactory;\n }\n static services = [ViewTemplateFactory];\n findTemplate(view) {\n const typeToTemplate = this.columnTemplateFactory.getTemplates();\n return typeToTemplate.get(view);\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: ViewTemplateRepository, deps: [{ token: ViewTemplateFactory }], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: ViewTemplateRepository });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: ViewTemplateRepository, decorators: [{\n type: Injectable\n }], ctorParameters: () => [{ type: ViewTemplateFactory }] });\n\nvar EditEventType;\n(function (EditEventType) {\n EditEventType[EditEventType[\"SUBMIT\"] = 0] = \"SUBMIT\";\n EditEventType[EditEventType[\"BLUR\"] = 1] = \"BLUR\";\n EditEventType[EditEventType[\"CANCEL\"] = 2] = \"CANCEL\";\n})(EditEventType || (EditEventType = {}));\n\nclass EditCommunicationComponent extends SmartComponent {\n value;\n valueChanges;\n status;\n focus;\n parent;\n ENTER_KEY_CODE = 13;\n ESC_KEY_CODE = 27;\n constructor(changeDetectorRef, elementRef) {\n super(changeDetectorRef, elementRef);\n }\n submit() {\n this.emitStatus(EditEventType.SUBMIT);\n }\n cancel() {\n this.emitStatus(EditEventType.CANCEL);\n }\n emitStatus(status) {\n if (this.status) {\n this.status.emit(status);\n }\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: EditCommunicationComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });\n static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"17.0.2\", type: EditCommunicationComponent, inputs: { value: \"value\", valueChanges: \"valueChanges\", status: \"status\", focus: \"focus\", parent: \"parent\" }, usesInheritance: true, ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: EditCommunicationComponent, decorators: [{\n type: Directive\n }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }], propDecorators: { value: [{\n type: Input\n }], valueChanges: [{\n type: Input\n }], status: [{\n type: Input\n }], focus: [{\n type: Input\n }], parent: [{\n type: Input\n }] } });\n\nclass InputEditTemplateComponent extends EditCommunicationComponent {\n formBuilder;\n inputRef;\n filterForm;\n filterFieldName = 'phrase';\n constructor(changeDetectorRef, elementRef, formBuilder) {\n super(changeDetectorRef, elementRef);\n this.formBuilder = formBuilder;\n this.filterForm = this.formBuilder.group({\n [this.filterFieldName]: ['']\n });\n }\n ngOnChanges(changes) {\n if (changes.value !== undefined) {\n this.filterForm.get(this.filterFieldName).setValue(this.value);\n }\n }\n ngOnInit() {\n this.observeChanges();\n }\n ngAfterViewInit() {\n const inputElement = this.inputRef.nativeElement;\n this.focusField(inputElement);\n this.emitValueChange(inputElement.value);\n hermesFromEvent(inputElement, 'blur')\n .pipe(this.takeUntil())\n .subscribe(() => {\n this.unsubscribe();\n this.submit();\n });\n const keyup$ = hermesFromEvent(inputElement, 'keyup');\n keyup$\n .pipe(hermesFilter((e) => e.keyCode === this.ENTER_KEY_CODE), this.takeUntil())\n .subscribe(() => {\n this.unsubscribe();\n this.submit();\n });\n keyup$\n .pipe(hermesFilter((e) => e.keyCode === this.ESC_KEY_CODE), this.takeUntil())\n .subscribe(() => {\n this.unsubscribe();\n this.cancel();\n });\n }\n focusField(inputElement) {\n if (this.focus) {\n inputElement.focus();\n }\n }\n observeChanges() {\n fromRxJsObservable(\n // @ts-ignore\n this.filterForm\n .controls[this.filterFieldName]\n .valueChanges)\n .pipe(this.takeUntil())\n .subscribe((value) => {\n this.emitValueChange(value);\n });\n }\n emitValueChange(value) {\n if (this.valueChanges) {\n this.valueChanges.emit(value);\n }\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: InputEditTemplateComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i1$2.FormBuilder }], target: i0.ɵɵFactoryTarget.Directive });\n static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"17.0.2\", type: InputEditTemplateComponent, viewQueries: [{ propertyName: \"inputRef\", first: true, predicate: [\"input\"], descendants: true, static: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: InputEditTemplateComponent, decorators: [{\n type: Directive\n }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i1$2.FormBuilder }], propDecorators: { inputRef: [{\n type: ViewChild,\n args: ['input', { static: true }]\n }] } });\n\nclass StringEditTemplateComponent extends InputEditTemplateComponent {\n constructor(changeDetectorRef, elementRef, fb) {\n super(changeDetectorRef, elementRef, fb);\n }\n focusField(inputElement) {\n if (this.focus) {\n inputElement.focus();\n inputElement.setSelectionRange(0, inputElement.value.length);\n }\n }\n getSelectorName() {\n return 'gui-string-edit';\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StringEditTemplateComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i1$2.FormBuilder }], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"17.0.2\", type: StringEditTemplateComponent, selector: \"gui-string-edit\", usesInheritance: true, ngImport: i0, template: `\n\n\t\t
\n\t\t\t\n\t\t
\n\n\t`, isInline: true, dependencies: [{ kind: \"directive\", type: i1$2.ɵNgNoValidate, selector: \"form:not([ngNoForm]):not([ngNativeValidate])\" }, { kind: \"directive\", type: i1$2.DefaultValueAccessor, selector: \"input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]\" }, { kind: \"directive\", type: i1$2.NgControlStatus, selector: \"[formControlName],[ngModel],[formControl]\" }, { kind: \"directive\", type: i1$2.NgControlStatusGroup, selector: \"[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]\" }, { kind: \"directive\", type: i1$2.FormGroupDirective, selector: \"[formGroup]\", inputs: [\"formGroup\"], outputs: [\"ngSubmit\"], exportAs: [\"ngForm\"] }, { kind: \"directive\", type: i1$2.FormControlName, selector: \"[formControlName]\", inputs: [\"formControlName\", \"disabled\", \"ngModel\"], outputs: [\"ngModelChange\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StringEditTemplateComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'gui-string-edit',\n template: `\n\n\t\t
\n\t\t\t\n\t\t
\n\n\t`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n }]\n }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i1$2.FormBuilder }] });\n\nclass NumberEditTemplateComponent extends InputEditTemplateComponent {\n constructor(changeDetectorRef, elementRef, fb) {\n super(changeDetectorRef, elementRef, fb);\n }\n getSelectorName() {\n return 'gui-number-edit';\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: NumberEditTemplateComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i1$2.FormBuilder }], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"17.0.2\", type: NumberEditTemplateComponent, selector: \"gui-number-edit\", usesInheritance: true, ngImport: i0, template: `\n\n\t\t
\n\t\t\t\n\t\t
\n\n\t`, isInline: true, dependencies: [{ kind: \"directive\", type: i1$2.ɵNgNoValidate, selector: \"form:not([ngNoForm]):not([ngNativeValidate])\" }, { kind: \"directive\", type: i1$2.DefaultValueAccessor, selector: \"input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]\" }, { kind: \"directive\", type: i1$2.NumberValueAccessor, selector: \"input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]\" }, { kind: \"directive\", type: i1$2.NgControlStatus, selector: \"[formControlName],[ngModel],[formControl]\" }, { kind: \"directive\", type: i1$2.NgControlStatusGroup, selector: \"[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]\" }, { kind: \"directive\", type: i1$2.FormGroupDirective, selector: \"[formGroup]\", inputs: [\"formGroup\"], outputs: [\"ngSubmit\"], exportAs: [\"ngForm\"] }, { kind: \"directive\", type: i1$2.FormControlName, selector: \"[formControlName]\", inputs: [\"formControlName\", \"disabled\", \"ngModel\"], outputs: [\"ngModelChange\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: NumberEditTemplateComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'gui-number-edit',\n template: `\n\n\t\t
\n\t\t\t\n\t\t
\n\n\t`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n }]\n }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i1$2.FormBuilder }] });\n\nclass BooleanEditTemplateComponent extends EditCommunicationComponent {\n changeDetectorRef;\n checkboxRef;\n filterFieldName = 'booleanEdit';\n constructor(changeDetectorRef, elementRef) {\n super(changeDetectorRef, elementRef);\n this.changeDetectorRef = changeDetectorRef;\n }\n toggle(changed) {\n this.valueChanges.emit(changed);\n this.submit();\n }\n getSelectorName() {\n return 'gui-boolean-edit';\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: BooleanEditTemplateComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"17.0.2\", type: BooleanEditTemplateComponent, selector: \"gui-boolean-edit\", viewQueries: [{ propertyName: \"checkboxRef\", first: true, predicate: [\"checkbox\"], descendants: true, read: ElementRef, static: true }], usesInheritance: true, ngImport: i0, template: `\n\n\t\t\n\t\t\t\n\t\t\t\n\t\t\n\n\t`, isInline: true, dependencies: [{ kind: \"component\", type: i1$1.FabricCheckboxComponent, selector: \"gui-checkbox\", inputs: [\"name\", \"checked\", \"disabled\", \"readonly\", \"indeterminate\"], outputs: [\"changed\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: BooleanEditTemplateComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'gui-boolean-edit',\n template: `\n\n\t\t\n\t\t\t\n\t\t\t\n\t\t\n\n\t`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n }]\n }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }], propDecorators: { checkboxRef: [{\n type: ViewChild,\n args: ['checkbox', { read: ElementRef, static: true }]\n }] } });\n\nclass DateEditTemplateComponent extends EditCommunicationComponent {\n changeDetectorRef;\n datePickerRef;\n filterFieldName = 'dateEdit';\n opened = false;\n localStreamCloser = new StreamCloser();\n constructor(changeDetectorRef, elementRef) {\n super(changeDetectorRef, elementRef);\n this.changeDetectorRef = changeDetectorRef;\n }\n ngAfterViewInit() {\n const inputElement = this.datePickerRef.nativeElement.querySelector('.gui-date-picker-input');\n const keyup$ = hermesFromEvent(inputElement, 'keyup');\n keyup$\n .pipe(hermesFilter((e) => e.keyCode === this.ENTER_KEY_CODE), this.localStreamCloser.takeUntil())\n .subscribe(() => {\n this.localStreamCloser.unsubscribe();\n this.submit();\n });\n keyup$\n .pipe(hermesFilter((e) => e.keyCode === this.ESC_KEY_CODE), this.localStreamCloser.takeUntil())\n .subscribe(() => {\n this.localStreamCloser.unsubscribe();\n this.cancel();\n });\n }\n ngOnDestroy() {\n this.localStreamCloser.unsubscribe();\n super.ngOnDestroy();\n }\n toggle(changed) {\n this.valueChanges.emit(changed);\n }\n dialogOpened(opened) {\n this.opened = opened;\n if (!opened) {\n this.localStreamCloser.unsubscribe();\n this.submit();\n }\n }\n getSelectorName() {\n return 'gui-date-edit';\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: DateEditTemplateComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"17.0.2\", type: DateEditTemplateComponent, selector: \"gui-date-edit\", viewQueries: [{ propertyName: \"datePickerRef\", first: true, predicate: [\"datepicker\"], descendants: true, read: ElementRef, static: true }], usesInheritance: true, ngImport: i0, template: `\n\n\t\t\n\t\t\n\n\t`, isInline: true, dependencies: [{ kind: \"component\", type: i1$1.FabricDatePickerComponent, selector: \"gui-date-picker\", inputs: [\"parentElement\", \"theme\", \"selectDate\", \"name\", \"openDialog\", \"onlyDialog\", \"datePipeOptions\"], outputs: [\"dateSelected\", \"dialogOpened\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: DateEditTemplateComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'gui-date-edit',\n template: `\n\n\t\t\n\t\t\n\n\t`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n }]\n }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }], propDecorators: { datePickerRef: [{\n type: ViewChild,\n args: ['datepicker', { read: ElementRef, static: true }]\n }] } });\n\nclass EditTemplatesComponent {\n stringTemplate;\n numberTemplate;\n booleanTemplate;\n dateTemplate;\n emptyTemplate;\n getTemplate(dataType) {\n switch (dataType) {\n case DataType.STRING:\n return this.stringTemplate;\n case DataType.NUMBER:\n return this.numberTemplate;\n case DataType.BOOLEAN:\n return this.booleanTemplate;\n case DataType.DATE:\n return this.dateTemplate;\n default:\n return this.emptyTemplate;\n }\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: EditTemplatesComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"17.0.2\", type: EditTemplatesComponent, selector: \"ng-component\", viewQueries: [{ propertyName: \"stringTemplate\", first: true, predicate: [\"string\"], descendants: true, read: TemplateRef, static: true }, { propertyName: \"numberTemplate\", first: true, predicate: [\"number\"], descendants: true, read: TemplateRef, static: true }, { propertyName: \"booleanTemplate\", first: true, predicate: [\"boolean\"], descendants: true, read: TemplateRef, static: true }, { propertyName: \"dateTemplate\", first: true, predicate: [\"date\"], descendants: true, read: TemplateRef, static: true }, { propertyName: \"emptyTemplate\", first: true, predicate: [\"empty\"], descendants: true, read: TemplateRef, static: true }], ngImport: i0, template: `\n\n\t\t\n\t\t\t\n\t\t\t\n\t\t\n\n\t\t\n\t\t\t\n\t\t\t\n\t\t\n\n\t\t\n\t\t\t\n\t\t\t\n\t\t\n\n\t\t\n\t\t\t\n\t\t\t\n\t\t\n\n\t\t\n\n\t\t\n\n\t`, isInline: true, dependencies: [{ kind: \"component\", type: StringEditTemplateComponent, selector: \"gui-string-edit\" }, { kind: \"component\", type: NumberEditTemplateComponent, selector: \"gui-number-edit\" }, { kind: \"component\", type: BooleanEditTemplateComponent, selector: \"gui-boolean-edit\" }, { kind: \"component\", type: DateEditTemplateComponent, selector: \"gui-date-edit\" }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: EditTemplatesComponent, decorators: [{\n type: Component,\n args: [{\n template: `\n\n\t\t\n\t\t\t\n\t\t\t\n\t\t\n\n\t\t\n\t\t\t\n\t\t\t\n\t\t\n\n\t\t\n\t\t\t\n\t\t\t\n\t\t\n\n\t\t\n\t\t\t\n\t\t\t\n\t\t\n\n\t\t\n\n\t\t\n\n\t`\n }]\n }], propDecorators: { stringTemplate: [{\n type: ViewChild,\n args: ['string', { read: TemplateRef, static: true }]\n }], numberTemplate: [{\n type: ViewChild,\n args: ['number', { read: TemplateRef, static: true }]\n }], booleanTemplate: [{\n type: ViewChild,\n args: ['boolean', { read: TemplateRef, static: true }]\n }], dateTemplate: [{\n type: ViewChild,\n args: ['date', { read: TemplateRef, static: true }]\n }], emptyTemplate: [{\n type: ViewChild,\n args: ['empty', { read: TemplateRef, static: true }]\n }] } });\n\nclass EditTemplateFactory extends TemplateFactory {\n constructor(componentFactoryResolver) {\n super(EditTemplatesComponent, componentFactoryResolver);\n }\n static services = [ComponentFactoryResolver];\n generateMapKeys() {\n return Object.keys(DataType)\n .map(key => DataType[key]);\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: EditTemplateFactory, deps: [{ token: i0.ComponentFactoryResolver }], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: EditTemplateFactory });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: EditTemplateFactory, decorators: [{\n type: Injectable\n }], ctorParameters: () => [{ type: i0.ComponentFactoryResolver }] });\n\nclass EditTemplateRepository {\n editTemplateFactory;\n constructor(editTemplateFactory) {\n this.editTemplateFactory = editTemplateFactory;\n }\n static services = [EditTemplateFactory];\n findTemplate(dataType) {\n const typeToTemplate = this.editTemplateFactory.getTemplates();\n return typeToTemplate.get(dataType);\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: EditTemplateRepository, deps: [{ token: EditTemplateFactory }], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: EditTemplateRepository });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: EditTemplateRepository, decorators: [{\n type: Injectable\n }], ctorParameters: () => [{ type: EditTemplateFactory }] });\n\nclass GroupCollection {\n groups;\n showGroups;\n constructor(groups, showGroups) {\n this.groups = groups;\n this.showGroups = showGroups;\n }\n getGroups() {\n return this.groups;\n }\n isVisible() {\n return this.showGroups;\n }\n}\n\nclass CompositionGroupArchive extends AggregateArchive {\n static default = new GroupCollection([], false);\n constructor() {\n super(CompositionGroupArchive.default);\n }\n}\n\nclass CompositionDomainPublisher extends CompositionPublisher {\n compositionDispatcher;\n compositionGroupRepository;\n columnHighlightArchive;\n constructor(compositionDispatcher, compositionGroupRepository, columnHighlightArchive) {\n super();\n this.compositionDispatcher = compositionDispatcher;\n this.compositionGroupRepository = compositionGroupRepository;\n this.columnHighlightArchive = columnHighlightArchive;\n }\n static services = [\n CompositionDispatcher,\n CompositionGroupArchive,\n ColumnHighlightArchive\n ];\n create(compositionId) {\n this.compositionDispatcher.create(compositionId);\n }\n setColumns(params, compositionId) {\n this.compositionDispatcher.setColumns(compositionId, params);\n }\n setGroups(configs, compositionId) {\n // this.compositionGroupRepository.next(compositionId, CompositionGroupRepository.default);\n this.compositionDispatcher.setGroups(compositionId, configs);\n }\n setWidth(width, compositionId) {\n this.compositionDispatcher.setWidth(compositionId, width);\n }\n setContainerWidth(width, compositionId) {\n this.compositionDispatcher.setContainerWidth(compositionId, width);\n }\n setResizeWidth(enabled, compositionId) {\n this.compositionDispatcher.setResizeWidth(compositionId, enabled);\n }\n enableColumn(columnDefinitionId, compositionId) {\n this.compositionDispatcher.setColumnEnabled(compositionId, this.toColumnId(columnDefinitionId), true);\n }\n disableColumn(columnDefinitionId, compositionId) {\n this.compositionDispatcher.setColumnEnabled(compositionId, this.toColumnId(columnDefinitionId), false);\n }\n moveLeft(columnDefinitionId, compositionId) {\n this.compositionDispatcher.moveLeft(compositionId, this.toColumnId(columnDefinitionId));\n }\n moveRight(columnDefinitionId, compositionId) {\n this.compositionDispatcher.moveRight(compositionId, this.toColumnId(columnDefinitionId));\n }\n highlightColumn(columnDefinitionId, compositionId) {\n this.columnHighlightArchive.toggle(compositionId, new ColumnId(columnDefinitionId.getId()));\n }\n toColumnId(defId) {\n return new ColumnId(defId.getId());\n }\n}\n\nclass CompositionDomainWarehouse extends CompositionWarehouse {\n compositionRepository;\n compositionGroupArchive;\n columnHighlightArchive;\n constructor(compositionRepository, compositionGroupArchive, columnHighlightArchive) {\n super();\n this.compositionRepository = compositionRepository;\n this.compositionGroupArchive = compositionGroupArchive;\n this.columnHighlightArchive = columnHighlightArchive;\n }\n static services = [\n CompositionReadModelRootRepository,\n CompositionGroupArchive,\n ColumnHighlightArchive\n ];\n onWidth(compositionId) {\n return this.compositionRepository\n .on(compositionId)\n .pipe(hermesMap((composition) => composition.getWidth()));\n }\n onContainerWidth(compositionId) {\n return this.compositionRepository\n .on(compositionId)\n .pipe(hermesMap((composition) => composition.getContainerWidth()));\n }\n onWidthForEachColumn(compositionId) {\n return this.compositionRepository\n .on(compositionId)\n .pipe(hermesMap((composition) => composition.getAllColumns().map(c => c.width)));\n }\n onHeaderColumns(compositionId) {\n return this.compositionRepository\n .on(compositionId)\n .pipe(hermesMap((composition) => composition.getActiveHeaderColumns()));\n }\n onAllColumns(compositionId) {\n return this.compositionRepository\n .on(compositionId)\n .pipe(hermesMap((composition) => composition.getHeaderColumns()));\n }\n onSortOrder(fieldId, compositionId) {\n return this.compositionRepository\n .on(compositionId)\n .pipe(hermesMap((composition) => composition.getActiveHeaderColumns()), hermesMap((columns) => {\n return columns.filter((c) => c.getFieldId().equals(fieldId));\n }), hermesFilter((columns) => {\n return columns.length > 0;\n }), hermesMap(columns => columns[0].getSortStatus()));\n }\n onTemplateColumns(compositionId) {\n return this.compositionRepository\n .on(compositionId)\n .pipe(hermesMap((composition) => composition.getTemplateColumns()));\n }\n onResizeWidth(compositionId) {\n return this.compositionRepository\n .on(compositionId)\n .pipe(hermesMap((composition) => composition.isResizeWidthEnabled()));\n }\n onGroups(compositionId) {\n return this.compositionGroupArchive.on(compositionId);\n }\n onHighlightedColumn(columnId, compositionId) {\n return this.columnHighlightArchive\n .on(compositionId)\n .pipe(hermesMap((manager) => manager.isHighlighted(columnId)));\n }\n findColumnNames(compositionId) {\n let names = [];\n this.compositionRepository\n .find(compositionId)\n .ifPresent((value) => {\n names = value.getAllColumns().map((cd) => cd.getName());\n });\n return names;\n }\n}\n\nclass CompositionDomainEventRepository extends CompositionEventRepository {\n constructor() {\n super();\n }\n onColumnsChanged(compositionId) {\n return this.onEvent(compositionId, CompositionColumnsSetEvent);\n }\n onContainerWidthChanged(compositionId) {\n return this.onEvent(compositionId, CompositionContainerWidthSetEvent)\n .pipe(hermesMap((event) => {\n return event.getPayload();\n }), hermesFilter((width) => !!width));\n }\n}\n\nclass DomainColumnAutoConfigurator extends ColumnAutoConfigurator {\n configure(source) {\n if (source !== undefined && source !== null && Array.isArray(source) && source.length === 0) {\n return [];\n }\n const rawItem = source[0];\n return Object.keys(rawItem)\n .map((key, index) => {\n return this.toColumnConfig(key, rawItem);\n });\n }\n toColumnConfig(key, rawItem) {\n return {\n field: this.getField(key),\n header: this.getHeader(key),\n type: this.getType(key, rawItem)\n };\n }\n getField(key) {\n return key;\n }\n getHeader(key) {\n return key[0].toUpperCase() + key.slice(1);\n }\n getType(key, rawItem) {\n if (typeof rawItem[key] === 'string') {\n return DataType.STRING;\n }\n else if (typeof rawItem[key] === 'number') {\n return DataType.NUMBER;\n }\n else if (rawItem[key] instanceof Date) {\n return DataType.DATE;\n }\n else if (typeof rawItem[key] === 'boolean') {\n return DataType.BOOLEAN;\n }\n else {\n return DataType.UNKNOWN;\n }\n }\n}\n\nclass CompositionApiModule {\n registerProviders(container) {\n container.provide(InMemoryCompositionReadStore);\n container.provide(CompositionReadModelRootRepository, InMemoryCompositionRepository);\n container.provide(ColumnDefinitionFactory);\n container.provide(ViewTemplateRepository);\n container.provide(ViewTemplateFactory);\n container.provide(EditTemplateFactory);\n container.provide(EditTemplateRepository);\n container.provide(InMemoryCompositionStore);\n container.provide(CompositionReadModelRootConverter);\n container.provide(CompositionGroupArchive);\n container.provide(CompositionPublisher, CompositionDomainPublisher);\n container.provide(CompositionWarehouse, CompositionDomainWarehouse);\n container.provide(CompositionEventRepository, CompositionDomainEventRepository);\n container.provide(ColumnAutoConfigurator, DomainColumnAutoConfigurator);\n }\n}\nfunction initializeComposition() {\n new DomainInitializer(new CompositionApiModule(), new CompositionDomainModule()).init();\n}\n\nclass CompositionTemplateWarehouse {\n compositionWarehouse;\n viewTemplateRepository;\n editTemplateRepository;\n constructor(compositionWarehouse, viewTemplateRepository, editTemplateRepository) {\n this.compositionWarehouse = compositionWarehouse;\n this.viewTemplateRepository = viewTemplateRepository;\n this.editTemplateRepository = editTemplateRepository;\n }\n onHeaderCols(compositionId) {\n return this.compositionWarehouse\n .onHeaderColumns(compositionId)\n .pipe(hermesMap((arr) => {\n return arr.map((context) => {\n let headerTemplate;\n if (typeof context.getHeader() === 'function') {\n headerTemplate = this.findViewTemplate(CellView.FUNCTION);\n }\n else {\n headerTemplate = this.findViewTemplate(CellView.HTML);\n }\n const editTemplate = this.findEditTemplate(context.getDataType());\n return new CompositionTemplateModel(headerTemplate, editTemplate, context);\n });\n }));\n }\n onAll(compositionId) {\n return this.compositionWarehouse\n .onAllColumns(compositionId)\n .pipe(hermesMap((arr) => {\n return arr.map((context) => {\n let headerTemplate;\n if (typeof context.getHeader() === 'function') {\n headerTemplate = this.findViewTemplate(CellView.FUNCTION);\n }\n else {\n headerTemplate = this.findViewTemplate(CellView.HTML);\n }\n const editTemplate = this.findEditTemplate(context.getDataType());\n return new CompositionTemplateModel(headerTemplate, editTemplate, context);\n });\n }));\n }\n // CellTemplateWithAccessor\n onTemplateCols(compositionId) {\n return this.compositionWarehouse\n .onTemplateColumns(compositionId)\n .pipe(hermesMap((arr) => {\n return arr.map((context) => {\n let cellTemplate;\n if (context.getCellView() === CellView.NG_TEMPLATE) {\n cellTemplate = context.getColumnConfig().templateRef;\n }\n else {\n cellTemplate = this.findViewTemplate(context.getCellView());\n }\n const editTemplate = this.findEditTemplate(context.getDataType());\n return new CompositionAccessorModel(cellTemplate, editTemplate, context);\n });\n }));\n }\n findViewTemplate(view) {\n if (view === CellView.FUNCTION) {\n return this.viewTemplateRepository.findTemplate(CellView.FUNCTION);\n }\n else {\n return this.viewTemplateRepository.findTemplate(view);\n }\n }\n findEditTemplate(dataType) {\n return this.editTemplateRepository.findTemplate(dataType);\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: CompositionTemplateWarehouse, deps: [{ token: CompositionWarehouse }, { token: ViewTemplateRepository }, { token: EditTemplateRepository }], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: CompositionTemplateWarehouse });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: CompositionTemplateWarehouse, decorators: [{\n type: Injectable\n }], ctorParameters: () => [{ type: CompositionWarehouse }, { type: ViewTemplateRepository }, { type: EditTemplateRepository }] });\n\nclass SummariesEventRepository extends EventRepository {\n constructor() {\n super();\n }\n}\n\nclass StructureSummariesPanelComponent extends SmartComponent {\n structureSummariesEventRepository;\n translationService;\n sourceWarehouse;\n enabled;\n state = inject((GuiState));\n compositionId = inject(CompositionId);\n structureId = inject(StructureId);\n formationWarehouse = inject(FormationWarehouse);\n compositionTemplateWarehouse = inject(CompositionTemplateWarehouse);\n headerColumns$ = this.compositionTemplateWarehouse.onHeaderCols(this.compositionId);\n state$ = this.state.select();\n checkboxSelection$ = this.selectCheckboxSelection();\n constructor(changeDetectorRef, elementRef, structureSummariesEventRepository, translationService, sourceWarehouse) {\n super(changeDetectorRef, elementRef);\n this.structureSummariesEventRepository = structureSummariesEventRepository;\n this.translationService = translationService;\n this.sourceWarehouse = sourceWarehouse;\n this.addClassToHost('gui-flex');\n this.state.connect('summariesTranslations', this.selectSummariesTranslations());\n this.state.connect('sourceEmpty', this.selectSourceEmpty());\n this.state.connect('summaries', this.selectSummaries());\n }\n isSummariesTypePresent(summaries) {\n return summaries !== undefined && summaries !== null;\n }\n getSelectorName() {\n return 'gui-structure-summaries-panel';\n }\n selectCheckboxSelection() {\n return this.formationWarehouse\n .onType(this.structureId)\n .pipe(hermesMap((type) => {\n return type === RowSelectionType.CHECKBOX;\n }));\n }\n selectSourceEmpty() {\n return this.sourceWarehouse\n .onItemsSize(this.structureId)\n .pipe(hermesMap((size) => {\n return size === 0;\n }));\n }\n selectSummariesTranslations() {\n return this.translationService\n .onTranslation()\n .pipe(hermesMap((translation) => {\n return new SummariesTranslations(translation.summariesDistinctValuesTooltip, translation.summariesAverageTooltip, translation.summariesMinTooltip, translation.summariesMaxTooltip, translation.summariesMedTooltip, translation.summariesCountTooltip);\n }));\n }\n selectSummaries() {\n return this.structureSummariesEventRepository\n .onSummariesChanged(this.structureId.toReadModelRootId())\n .pipe(hermesMap((event) => {\n return event.getSummaries();\n }));\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureSummariesPanelComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: SummariesEventRepository }, { token: TranslationFacade }, { token: SourceWarehouse }], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"17.0.2\", type: StructureSummariesPanelComponent, selector: \"div[gui-structure-summaries-panel][enabled]\", inputs: { enabled: \"enabled\" }, providers: [\n GuiState\n ], usesInheritance: true, ngImport: i0, template: \"\\n\\t\\n\\n\\t\\t
\\n\\t\\t
\\n\\n\\t\\t
\\n\\n\\t\\t\\t\\n\\n\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t{{'summariesCount' | guiTranslate}}\\n\\t\\t\\t\\t\\t{{ localState.summaries.get(column.getFieldId().getId()).count }}\\n\\t\\t\\t\\t
\\n\\n\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t{{'summariesDist' | guiTranslate}}\\n\\t\\t\\t\\t\\t{{ localState.summaries.get(column.getFieldId().getId()).distinct }}\\n\\t\\t\\t\\t
\\n\\n\\t\\t\\t\\t
\\n\\n\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t{{'summariesSum' | guiTranslate}}\\n\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t{{ localState.summaries.get(column.getFieldId().getId()).sum }}\\n\\t\\t\\t\\t
\\n\\n\\t\\t\\t\\t
\\n\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t{{'summariesAvg' | guiTranslate}}\\n\\t\\t\\t\\t\\t{{ localState.summaries.get(column.getFieldId().getId()).average }}\\n\\t\\t\\t\\t
\\n\\n\\t\\t\\t\\t
\\n\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t{{'summariesMin' | guiTranslate}}\\n\\t\\t\\t\\t\\t\\t\\n\\n\\t\\t\\t\\t\\t{{ localState.summaries.get(column.getFieldId().getId()).min }}\\n\\t\\t\\t\\t
\\n\\n\\t\\t\\t\\t
\\n\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\n\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t{{'summariesMax' | guiTranslate}}\\n\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t{{ localState.summaries.get(column.getFieldId().getId()).max }}\\n\\t\\t\\t\\t
\\n\\n\\t\\t\\t\\t
\\n\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\n\\n\\t\\t\\t\\t\\t{{'summariesMed' | guiTranslate}}\\n\\t\\t\\t\\t\\t{{ localState.summaries.get(column.getFieldId().getId()).median }}\\n\\t\\t\\t\\t
\\n\\n\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t{{'summariesTruthy' | guiTranslate}}\\n\\t\\t\\t\\t\\t{{ localState.summaries.get(column.getFieldId().getId()).truthy }}\\n\\t\\t\\t\\t
\\n\\n\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t{{'summariesFalsy' | guiTranslate}}\\n\\t\\t\\t\\t\\t{{ localState.summaries.get(column.getFieldId().getId()).falsy }}\\n\\t\\t\\t\\t
\\n\\n\\t\\t\\t
\\n\\t\\t
\\n\\n\\t
\\n
\\n\", dependencies: [{ kind: \"directive\", type: i4.NgForOf, selector: \"[ngFor][ngForOf]\", inputs: [\"ngForOf\", \"ngForTrackBy\", \"ngForTemplate\"] }, { kind: \"directive\", type: i4.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { kind: \"directive\", type: i1$1.FabricTooltipDirective, selector: \"[gui-tooltip]\", inputs: [\"gui-tooltip\"], exportAs: [\"guiTooltip\"] }, { kind: \"directive\", type: GuiLetDirective, selector: \"[guiLet]\", inputs: [\"guiLet\"] }, { kind: \"pipe\", type: TranslationPipe, name: \"guiTranslate\" }, { kind: \"pipe\", type: GuiPushPipe, name: \"guiPush\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureSummariesPanelComponent, decorators: [{\n type: Component,\n args: [{ selector: 'div[gui-structure-summaries-panel][enabled]', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, providers: [\n GuiState\n ], template: \"\\n\\t\\n\\n\\t\\t
\\n\\t\\t
\\n\\n\\t\\t
\\n\\n\\t\\t\\t\\n\\n\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t{{'summariesCount' | guiTranslate}}\\n\\t\\t\\t\\t\\t{{ localState.summaries.get(column.getFieldId().getId()).count }}\\n\\t\\t\\t\\t
\\n\\n\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t{{'summariesDist' | guiTranslate}}\\n\\t\\t\\t\\t\\t{{ localState.summaries.get(column.getFieldId().getId()).distinct }}\\n\\t\\t\\t\\t
\\n\\n\\t\\t\\t\\t
\\n\\n\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t{{'summariesSum' | guiTranslate}}\\n\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t{{ localState.summaries.get(column.getFieldId().getId()).sum }}\\n\\t\\t\\t\\t
\\n\\n\\t\\t\\t\\t
\\n\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t{{'summariesAvg' | guiTranslate}}\\n\\t\\t\\t\\t\\t{{ localState.summaries.get(column.getFieldId().getId()).average }}\\n\\t\\t\\t\\t
\\n\\n\\t\\t\\t\\t
\\n\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t{{'summariesMin' | guiTranslate}}\\n\\t\\t\\t\\t\\t\\t\\n\\n\\t\\t\\t\\t\\t{{ localState.summaries.get(column.getFieldId().getId()).min }}\\n\\t\\t\\t\\t
\\n\\n\\t\\t\\t\\t
\\n\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\n\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t\\t{{'summariesMax' | guiTranslate}}\\n\\t\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t{{ localState.summaries.get(column.getFieldId().getId()).max }}\\n\\t\\t\\t\\t
\\n\\n\\t\\t\\t\\t
\\n\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\n\\n\\t\\t\\t\\t\\t{{'summariesMed' | guiTranslate}}\\n\\t\\t\\t\\t\\t{{ localState.summaries.get(column.getFieldId().getId()).median }}\\n\\t\\t\\t\\t
\\n\\n\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t{{'summariesTruthy' | guiTranslate}}\\n\\t\\t\\t\\t\\t{{ localState.summaries.get(column.getFieldId().getId()).truthy }}\\n\\t\\t\\t\\t
\\n\\n\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t{{'summariesFalsy' | guiTranslate}}\\n\\t\\t\\t\\t\\t{{ localState.summaries.get(column.getFieldId().getId()).falsy }}\\n\\t\\t\\t\\t
\\n\\n\\t\\t\\t
\\n\\t\\t
\\n\\n\\t
\\n
\\n\" }]\n }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: SummariesEventRepository }, { type: TranslationFacade }, { type: SourceWarehouse }], propDecorators: { enabled: [{\n type: Input,\n args: [{ required: true }]\n }] } });\n\nclass StructureInfoModalComponent extends StaticComponent {\n constructor(elementRef, changeDetectorRef) {\n super(elementRef, changeDetectorRef);\n }\n getSelectorName() {\n return 'gui-info-dialog';\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureInfoModalComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"17.0.2\", type: StructureInfoModalComponent, selector: \"div[gui-info-dialog]\", usesInheritance: true, ngImport: i0, template: \"
\\n\\n\\t

\\n\\t\\tGeneric UI Grid\\n\\t

\\n\\n\\n\\t

\\n\\t\\tver. 0.21.0\\n\\t

\\n\\n\\t

\\n\\t\\t\\\"The best way to success is to help others succeed.\\\"\\n\\t

\\n\\n\\t
\\n\\n\\t
\\n\\t\\t

Links:

\\n\\t\\t
    \\n\\n\\t\\t\\t
  • \\n\\t\\t\\t\\tWebsite\\n\\t\\t\\t
  • \\n\\t\\t\\t
  • \\n\\t\\t\\t\\tDocumentation\\n\\t\\t\\t
  • \\n\\t\\t\\t
  • \\n\\t\\t\\t\\tGithub\\n\\t\\t\\t
  • \\n\\t\\t
\\n\\n\\t\\t
\\n\\n\\t\\t

Feedback:

\\n\\t\\t\\n\\t
\\n
\\n\", changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureInfoModalComponent, decorators: [{\n type: Component,\n args: [{ selector: 'div[gui-info-dialog]', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: \"
\\n\\n\\t

\\n\\t\\tGeneric UI Grid\\n\\t

\\n\\n\\n\\t

\\n\\t\\tver. 0.21.0\\n\\t

\\n\\n\\t

\\n\\t\\t\\\"The best way to success is to help others succeed.\\\"\\n\\t

\\n\\n\\t
\\n\\n\\t
\\n\\t\\t

Links:

\\n\\t\\t
    \\n\\n\\t\\t\\t
  • \\n\\t\\t\\t\\tWebsite\\n\\t\\t\\t
  • \\n\\t\\t\\t
  • \\n\\t\\t\\t\\tDocumentation\\n\\t\\t\\t
  • \\n\\t\\t\\t
  • \\n\\t\\t\\t\\tGithub\\n\\t\\t\\t
  • \\n\\t\\t
\\n\\n\\t\\t
\\n\\n\\t\\t

Feedback:

\\n\\t\\t\\n\\t
\\n
\\n\" }]\n }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }] });\n\nclass StructureColumnManagerComponent extends SmartComponent {\n compositionId;\n compositionCommandInvoker;\n compositionTemplateWarehouse;\n state = inject((GuiState));\n state$ = this.state.select();\n constructor(changeDetectorRef, elementRef, compositionId, compositionCommandInvoker, compositionTemplateWarehouse) {\n super(changeDetectorRef, elementRef);\n this.compositionId = compositionId;\n this.compositionCommandInvoker = compositionCommandInvoker;\n this.compositionTemplateWarehouse = compositionTemplateWarehouse;\n this.addClassToHost('gui-block');\n this.state.connect('columns', this.selectColumns());\n this.state.connect('enabledColumnsCount', this.selectEnabledColumnsCount());\n }\n toggleColumn(column) {\n event.stopPropagation();\n if (column.isEnabled()) {\n this.compositionCommandInvoker.disableColumn(column.getColumnDefinitionId(), this.compositionId);\n }\n else {\n this.compositionCommandInvoker.enableColumn(column.getColumnDefinitionId(), this.compositionId);\n }\n }\n getSelectorName() {\n return 'gui-structure-column-manager';\n }\n selectColumns() {\n return this.compositionTemplateWarehouse.onAll(this.compositionId);\n }\n selectEnabledColumnsCount() {\n return this.compositionTemplateWarehouse\n .onAll(this.compositionId)\n .pipe(hermesMap((columns) => {\n return columns.map((c) => +c.isEnabled())\n .reduce((accumulator, currentValue) => accumulator + currentValue);\n }));\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureColumnManagerComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: CompositionId }, { token: CompositionPublisher }, { token: CompositionTemplateWarehouse }], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"17.0.2\", type: StructureColumnManagerComponent, selector: \"div[gui-structure-column-manager]\", providers: [\n GuiState\n ], usesInheritance: true, ngImport: i0, template: \"
    \\n\\t
  1. \\n\\n\\t\\t\\n\\n\\t\\t\\t\\n\\t\\t\\t\\n\\n\\t\\t\\n\\n\\t
  2. \\n
\\n\", dependencies: [{ kind: \"directive\", type: i4.NgForOf, selector: \"[ngFor][ngForOf]\", inputs: [\"ngForOf\", \"ngForTrackBy\", \"ngForTemplate\"] }, { kind: \"directive\", type: i4.NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }, { kind: \"component\", type: i1$1.FabricCheckboxComponent, selector: \"gui-checkbox\", inputs: [\"name\", \"checked\", \"disabled\", \"readonly\", \"indeterminate\"], outputs: [\"changed\"] }, { kind: \"directive\", type: GuiLetDirective, selector: \"[guiLet]\", inputs: [\"guiLet\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureColumnManagerComponent, decorators: [{\n type: Component,\n args: [{ selector: 'div[gui-structure-column-manager]', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, providers: [\n GuiState\n ], template: \"
    \\n\\t
  1. \\n\\n\\t\\t\\n\\n\\t\\t\\t\\n\\t\\t\\t\\n\\n\\t\\t\\n\\n\\t
  2. \\n
\\n\" }]\n }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: CompositionId }, { type: CompositionPublisher }, { type: CompositionTemplateWarehouse }] });\n\nclass StructureDialogColumnManagerComponent extends SmartComponent {\n constructor(detector, elementRef) {\n super(detector, elementRef);\n }\n getSelectorName() {\n return 'gui-structure-dialog-column-manager';\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureDialogColumnManagerComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"17.0.2\", type: StructureDialogColumnManagerComponent, selector: \"div[gui-structure-dialog-column-manager]\", usesInheritance: true, ngImport: i0, template: \"
{{'columnManagerModalTitle' | guiTranslate}}
\\n\\n
\\n
\\n\", dependencies: [{ kind: \"component\", type: StructureColumnManagerComponent, selector: \"div[gui-structure-column-manager]\" }, { kind: \"pipe\", type: TranslationPipe, name: \"guiTranslate\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureDialogColumnManagerComponent, decorators: [{\n type: Component,\n args: [{ selector: 'div[gui-structure-dialog-column-manager]', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: \"
{{'columnManagerModalTitle' | guiTranslate}}
\\n\\n
\\n
\\n\" }]\n }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }] });\n\nclass StructureThemeConverter {\n convertTheme(schemaTheme) {\n switch (schemaTheme) {\n case SchemaTheme.FABRIC:\n return Theme.FABRIC;\n case SchemaTheme.MATERIAL:\n return Theme.MATERIAL;\n case SchemaTheme.GENERIC:\n return Theme.GENERIC;\n case SchemaTheme.LIGHT:\n return Theme.LIGHT;\n case SchemaTheme.DARK:\n return Theme.DARK;\n default:\n return Theme.FABRIC;\n }\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureThemeConverter, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureThemeConverter });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureThemeConverter, decorators: [{\n type: Injectable\n }] });\n\nclass StructureDialogColumnManagerService extends Reactive {\n injector;\n schemaWarehouse;\n structureThemeConverter;\n fabricDialogService;\n constructor(injector, schemaWarehouse, structureThemeConverter, fabricDialogService) {\n super();\n this.injector = injector;\n this.schemaWarehouse = schemaWarehouse;\n this.structureThemeConverter = structureThemeConverter;\n this.fabricDialogService = fabricDialogService;\n }\n open(compositionId, readModelId, parentInjector) {\n if (!parentInjector) {\n parentInjector = this.injector;\n }\n const injector = Injector.create({ parent: parentInjector, providers: [{ provide: CompositionId, useValue: compositionId }] });\n this.schemaWarehouse\n .findTheme(readModelId)\n .ifPresent((theme) => {\n this.fabricDialogService.open({\n injector: injector,\n component: StructureDialogColumnManagerComponent,\n theme: this.structureThemeConverter.convertTheme(theme)\n });\n });\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureDialogColumnManagerService, deps: [{ token: i0.Injector }, { token: SchemaWarehouse }, { token: StructureThemeConverter }, { token: i1$1.FabricDialogService }], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureDialogColumnManagerService });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureDialogColumnManagerService, decorators: [{\n type: Injectable\n }], ctorParameters: () => [{ type: i0.Injector }, { type: SchemaWarehouse }, { type: StructureThemeConverter }, { type: i1$1.FabricDialogService }] });\n\nclass StructureSchemaMangerComponent extends SmartComponent {\n structureId;\n schemaPublisher;\n schemaWarehouse = inject(SchemaWarehouse);\n schemaReadModelRootId = inject(SchemaReadModelRootId);\n coloring = this.createColoringOptions();\n themes = this.createThemeOptions();\n rowColoring$ = this.selectRowColoring();\n theme$ = this.selectTheme();\n verticalGrid$ = this.schemaWarehouse.onVerticalGrid(this.schemaReadModelRootId);\n horizontalGrid$ = this.schemaWarehouse.onHorizontalGrid(this.schemaReadModelRootId);\n constructor(changeDetectorRef, elRef, structureId, schemaPublisher) {\n super(changeDetectorRef, elRef);\n this.structureId = structureId;\n this.schemaPublisher = schemaPublisher;\n }\n toggleTheme(theme) {\n this.schemaPublisher.setTheme(this.toTheme(theme.value), this.schemaReadModelRootId, this.structureId);\n }\n toggleRowColoring(schemaRowColoring) {\n this.schemaPublisher.setRowColoring(this.toRowColoring(schemaRowColoring.value), this.schemaReadModelRootId);\n }\n toggleVerticalGrid(verticalGrid) {\n event.stopPropagation();\n this.schemaPublisher.setVerticalGrid(!verticalGrid, this.schemaReadModelRootId);\n }\n toggleHorizontalGrid(horizontalGrid) {\n event.stopPropagation();\n this.schemaPublisher.setHorizontalGrid(!horizontalGrid, this.schemaReadModelRootId);\n }\n getSelectorName() {\n return 'gui-structure-schema-manager';\n }\n createColoringOptions() {\n return Object.keys(SchemaRowColoring)\n .map((key) => SchemaRowColoring[key])\n .filter((val) => !Number.isInteger(val))\n .map((value) => {\n return {\n value: value,\n name: value\n };\n });\n }\n createThemeOptions() {\n return Object.keys(SchemaTheme)\n .map((key) => SchemaTheme[key])\n .filter((val) => !Number.isInteger(val))\n .map((value) => {\n return {\n value: value,\n name: value\n };\n });\n }\n selectRowColoring() {\n return this.schemaWarehouse\n .onRowColoring(this.schemaReadModelRootId)\n .pipe(hermesMap((rowColoring) => {\n return {\n value: SchemaRowColoring[rowColoring],\n name: SchemaRowColoring[rowColoring]\n };\n }));\n }\n selectTheme() {\n return this.schemaWarehouse\n .onTheme(this.schemaReadModelRootId)\n .pipe(hermesMap((schemaTheme) => {\n return {\n value: SchemaTheme[schemaTheme],\n name: SchemaTheme[schemaTheme]\n };\n }));\n }\n toTheme(theme) {\n switch (theme.toLowerCase()) {\n case 'fabric':\n return SchemaTheme.FABRIC;\n case 'material':\n return SchemaTheme.MATERIAL;\n case 'generic':\n return SchemaTheme.GENERIC;\n case 'light':\n return SchemaTheme.LIGHT;\n case 'dark':\n return SchemaTheme.DARK;\n default:\n return SchemaTheme.FABRIC;\n }\n }\n toRowColoring(coloring) {\n switch (coloring.toLowerCase()) {\n case 'none':\n return RowColoring.NONE;\n case 'odd':\n return RowColoring.ODD;\n case 'even':\n return RowColoring.EVEN;\n default:\n return RowColoring.NONE;\n }\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureSchemaMangerComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: StructureId }, { token: SchemaPublisher }], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"17.0.2\", type: StructureSchemaMangerComponent, selector: \"div[gui-structure-schema-manager]\", usesInheritance: true, ngImport: i0, template: \"
\\n\\n\\t
{{'themeManagerModalTitle' | guiTranslate}}
\\n\\n\\t
\\n\\n\\t\\t{{'themeManagerModalTheme' | guiTranslate}}\\n\\n\\t\\t\\n\\t\\t\\n\\t
\\n\\n\\t
\\n\\n\\t\\t\\n\\t\\t\\t{{'themeManagerModalRowColoring' | guiTranslate}}\\n\\t\\t\\n\\n\\t\\t\\n\\t\\t\\n\\t
\\n\\n\\t
    \\n\\n\\t\\t
  1. \\n\\n\\t\\t\\t\\n\\t\\t\\t\\t{{'themeManagerModalVerticalGrid' | guiTranslate}}\\n\\t\\t\\t\\n\\n\\t\\t
  2. \\n\\n\\t\\t
  3. \\n\\n\\t\\t\\t\\n\\t\\t\\t\\t{{'themeManagerModalHorizontalGrid' | guiTranslate}}\\n\\t\\t\\t\\n\\n\\t\\t
  4. \\n\\t
\\n
\\n\", dependencies: [{ kind: \"component\", type: i1$1.FabricCheckboxComponent, selector: \"gui-checkbox\", inputs: [\"name\", \"checked\", \"disabled\", \"readonly\", \"indeterminate\"], outputs: [\"changed\"] }, { kind: \"component\", type: i1$1.FabricSelectComponent, selector: \"gui-select\", inputs: [\"options\", \"placeholder\", \"selected\", \"width\", \"disabled\"], outputs: [\"optionChanged\"] }, { kind: \"directive\", type: GuiLetDirective, selector: \"[guiLet]\", inputs: [\"guiLet\"] }, { kind: \"pipe\", type: TranslationPipe, name: \"guiTranslate\" }, { kind: \"pipe\", type: GuiPushPipe, name: \"guiPush\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureSchemaMangerComponent, decorators: [{\n type: Component,\n args: [{ selector: 'div[gui-structure-schema-manager]', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: \"
\\n\\n\\t
{{'themeManagerModalTitle' | guiTranslate}}
\\n\\n\\t
\\n\\n\\t\\t{{'themeManagerModalTheme' | guiTranslate}}\\n\\n\\t\\t\\n\\t\\t\\n\\t
\\n\\n\\t
\\n\\n\\t\\t\\n\\t\\t\\t{{'themeManagerModalRowColoring' | guiTranslate}}\\n\\t\\t\\n\\n\\t\\t\\n\\t\\t\\n\\t
\\n\\n\\t
    \\n\\n\\t\\t
  1. \\n\\n\\t\\t\\t\\n\\t\\t\\t\\t{{'themeManagerModalVerticalGrid' | guiTranslate}}\\n\\t\\t\\t\\n\\n\\t\\t
  2. \\n\\n\\t\\t
  3. \\n\\n\\t\\t\\t\\n\\t\\t\\t\\t{{'themeManagerModalHorizontalGrid' | guiTranslate}}\\n\\t\\t\\t\\n\\n\\t\\t
  4. \\n\\t
\\n
\\n\" }]\n }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: StructureId }, { type: SchemaPublisher }] });\n\nclass StructureDialogSchemaManagerComponent extends PureComponent {\n constructor(elRef) {\n super(elRef);\n }\n getSelectorName() {\n return 'gui-schema-manager-dialog';\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureDialogSchemaManagerComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"17.0.2\", type: StructureDialogSchemaManagerComponent, selector: \"div[gui-schema-manager-dialog]\", usesInheritance: true, ngImport: i0, template: `\n\t\t
\n\t`, isInline: true, dependencies: [{ kind: \"component\", type: StructureSchemaMangerComponent, selector: \"div[gui-structure-schema-manager]\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureDialogSchemaManagerComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'div[gui-schema-manager-dialog]',\n template: `\n\t\t
\n\t`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n }]\n }], ctorParameters: () => [{ type: i0.ElementRef }] });\n\nclass StructureDialogSchemaManagerService extends Reactive {\n injector;\n fabricDialogService;\n constructor(injector, fabricDialogService) {\n super();\n this.injector = injector;\n this.fabricDialogService = fabricDialogService;\n }\n open(readModelId, parentInjector) {\n if (!parentInjector) {\n parentInjector = this.injector;\n }\n const injector = Injector.create({\n providers: [{ provide: SchemaReadModelRootId, useValue: readModelId }],\n parent: parentInjector\n });\n this.fabricDialogService.open({\n injector: injector,\n component: StructureDialogSchemaManagerComponent\n });\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureDialogSchemaManagerService, deps: [{ token: i0.Injector }, { token: i1$1.FabricDialogService }], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureDialogSchemaManagerService });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureDialogSchemaManagerService, decorators: [{\n type: Injectable\n }], ctorParameters: () => [{ type: i0.Injector }, { type: i1$1.FabricDialogService }] });\n\nclass StructureColumnManagerIconComponent extends IconComponent {\n constructor(elementRef, changeDetectorRef) {\n super(elementRef, changeDetectorRef);\n }\n getSelectorName() {\n return 'gui-structure-column-manager-icon';\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureColumnManagerIconComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"17.0.2\", type: StructureColumnManagerIconComponent, selector: \"div[gui-structure-column-manager-icon]\", usesInheritance: true, ngImport: i0, template: `\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureColumnManagerIconComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'div[gui-structure-column-manager-icon]',\n template: `\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n }]\n }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }] });\n\nclass StructureSchemaManagerIconComponent extends IconComponent {\n constructor(elRef, cdr) {\n super(elRef, cdr);\n }\n getSelectorName() {\n return 'gui-structure-schema-manager-icon';\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureSchemaManagerIconComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"17.0.2\", type: StructureSchemaManagerIconComponent, selector: \"div[gui-structure-schema-manager-icon]\", usesInheritance: true, ngImport: i0, template: \"\\n\\t\\n\\t\\t\\n\\t\\t\\n\\t\\t\\n\\t\\t\\n\\t\\t\\n\\t\\t\\n\\t\\t\\n\\t\\t\\n\\t\\t\\n\\t\\n\\n\", changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureSchemaManagerIconComponent, decorators: [{\n type: Component,\n args: [{ selector: 'div[gui-structure-schema-manager-icon]', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: \"\\n\\t\\n\\t\\t\\n\\t\\t\\n\\t\\t\\n\\t\\t\\n\\t\\t\\n\\t\\t\\n\\t\\t\\n\\t\\t\\n\\t\\t\\n\\t\\n\\n\" }]\n }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }] });\n\nclass ActiveSearchComponent extends SmartComponent {\n structureId = inject(StructureId);\n searchCommandDispatcher = inject(SearchPublisher);\n searchWarehouse = inject(SearchWarehouse);\n phrase$ = this.searchWarehouse.onPhrase(this.structureId);\n constructor(changeDetectorRef, elementRef) {\n super(changeDetectorRef, elementRef);\n }\n clearSearch() {\n event.stopPropagation();\n this.searchCommandDispatcher.search('', this.structureId);\n }\n getSelectorName() {\n return 'gui-active-search';\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: ActiveSearchComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"17.0.2\", type: ActiveSearchComponent, selector: \"div[gui-active-search]\", usesInheritance: true, ngImport: i0, template: \"\\n\\t
\\n\\t\\tActive search by:\\n\\t
\\n\\n\\t
\\n\\t\\t{{phrase}}\\n\\t
\\n\\n\\t
\\n\\t\\t\\n\\t
\\n
\\n\", dependencies: [{ kind: \"component\", type: i1$1.FabricButtonComponent, selector: \"button[gui-button], a[gui-button]\", inputs: [\"link\", \"text\"] }, { kind: \"component\", type: i1$1.FabricChipComponent, selector: \"gui-chip\" }, { kind: \"directive\", type: GuiLetDirective, selector: \"[guiLet]\", inputs: [\"guiLet\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: ActiveSearchComponent, decorators: [{\n type: Component,\n args: [{ selector: 'div[gui-active-search]', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: \"\\n\\t
\\n\\t\\tActive search by:\\n\\t
\\n\\n\\t
\\n\\t\\t{{phrase}}\\n\\t
\\n\\n\\t
\\n\\t\\t\\n\\t
\\n
\\n\" }]\n }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }] });\n\nclass ActiveFilterListComponent extends SmartComponent {\n filterCommandDispatcher;\n structureId = inject(StructureId);\n filterWarehouse = inject(FilterWarehouse);\n activeFilters$ = this.filterWarehouse.onActiveFilters(this.structureId);\n constructor(changeDetectorRef, elementRef, filterCommandDispatcher) {\n super(changeDetectorRef, elementRef);\n this.filterCommandDispatcher = filterCommandDispatcher;\n }\n removeFilter(filter) {\n this.filterCommandDispatcher.remove(filter.getFilterId(), this.structureId);\n }\n getSelectorName() {\n return 'gui-active-filter-list';\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: ActiveFilterListComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: FilterPublisher }], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"17.0.2\", type: ActiveFilterListComponent, selector: \"div[gui-active-filter-list]\", usesInheritance: true, ngImport: i0, template: \"\\n\\t
\\n\\t\\t{{filter.getText()}}\\n\\t\\tX\\n\\t
\\n
\\n\\n
\\n\", dependencies: [{ kind: \"directive\", type: i4.NgForOf, selector: \"[ngFor][ngForOf]\", inputs: [\"ngForOf\", \"ngForTrackBy\", \"ngForTemplate\"] }, { kind: \"directive\", type: GuiLetDirective, selector: \"[guiLet]\", inputs: [\"guiLet\"] }, { kind: \"component\", type: ActiveSearchComponent, selector: \"div[gui-active-search]\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: ActiveFilterListComponent, decorators: [{\n type: Component,\n args: [{ selector: 'div[gui-active-filter-list]', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: \"\\n\\t
\\n\\t\\t{{filter.getText()}}\\n\\t\\tX\\n\\t
\\n
\\n\\n
\\n\" }]\n }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: FilterPublisher }] });\n\nclass ActiveFilterMenuComponent {\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: ActiveFilterMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"17.0.2\", type: ActiveFilterMenuComponent, selector: \"ng-component\", ngImport: i0, template: `\n\n\t\t

Active filters

\n\n\t\t
\n\n\t\t
\n\n\t\t\t\n\n\t\t\t\n\t\t
\n\t`, isInline: true, dependencies: [{ kind: \"component\", type: ActiveFilterListComponent, selector: \"div[gui-active-filter-list]\" }, { kind: \"component\", type: i1$1.FabricButtonComponent, selector: \"button[gui-button], a[gui-button]\", inputs: [\"link\", \"text\"] }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: ActiveFilterMenuComponent, decorators: [{\n type: Component,\n args: [{\n template: `\n\n\t\t

Active filters

\n\n\t\t
\n\n\t\t
\n\n\t\t\t\n\n\t\t\t\n\t\t
\n\t`\n }]\n }] });\n\nclass ActiveFilterService extends Reactive {\n injector;\n schemaWarehouse;\n structureThemeConverter;\n fabricDialogService;\n constructor(injector, schemaWarehouse, structureThemeConverter, fabricDialogService) {\n super();\n this.injector = injector;\n this.schemaWarehouse = schemaWarehouse;\n this.structureThemeConverter = structureThemeConverter;\n this.fabricDialogService = fabricDialogService;\n }\n open(readModelId, structureId) {\n const injector = Injector.create({\n parent: this.injector,\n providers: [\n { provide: SchemaReadModelRootId, useValue: readModelId },\n { provide: StructureId, useValue: structureId }\n ]\n });\n this.schemaWarehouse\n .findTheme(readModelId)\n .ifPresent((theme) => {\n this.fabricDialogService.open({\n injector: injector,\n component: ActiveFilterMenuComponent,\n theme: this.structureThemeConverter.convertTheme(theme)\n });\n });\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: ActiveFilterService, deps: [{ token: i0.Injector }, { token: SchemaWarehouse }, { token: StructureThemeConverter }, { token: i1$1.FabricDialogService }], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: ActiveFilterService });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: ActiveFilterService, decorators: [{\n type: Injectable\n }], ctorParameters: () => [{ type: i0.Injector }, { type: SchemaWarehouse }, { type: StructureThemeConverter }, { type: i1$1.FabricDialogService }] });\n\nclass ActiveFilterMenuTriggerDirective {\n el;\n structureId;\n activeFilterService;\n schemaReadModelRootId;\n constructor(el, structureId, activeFilterService, schemaReadModelRootId) {\n this.el = el;\n this.structureId = structureId;\n this.activeFilterService = activeFilterService;\n this.schemaReadModelRootId = schemaReadModelRootId;\n }\n ngOnInit() {\n // this.renderer.listen(this.el.nativeElement, 'click', () => {\n // \tthis.activeFilterService.open(this.schemaReadModelRootId, this.structureId);\n // });\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: ActiveFilterMenuTriggerDirective, deps: [{ token: i0.ElementRef }, { token: StructureId }, { token: ActiveFilterService }, { token: SchemaReadModelRootId }], target: i0.ɵɵFactoryTarget.Directive });\n static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"17.0.2\", type: ActiveFilterMenuTriggerDirective, selector: \"[gui-active-filter-menu-trigger]\", ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: ActiveFilterMenuTriggerDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[gui-active-filter-menu-trigger]'\n }]\n }], ctorParameters: () => [{ type: i0.ElementRef }, { type: StructureId }, { type: ActiveFilterService }, { type: SchemaReadModelRootId }] });\n\nclass StructureInfoIconComponent extends IconComponent {\n constructor(elRef, cdr) {\n super(elRef, cdr);\n }\n getSelectorName() {\n return 'gui-structure-info-icon';\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureInfoIconComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"17.0.2\", type: StructureInfoIconComponent, selector: \"div[gui-structure-info-icon]\", usesInheritance: true, ngImport: i0, template: \"\\n\\t\\n\\t\\n\\n\", changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureInfoIconComponent, decorators: [{\n type: Component,\n args: [{ selector: 'div[gui-structure-info-icon]', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: \"\\n\\t\\n\\t\\n\\n\" }]\n }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }] });\n\nclass NumberFormatterPipe {\n transform(number) {\n return number.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, ' ');\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: NumberFormatterPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });\n static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"17.0.2\", ngImport: i0, type: NumberFormatterPipe, name: \"numberFormatter\" });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: NumberFormatterPipe, decorators: [{\n type: Pipe,\n args: [{ name: 'numberFormatter' }]\n }] });\n\nclass StructureInfoPanelComponent extends SmartComponent {\n injector;\n dialog;\n compositionId;\n schemaReadModelRootId;\n menuColumnManagerService;\n translationService;\n schemaManagerService;\n structureInfoPanelArchive;\n state = inject((GuiState));\n sourceWarehouse = inject(SourceWarehouse);\n structureId = inject(StructureId);\n state$ = this.state.select();\n totalItemsSize$ = this.sourceWarehouse.onOriginSize(this.structureId);\n infoModal = StructureInfoModalComponent;\n constructor(changeDetectorRef, elementRef, injector, dialog, compositionId, schemaReadModelRootId, menuColumnManagerService, translationService, schemaManagerService, structureInfoPanelArchive) {\n super(changeDetectorRef, elementRef);\n this.injector = injector;\n this.dialog = dialog;\n this.compositionId = compositionId;\n this.schemaReadModelRootId = schemaReadModelRootId;\n this.menuColumnManagerService = menuColumnManagerService;\n this.translationService = translationService;\n this.schemaManagerService = schemaManagerService;\n this.structureInfoPanelArchive = structureInfoPanelArchive;\n this.state.connect('infoPanelConfig', this.structureInfoPanelArchive.on());\n this.state.connect('preparedItemsSize', this.sourceWarehouse\n .onPreparedItems(this.structureId)\n .pipe(hermesMap(items => items.length)));\n this.state.connect('translations', this.translationService.onTranslation());\n }\n openInfo() {\n this.dialog.open({ component: this.infoModal });\n }\n openColumnManager() {\n this.menuColumnManagerService.open(this.compositionId, this.schemaReadModelRootId, this.injector);\n }\n openSchemaManager() {\n this.schemaManagerService.open(this.schemaReadModelRootId, this.injector);\n }\n getSelectorName() {\n return 'gui-structure-info-panel';\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureInfoPanelComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.Injector }, { token: i1$1.FabricDialogService }, { token: CompositionId }, { token: SchemaReadModelRootId }, { token: StructureDialogColumnManagerService }, { token: TranslationFacade }, { token: StructureDialogSchemaManagerService }, { token: StructureInfoPanelArchive }], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"17.0.2\", type: StructureInfoPanelComponent, selector: \"div[gui-structure-info-panel]\", providers: [\n GuiState\n ], usesInheritance: true, ngImport: i0, template: \"\\n\\n\\t
\\n\\t\\t
\\n\\t\\t\\t\\n\\n\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t{{'infoPanelShowing' | guiTranslate}}\\n\\t\\t\\t\\t\\t{{totalItemsSize | numberFormatter}}\\n\\t\\t\\t\\t\\t{{'infoPanelItems' | guiTranslate}}\\n\\t\\t\\t\\t\\n\\n\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t{{'infoPanelShowing' | guiTranslate}}\\n\\t\\t\\t\\t\\t{{localState.preparedItemsSize | numberFormatter}}\\n\\t\\t\\t\\t\\t{{'infoPanelOutOf' | guiTranslate}}\\n\\t\\t\\t\\t\\t{{totalItemsSize | numberFormatter}}\\n\\t\\t\\t\\t\\t{{'infoPanelItems' | guiTranslate}}\\n\\t\\t\\t\\n\\n\\t\\t\\t\\n\\n\\t\\t
\\n\\t
\\n\\n\\t
\\n\\t\\t
\\n\\n\\t\\t\\t
\\n\\t\\t\\t\\t
\\n\\t\\t\\t
\\n\\n\\t\\t\\t
\\n\\t\\t\\t\\t
\\n\\t\\t\\t
\\n\\n\\t\\t\\t
\\n\\t\\t\\t\\t
\\n\\t\\t\\t
\\n\\t\\t
\\n\\t
\\n\\n
\\n\", dependencies: [{ kind: \"directive\", type: i4.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { kind: \"directive\", type: i1$1.FabricTooltipDirective, selector: \"[gui-tooltip]\", inputs: [\"gui-tooltip\"], exportAs: [\"guiTooltip\"] }, { kind: \"component\", type: StructureColumnManagerIconComponent, selector: \"div[gui-structure-column-manager-icon]\" }, { kind: \"component\", type: StructureSchemaManagerIconComponent, selector: \"div[gui-structure-schema-manager-icon]\" }, { kind: \"directive\", type: ActiveFilterMenuTriggerDirective, selector: \"[gui-active-filter-menu-trigger]\" }, { kind: \"directive\", type: GuiLetDirective, selector: \"[guiLet]\", inputs: [\"guiLet\"] }, { kind: \"component\", type: StructureInfoIconComponent, selector: \"div[gui-structure-info-icon]\" }, { kind: \"pipe\", type: NumberFormatterPipe, name: \"numberFormatter\" }, { kind: \"pipe\", type: TranslationPipe, name: \"guiTranslate\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureInfoPanelComponent, decorators: [{\n type: Component,\n args: [{ selector: 'div[gui-structure-info-panel]', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, providers: [\n GuiState\n ], template: \"\\n\\n\\t
\\n\\t\\t
\\n\\t\\t\\t\\n\\n\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t{{'infoPanelShowing' | guiTranslate}}\\n\\t\\t\\t\\t\\t{{totalItemsSize | numberFormatter}}\\n\\t\\t\\t\\t\\t{{'infoPanelItems' | guiTranslate}}\\n\\t\\t\\t\\t\\n\\n\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\\t{{'infoPanelShowing' | guiTranslate}}\\n\\t\\t\\t\\t\\t{{localState.preparedItemsSize | numberFormatter}}\\n\\t\\t\\t\\t\\t{{'infoPanelOutOf' | guiTranslate}}\\n\\t\\t\\t\\t\\t{{totalItemsSize | numberFormatter}}\\n\\t\\t\\t\\t\\t{{'infoPanelItems' | guiTranslate}}\\n\\t\\t\\t\\n\\n\\t\\t\\t\\n\\n\\t\\t
\\n\\t
\\n\\n\\t
\\n\\t\\t
\\n\\n\\t\\t\\t
\\n\\t\\t\\t\\t
\\n\\t\\t\\t
\\n\\n\\t\\t\\t
\\n\\t\\t\\t\\t
\\n\\t\\t\\t
\\n\\n\\t\\t\\t
\\n\\t\\t\\t\\t
\\n\\t\\t\\t
\\n\\t\\t
\\n\\t
\\n\\n
\\n\" }]\n }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.Injector }, { type: i1$1.FabricDialogService }, { type: CompositionId }, { type: SchemaReadModelRootId }, { type: StructureDialogColumnManagerService }, { type: TranslationFacade }, { type: StructureDialogSchemaManagerService }, { type: StructureInfoPanelArchive }] });\n\nclass GuiEffects {\n destroy$ = new HermesReplaySubject(1);\n register(effect$, next, complete) {\n return effect$.pipe(hermesTakeUntil(this.destroy$))\n .subscribe((v) => next(v), (error) => console.log(error), complete ? () => complete() : () => { });\n }\n destroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n ngOnDestroy() {\n this.destroy();\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: GuiEffects, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: GuiEffects });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: GuiEffects, decorators: [{\n type: Injectable\n }] });\n\nclass SearchIconComponent extends IconComponent {\n constructor(elementRef, changeDetectorRef) {\n super(elementRef, changeDetectorRef);\n }\n getSelectorName() {\n return 'gui-search-icon';\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: SearchIconComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"17.0.2\", type: SearchIconComponent, selector: \"div[gui-search-icon]\", usesInheritance: true, ngImport: i0, template: `\n\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: SearchIconComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'div[gui-search-icon]',\n template: `\n\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n }]\n }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }] });\n\nclass SearchComponent extends SmartComponent {\n formBuilder;\n effects;\n searchCommandDispatcher;\n static FORM_SEARCH_NAME = 'searchPhrase';\n formRef;\n structureId = inject(StructureId);\n searchWarehouse = inject(SearchWarehouse);\n searchForm;\n placeholder$ = this.searchWarehouse.onPlaceholder(this.structureId);\n searchingEnabled$ = this.searchWarehouse.onSearchEnabled(this.structureId);\n searchInputSubscription;\n constructor(formBuilder, changeDetectorRef, elementRef, effects, searchCommandDispatcher) {\n super(changeDetectorRef, elementRef);\n this.formBuilder = formBuilder;\n this.effects = effects;\n this.searchCommandDispatcher = searchCommandDispatcher;\n const controlsConfig = {};\n controlsConfig[SearchComponent.FORM_SEARCH_NAME] = '';\n this.searchForm = this.formBuilder.group(controlsConfig);\n this.registerOnPhraseEffect();\n }\n ngOnInit() {\n this.registerOnChangesEffect();\n }\n clear() {\n this.searchForm.reset();\n }\n getSelectorName() {\n return 'gui-search-bar';\n }\n selectPhrase() {\n // @ts-ignore\n const searchPhrase$ = this.searchForm\n .controls[SearchComponent.FORM_SEARCH_NAME]\n .valueChanges;\n return fromRxJsObservable(searchPhrase$\n .pipe(debounceTime(200)));\n }\n registerOnChangesEffect() {\n this.searchInputSubscription =\n this.effects.register(this.selectPhrase(), (phrase) => {\n this.searchCommandDispatcher.search(phrase, this.structureId);\n });\n }\n registerOnPhraseEffect() {\n this.effects.register(this.searchWarehouse.onPhrase(this.structureId), (phrase) => {\n if (phrase === undefined) {\n phrase = null;\n }\n const controlsConfig = {};\n controlsConfig[SearchComponent.FORM_SEARCH_NAME] = phrase;\n if (phrase !== this.searchForm.get([SearchComponent.FORM_SEARCH_NAME]).value) {\n this.unregisterObserveChangesEffect();\n this.searchForm.setValue(controlsConfig);\n this.registerOnChangesEffect();\n }\n });\n }\n unregisterObserveChangesEffect() {\n this.searchInputSubscription.unsubscribe();\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: SearchComponent, deps: [{ token: i1$2.FormBuilder }, { token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: GuiEffects }, { token: SearchPublisher }], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"17.0.2\", type: SearchComponent, selector: \"div[gui-search-bar]\", providers: [\n GuiEffects\n ], viewQueries: [{ propertyName: \"formRef\", first: true, predicate: [\"formRef\"], descendants: true, read: ElementRef }], usesInheritance: true, ngImport: i0, template: \"\\n\\n\\t
\\n\\n\\t\\t
\\n\\n\\t\\t\\n\\n\\t\\t\\n\\t\\t\\t\\t\\n\\t
\\n
\\n\", styles: [\".gui-search-bar form{background:#fff}.gui-search-bar form:hover .gui-search-icon-svg line,.gui-search-bar form:hover .gui-search-icon-svg circle{stroke:#333}.gui-search-bar .gui-search-icon-svg{height:17px;left:10px;position:absolute;top:6px;width:17px}.gui-search-bar .gui-search-icon-svg line,.gui-search-bar .gui-search-icon-svg circle{stroke:#ccc;transition:stroke .3s ease-in-out}\\n\"], dependencies: [{ kind: \"directive\", type: i4.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { kind: \"directive\", type: i1$2.ɵNgNoValidate, selector: \"form:not([ngNoForm]):not([ngNativeValidate])\" }, { kind: \"directive\", type: i1$2.DefaultValueAccessor, selector: \"input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]\" }, { kind: \"directive\", type: i1$2.NgControlStatus, selector: \"[formControlName],[ngModel],[formControl]\" }, { kind: \"directive\", type: i1$2.NgControlStatusGroup, selector: \"[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]\" }, { kind: \"directive\", type: i1$2.FormGroupDirective, selector: \"[formGroup]\", inputs: [\"formGroup\"], outputs: [\"ngSubmit\"], exportAs: [\"ngForm\"] }, { kind: \"directive\", type: i1$2.FormControlName, selector: \"[formControlName]\", inputs: [\"formControlName\", \"disabled\", \"ngModel\"], outputs: [\"ngModelChange\"] }, { kind: \"directive\", type: GuiIfDirective, selector: \"[guiIf]\", inputs: [\"guiIf\"] }, { kind: \"component\", type: SearchIconComponent, selector: \"div[gui-search-icon]\" }, { kind: \"pipe\", type: GuiPushPipe, name: \"guiPush\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: SearchComponent, decorators: [{\n type: Component,\n args: [{ selector: 'div[gui-search-bar]', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, providers: [\n GuiEffects\n ], template: \"\\n\\n\\t
\\n\\n\\t\\t
\\n\\n\\t\\t\\n\\n\\t\\t\\n\\t\\t\\t\\t\\n\\t
\\n
\\n\", styles: [\".gui-search-bar form{background:#fff}.gui-search-bar form:hover .gui-search-icon-svg line,.gui-search-bar form:hover .gui-search-icon-svg circle{stroke:#333}.gui-search-bar .gui-search-icon-svg{height:17px;left:10px;position:absolute;top:6px;width:17px}.gui-search-bar .gui-search-icon-svg line,.gui-search-bar .gui-search-icon-svg circle{stroke:#ccc;transition:stroke .3s ease-in-out}\\n\"] }]\n }], ctorParameters: () => [{ type: i1$2.FormBuilder }, { type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: GuiEffects }, { type: SearchPublisher }], propDecorators: { formRef: [{\n type: ViewChild,\n args: ['formRef', { read: ElementRef, static: false }]\n }] } });\n\nclass StructureTopPanelComponent extends PureComponent {\n constructor(elementRef) {\n super(elementRef);\n this.addClassToHost('gui-p-6');\n this.addClassToHost('gui-border-b');\n this.addClassToHost('gui-border-b-solid');\n }\n getSelectorName() {\n return 'gui-structure-top-panel';\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureTopPanelComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"17.0.2\", type: StructureTopPanelComponent, selector: \"div[gui-structure-top-panel]\", usesInheritance: true, ngImport: i0, template: \"
\\n\\n\\n\", dependencies: [{ kind: \"component\", type: SearchComponent, selector: \"div[gui-search-bar]\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureTopPanelComponent, decorators: [{\n type: Component,\n args: [{ selector: 'div[gui-structure-top-panel]', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: \"
\\n\\n\\n\" }]\n }], ctorParameters: () => [{ type: i0.ElementRef }] });\n\nclass EmptySourceComponent extends PureComponent {\n items;\n constructor(elRef) {\n super(elRef);\n this.addClassToHost('gui-py-23');\n this.addClassToHost('gui-px-6');\n }\n ngOnChanges(changes) {\n ifChanged(changes.items, () => {\n if (this.items.length === 0) {\n this.removeClassFromHost('gui-hidden');\n this.addClassToHost('gui-block');\n }\n else {\n this.removeClassFromHost('gui-block');\n this.addClassToHost('gui-hidden');\n }\n });\n }\n getSelectorName() {\n return 'gui-empty-source';\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: EmptySourceComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"17.0.2\", type: EmptySourceComponent, selector: \"div[gui-empty-source][items]\", inputs: { items: \"items\" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: \"\\n\\t{{'sourceEmpty' | guiTranslate}}\\n\\n\", dependencies: [{ kind: \"directive\", type: i4.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { kind: \"pipe\", type: TranslationPipe, name: \"guiTranslate\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: EmptySourceComponent, decorators: [{\n type: Component,\n args: [{ selector: 'div[gui-empty-source][items]', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: \"\\n\\t{{'sourceEmpty' | guiTranslate}}\\n\\n\" }]\n }], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { items: [{\n type: Input\n }] } });\n\nclass VerticalFormationWarehouse {\n constructor() {\n }\n}\n\nclass StructureMenuColumnManagerComponent extends PureComponent {\n constructor(elementRef) {\n super(elementRef);\n }\n getSelectorName() {\n return 'gui-structure-menu-column-manager';\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureMenuColumnManagerComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"17.0.2\", type: StructureMenuColumnManagerComponent, selector: \"div[gui-structure-menu-column-manager]\", usesInheritance: true, ngImport: i0, template: \"
\\n\", dependencies: [{ kind: \"component\", type: StructureColumnManagerComponent, selector: \"div[gui-structure-column-manager]\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureMenuColumnManagerComponent, decorators: [{\n type: Component,\n args: [{ selector: 'div[gui-structure-menu-column-manager]', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: \"
\\n\" }]\n }], ctorParameters: () => [{ type: i0.ElementRef }] });\n\nclass UniqueValueListComponent extends SmartComponent {\n structureId;\n filterWarehouse;\n filterCommandInvoker;\n set fieldId(fieldId) {\n this.state.setValue({\n fieldId\n });\n }\n ;\n state = inject((GuiState));\n state$ = this.state.select();\n constructor(changeDetectorRef, elementRef, structureId, filterWarehouse, filterCommandInvoker) {\n super(changeDetectorRef, elementRef);\n this.structureId = structureId;\n this.filterWarehouse = filterWarehouse;\n this.filterCommandInvoker = filterCommandInvoker;\n this.state.connect('uniqueValues', this.selectUniqueValues());\n this.state.connect('selectAllChecked', this.isSelectAllChecked());\n this.state.connect('selectAllIndeterminate', this.isSelectAllIndeterminate());\n }\n toggleAllSelect() {\n event.stopPropagation();\n const fieldId = this.state.getValue('fieldId'), selectAllChecked = this.state.getValue('selectAllChecked');\n if (selectAllChecked) {\n this.filterCommandInvoker.unselectAllUniqueFilter(fieldId, this.structureId);\n }\n else {\n this.filterCommandInvoker.selectAllUniqueFilter(fieldId, this.structureId);\n }\n }\n toggleSelect(uniqueValueModel) {\n event.stopPropagation();\n const fieldId = this.state.getValue('fieldId');\n if (uniqueValueModel.isEnabled()) {\n this.filterCommandInvoker.unselectUniqueFilter(fieldId, uniqueValueModel.getId(), this.structureId);\n }\n else {\n this.filterCommandInvoker.selectUniqueFilter(fieldId, uniqueValueModel.getId(), this.structureId);\n }\n }\n clearFilters() {\n const fieldId = this.state.getValue('fieldId');\n this.filterCommandInvoker.selectAllUniqueFilter(fieldId, this.structureId);\n }\n getSelectorName() {\n return 'gui-unique-value-list';\n }\n selectUniqueValues() {\n return this.state\n .select('fieldId')\n .pipe(hermesSwitchMap((fieldId) => {\n return this.filterWarehouse\n .onUniqueValues(this.structureId)\n .pipe(hermesMap((uniqueValueCollectionModel) => {\n return uniqueValueCollectionModel.getValues(fieldId);\n }));\n }));\n }\n isSelectAllChecked() {\n return this.state\n .select('fieldId')\n .pipe(hermesSwitchMap((fieldId) => {\n return this.filterWarehouse\n .onUniqueValues(this.structureId)\n .pipe(hermesMap((uniqueValueCollectionModel) => {\n return uniqueValueCollectionModel.isSelectAllChecked(fieldId);\n }));\n }));\n }\n isSelectAllIndeterminate() {\n return this.state\n .select('fieldId')\n .pipe(hermesSwitchMap((fieldId) => {\n return this.filterWarehouse\n .onUniqueValues(this.structureId)\n .pipe(hermesMap((uniqueValueCollectionModel) => {\n return uniqueValueCollectionModel.isIndeterminate(fieldId);\n }));\n }));\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: UniqueValueListComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: StructureId }, { token: FilterWarehouse }, { token: FilterPublisher }], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"17.0.2\", type: UniqueValueListComponent, selector: \"div[gui-unique-value-list][fieldId]\", inputs: { fieldId: \"fieldId\" }, providers: [\n GuiState\n ], usesInheritance: true, ngImport: i0, template: \"\\n\\t\\n\\t\\tSelect all\\n\\t\\n\\n\\t
\\n\\t\\t
\\n\\t\\t\\t\\n\\t\\t\\t\\t{{value.getValue()}}\\n\\t\\t\\t\\n\\t\\t
\\n\\t
\\n\\n\\t
\\n\\t\\t\\n\\t
\\n
\\n\", styles: [\".gui-unique-value-list-container{max-height:300px}\\n\"], dependencies: [{ kind: \"directive\", type: i4.NgForOf, selector: \"[ngFor][ngForOf]\", inputs: [\"ngForOf\", \"ngForTrackBy\", \"ngForTemplate\"] }, { kind: \"component\", type: i1$1.FabricButtonComponent, selector: \"button[gui-button], a[gui-button]\", inputs: [\"link\", \"text\"] }, { kind: \"component\", type: i1$1.FabricCheckboxComponent, selector: \"gui-checkbox\", inputs: [\"name\", \"checked\", \"disabled\", \"readonly\", \"indeterminate\"], outputs: [\"changed\"] }, { kind: \"directive\", type: GuiLetDirective, selector: \"[guiLet]\", inputs: [\"guiLet\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: UniqueValueListComponent, decorators: [{\n type: Component,\n args: [{ selector: 'div[gui-unique-value-list][fieldId]', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, providers: [\n GuiState\n ], template: \"\\n\\t\\n\\t\\tSelect all\\n\\t\\n\\n\\t
\\n\\t\\t
\\n\\t\\t\\t\\n\\t\\t\\t\\t{{value.getValue()}}\\n\\t\\t\\t\\n\\t\\t
\\n\\t
\\n\\n\\t
\\n\\t\\t\\n\\t
\\n
\\n\", styles: [\".gui-unique-value-list-container{max-height:300px}\\n\"] }]\n }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: StructureId }, { type: FilterWarehouse }, { type: FilterPublisher }], propDecorators: { fieldId: [{\n type: Input\n }] } });\n\nvar StructureArrowPosition;\n(function (StructureArrowPosition) {\n StructureArrowPosition[StructureArrowPosition[\"UP\"] = 0] = \"UP\";\n StructureArrowPosition[StructureArrowPosition[\"DOWN\"] = 1] = \"DOWN\";\n StructureArrowPosition[StructureArrowPosition[\"LEFT\"] = 2] = \"LEFT\";\n StructureArrowPosition[StructureArrowPosition[\"RIGHT\"] = 3] = \"RIGHT\";\n})(StructureArrowPosition || (StructureArrowPosition = {}));\n\nclass StructureArrowIconComponent extends IconComponent {\n position = StructureArrowPosition.UP;\n sort;\n styleModifier;\n constructor(elementRef, changeDetectorRef) {\n super(elementRef, changeDetectorRef);\n if (this.sort) {\n this.addClassToHost('gui-structure-column-menu-sort-icon');\n }\n this.styleModifier = new StyleModifier(elementRef.nativeElement);\n }\n ngOnChanges(changes) {\n ifChanged(changes.position, () => {\n if (this.position) {\n this.styleModifier.getHost().setStyleByName('transform', this.getTransformValue());\n }\n });\n }\n getSelectorName() {\n return 'gui-structure-column-menu-arrow-icon';\n }\n getTransformValue() {\n return 'rotate(' + this.getRotationDeg() + 'deg)';\n }\n getRotationDeg() {\n switch (this.position) {\n case StructureArrowPosition.UP: {\n return 0;\n }\n case StructureArrowPosition.DOWN: {\n return 180;\n }\n case StructureArrowPosition.LEFT: {\n return -90;\n }\n case StructureArrowPosition.RIGHT: {\n return 90;\n }\n default: {\n return 0;\n }\n }\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureArrowIconComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"17.0.2\", type: StructureArrowIconComponent, selector: \"div[gui-structure-arrow-icon]\", inputs: { position: \"position\", sort: \"sort\" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: `\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureArrowIconComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'div[gui-structure-arrow-icon]',\n template: `\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n }]\n }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }], propDecorators: { position: [{\n type: Input\n }], sort: [{\n type: Input\n }] } });\n\nclass StructureColumnConfigSortComponent extends SmartComponent {\n changeDetectorRef;\n compositionId;\n structureId;\n sortingCommandDispatcher;\n compositionReadModelService;\n set column(column) {\n this.state.setValue({\n fieldId: column.getFieldId()\n });\n }\n dropdownTextTranslation;\n state = inject((GuiState));\n placement = Placement.Right;\n status = SortOrder;\n StructureArrowPosition = StructureArrowPosition;\n sortOrder$ = this.state.select('sortOrder');\n constructor(changeDetectorRef, elementRef, compositionId, structureId, sortingCommandDispatcher, compositionReadModelService) {\n super(changeDetectorRef, elementRef);\n this.changeDetectorRef = changeDetectorRef;\n this.compositionId = compositionId;\n this.structureId = structureId;\n this.sortingCommandDispatcher = sortingCommandDispatcher;\n this.compositionReadModelService = compositionReadModelService;\n this.state.connect('sortOrder', this.selectSortOrder());\n }\n isAscSort() {\n return this.state.getValue('sortOrder') === SortOrder.ASC;\n }\n isDescSort() {\n return this.state.getValue('sortOrder') === SortOrder.DESC;\n }\n isNoneSort() {\n return this.state.getValue('sortOrder') === SortOrder.NONE;\n }\n setSortOrder(sort) {\n event.preventDefault();\n event.stopPropagation();\n const fieldId = this.state.getValue('fieldId');\n this.sortingCommandDispatcher.setSortOrder(fieldId, sort, this.compositionId, this.structureId);\n }\n getSelectorName() {\n return 'gui-structure-column-config-sort';\n }\n selectSortOrder() {\n return this.state\n .select('fieldId')\n .pipe(hermesSwitchMap((fieldId) => {\n return this.compositionReadModelService\n .onSortOrder(fieldId, this.compositionId);\n }));\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureColumnConfigSortComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: CompositionId }, { token: StructureId }, { token: SortingPublisher }, { token: CompositionWarehouse }], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"17.0.2\", type: StructureColumnConfigSortComponent, selector: \"div[gui-structure-column-config-sort][column][dropdownTextTranslation]\", inputs: { column: \"column\", dropdownTextTranslation: \"dropdownTextTranslation\" }, providers: [\n GuiState\n ], usesInheritance: true, ngImport: i0, template: \"\\n\\n\\t\\n\\t\\t
\\n\\t\\t\\t{{'headerMenuMainTabColumnSortAscending' | guiTranslate}}\\n\\t\\t\\t
\\n\\t\\t\\t
\\n\\t\\t
\\n\\t
\\n\\n\\t\\n\\t\\t
\\n\\t\\t\\t{{'headerMenuMainTabColumnSortDescending' | guiTranslate}}\\n\\t\\t\\t
\\n\\t\\t\\t
\\n\\t\\t
\\n\\t
\\n\\n\\t\\n\\t\\t{{'headerMenuMainTabColumnSortNone' | guiTranslate}}\\n\\t\\n\\n
\\n\", dependencies: [{ kind: \"component\", type: i1$1.FabricDropdownComponent, selector: \"gui-dropdown\", inputs: [\"disabled\", \"dropdownText\", \"isArrowEnabled\", \"placement\", \"width\", \"showOnHover\"] }, { kind: \"component\", type: i1$1.FabricDropdownItemComponent, selector: \"gui-dropdown-item\" }, { kind: \"directive\", type: GuiLetDirective, selector: \"[guiLet]\", inputs: [\"guiLet\"] }, { kind: \"component\", type: StructureArrowIconComponent, selector: \"div[gui-structure-arrow-icon]\", inputs: [\"position\", \"sort\"] }, { kind: \"pipe\", type: TranslationPipe, name: \"guiTranslate\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureColumnConfigSortComponent, decorators: [{\n type: Component,\n args: [{ selector: 'div[gui-structure-column-config-sort][column][dropdownTextTranslation]', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, providers: [\n GuiState\n ], template: \"\\n\\n\\t\\n\\t\\t
\\n\\t\\t\\t{{'headerMenuMainTabColumnSortAscending' | guiTranslate}}\\n\\t\\t\\t
\\n\\t\\t\\t
\\n\\t\\t
\\n\\t
\\n\\n\\t\\n\\t\\t
\\n\\t\\t\\t{{'headerMenuMainTabColumnSortDescending' | guiTranslate}}\\n\\t\\t\\t
\\n\\t\\t\\t
\\n\\t\\t
\\n\\t
\\n\\n\\t\\n\\t\\t{{'headerMenuMainTabColumnSortNone' | guiTranslate}}\\n\\t\\n\\n
\\n\" }]\n }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: CompositionId }, { type: StructureId }, { type: SortingPublisher }, { type: CompositionWarehouse }], propDecorators: { column: [{\n type: Input\n }], dropdownTextTranslation: [{\n type: Input\n }] } });\n\nclass StructureColumnConfigColumnHideComponent extends PureComponent {\n column;\n columnHidden = new EventEmitter();\n constructor(elRef) {\n super(elRef);\n }\n hideColumn() {\n this.columnHidden.emit();\n }\n getSelectorName() {\n return 'gui-structure-column-config-column-hide';\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureColumnConfigColumnHideComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"17.0.2\", type: StructureColumnConfigColumnHideComponent, selector: \"div[gui-structure-column-config-column-hide]\", inputs: { column: \"column\" }, outputs: { columnHidden: \"columnHidden\" }, usesInheritance: true, ngImport: i0, template: \"
\\n\\t{{'headerMenuMainTabHideColumn' | guiTranslate}}\\n
\\n\", dependencies: [{ kind: \"pipe\", type: TranslationPipe, name: \"guiTranslate\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureColumnConfigColumnHideComponent, decorators: [{\n type: Component,\n args: [{ selector: 'div[gui-structure-column-config-column-hide]', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: \"
\\n\\t{{'headerMenuMainTabHideColumn' | guiTranslate}}\\n
\\n\" }]\n }], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { column: [{\n type: Input\n }], columnHidden: [{\n type: Output\n }] } });\n\nclass StructureColumnConfigColumnMoveComponent extends PureComponent {\n column;\n movedLeft = new EventEmitter();\n movedRight = new EventEmitter();\n StructureArrowPosition = StructureArrowPosition;\n constructor(elRef) {\n super(elRef);\n }\n moveLeft() {\n this.movedLeft.emit();\n }\n moveRight() {\n this.movedRight.emit();\n }\n getSelectorName() {\n return 'gui-structure-column-config-column-move';\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureColumnConfigColumnMoveComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"17.0.2\", type: StructureColumnConfigColumnMoveComponent, selector: \"div[gui-structure-column-config-column-move][column]\", inputs: { column: \"column\" }, outputs: { movedLeft: \"movedLeft\", movedRight: \"movedRight\" }, usesInheritance: true, ngImport: i0, template: \"
\\n\\t
\\n\\t\\t
\\n\\t\\t{{'headerMenuMainTabMoveLeft' | guiTranslate}}\\n\\t
\\n\\n\\t
\\n\\t\\t{{'headerMenuMainTabMoveRight' | guiTranslate}}\\n\\t\\t
\\n\\t
\\n
\\n\", dependencies: [{ kind: \"component\", type: StructureArrowIconComponent, selector: \"div[gui-structure-arrow-icon]\", inputs: [\"position\", \"sort\"] }, { kind: \"pipe\", type: TranslationPipe, name: \"guiTranslate\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureColumnConfigColumnMoveComponent, decorators: [{\n type: Component,\n args: [{ selector: 'div[gui-structure-column-config-column-move][column]', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: \"
\\n\\t
\\n\\t\\t
\\n\\t\\t{{'headerMenuMainTabMoveLeft' | guiTranslate}}\\n\\t
\\n\\n\\t
\\n\\t\\t{{'headerMenuMainTabMoveRight' | guiTranslate}}\\n\\t\\t
\\n\\t
\\n
\\n\" }]\n }], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { column: [{\n type: Input\n }], movedLeft: [{\n type: Output\n }], movedRight: [{\n type: Output\n }] } });\n\nclass StructureColumnConfigComponent extends SmartComponent {\n translationFacade;\n structureColumnMenuConfigArchive;\n compositionId;\n compositionCommandInvoker;\n injector;\n column;\n headerSortMenu;\n state = inject((GuiState));\n state$ = this.state.select();\n structureColumnConfigService;\n constructor(changeDetectorRef, elementRef, translationFacade, structureColumnMenuConfigArchive, compositionId, compositionCommandInvoker, injector, column) {\n super(changeDetectorRef, elementRef);\n this.translationFacade = translationFacade;\n this.structureColumnMenuConfigArchive = structureColumnMenuConfigArchive;\n this.compositionId = compositionId;\n this.compositionCommandInvoker = compositionCommandInvoker;\n this.injector = injector;\n this.column = column;\n this.structureColumnConfigService = this.injector.get(StructureColumnConfigService);\n this.state.connect('isEnabled', this.selectIsEnabled());\n this.state.connect('config', this.structureColumnMenuConfigArchive.on());\n this.state.connect('translations', this.translationFacade.onTranslation());\n }\n isEnabled(config) {\n return config.isEnabled();\n }\n hideColumn() {\n this.compositionCommandInvoker.disableColumn(this.column.getColumnDefinitionId(), this.compositionId);\n this.structureColumnConfigService.close();\n }\n moveLeft() {\n this.compositionCommandInvoker.moveLeft(this.column.getColumnDefinitionId(), this.compositionId);\n this.structureColumnConfigService.close();\n }\n moveRight() {\n this.compositionCommandInvoker.moveRight(this.column.getColumnDefinitionId(), this.compositionId);\n this.structureColumnConfigService.close();\n }\n highlightColumn() {\n this.compositionCommandInvoker.highlightColumn(this.column.getColumnDefinitionId(), this.compositionId);\n this.structureColumnConfigService.close();\n }\n getSelectorName() {\n return 'gui-column-config';\n }\n selectIsEnabled() {\n return this.structureColumnMenuConfigArchive\n .on()\n .pipe(hermesMap((config) => config.isEnabled()));\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureColumnConfigComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: TranslationFacade }, { token: StructureColumnMenuConfigArchive }, { token: CompositionId }, { token: CompositionPublisher }, { token: i0.Injector }, { token: 'column' }], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"17.0.2\", type: StructureColumnConfigComponent, selector: \"div[gui-column-config]\", providers: [\n GuiState\n ], viewQueries: [{ propertyName: \"headerSortMenu\", first: true, predicate: [\"headerSortMenu\"], descendants: true, read: ElementRef }], usesInheritance: true, ngImport: i0, template: \"\\n\\n\\t
\\n\\n\\t\\t\\n\\n\\t\\t\\t\\n\\n\\t\\t\\t\\t\\n\\n\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t
\\n\\n\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t
\\n\\n\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t{{'headerMenuMainTabHighlightColumn' | guiTranslate}}\\n\\t\\t\\t\\t\\t
\\n\\n\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t
\\n\\n\\t\\t\\t\\t
\\n\\n\\t\\t\\t
\\n\\n\\t\\t\\t\\n\\n\\t\\t\\t\\t\\n\\n\\t\\t\\t\\t\\t\\n\\n\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t
\\n\\n\\t\\t\\t\\t
\\n\\n\\t\\t\\t
\\n\\n\\t\\t\\t\\n\\n\\t\\t\\t\\t\\n\\n\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t
\\n\\n\\t\\t\\t\\t
\\n\\n\\t\\t\\t
\\n\\n\\t\\t
\\n\\t
\\n\\n
\\n\", dependencies: [{ kind: \"directive\", type: i4.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { kind: \"component\", type: i1$1.FabricTabComponent, selector: \"gui-tab\", inputs: [\"menu\", \"active\", \"scrollActive\"] }, { kind: \"component\", type: i1$1.FabricTabItemComponent, selector: \"gui-tab-item\", inputs: [\"tab\"] }, { kind: \"directive\", type: GuiLetDirective, selector: \"[guiLet]\", inputs: [\"guiLet\"] }, { kind: \"component\", type: StructureMenuColumnManagerComponent, selector: \"div[gui-structure-menu-column-manager]\" }, { kind: \"component\", type: UniqueValueListComponent, selector: \"div[gui-unique-value-list][fieldId]\", inputs: [\"fieldId\"] }, { kind: \"component\", type: StructureColumnConfigSortComponent, selector: \"div[gui-structure-column-config-sort][column][dropdownTextTranslation]\", inputs: [\"column\", \"dropdownTextTranslation\"] }, { kind: \"component\", type: StructureColumnConfigColumnHideComponent, selector: \"div[gui-structure-column-config-column-hide]\", inputs: [\"column\"], outputs: [\"columnHidden\"] }, { kind: \"component\", type: StructureColumnConfigColumnMoveComponent, selector: \"div[gui-structure-column-config-column-move][column]\", inputs: [\"column\"], outputs: [\"movedLeft\", \"movedRight\"] }, { kind: \"pipe\", type: TranslationPipe, name: \"guiTranslate\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureColumnConfigComponent, decorators: [{\n type: Component,\n args: [{ selector: 'div[gui-column-config]', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, providers: [\n GuiState\n ], template: \"\\n\\n\\t
\\n\\n\\t\\t\\n\\n\\t\\t\\t\\n\\n\\t\\t\\t\\t\\n\\n\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t
\\n\\n\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t
\\n\\n\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t{{'headerMenuMainTabHighlightColumn' | guiTranslate}}\\n\\t\\t\\t\\t\\t
\\n\\n\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t
\\n\\n\\t\\t\\t\\t
\\n\\n\\t\\t\\t
\\n\\n\\t\\t\\t\\n\\n\\t\\t\\t\\t\\n\\n\\t\\t\\t\\t\\t\\n\\n\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t
\\n\\n\\t\\t\\t\\t
\\n\\n\\t\\t\\t
\\n\\n\\t\\t\\t\\n\\n\\t\\t\\t\\t\\n\\n\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t
\\n\\n\\t\\t\\t\\t
\\n\\n\\t\\t\\t
\\n\\n\\t\\t
\\n\\t
\\n\\n
\\n\" }]\n }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: TranslationFacade }, { type: StructureColumnMenuConfigArchive }, { type: CompositionId }, { type: CompositionPublisher }, { type: i0.Injector }, { type: CellTemplateWithContext, decorators: [{\n type: Inject,\n args: ['column']\n }] }], propDecorators: { headerSortMenu: [{\n type: ViewChild,\n args: ['headerSortMenu', { read: ElementRef, static: false }]\n }] } });\n\nclass StructureColumnConfigService extends Reactive {\n injector;\n schemaReadModelRootId;\n schemaWarehouse;\n structureThemeConverter;\n inlineDialogService;\n constructor(injector, schemaReadModelRootId, schemaWarehouse, structureThemeConverter, inlineDialogService) {\n super();\n this.injector = injector;\n this.schemaReadModelRootId = schemaReadModelRootId;\n this.schemaWarehouse = schemaWarehouse;\n this.structureThemeConverter = structureThemeConverter;\n this.inlineDialogService = inlineDialogService;\n }\n open(elementRef, column) {\n this.close();\n const injector = Injector.create({\n providers: [{\n provide: 'column',\n useValue: column\n }],\n parent: this.injector\n });\n this.schemaWarehouse\n .onceTheme(this.schemaReadModelRootId)\n .pipe(this.hermesTakeUntil())\n .subscribe((theme) => {\n this.inlineDialogService.open(elementRef, StructureColumnConfigComponent, {\n injector: injector,\n placement: FabricPlacement.BOTTOM,\n offset: -34,\n theme: this.structureThemeConverter.convertTheme(theme),\n customClass: 'gui-inline-dialog-header-menu'\n });\n });\n }\n close() {\n this.inlineDialogService.close();\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureColumnConfigService, deps: [{ token: i0.Injector }, { token: SchemaReadModelRootId }, { token: SchemaWarehouse }, { token: StructureThemeConverter }, { token: i1$1.FabricInlineDialogService }], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureColumnConfigService });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureColumnConfigService, decorators: [{\n type: Injectable\n }], ctorParameters: () => [{ type: i0.Injector }, { type: SchemaReadModelRootId }, { type: SchemaWarehouse }, { type: StructureThemeConverter }, { type: i1$1.FabricInlineDialogService }] });\n\nclass SelectCustomModalComponent extends DynamicallyCreatedComponent {\n formationPublisher;\n structureId = inject(StructureId);\n formationWarehouse = inject(FormationWarehouse);\n selection$ = this.formationWarehouse.onCustomSelections(this.structureId);\n constructor(elRef, formationPublisher) {\n super(elRef);\n this.formationPublisher = formationPublisher;\n }\n selectCustom(id) {\n this.formationPublisher.selectCustom(id, this.structureId);\n }\n getSelectorName() {\n return 'gui-select-custom-modal';\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: SelectCustomModalComponent, deps: [{ token: i0.ElementRef }, { token: FormationPublisher }], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"17.0.2\", type: SelectCustomModalComponent, selector: \"div[gui-select-custom-modal]\", usesInheritance: true, ngImport: i0, template: \"
    \\n\\t
  • \\n\\t\\t{{sel.text}}\\n\\t
  • \\n
\\n\", styles: [\".gui-select-custom-modal{background:#fff;border:1px solid #d6d6d6;border-radius:0 0 4px 4px}.gui-select-custom-modal ul{list-style:none;margin:0;padding:0}.gui-select-custom-modal ul li{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background:#fff;border-color:#d6d6d6;box-sizing:border-box;color:#333;cursor:pointer;display:block;font:14px Arial;padding:8px 12px}\\n\"], dependencies: [{ kind: \"directive\", type: i4.NgForOf, selector: \"[ngFor][ngForOf]\", inputs: [\"ngForOf\", \"ngForTrackBy\", \"ngForTemplate\"] }, { kind: \"directive\", type: GuiLetDirective, selector: \"[guiLet]\", inputs: [\"guiLet\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: SelectCustomModalComponent, decorators: [{\n type: Component,\n args: [{ selector: 'div[gui-select-custom-modal]', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: \"
    \\n\\t
  • \\n\\t\\t{{sel.text}}\\n\\t
  • \\n
\\n\", styles: [\".gui-select-custom-modal{background:#fff;border:1px solid #d6d6d6;border-radius:0 0 4px 4px}.gui-select-custom-modal ul{list-style:none;margin:0;padding:0}.gui-select-custom-modal ul li{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background:#fff;border-color:#d6d6d6;box-sizing:border-box;color:#333;cursor:pointer;display:block;font:14px Arial;padding:8px 12px}\\n\"] }]\n }], ctorParameters: () => [{ type: i0.ElementRef }, { type: FormationPublisher }] });\n\nclass StructureSelectCustomService extends Reactive {\n injector;\n schemaReadModelRootId;\n schemaWarehouse;\n structureThemeConverter;\n inlineDialogService;\n constructor(injector, schemaReadModelRootId, schemaWarehouse, structureThemeConverter, inlineDialogService) {\n super();\n this.injector = injector;\n this.schemaReadModelRootId = schemaReadModelRootId;\n this.schemaWarehouse = schemaWarehouse;\n this.structureThemeConverter = structureThemeConverter;\n this.inlineDialogService = inlineDialogService;\n }\n open(elementRef) {\n this.close();\n this.schemaWarehouse\n .findTheme(this.schemaReadModelRootId)\n .ifPresent((theme) => {\n this.inlineDialogService.open(elementRef, SelectCustomModalComponent, {\n injector: this.injector,\n placement: FabricPlacement.BOTTOM,\n offset: 0,\n theme: this.structureThemeConverter.convertTheme(theme),\n customClass: 'gui-inline-dialog-header-menu'\n });\n });\n }\n close() {\n this.inlineDialogService.close();\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureSelectCustomService, deps: [{ token: i0.Injector }, { token: SchemaReadModelRootId }, { token: SchemaWarehouse }, { token: StructureThemeConverter }, { token: i1$1.FabricInlineDialogService }], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureSelectCustomService });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureSelectCustomService, decorators: [{\n type: Injectable\n }], ctorParameters: () => [{ type: i0.Injector }, { type: SchemaReadModelRootId }, { type: SchemaWarehouse }, { type: StructureThemeConverter }, { type: i1$1.FabricInlineDialogService }] });\n\nclass SelectAllComponent extends GuiComponent {\n structureId;\n formationCommandDispatcher;\n formationWarehouse;\n state = inject((GuiState));\n state$ = this.state.select();\n constructor(elementRef, structureId, formationCommandDispatcher, formationWarehouse) {\n super(elementRef);\n this.structureId = structureId;\n this.formationCommandDispatcher = formationCommandDispatcher;\n this.formationWarehouse = formationWarehouse;\n this.state.setValue({\n modeMulti: false\n });\n this.state.connect('modeMulti', this.selectModeMulti());\n this.state.connect('isAllChecked', this.selectAllChecked());\n this.state.connect('isAllIndeterminate', this.selectAllIndeterminate());\n }\n toggleSelectAll(isAllIndeterminate, isAllChecked) {\n if (isAllIndeterminate) {\n this.formationCommandDispatcher.unselectAll(this.structureId);\n }\n else {\n if (isAllChecked) {\n this.formationCommandDispatcher.unselectAll(this.structureId);\n }\n else {\n this.formationCommandDispatcher.selectAll(this.structureId);\n }\n }\n }\n getSelectorName() {\n return 'gui-select-all';\n }\n selectModeMulti() {\n return this.formationWarehouse\n .onMode(this.structureId)\n .pipe(hermesMap((mode) => {\n return mode === RowSelectionMode.MULTIPLE;\n }));\n }\n selectAllChecked() {\n return this.formationWarehouse\n .onRowSelectedReadModel(this.structureId)\n .pipe(hermesMap((rowSelectedReadModel) => {\n return rowSelectedReadModel.isAllSelected();\n }));\n }\n selectAllIndeterminate() {\n return this.formationWarehouse\n .onRowSelectedReadModel(this.structureId)\n .pipe(hermesMap((rowSelectedReadModel) => {\n return rowSelectedReadModel.isIndeterminate();\n }));\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: SelectAllComponent, deps: [{ token: i0.ElementRef }, { token: StructureId }, { token: FormationPublisher }, { token: FormationWarehouse }], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"17.0.2\", type: SelectAllComponent, selector: \"div[gui-select-all]\", providers: [\n GuiState\n ], usesInheritance: true, ngImport: i0, template: \"\\n\\t\\n\\t\\n\\n\", dependencies: [{ kind: \"directive\", type: i4.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { kind: \"directive\", type: GuiLetDirective, selector: \"[guiLet]\", inputs: [\"guiLet\"] }, { kind: \"component\", type: i1$1.FabricCheckboxComponent, selector: \"gui-checkbox\", inputs: [\"name\", \"checked\", \"disabled\", \"readonly\", \"indeterminate\"], outputs: [\"changed\"] }, { kind: \"directive\", type: i1$1.FabricTooltipDirective, selector: \"[gui-tooltip]\", inputs: [\"gui-tooltip\"], exportAs: [\"guiTooltip\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: SelectAllComponent, decorators: [{\n type: Component,\n args: [{ selector: 'div[gui-select-all]', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, providers: [\n GuiState\n ], template: \"\\n\\t\\n\\t\\n\\n\" }]\n }], ctorParameters: () => [{ type: i0.ElementRef }, { type: StructureId }, { type: FormationPublisher }, { type: FormationWarehouse }] });\n\nclass StructureColumnMenuIconComponent extends IconComponent {\n constructor(elementRef, changeDetectorRef) {\n super(elementRef, changeDetectorRef);\n }\n getSelectorName() {\n return 'gui-structure-column-menu-icon';\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureColumnMenuIconComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"17.0.2\", type: StructureColumnMenuIconComponent, selector: \"div[gui-structure-menu-icon]\", usesInheritance: true, ngImport: i0, template: `\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureColumnMenuIconComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'div[gui-structure-menu-icon]',\n template: `\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n }]\n }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }] });\n\nclass StructureColumnConfigTriggerComponent extends SmartComponent {\n structureColumnConfigService;\n headerDialogContainer;\n column;\n structureColumnMenuConfigArchive = inject(StructureColumnMenuConfigArchive);\n isEnabled$ = this.selectIsEnabled();\n constructor(elementRef, changeDetectorRef, structureColumnConfigService) {\n super(changeDetectorRef, elementRef);\n this.structureColumnConfigService = structureColumnConfigService;\n }\n openConfigDialog() {\n this.structureColumnConfigService.open(this.headerDialogContainer, this.column);\n }\n getSelectorName() {\n return 'gui-structure-column-config-trigger';\n }\n selectIsEnabled() {\n return this.structureColumnMenuConfigArchive\n .on()\n .pipe(hermesMap((config) => {\n return config.isEnabled();\n }));\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureColumnConfigTriggerComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: StructureColumnConfigService }], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"17.0.2\", type: StructureColumnConfigTriggerComponent, selector: \"div[gui-structure-column-config-trigger]\", inputs: { column: \"column\" }, viewQueries: [{ propertyName: \"headerDialogContainer\", first: true, predicate: [\"headerDialogContainer\"], descendants: true, read: ElementRef }], usesInheritance: true, ngImport: i0, template: \"
\\n\\n\\t
\\n\\n
\\n\", dependencies: [{ kind: \"directive\", type: i4.NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }, { kind: \"directive\", type: GuiIfDirective, selector: \"[guiIf]\", inputs: [\"guiIf\"] }, { kind: \"component\", type: StructureColumnMenuIconComponent, selector: \"div[gui-structure-menu-icon]\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureColumnConfigTriggerComponent, decorators: [{\n type: Component,\n args: [{ selector: 'div[gui-structure-column-config-trigger]', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: \"
\\n\\n\\t
\\n\\n
\\n\" }]\n }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: StructureColumnConfigService }], propDecorators: { headerDialogContainer: [{\n type: ViewChild,\n args: ['headerDialogContainer', { read: ElementRef, static: false }]\n }], column: [{\n type: Input\n }] } });\n\nclass StructureHeaderColumnsComponent extends SmartComponent {\n elementRef;\n injector;\n changeDetectorRef;\n compositionId;\n structureId;\n structureSelectCustomService;\n formationCommandDispatcher;\n sortingCommandDispatcher;\n selectCustomContainer;\n columns;\n showSelection = false;\n showCustom = true;\n constructor(elementRef, injector, changeDetectorRef, compositionId, structureId, structureSelectCustomService, formationCommandDispatcher, sortingCommandDispatcher) {\n super(changeDetectorRef, elementRef);\n this.elementRef = elementRef;\n this.injector = injector;\n this.changeDetectorRef = changeDetectorRef;\n this.compositionId = compositionId;\n this.structureId = structureId;\n this.structureSelectCustomService = structureSelectCustomService;\n this.formationCommandDispatcher = formationCommandDispatcher;\n this.sortingCommandDispatcher = sortingCommandDispatcher;\n }\n toggleSort(column) {\n if (column.isSortEnabled()) {\n this.sortingCommandDispatcher.toggleSort(column.getFieldId(), this.compositionId, this.structureId);\n }\n }\n openConfigDialog() {\n this.structureSelectCustomService.open(this.selectCustomContainer);\n }\n getSelectorName() {\n return 'gui-structure-header-columns';\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureHeaderColumnsComponent, deps: [{ token: i0.ElementRef }, { token: i0.Injector }, { token: i0.ChangeDetectorRef }, { token: CompositionId }, { token: StructureId }, { token: StructureSelectCustomService }, { token: FormationPublisher }, { token: SortingPublisher }], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"17.0.2\", type: StructureHeaderColumnsComponent, selector: \"div[gui-structure-header-columns][columns]\", inputs: { columns: \"columns\", showSelection: \"showSelection\" }, providers: [\n StructureColumnConfigService,\n StructureSelectCustomService\n ], viewQueries: [{ propertyName: \"selectCustomContainer\", first: true, predicate: [\"selectCustomContainer\"], descendants: true, read: ElementRef }], usesInheritance: true, ngImport: i0, template: \"
\\n\\t
\\n
\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n
\\n\\n\\t
\\n\\t\\t\\n\\t\\t\\n\\n\\t\\t
\\n\\t\\t
\\n\\n\\t
\\n\\n\\t
\\n\\t\\t
\\n\\t\\t
\\n\\t
\\n
\\n\", dependencies: [{ kind: \"directive\", type: i4.NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }, { kind: \"directive\", type: i4.NgForOf, selector: \"[ngFor][ngForOf]\", inputs: [\"ngForOf\", \"ngForTrackBy\", \"ngForTemplate\"] }, { kind: \"directive\", type: i4.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { kind: \"directive\", type: i4.NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }, { kind: \"component\", type: SelectAllComponent, selector: \"div[gui-select-all]\" }, { kind: \"component\", type: StructureColumnConfigTriggerComponent, selector: \"div[gui-structure-column-config-trigger]\", inputs: [\"column\"] }, { kind: \"component\", type: StructureArrowIconComponent, selector: \"div[gui-structure-arrow-icon]\", inputs: [\"position\", \"sort\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureHeaderColumnsComponent, decorators: [{\n type: Component,\n args: [{ selector: 'div[gui-structure-header-columns][columns]', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, providers: [\n StructureColumnConfigService,\n StructureSelectCustomService\n ], template: \"
\\n\\t
\\n
\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n
\\n\\n\\t
\\n\\t\\t\\n\\t\\t\\n\\n\\t\\t
\\n\\t\\t
\\n\\n\\t
\\n\\n\\t
\\n\\t\\t
\\n\\t\\t
\\n\\t
\\n
\\n\" }]\n }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Injector }, { type: i0.ChangeDetectorRef }, { type: CompositionId }, { type: StructureId }, { type: StructureSelectCustomService }, { type: FormationPublisher }, { type: SortingPublisher }], propDecorators: { selectCustomContainer: [{\n type: ViewChild,\n args: ['selectCustomContainer', { read: ElementRef, static: false }]\n }], columns: [{\n type: Input\n }], showSelection: [{\n type: Input\n }] } });\n\nclass StructureHeaderGroupsComponent extends PureComponent {\n elementRef;\n injector;\n changeDetectorRef;\n compositionId;\n structureId;\n formationCommandDispatcher;\n sortingCommandDispatcher;\n groups;\n showGroups;\n checkboxSelection = false;\n globalSearching = false;\n constructor(elementRef, injector, changeDetectorRef, compositionId, structureId, formationCommandDispatcher, sortingCommandDispatcher) {\n super(elementRef);\n this.elementRef = elementRef;\n this.injector = injector;\n this.changeDetectorRef = changeDetectorRef;\n this.compositionId = compositionId;\n this.structureId = structureId;\n this.formationCommandDispatcher = formationCommandDispatcher;\n this.sortingCommandDispatcher = sortingCommandDispatcher;\n }\n toggleSort(column) {\n if (column.isSortEnabled()) {\n this.sortingCommandDispatcher.toggleSort(column.getFieldId(), this.compositionId, this.structureId);\n }\n }\n isSortAsc(column) {\n return column.getSortStatus() === SortOrder.ASC;\n }\n isSortDesc(column) {\n return column.getSortStatus() === SortOrder.DESC;\n }\n isGlobalSortEnabled() {\n return this.globalSearching;\n }\n getSelectorName() {\n return 'gui-structure-header-groups';\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureHeaderGroupsComponent, deps: [{ token: i0.ElementRef }, { token: i0.Injector }, { token: i0.ChangeDetectorRef }, { token: CompositionId }, { token: StructureId }, { token: FormationPublisher }, { token: SortingPublisher }], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"17.0.2\", type: StructureHeaderGroupsComponent, selector: \"div[gui-structure-header-groups][groups][checkboxSelection]\", inputs: { groups: \"groups\", showGroups: \"showGroups\", checkboxSelection: \"checkboxSelection\" }, providers: [\n StructureColumnConfigService\n ], usesInheritance: true, ngImport: i0, template: \"
\\n\\t
\\n
\\n\\n
\\n\\n\\t
\\n\\t\\t{{group.header}}\\n\\t
\\n
\\n\", dependencies: [{ kind: \"directive\", type: i4.NgForOf, selector: \"[ngFor][ngForOf]\", inputs: [\"ngForOf\", \"ngForTrackBy\", \"ngForTemplate\"] }, { kind: \"directive\", type: i4.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { kind: \"component\", type: SelectAllComponent, selector: \"div[gui-select-all]\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureHeaderGroupsComponent, decorators: [{\n type: Component,\n args: [{ selector: 'div[gui-structure-header-groups][groups][checkboxSelection]', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, providers: [\n StructureColumnConfigService\n ], template: \"
\\n\\t
\\n
\\n\\n
\\n\\n\\t
\\n\\t\\t{{group.header}}\\n\\t
\\n
\\n\" }]\n }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Injector }, { type: i0.ChangeDetectorRef }, { type: CompositionId }, { type: StructureId }, { type: FormationPublisher }, { type: SortingPublisher }], propDecorators: { groups: [{\n type: Input\n }], showGroups: [{\n type: Input\n }], checkboxSelection: [{\n type: Input\n }] } });\n\nclass StructureHeaderFiltersComponent extends PureComponent {\n structureFilterCommandService;\n formBuilder;\n cd;\n effects;\n structureId;\n columns;\n closed = new EventEmitter();\n filterFieldName = 'phrase';\n filterForm;\n filterMode = false;\n constructor(structureFilterCommandService, formBuilder, cd, effects, elementRef, structureId) {\n super(elementRef);\n this.structureFilterCommandService = structureFilterCommandService;\n this.formBuilder = formBuilder;\n this.cd = cd;\n this.effects = effects;\n this.structureId = structureId;\n this.filterForm = this.formBuilder.group({\n [this.filterFieldName]: ['']\n });\n }\n ngOnInit() {\n this.effects\n .register(this.selectFilterFormChanges(), (f) => {\n this.filter(f[this.filterFieldName]);\n });\n }\n filter(phrase) {\n if (phrase === undefined || phrase === null) {\n phrase = '';\n }\n // this.structureFilterCommandService.addFilter(this.columns[0].getFieldId(), '1', phrase, this.structureId);\n }\n clearFilters() {\n this.filterForm.reset();\n }\n turnOnFilterMode() {\n this.filterMode = true;\n this.cd.detectChanges();\n }\n turnOffFilterMode() {\n this.filterMode = false;\n this.cd.detectChanges();\n }\n getSelectorName() {\n return '';\n }\n selectFilterFormChanges() {\n return fromRxJsObservable(this.filterForm.valueChanges);\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureHeaderFiltersComponent, deps: [{ token: FilterPublisher }, { token: i1$2.FormBuilder }, { token: i0.ChangeDetectorRef }, { token: GuiEffects }, { token: i0.ElementRef }, { token: StructureId }], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"17.0.2\", type: StructureHeaderFiltersComponent, selector: \"div[gui-structure-header-filters][columns]\", inputs: { columns: \"columns\" }, outputs: { closed: \"closed\" }, providers: [\n GuiEffects\n ], usesInheritance: true, ngImport: i0, template: \"\\n\\n\\t
\\n\\n\\t\\t\\n\\t\\t\\n\\n\\t\\t\\n\\n\\t
\\n\\n
\\n\\n\\n\\n\\t\\n\\n\\t\\n\\n\\t
\\n\\t\\t\\n\\t
\\n\\n\\t\\n\\t\\n\\n
\\n\\n\", dependencies: [{ kind: \"directive\", type: i4.NgForOf, selector: \"[ngFor][ngForOf]\", inputs: [\"ngForOf\", \"ngForTrackBy\", \"ngForTemplate\"] }, { kind: \"directive\", type: i4.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { kind: \"directive\", type: i1$2.ɵNgNoValidate, selector: \"form:not([ngNoForm]):not([ngNativeValidate])\" }, { kind: \"directive\", type: i1$2.DefaultValueAccessor, selector: \"input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]\" }, { kind: \"directive\", type: i1$2.NgControlStatus, selector: \"[formControlName],[ngModel],[formControl]\" }, { kind: \"directive\", type: i1$2.NgControlStatusGroup, selector: \"[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]\" }, { kind: \"directive\", type: i1$2.FormGroupDirective, selector: \"[formGroup]\", inputs: [\"formGroup\"], outputs: [\"ngSubmit\"], exportAs: [\"ngForm\"] }, { kind: \"directive\", type: i1$2.FormControlName, selector: \"[formControlName]\", inputs: [\"formControlName\", \"disabled\", \"ngModel\"], outputs: [\"ngModelChange\"] }, { kind: \"component\", type: i1$1.FabricButtonComponent, selector: \"button[gui-button], a[gui-button]\", inputs: [\"link\", \"text\"] }, { kind: \"component\", type: i1$1.FabricSelectComponent, selector: \"gui-select\", inputs: [\"options\", \"placeholder\", \"selected\", \"width\", \"disabled\"], outputs: [\"optionChanged\"] }, { kind: \"component\", type: i1$1.FabricInputComponent, selector: \"input[gui-input]\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureHeaderFiltersComponent, decorators: [{\n type: Component,\n args: [{ selector: 'div[gui-structure-header-filters][columns]', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, providers: [\n GuiEffects\n ], template: \"\\n\\n\\t
\\n\\n\\t\\t\\n\\t\\t\\n\\n\\t\\t\\n\\n\\t
\\n\\n
\\n\\n\\n\\n\\t\\n\\n\\t\\n\\n\\t
\\n\\t\\t\\n\\t
\\n\\n\\t\\n\\t\\n\\n
\\n\\n\" }]\n }], ctorParameters: () => [{ type: FilterPublisher }, { type: i1$2.FormBuilder }, { type: i0.ChangeDetectorRef }, { type: GuiEffects }, { type: i0.ElementRef }, { type: StructureId }], propDecorators: { columns: [{\n type: Input\n }], closed: [{\n type: Output\n }] } });\n\nclass StructureHeaderComponent extends GuiComponent {\n filterWarehouse;\n formationWarehouse;\n compositionTemplateWarehouse;\n state = inject((GuiState));\n compositionWarehouse = inject(CompositionWarehouse);\n structureId = inject(StructureId);\n compositionId = inject(CompositionId);\n verticalFormationWarehouse = inject(VerticalFormationWarehouse);\n state$ = this.state.select();\n width$ = this.compositionWarehouse.onContainerWidth(this.compositionId)\n .pipe(hermesMap(width => {\n return {\n width\n };\n }));\n filterHeaderHeight$ = this.verticalFormationWarehouse.onRowHeight(this.structureId)\n .pipe(hermesMap((rowHeight) => {\n const headerHeight = +(rowHeight) + 2;\n return {\n height: headerHeight\n };\n }));\n constructor(elementRef, filterWarehouse, formationWarehouse, compositionTemplateWarehouse) {\n super(elementRef);\n this.filterWarehouse = filterWarehouse;\n this.formationWarehouse = formationWarehouse;\n this.compositionTemplateWarehouse = compositionTemplateWarehouse;\n this.state.setValue({\n headerColumns: [],\n filterRowEnabled: false,\n showGroups: false\n });\n this.state.connect('showSelection', this.selectShowSelection());\n this.state.connect('headerColumns', this.compositionTemplateWarehouse.onHeaderCols(this.compositionId));\n this.state.connect('filterRowEnabled', this.filterWarehouse.onFilteringEnabled(this.structureId));\n this.state.connect('showGroups', this.selectShowGroups());\n this.state.connect('groups', this.selectGroups());\n }\n getSelectorName() {\n return 'gui-structure-header';\n }\n selectGroups() {\n return this.compositionWarehouse\n .onGroups(this.compositionId)\n .pipe(hermesMap((collection) => collection.getGroups()));\n }\n selectShowGroups() {\n return this.compositionWarehouse\n .onGroups(this.compositionId)\n .pipe(hermesMap((collection) => collection.isVisible()));\n }\n selectShowSelection() {\n return this.formationWarehouse\n .onType(this.structureId)\n .pipe(hermesMap((type) => {\n return type === RowSelectionType.CHECKBOX || type === RowSelectionType.RADIO;\n }));\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureHeaderComponent, deps: [{ token: i0.ElementRef }, { token: FilterWarehouse }, { token: FormationWarehouse }, { token: CompositionTemplateWarehouse }], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"17.0.2\", type: StructureHeaderComponent, selector: \"div[gui-structure-header]\", providers: [\n GuiState\n ], usesInheritance: true, ngImport: i0, template: \"\\n\\t
\\n\\t
\\n
\\n\\n
\\n
\\n\\n\\n\\t
\\n\\t
\\n
\\n\", dependencies: [{ kind: \"directive\", type: i4.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { kind: \"directive\", type: GuiLetDirective, selector: \"[guiLet]\", inputs: [\"guiLet\"] }, { kind: \"directive\", type: GuiStyleDirective, selector: \"[guiStyle]\", inputs: [\"guiStyle\"] }, { kind: \"component\", type: StructureHeaderColumnsComponent, selector: \"div[gui-structure-header-columns][columns]\", inputs: [\"columns\", \"showSelection\"] }, { kind: \"component\", type: StructureHeaderGroupsComponent, selector: \"div[gui-structure-header-groups][groups][checkboxSelection]\", inputs: [\"groups\", \"showGroups\", \"checkboxSelection\"] }, { kind: \"component\", type: StructureHeaderFiltersComponent, selector: \"div[gui-structure-header-filters][columns]\", inputs: [\"columns\"], outputs: [\"closed\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureHeaderComponent, decorators: [{\n type: Component,\n args: [{ selector: 'div[gui-structure-header]', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, providers: [\n GuiState\n ], template: \"\\n\\t
\\n\\t
\\n
\\n\\n
\\n
\\n\\n\\n\\t
\\n\\t
\\n
\\n\" }]\n }], ctorParameters: () => [{ type: i0.ElementRef }, { type: FilterWarehouse }, { type: FormationWarehouse }, { type: CompositionTemplateWarehouse }] });\n\nclass ResizeDetector {\n platformId;\n constructor(platformId) {\n this.platformId = platformId;\n }\n on(element) {\n if (isPlatformBrowser(this.platformId)) {\n return fromRxJsObservable((new Observable((observer) => {\n const resizeObserver = new ResizeObserver((entries) => {\n if (entries && entries.length > 0) {\n observer.next(entries[0].contentRect);\n }\n });\n resizeObserver.observe(element);\n return () => resizeObserver.disconnect();\n }))\n .pipe(throttleTime(25)));\n }\n return hermesEmpty();\n }\n destroy(element) {\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: ResizeDetector, deps: [{ token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: ResizeDetector });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: ResizeDetector, decorators: [{\n type: Injectable\n }], ctorParameters: () => [{ type: undefined, decorators: [{\n type: Inject,\n args: [PLATFORM_ID]\n }] }] });\n\nvar RowSelectToggleType;\n(function (RowSelectToggleType) {\n RowSelectToggleType[RowSelectToggleType[\"NONE\"] = 0] = \"NONE\";\n RowSelectToggleType[RowSelectToggleType[\"ADD\"] = 1] = \"ADD\";\n RowSelectToggleType[RowSelectToggleType[\"RANGE\"] = 2] = \"RANGE\";\n})(RowSelectToggleType || (RowSelectToggleType = {}));\n\nclass ChangedValueEmitter {\n subject$ = new HermesReplaySubject(1);\n constructor() {\n }\n emit(value) {\n this.subject$.next(value);\n }\n on() {\n return this.subject$.toObservable();\n }\n}\n\nclass StructureEditSourceItemParams {\n itemId;\n columnFieldId;\n value;\n constructor(itemId, columnFieldId, // TODO Rethink\n value) {\n this.itemId = itemId;\n this.columnFieldId = columnFieldId;\n this.value = value;\n }\n getItemId() {\n return this.itemId;\n }\n getColumnFieldId() {\n return this.columnFieldId;\n }\n getValue() {\n return this.value;\n }\n}\n\nclass StructureCellEditBooleanComponent extends SmartComponent {\n changeDetectorRef;\n structureId;\n sourceCommandService;\n cellContainerRef;\n entity;\n cell;\n editContext;\n valueChanges$;\n status$;\n actualValue;\n constructor(changeDetectorRef, elementRef, structureId, sourceCommandService) {\n super(changeDetectorRef, elementRef);\n this.changeDetectorRef = changeDetectorRef;\n this.structureId = structureId;\n this.sourceCommandService = sourceCommandService;\n }\n ngOnChanges(changes) {\n ifChanged(changes.entity, () => {\n this.initEditContext();\n });\n ifChanged(changes.cell, () => {\n this.initEditContext();\n });\n }\n ngOnInit() {\n this.initEditContext();\n }\n getSelectorName() {\n return 'gui-structure-cell-edit-boolean';\n }\n submitChanges() {\n const itemId = this.entity.getId(), updatedValue = this.actualValue, fieldId = this.cell.columnFieldId;\n this.sourceCommandService.editItem(new StructureEditSourceItemParams(itemId, fieldId, updatedValue), this.structureId);\n }\n initEditContext() {\n this.valueChanges$ = new ChangedValueEmitter();\n this.status$ = new ChangedValueEmitter();\n this.editContext = {\n status: this.status$,\n valueChanges: this.valueChanges$,\n value: this.cell.getValue(this.entity).value,\n focus: false,\n parent: this.cellContainerRef\n };\n this.observeValueChanges();\n this.status$\n .on()\n .pipe(this.takeUntil())\n .subscribe((status) => {\n switch (status) {\n case EditEventType.SUBMIT:\n this.submitChanges();\n break;\n default:\n break;\n }\n });\n }\n observeValueChanges() {\n this.valueChanges$\n .on()\n .pipe(this.takeUntil())\n .subscribe((value) => {\n this.actualValue = value;\n });\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureCellEditBooleanComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: StructureId }, { token: SourcePublisher }], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"17.0.2\", type: StructureCellEditBooleanComponent, selector: \"div[gui-structure-cell-edit-boolean][entity][cell]\", inputs: { entity: \"entity\", cell: \"cell\" }, viewQueries: [{ propertyName: \"cellContainerRef\", first: true, predicate: [\"cellContainer\"], descendants: true, static: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: \"\\n\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t\\n\", dependencies: [{ kind: \"directive\", type: i4.NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureCellEditBooleanComponent, decorators: [{\n type: Component,\n args: [{ selector: 'div[gui-structure-cell-edit-boolean][entity][cell]', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: \"\\n\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t\\n\" }]\n }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: StructureId }, { type: SourcePublisher }], propDecorators: { cellContainerRef: [{\n type: ViewChild,\n args: ['cellContainer', { static: true }]\n }], entity: [{\n type: Input\n }], cell: [{\n type: Input\n }] } });\n\nclass StructureCellComponent extends SmartComponent {\n changeDetectorRef;\n elementRef;\n structureId;\n compositionId;\n structureCellEditStore;\n cellEditCloseAllService;\n sourceCommandService;\n compositionWarehouse;\n entity;\n cell;\n editMode;\n cellEditorManager;\n searchPhrase;\n rowIndex;\n columnIndex;\n inEditMode = false;\n editContext;\n valueChanges$;\n status$;\n actualValue;\n isHighlighted;\n constructor(changeDetectorRef, elementRef, structureId, compositionId, structureCellEditStore, cellEditCloseAllService, sourceCommandService, compositionWarehouse) {\n super(changeDetectorRef, elementRef);\n this.changeDetectorRef = changeDetectorRef;\n this.elementRef = elementRef;\n this.structureId = structureId;\n this.compositionId = compositionId;\n this.structureCellEditStore = structureCellEditStore;\n this.cellEditCloseAllService = cellEditCloseAllService;\n this.sourceCommandService = sourceCommandService;\n this.compositionWarehouse = compositionWarehouse;\n }\n ngOnInit() {\n this.subscribe(this.compositionWarehouse.onHighlightedColumn(new ColumnId(this.cell.columnDefinitionId.toString()), this.compositionId), (value) => {\n this.isHighlighted = value;\n });\n }\n ngAfterViewInit() {\n super.ngAfterViewInit();\n this.subscribeWithoutRender(this.cellEditCloseAllService.onCloseAll(), () => {\n this.exitEditMode();\n });\n }\n isCellEditingEnabled() {\n return this.cellEditorManager.isEnabled(this.cell.getValue(this.entity), this.entity.getSourceItem(), this.rowIndex) &&\n this.cell.isCellEditingEnabled();\n }\n enterEditMode(forceCheck = true) {\n if (!this.isCellEditingEnabled()) {\n return;\n }\n this.cellEditCloseAllService.closeAll();\n hermesTimer(0)\n .pipe(this.takeUntil())\n .subscribe(() => {\n this.inEditMode = true;\n this.valueChanges$ = new ChangedValueEmitter();\n this.status$ = new ChangedValueEmitter();\n this.editContext = {\n status: this.status$,\n valueChanges: this.valueChanges$,\n value: this.cell.getValue(this.entity).value,\n focus: forceCheck,\n parent: this.elementRef\n };\n this.observeFieldStatus();\n this.observeValueChanges();\n this.publishEditEnter();\n if (!forceCheck) {\n this.changeDetectorRef.markForCheck();\n }\n else {\n this.changeDetectorRef.detectChanges();\n }\n });\n }\n exitEditMode() {\n this.inEditMode = false;\n this.changeDetectorRef.detectChanges();\n }\n submitChangesAndExit() {\n const itemId = this.entity.getId(), updatedValue = this.actualValue, fieldId = this.cell.columnFieldId;\n this.sourceCommandService.editItem(new StructureEditSourceItemParams(itemId, fieldId, updatedValue), this.structureId);\n this.exitEditMode();\n }\n getSelectorName() {\n return 'gui-structure-cell';\n }\n observeFieldStatus() {\n this.status$\n .on()\n .pipe(this.takeUntil())\n .subscribe((status) => {\n switch (status) {\n case EditEventType.SUBMIT:\n this.submitChangesAndExit();\n this.publishEditSubmit();\n break;\n case EditEventType.CANCEL:\n this.exitEditMode();\n this.publishEditCancel();\n break;\n default:\n break;\n }\n });\n }\n observeValueChanges() {\n this.valueChanges$\n .on()\n .pipe(this.takeUntil())\n .subscribe((value) => {\n this.actualValue = value;\n });\n }\n publishEditState(state) {\n this.structureCellEditStore.next(state);\n }\n publishEditEnter() {\n this.publishEditState(StructureCellEditState.ENTER);\n }\n publishEditCancel() {\n this.publishEditState(StructureCellEditState.CANCEL);\n }\n publishEditSubmit() {\n this.publishEditState(StructureCellEditState.SUBMIT);\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureCellComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: StructureId }, { token: CompositionId }, { token: StructureCellEditStore }, { token: StructureCellEditCloseAllService }, { token: SourcePublisher }, { token: CompositionWarehouse }], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"17.0.2\", type: StructureCellComponent, selector: \"div[gui-structure-cell][entity][cell]\", inputs: { entity: \"entity\", cell: \"cell\", editMode: \"editMode\", cellEditorManager: \"cellEditorManager\", searchPhrase: \"searchPhrase\", rowIndex: \"rowIndex\", columnIndex: \"columnIndex\" }, usesInheritance: true, ngImport: i0, template: \"\\n\\n\\t\\n\\t\\t\\n\\t\\t\\n\\t\\n\\n\\t\\n\\t\\t\\n\\t\\t\\n\\t\\n\\n\\n\\t\\n\\t\\n\\n\\t\\n\\t\\n\\t\\n\\t\\n\\n\\n\\n\\n\\n\\t
\\n\\t
\\n
\\n\", dependencies: [{ kind: \"directive\", type: i4.NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }, { kind: \"directive\", type: i4.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { kind: \"directive\", type: i4.NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }, { kind: \"component\", type: StructureCellEditBooleanComponent, selector: \"div[gui-structure-cell-edit-boolean][entity][cell]\", inputs: [\"entity\", \"cell\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureCellComponent, decorators: [{\n type: Component,\n args: [{ selector: 'div[gui-structure-cell][entity][cell]', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: \"\\n\\n\\t\\n\\t\\t\\n\\t\\t\\n\\t\\n\\n\\t\\n\\t\\t\\n\\t\\t\\n\\t\\n\\n\\n\\t\\n\\t\\n\\n\\t\\n\\t\\n\\t\\n\\t\\n\\n\\n\\n\\n\\n\\t
\\n\\t
\\n
\\n\" }]\n }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: StructureId }, { type: CompositionId }, { type: StructureCellEditStore }, { type: StructureCellEditCloseAllService }, { type: SourcePublisher }, { type: CompositionWarehouse }], propDecorators: { entity: [{\n type: Input\n }], cell: [{\n type: Input\n }], editMode: [{\n type: Input\n }], cellEditorManager: [{\n type: Input\n }], searchPhrase: [{\n type: Input\n }], rowIndex: [{\n type: Input\n }], columnIndex: [{\n type: Input\n }] } });\n\nclass StructureRowComponent extends SmartComponent {\n changeDetectorRef;\n elRef;\n structureId;\n formationWarehouse;\n formationCommandDispatcher;\n cssClassModifier;\n entity;\n columns;\n editMode;\n cellEditing;\n searchPhrase;\n index;\n rowStyle;\n rowClass;\n checkboxSelection = false;\n radioSelection = false;\n selectedItem = false;\n row;\n styleModifier;\n classModifier;\n constructor(changeDetectorRef, elRef, structureId, formationWarehouse, formationCommandDispatcher, cssClassModifier) {\n super(changeDetectorRef, elRef);\n this.changeDetectorRef = changeDetectorRef;\n this.elRef = elRef;\n this.structureId = structureId;\n this.formationWarehouse = formationWarehouse;\n this.formationCommandDispatcher = formationCommandDispatcher;\n this.cssClassModifier = cssClassModifier;\n this.styleModifier = new StyleModifier(this.elRef.nativeElement);\n this.classModifier = new ClassModifier(this.elRef.nativeElement);\n }\n ngOnChanges(changes) {\n ifChanged(changes.entity, () => {\n this.checkSelectedItem();\n this.updateRowClass(changes.entity.previousValue);\n this.updateRowStyle(changes.entity.previousValue);\n });\n ifChanged(changes.rowClass, () => {\n this.updateRowClass();\n });\n ifChanged(changes.rowStyle, () => {\n this.updateRowStyle();\n });\n }\n ngOnInit() {\n this.subscribeWithoutRender(this.formationWarehouse.onRowSelectedReadModel(this.structureId), (row) => {\n this.row = row;\n const prevValue = this.selectedItem;\n this.checkSelectedItem();\n if (prevValue !== this.selectedItem) {\n if (prevValue) {\n this.cssClassModifier.unselect(this.elRef.nativeElement);\n }\n else {\n this.cssClassModifier.select(this.elRef.nativeElement);\n }\n this.changeDetectorRef.detectChanges();\n }\n });\n }\n ngAfterViewInit() {\n super.ngAfterViewInit();\n this.updateRowClass();\n this.updateRowStyle();\n }\n trackByFn() {\n return 0;\n }\n selectCheckbox() {\n event.stopPropagation();\n this.formationCommandDispatcher.toggleSelectedRow(this.entity.getId(), RowSelectToggleType.ADD, this.structureId);\n }\n selectRadio() {\n event.stopPropagation();\n this.formationCommandDispatcher.toggleSelectedRow(this.entity.getId(), RowSelectToggleType.NONE, this.structureId);\n }\n checkSelectedItem() {\n if (this.row) {\n const prevValue = this.selectedItem;\n this.selectedItem = this.row.isSelected(this.entity.getId());\n if (prevValue !== this.selectedItem) {\n if (prevValue) {\n this.cssClassModifier.unselect(this.elRef.nativeElement);\n }\n else {\n this.cssClassModifier.select(this.elRef.nativeElement);\n }\n }\n }\n }\n getSelectorName() {\n return 'gui-structure-row';\n }\n calculateRowStyle(entity) {\n if (!this.rowStyle) {\n return '';\n }\n if (typeof this.rowStyle.style === 'string') {\n return this.rowStyle.style || '';\n }\n if (typeof this.rowStyle.styleFunction === 'function') {\n return this.rowStyle.styleFunction(entity.getSourceItem(), entity.getPosition());\n }\n return '';\n }\n updateRowStyle(prevEntity) {\n if (prevEntity) {\n const rowStylesToRemove = this.calculateRowStyle(prevEntity);\n this.removeRowStyles(rowStylesToRemove);\n }\n const rowStylesToAdd = this.calculateRowStyle(this.entity);\n this.renderRowStyles(rowStylesToAdd);\n }\n removeRowStyles(rowStyle) {\n if (!rowStyle) {\n return;\n }\n const styles = rowStyle.split(';');\n for (let i = 0; i < styles.length; i += 1) {\n const separatedStyles = styles[i].split(':');\n if (separatedStyles[0] && separatedStyles[1]) {\n this.styleModifier.getHost().removeStyleByName(separatedStyles[0].trim());\n }\n }\n }\n renderRowStyles(rowStyle) {\n if (!rowStyle) {\n return;\n }\n const styles = rowStyle.split(';');\n for (let i = 0; i < styles.length; i += 1) {\n const separatedStyles = styles[i].split(':');\n if (separatedStyles[0] && separatedStyles[1]) {\n this.styleModifier.getHost().setStyleByName(separatedStyles[0].trim(), separatedStyles[1].trim());\n }\n }\n }\n updateRowClass(prevEntity) {\n if (prevEntity) {\n const toRemoveClass = this.calculateRowClass(prevEntity);\n if (toRemoveClass) {\n this.classModifier.getHost().remove(toRemoveClass);\n }\n }\n const toAddClass = this.calculateRowClass(this.entity);\n if (toAddClass) {\n this.classModifier.getHost().add(toAddClass);\n }\n }\n calculateRowClass(entity) {\n if (!this.rowClass) {\n return '';\n }\n let clazz;\n if (typeof this.rowClass.class === 'string') {\n clazz = this.rowClass.class || '';\n }\n if (typeof this.rowClass.classFunction === 'function') {\n if (entity) {\n clazz = this.rowClass.classFunction(entity.getSourceItem(), entity.getPosition()) || '';\n }\n }\n return clazz;\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureRowComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: StructureId }, { token: FormationWarehouse }, { token: FormationPublisher }, { token: CssClassModifier }], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"17.0.2\", type: StructureRowComponent, selector: \"div[gui-structure-row]\", inputs: { entity: \"entity\", columns: \"columns\", editMode: \"editMode\", cellEditing: \"cellEditing\", searchPhrase: \"searchPhrase\", index: \"index\", rowStyle: \"rowStyle\", rowClass: \"rowClass\", checkboxSelection: \"checkboxSelection\", radioSelection: \"radioSelection\" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: \"
\\n\\t\\n
\\n\\n
\\n\\t\\n
\\n\\n
\\n
\\n\", dependencies: [{ kind: \"directive\", type: i4.NgForOf, selector: \"[ngFor][ngForOf]\", inputs: [\"ngForOf\", \"ngForTrackBy\", \"ngForTemplate\"] }, { kind: \"directive\", type: i4.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { kind: \"component\", type: i1$1.FabricCheckboxComponent, selector: \"gui-checkbox\", inputs: [\"name\", \"checked\", \"disabled\", \"readonly\", \"indeterminate\"], outputs: [\"changed\"] }, { kind: \"component\", type: i1$1.FabricRadioButtonComponent, selector: \"gui-radio-button\", inputs: [\"name\", \"checked\", \"disabled\"], outputs: [\"changed\"] }, { kind: \"component\", type: StructureCellComponent, selector: \"div[gui-structure-cell][entity][cell]\", inputs: [\"entity\", \"cell\", \"editMode\", \"cellEditorManager\", \"searchPhrase\", \"rowIndex\", \"columnIndex\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureRowComponent, decorators: [{\n type: Component,\n args: [{ selector: 'div[gui-structure-row]', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: \"
\\n\\t\\n
\\n\\n
\\n\\t\\n
\\n\\n
\\n
\\n\" }]\n }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: StructureId }, { type: FormationWarehouse }, { type: FormationPublisher }, { type: CssClassModifier }], propDecorators: { entity: [{\n type: Input\n }], columns: [{\n type: Input\n }], editMode: [{\n type: Input\n }], cellEditing: [{\n type: Input\n }], searchPhrase: [{\n type: Input\n }], index: [{\n type: Input\n }], rowStyle: [{\n type: Input\n }], rowClass: [{\n type: Input\n }], checkboxSelection: [{\n type: Input\n }], radioSelection: [{\n type: Input\n }] } });\n\nclass StructureContentComponent extends SmartComponent {\n formationPublisher;\n structureEditModeArchive;\n formationWarehouse;\n structureWarehouse;\n verticalFormationWarehouse;\n structureId;\n schemaReadModelRootId;\n searchWarehouse;\n schemaWarehouse;\n source;\n columns;\n state = inject((GuiState));\n state$ = this.state.select();\n constructor(elementRef, changeDetectorRef, formationPublisher, structureEditModeArchive, formationWarehouse, structureWarehouse, verticalFormationWarehouse, structureId, schemaReadModelRootId, searchWarehouse, schemaWarehouse) {\n super(changeDetectorRef, elementRef);\n this.formationPublisher = formationPublisher;\n this.structureEditModeArchive = structureEditModeArchive;\n this.formationWarehouse = formationWarehouse;\n this.structureWarehouse = structureWarehouse;\n this.verticalFormationWarehouse = verticalFormationWarehouse;\n this.structureId = structureId;\n this.schemaReadModelRootId = schemaReadModelRootId;\n this.searchWarehouse = searchWarehouse;\n this.schemaWarehouse = schemaWarehouse;\n this.state.setValue({\n checkboxSelection: false,\n radioSelection: false,\n searchPhrase: ''\n });\n this.state.connect('editMode', this.structureEditModeArchive.on());\n this.state.connect('selectionEnabled', this.formationWarehouse.onSelectionEnabled(this.structureId));\n this.state.connect('rowHeight', this.verticalFormationWarehouse.onRowHeight(this.structureId));\n this.state.connect('cellEditing', this.structureWarehouse.onEditManager(this.structureId));\n this.state.connect('schemaRowClass', this.schemaWarehouse.onRowClass(this.schemaReadModelRootId));\n this.state.connect('schemaRowStyle', this.schemaWarehouse.onRowStyle(this.schemaReadModelRootId));\n this.state.connect('checkboxSelection', this.selectCheckboxSelection());\n this.state.connect('radioSelection', this.selectRadioSelection());\n this.state.connect('searchPhrase', this.selectSearchPhrase());\n }\n trackByFn() {\n return 0;\n }\n translateY(index, rowHeight) {\n const height = index * rowHeight;\n return `translateY(${height}px)`;\n }\n toggleSelectedRow(entity, selectionEnabled, checkboxSelection, radioSelection) {\n if (!selectionEnabled) {\n return;\n }\n if (!checkboxSelection && !radioSelection) {\n this.formationPublisher.toggleSelectedRow(entity.getId(), RowSelectToggleType.NONE, this.structureId);\n }\n }\n getSelectorName() {\n return 'gui-structure-content';\n }\n selectCheckboxSelection() {\n return this.formationWarehouse\n .onType(this.structureId)\n .pipe(hermesMap((type) => {\n return type === RowSelectionType.CHECKBOX;\n }));\n }\n selectRadioSelection() {\n return this.formationWarehouse\n .onType(this.structureId)\n .pipe(hermesMap((type) => {\n return type === RowSelectionType.RADIO;\n }));\n }\n selectSearchPhrase() {\n return fromRxJsObservable(combineLatest(toRxJsObservable(this.searchWarehouse.onPhrase(this.structureId)), toRxJsObservable(this.searchWarehouse.onHighlight(this.structureId))))\n .pipe(hermesMap(([phrase, highlighting]) => {\n if (!highlighting) {\n return '';\n }\n else {\n return phrase;\n }\n }));\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureContentComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: FormationPublisher }, { token: StructureEditModeArchive }, { token: FormationWarehouse }, { token: StructureWarehouse }, { token: VerticalFormationWarehouse }, { token: StructureId }, { token: SchemaReadModelRootId }, { token: SearchWarehouse }, { token: SchemaWarehouse }], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"17.0.2\", type: StructureContentComponent, selector: \"div[gui-structure-content]\", inputs: { source: \"source\", columns: \"columns\" }, providers: [\n GuiState\n ], usesInheritance: true, ngImport: i0, template: \"
\\n\\n\\t
\\n\\t
\\n\\n
\\n\", dependencies: [{ kind: \"directive\", type: i4.NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }, { kind: \"directive\", type: i4.NgForOf, selector: \"[ngFor][ngForOf]\", inputs: [\"ngForOf\", \"ngForTrackBy\", \"ngForTemplate\"] }, { kind: \"directive\", type: i4.NgStyle, selector: \"[ngStyle]\", inputs: [\"ngStyle\"] }, { kind: \"directive\", type: GuiLetDirective, selector: \"[guiLet]\", inputs: [\"guiLet\"] }, { kind: \"component\", type: StructureRowComponent, selector: \"div[gui-structure-row]\", inputs: [\"entity\", \"columns\", \"editMode\", \"cellEditing\", \"searchPhrase\", \"index\", \"rowStyle\", \"rowClass\", \"checkboxSelection\", \"radioSelection\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureContentComponent, decorators: [{\n type: Component,\n args: [{ selector: 'div[gui-structure-content]', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, providers: [\n GuiState\n ], template: \"
\\n\\n\\t
\\n\\t
\\n\\n
\\n\" }]\n }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: FormationPublisher }, { type: StructureEditModeArchive }, { type: FormationWarehouse }, { type: StructureWarehouse }, { type: VerticalFormationWarehouse }, { type: StructureId }, { type: SchemaReadModelRootId }, { type: SearchWarehouse }, { type: SchemaWarehouse }], propDecorators: { source: [{\n type: Input\n }], columns: [{\n type: Input\n }] } });\n\nclass StructureContainerComponent extends SmartComponent {\n elRef;\n ngZone;\n structureId;\n compositionId;\n structureCommandService;\n structureWarehouse;\n verticalFormationWarehouse;\n sourceWarehouse;\n compositionCommandInvoker;\n compositionWarehouse;\n compositionTemplateWarehouse;\n formationWarehouse;\n resizeDetector;\n structureInitialValuesReadyArchive;\n structureParent;\n sourceCollectionRef;\n columns = [];\n source = [];\n height;\n rowColoring;\n autoResizeWidthEnabled = false;\n scrollObservation$ = new HermesSubject();\n styleModifier;\n constructor(changeDetectorRef, elRef, ngZone, structureId, compositionId, structureCommandService, structureWarehouse, verticalFormationWarehouse, sourceWarehouse, compositionCommandInvoker, compositionWarehouse, compositionTemplateWarehouse, formationWarehouse, resizeDetector, structureInitialValuesReadyArchive, structureParent) {\n super(changeDetectorRef, elRef);\n this.elRef = elRef;\n this.ngZone = ngZone;\n this.structureId = structureId;\n this.compositionId = compositionId;\n this.structureCommandService = structureCommandService;\n this.structureWarehouse = structureWarehouse;\n this.verticalFormationWarehouse = verticalFormationWarehouse;\n this.sourceWarehouse = sourceWarehouse;\n this.compositionCommandInvoker = compositionCommandInvoker;\n this.compositionWarehouse = compositionWarehouse;\n this.compositionTemplateWarehouse = compositionTemplateWarehouse;\n this.formationWarehouse = formationWarehouse;\n this.resizeDetector = resizeDetector;\n this.structureInitialValuesReadyArchive = structureInitialValuesReadyArchive;\n this.structureParent = structureParent;\n this.styleModifier = new StyleModifier(this.elRef.nativeElement);\n }\n ngOnInit() {\n this.subscribeWithoutRender(this.verticalFormationWarehouse.onContainerHeight(this.structureId), (containerHeight) => {\n this.setContainerHeight(containerHeight);\n });\n this.subscribe(fromRxJsObservable(toRxJsObservable(this.structureInitialValuesReadyArchive.once(this.structureId))\n .pipe(flatMap(() => {\n return combineLatest(toRxJsObservable(this.sourceWarehouse.onItems(this.structureId)), toRxJsObservable(this.compositionTemplateWarehouse.onTemplateCols(this.compositionId)));\n }))), (arr) => {\n this.source = arr[0];\n this.columns = arr[1];\n });\n this.subscribeWithoutRender(this.compositionWarehouse.onResizeWidth(this.compositionId), (enabled) => {\n this.autoResizeWidthEnabled = enabled;\n });\n }\n ngAfterViewInit() {\n super.ngAfterViewInit();\n // turn on when structure is ready\n if (this.structureParent) {\n this.subscribeWithoutRender(this.resizeDetector\n .on(this.structureParent.getElementRef().nativeElement)\n .pipe(hermesFilter(() => this.autoResizeWidthEnabled), hermesMap((size) => size.width), hermesDistinctUntilChanged()), (width) => {\n this.recalculateContainer(width);\n });\n }\n this.subscribeWithoutRender(this.compositionWarehouse.onContainerWidth(this.compositionId), (width) => {\n this.styleModifier.getElement(this.sourceCollectionRef.nativeElement).setWidth(width);\n });\n this.subscribeWithoutRender(this.verticalFormationWarehouse.onEnabled(this.structureId), (enabled) => {\n if (enabled) {\n this.enableScrollObservation();\n }\n else {\n this.disableScrollObservation();\n }\n });\n this.subscribeWithoutRender(this.structureWarehouse\n .on(this.structureId)\n .pipe(hermesFilter((str) => {\n return str.isVerticalScrollEnabled();\n })), (structure) => {\n const topMargin = structure.getTopMargin(), sourceHeight = structure.getSourceHeight();\n this.setSourceHeight(topMargin, sourceHeight);\n });\n this.subscribeWithoutRender(this.verticalFormationWarehouse.onScrollBarPosition(this.structureId), (scrollPosition) => {\n this.elRef.nativeElement.scrollTop = scrollPosition;\n });\n }\n ngOnDestroy() {\n super.ngOnDestroy();\n this.resizeDetector.destroy(this.elRef.nativeElement);\n }\n getSelectorName() {\n return 'gui-structure-container';\n }\n setContainerHeight(height) {\n this.height = height;\n this.styleModifier.getHost().setHeight(height);\n }\n setSourceHeight(topMargin, sourceHeight) {\n this.styleModifier.getElement(this.sourceCollectionRef.nativeElement).setPaddingTop(topMargin);\n this.styleModifier.getElement(this.sourceCollectionRef.nativeElement).setHeight(sourceHeight);\n }\n recalculateContainer(width) {\n if (this.autoResizeWidthEnabled) {\n this.compositionCommandInvoker.setContainerWidth(width, this.compositionId);\n }\n }\n enableScrollObservation() {\n this.ngZone\n .runOutsideAngular(() => {\n hermesFromEvent(this.elRef.nativeElement, 'scroll')\n .pipe(hermesTakeUntil(this.scrollObservation$))\n .subscribe((event) => {\n const scrollTop = event.target.scrollTop;\n this.structureCommandService.setScrollPosition(scrollTop, this.structureId);\n });\n });\n }\n disableScrollObservation() {\n this.scrollObservation$.next();\n this.scrollObservation$.complete();\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureContainerComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }, { token: StructureId }, { token: CompositionId }, { token: StructurePublisher }, { token: StructureWarehouse }, { token: VerticalFormationWarehouse }, { token: SourceWarehouse }, { token: CompositionPublisher }, { token: CompositionWarehouse }, { token: CompositionTemplateWarehouse }, { token: FormationWarehouse }, { token: ResizeDetector }, { token: StructureInitialValuesReadyArchive }, { token: structureParentComponent, optional: true }], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"17.0.2\", type: StructureContainerComponent, selector: \"div[gui-structure-container]\", viewQueries: [{ propertyName: \"sourceCollectionRef\", first: true, predicate: [\"sourceCollection\"], descendants: true, read: ElementRef }], usesInheritance: true, ngImport: i0, template: \"
\\n\\n\\t
\\n\\t
\\n\\n
\\n\", dependencies: [{ kind: \"component\", type: StructureContentComponent, selector: \"div[gui-structure-content]\", inputs: [\"source\", \"columns\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureContainerComponent, decorators: [{\n type: Component,\n args: [{ selector: 'div[gui-structure-container]', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: \"
\\n\\n\\t
\\n\\t
\\n\\n
\\n\" }]\n }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }, { type: StructureId }, { type: CompositionId }, { type: StructurePublisher }, { type: StructureWarehouse }, { type: VerticalFormationWarehouse }, { type: SourceWarehouse }, { type: CompositionPublisher }, { type: CompositionWarehouse }, { type: CompositionTemplateWarehouse }, { type: FormationWarehouse }, { type: ResizeDetector }, { type: StructureInitialValuesReadyArchive }, { type: undefined, decorators: [{\n type: Optional$1\n }, {\n type: Inject,\n args: [structureParentComponent]\n }] }], propDecorators: { sourceCollectionRef: [{\n type: ViewChild,\n args: ['sourceCollection', { read: ElementRef, static: false }]\n }] } });\n\nclass StructureBannerPanel extends SmartComponent {\n bannerPanel$;\n constructor(changeDetectorRef, elementRef) {\n super(changeDetectorRef, elementRef);\n }\n initObservables() {\n this.bannerPanel$ = this.selectBannerPanelTemplate();\n }\n selectBannerPanelTemplate() {\n return this.onBannerPanelConfig()\n .pipe(hermesMap((config) => {\n if (typeof config.template === 'function') {\n return config.template();\n }\n return config.template;\n }));\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureBannerPanel, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });\n static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"17.0.2\", type: StructureBannerPanel, usesInheritance: true, ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureBannerPanel, decorators: [{\n type: Directive\n }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }] });\n\nclass StructureTitlePanelComponent extends StructureBannerPanel {\n structureTitlePanelConfigArchive;\n constructor(structureTitlePanelConfigArchive, changeDetectorRef, elementRef) {\n super(changeDetectorRef, elementRef);\n this.structureTitlePanelConfigArchive = structureTitlePanelConfigArchive;\n this.initObservables();\n }\n onBannerPanelConfig() {\n return this.structureTitlePanelConfigArchive.on();\n }\n getSelectorName() {\n return 'gui-structure-title-panel';\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureTitlePanelComponent, deps: [{ token: StructureTitlePanelConfigArchive }, { token: i0.ChangeDetectorRef }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"17.0.2\", type: StructureTitlePanelComponent, selector: \"div[gui-structure-title-panel]\", usesInheritance: true, ngImport: i0, template: \"
\\n
\\n\", dependencies: [{ kind: \"pipe\", type: GuiPushPipe, name: \"guiPush\" }, { kind: \"pipe\", type: SafePipe, name: \"guiSafe\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureTitlePanelComponent, decorators: [{\n type: Component,\n args: [{ selector: 'div[gui-structure-title-panel]', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: \"
\\n
\\n\" }]\n }], ctorParameters: () => [{ type: StructureTitlePanelConfigArchive }, { type: i0.ChangeDetectorRef }, { type: i0.ElementRef }] });\n\nclass StructureFooterPanelComponent extends StructureBannerPanel {\n structureFooterPanelConfigArchive;\n constructor(structureFooterPanelConfigArchive, changeDetectorRef, elementRef) {\n super(changeDetectorRef, elementRef);\n this.structureFooterPanelConfigArchive = structureFooterPanelConfigArchive;\n this.initObservables();\n }\n onBannerPanelConfig() {\n return this.structureFooterPanelConfigArchive\n .on();\n }\n getSelectorName() {\n return 'gui-structure-footer-panel';\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureFooterPanelComponent, deps: [{ token: StructureFooterPanelConfigArchive }, { token: i0.ChangeDetectorRef }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"17.0.2\", type: StructureFooterPanelComponent, selector: \"div[gui-structure-footer-panel]\", usesInheritance: true, ngImport: i0, template: \"\\n\", dependencies: [{ kind: \"pipe\", type: GuiPushPipe, name: \"guiPush\" }, { kind: \"pipe\", type: SafePipe, name: \"guiSafe\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureFooterPanelComponent, decorators: [{\n type: Component,\n args: [{ selector: 'div[gui-structure-footer-panel]', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: \"\\n\" }]\n }], ctorParameters: () => [{ type: StructureFooterPanelConfigArchive }, { type: i0.ChangeDetectorRef }, { type: i0.ElementRef }] });\n\nclass StructureBlueprintComponent extends SmartComponent {\n structureDefinition;\n className;\n structureId = inject(StructureId);\n summariesWarehouse = inject(SummariesWarehouse);\n structureHeaderTopEnabledArchive = inject(StructureHeaderTopEnabledArchive);\n structureHeaderBottomEnabledArchive = inject(StructureHeaderBottomEnabledArchive);\n searchWarehouse = inject(SearchWarehouse);\n pagingWarehouse = inject(PagingWarehouse);\n structureWarehouse = inject(StructureWarehouse);\n structureInfoPanelArchive = inject(StructureInfoPanelArchive);\n structureTitlePanelConfigArchive = inject(StructureTitlePanelConfigArchive);\n structureFooterPanelConfigArchive = inject(StructureFooterPanelConfigArchive);\n bottomSummariesPanelEnabled$ = this.summariesWarehouse.onBottomEnabled(this.structureId);\n contentCssClass;\n headerCssClass;\n headerTopClasses;\n headerBottomClasses;\n topHeaderEnabled$ = this.structureHeaderTopEnabledArchive.on();\n bottomHeaderEnabled$ = this.structureHeaderBottomEnabledArchive.on();\n footerPanelEnabled$ = this.selectFooterPanelEnabled();\n items$ = this.selectItems();\n topSummariesPanelEnabled$ = this.summariesWarehouse.onTopEnabled(this.structureId);\n searchEnabled$ = this.searchWarehouse.onSearchEnabled(this.structureId);\n titlePanelEnabled$ = this.selectTitlePanelEnabled();\n infoPanelEnabled$ = this.selectInfoPanelEnabled();\n pagingModel$ = this.pagingWarehouse.onPaging(this.structureId);\n constructor(changeDetectorRef, elementRef, structureDefinition, className) {\n super(changeDetectorRef, elementRef);\n this.structureDefinition = structureDefinition;\n this.className = className;\n this.headerCssClass = `gui-${this.className}-header`;\n this.contentCssClass = `gui-${this.className}-content`;\n this.headerTopClasses = this.headerCssClass + ' gui-header-top';\n this.headerBottomClasses = this.headerCssClass + ' gui-header-bottom';\n }\n isColumnHeaderTopEnabled(topHeaderEnabled) {\n return this.structureDefinition.isHeaderEnabled() && topHeaderEnabled;\n }\n isColumnHeaderBottomEnabled(bottomHeaderEnabled) {\n return this.structureDefinition.isHeaderEnabled() && bottomHeaderEnabled;\n }\n isPagingTopEnabled(pagingModel) {\n return this.structureDefinition.getTopPaging().isEnabled() && pagingModel.isPagerTop();\n }\n isPagingBottomEnabled(pagingModel) {\n return this.structureDefinition.getBottomPaging().isEnabled() && pagingModel.isPagerBottom();\n }\n getSelectorName() {\n return 'gui-structure-blueprint';\n }\n selectTitlePanelEnabled() {\n return this.structureTitlePanelConfigArchive\n .on()\n .pipe(hermesMap((titlePanel) => {\n return titlePanel.enabled;\n }));\n }\n selectInfoPanelEnabled() {\n return this.structureInfoPanelArchive\n .on()\n .pipe(hermesMap((infoPanel) => {\n return infoPanel.isEnabled();\n }));\n }\n selectFooterPanelEnabled() {\n return this.structureFooterPanelConfigArchive\n .on()\n .pipe(hermesMap((footerPanel) => {\n return footerPanel.enabled;\n }));\n }\n selectItems() {\n return this.structureWarehouse.on(this.structureId)\n .pipe(hermesMap((structure) => {\n return structure.getEntities();\n }));\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureBlueprintComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: StructureDefinition }, { token: STRUCTURE_CSS_CLASS_NAME }], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"17.0.2\", type: StructureBlueprintComponent, selector: \"div[gui-structure-blueprint]\", usesInheritance: true, ngImport: i0, template: \"\\n
\\n\\n
\\n\\n\\n\\t
\\n\\t
\\n
\\n\\n
\\n
\\n\\n\\n\\t
\\n\\t
\\n
\\n\\n\\n\\n
\\n
\\n\\n
\\n
\\n\\n\\n\\n\\n\\t
\\n\\t
\\n
\\n\\n
\\n
\\n\\n\\n\\t
\\n
\\n\\n\\n\\t
\\n\\t
\\n
\\n\\n
\\n\", dependencies: [{ kind: \"directive\", type: i4.NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }, { kind: \"directive\", type: i4.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { kind: \"directive\", type: GuiLetDirective, selector: \"[guiLet]\", inputs: [\"guiLet\"] }, { kind: \"directive\", type: GuiIfDirective, selector: \"[guiIf]\", inputs: [\"guiIf\"] }, { kind: \"component\", type: PagingComponent, selector: \"div[gui-paging][position]\", inputs: [\"position\", \"minimal\"] }, { kind: \"component\", type: StructureSummariesPanelComponent, selector: \"div[gui-structure-summaries-panel][enabled]\", inputs: [\"enabled\"] }, { kind: \"component\", type: StructureInfoPanelComponent, selector: \"div[gui-structure-info-panel]\" }, { kind: \"component\", type: StructureTopPanelComponent, selector: \"div[gui-structure-top-panel]\" }, { kind: \"component\", type: EmptySourceComponent, selector: \"div[gui-empty-source][items]\", inputs: [\"items\"] }, { kind: \"component\", type: StructureHeaderComponent, selector: \"div[gui-structure-header]\" }, { kind: \"component\", type: StructureContainerComponent, selector: \"div[gui-structure-container]\" }, { kind: \"component\", type: StructureTitlePanelComponent, selector: \"div[gui-structure-title-panel]\" }, { kind: \"component\", type: StructureFooterPanelComponent, selector: \"div[gui-structure-footer-panel]\" }, { kind: \"pipe\", type: GuiPushPipe, name: \"guiPush\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureBlueprintComponent, decorators: [{\n type: Component,\n args: [{ selector: 'div[gui-structure-blueprint]', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: \"\\n
\\n\\n
\\n\\n\\n\\t
\\n\\t
\\n
\\n\\n
\\n
\\n\\n\\n\\t
\\n\\t
\\n
\\n\\n\\n\\n
\\n
\\n\\n
\\n
\\n\\n\\n\\n\\n\\t
\\n\\t
\\n
\\n\\n
\\n
\\n\\n\\n\\t
\\n
\\n\\n\\n\\t
\\n\\t
\\n
\\n\\n
\\n\" }]\n }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: StructureDefinition }, { type: undefined, decorators: [{\n type: Inject,\n args: [STRUCTURE_CSS_CLASS_NAME]\n }] }] });\n\n/** @internal */\nfunction structureIdFactoryForGrid(generator) {\n return new StructureId('gui-grid-' + generator.generateId());\n}\n/** @internal */\nfunction compositionIdFactoryForGrid(generator) {\n return new CompositionId('gui-grid-' + generator.generateId());\n}\n/** @internal */\nfunction schemaIdFactoryForGrid(generator) {\n return new SchemaReadModelRootId('gui-grid-' + generator.generateId());\n}\n/** @internal */\nclass StructureComponent extends StructureGateway {\n elementRef;\n detectorRef;\n injector;\n structureDefinition;\n structureWarehouse;\n compositionWarehouse;\n schemaStylesManager;\n schemaReadModelRootId;\n structureDetailViewService;\n loaderEnabled = false;\n circleLoaderEnabled = true;\n initialLoaderAnimation = false;\n styleModifier;\n constructor(structureId, compositionId, pagingCommandService, pagingEventRepository, sourceCommandDispatcher, sourceEventService, sortingCommandDispatcher, searchCommandDispatcher, fieldCommandDispatcher, schemaCommandInvoker, compositionCommandDispatcher, compositionEventRepository, formationEventService, structureCommandService, structureEditModeArchive, structureCellEditArchive, structureInfoPanelArchive, structureInfoPanelConfigService, structureCellEditStore, columnFieldFactory, structureColumnMenuConfigArchive, pagingDisplayModeArchive, formationCommandDispatcher, searchEventRepository, structureHeaderBottomEnabledArchive, structureDetailViewConfigArchive, structureTitlePanelConfigArchive, structureFooterPanelConfigArchive, schemaEventRepository, translationService, structureInitialValuesReadyArchive, columnAutoConfigurator, elementRef, detectorRef, injector, structureDefinition, structureWarehouse, compositionWarehouse, schemaStylesManager, schemaReadModelRootId, structureDetailViewService) {\n super(detectorRef, elementRef, columnAutoConfigurator, structureId, compositionId, schemaReadModelRootId, structureCommandService, pagingCommandService, pagingEventRepository, sortingCommandDispatcher, searchCommandDispatcher, sourceCommandDispatcher, sourceEventService, schemaCommandInvoker, compositionCommandDispatcher, compositionEventRepository, formationEventService, structureEditModeArchive, structureCellEditArchive, structureInfoPanelConfigService, structureCellEditStore, columnFieldFactory, formationCommandDispatcher, searchEventRepository, structureHeaderBottomEnabledArchive, schemaEventRepository, translationService, structureInitialValuesReadyArchive);\n this.elementRef = elementRef;\n this.detectorRef = detectorRef;\n this.injector = injector;\n this.structureDefinition = structureDefinition;\n this.structureWarehouse = structureWarehouse;\n this.compositionWarehouse = compositionWarehouse;\n this.schemaStylesManager = schemaStylesManager;\n this.schemaReadModelRootId = schemaReadModelRootId;\n this.structureDetailViewService = structureDetailViewService;\n this.styleModifier = new StyleModifier(this.elementRef.nativeElement);\n structureCommandService.create(this.structureId);\n compositionCommandDispatcher.create(this.compositionId);\n schemaCommandInvoker.create(this.schemaId);\n }\n ngOnInit() {\n super.ngOnInit();\n this.subscribe(this.structureWarehouse.on(this.structureId), (structureReadModelRoot) => {\n this.loaderEnabled = structureReadModelRoot.getSource().isLoading();\n this.circleLoaderEnabled = structureReadModelRoot.isLoaderVisible();\n if (this.loaderEnabled && !this.initialLoaderAnimation) {\n this.initialLoaderAnimation = true;\n }\n this.detectorRef.detectChanges();\n });\n this.structureDetailViewService.init(this.elementRef);\n }\n ngAfterViewInit() {\n this.structureInitialValuesReadyArchive\n .next(this.structureId, true);\n let width = this.elementRef.nativeElement.offsetWidth;\n if (width > 0) {\n this.compositionCommandDispatcher.setContainerWidth(width, this.compositionId);\n }\n else {\n /**\n * When gui-grid is in dynamic container which is created later then grid.\n */\n hermesTimer(0)\n .pipe(this.takeUntil())\n .subscribe(() => {\n width = this.elementRef.nativeElement.offsetWidth;\n if (width > 0) {\n this.compositionCommandDispatcher.setContainerWidth(width, this.compositionId);\n }\n });\n }\n this.schemaStylesManager\n .init(this.elementRef, this.schemaReadModelRootId);\n this.subscribeWithoutRender(this.compositionWarehouse.onWidth(this.compositionId), (width) => {\n this.styleModifier.getHost().setWidth(width);\n });\n }\n isBorderEnabled() {\n return this.structureDefinition.isBorderEnabled();\n }\n getStructureId() {\n return this.structureId;\n }\n getElementRef() {\n return this.elementRef;\n }\n getSelectorName() {\n return 'gui-structure';\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureComponent, deps: [{ token: StructureId }, { token: CompositionId }, { token: PagingPublisher }, { token: PagingEventRepository }, { token: SourcePublisher }, { token: SourceEventService }, { token: SortingPublisher }, { token: SearchPublisher }, { token: FieldPublisher }, { token: SchemaPublisher }, { token: CompositionPublisher }, { token: CompositionEventRepository }, { token: FormationEventRepository }, { token: StructurePublisher }, { token: StructureEditModeArchive }, { token: StructureCellEditArchive }, { token: StructureInfoPanelArchive }, { token: StructureInfoPanelConfigService }, { token: StructureCellEditStore }, { token: ColumnFieldFactory }, { token: StructureColumnMenuConfigArchive }, { token: PagingDisplayModeArchive }, { token: FormationPublisher }, { token: SearchEventRepository }, { token: StructureHeaderBottomEnabledArchive }, { token: StructureRowDetailConfigArchive }, { token: StructureTitlePanelConfigArchive }, { token: StructureFooterPanelConfigArchive }, { token: SchemaEventRepository }, { token: TranslationFacade }, { token: StructureInitialValuesReadyArchive }, { token: ColumnAutoConfigurator }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i0.Injector }, { token: StructureDefinition }, { token: StructureWarehouse }, { token: CompositionWarehouse }, { token: SchemaCssClassManager }, { token: SchemaReadModelRootId }, { token: StructureRowDetailService }], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"17.0.2\", type: StructureComponent, selector: \"gui-structure\", host: { properties: { \"class.gui-structure-border\": \"isBorderEnabled()\", \"id\": \"structureId.toString()\" } }, providers: [\n {\n provide: StructureId,\n useFactory: structureIdFactoryForGrid,\n deps: [\n StructureIdGenerator\n ]\n },\n {\n provide: CompositionId,\n useFactory: compositionIdFactoryForGrid,\n deps: [\n StructureIdGenerator\n ]\n },\n {\n provide: SchemaReadModelRootId,\n useFactory: schemaIdFactoryForGrid,\n deps: [\n StructureIdGenerator\n ]\n },\n SchemaCssClassManager,\n StructureCellEditCloseAllService,\n StructureCellEditStore,\n StructureEditModeArchive,\n StructureInfoPanelArchive,\n StructureInfoPanelConfigService,\n StructureColumnMenuConfigArchive,\n PagingFeatureModule.forComponent(),\n TranslationFeatureModule.forComponent(),\n StructureHeaderTopEnabledArchive,\n StructureHeaderBottomEnabledArchive,\n StructureRowDetailConfigArchive,\n StructureRowDetailService,\n StructureTitlePanelConfigArchive,\n StructureFooterPanelConfigArchive,\n {\n provide: structureComponentToken,\n useExisting: StructureComponent\n },\n {\n provide: filterContainerToken,\n useExisting: StructureComponent\n }\n ], usesInheritance: true, ngImport: i0, template: \"
\\n\\n\\n
\\n\\t\\n\\t\\n
\\n\", styles: [\".gui-box-border{box-sizing:border-box}.gui-bg-transparent{background-color:transparent}.gui-border{border-width:1px}.gui-border-0{border-width:0}.gui-border-b{border-bottom-width:1px}.gui-border-t{border-top-width:1px}.gui-border-solid{border-style:solid}.gui-border-b-solid{border-bottom-style:solid}.gui-border-t-solid{border-top-style:solid}.gui-border-none{border-style:none}.gui-rounded{border-radius:4px}.gui-cursor-pointer{cursor:pointer}.gui-block{display:block}.gui-inline-block{display:inline-block}.gui-inline{display:inline}.gui-flex{display:-ms-flexbox;display:flex}.gui-hidden{display:none}.gui-display-grid{display:grid}.gui-flex-row{-ms-flex-direction:row;flex-direction:row}.gui-flex-row-reverse{-ms-flex-direction:row-reverse;flex-direction:row-reverse}.gui-flex-col{-ms-flex-direction:column;flex-direction:column}.gui-flex-col-reverse{-ms-flex-direction:column-reverse;flex-direction:column-reverse}.gui-justify-start{-ms-flex-pack:start;justify-content:flex-start}.gui-justify-end{-ms-flex-pack:end;justify-content:flex-end}.gui-justify-center{-ms-flex-pack:center;justify-content:center}.gui-justify-between{-ms-flex-pack:justify;justify-content:space-between}.gui-justify-around{-ms-flex-pack:distribute;justify-content:space-around}.gui-justify-evenly{-ms-flex-pack:space-evenly;justify-content:space-evenly}.gui-items-start{-ms-flex-align:start;align-items:flex-start}.gui-items-end{-ms-flex-align:end;align-items:flex-end}.gui-items-center{-ms-flex-align:center;align-items:center}.gui-items-between{-ms-flex-align:space-between;align-items:space-between}.gui-items-around{-ms-flex-align:space-around;align-items:space-around}.gui-items-evenly{-ms-flex-align:space-evenly;align-items:space-evenly}.gui-flex-wrap{-ms-flex-wrap:wrap;flex-wrap:wrap}.gui-flex-wrap-reverse{-ms-flex-wrap:wrap-reverse;flex-wrap:wrap-reverse}.gui-flex-nowrap{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.gui-grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.gui-grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.gui-grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.gui-grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.gui-grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.gui-grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.gui-grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}.gui-grid-cols-8{grid-template-columns:repeat(8,minmax(0,1fr))}.gui-grid-cols-9{grid-template-columns:repeat(9,minmax(0,1fr))}.gui-grid-rows-1{grid-template-rows:repeat(1,minmax(0,1fr))}.gui-grid-rows-2{grid-template-rows:repeat(2,minmax(0,1fr))}.gui-grid-rows-3{grid-template-rows:repeat(3,minmax(0,1fr))}.gui-grid-rows-4{grid-template-rows:repeat(4,minmax(0,1fr))}.gui-grid-rows-5{grid-template-rows:repeat(5,minmax(0,1fr))}.gui-grid-rows-6{grid-template-rows:repeat(6,minmax(0,1fr))}.gui-grid-rows-7{grid-template-rows:repeat(7,minmax(0,1fr))}.gui-grid-rows-8{grid-template-rows:repeat(8,minmax(0,1fr))}.gui-grid-rows-9{grid-template-rows:repeat(9,minmax(0,1fr))}.gui-grid-rows-gap-0{grid-row-gap:0}.gui-grid-rows-gap-1{grid-row-gap:1px}.gui-grid-rows-gap-2{grid-row-gap:2px}.gui-grid-rows-gap-3{grid-row-gap:3px}.gui-grid-rows-gap-4{grid-row-gap:4px}.gui-grid-rows-gap-5{grid-row-gap:6px}.gui-grid-rows-gap-6{grid-row-gap:8px}.gui-grid-rows-gap-7{grid-row-gap:10px}.gui-grid-rows-gap-8{grid-row-gap:12px}.gui-grid-rows-gap-10{grid-row-gap:16px}.gui-grid-rows-gap-13{grid-row-gap:22px}.gui-grid-rows-gap-23{grid-row-gap:42px}.gui-grid-cols-gap-0{grid-column-gap:0}.gui-grid-cols-gap-1{grid-column-gap:1px}.gui-grid-cols-gap-2{grid-column-gap:2px}.gui-grid-cols-gap-3{grid-column-gap:3px}.gui-grid-cols-gap-4{grid-column-gap:4px}.gui-grid-cols-gap-5{grid-column-gap:6px}.gui-grid-cols-gap-6{grid-column-gap:8px}.gui-grid-cols-gap-7{grid-column-gap:10px}.gui-grid-cols-gap-8{grid-column-gap:12px}.gui-grid-cols-gap-10{grid-column-gap:16px}.gui-grid-cols-gap-13{grid-column-gap:22px}.gui-grid-cols-gap-23{grid-column-gap:42px}.gui-h-full{height:100%}.gui-list-none{list-style-type:none}.gui-m-0{margin:0}.gui-mx-0{margin-left:0;margin-right:0}.gui-my-0{margin-bottom:0;margin-top:0}.-gui-m-0{margin:0}.-gui-mx-0{margin-left:0;margin-right:0}.-gui-my-0{margin-bottom:0;margin-top:0}.gui-m-1{margin:1px}.gui-mx-1{margin-left:1px;margin-right:1px}.gui-my-1{margin-bottom:1px;margin-top:1px}.-gui-m-1{margin:-1px}.-gui-mx-1{margin-left:-1px;margin-right:-1px}.-gui-my-1{margin-bottom:-1px;margin-top:-1px}.gui-m-2{margin:2px}.gui-mx-2{margin-left:2px;margin-right:2px}.gui-my-2{margin-bottom:2px;margin-top:2px}.-gui-m-2{margin:-2px}.-gui-mx-2{margin-left:-2px;margin-right:-2px}.-gui-my-2{margin-bottom:-2px;margin-top:-2px}.gui-m-3{margin:3px}.gui-mx-3{margin-left:3px;margin-right:3px}.gui-my-3{margin-bottom:3px;margin-top:3px}.-gui-m-3{margin:-3px}.-gui-mx-3{margin-left:-3px;margin-right:-3px}.-gui-my-3{margin-bottom:-3px;margin-top:-3px}.gui-m-4{margin:4px}.gui-mx-4{margin-left:4px;margin-right:4px}.gui-my-4{margin-bottom:4px;margin-top:4px}.-gui-m-4{margin:-4px}.-gui-mx-4{margin-left:-4px;margin-right:-4px}.-gui-my-4{margin-bottom:-4px;margin-top:-4px}.gui-m-5{margin:6px}.gui-mx-5{margin-left:6px;margin-right:6px}.gui-my-5{margin-bottom:6px;margin-top:6px}.-gui-m-5{margin:-6px}.-gui-mx-5{margin-left:-6px;margin-right:-6px}.-gui-my-5{margin-bottom:-6px;margin-top:-6px}.gui-m-6{margin:8px}.gui-mx-6{margin-left:8px;margin-right:8px}.gui-my-6{margin-bottom:8px;margin-top:8px}.-gui-m-6{margin:-8px}.-gui-mx-6{margin-left:-8px;margin-right:-8px}.-gui-my-6{margin-bottom:-8px;margin-top:-8px}.gui-m-7{margin:10px}.gui-mx-7{margin-left:10px;margin-right:10px}.gui-my-7{margin-bottom:10px;margin-top:10px}.-gui-m-7{margin:-10px}.-gui-mx-7{margin-left:-10px;margin-right:-10px}.-gui-my-7{margin-bottom:-10px;margin-top:-10px}.gui-m-8{margin:12px}.gui-mx-8{margin-left:12px;margin-right:12px}.gui-my-8{margin-bottom:12px;margin-top:12px}.-gui-m-8{margin:-12px}.-gui-mx-8{margin-left:-12px;margin-right:-12px}.-gui-my-8{margin-bottom:-12px;margin-top:-12px}.gui-m-10{margin:16px}.gui-mx-10{margin-left:16px;margin-right:16px}.gui-my-10{margin-bottom:16px;margin-top:16px}.-gui-m-10{margin:-16px}.-gui-mx-10{margin-left:-16px;margin-right:-16px}.-gui-my-10{margin-bottom:-16px;margin-top:-16px}.gui-m-13{margin:22px}.gui-mx-13{margin-left:22px;margin-right:22px}.gui-my-13{margin-bottom:22px;margin-top:22px}.-gui-m-13{margin:-22px}.-gui-mx-13{margin-left:-22px;margin-right:-22px}.-gui-my-13{margin-bottom:-22px;margin-top:-22px}.gui-m-23{margin:42px}.gui-mx-23{margin-left:42px;margin-right:42px}.gui-my-23{margin-bottom:42px;margin-top:42px}.-gui-m-23{margin:-42px}.-gui-mx-23{margin-left:-42px;margin-right:-42px}.-gui-my-23{margin-bottom:-42px;margin-top:-42px}.gui-mb-4{margin-bottom:4px}.gui-mb-6{margin-bottom:8px}.gui-mb-8{margin-bottom:12px}.gui-mb-10{margin-bottom:16px}.gui-mb-18{margin-bottom:32px}.gui-mr-0{margin-right:0}.gui-mr-5{margin-right:6px}.gui-mr-auto{margin-right:auto}.gui-ml-auto{margin-left:auto}.gui-ml-6{margin-left:8px}.gui-mt-0{margin-top:0}.gui-mt-4{margin-top:4px}.gui-mt-6{margin-top:8px}.gui-mt-10{margin-top:16px}.gui-mt-14{margin-top:24px}.gui-overflow-hidden{overflow:hidden}.gui-overflow-y-scroll{overflow-y:scroll}.gui-overflow-x-hidden{overflow-x:hidden}.gui-overflow-auto{overflow:auto}.gui-p-0{padding:0}.gui-px-0{padding-left:0;padding-right:0}.gui-py-0{padding-bottom:0;padding-top:0}.gui-p-1{padding:1px}.gui-px-1{padding-left:1px;padding-right:1px}.gui-py-1{padding-bottom:1px;padding-top:1px}.gui-p-2{padding:2px}.gui-px-2{padding-left:2px;padding-right:2px}.gui-py-2{padding-bottom:2px;padding-top:2px}.gui-p-3{padding:3px}.gui-px-3{padding-left:3px;padding-right:3px}.gui-py-3{padding-bottom:3px;padding-top:3px}.gui-p-4{padding:4px}.gui-px-4{padding-left:4px;padding-right:4px}.gui-py-4{padding-bottom:4px;padding-top:4px}.gui-p-5{padding:6px}.gui-px-5{padding-left:6px;padding-right:6px}.gui-py-5{padding-bottom:6px;padding-top:6px}.gui-p-6{padding:8px}.gui-px-6{padding-left:8px;padding-right:8px}.gui-py-6{padding-bottom:8px;padding-top:8px}.gui-p-7{padding:10px}.gui-px-7{padding-left:10px;padding-right:10px}.gui-py-7{padding-bottom:10px;padding-top:10px}.gui-p-8{padding:12px}.gui-px-8{padding-left:12px;padding-right:12px}.gui-py-8{padding-bottom:12px;padding-top:12px}.gui-p-10{padding:16px}.gui-px-10{padding-left:16px;padding-right:16px}.gui-py-10{padding-bottom:16px;padding-top:16px}.gui-p-13{padding:22px}.gui-px-13{padding-left:22px;padding-right:22px}.gui-py-13{padding-bottom:22px;padding-top:22px}.gui-p-23{padding:42px}.gui-px-23{padding-left:42px;padding-right:42px}.gui-py-23{padding-bottom:42px;padding-top:42px}.gui-pr-10{padding-right:16px}.gui-pl-9{padding-right:10px}.gui-pb-6{padding-bottom:8px}.gui-pb-12{padding-bottom:20px}.gui-pl-21{padding-left:38px}.gui-pt-4{padding-top:4px}.gui-pt-6{padding-top:8px}.gui-pt-10{padding-top:16px}.gui-pt-12{padding-top:20px}.gui-pt-14{padding-top:24px}.gui-static{position:static}.gui-fixed{position:fixed}.gui-relative{position:relative}.gui-absolute{position:absolute}.gui-text-xxs{font-size:11px}.gui-text-xs{font-size:12px}.gui-text-sm{font-size:13px}.gui-text-base{font-size:14px}.gui-text-lg{font-size:16px}.gui-text-xl{font-size:18px}.gui-text-2xl{font-size:20px}.gui-text-3xl{font-size:22px}.gui-leading-4{line-height:16px}.gui-leading-6{line-height:24px}.gui-font-thin{font-weight:100}.gui-font-extralight{font-weight:200}.gui-font-light{font-weight:300}.gui-font-normal{font-weight:400}.gui-font-medium{font-weight:500}.gui-font-semibold{font-weight:600}.gui-font-bold{font-weight:700}.gui-font-extrabold{font-weight:800}.gui-font-black{font-weight:900}.gui-not-italic{font-style:normal}.gui-whitespace-nowrap{white-space:nowrap}.gui-overflow-ellipsis{text-overflow:ellipsis}.gui-no-underline{text-decoration:none}.gui-text-center{text-align:center}.gui-w-full{width:100%}.gui-w-96{width:384px}.gui-w-3\\\\/5{width:60%}.gui-structure *,.gui-structure *:after,.gui-structure *:before{box-sizing:border-box}.gui-structure input{font-size:13px;outline:0}.gui-bold{font-weight:700}.gui-italic{font-style:italic}.gui-bar-view{width:100%}.gui-align-right{display:-ms-flexbox;display:flex;-ms-flex-pack:end;justify-content:flex-end;text-align:right;width:100%}.gui-align-left{text-align:left;width:100%}.gui-align-center{-ms-flex-pack:center;justify-content:center;text-align:center;width:100%}.gui-icon{cursor:pointer}.gui-icon svg{fill:#aaa;stroke:#aaa;transition:stroke .3s ease-in-out}.gui-icon svg:hover{fill:#464646!important;stroke:#464646!important}.gui-view-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gui-percentage-bar{background:#deebff;border-radius:4px;box-shadow:inset 1px 1px 2px #ccc;color:#0747a6;height:22px;padding:4px;position:relative;text-align:center;width:100%}.gui-percentage-bar .gui-percentage{background:#8abcfc;border-radius:4px;height:22px;left:0;position:absolute;top:0}.gui-percentage-bar .gui-percentage-view{color:#031d44;position:relative;width:100%}.gui-clear-search-icon{cursor:pointer;height:16px;position:absolute;right:8px;top:50%;-ms-transform:translateY(-50%);transform:translateY(-50%);width:16px}.gui-clear-search-icon:before,.gui-clear-search-icon:after{background-color:#aaa;border-radius:8px;content:\\\" \\\";height:16px;left:7px;position:absolute;width:2px}.gui-clear-search-icon:before{-ms-transform:rotate(45deg);transform:rotate(45deg)}.gui-clear-search-icon:after{-ms-transform:rotate(-45deg);transform:rotate(-45deg)}.gui-clear-search-icon:hover:before,.gui-clear-search-icon:hover:after{background-color:#464646}\\n\", \".gui-structure,.gui-structure *{border-color:#d6d6d6;font-size:14px}.gui-structure input{color:#333;font-family:Arial}.gui-header{background:#f2f3f4;border-bottom:1px solid;border-color:inherit;height:36px}.gui-header .gui-header-cell.gui-header-sortable{cursor:pointer}.gui-header .gui-header-cell.gui-header-sortable:hover{background:#e6e7e8}.gui-header .gui-header-cell .gui-header-menu-icon{display:none}.gui-header .gui-header-cell:hover .gui-header-menu{cursor:pointer}.gui-header .gui-header-cell:hover .gui-header-menu .gui-header-menu-icon-wrapper .gui-header-menu-icon{display:block}.gui-header .gui-header-cell:last-of-type{border-right:0}.gui-header .gui-header-cell .gui-header-title{display:-ms-flexbox;display:flex;line-height:1.4em}.gui-header .gui-header-cell .gui-header-menu{display:-ms-flexbox;display:flex}.gui-header .gui-header-cell .gui-header-menu .gui-header-menu-icon-wrapper{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;height:16px;padding:16px;position:relative;right:0;width:16px}.gui-header .gui-header-cell .gui-header-menu .gui-header-menu-icon-wrapper .gui-header-menu-icon{display:none;height:16px;width:16px}.gui-header-bottom .gui-header{border-bottom:0;border-color:inherit;border-top:1px solid}.gui-structure{background:#fff;border-color:#d6d6d6;box-sizing:border-box;color:#333;display:block;font-family:Arial;font-size:14px;position:relative}.gui-structure *{box-sizing:border-box}.gui-structure .gui-structure-header{display:block;height:100%;width:100%}.gui-structure .gui-structure-header .gui-structure-header-filters.gui-header{height:32px}.gui-structure .gui-structure-header .gui-structure-header-filters.gui-header .gui-header-cell{padding:4px}.gui-structure .gui-structure-header .gui-structure-header-filters.gui-header .gui-header-cell input{box-sizing:border-box;height:100%;padding:2px;position:relative;width:100%;border-color:#d6d6d6;border-style:solid;border-width:1px;font-size:13px}.gui-structure-container{display:block;height:100%;overflow:auto;overflow-x:hidden;position:relative;width:100%}.gui-structure-container .gui-structure-container-element{height:100%;position:absolute;width:100%}.gui-structure-container .gui-structure-container-element .gui-content{height:100%;position:relative}.gui-structure-container .gui-structure-container-element .gui-content .gui-row{border-bottom:1px solid transparent;position:absolute;width:100%}.gui-structure-container .gui-structure-container-element .gui-content .gui-row:last-child{border-bottom:0}.gui-structure-container .gui-structure-container-element .gui-content .gui-row:hover{background:#ecedee}.gui-structure-container .gui-structure-container-element .gui-content .gui-row.selected{background:#d0e8fb}.gui-structure-container .gui-structure-container-element .gui-content .gui-row .gui-cell{border-right:1px solid transparent;box-sizing:border-box;line-height:1em;overflow:hidden;padding:0;white-space:nowrap}.gui-structure-container .gui-structure-container-element .gui-content .gui-row .gui-cell .gui-cell-view span{line-height:1.4em}.gui-structure-container .gui-structure-container-element .gui-content .gui-row .gui-cell .gui-button{padding:0}.gui-structure-container .gui-structure-container-element .gui-content .gui-row .gui-cell .gui-cell-boolean{-ms-flex-pack:center;justify-content:center}.gui-structure-container .gui-structure-container-element .gui-content .gui-row .gui-cell .gui-checkbox{line-height:24px;position:relative}.gui-structure-container .gui-structure-container-element .gui-content .gui-row .gui-cell .gui-checkbox input{position:relative}.gui-structure-container .gui-structure-container-element .gui-content .gui-row .gui-cell .gui-chip{line-height:1em;margin:0;padding:4px 8px}.gui-structure-container .gui-structure-container-element .gui-content .gui-row .gui-cell .gui-badge{padding:0}.gui-structure-container .gui-structure-container-element .gui-content .gui-row .gui-cell .gui-input{background:transparent;font-size:14px;padding:0;border-radius:0;border-style:none}.gui-structure-container .gui-cell{display:inline-block}.gui-structure-container .gui-cell:last-child .gui-cell-view{padding-right:20px}.gui-structure-container .gui-cell>span{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;height:100%;padding:0 8px;width:100%}.gui-structure-container .gui-cell .gui-cell-edit-mode{border:2px solid #2185d0;height:100%;padding:6px}.gui-structure-container .gui-cell .gui-cell-edit-mode .gui-boolean-edit{margin-left:calc(50% - 11px)}.gui-structure-container .gui-cell .gui-cell-edit-mode input:focus{box-shadow:none;outline:none}.gui-vertical-grid .gui-structure-summaries-cell,.gui-vertical-grid .gui-structure-container-element .gui-content .gui-row .gui-cell,.gui-vertical-grid .gui-structure-header .gui-header .gui-header-cell{border-right:1px solid;border-right-color:inherit}.gui-vertical-grid .gui-structure-container-element .gui-content .gui-row .gui-cell:last-of-type,.gui-vertical-grid .gui-structure-header .gui-header .gui-header-cell:last-of-type{border-right:0}.gui-vertical-grid .gui-row-checkbox{border-right:1px solid!important;border-right-color:inherit!important}.gui-horizontal-grid .gui-structure-container-element .gui-content .gui-row{border-bottom:1px solid;border-bottom-color:inherit}.gui-horizontal-grid .gui-structure-container-element .gui-content .gui-row:last-of-type{border-bottom:0}.gui-rows-even .gui-row.even,.gui-rows-odd .gui-row.odd{background:#f7f8f9}.gui-structure-info-panel{-ms-flex-align:center;align-items:center;background:#f2f3f4;box-sizing:border-box;display:-ms-flexbox;display:flex;height:36px;-ms-flex-pack:justify;justify-content:space-between;padding:0 6px;width:100%;border-top-color:inherit;border-top-style:solid;border-top-width:1px}.gui-structure-info-panel p{margin:0}.gui-structure-info-panel p b{font-weight:700}.gui-structure-info-panel div button{background:#ccc;color:#fff;cursor:pointer;font-family:Arial;font-weight:700;height:16px;line-height:14px;padding:0;width:16px;border-color:transparent;border-radius:50%;border-style:solid;border-width:1px}.gui-structure-info-panel div button:focus{box-shadow:0 0 4px #ccc;outline:none}.gui-structure-border{border:1px solid;border-color:#d6d6d6}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}.gui-loading{-ms-flex-line-pack:center;align-content:center;animation-duration:.2s;background:rgba(255,255,255,.8);border:1px solid;border-color:inherit;display:-ms-flexbox;display:flex;height:100%;-ms-flex-pack:center;justify-content:center;left:0;opacity:0;position:absolute;top:0;visibility:hidden;width:100%}.gui-loading .gui-spinner{-ms-flex-item-align:center;align-self:center}.gui-loading.gui-loader-hidden{animation-name:fadeOut;opacity:0;visibility:visible;z-index:-1}.gui-loading.gui-loader-visible{animation-name:fadeIn;opacity:1;visibility:visible;z-index:1}.gui-text-highlight{background:#fff799;padding:0!important}.gui-title-panel{border-bottom-color:#d6d6d6}.gui-footer-panel{border-top-color:#d6d6d6}.gui-structure-schema-manager-icon{margin-right:16px}.gui-structure-schema-manager-icon svg{height:18px;margin-bottom:-1px;width:18px}.gui-row-radio{-ms-flex-align:center;align-items:center;cursor:pointer;display:-ms-flexbox!important;display:flex!important;-ms-flex-pack:center;justify-content:center;padding:0 12px!important;width:48px!important}.gui-row-radio .gui-radio-button{height:24px;margin:0;padding:0;width:24px}.gui-row-checkbox{-ms-flex-align:center;align-items:center;cursor:pointer;display:-ms-flexbox!important;display:flex!important;-ms-flex-pack:center;justify-content:center;padding:0 12px!important;width:48px!important}.gui-row-checkbox .gui-checkbox{height:24px;margin:0;padding:0;width:24px}.gui-select-all .gui-checkbox .gui-checkmark{top:0}.gui-structure-cell-edit-boolean{height:100%}.gui-column-highlighted{background:#fffddd}.gui-structure-column-manager>div:hover{background:#ecedee}.gui-structure-column-manager label{margin-bottom:0}.gui-structure-ordered-list li:hover{background:#ecedee}\\n\", \".gui-structure-column-menu-icon svg{height:16px;width:16px}.gui-structure-column-menu-icon .cls-1{fill:none;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.5px}.gui-structure-column-menu-arrow-icon{display:inline-block}.gui-structure-column-menu-arrow-icon svg{height:10px;width:12px}.gui-structure-column-menu-arrow-icon .gui-structure-column-menu-sort-icon svg{height:16px}.gui-structure-column-menu-arrow-icon .cls-1{fill:none;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.5px}\\n\", \".gui-summaries-value{font-weight:700}.gui-structure-summaries-panel{background:#f2f3f4}.gui-structure-summaries-panel.gui-structure-summaries-panel-bottom .gui-structure-summaries-cell{border-top:1px solid #d6d6d6}.gui-structure-summaries-panel.gui-structure-summaries-panel-top .gui-structure-summaries-cell{border-bottom:1px solid #d6d6d6}.gui-structure-summaries-panel .gui-structure-summaries-cell{font-size:14px;padding-left:16px;padding-right:16px}.gui-structure-summaries-panel .gui-structure-summaries-cell:last-child{padding-right:20px}.gui-structure-summaries-panel .gui-structure-summaries-value{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;line-height:1em;overflow:hidden;padding:8px 0}.gui-structure-summaries-panel .gui-structure-summaries-value div .gui-math-symbol{position:relative;top:-1px}.gui-structure-summaries-panel .gui-structure-summaries-value .gui-mean,.gui-structure-summaries-panel .gui-structure-summaries-value .gui-median{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;position:relative}.gui-structure-summaries-panel .gui-structure-summaries-value .gui-mean span:nth-child(1){left:1px;position:absolute;top:-15px}.gui-structure-summaries-panel .gui-structure-summaries-value .gui-median span:nth-child(1){left:1px;position:absolute;top:-8px}\\n\", \".gui-structure-column-manager-icon svg{height:16px;width:16px}.gui-structure-column-manager-icon .cls-1,.gui-structure-column-manager-icon .cls-2{fill:none;stroke-linecap:round;stroke-linejoin:round}.gui-structure-column-manager-icon .cls-2{stroke-width:1.5px}.gui-structure-info-icon svg{height:16px;width:16px}.gui-structure-info-icon .cls-1{stroke-width:0}.gui-structure-info-icon .cls-2{fill:none;stroke-linecap:round;stroke-linejoin:round}.gui-structure-info-panel div,.gui-structure-info-panel div button{display:inline-block}.gui-structure-info-panel .gui-right-section .gui-structure-column-manager-icon{margin-right:16px;position:relative}.gui-structure-info-panel .gui-right-section .gui-structure-info-icon{margin-right:4px;position:relative}.gui-structure-info-modal .gui-quote{color:#575757}.gui-structure-info-modal p{color:#333}.gui-structure-info-modal a{color:#2185d0}.gui-structure-info-modal a:hover{color:#59a9e5;text-decoration:underline}\\n\", \"@media (max-width: 500px){.gui-paging>*{padding-left:4px}.gui-paging .gui-paging-stats{padding-left:4px}}\\n\", \".gui-header{display:-ms-flexbox;display:flex}.gui-header .gui-header-cell{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex}.gui-content{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}.gui-content .gui-structure-cell-container,.gui-content .gui-row{display:-ms-flexbox;display:flex}.gui-content .gui-structure-cell-container .gui-cell,.gui-content .gui-row .gui-cell{display:inline-block}.gui-content .gui-structure-row-details{background:#80cbc4;display:block;height:200px;position:absolute;-ms-transform:translateY(0);transform:translateY(0);width:100%}\\n\", \".gui-inline-dialog-header-menu.gui-inline-dialog-wrapper .gui-inline-dialog-content{background:transparent;box-shadow:none}.gui-inline-dialog-header-menu .gui-header-menu-tab .gui-header-item-active{font-weight:700}.gui-inline-dialog-header-menu .gui-header-menu-tab .gui-tab .gui-tab-menu .gui-tab-menu-list{background:#fff}.gui-inline-dialog-header-menu .gui-header-menu-tab .gui-tab .gui-tab-menu .gui-tab-menu-item{color:#333}.gui-inline-dialog-header-menu .gui-header-menu-tab .gui-tab .gui-tab-menu .gui-tab-menu-item:hover{background:#ecedee}.gui-inline-dialog-header-menu .gui-header-menu-tab .gui-tab .gui-tab-menu .gui-tab-menu-item.gui-active{color:#2185d0}.gui-inline-dialog-header-menu .gui-header-menu-tab .gui-tab .gui-tab-content{box-shadow:0 3px 7px #ccc;box-sizing:content-box;padding:0;width:225px}.gui-inline-dialog-header-menu .gui-header-menu-tab .gui-header-menu-column-move{color:#333;display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;padding:0}.gui-inline-dialog-header-menu .gui-header-menu-tab .gui-header-menu-column-move .gui-header-menu-column-move-item{-ms-flex-align:center;align-items:center;cursor:pointer;display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between}.gui-inline-dialog-header-menu .gui-header-menu-tab .gui-header-menu-column-move .gui-header-menu-column-move-item svg line{stroke:#aaa}.gui-inline-dialog-header-menu .gui-header-menu-tab .gui-header-menu-column-move .gui-header-menu-column-move-item.left{padding:12px 16px 12px 12px;width:48%}.gui-inline-dialog-header-menu .gui-header-menu-tab .gui-header-menu-column-move .gui-header-menu-column-move-item.right{padding:12px 10px;width:52%}.gui-inline-dialog-header-menu .gui-header-menu-tab .gui-header-menu-column-move .gui-header-menu-column-move-item:hover{background:#ecedee}.gui-inline-dialog-header-menu .gui-header-menu-tab .gui-header-menu-column-move .gui-header-menu-column-move-item:hover svg line{stroke:#464646}.gui-inline-dialog-header-menu .gui-header-menu-tab .gui-tab-item-dropdown .gui-header-menu-dropdown.gui-dropdown .gui-dropdown-container{border:none;border-radius:0}.gui-inline-dialog-header-menu .gui-header-menu-tab .gui-tab-item-dropdown .gui-header-menu-dropdown.gui-dropdown .gui-dropdown-container:hover{background:#ecedee}.gui-inline-dialog-header-menu .gui-header-menu-tab .gui-tab-item-dropdown .gui-header-menu-dropdown.gui-dropdown .gui-dropdown-container:hover .gui-dropdown-arrow{opacity:1}.gui-inline-dialog-header-menu .gui-header-menu-tab .gui-tab-item-dropdown .gui-header-menu-dropdown.gui-dropdown .gui-dropdown-menu{width:125px}.gui-inline-dialog-header-menu .gui-header-menu-tab .gui-tab-item-dropdown .gui-header-menu-dropdown.gui-dropdown .gui-dropdown-menu .gui-item{background:#fff;color:#333;display:-ms-flexbox;display:flex;padding:8px 8px 8px 12px}.gui-inline-dialog-header-menu .gui-header-menu-tab .gui-tab-item-dropdown .gui-header-menu-dropdown.gui-dropdown .gui-dropdown-menu .gui-item:hover{background:#ecedee}.gui-inline-dialog-header-menu .gui-header-menu-tab .gui-tab-item-dropdown .gui-header-menu-dropdown.gui-dropdown .gui-dropdown-menu .gui-item:hover .gui-sort-title svg line{stroke:#464646}.gui-inline-dialog-header-menu .gui-header-menu-tab .gui-tab-item-dropdown .gui-header-menu-dropdown.gui-dropdown .gui-dropdown-menu .gui-item .gui-sort-title{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;width:100%}.gui-inline-dialog-header-menu .gui-header-menu-tab .gui-tab-item-dropdown .gui-header-menu-dropdown.gui-dropdown .gui-dropdown-menu .gui-item .gui-sort-title svg{margin-top:3px}.gui-inline-dialog-header-menu .gui-header-menu-tab .gui-tab-item-dropdown .gui-header-menu-dropdown.gui-dropdown .gui-dropdown-menu .gui-item .gui-sort-title svg line{stroke:#aaa}.gui-inline-dialog-header-menu .gui-header-menu-tab .gui-header-menu-item{color:#333;cursor:pointer;display:block;padding:8px 12px}.gui-inline-dialog-header-menu .gui-header-menu-tab .gui-header-menu-item:hover{background:#ecedee}.gui-inline-dialog-header-menu .gui-header-menu-tab .gui-checkbox{color:#333;margin-left:12px;padding:8px 12px 8px 32px;width:169px}.gui-inline-dialog-header-menu .gui-header-menu-tab .gui-checkbox label{display:inline-block;width:inherit}\\n\", \".gui-schema-manager-dialog .gui-schema-manager{min-width:180px}.gui-schema-manager-dialog .gui-schema-manager .gui-structure-schema-manager-select,.gui-schema-manager-dialog .gui-schema-manager .gui-checkbox{color:#333}.gui-schema-manager-dialog .gui-schema-manager .gui-structure-schema-manager-select:nth-last-child(1),.gui-schema-manager-dialog .gui-schema-manager .gui-checkbox:nth-last-child(1){margin-bottom:0}.gui-dialog-title{border-bottom:solid 1px #d6d6d6;font-size:18px;font-weight:700;margin-left:-16px;margin-right:-16px;padding-bottom:16px;text-align:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.gui-structure-schema-manager-select{padding:8px 0 24px}.gui-structure-dialog-column-manager ol{max-height:400px;min-width:250px}\\n\", \".gui-cell .gui-checkbox{display:block}.gui-cell .gui-chip{margin:0;padding:2px 8px}.gui-cell .gui-input{display:block;font-size:11px;padding:2px 4px;width:100%}.gui-cell .gui-button{padding:2px 8px}.gui-cell .gui-cell-number{display:block;width:100%}.gui-cell .gui-cell-boolean{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;height:100%;text-align:center;width:100%}.gui-cell .gui-string-edit{width:100%}\\n\", \".gui-fabric{border-color:#d6d6d6;font-family:Arial;font-size:14px}.gui-fabric .gui-header-cell,.gui-fabric .gui-structure-header-columns,.gui-fabric .gui-structure-top-panel,.gui-fabric .gui-structure-info-panel,.gui-fabric .gui-paging{height:42px}\\n\", \".gui-material{border-color:#0000001f;font-family:Arial;font-size:14px}.gui-material *{border-color:#0000001f}.gui-material.gui-structure{border:0;border-radius:0;box-shadow:0 2px 2px #00000024,0 3px 1px -2px #0000001f,0 1px 5px #0003}.gui-material.gui-structure,.gui-material .gui-header{font-family:Arial}.gui-material .gui-header-cell,.gui-material .gui-structure-header-columns{height:56px}.gui-material .gui-header .gui-header-cell.gui-header-sortable:hover{background:transparent}.gui-material .gui-header-cell{padding-left:16px;padding-right:16px}.gui-material .gui-structure-container-element .gui-structure-cell>span{padding-left:16px;padding-right:16px}.gui-material .gui-structure-container .gui-structure-container-element .gui-content .gui-row:hover{background:rgba(0,0,0,.04)}.gui-material .gui-structure-container .gui-structure-container-element .gui-content .gui-row.selected{background:#e6f7ff}.gui-material .gui-structure-header .gui-header{background:transparent;color:#464646;font-weight:700}.gui-material .gui-structure-header .gui-header .gui-header-cell{border-color:inherit}.gui-material .gui-cell .gui-button,.gui-material .gui-cell .gui-badge{padding:0}.gui-material .gui-paging-alternative-navigator .gui-button{background:transparent;color:#333;margin:0 4px;padding:0}.gui-material .gui-paging-alternative-navigator .gui-button:hover{background:transparent}.gui-material .gui-paging-alternative-navigator .gui-button:disabled{background:transparent;color:#ccc;opacity:.4}.gui-material .gui-structure-summaries-panel{background:#fff}.gui-material gui-structure-top-panel,.gui-material .gui-structure-info-panel,.gui-material .gui-paging{height:52px;padding-left:16px;padding-right:16px}.gui-material .gui-structure-info-panel{background:#fff;border-radius:0}.gui-material gui-structure-top-panel{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;padding-right:0}.gui-material gui-structure-top-panel .gui-search-bar form input{border:0;outline:0}.gui-material .gui-search-bar form input{border:0;outline:none}\\n\", \".gui-dark{border-color:#575757;border-radius:2px;color:#f0f0f0;font-family:Arial;font-size:14px}.gui-dark *{border-color:#575757;color:#f0f0f0}.gui-dark.gui-structure{border-radius:2px}.gui-dark .gui-header-cell,.gui-dark .gui-structure-header-columns{background:#333;height:46px}.gui-dark .gui-structure-border{border:none;box-shadow:5px 5px 10px 2px #1f1f1f}.gui-dark .gui-header-cell{border-bottom:1px solid;border-color:inherit;padding-left:16px;padding-right:16px}.gui-dark .gui-structure-container-element .gui-structure-cell>span{padding-left:16px;padding-right:16px}.gui-dark .gui-structure-header .gui-header{border-bottom-color:#666;color:#bdbdbd}.gui-dark .gui-structure-header .gui-header .gui-header-cell:hover{background:#525252}.gui-dark .gui-structure-header .gui-header .gui-header-cell:hover .gui-header-menu .gui-header-menu-icon-wrapper{background-color:#525252}.gui-dark .gui-inline-dialog-header-menu .gui-header-menu-tab .gui-tab .gui-tab-menu .gui-tab-menu-list{background:#383838}.gui-dark .gui-inline-dialog-header-menu .gui-header-menu-tab .gui-tab .gui-tab-menu .gui-tab-menu-item{color:#f0f0f0}.gui-dark .gui-inline-dialog-header-menu .gui-header-menu-tab .gui-tab .gui-tab-menu .gui-tab-menu-item:hover{background:#525252}.gui-dark .gui-inline-dialog-header-menu .gui-header-menu-tab .gui-tab .gui-tab-menu .gui-tab-menu-item.gui-active{color:#ce93d8}.gui-dark .gui-inline-dialog-header-menu .gui-header-menu-tab .gui-tab .gui-tab-content{box-shadow:0 1px 2px #525252}.gui-dark .gui-inline-dialog-header-menu .gui-header-menu-tab .gui-tab .gui-structure-column-manager ol li:hover{background:#525252}.gui-dark .gui-inline-dialog-header-menu .gui-header-menu-tab .gui-header-menu-column-move{color:#f0f0f0}.gui-dark .gui-inline-dialog-header-menu .gui-header-menu-tab .gui-header-menu-column-move .gui-header-menu-column-move-item:hover{background:#525252}.gui-dark .gui-inline-dialog-header-menu .gui-header-menu-tab .gui-header-menu-column-move .gui-header-menu-column-move-item:hover svg line{stroke:#ce93d8}.gui-dark .gui-inline-dialog-header-menu .gui-header-menu-tab .gui-tab-item-dropdown .gui-header-menu-dropdown.gui-dropdown .gui-dropdown-container .gui-dropdown-menu{border-color:#666}.gui-dark .gui-inline-dialog-header-menu .gui-header-menu-tab .gui-tab-item-dropdown .gui-header-menu-dropdown.gui-dropdown .gui-dropdown-container .gui-dropdown-menu .gui-item:hover svg line{stroke:#ce93d8}.gui-dark .gui-inline-dialog-header-menu .gui-header-menu-tab .gui-tab-item-dropdown .gui-header-menu-dropdown.gui-dropdown .gui-dropdown-container:hover{background:#525252}.gui-dark .gui-inline-dialog-header-menu .gui-header-menu-tab .gui-tab-item-dropdown .gui-header-menu-dropdown.gui-dropdown .gui-item{background:#383838;color:#f0f0f0;display:-ms-flexbox;display:flex}.gui-dark .gui-inline-dialog-header-menu .gui-header-menu-tab .gui-tab-item-dropdown .gui-header-menu-dropdown.gui-dropdown .gui-item:hover{background:#525252}.gui-dark .gui-inline-dialog-header-menu .gui-header-menu-tab .gui-header-menu-item{color:#f0f0f0}.gui-dark .gui-inline-dialog-header-menu .gui-header-menu-tab .gui-header-menu-item:hover{background:#525252}.gui-dark .gui-inline-dialog-header-menu .gui-header-menu-tab .gui-checkbox{color:#f0f0f0}.gui-dark .gui-structure-column-manager>div:hover{background:#525252}.gui-dark .gui-structure-container .gui-structure-container-element .gui-content .gui-row:hover{background:#525252}.gui-dark .gui-structure-container .gui-structure-container-element .gui-content .gui-row.selected{background:rgba(124,185,246,.3215686275)}.gui-dark.gui-rows-odd .gui-row.odd,.gui-dark.gui-rows-even .gui-row.even{background:#4f4f4f}.gui-dark .gui-horizontal-grid .gui-structure-container-element .gui-row .gui-cell{border-bottom-color:#666}.gui-dark .gui-paging.gui-paging-bottom{border-top-color:#666}.gui-dark .gui-paging.gui-paging-top{border-bottom-color:#666}.gui-dark ::-webkit-scrollbar{width:15px}.gui-dark ::-webkit-scrollbar-track{background:#616161}.gui-dark ::-webkit-scrollbar-thumb{background:#424242}.gui-dark ::-webkit-scrollbar-thumb:hover{background:#212121}.gui-dark .gui-structure-top-panel,.gui-dark .gui-structure-info-panel,.gui-dark .gui-paging,.gui-dark .gui-structure-container-element,.gui-dark .gui-row{background:#444}.gui-dark .gui-structure-top-panel,.gui-dark .gui-structure-info-panel,.gui-dark .gui-paging{height:42px;padding-left:16px;padding-right:16px}.gui-dark .gui-structure-summaries-cell{background:#383838;color:#f0f0f0}.gui-dark .gui-structure-summaries-panel-bottom .gui-structure-summaries-cell{border-top-color:#666}.gui-dark .gui-structure-summaries-panel-top .gui-structure-summaries-cell{border-bottom-color:#666}.gui-dark .gui-structure-info-panel{background:#383838;border-top-color:#666}.gui-dark .gui-structure-info-panel div{color:#f0f0f0}.gui-dark .gui-structure-info-panel div button{background:#616161}.gui-dark .gui-structure-info-panel p,.gui-dark .gui-structure-info-modal p{color:#f0f0f0}.gui-dark gui-paging-alternative-navigator .gui-button{background:transparent;color:#f0f0f0;margin:0 4px;padding:0}.gui-dark gui-paging-alternative-navigator .gui-button:hover{background:transparent}.gui-dark gui-paging-alternative-navigator .gui-button:disabled{background:transparent;color:#f0f0f0;opacity:.4}.gui-dark gui-paging-alternative-navigator gui-paging-alternative-pages .gui-paging-active-page{box-shadow:0 1px #f0f0f0;color:#f0f0f0}.gui-dark .gui-search-bar form{background:#444}.gui-dark .gui-search-bar input{background:#444;border:0;color:#f0f0f0;cursor:pointer}.gui-dark .gui-search-bar:hover .gui-search-icon-svg line,.gui-dark .gui-search-bar:hover .gui-search-icon-svg circle{stroke:#878787}.gui-dark .gui-icon{cursor:pointer}.gui-dark .gui-icon svg{stroke:#aaa;transition:stroke .3s ease-in-out}.gui-dark .gui-icon svg:hover{stroke:#e6e6e6!important}.gui-dark .gui-empty-source div{background:#383838}.gui-dark .gui-dialog-wrapper .gui-dialog-content .gui-schema-manager-dialog .gui-dialog-title{color:#f0f0f0}.gui-dark .gui-title-panel,.gui-dark .gui-footer-panel{background:#383838}.gui-dark .gui-structure-ordered-list li:hover{background:#525252}\\n\", \".gui-light{border-color:#f0f0f0;font-family:Arial;font-size:14px}.gui-light *{border-color:#f0f0f0}.gui-light.gui-structure-border{border:0}.gui-light.gui-structure,.gui-light .gui-header{background:#fff;color:#333;font-family:Arial}.gui-light .gui-header-cell,.gui-light .gui-structure-header-columns{height:56px}.gui-light.gui-structure-border{border-color:#f0f0f0 transparent}.gui-light .gui-header-cell,.gui-light .gui-structure-container-element .gui-structure-cell>span{padding-left:16px;padding-right:16px}.gui-light .gui-structure-header .gui-header{color:#333;font-weight:700}.gui-light .gui-structure-header .gui-header .gui-header-cell:hover{background:#f3f9ff}.gui-light .gui-structure-header .gui-header .gui-header-cell:hover .gui-header-menu .gui-header-menu-icon-wrapper{background-color:#f3f9ff}.gui-light .gui-structure-container .gui-structure-container-element .gui-content .gui-row:hover{background:#f3f9ff}.gui-light .gui-structure-container .gui-structure-container-element .gui-content .gui-row.selected{background:rgba(124,185,246,.3215686275)}.gui-light.gui-rows-odd .gui-row.odd,.gui-light.gui-rows-even .gui-row.even{background:#f7f7f7}.gui-light gui-paging-alternative-navigator .gui-button{background:transparent;color:#333;margin:0 4px;padding:0}.gui-light gui-paging-alternative-navigator .gui-button:hover{background:transparent}.gui-light gui-paging-alternative-navigator .gui-button:disabled{background:transparent;color:#333;opacity:.4}.gui-light .gui-structure-top-panel,.gui-light .gui-structure-info-panel,.gui-light .gui-paging{height:56px;padding-left:16px;padding-right:16px}.gui-light .gui-structure-top-panel,.gui-light .gui-structure-info-panel,.gui-light .gui-paging,.gui-light .gui-structure-summaries-panel{background:#fff}.gui-light .gui-search-bar form input{border:0;outline:none}\\n\", \".gui-structure.gui-generic{border-color:#2224261a;font-family:Arial;font-size:14px}.gui-structure.gui-generic *{border-color:#2224261a}.gui-structure.gui-generic .gui-header-cell,.gui-structure.gui-generic .gui-structure-header-columns{height:46px}.gui-structure.gui-generic .gui-header .gui-header-cell.gui-header-sortable:hover{background:rgba(0,0,0,.04);transition:.15s all}.gui-structure.gui-generic .gui-header-cell,.gui-structure.gui-generic .gui-structure-container-element .gui-structure-cell>span{padding-left:12px;padding-right:12px}.gui-structure.gui-generic .gui-structure-container-element .gui-structure-cell:last-child>span{padding-right:20px}.gui-structure.gui-generic .gui-structure-header.gui-header-bottom .gui-header{border-color:inherit;border-style:solid;border-width:2px 0 0}.gui-structure.gui-generic .gui-structure-container .gui-structure-container-element .gui-content .gui-row:hover{background:rgba(0,0,0,.04)}.gui-structure.gui-generic .gui-structure-container .gui-structure-container-element .gui-content .gui-row.selected{background:#e6f7ff}.gui-structure.gui-generic .gui-structure-header .gui-header{background:#f9fafb;border-width:0 0 2px;color:#464646;font-weight:700}.gui-structure.gui-generic .gui-rows-odd .gui-row.odd,.gui-structure.gui-generic .gui-rows-even .gui-row.even{background:#f9fafb}.gui-structure.gui-generic .gui-cell .gui-button,.gui-structure.gui-generic .gui-cell .gui-badge{padding:0}.gui-structure.gui-generic .gui-paging-alternative-navigator .gui-button{background:transparent;color:#333;margin:0 4px;padding:0}.gui-structure.gui-generic .gui-paging-alternative-navigator .gui-button:hover{background:transparent}.gui-structure.gui-generic .gui-paging-alternative-navigator .gui-button:disabled{background:transparent;color:#ccc;opacity:.4}.gui-structure.gui-generic .gui-structure-summaries-panel{background:#f9fafb}.gui-structure.gui-generic .gui-structure-top-panel,.gui-structure.gui-generic .gui-structure-info-panel,.gui-structure.gui-generic .gui-paging{height:46px;padding-left:12px;padding-right:12px}.gui-structure.gui-generic .gui-structure-info-panel{background:#f9fafb;border-radius:0}.gui-structure.gui-generic .gui-structure-top-panel{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;padding-right:0}.gui-structure.gui-generic .gui-structure-top-panel .gui-search-bar form input{border:0;outline:0}.gui-structure.gui-generic .gui-rows-odd gui-row.odd,.gui-structure.gui-generic .gui-rows-even .gui-row.even{background:#f9fafb}.gui-structure.gui-generic .gui-row:hover{background:#f9fafb;transition:.15s all}\\n\"], dependencies: [{ kind: \"directive\", type: i4.NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }, { kind: \"directive\", type: i4.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { kind: \"component\", type: i1$1.FabricSpinnerComponent, selector: \"gui-spinner\", inputs: [\"color\"] }, { kind: \"component\", type: StructureBlueprintComponent, selector: \"div[gui-structure-blueprint]\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureComponent, decorators: [{\n type: Component,\n args: [{ selector: 'gui-structure', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {\n '[class.gui-structure-border]': 'isBorderEnabled()',\n '[id]': 'structureId.toString()'\n }, providers: [\n {\n provide: StructureId,\n useFactory: structureIdFactoryForGrid,\n deps: [\n StructureIdGenerator\n ]\n },\n {\n provide: CompositionId,\n useFactory: compositionIdFactoryForGrid,\n deps: [\n StructureIdGenerator\n ]\n },\n {\n provide: SchemaReadModelRootId,\n useFactory: schemaIdFactoryForGrid,\n deps: [\n StructureIdGenerator\n ]\n },\n SchemaCssClassManager,\n StructureCellEditCloseAllService,\n StructureCellEditStore,\n StructureEditModeArchive,\n StructureInfoPanelArchive,\n StructureInfoPanelConfigService,\n StructureColumnMenuConfigArchive,\n PagingFeatureModule.forComponent(),\n TranslationFeatureModule.forComponent(),\n StructureHeaderTopEnabledArchive,\n StructureHeaderBottomEnabledArchive,\n StructureRowDetailConfigArchive,\n StructureRowDetailService,\n StructureTitlePanelConfigArchive,\n StructureFooterPanelConfigArchive,\n {\n provide: structureComponentToken,\n useExisting: StructureComponent\n },\n {\n provide: filterContainerToken,\n useExisting: StructureComponent\n }\n ], template: \"
\\n\\n\\n
\\n\\t\\n\\t\\n
\\n\", styles: [\".gui-box-border{box-sizing:border-box}.gui-bg-transparent{background-color:transparent}.gui-border{border-width:1px}.gui-border-0{border-width:0}.gui-border-b{border-bottom-width:1px}.gui-border-t{border-top-width:1px}.gui-border-solid{border-style:solid}.gui-border-b-solid{border-bottom-style:solid}.gui-border-t-solid{border-top-style:solid}.gui-border-none{border-style:none}.gui-rounded{border-radius:4px}.gui-cursor-pointer{cursor:pointer}.gui-block{display:block}.gui-inline-block{display:inline-block}.gui-inline{display:inline}.gui-flex{display:-ms-flexbox;display:flex}.gui-hidden{display:none}.gui-display-grid{display:grid}.gui-flex-row{-ms-flex-direction:row;flex-direction:row}.gui-flex-row-reverse{-ms-flex-direction:row-reverse;flex-direction:row-reverse}.gui-flex-col{-ms-flex-direction:column;flex-direction:column}.gui-flex-col-reverse{-ms-flex-direction:column-reverse;flex-direction:column-reverse}.gui-justify-start{-ms-flex-pack:start;justify-content:flex-start}.gui-justify-end{-ms-flex-pack:end;justify-content:flex-end}.gui-justify-center{-ms-flex-pack:center;justify-content:center}.gui-justify-between{-ms-flex-pack:justify;justify-content:space-between}.gui-justify-around{-ms-flex-pack:distribute;justify-content:space-around}.gui-justify-evenly{-ms-flex-pack:space-evenly;justify-content:space-evenly}.gui-items-start{-ms-flex-align:start;align-items:flex-start}.gui-items-end{-ms-flex-align:end;align-items:flex-end}.gui-items-center{-ms-flex-align:center;align-items:center}.gui-items-between{-ms-flex-align:space-between;align-items:space-between}.gui-items-around{-ms-flex-align:space-around;align-items:space-around}.gui-items-evenly{-ms-flex-align:space-evenly;align-items:space-evenly}.gui-flex-wrap{-ms-flex-wrap:wrap;flex-wrap:wrap}.gui-flex-wrap-reverse{-ms-flex-wrap:wrap-reverse;flex-wrap:wrap-reverse}.gui-flex-nowrap{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.gui-grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.gui-grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.gui-grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.gui-grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.gui-grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.gui-grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.gui-grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}.gui-grid-cols-8{grid-template-columns:repeat(8,minmax(0,1fr))}.gui-grid-cols-9{grid-template-columns:repeat(9,minmax(0,1fr))}.gui-grid-rows-1{grid-template-rows:repeat(1,minmax(0,1fr))}.gui-grid-rows-2{grid-template-rows:repeat(2,minmax(0,1fr))}.gui-grid-rows-3{grid-template-rows:repeat(3,minmax(0,1fr))}.gui-grid-rows-4{grid-template-rows:repeat(4,minmax(0,1fr))}.gui-grid-rows-5{grid-template-rows:repeat(5,minmax(0,1fr))}.gui-grid-rows-6{grid-template-rows:repeat(6,minmax(0,1fr))}.gui-grid-rows-7{grid-template-rows:repeat(7,minmax(0,1fr))}.gui-grid-rows-8{grid-template-rows:repeat(8,minmax(0,1fr))}.gui-grid-rows-9{grid-template-rows:repeat(9,minmax(0,1fr))}.gui-grid-rows-gap-0{grid-row-gap:0}.gui-grid-rows-gap-1{grid-row-gap:1px}.gui-grid-rows-gap-2{grid-row-gap:2px}.gui-grid-rows-gap-3{grid-row-gap:3px}.gui-grid-rows-gap-4{grid-row-gap:4px}.gui-grid-rows-gap-5{grid-row-gap:6px}.gui-grid-rows-gap-6{grid-row-gap:8px}.gui-grid-rows-gap-7{grid-row-gap:10px}.gui-grid-rows-gap-8{grid-row-gap:12px}.gui-grid-rows-gap-10{grid-row-gap:16px}.gui-grid-rows-gap-13{grid-row-gap:22px}.gui-grid-rows-gap-23{grid-row-gap:42px}.gui-grid-cols-gap-0{grid-column-gap:0}.gui-grid-cols-gap-1{grid-column-gap:1px}.gui-grid-cols-gap-2{grid-column-gap:2px}.gui-grid-cols-gap-3{grid-column-gap:3px}.gui-grid-cols-gap-4{grid-column-gap:4px}.gui-grid-cols-gap-5{grid-column-gap:6px}.gui-grid-cols-gap-6{grid-column-gap:8px}.gui-grid-cols-gap-7{grid-column-gap:10px}.gui-grid-cols-gap-8{grid-column-gap:12px}.gui-grid-cols-gap-10{grid-column-gap:16px}.gui-grid-cols-gap-13{grid-column-gap:22px}.gui-grid-cols-gap-23{grid-column-gap:42px}.gui-h-full{height:100%}.gui-list-none{list-style-type:none}.gui-m-0{margin:0}.gui-mx-0{margin-left:0;margin-right:0}.gui-my-0{margin-bottom:0;margin-top:0}.-gui-m-0{margin:0}.-gui-mx-0{margin-left:0;margin-right:0}.-gui-my-0{margin-bottom:0;margin-top:0}.gui-m-1{margin:1px}.gui-mx-1{margin-left:1px;margin-right:1px}.gui-my-1{margin-bottom:1px;margin-top:1px}.-gui-m-1{margin:-1px}.-gui-mx-1{margin-left:-1px;margin-right:-1px}.-gui-my-1{margin-bottom:-1px;margin-top:-1px}.gui-m-2{margin:2px}.gui-mx-2{margin-left:2px;margin-right:2px}.gui-my-2{margin-bottom:2px;margin-top:2px}.-gui-m-2{margin:-2px}.-gui-mx-2{margin-left:-2px;margin-right:-2px}.-gui-my-2{margin-bottom:-2px;margin-top:-2px}.gui-m-3{margin:3px}.gui-mx-3{margin-left:3px;margin-right:3px}.gui-my-3{margin-bottom:3px;margin-top:3px}.-gui-m-3{margin:-3px}.-gui-mx-3{margin-left:-3px;margin-right:-3px}.-gui-my-3{margin-bottom:-3px;margin-top:-3px}.gui-m-4{margin:4px}.gui-mx-4{margin-left:4px;margin-right:4px}.gui-my-4{margin-bottom:4px;margin-top:4px}.-gui-m-4{margin:-4px}.-gui-mx-4{margin-left:-4px;margin-right:-4px}.-gui-my-4{margin-bottom:-4px;margin-top:-4px}.gui-m-5{margin:6px}.gui-mx-5{margin-left:6px;margin-right:6px}.gui-my-5{margin-bottom:6px;margin-top:6px}.-gui-m-5{margin:-6px}.-gui-mx-5{margin-left:-6px;margin-right:-6px}.-gui-my-5{margin-bottom:-6px;margin-top:-6px}.gui-m-6{margin:8px}.gui-mx-6{margin-left:8px;margin-right:8px}.gui-my-6{margin-bottom:8px;margin-top:8px}.-gui-m-6{margin:-8px}.-gui-mx-6{margin-left:-8px;margin-right:-8px}.-gui-my-6{margin-bottom:-8px;margin-top:-8px}.gui-m-7{margin:10px}.gui-mx-7{margin-left:10px;margin-right:10px}.gui-my-7{margin-bottom:10px;margin-top:10px}.-gui-m-7{margin:-10px}.-gui-mx-7{margin-left:-10px;margin-right:-10px}.-gui-my-7{margin-bottom:-10px;margin-top:-10px}.gui-m-8{margin:12px}.gui-mx-8{margin-left:12px;margin-right:12px}.gui-my-8{margin-bottom:12px;margin-top:12px}.-gui-m-8{margin:-12px}.-gui-mx-8{margin-left:-12px;margin-right:-12px}.-gui-my-8{margin-bottom:-12px;margin-top:-12px}.gui-m-10{margin:16px}.gui-mx-10{margin-left:16px;margin-right:16px}.gui-my-10{margin-bottom:16px;margin-top:16px}.-gui-m-10{margin:-16px}.-gui-mx-10{margin-left:-16px;margin-right:-16px}.-gui-my-10{margin-bottom:-16px;margin-top:-16px}.gui-m-13{margin:22px}.gui-mx-13{margin-left:22px;margin-right:22px}.gui-my-13{margin-bottom:22px;margin-top:22px}.-gui-m-13{margin:-22px}.-gui-mx-13{margin-left:-22px;margin-right:-22px}.-gui-my-13{margin-bottom:-22px;margin-top:-22px}.gui-m-23{margin:42px}.gui-mx-23{margin-left:42px;margin-right:42px}.gui-my-23{margin-bottom:42px;margin-top:42px}.-gui-m-23{margin:-42px}.-gui-mx-23{margin-left:-42px;margin-right:-42px}.-gui-my-23{margin-bottom:-42px;margin-top:-42px}.gui-mb-4{margin-bottom:4px}.gui-mb-6{margin-bottom:8px}.gui-mb-8{margin-bottom:12px}.gui-mb-10{margin-bottom:16px}.gui-mb-18{margin-bottom:32px}.gui-mr-0{margin-right:0}.gui-mr-5{margin-right:6px}.gui-mr-auto{margin-right:auto}.gui-ml-auto{margin-left:auto}.gui-ml-6{margin-left:8px}.gui-mt-0{margin-top:0}.gui-mt-4{margin-top:4px}.gui-mt-6{margin-top:8px}.gui-mt-10{margin-top:16px}.gui-mt-14{margin-top:24px}.gui-overflow-hidden{overflow:hidden}.gui-overflow-y-scroll{overflow-y:scroll}.gui-overflow-x-hidden{overflow-x:hidden}.gui-overflow-auto{overflow:auto}.gui-p-0{padding:0}.gui-px-0{padding-left:0;padding-right:0}.gui-py-0{padding-bottom:0;padding-top:0}.gui-p-1{padding:1px}.gui-px-1{padding-left:1px;padding-right:1px}.gui-py-1{padding-bottom:1px;padding-top:1px}.gui-p-2{padding:2px}.gui-px-2{padding-left:2px;padding-right:2px}.gui-py-2{padding-bottom:2px;padding-top:2px}.gui-p-3{padding:3px}.gui-px-3{padding-left:3px;padding-right:3px}.gui-py-3{padding-bottom:3px;padding-top:3px}.gui-p-4{padding:4px}.gui-px-4{padding-left:4px;padding-right:4px}.gui-py-4{padding-bottom:4px;padding-top:4px}.gui-p-5{padding:6px}.gui-px-5{padding-left:6px;padding-right:6px}.gui-py-5{padding-bottom:6px;padding-top:6px}.gui-p-6{padding:8px}.gui-px-6{padding-left:8px;padding-right:8px}.gui-py-6{padding-bottom:8px;padding-top:8px}.gui-p-7{padding:10px}.gui-px-7{padding-left:10px;padding-right:10px}.gui-py-7{padding-bottom:10px;padding-top:10px}.gui-p-8{padding:12px}.gui-px-8{padding-left:12px;padding-right:12px}.gui-py-8{padding-bottom:12px;padding-top:12px}.gui-p-10{padding:16px}.gui-px-10{padding-left:16px;padding-right:16px}.gui-py-10{padding-bottom:16px;padding-top:16px}.gui-p-13{padding:22px}.gui-px-13{padding-left:22px;padding-right:22px}.gui-py-13{padding-bottom:22px;padding-top:22px}.gui-p-23{padding:42px}.gui-px-23{padding-left:42px;padding-right:42px}.gui-py-23{padding-bottom:42px;padding-top:42px}.gui-pr-10{padding-right:16px}.gui-pl-9{padding-right:10px}.gui-pb-6{padding-bottom:8px}.gui-pb-12{padding-bottom:20px}.gui-pl-21{padding-left:38px}.gui-pt-4{padding-top:4px}.gui-pt-6{padding-top:8px}.gui-pt-10{padding-top:16px}.gui-pt-12{padding-top:20px}.gui-pt-14{padding-top:24px}.gui-static{position:static}.gui-fixed{position:fixed}.gui-relative{position:relative}.gui-absolute{position:absolute}.gui-text-xxs{font-size:11px}.gui-text-xs{font-size:12px}.gui-text-sm{font-size:13px}.gui-text-base{font-size:14px}.gui-text-lg{font-size:16px}.gui-text-xl{font-size:18px}.gui-text-2xl{font-size:20px}.gui-text-3xl{font-size:22px}.gui-leading-4{line-height:16px}.gui-leading-6{line-height:24px}.gui-font-thin{font-weight:100}.gui-font-extralight{font-weight:200}.gui-font-light{font-weight:300}.gui-font-normal{font-weight:400}.gui-font-medium{font-weight:500}.gui-font-semibold{font-weight:600}.gui-font-bold{font-weight:700}.gui-font-extrabold{font-weight:800}.gui-font-black{font-weight:900}.gui-not-italic{font-style:normal}.gui-whitespace-nowrap{white-space:nowrap}.gui-overflow-ellipsis{text-overflow:ellipsis}.gui-no-underline{text-decoration:none}.gui-text-center{text-align:center}.gui-w-full{width:100%}.gui-w-96{width:384px}.gui-w-3\\\\/5{width:60%}.gui-structure *,.gui-structure *:after,.gui-structure *:before{box-sizing:border-box}.gui-structure input{font-size:13px;outline:0}.gui-bold{font-weight:700}.gui-italic{font-style:italic}.gui-bar-view{width:100%}.gui-align-right{display:-ms-flexbox;display:flex;-ms-flex-pack:end;justify-content:flex-end;text-align:right;width:100%}.gui-align-left{text-align:left;width:100%}.gui-align-center{-ms-flex-pack:center;justify-content:center;text-align:center;width:100%}.gui-icon{cursor:pointer}.gui-icon svg{fill:#aaa;stroke:#aaa;transition:stroke .3s ease-in-out}.gui-icon svg:hover{fill:#464646!important;stroke:#464646!important}.gui-view-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gui-percentage-bar{background:#deebff;border-radius:4px;box-shadow:inset 1px 1px 2px #ccc;color:#0747a6;height:22px;padding:4px;position:relative;text-align:center;width:100%}.gui-percentage-bar .gui-percentage{background:#8abcfc;border-radius:4px;height:22px;left:0;position:absolute;top:0}.gui-percentage-bar .gui-percentage-view{color:#031d44;position:relative;width:100%}.gui-clear-search-icon{cursor:pointer;height:16px;position:absolute;right:8px;top:50%;-ms-transform:translateY(-50%);transform:translateY(-50%);width:16px}.gui-clear-search-icon:before,.gui-clear-search-icon:after{background-color:#aaa;border-radius:8px;content:\\\" \\\";height:16px;left:7px;position:absolute;width:2px}.gui-clear-search-icon:before{-ms-transform:rotate(45deg);transform:rotate(45deg)}.gui-clear-search-icon:after{-ms-transform:rotate(-45deg);transform:rotate(-45deg)}.gui-clear-search-icon:hover:before,.gui-clear-search-icon:hover:after{background-color:#464646}\\n\", \".gui-structure,.gui-structure *{border-color:#d6d6d6;font-size:14px}.gui-structure input{color:#333;font-family:Arial}.gui-header{background:#f2f3f4;border-bottom:1px solid;border-color:inherit;height:36px}.gui-header .gui-header-cell.gui-header-sortable{cursor:pointer}.gui-header .gui-header-cell.gui-header-sortable:hover{background:#e6e7e8}.gui-header .gui-header-cell .gui-header-menu-icon{display:none}.gui-header .gui-header-cell:hover .gui-header-menu{cursor:pointer}.gui-header .gui-header-cell:hover .gui-header-menu .gui-header-menu-icon-wrapper .gui-header-menu-icon{display:block}.gui-header .gui-header-cell:last-of-type{border-right:0}.gui-header .gui-header-cell .gui-header-title{display:-ms-flexbox;display:flex;line-height:1.4em}.gui-header .gui-header-cell .gui-header-menu{display:-ms-flexbox;display:flex}.gui-header .gui-header-cell .gui-header-menu .gui-header-menu-icon-wrapper{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;height:16px;padding:16px;position:relative;right:0;width:16px}.gui-header .gui-header-cell .gui-header-menu .gui-header-menu-icon-wrapper .gui-header-menu-icon{display:none;height:16px;width:16px}.gui-header-bottom .gui-header{border-bottom:0;border-color:inherit;border-top:1px solid}.gui-structure{background:#fff;border-color:#d6d6d6;box-sizing:border-box;color:#333;display:block;font-family:Arial;font-size:14px;position:relative}.gui-structure *{box-sizing:border-box}.gui-structure .gui-structure-header{display:block;height:100%;width:100%}.gui-structure .gui-structure-header .gui-structure-header-filters.gui-header{height:32px}.gui-structure .gui-structure-header .gui-structure-header-filters.gui-header .gui-header-cell{padding:4px}.gui-structure .gui-structure-header .gui-structure-header-filters.gui-header .gui-header-cell input{box-sizing:border-box;height:100%;padding:2px;position:relative;width:100%;border-color:#d6d6d6;border-style:solid;border-width:1px;font-size:13px}.gui-structure-container{display:block;height:100%;overflow:auto;overflow-x:hidden;position:relative;width:100%}.gui-structure-container .gui-structure-container-element{height:100%;position:absolute;width:100%}.gui-structure-container .gui-structure-container-element .gui-content{height:100%;position:relative}.gui-structure-container .gui-structure-container-element .gui-content .gui-row{border-bottom:1px solid transparent;position:absolute;width:100%}.gui-structure-container .gui-structure-container-element .gui-content .gui-row:last-child{border-bottom:0}.gui-structure-container .gui-structure-container-element .gui-content .gui-row:hover{background:#ecedee}.gui-structure-container .gui-structure-container-element .gui-content .gui-row.selected{background:#d0e8fb}.gui-structure-container .gui-structure-container-element .gui-content .gui-row .gui-cell{border-right:1px solid transparent;box-sizing:border-box;line-height:1em;overflow:hidden;padding:0;white-space:nowrap}.gui-structure-container .gui-structure-container-element .gui-content .gui-row .gui-cell .gui-cell-view span{line-height:1.4em}.gui-structure-container .gui-structure-container-element .gui-content .gui-row .gui-cell .gui-button{padding:0}.gui-structure-container .gui-structure-container-element .gui-content .gui-row .gui-cell .gui-cell-boolean{-ms-flex-pack:center;justify-content:center}.gui-structure-container .gui-structure-container-element .gui-content .gui-row .gui-cell .gui-checkbox{line-height:24px;position:relative}.gui-structure-container .gui-structure-container-element .gui-content .gui-row .gui-cell .gui-checkbox input{position:relative}.gui-structure-container .gui-structure-container-element .gui-content .gui-row .gui-cell .gui-chip{line-height:1em;margin:0;padding:4px 8px}.gui-structure-container .gui-structure-container-element .gui-content .gui-row .gui-cell .gui-badge{padding:0}.gui-structure-container .gui-structure-container-element .gui-content .gui-row .gui-cell .gui-input{background:transparent;font-size:14px;padding:0;border-radius:0;border-style:none}.gui-structure-container .gui-cell{display:inline-block}.gui-structure-container .gui-cell:last-child .gui-cell-view{padding-right:20px}.gui-structure-container .gui-cell>span{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;height:100%;padding:0 8px;width:100%}.gui-structure-container .gui-cell .gui-cell-edit-mode{border:2px solid #2185d0;height:100%;padding:6px}.gui-structure-container .gui-cell .gui-cell-edit-mode .gui-boolean-edit{margin-left:calc(50% - 11px)}.gui-structure-container .gui-cell .gui-cell-edit-mode input:focus{box-shadow:none;outline:none}.gui-vertical-grid .gui-structure-summaries-cell,.gui-vertical-grid .gui-structure-container-element .gui-content .gui-row .gui-cell,.gui-vertical-grid .gui-structure-header .gui-header .gui-header-cell{border-right:1px solid;border-right-color:inherit}.gui-vertical-grid .gui-structure-container-element .gui-content .gui-row .gui-cell:last-of-type,.gui-vertical-grid .gui-structure-header .gui-header .gui-header-cell:last-of-type{border-right:0}.gui-vertical-grid .gui-row-checkbox{border-right:1px solid!important;border-right-color:inherit!important}.gui-horizontal-grid .gui-structure-container-element .gui-content .gui-row{border-bottom:1px solid;border-bottom-color:inherit}.gui-horizontal-grid .gui-structure-container-element .gui-content .gui-row:last-of-type{border-bottom:0}.gui-rows-even .gui-row.even,.gui-rows-odd .gui-row.odd{background:#f7f8f9}.gui-structure-info-panel{-ms-flex-align:center;align-items:center;background:#f2f3f4;box-sizing:border-box;display:-ms-flexbox;display:flex;height:36px;-ms-flex-pack:justify;justify-content:space-between;padding:0 6px;width:100%;border-top-color:inherit;border-top-style:solid;border-top-width:1px}.gui-structure-info-panel p{margin:0}.gui-structure-info-panel p b{font-weight:700}.gui-structure-info-panel div button{background:#ccc;color:#fff;cursor:pointer;font-family:Arial;font-weight:700;height:16px;line-height:14px;padding:0;width:16px;border-color:transparent;border-radius:50%;border-style:solid;border-width:1px}.gui-structure-info-panel div button:focus{box-shadow:0 0 4px #ccc;outline:none}.gui-structure-border{border:1px solid;border-color:#d6d6d6}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}.gui-loading{-ms-flex-line-pack:center;align-content:center;animation-duration:.2s;background:rgba(255,255,255,.8);border:1px solid;border-color:inherit;display:-ms-flexbox;display:flex;height:100%;-ms-flex-pack:center;justify-content:center;left:0;opacity:0;position:absolute;top:0;visibility:hidden;width:100%}.gui-loading .gui-spinner{-ms-flex-item-align:center;align-self:center}.gui-loading.gui-loader-hidden{animation-name:fadeOut;opacity:0;visibility:visible;z-index:-1}.gui-loading.gui-loader-visible{animation-name:fadeIn;opacity:1;visibility:visible;z-index:1}.gui-text-highlight{background:#fff799;padding:0!important}.gui-title-panel{border-bottom-color:#d6d6d6}.gui-footer-panel{border-top-color:#d6d6d6}.gui-structure-schema-manager-icon{margin-right:16px}.gui-structure-schema-manager-icon svg{height:18px;margin-bottom:-1px;width:18px}.gui-row-radio{-ms-flex-align:center;align-items:center;cursor:pointer;display:-ms-flexbox!important;display:flex!important;-ms-flex-pack:center;justify-content:center;padding:0 12px!important;width:48px!important}.gui-row-radio .gui-radio-button{height:24px;margin:0;padding:0;width:24px}.gui-row-checkbox{-ms-flex-align:center;align-items:center;cursor:pointer;display:-ms-flexbox!important;display:flex!important;-ms-flex-pack:center;justify-content:center;padding:0 12px!important;width:48px!important}.gui-row-checkbox .gui-checkbox{height:24px;margin:0;padding:0;width:24px}.gui-select-all .gui-checkbox .gui-checkmark{top:0}.gui-structure-cell-edit-boolean{height:100%}.gui-column-highlighted{background:#fffddd}.gui-structure-column-manager>div:hover{background:#ecedee}.gui-structure-column-manager label{margin-bottom:0}.gui-structure-ordered-list li:hover{background:#ecedee}\\n\", \".gui-structure-column-menu-icon svg{height:16px;width:16px}.gui-structure-column-menu-icon .cls-1{fill:none;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.5px}.gui-structure-column-menu-arrow-icon{display:inline-block}.gui-structure-column-menu-arrow-icon svg{height:10px;width:12px}.gui-structure-column-menu-arrow-icon .gui-structure-column-menu-sort-icon svg{height:16px}.gui-structure-column-menu-arrow-icon .cls-1{fill:none;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.5px}\\n\", \".gui-summaries-value{font-weight:700}.gui-structure-summaries-panel{background:#f2f3f4}.gui-structure-summaries-panel.gui-structure-summaries-panel-bottom .gui-structure-summaries-cell{border-top:1px solid #d6d6d6}.gui-structure-summaries-panel.gui-structure-summaries-panel-top .gui-structure-summaries-cell{border-bottom:1px solid #d6d6d6}.gui-structure-summaries-panel .gui-structure-summaries-cell{font-size:14px;padding-left:16px;padding-right:16px}.gui-structure-summaries-panel .gui-structure-summaries-cell:last-child{padding-right:20px}.gui-structure-summaries-panel .gui-structure-summaries-value{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;line-height:1em;overflow:hidden;padding:8px 0}.gui-structure-summaries-panel .gui-structure-summaries-value div .gui-math-symbol{position:relative;top:-1px}.gui-structure-summaries-panel .gui-structure-summaries-value .gui-mean,.gui-structure-summaries-panel .gui-structure-summaries-value .gui-median{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;position:relative}.gui-structure-summaries-panel .gui-structure-summaries-value .gui-mean span:nth-child(1){left:1px;position:absolute;top:-15px}.gui-structure-summaries-panel .gui-structure-summaries-value .gui-median span:nth-child(1){left:1px;position:absolute;top:-8px}\\n\", \".gui-structure-column-manager-icon svg{height:16px;width:16px}.gui-structure-column-manager-icon .cls-1,.gui-structure-column-manager-icon .cls-2{fill:none;stroke-linecap:round;stroke-linejoin:round}.gui-structure-column-manager-icon .cls-2{stroke-width:1.5px}.gui-structure-info-icon svg{height:16px;width:16px}.gui-structure-info-icon .cls-1{stroke-width:0}.gui-structure-info-icon .cls-2{fill:none;stroke-linecap:round;stroke-linejoin:round}.gui-structure-info-panel div,.gui-structure-info-panel div button{display:inline-block}.gui-structure-info-panel .gui-right-section .gui-structure-column-manager-icon{margin-right:16px;position:relative}.gui-structure-info-panel .gui-right-section .gui-structure-info-icon{margin-right:4px;position:relative}.gui-structure-info-modal .gui-quote{color:#575757}.gui-structure-info-modal p{color:#333}.gui-structure-info-modal a{color:#2185d0}.gui-structure-info-modal a:hover{color:#59a9e5;text-decoration:underline}\\n\", \"@media (max-width: 500px){.gui-paging>*{padding-left:4px}.gui-paging .gui-paging-stats{padding-left:4px}}\\n\", \".gui-header{display:-ms-flexbox;display:flex}.gui-header .gui-header-cell{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex}.gui-content{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}.gui-content .gui-structure-cell-container,.gui-content .gui-row{display:-ms-flexbox;display:flex}.gui-content .gui-structure-cell-container .gui-cell,.gui-content .gui-row .gui-cell{display:inline-block}.gui-content .gui-structure-row-details{background:#80cbc4;display:block;height:200px;position:absolute;-ms-transform:translateY(0);transform:translateY(0);width:100%}\\n\", \".gui-inline-dialog-header-menu.gui-inline-dialog-wrapper .gui-inline-dialog-content{background:transparent;box-shadow:none}.gui-inline-dialog-header-menu .gui-header-menu-tab .gui-header-item-active{font-weight:700}.gui-inline-dialog-header-menu .gui-header-menu-tab .gui-tab .gui-tab-menu .gui-tab-menu-list{background:#fff}.gui-inline-dialog-header-menu .gui-header-menu-tab .gui-tab .gui-tab-menu .gui-tab-menu-item{color:#333}.gui-inline-dialog-header-menu .gui-header-menu-tab .gui-tab .gui-tab-menu .gui-tab-menu-item:hover{background:#ecedee}.gui-inline-dialog-header-menu .gui-header-menu-tab .gui-tab .gui-tab-menu .gui-tab-menu-item.gui-active{color:#2185d0}.gui-inline-dialog-header-menu .gui-header-menu-tab .gui-tab .gui-tab-content{box-shadow:0 3px 7px #ccc;box-sizing:content-box;padding:0;width:225px}.gui-inline-dialog-header-menu .gui-header-menu-tab .gui-header-menu-column-move{color:#333;display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;padding:0}.gui-inline-dialog-header-menu .gui-header-menu-tab .gui-header-menu-column-move .gui-header-menu-column-move-item{-ms-flex-align:center;align-items:center;cursor:pointer;display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between}.gui-inline-dialog-header-menu .gui-header-menu-tab .gui-header-menu-column-move .gui-header-menu-column-move-item svg line{stroke:#aaa}.gui-inline-dialog-header-menu .gui-header-menu-tab .gui-header-menu-column-move .gui-header-menu-column-move-item.left{padding:12px 16px 12px 12px;width:48%}.gui-inline-dialog-header-menu .gui-header-menu-tab .gui-header-menu-column-move .gui-header-menu-column-move-item.right{padding:12px 10px;width:52%}.gui-inline-dialog-header-menu .gui-header-menu-tab .gui-header-menu-column-move .gui-header-menu-column-move-item:hover{background:#ecedee}.gui-inline-dialog-header-menu .gui-header-menu-tab .gui-header-menu-column-move .gui-header-menu-column-move-item:hover svg line{stroke:#464646}.gui-inline-dialog-header-menu .gui-header-menu-tab .gui-tab-item-dropdown .gui-header-menu-dropdown.gui-dropdown .gui-dropdown-container{border:none;border-radius:0}.gui-inline-dialog-header-menu .gui-header-menu-tab .gui-tab-item-dropdown .gui-header-menu-dropdown.gui-dropdown .gui-dropdown-container:hover{background:#ecedee}.gui-inline-dialog-header-menu .gui-header-menu-tab .gui-tab-item-dropdown .gui-header-menu-dropdown.gui-dropdown .gui-dropdown-container:hover .gui-dropdown-arrow{opacity:1}.gui-inline-dialog-header-menu .gui-header-menu-tab .gui-tab-item-dropdown .gui-header-menu-dropdown.gui-dropdown .gui-dropdown-menu{width:125px}.gui-inline-dialog-header-menu .gui-header-menu-tab .gui-tab-item-dropdown .gui-header-menu-dropdown.gui-dropdown .gui-dropdown-menu .gui-item{background:#fff;color:#333;display:-ms-flexbox;display:flex;padding:8px 8px 8px 12px}.gui-inline-dialog-header-menu .gui-header-menu-tab .gui-tab-item-dropdown .gui-header-menu-dropdown.gui-dropdown .gui-dropdown-menu .gui-item:hover{background:#ecedee}.gui-inline-dialog-header-menu .gui-header-menu-tab .gui-tab-item-dropdown .gui-header-menu-dropdown.gui-dropdown .gui-dropdown-menu .gui-item:hover .gui-sort-title svg line{stroke:#464646}.gui-inline-dialog-header-menu .gui-header-menu-tab .gui-tab-item-dropdown .gui-header-menu-dropdown.gui-dropdown .gui-dropdown-menu .gui-item .gui-sort-title{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;width:100%}.gui-inline-dialog-header-menu .gui-header-menu-tab .gui-tab-item-dropdown .gui-header-menu-dropdown.gui-dropdown .gui-dropdown-menu .gui-item .gui-sort-title svg{margin-top:3px}.gui-inline-dialog-header-menu .gui-header-menu-tab .gui-tab-item-dropdown .gui-header-menu-dropdown.gui-dropdown .gui-dropdown-menu .gui-item .gui-sort-title svg line{stroke:#aaa}.gui-inline-dialog-header-menu .gui-header-menu-tab .gui-header-menu-item{color:#333;cursor:pointer;display:block;padding:8px 12px}.gui-inline-dialog-header-menu .gui-header-menu-tab .gui-header-menu-item:hover{background:#ecedee}.gui-inline-dialog-header-menu .gui-header-menu-tab .gui-checkbox{color:#333;margin-left:12px;padding:8px 12px 8px 32px;width:169px}.gui-inline-dialog-header-menu .gui-header-menu-tab .gui-checkbox label{display:inline-block;width:inherit}\\n\", \".gui-schema-manager-dialog .gui-schema-manager{min-width:180px}.gui-schema-manager-dialog .gui-schema-manager .gui-structure-schema-manager-select,.gui-schema-manager-dialog .gui-schema-manager .gui-checkbox{color:#333}.gui-schema-manager-dialog .gui-schema-manager .gui-structure-schema-manager-select:nth-last-child(1),.gui-schema-manager-dialog .gui-schema-manager .gui-checkbox:nth-last-child(1){margin-bottom:0}.gui-dialog-title{border-bottom:solid 1px #d6d6d6;font-size:18px;font-weight:700;margin-left:-16px;margin-right:-16px;padding-bottom:16px;text-align:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.gui-structure-schema-manager-select{padding:8px 0 24px}.gui-structure-dialog-column-manager ol{max-height:400px;min-width:250px}\\n\", \".gui-cell .gui-checkbox{display:block}.gui-cell .gui-chip{margin:0;padding:2px 8px}.gui-cell .gui-input{display:block;font-size:11px;padding:2px 4px;width:100%}.gui-cell .gui-button{padding:2px 8px}.gui-cell .gui-cell-number{display:block;width:100%}.gui-cell .gui-cell-boolean{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;height:100%;text-align:center;width:100%}.gui-cell .gui-string-edit{width:100%}\\n\", \".gui-fabric{border-color:#d6d6d6;font-family:Arial;font-size:14px}.gui-fabric .gui-header-cell,.gui-fabric .gui-structure-header-columns,.gui-fabric .gui-structure-top-panel,.gui-fabric .gui-structure-info-panel,.gui-fabric .gui-paging{height:42px}\\n\", \".gui-material{border-color:#0000001f;font-family:Arial;font-size:14px}.gui-material *{border-color:#0000001f}.gui-material.gui-structure{border:0;border-radius:0;box-shadow:0 2px 2px #00000024,0 3px 1px -2px #0000001f,0 1px 5px #0003}.gui-material.gui-structure,.gui-material .gui-header{font-family:Arial}.gui-material .gui-header-cell,.gui-material .gui-structure-header-columns{height:56px}.gui-material .gui-header .gui-header-cell.gui-header-sortable:hover{background:transparent}.gui-material .gui-header-cell{padding-left:16px;padding-right:16px}.gui-material .gui-structure-container-element .gui-structure-cell>span{padding-left:16px;padding-right:16px}.gui-material .gui-structure-container .gui-structure-container-element .gui-content .gui-row:hover{background:rgba(0,0,0,.04)}.gui-material .gui-structure-container .gui-structure-container-element .gui-content .gui-row.selected{background:#e6f7ff}.gui-material .gui-structure-header .gui-header{background:transparent;color:#464646;font-weight:700}.gui-material .gui-structure-header .gui-header .gui-header-cell{border-color:inherit}.gui-material .gui-cell .gui-button,.gui-material .gui-cell .gui-badge{padding:0}.gui-material .gui-paging-alternative-navigator .gui-button{background:transparent;color:#333;margin:0 4px;padding:0}.gui-material .gui-paging-alternative-navigator .gui-button:hover{background:transparent}.gui-material .gui-paging-alternative-navigator .gui-button:disabled{background:transparent;color:#ccc;opacity:.4}.gui-material .gui-structure-summaries-panel{background:#fff}.gui-material gui-structure-top-panel,.gui-material .gui-structure-info-panel,.gui-material .gui-paging{height:52px;padding-left:16px;padding-right:16px}.gui-material .gui-structure-info-panel{background:#fff;border-radius:0}.gui-material gui-structure-top-panel{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;padding-right:0}.gui-material gui-structure-top-panel .gui-search-bar form input{border:0;outline:0}.gui-material .gui-search-bar form input{border:0;outline:none}\\n\", \".gui-dark{border-color:#575757;border-radius:2px;color:#f0f0f0;font-family:Arial;font-size:14px}.gui-dark *{border-color:#575757;color:#f0f0f0}.gui-dark.gui-structure{border-radius:2px}.gui-dark .gui-header-cell,.gui-dark .gui-structure-header-columns{background:#333;height:46px}.gui-dark .gui-structure-border{border:none;box-shadow:5px 5px 10px 2px #1f1f1f}.gui-dark .gui-header-cell{border-bottom:1px solid;border-color:inherit;padding-left:16px;padding-right:16px}.gui-dark .gui-structure-container-element .gui-structure-cell>span{padding-left:16px;padding-right:16px}.gui-dark .gui-structure-header .gui-header{border-bottom-color:#666;color:#bdbdbd}.gui-dark .gui-structure-header .gui-header .gui-header-cell:hover{background:#525252}.gui-dark .gui-structure-header .gui-header .gui-header-cell:hover .gui-header-menu .gui-header-menu-icon-wrapper{background-color:#525252}.gui-dark .gui-inline-dialog-header-menu .gui-header-menu-tab .gui-tab .gui-tab-menu .gui-tab-menu-list{background:#383838}.gui-dark .gui-inline-dialog-header-menu .gui-header-menu-tab .gui-tab .gui-tab-menu .gui-tab-menu-item{color:#f0f0f0}.gui-dark .gui-inline-dialog-header-menu .gui-header-menu-tab .gui-tab .gui-tab-menu .gui-tab-menu-item:hover{background:#525252}.gui-dark .gui-inline-dialog-header-menu .gui-header-menu-tab .gui-tab .gui-tab-menu .gui-tab-menu-item.gui-active{color:#ce93d8}.gui-dark .gui-inline-dialog-header-menu .gui-header-menu-tab .gui-tab .gui-tab-content{box-shadow:0 1px 2px #525252}.gui-dark .gui-inline-dialog-header-menu .gui-header-menu-tab .gui-tab .gui-structure-column-manager ol li:hover{background:#525252}.gui-dark .gui-inline-dialog-header-menu .gui-header-menu-tab .gui-header-menu-column-move{color:#f0f0f0}.gui-dark .gui-inline-dialog-header-menu .gui-header-menu-tab .gui-header-menu-column-move .gui-header-menu-column-move-item:hover{background:#525252}.gui-dark .gui-inline-dialog-header-menu .gui-header-menu-tab .gui-header-menu-column-move .gui-header-menu-column-move-item:hover svg line{stroke:#ce93d8}.gui-dark .gui-inline-dialog-header-menu .gui-header-menu-tab .gui-tab-item-dropdown .gui-header-menu-dropdown.gui-dropdown .gui-dropdown-container .gui-dropdown-menu{border-color:#666}.gui-dark .gui-inline-dialog-header-menu .gui-header-menu-tab .gui-tab-item-dropdown .gui-header-menu-dropdown.gui-dropdown .gui-dropdown-container .gui-dropdown-menu .gui-item:hover svg line{stroke:#ce93d8}.gui-dark .gui-inline-dialog-header-menu .gui-header-menu-tab .gui-tab-item-dropdown .gui-header-menu-dropdown.gui-dropdown .gui-dropdown-container:hover{background:#525252}.gui-dark .gui-inline-dialog-header-menu .gui-header-menu-tab .gui-tab-item-dropdown .gui-header-menu-dropdown.gui-dropdown .gui-item{background:#383838;color:#f0f0f0;display:-ms-flexbox;display:flex}.gui-dark .gui-inline-dialog-header-menu .gui-header-menu-tab .gui-tab-item-dropdown .gui-header-menu-dropdown.gui-dropdown .gui-item:hover{background:#525252}.gui-dark .gui-inline-dialog-header-menu .gui-header-menu-tab .gui-header-menu-item{color:#f0f0f0}.gui-dark .gui-inline-dialog-header-menu .gui-header-menu-tab .gui-header-menu-item:hover{background:#525252}.gui-dark .gui-inline-dialog-header-menu .gui-header-menu-tab .gui-checkbox{color:#f0f0f0}.gui-dark .gui-structure-column-manager>div:hover{background:#525252}.gui-dark .gui-structure-container .gui-structure-container-element .gui-content .gui-row:hover{background:#525252}.gui-dark .gui-structure-container .gui-structure-container-element .gui-content .gui-row.selected{background:rgba(124,185,246,.3215686275)}.gui-dark.gui-rows-odd .gui-row.odd,.gui-dark.gui-rows-even .gui-row.even{background:#4f4f4f}.gui-dark .gui-horizontal-grid .gui-structure-container-element .gui-row .gui-cell{border-bottom-color:#666}.gui-dark .gui-paging.gui-paging-bottom{border-top-color:#666}.gui-dark .gui-paging.gui-paging-top{border-bottom-color:#666}.gui-dark ::-webkit-scrollbar{width:15px}.gui-dark ::-webkit-scrollbar-track{background:#616161}.gui-dark ::-webkit-scrollbar-thumb{background:#424242}.gui-dark ::-webkit-scrollbar-thumb:hover{background:#212121}.gui-dark .gui-structure-top-panel,.gui-dark .gui-structure-info-panel,.gui-dark .gui-paging,.gui-dark .gui-structure-container-element,.gui-dark .gui-row{background:#444}.gui-dark .gui-structure-top-panel,.gui-dark .gui-structure-info-panel,.gui-dark .gui-paging{height:42px;padding-left:16px;padding-right:16px}.gui-dark .gui-structure-summaries-cell{background:#383838;color:#f0f0f0}.gui-dark .gui-structure-summaries-panel-bottom .gui-structure-summaries-cell{border-top-color:#666}.gui-dark .gui-structure-summaries-panel-top .gui-structure-summaries-cell{border-bottom-color:#666}.gui-dark .gui-structure-info-panel{background:#383838;border-top-color:#666}.gui-dark .gui-structure-info-panel div{color:#f0f0f0}.gui-dark .gui-structure-info-panel div button{background:#616161}.gui-dark .gui-structure-info-panel p,.gui-dark .gui-structure-info-modal p{color:#f0f0f0}.gui-dark gui-paging-alternative-navigator .gui-button{background:transparent;color:#f0f0f0;margin:0 4px;padding:0}.gui-dark gui-paging-alternative-navigator .gui-button:hover{background:transparent}.gui-dark gui-paging-alternative-navigator .gui-button:disabled{background:transparent;color:#f0f0f0;opacity:.4}.gui-dark gui-paging-alternative-navigator gui-paging-alternative-pages .gui-paging-active-page{box-shadow:0 1px #f0f0f0;color:#f0f0f0}.gui-dark .gui-search-bar form{background:#444}.gui-dark .gui-search-bar input{background:#444;border:0;color:#f0f0f0;cursor:pointer}.gui-dark .gui-search-bar:hover .gui-search-icon-svg line,.gui-dark .gui-search-bar:hover .gui-search-icon-svg circle{stroke:#878787}.gui-dark .gui-icon{cursor:pointer}.gui-dark .gui-icon svg{stroke:#aaa;transition:stroke .3s ease-in-out}.gui-dark .gui-icon svg:hover{stroke:#e6e6e6!important}.gui-dark .gui-empty-source div{background:#383838}.gui-dark .gui-dialog-wrapper .gui-dialog-content .gui-schema-manager-dialog .gui-dialog-title{color:#f0f0f0}.gui-dark .gui-title-panel,.gui-dark .gui-footer-panel{background:#383838}.gui-dark .gui-structure-ordered-list li:hover{background:#525252}\\n\", \".gui-light{border-color:#f0f0f0;font-family:Arial;font-size:14px}.gui-light *{border-color:#f0f0f0}.gui-light.gui-structure-border{border:0}.gui-light.gui-structure,.gui-light .gui-header{background:#fff;color:#333;font-family:Arial}.gui-light .gui-header-cell,.gui-light .gui-structure-header-columns{height:56px}.gui-light.gui-structure-border{border-color:#f0f0f0 transparent}.gui-light .gui-header-cell,.gui-light .gui-structure-container-element .gui-structure-cell>span{padding-left:16px;padding-right:16px}.gui-light .gui-structure-header .gui-header{color:#333;font-weight:700}.gui-light .gui-structure-header .gui-header .gui-header-cell:hover{background:#f3f9ff}.gui-light .gui-structure-header .gui-header .gui-header-cell:hover .gui-header-menu .gui-header-menu-icon-wrapper{background-color:#f3f9ff}.gui-light .gui-structure-container .gui-structure-container-element .gui-content .gui-row:hover{background:#f3f9ff}.gui-light .gui-structure-container .gui-structure-container-element .gui-content .gui-row.selected{background:rgba(124,185,246,.3215686275)}.gui-light.gui-rows-odd .gui-row.odd,.gui-light.gui-rows-even .gui-row.even{background:#f7f7f7}.gui-light gui-paging-alternative-navigator .gui-button{background:transparent;color:#333;margin:0 4px;padding:0}.gui-light gui-paging-alternative-navigator .gui-button:hover{background:transparent}.gui-light gui-paging-alternative-navigator .gui-button:disabled{background:transparent;color:#333;opacity:.4}.gui-light .gui-structure-top-panel,.gui-light .gui-structure-info-panel,.gui-light .gui-paging{height:56px;padding-left:16px;padding-right:16px}.gui-light .gui-structure-top-panel,.gui-light .gui-structure-info-panel,.gui-light .gui-paging,.gui-light .gui-structure-summaries-panel{background:#fff}.gui-light .gui-search-bar form input{border:0;outline:none}\\n\", \".gui-structure.gui-generic{border-color:#2224261a;font-family:Arial;font-size:14px}.gui-structure.gui-generic *{border-color:#2224261a}.gui-structure.gui-generic .gui-header-cell,.gui-structure.gui-generic .gui-structure-header-columns{height:46px}.gui-structure.gui-generic .gui-header .gui-header-cell.gui-header-sortable:hover{background:rgba(0,0,0,.04);transition:.15s all}.gui-structure.gui-generic .gui-header-cell,.gui-structure.gui-generic .gui-structure-container-element .gui-structure-cell>span{padding-left:12px;padding-right:12px}.gui-structure.gui-generic .gui-structure-container-element .gui-structure-cell:last-child>span{padding-right:20px}.gui-structure.gui-generic .gui-structure-header.gui-header-bottom .gui-header{border-color:inherit;border-style:solid;border-width:2px 0 0}.gui-structure.gui-generic .gui-structure-container .gui-structure-container-element .gui-content .gui-row:hover{background:rgba(0,0,0,.04)}.gui-structure.gui-generic .gui-structure-container .gui-structure-container-element .gui-content .gui-row.selected{background:#e6f7ff}.gui-structure.gui-generic .gui-structure-header .gui-header{background:#f9fafb;border-width:0 0 2px;color:#464646;font-weight:700}.gui-structure.gui-generic .gui-rows-odd .gui-row.odd,.gui-structure.gui-generic .gui-rows-even .gui-row.even{background:#f9fafb}.gui-structure.gui-generic .gui-cell .gui-button,.gui-structure.gui-generic .gui-cell .gui-badge{padding:0}.gui-structure.gui-generic .gui-paging-alternative-navigator .gui-button{background:transparent;color:#333;margin:0 4px;padding:0}.gui-structure.gui-generic .gui-paging-alternative-navigator .gui-button:hover{background:transparent}.gui-structure.gui-generic .gui-paging-alternative-navigator .gui-button:disabled{background:transparent;color:#ccc;opacity:.4}.gui-structure.gui-generic .gui-structure-summaries-panel{background:#f9fafb}.gui-structure.gui-generic .gui-structure-top-panel,.gui-structure.gui-generic .gui-structure-info-panel,.gui-structure.gui-generic .gui-paging{height:46px;padding-left:12px;padding-right:12px}.gui-structure.gui-generic .gui-structure-info-panel{background:#f9fafb;border-radius:0}.gui-structure.gui-generic .gui-structure-top-panel{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;padding-right:0}.gui-structure.gui-generic .gui-structure-top-panel .gui-search-bar form input{border:0;outline:0}.gui-structure.gui-generic .gui-rows-odd gui-row.odd,.gui-structure.gui-generic .gui-rows-even .gui-row.even{background:#f9fafb}.gui-structure.gui-generic .gui-row:hover{background:#f9fafb;transition:.15s all}\\n\"] }]\n }], ctorParameters: () => [{ type: StructureId }, { type: CompositionId }, { type: PagingPublisher }, { type: PagingEventRepository }, { type: SourcePublisher }, { type: SourceEventService }, { type: SortingPublisher }, { type: SearchPublisher }, { type: FieldPublisher }, { type: SchemaPublisher }, { type: CompositionPublisher }, { type: CompositionEventRepository }, { type: FormationEventRepository }, { type: StructurePublisher }, { type: StructureEditModeArchive }, { type: StructureCellEditArchive }, { type: StructureInfoPanelArchive }, { type: StructureInfoPanelConfigService }, { type: StructureCellEditStore }, { type: ColumnFieldFactory }, { type: StructureColumnMenuConfigArchive }, { type: PagingDisplayModeArchive }, { type: FormationPublisher }, { type: SearchEventRepository }, { type: StructureHeaderBottomEnabledArchive }, { type: StructureRowDetailConfigArchive }, { type: StructureTitlePanelConfigArchive }, { type: StructureFooterPanelConfigArchive }, { type: SchemaEventRepository }, { type: TranslationFacade }, { type: StructureInitialValuesReadyArchive }, { type: ColumnAutoConfigurator }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i0.Injector }, { type: StructureDefinition }, { type: StructureWarehouse }, { type: CompositionWarehouse }, { type: SchemaCssClassManager }, { type: SchemaReadModelRootId }, { type: StructureRowDetailService }] });\n\nclass StructureColumnHeaderGate extends Gate {\n structureHeaderTopEnabledArchive;\n structureHeaderBottomEnabledArchive;\n columnHeaderTop;\n columnHeaderBottom;\n constructor(structureHeaderTopEnabledArchive, structureHeaderBottomEnabledArchive) {\n super();\n this.structureHeaderTopEnabledArchive = structureHeaderTopEnabledArchive;\n this.structureHeaderBottomEnabledArchive = structureHeaderBottomEnabledArchive;\n }\n ngOnChanges(changes) {\n if (this.isDefined('columnHeaderTop', changes)) {\n this.structureHeaderTopEnabledArchive.next(this.columnHeaderTop);\n }\n if (this.isDefined('columnHeaderBottom', changes)) {\n this.structureHeaderBottomEnabledArchive.next(this.columnHeaderBottom);\n }\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureColumnHeaderGate, deps: [{ token: StructureHeaderTopEnabledArchive }, { token: StructureHeaderBottomEnabledArchive }], target: i0.ɵɵFactoryTarget.Directive });\n static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"17.0.2\", type: StructureColumnHeaderGate, selector: \"gui-structure[columnHeaderTop][columnHeaderBottom], gui-structure[columnHeaderTop], gui-structure[columnHeaderBottom]\", inputs: { columnHeaderTop: \"columnHeaderTop\", columnHeaderBottom: \"columnHeaderBottom\" }, usesInheritance: true, usesOnChanges: true, ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureColumnHeaderGate, decorators: [{\n type: Directive,\n args: [{\n selector: 'gui-structure[columnHeaderTop][columnHeaderBottom], gui-structure[columnHeaderTop], gui-structure[columnHeaderBottom]'\n }]\n }], ctorParameters: () => [{ type: StructureHeaderTopEnabledArchive }, { type: StructureHeaderBottomEnabledArchive }], propDecorators: { columnHeaderTop: [{\n type: Input\n }], columnHeaderBottom: [{\n type: Input\n }] } });\n\nclass PagingGate extends Gate {\n structureId;\n compositionId;\n pagingCommandInvoker;\n pagingEventRepository;\n paging;\n pageChanged = new EventEmitter();\n pageSizeChanged = new EventEmitter();\n constructor(structureId, compositionId, pagingCommandInvoker, pagingEventRepository) {\n super();\n this.structureId = structureId;\n this.compositionId = compositionId;\n this.pagingCommandInvoker = pagingCommandInvoker;\n this.pagingEventRepository = pagingEventRepository;\n }\n ngOnChanges(changes) {\n if (this.isDefined('paging', changes)) {\n let pagingConfig;\n if (typeof this.paging === 'boolean') {\n pagingConfig = {\n enabled: this.paging\n };\n }\n else {\n pagingConfig = this.paging;\n }\n this.pagingCommandInvoker.setPaging(pagingConfig, this.compositionId);\n }\n }\n ngOnInit() {\n this.subscribeAndEmit(this.pagingEventRepository.onPageChange(this.structureId.toReadModelRootId()), this.pageChanged);\n this.subscribeAndEmit(this.pagingEventRepository.onPageSizeChange(this.structureId.toReadModelRootId()), this.pageSizeChanged);\n }\n onPageChange(page) {\n this.pageChanged.emit(page);\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: PagingGate, deps: [{ token: StructureId }, { token: CompositionId }, { token: PagingPublisher }, { token: PagingEventRepository }], target: i0.ɵɵFactoryTarget.Directive });\n static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"17.0.2\", type: PagingGate, inputs: { paging: \"paging\" }, outputs: { pageChanged: \"pageChanged\", pageSizeChanged: \"pageSizeChanged\" }, usesInheritance: true, usesOnChanges: true, ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: PagingGate, decorators: [{\n type: Directive\n }], ctorParameters: () => [{ type: StructureId }, { type: CompositionId }, { type: PagingPublisher }, { type: PagingEventRepository }], propDecorators: { paging: [{\n type: Input\n }], pageChanged: [{\n type: Output\n }], pageSizeChanged: [{\n type: Output\n }] } });\n\nclass StructurePagingGate extends PagingGate {\n pagingDisplayModeArchive;\n constructor(structureId, compositionId, pagingPublisher, pagingEventRepository, pagingDisplayModeArchive) {\n super(structureId, compositionId, pagingPublisher, pagingEventRepository);\n this.pagingDisplayModeArchive = pagingDisplayModeArchive;\n }\n ngOnChanges(changes) {\n if (this.isDefined('paging', changes)) {\n let pagingConfig;\n if (typeof this.paging === 'boolean') {\n pagingConfig = {\n enabled: this.paging\n };\n }\n else {\n pagingConfig = this.paging;\n if (this.paging.displayMode !== undefined) {\n this.pagingDisplayModeArchive.next(this.paging.displayMode);\n }\n }\n this.pagingCommandInvoker.setPaging(pagingConfig, this.structureId);\n }\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructurePagingGate, deps: [{ token: StructureId }, { token: CompositionId }, { token: PagingPublisher }, { token: PagingEventRepository }, { token: PagingDisplayModeArchive }], target: i0.ɵɵFactoryTarget.Directive });\n static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"17.0.2\", type: StructurePagingGate, selector: \"gui-structure[paging]\", usesInheritance: true, usesOnChanges: true, ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructurePagingGate, decorators: [{\n type: Directive,\n args: [{\n selector: 'gui-structure[paging]'\n }]\n }], ctorParameters: () => [{ type: StructureId }, { type: CompositionId }, { type: PagingPublisher }, { type: PagingEventRepository }, { type: PagingDisplayModeArchive }] });\n\nclass SearchingGate extends Gate {\n structureId;\n searchEventRepository;\n searchCommandInvoker;\n searching;\n searchPhraseChanged = new EventEmitter();\n constructor(structureId, searchEventRepository, searchCommandInvoker) {\n super();\n this.structureId = structureId;\n this.searchEventRepository = searchEventRepository;\n this.searchCommandInvoker = searchCommandInvoker;\n }\n ngOnChanges(changes) {\n if (this.isDefined('searching', changes)) {\n let searching;\n if (typeof this.searching === 'boolean') {\n searching = {\n enabled: this.searching\n };\n }\n else {\n searching = this.searching;\n }\n this.searchCommandInvoker.setSearchingConfig(searching, this.structureId);\n }\n }\n ngOnInit() {\n this.subscribeAndEmit(this.searchEventRepository.onSearchPhrase(this.structureId.toReadModelRootId()), this.searchPhraseChanged);\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: SearchingGate, deps: [{ token: StructureId }, { token: SearchEventRepository }, { token: SearchPublisher }], target: i0.ɵɵFactoryTarget.Directive });\n static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"17.0.2\", type: SearchingGate, inputs: { searching: \"searching\" }, outputs: { searchPhraseChanged: \"searchPhraseChanged\" }, usesInheritance: true, usesOnChanges: true, ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: SearchingGate, decorators: [{\n type: Directive\n }], ctorParameters: () => [{ type: StructureId }, { type: SearchEventRepository }, { type: SearchPublisher }], propDecorators: { searching: [{\n type: Input\n }], searchPhraseChanged: [{\n type: Output\n }] } });\n\nclass StructureSearchingGate extends SearchingGate {\n constructor(structureId, searchEventRepository, searchCommandInvoker) {\n super(structureId, searchEventRepository, searchCommandInvoker);\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureSearchingGate, deps: [{ token: StructureId }, { token: SearchEventRepository }, { token: SearchPublisher }], target: i0.ɵɵFactoryTarget.Directive });\n static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"17.0.2\", type: StructureSearchingGate, selector: \"gui-structure[searching]\", usesInheritance: true, ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureSearchingGate, decorators: [{\n type: Directive,\n args: [{\n selector: 'gui-structure[searching]'\n }]\n }], ctorParameters: () => [{ type: StructureId }, { type: SearchEventRepository }, { type: SearchPublisher }] });\n\nclass SelectionGate extends Gate {\n structureId;\n formationEventRepository;\n formationPublisher;\n rowSelection;\n itemsSelected = new EventEmitter();\n selectedRows = new EventEmitter();\n constructor(structureId, formationEventRepository, formationPublisher) {\n super();\n this.structureId = structureId;\n this.formationEventRepository = formationEventRepository;\n this.formationPublisher = formationPublisher;\n }\n ngOnChanges(changes) {\n if (this.isDefined('rowSelection', changes)) {\n if (this.rowSelection.isEnabledDefined()) {\n this.formationPublisher.setSelection(this.rowSelection.isEnabled(), this.structureId);\n }\n if (this.rowSelection.isTypeDefined()) {\n this.formationPublisher.changeType(this.rowSelection.getType(), this.structureId);\n }\n if (this.rowSelection.isModeDefined()) {\n this.formationPublisher.changeMode(this.rowSelection.getMode(), this.structureId);\n }\n if (this.rowSelection.isMatcherDefined()) {\n this.formationPublisher.setMatcher(this.rowSelection.getMatcher(), this.structureId);\n }\n if (this.rowSelection.isSelectedRowIndexesDefined()) {\n this.formationPublisher.selectByIndex(this.rowSelection.getSelectedRowIndexes(), this.structureId);\n }\n if (this.rowSelection.isSelectedRowIdsDefined()) {\n this.formationPublisher.selectByIds(this.rowSelection.getSelectedRowIds(), this.structureId);\n }\n if (this.rowSelection.isCustomSelectConfig()) {\n this.formationPublisher.setCustomSelection(this.rowSelection.getCustomSelectConfig(), this.structureId);\n }\n }\n }\n ngOnInit() {\n this.subscribeAndEmit(this.formationEventRepository.onItemSelected(this.structureId), this.selectedRows);\n this.subscribeAndEmit(this.selectItemsSelected(), this.itemsSelected);\n }\n selectItemsSelected() {\n return this.formationEventRepository\n .onItemSelected(this.structureId)\n .pipe(hermesMap((items) => {\n return items.map(i => i.getItem());\n }));\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: SelectionGate, deps: [{ token: StructureId }, { token: FormationEventRepository }, { token: FormationPublisher }], target: i0.ɵɵFactoryTarget.Directive });\n static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"17.0.2\", type: SelectionGate, inputs: { rowSelection: \"rowSelection\" }, outputs: { itemsSelected: \"itemsSelected\", selectedRows: \"selectedRows\" }, usesInheritance: true, usesOnChanges: true, ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: SelectionGate, decorators: [{\n type: Directive\n }], ctorParameters: () => [{ type: StructureId }, { type: FormationEventRepository }, { type: FormationPublisher }], propDecorators: { rowSelection: [{\n type: Input\n }], itemsSelected: [{\n type: Output\n }], selectedRows: [{\n type: Output\n }] } });\n\nclass StructureSelectionGate extends SelectionGate {\n selectionGate;\n constructor(structureId, formationEventService, formationCommandDispatcher) {\n super(structureId, formationEventService, formationCommandDispatcher);\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureSelectionGate, deps: [{ token: StructureId }, { token: FormationEventRepository }, { token: FormationPublisher }], target: i0.ɵɵFactoryTarget.Directive });\n static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"17.0.2\", type: StructureSelectionGate, selector: \"gui-structure[rowSelection], gui-structure[selectionGate]\", inputs: { selectionGate: \"selectionGate\" }, usesInheritance: true, ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureSelectionGate, decorators: [{\n type: Directive,\n args: [{\n selector: 'gui-structure[rowSelection], gui-structure[selectionGate]'\n }]\n }], ctorParameters: () => [{ type: StructureId }, { type: FormationEventRepository }, { type: FormationPublisher }], propDecorators: { selectionGate: [{\n type: Input\n }] } });\n\nclass StructureL10nGate extends Gate {\n translationService;\n localization;\n constructor(translationService) {\n super();\n this.translationService = translationService;\n }\n ngOnChanges(changes) {\n if (this.isDefined('localization', changes)) {\n if (this.localization.translationResolver) {\n this.translationService.setResolver(this.localization.translationResolver);\n }\n if (this.localization.translation) {\n this.translationService.changeTranslation(this.localization.translation);\n }\n }\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureL10nGate, deps: [{ token: TranslationFacade }], target: i0.ɵɵFactoryTarget.Directive });\n static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"17.0.2\", type: StructureL10nGate, selector: \"gui-structure[localization]\", inputs: { localization: \"localization\" }, usesInheritance: true, usesOnChanges: true, ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureL10nGate, decorators: [{\n type: Directive,\n args: [{\n selector: 'gui-structure[localization]'\n }]\n }], ctorParameters: () => [{ type: TranslationFacade }], propDecorators: { localization: [{\n type: Input\n }] } });\n\nclass StructurePanelGate extends Gate {\n structureTitlePanelConfigArchive;\n structureFooterPanelConfigArchive;\n titlePanel;\n footerPanel;\n constructor(structureTitlePanelConfigArchive, structureFooterPanelConfigArchive) {\n super();\n this.structureTitlePanelConfigArchive = structureTitlePanelConfigArchive;\n this.structureFooterPanelConfigArchive = structureFooterPanelConfigArchive;\n }\n ngOnChanges(changes) {\n if (this.isDefined('titlePanel', changes)) {\n this.structureTitlePanelConfigArchive.next(this.titlePanel);\n }\n if (this.isDefined('footerPanel', changes)) {\n this.structureFooterPanelConfigArchive.next(this.footerPanel);\n }\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructurePanelGate, deps: [{ token: StructureTitlePanelConfigArchive }, { token: StructureFooterPanelConfigArchive }], target: i0.ɵɵFactoryTarget.Directive });\n static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"17.0.2\", type: StructurePanelGate, selector: \"gui-structure[titlePanel][footerPanel]\", inputs: { titlePanel: \"titlePanel\", footerPanel: \"footerPanel\" }, usesInheritance: true, usesOnChanges: true, ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructurePanelGate, decorators: [{\n type: Directive,\n args: [{\n selector: 'gui-structure[titlePanel][footerPanel]'\n }]\n }], ctorParameters: () => [{ type: StructureTitlePanelConfigArchive }, { type: StructureFooterPanelConfigArchive }], propDecorators: { titlePanel: [{\n type: Input\n }], footerPanel: [{\n type: Input\n }] } });\n\nclass StructureRowDetailGate extends Gate {\n structureDetailViewConfigArchive;\n rowDetail;\n constructor(structureDetailViewConfigArchive) {\n super();\n this.structureDetailViewConfigArchive = structureDetailViewConfigArchive;\n }\n ngOnChanges(changes) {\n if (this.isDefined('rowDetail', changes)) {\n this.structureDetailViewConfigArchive.next(this.rowDetail);\n }\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureRowDetailGate, deps: [{ token: StructureRowDetailConfigArchive }], target: i0.ɵɵFactoryTarget.Directive });\n static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"17.0.2\", type: StructureRowDetailGate, selector: \"gui-structure[rowDetail]\", inputs: { rowDetail: \"rowDetail\" }, usesInheritance: true, usesOnChanges: true, ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureRowDetailGate, decorators: [{\n type: Directive,\n args: [{\n selector: 'gui-structure[rowDetail]'\n }]\n }], ctorParameters: () => [{ type: StructureRowDetailConfigArchive }], propDecorators: { rowDetail: [{\n type: Input\n }] } });\n\nclass StructureColumnMenuGate extends Gate {\n structureColumnMenuConfigArchive;\n columnMenu;\n constructor(structureColumnMenuConfigArchive) {\n super();\n this.structureColumnMenuConfigArchive = structureColumnMenuConfigArchive;\n }\n ngOnChanges(changes) {\n if (this.isDefined('columnMenu', changes)) {\n this.structureColumnMenuConfigArchive.nextConfig(this.columnMenu);\n }\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureColumnMenuGate, deps: [{ token: StructureColumnMenuConfigArchive }], target: i0.ɵɵFactoryTarget.Directive });\n static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"17.0.2\", type: StructureColumnMenuGate, selector: \"gui-structure[columnMenu]\", inputs: { columnMenu: \"columnMenu\" }, usesInheritance: true, usesOnChanges: true, ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureColumnMenuGate, decorators: [{\n type: Directive,\n args: [{\n selector: 'gui-structure[columnMenu]'\n }]\n }], ctorParameters: () => [{ type: StructureColumnMenuConfigArchive }], propDecorators: { columnMenu: [{\n type: Input\n }] } });\n\nclass StructureSummariesGate extends Gate {\n structureId;\n summariesCommandInvoker;\n summaries;\n constructor(structureId, summariesCommandInvoker) {\n super();\n this.structureId = structureId;\n this.summariesCommandInvoker = summariesCommandInvoker;\n }\n ngOnChanges(changes) {\n ifChanged(changes.summaries, () => {\n this.summariesCommandInvoker.setConfig(this.summaries, this.structureId);\n });\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureSummariesGate, deps: [{ token: StructureId }, { token: SummariesPublisher }], target: i0.ɵɵFactoryTarget.Directive });\n static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"17.0.2\", type: StructureSummariesGate, selector: \"gui-structure[summaries]\", inputs: { summaries: \"summaries\" }, usesInheritance: true, usesOnChanges: true, ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureSummariesGate, decorators: [{\n type: Directive,\n args: [{\n selector: 'gui-structure[summaries]'\n }]\n }], ctorParameters: () => [{ type: StructureId }, { type: SummariesPublisher }], propDecorators: { summaries: [{\n type: Input\n }] } });\n\nclass StructureInfoPanelGate extends Gate {\n structureInfoPanelConfigService;\n infoPanel;\n constructor(structureInfoPanelConfigService) {\n super();\n this.structureInfoPanelConfigService = structureInfoPanelConfigService;\n }\n ngOnChanges(changes) {\n if (this.isDefined('infoPanel', changes)) {\n if (typeof this.infoPanel === 'boolean') {\n this.infoPanel = {\n enabled: this.infoPanel\n };\n }\n this.structureInfoPanelConfigService.set(this.infoPanel);\n }\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureInfoPanelGate, deps: [{ token: StructureInfoPanelConfigService }], target: i0.ɵɵFactoryTarget.Directive });\n static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"17.0.2\", type: StructureInfoPanelGate, selector: \"gui-structure[infoPanel]\", inputs: { infoPanel: \"infoPanel\" }, usesInheritance: true, usesOnChanges: true, ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureInfoPanelGate, decorators: [{\n type: Directive,\n args: [{\n selector: 'gui-structure[infoPanel]'\n }]\n }], ctorParameters: () => [{ type: StructureInfoPanelConfigService }], propDecorators: { infoPanel: [{\n type: Input\n }] } });\n\nclass StructureRowClassGate extends Gate {\n schemaReadModelRootId;\n schemaPublisher;\n rowClass;\n constructor(schemaReadModelRootId, schemaPublisher) {\n super();\n this.schemaReadModelRootId = schemaReadModelRootId;\n this.schemaPublisher = schemaPublisher;\n }\n ngOnChanges(changes) {\n if (this.isDefined('rowClass', changes)) {\n this.schemaPublisher.setRowClass(this.rowClass, this.schemaReadModelRootId);\n }\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureRowClassGate, deps: [{ token: SchemaReadModelRootId }, { token: SchemaPublisher }], target: i0.ɵɵFactoryTarget.Directive });\n static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"17.0.2\", type: StructureRowClassGate, selector: \"gui-structure[rowClass]\", inputs: { rowClass: \"rowClass\" }, usesInheritance: true, usesOnChanges: true, ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureRowClassGate, decorators: [{\n type: Directive,\n args: [{\n selector: 'gui-structure[rowClass]'\n }]\n }], ctorParameters: () => [{ type: SchemaReadModelRootId }, { type: SchemaPublisher }], propDecorators: { rowClass: [{\n type: Input\n }] } });\n\nclass StructureRowStyleGate extends Gate {\n schemaReadModelRootId;\n schemaPublisher;\n rowStyle;\n constructor(schemaReadModelRootId, schemaPublisher) {\n super();\n this.schemaReadModelRootId = schemaReadModelRootId;\n this.schemaPublisher = schemaPublisher;\n }\n ngOnChanges(changes) {\n if (this.isDefined('rowStyle', changes)) {\n this.schemaPublisher.setRowStyle(this.rowStyle, this.schemaReadModelRootId);\n }\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureRowStyleGate, deps: [{ token: SchemaReadModelRootId }, { token: SchemaPublisher }], target: i0.ɵɵFactoryTarget.Directive });\n static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"17.0.2\", type: StructureRowStyleGate, selector: \"gui-structure[rowStyle]\", inputs: { rowStyle: \"rowStyle\" }, usesInheritance: true, usesOnChanges: true, ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureRowStyleGate, decorators: [{\n type: Directive,\n args: [{\n selector: 'gui-structure[rowStyle]'\n }]\n }], ctorParameters: () => [{ type: SchemaReadModelRootId }, { type: SchemaPublisher }], propDecorators: { rowStyle: [{\n type: Input\n }] } });\n\nclass StructureRowColoringGate extends Gate {\n schemaId;\n schemaCommandInvoker;\n schemaEventRepository;\n rowColoring;\n rowColoringChanged = new EventEmitter();\n constructor(schemaId, schemaCommandInvoker, schemaEventRepository) {\n super();\n this.schemaId = schemaId;\n this.schemaCommandInvoker = schemaCommandInvoker;\n this.schemaEventRepository = schemaEventRepository;\n }\n ngOnChanges(changes) {\n if (this.isDefined('rowColoring', changes)) {\n this.schemaCommandInvoker.setRowColoring(this.rowColoring, this.schemaId);\n }\n }\n ngOnInit() {\n this.subscribeAndEmit(this.schemaEventRepository.onRowColoring(this.schemaId), this.rowColoringChanged);\n }\n ngOnDestroy() {\n super.ngOnDestroy();\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureRowColoringGate, deps: [{ token: SchemaReadModelRootId }, { token: SchemaPublisher }, { token: SchemaEventRepository }], target: i0.ɵɵFactoryTarget.Directive });\n static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"17.0.2\", type: StructureRowColoringGate, selector: \"gui-structure[rowColoring]\", inputs: { rowColoring: \"rowColoring\" }, outputs: { rowColoringChanged: \"rowColoringChanged\" }, usesInheritance: true, usesOnChanges: true, ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureRowColoringGate, decorators: [{\n type: Directive,\n args: [{\n selector: 'gui-structure[rowColoring]'\n }]\n }], ctorParameters: () => [{ type: SchemaReadModelRootId }, { type: SchemaPublisher }, { type: SchemaEventRepository }], propDecorators: { rowColoring: [{\n type: Input\n }], rowColoringChanged: [{\n type: Output\n }] } });\n\nclass ThemeGridGate extends Gate {\n schemaId;\n schemaCommandInvoker;\n schemaEventRepository;\n verticalGrid;\n horizontalGrid;\n horizontalGridChanged = new EventEmitter();\n verticalGridChanged = new EventEmitter();\n constructor(schemaId, schemaCommandInvoker, schemaEventRepository) {\n super();\n this.schemaId = schemaId;\n this.schemaCommandInvoker = schemaCommandInvoker;\n this.schemaEventRepository = schemaEventRepository;\n this.subscribeAndEmit(this.schemaEventRepository.onHorizontalGridChanged(this.schemaId), this.horizontalGridChanged);\n this.subscribeAndEmit(this.schemaEventRepository.onVerticalGridChanged(this.schemaId), this.verticalGridChanged);\n }\n ngOnChanges(changes) {\n if (this.isDefined('verticalGrid', changes)) {\n this.schemaCommandInvoker.setVerticalGrid(this.verticalGrid, this.schemaId);\n }\n if (this.isDefined('horizontalGrid', changes)) {\n this.schemaCommandInvoker.setHorizontalGrid(this.horizontalGrid, this.schemaId);\n }\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: ThemeGridGate, deps: [{ token: SchemaReadModelRootId }, { token: SchemaPublisher }, { token: SchemaEventRepository }], target: i0.ɵɵFactoryTarget.Directive });\n static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"17.0.2\", type: ThemeGridGate, selector: \"gui-structure[verticalGrid][horizontalGrid]\", inputs: { verticalGrid: \"verticalGrid\", horizontalGrid: \"horizontalGrid\" }, outputs: { horizontalGridChanged: \"horizontalGridChanged\", verticalGridChanged: \"verticalGridChanged\" }, usesInheritance: true, usesOnChanges: true, ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: ThemeGridGate, decorators: [{\n type: Directive,\n args: [{\n selector: 'gui-structure[verticalGrid][horizontalGrid]'\n }]\n }], ctorParameters: () => [{ type: SchemaReadModelRootId }, { type: SchemaPublisher }, { type: SchemaEventRepository }], propDecorators: { verticalGrid: [{\n type: Input\n }], horizontalGrid: [{\n type: Input\n }], horizontalGridChanged: [{\n type: Output\n }], verticalGridChanged: [{\n type: Output\n }] } });\n\nclass StructureSortingGate extends Gate {\n structureId;\n sortingCommandInvoker;\n sorting;\n constructor(structureId, sortingCommandInvoker) {\n super();\n this.structureId = structureId;\n this.sortingCommandInvoker = sortingCommandInvoker;\n }\n ngOnChanges(changes) {\n ifChanged(changes.sorting, () => {\n let sorting;\n if (typeof this.sorting === 'boolean') {\n sorting = {\n enabled: this.sorting\n };\n }\n else {\n sorting = this.sorting;\n }\n this.sortingCommandInvoker.setSortingConfig(sorting, this.structureId);\n });\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureSortingGate, deps: [{ token: StructureId }, { token: SortingPublisher }], target: i0.ɵɵFactoryTarget.Directive });\n static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"17.0.2\", type: StructureSortingGate, selector: \"gui-structure[sorting]\", inputs: { sorting: \"sorting\" }, usesInheritance: true, usesOnChanges: true, ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureSortingGate, decorators: [{\n type: Directive,\n args: [{\n selector: 'gui-structure[sorting]'\n }]\n }], ctorParameters: () => [{ type: StructureId }, { type: SortingPublisher }], propDecorators: { sorting: [{\n type: Input\n }] } });\n\nclass SourceLoadingGate extends Gate {\n structureId;\n sourceCommandInvoker;\n loading;\n constructor(structureId, sourceCommandInvoker) {\n super();\n this.structureId = structureId;\n this.sourceCommandInvoker = sourceCommandInvoker;\n }\n ngOnChanges(changes) {\n if (this.isDefined('loading', changes)) {\n this.sourceCommandInvoker.setLoading(this.loading, this.structureId);\n }\n }\n ngOnInit() {\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: SourceLoadingGate, deps: [{ token: StructureId }, { token: SourcePublisher }], target: i0.ɵɵFactoryTarget.Directive });\n static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"17.0.2\", type: SourceLoadingGate, selector: \"gui-structure[loading]\", inputs: { loading: \"loading\" }, usesInheritance: true, usesOnChanges: true, ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: SourceLoadingGate, decorators: [{\n type: Directive,\n args: [{\n selector: 'gui-structure[loading]'\n }]\n }], ctorParameters: () => [{ type: StructureId }, { type: SourcePublisher }], propDecorators: { loading: [{\n type: Input\n }] } });\n\nclass StructureFilterGate extends Gate {\n structureId;\n structureCommandInvoker;\n filtering;\n constructor(structureId, structureCommandInvoker) {\n super();\n this.structureId = structureId;\n this.structureCommandInvoker = structureCommandInvoker;\n }\n ngOnChanges(changes) {\n ifChanged(changes.filtering, () => {\n let filtering;\n if (typeof this.filtering === 'boolean') {\n filtering = {\n enabled: this.filtering\n };\n }\n else {\n filtering = this.filtering;\n }\n this.structureCommandInvoker.setFilterConfig(filtering, this.structureId);\n });\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureFilterGate, deps: [{ token: StructureId }, { token: StructurePublisher }], target: i0.ɵɵFactoryTarget.Directive });\n static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"17.0.2\", type: StructureFilterGate, selector: \"gui-structure[filtering]\", inputs: { filtering: \"filtering\" }, usesInheritance: true, usesOnChanges: true, ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureFilterGate, decorators: [{\n type: Directive,\n args: [{\n selector: 'gui-structure[filtering]'\n }]\n }], ctorParameters: () => [{ type: StructureId }, { type: StructurePublisher }], propDecorators: { filtering: [{\n type: Input\n }] } });\n\nclass StructureQuickFiltersGate extends Gate {\n structureId;\n structureCommandInvoker;\n quickFilters;\n constructor(structureId, structureCommandInvoker) {\n super();\n this.structureId = structureId;\n this.structureCommandInvoker = structureCommandInvoker;\n }\n ngOnChanges(changes) {\n ifChanged(changes.quickFilters, () => {\n let quickFilters;\n if (typeof this.quickFilters === 'boolean') {\n quickFilters = {\n enabled: this.quickFilters\n };\n }\n else {\n quickFilters = this.quickFilters;\n }\n this.structureCommandInvoker.setQuickFiltersConfig(quickFilters, this.structureId);\n });\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureQuickFiltersGate, deps: [{ token: StructureId }, { token: StructurePublisher }], target: i0.ɵɵFactoryTarget.Directive });\n static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"17.0.2\", type: StructureQuickFiltersGate, selector: \"gui-structure[quickFilters]\", inputs: { quickFilters: \"quickFilters\" }, usesInheritance: true, usesOnChanges: true, ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureQuickFiltersGate, decorators: [{\n type: Directive,\n args: [{\n selector: 'gui-structure[quickFilters]'\n }]\n }], ctorParameters: () => [{ type: StructureId }, { type: StructurePublisher }], propDecorators: { quickFilters: [{\n type: Input\n }] } });\n\nclass VerticalFormationGate extends Gate {\n structureId;\n structureCommandInvoker;\n virtualScroll;\n constructor(structureId, structureCommandInvoker) {\n super();\n this.structureId = structureId;\n this.structureCommandInvoker = structureCommandInvoker;\n }\n ngOnChanges(changes) {\n if (this.isDefined('virtualScroll', changes)) {\n if (this.virtualScroll) {\n this.structureCommandInvoker.enableVirtualScroll(this.structureId);\n }\n else {\n this.structureCommandInvoker.disableVirtualScroll(this.structureId);\n }\n }\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: VerticalFormationGate, deps: [{ token: StructureId }, { token: StructurePublisher }], target: i0.ɵɵFactoryTarget.Directive });\n static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"17.0.2\", type: VerticalFormationGate, selector: \"gui-structure[virtualScroll]\", inputs: { virtualScroll: \"virtualScroll\" }, usesInheritance: true, usesOnChanges: true, ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: VerticalFormationGate, decorators: [{\n type: Directive,\n args: [{\n selector: 'gui-structure[virtualScroll]'\n }]\n }], ctorParameters: () => [{ type: StructureId }, { type: StructurePublisher }], propDecorators: { virtualScroll: [{\n type: Input\n }] } });\n\nclass GuiGridComponent extends GuiGridGateway {\n platformId;\n elementRef;\n changeDetectorRef;\n gridRegister;\n structureIdGenerator;\n formationCommandDispatcher;\n formationWarehouse;\n compositionCommandInvoker;\n compositionWarehouse;\n filterIntegration;\n sourceCommandDispatcher;\n searchCommandInvoker;\n schemaCommandInvoker;\n structureCommandDispatcher;\n summariesCommandInvoker;\n sortingCommandInvoker;\n pagingCommandInvoker;\n static GUI_GRID_ID = 'gui-grid-id';\n structureRef;\n gridId; // can be set once\n api;\n localGridId;\n gridThemeCommandInvoker;\n classModifier;\n attributeModifier;\n constructor(platformId, elementRef, changeDetectorRef, gridRegister, structureIdGenerator, \n // delegate\n formationCommandDispatcher, formationWarehouse, compositionCommandInvoker, compositionWarehouse, filterIntegration, sourceCommandDispatcher, searchCommandInvoker, schemaCommandInvoker, structureCommandDispatcher, summariesCommandInvoker, sortingCommandInvoker, pagingCommandInvoker) {\n super();\n this.platformId = platformId;\n this.elementRef = elementRef;\n this.changeDetectorRef = changeDetectorRef;\n this.gridRegister = gridRegister;\n this.structureIdGenerator = structureIdGenerator;\n this.formationCommandDispatcher = formationCommandDispatcher;\n this.formationWarehouse = formationWarehouse;\n this.compositionCommandInvoker = compositionCommandInvoker;\n this.compositionWarehouse = compositionWarehouse;\n this.filterIntegration = filterIntegration;\n this.sourceCommandDispatcher = sourceCommandDispatcher;\n this.searchCommandInvoker = searchCommandInvoker;\n this.schemaCommandInvoker = schemaCommandInvoker;\n this.structureCommandDispatcher = structureCommandDispatcher;\n this.summariesCommandInvoker = summariesCommandInvoker;\n this.sortingCommandInvoker = sortingCommandInvoker;\n this.pagingCommandInvoker = pagingCommandInvoker;\n this.gridThemeCommandInvoker = new GuiGridThemeCommandInvoker(this.schemaCommandInvoker, this.gridThemeConverter, this.gridRowColoringConverter);\n this.classModifier = new ClassModifier(this.elementRef.nativeElement);\n this.attributeModifier = new AttributeModifier(this.elementRef.nativeElement);\n }\n ngOnInit() {\n this.classModifier.getHost().add('gui-grid');\n this.initApi();\n let gridId = this.gridId;\n if (gridId === undefined) {\n // gridId = this.gridIdGenerator.generateId();\n gridId = 'gui-grid-' + this.structureIdGenerator.generateId();\n }\n this.localGridId = gridId;\n this.exposeGridId();\n // register\n this.gridRegister.register(gridId, this, this.structureRef.getStructureId());\n if (isPlatformBrowser(this.platformId)) {\n window['getGuiGrid'] = (gridId) => {\n const gridConsoleConfig = this.gridRegister.getValues(gridId);\n if (gridConsoleConfig) {\n return this.api;\n }\n else {\n return undefined;\n }\n };\n }\n }\n ngOnDestroy() {\n this.gridRegister.unregister(this.localGridId);\n }\n getElementRef() {\n return this.elementRef;\n }\n detectChanges() {\n this.changeDetectorRef.detectChanges();\n }\n exposeGridId() {\n this.attributeModifier.getHost().setAttribute(GuiGridComponent.GUI_GRID_ID, this.localGridId);\n }\n initApi() {\n this.api = new GuiGridApiProvider(this.structureRef.structureId, this.structureRef.compositionId, this.structureRef.schemaReadModelRootId, this.formationCommandDispatcher, this.formationWarehouse, this.compositionCommandInvoker, this.compositionWarehouse, this.filterIntegration, this.sourceCommandDispatcher, this.searchCommandInvoker, this.gridThemeCommandInvoker, this.structureCommandDispatcher, this.summariesCommandInvoker, this.sortingCommandInvoker, this.pagingCommandInvoker).provide();\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: GuiGridComponent, deps: [{ token: PLATFORM_ID }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: GuiGridRegister }, { token: StructureIdGenerator }, { token: FormationPublisher }, { token: FormationWarehouse }, { token: CompositionPublisher }, { token: CompositionWarehouse }, { token: FilterIntegration }, { token: SourcePublisher }, { token: SearchPublisher }, { token: SchemaPublisher }, { token: StructurePublisher }, { token: SummariesPublisher }, { token: SortingPublisher }, { token: PagingPublisher }], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"17.0.2\", type: GuiGridComponent, selector: \"gui-grid\", inputs: { gridId: \"gridId\" }, providers: [\n {\n provide: StructureDefinition,\n useValue: guiGridStructureDefinition\n },\n {\n provide: structureParentComponent,\n useExisting: GuiGridComponent\n }\n ], viewQueries: [{ propertyName: \"structureRef\", first: true, predicate: [\"structure\"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: \"\\n\\n\\n\", styles: [\".gui-grid{display:block;width:100%}\\n\"], dependencies: [{ kind: \"component\", type: StructureComponent, selector: \"gui-structure\" }, { kind: \"directive\", type: StructureColumnHeaderGate, selector: \"gui-structure[columnHeaderTop][columnHeaderBottom], gui-structure[columnHeaderTop], gui-structure[columnHeaderBottom]\", inputs: [\"columnHeaderTop\", \"columnHeaderBottom\"] }, { kind: \"directive\", type: StructurePagingGate, selector: \"gui-structure[paging]\" }, { kind: \"directive\", type: StructureSearchingGate, selector: \"gui-structure[searching]\" }, { kind: \"directive\", type: StructureSelectionGate, selector: \"gui-structure[rowSelection], gui-structure[selectionGate]\", inputs: [\"selectionGate\"] }, { kind: \"directive\", type: StructureL10nGate, selector: \"gui-structure[localization]\", inputs: [\"localization\"] }, { kind: \"directive\", type: StructurePanelGate, selector: \"gui-structure[titlePanel][footerPanel]\", inputs: [\"titlePanel\", \"footerPanel\"] }, { kind: \"directive\", type: StructureRowDetailGate, selector: \"gui-structure[rowDetail]\", inputs: [\"rowDetail\"] }, { kind: \"directive\", type: StructureColumnMenuGate, selector: \"gui-structure[columnMenu]\", inputs: [\"columnMenu\"] }, { kind: \"directive\", type: StructureSummariesGate, selector: \"gui-structure[summaries]\", inputs: [\"summaries\"] }, { kind: \"directive\", type: StructureInfoPanelGate, selector: \"gui-structure[infoPanel]\", inputs: [\"infoPanel\"] }, { kind: \"directive\", type: StructureRowClassGate, selector: \"gui-structure[rowClass]\", inputs: [\"rowClass\"] }, { kind: \"directive\", type: StructureRowStyleGate, selector: \"gui-structure[rowStyle]\", inputs: [\"rowStyle\"] }, { kind: \"directive\", type: StructureRowColoringGate, selector: \"gui-structure[rowColoring]\", inputs: [\"rowColoring\"], outputs: [\"rowColoringChanged\"] }, { kind: \"directive\", type: ThemeGridGate, selector: \"gui-structure[verticalGrid][horizontalGrid]\", inputs: [\"verticalGrid\", \"horizontalGrid\"], outputs: [\"horizontalGridChanged\", \"verticalGridChanged\"] }, { kind: \"directive\", type: StructureSortingGate, selector: \"gui-structure[sorting]\", inputs: [\"sorting\"] }, { kind: \"directive\", type: SourceLoadingGate, selector: \"gui-structure[loading]\", inputs: [\"loading\"] }, { kind: \"directive\", type: StructureFilterGate, selector: \"gui-structure[filtering]\", inputs: [\"filtering\"] }, { kind: \"directive\", type: StructureQuickFiltersGate, selector: \"gui-structure[quickFilters]\", inputs: [\"quickFilters\"] }, { kind: \"directive\", type: VerticalFormationGate, selector: \"gui-structure[virtualScroll]\", inputs: [\"virtualScroll\"] }], encapsulation: i0.ViewEncapsulation.None });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: GuiGridComponent, decorators: [{\n type: Component,\n args: [{ selector: 'gui-grid', providers: [\n {\n provide: StructureDefinition,\n useValue: guiGridStructureDefinition\n },\n {\n provide: structureParentComponent,\n useExisting: GuiGridComponent\n }\n ], encapsulation: ViewEncapsulation.None, template: \"\\n\\n\\n\", styles: [\".gui-grid{display:block;width:100%}\\n\"] }]\n }], ctorParameters: () => [{ type: undefined, decorators: [{\n type: Inject,\n args: [PLATFORM_ID]\n }] }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: GuiGridRegister }, { type: StructureIdGenerator }, { type: FormationPublisher }, { type: FormationWarehouse }, { type: CompositionPublisher }, { type: CompositionWarehouse }, { type: FilterIntegration }, { type: SourcePublisher }, { type: SearchPublisher }, { type: SchemaPublisher }, { type: StructurePublisher }, { type: SummariesPublisher }, { type: SortingPublisher }, { type: PagingPublisher }], propDecorators: { structureRef: [{\n type: ViewChild,\n args: ['structure', { static: true }]\n }], gridId: [{\n type: Input\n }] } });\n\nconst fabricImports = [\n FabricBadgeModule,\n FabricButtonModule,\n FabricButtonGroupModule,\n FabricCheckboxModule,\n FabricChipModule,\n FabricDrawerModule,\n FabricDropdownModule,\n FabricRadioButtonModule,\n FabricRadioGroupModule,\n FabricProgressBarModule,\n FabricProgressSpinnerModule,\n FabricSelectModule,\n FabricSpinnerModule,\n FabricTabModule,\n FabricTooltipModule,\n FabricToggleButtonModule,\n FabricInputModule,\n FabricDialogModule,\n FabricInlineDialogModule,\n FabricTabModule\n];\n\nclass NumberFormatterModule {\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: NumberFormatterModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\n static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"17.0.2\", ngImport: i0, type: NumberFormatterModule, declarations: [NumberFormatterPipe], exports: [NumberFormatterPipe] });\n static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: NumberFormatterModule });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: NumberFormatterModule, decorators: [{\n type: NgModule,\n args: [{\n declarations: [\n NumberFormatterPipe\n ],\n exports: [\n NumberFormatterPipe\n ]\n }]\n }] });\n\nconst declarations$3 = [\n StructureColumnManagerComponent,\n StructureDialogColumnManagerComponent,\n StructureMenuColumnManagerComponent,\n StructureColumnManagerIconComponent\n];\nclass StructureColumnManagerModule {\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureColumnManagerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\n static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureColumnManagerModule, declarations: [StructureColumnManagerComponent,\n StructureDialogColumnManagerComponent,\n StructureMenuColumnManagerComponent,\n StructureColumnManagerIconComponent], imports: [CommonModule, i1$1.FabricBadgeModule, i1$1.FabricButtonModule, i1$1.FabricButtonGroupModule, i1$1.FabricCheckboxModule, i1$1.FabricChipModule, i1$1.FabricDrawerModule, i1$1.FabricDropdownModule, i1$1.FabricRadioButtonModule, i1$1.FabricRadioGroupModule, i1$1.FabricProgressBarModule, i1$1.FabricProgressSpinnerModule, i1$1.FabricSelectModule, i1$1.FabricSpinnerModule, i1$1.FabricTabModule, i1$1.FabricTooltipModule, i1$1.FabricToggleButtonModule, i1$1.FabricInputModule, i1$1.FabricDialogModule, i1$1.FabricInlineDialogModule, i1$1.FabricTabModule, GuiTemplateModule,\n TranslationFeatureModule], exports: [StructureColumnManagerComponent,\n StructureDialogColumnManagerComponent,\n StructureMenuColumnManagerComponent,\n StructureColumnManagerIconComponent] });\n static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureColumnManagerModule, providers: [\n StructureDialogColumnManagerService\n ], imports: [CommonModule,\n fabricImports,\n GuiTemplateModule,\n TranslationFeatureModule] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureColumnManagerModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [\n CommonModule,\n fabricImports,\n GuiTemplateModule,\n TranslationFeatureModule\n ],\n declarations: declarations$3,\n exports: declarations$3,\n providers: [\n StructureDialogColumnManagerService\n ]\n }]\n }] });\n\nclass SchemaManagerModule {\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: SchemaManagerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\n static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"17.0.2\", ngImport: i0, type: SchemaManagerModule, declarations: [StructureSchemaMangerComponent,\n StructureDialogSchemaManagerComponent,\n StructureSchemaManagerIconComponent], imports: [CommonModule, i1$1.FabricBadgeModule, i1$1.FabricButtonModule, i1$1.FabricButtonGroupModule, i1$1.FabricCheckboxModule, i1$1.FabricChipModule, i1$1.FabricDrawerModule, i1$1.FabricDropdownModule, i1$1.FabricRadioButtonModule, i1$1.FabricRadioGroupModule, i1$1.FabricProgressBarModule, i1$1.FabricProgressSpinnerModule, i1$1.FabricSelectModule, i1$1.FabricSpinnerModule, i1$1.FabricTabModule, i1$1.FabricTooltipModule, i1$1.FabricToggleButtonModule, i1$1.FabricInputModule, i1$1.FabricDialogModule, i1$1.FabricInlineDialogModule, i1$1.FabricTabModule, TranslationFeatureModule,\n GuiTemplateModule], exports: [StructureSchemaManagerIconComponent] });\n static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: SchemaManagerModule, providers: [\n StructureDialogSchemaManagerService\n ], imports: [CommonModule,\n fabricImports,\n TranslationFeatureModule,\n GuiTemplateModule] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: SchemaManagerModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [\n CommonModule,\n fabricImports,\n TranslationFeatureModule,\n GuiTemplateModule\n ],\n declarations: [\n StructureSchemaMangerComponent,\n StructureDialogSchemaManagerComponent,\n StructureSchemaManagerIconComponent\n ],\n exports: [\n StructureSchemaManagerIconComponent\n ],\n providers: [\n StructureDialogSchemaManagerService\n ]\n }]\n }] });\n\nclass FilterIconComponent extends IconComponent {\n constructor(elementRef, changeDetectorRef) {\n super(elementRef, changeDetectorRef);\n }\n getSelectorName() {\n return 'gui-filter-icon';\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: FilterIconComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"17.0.2\", type: FilterIconComponent, selector: \"div[gui-filter-icon]\", usesInheritance: true, ngImport: i0, template: `\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: FilterIconComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'div[gui-filter-icon]',\n template: `\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n }]\n }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }] });\n\nclass FieldWarehouse {\n constructor() {\n }\n}\n\nclass FilterTypeSelectorComponent extends PureComponent {\n filterTypes;\n filterTypeSelected = new EventEmitter();\n filterTypesAsOptions = [];\n disabled = true;\n constructor(elementRef) {\n super(elementRef);\n }\n ngOnChanges(changes) {\n this.ifChanged(changes.filterTypes, () => {\n this.filterTypesAsOptions = this.filterTypes.map((filter) => {\n return {\n name: filter.getId().toString(),\n value: filter.getName()\n };\n });\n this.disabled = this.filterTypesAsOptions.length === 0;\n });\n }\n onSelectChange(option) {\n const filterType = this.filterTypes.find((filterType) => {\n return filterType.getId().toString() === option.name;\n });\n this.filterTypeSelected.emit(filterType.getId());\n }\n getSelectorName() {\n return 'gui-filter-type-selector';\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: FilterTypeSelectorComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"17.0.2\", type: FilterTypeSelectorComponent, selector: \"div[gui-filter-type-selector][filterTypes]\", inputs: { filterTypes: \"filterTypes\" }, outputs: { filterTypeSelected: \"filterTypeSelected\" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: \"\\n\\n\", dependencies: [{ kind: \"component\", type: i1$1.FabricSelectComponent, selector: \"gui-select\", inputs: [\"options\", \"placeholder\", \"selected\", \"width\", \"disabled\"], outputs: [\"optionChanged\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: FilterTypeSelectorComponent, decorators: [{\n type: Component,\n args: [{ selector: 'div[gui-filter-type-selector][filterTypes]', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: \"\\n\\n\" }]\n }], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { filterTypes: [{\n type: Input\n }], filterTypeSelected: [{\n type: Output\n }] } });\n\nclass FilterValueComponent extends SmartComponent {\n effects;\n formBuilder;\n static FORM_FILTER_VALUE = 'filterValue';\n formRef;\n valueChanged = new EventEmitter();\n filterForm;\n constructor(detector, elementRef, effects, formBuilder) {\n super(detector, elementRef);\n this.effects = effects;\n this.formBuilder = formBuilder;\n const controlsConfig = {};\n controlsConfig[FilterValueComponent.FORM_FILTER_VALUE] = '';\n this.filterForm = this.formBuilder.group(controlsConfig);\n }\n ngOnInit() {\n this.effects\n .register(this.selectFilterFormValue(), (value) => {\n this.valueChanged.emit(value);\n });\n }\n getSelectorName() {\n return 'gui-filter-value';\n }\n selectFilterFormValue() {\n const value$ = this.filterForm\n .controls[FilterValueComponent.FORM_FILTER_VALUE]\n .valueChanges;\n return fromRxJsObservable(value$);\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: FilterValueComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: GuiEffects }, { token: i1$2.FormBuilder }], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"17.0.2\", type: FilterValueComponent, selector: \"div[gui-filter-value]\", outputs: { valueChanged: \"valueChanged\" }, providers: [\n GuiEffects\n ], viewQueries: [{ propertyName: \"formRef\", first: true, predicate: [\"formRef\"], descendants: true, read: ElementRef }], usesInheritance: true, ngImport: i0, template: \"
\\n\\n\\t\\n
\\n\", dependencies: [{ kind: \"directive\", type: i1$2.ɵNgNoValidate, selector: \"form:not([ngNoForm]):not([ngNativeValidate])\" }, { kind: \"directive\", type: i1$2.DefaultValueAccessor, selector: \"input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]\" }, { kind: \"directive\", type: i1$2.NgControlStatus, selector: \"[formControlName],[ngModel],[formControl]\" }, { kind: \"directive\", type: i1$2.NgControlStatusGroup, selector: \"[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]\" }, { kind: \"directive\", type: i1$2.FormGroupDirective, selector: \"[formGroup]\", inputs: [\"formGroup\"], outputs: [\"ngSubmit\"], exportAs: [\"ngForm\"] }, { kind: \"directive\", type: i1$2.FormControlName, selector: \"[formControlName]\", inputs: [\"formControlName\", \"disabled\", \"ngModel\"], outputs: [\"ngModelChange\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: FilterValueComponent, decorators: [{\n type: Component,\n args: [{ selector: 'div[gui-filter-value]', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, providers: [\n GuiEffects\n ], template: \"
\\n\\n\\t\\n
\\n\" }]\n }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: GuiEffects }, { type: i1$2.FormBuilder }], propDecorators: { formRef: [{\n type: ViewChild,\n args: ['formRef', { read: ElementRef, static: false }]\n }], valueChanged: [{\n type: Output\n }] } });\n\nclass FieldSelectorComponent extends PureComponent {\n fields;\n fieldSelected = new EventEmitter();\n fieldsAsOptions;\n constructor(elementRef) {\n super(elementRef);\n }\n ngOnChanges(changes) {\n ifChanged(changes.fields, () => {\n this.fieldsAsOptions = this.fields.map((field) => {\n return {\n name: field.getFieldId().toString(),\n value: field.getName()\n };\n });\n });\n }\n onFieldSelected(fieldId) {\n const field = this.fields.find((field) => field.getFieldId().toString() === fieldId.name);\n this.fieldSelected.emit(field);\n }\n getSelectorName() {\n return 'gui-field-selector';\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: FieldSelectorComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"17.0.2\", type: FieldSelectorComponent, selector: \"div[gui-field-selector][fields]\", inputs: { fields: \"fields\" }, outputs: { fieldSelected: \"fieldSelected\" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: `./field-selector.component.html`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: FieldSelectorComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'div[gui-field-selector][fields]',\n template: `./field-selector.component.html`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n }]\n }], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { fields: [{\n type: Input\n }], fieldSelected: [{\n type: Output\n }] } });\n\nclass FilterMenuActiveFiltersComponent extends PureComponent {\n activeFilters;\n removedFilter = new EventEmitter();\n constructor(elementRef) {\n super(elementRef);\n this.addClassToHost('gui-py-8');\n }\n remove(filter) {\n this.removedFilter.emit(filter.getFilterId());\n }\n getSelectorName() {\n return 'gui-filter-menu-active-filters';\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: FilterMenuActiveFiltersComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"17.0.2\", type: FilterMenuActiveFiltersComponent, selector: \"div[gui-filter-menu-active-filters][activeFilters]\", inputs: { activeFilters: \"activeFilters\" }, outputs: { removedFilter: \"removedFilter\" }, usesInheritance: true, ngImport: i0, template: `./filter-menu-active-filters.component.html`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: FilterMenuActiveFiltersComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'div[gui-filter-menu-active-filters][activeFilters]',\n template: `./filter-menu-active-filters.component.html`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n }]\n }], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { activeFilters: [{\n type: Input\n }], removedFilter: [{\n type: Output\n }] } });\n\nclass FilterMenuComponent extends SmartComponent {\n filterCommandInvoker;\n structureId = inject(StructureId);\n fieldWarehouse = inject(FieldWarehouse);\n filterWarehouse = inject(FilterWarehouse);\n selectedColumn;\n selectedField;\n filterTypes;\n selectedFilterTypeId;\n selectedValue;\n fields$ = this.fieldWarehouse.onFields(this.structureId);\n activeFilters$ = this.filterWarehouse.onActiveFilters(this.structureId);\n constructor(changeDetectorRef, elementRef, filterCommandInvoker) {\n super(changeDetectorRef, elementRef);\n this.filterCommandInvoker = filterCommandInvoker;\n this.addClassToHost('gui-block');\n }\n onFieldSelect(field) {\n this.selectedField = field;\n const filterTypeMapOpt = this.filterWarehouse.findFilterTypes(this.structureId);\n filterTypeMapOpt.ifPresent(filterTypeMap => {\n this.filterTypes = filterTypeMap.getFilterTypes(this.selectedField.getFieldId());\n this.reRender();\n });\n }\n onFilterTypeSelect(filterTypeId) {\n this.selectedFilterTypeId = filterTypeId;\n this.reRender();\n }\n removeAllFilters() {\n this.filterCommandInvoker.removeAll(this.structureId);\n }\n onValueChanged(value) {\n this.selectedValue = value;\n }\n addFilter() {\n const fieldId = this.selectedField.getFieldId(), filterTypeId = this.selectedFilterTypeId, value = this.selectedValue;\n this.filterCommandInvoker.add(fieldId, filterTypeId, value, this.structureId);\n this.clearAddFilterForm();\n }\n onRemovedFilter(filterId) {\n event.preventDefault();\n this.filterCommandInvoker.remove(filterId, this.structureId);\n }\n removeFilter() {\n }\n clearAddFilterForm() {\n this.selectedColumn = null;\n this.selectedField = null;\n this.selectedFilterTypeId = null;\n this.selectedValue = null;\n this.reRender();\n }\n getSelectorName() {\n return 'gui-filter-menu';\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: FilterMenuComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: FilterPublisher }], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"17.0.2\", type: FilterMenuComponent, selector: \"div[gui-filter-menu]\", usesInheritance: true, ngImport: i0, template: \"\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n

Filter menu

\\n\\n\\n
\\n
\\n\\n
\\n\\n\\t
\\n\\t
\\n\\n\\t
\\n\\t
\\n\\n\\t
\\n\\t
\\n\\n\\t\\n\\t\\n\\n
\\n\\n
\\n
\\n
\\n\\n\\n\\tAdd filter\\n\\n\\n
\\n
\\n
\\n\\n
\\n\\n\\t\\n\\n\\t\\n\\t\\n\\t\\n\\t\\n\\t\\n\\t\\n
\\n\\n\", dependencies: [{ kind: \"directive\", type: i4.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { kind: \"component\", type: i1$1.FabricButtonComponent, selector: \"button[gui-button], a[gui-button]\", inputs: [\"link\", \"text\"] }, { kind: \"component\", type: FilterTypeSelectorComponent, selector: \"div[gui-filter-type-selector][filterTypes]\", inputs: [\"filterTypes\"], outputs: [\"filterTypeSelected\"] }, { kind: \"component\", type: FilterValueComponent, selector: \"div[gui-filter-value]\", outputs: [\"valueChanged\"] }, { kind: \"component\", type: FieldSelectorComponent, selector: \"div[gui-field-selector][fields]\", inputs: [\"fields\"], outputs: [\"fieldSelected\"] }, { kind: \"component\", type: FilterMenuActiveFiltersComponent, selector: \"div[gui-filter-menu-active-filters][activeFilters]\", inputs: [\"activeFilters\"], outputs: [\"removedFilter\"] }, { kind: \"pipe\", type: GuiPushPipe, name: \"guiPush\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: FilterMenuComponent, decorators: [{\n type: Component,\n args: [{ selector: 'div[gui-filter-menu]', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: \"\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n

Filter menu

\\n\\n\\n
\\n
\\n\\n
\\n\\n\\t
\\n\\t
\\n\\n\\t
\\n\\t
\\n\\n\\t
\\n\\t
\\n\\n\\t\\n\\t\\n\\n
\\n\\n
\\n
\\n
\\n\\n\\n\\tAdd filter\\n\\n\\n
\\n
\\n
\\n\\n
\\n\\n\\t\\n\\n\\t\\n\\t\\n\\t\\n\\t\\n\\t\\n\\t\\n
\\n\\n\" }]\n }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: FilterPublisher }] });\n\nclass FilterMenuTriggerComponent extends SmartComponent {\n injector;\n fabricDialogService;\n structureId;\n filterWarehouse;\n activeFiltersExist$ = this.selectActiveFiltersExist();\n constructor(detector, elementRef, injector, fabricDialogService, structureId, filterWarehouse) {\n super(detector, elementRef);\n this.injector = injector;\n this.fabricDialogService = fabricDialogService;\n this.structureId = structureId;\n this.filterWarehouse = filterWarehouse;\n }\n openDrawer() {\n this.fabricDialogService.open({ component: FilterMenuComponent, injector: this.injector });\n }\n getSelectorName() {\n return 'gui-filter-menu-trigger';\n }\n selectActiveFiltersExist() {\n return this.filterWarehouse\n .onActiveFilters(this.structureId)\n .pipe(hermesMap((activeFilters) => {\n return activeFilters.length > 0;\n }));\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: FilterMenuTriggerComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.Injector }, { token: i1$1.FabricDialogService }, { token: StructureId }, { token: FilterWarehouse }], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"17.0.2\", type: FilterMenuTriggerComponent, selector: \"div[gui-filter-menu-trigger]\", usesInheritance: true, ngImport: i0, template: \"
\\n\\n\\t\\n\\t\\t
\\n\\t
\\n\\n\\t
\\n
\\n\", styles: [\".gui-filter-icon-wrapper{height:19px;margin-right:24px;position:relative;width:19px}.gui-filter-active{border:2px solid #aaa!important;border-radius:50%;height:27px;left:-6px;position:absolute;top:-6px;width:27px}.gui-filter-menu{width:600px}.gui-filter-icon svg{height:16px;width:16px}.gui-filter-icon svg .cls-1{fill:none;stroke:#aaa;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.5px;transition:stroke .3s ease-in-out}.gui-filter-icon:hover .cls-1{stroke:#464646}\\n\"], dependencies: [{ kind: \"directive\", type: i4.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { kind: \"directive\", type: i1$1.FabricTooltipDirective, selector: \"[gui-tooltip]\", inputs: [\"gui-tooltip\"], exportAs: [\"guiTooltip\"] }, { kind: \"directive\", type: GuiLetDirective, selector: \"[guiLet]\", inputs: [\"guiLet\"] }, { kind: \"component\", type: FilterIconComponent, selector: \"div[gui-filter-icon]\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: FilterMenuTriggerComponent, decorators: [{\n type: Component,\n args: [{ selector: 'div[gui-filter-menu-trigger]', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: \"
\\n\\n\\t\\n\\t\\t
\\n\\t
\\n\\n\\t
\\n
\\n\", styles: [\".gui-filter-icon-wrapper{height:19px;margin-right:24px;position:relative;width:19px}.gui-filter-active{border:2px solid #aaa!important;border-radius:50%;height:27px;left:-6px;position:absolute;top:-6px;width:27px}.gui-filter-menu{width:600px}.gui-filter-icon svg{height:16px;width:16px}.gui-filter-icon svg .cls-1{fill:none;stroke:#aaa;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.5px;transition:stroke .3s ease-in-out}.gui-filter-icon:hover .cls-1{stroke:#464646}\\n\"] }]\n }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.Injector }, { type: i1$1.FabricDialogService }, { type: StructureId }, { type: FilterWarehouse }] });\n\nclass ColumnSelectorComponent extends PureComponent {\n columns;\n columnSelected = new EventEmitter();\n constructor(elementRef) {\n super(elementRef);\n }\n onSelectChange(column) {\n this.columnSelected.emit(column);\n }\n getSelectorName() {\n return 'gui-column-selector';\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: ColumnSelectorComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"17.0.2\", type: ColumnSelectorComponent, selector: \"div[gui-column-selector][columns]\", inputs: { columns: \"columns\" }, outputs: { columnSelected: \"columnSelected\" }, usesInheritance: true, ngImport: i0, template: `./column-selector.component.html`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: ColumnSelectorComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'div[gui-column-selector][columns]',\n template: `./column-selector.component.html`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n }]\n }], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { columns: [{\n type: Input\n }], columnSelected: [{\n type: Output\n }] } });\n\nclass ToggleFilterCommand extends StructureCommand {\n fieldId;\n externalFilterId;\n filterValue;\n constructor(structureId, fieldId, externalFilterId, filterValue) {\n super(structureId, 'ToggleFilterCommand');\n this.fieldId = fieldId;\n this.externalFilterId = externalFilterId;\n this.filterValue = filterValue;\n }\n getFieldId() {\n return this.fieldId;\n }\n getExternalFilterId() {\n return this.externalFilterId;\n }\n getFilterValue() {\n return this.filterValue;\n }\n}\n\nclass FilterToggledEvent extends StructureDomainEvent {\n constructor(aggregateId) {\n super(aggregateId, null, 'FilterToggledEvent');\n }\n}\n\nclass ToggleFilterCommandHandler {\n domainEventPublisher = CoreContainer.resolve(DomainEventPublisher);\n forCommand() {\n return ToggleFilterCommand;\n }\n handle(aggregate, command) {\n const fieldId = command.getFieldId(), externalFieldId = command.getExternalFilterId(), filterValue = command.getFilterValue();\n aggregate.toggleFilter(fieldId, externalFieldId, filterValue);\n }\n publish(aggregate, command) {\n this.domainEventPublisher.publish(new FilterToggledEvent(command.getAggregateId()));\n }\n}\n\nclass AddFilterCommand extends StructureCommand {\n fieldId;\n filterTypeId;\n value;\n constructor(structureId, fieldId, filterTypeId, value) {\n super(structureId, 'AddFilterCommand');\n this.fieldId = fieldId;\n this.filterTypeId = filterTypeId;\n this.value = value;\n }\n getFieldId() {\n return this.fieldId;\n }\n getFilterTypeId() {\n return this.filterTypeId;\n }\n getValue() {\n return this.value;\n }\n}\n\nclass AddFilterCommandHandler {\n forCommand() {\n return AddFilterCommand;\n }\n handle(structure, command) {\n const fieldId = command.getFieldId(), filterTypeId = command.getFilterTypeId(), value = command.getValue();\n structure.addFilter(fieldId, filterTypeId, value);\n }\n}\n\nclass RemoveAllFiltersCommand extends StructureCommand {\n constructor(structureId) {\n super(structureId, 'RemoveAllFiltersCommand');\n }\n}\n\nclass RemoveAllFiltersCommandHandler {\n forCommand() {\n return RemoveAllFiltersCommand;\n }\n handle(structure, command) {\n structure.removeAllFilters();\n }\n}\n\nclass RemoveFilterCommand extends StructureCommand {\n filterId;\n constructor(structureId, filterId) {\n super(structureId, 'RemoveFilterCommand');\n this.filterId = filterId;\n }\n getFilterId() {\n return this.filterId;\n }\n}\n\nclass RemoveFilterCommandHandler {\n forCommand() {\n return RemoveFilterCommand;\n }\n handle(structure, command) {\n const filterId = command.getFilterId();\n structure.removeFilter(filterId);\n }\n}\n\nclass SetConfigFilterCommand extends StructureCommand {\n filterConfig;\n constructor(structureId, filterConfig) {\n super(structureId, 'SetConfigFilterCommand');\n this.filterConfig = filterConfig;\n }\n getConfig() {\n return this.filterConfig;\n }\n}\n\nclass ConfigFilterSetEvent extends StructureDomainEvent {\n enabled;\n constructor(aggregateId, enabled) {\n super(aggregateId, enabled, 'ConfigFilterSetEvent');\n this.enabled = enabled;\n }\n getEnabled() {\n return this.enabled;\n }\n}\n\nclass SetConfigFilterCommandHandler {\n domainEventPublisher = CoreContainer.resolve(DomainEventPublisher);\n forCommand() {\n return SetConfigFilterCommand;\n }\n handle(aggregate, command) {\n const filterConfig = command.getConfig();\n aggregate.setFilterConfig(filterConfig);\n }\n publish(aggregate, command) {\n const filterConfig = command.getConfig();\n this.domainEventPublisher.publish(new ConfigFilterSetEvent(command.getAggregateId(), filterConfig.enabled));\n }\n}\n\nclass SetConfigQuickFilterCommand extends StructureCommand {\n quickFiltersConfig;\n constructor(structureId, quickFiltersConfig) {\n super(structureId, 'SetConfigQuickFilterCommand');\n this.quickFiltersConfig = quickFiltersConfig;\n }\n getConfig() {\n return this.quickFiltersConfig;\n }\n}\n\nclass ConfigQuickFilterSetEvent extends StructureDomainEvent {\n enabled;\n constructor(aggregateId, enabled) {\n super(aggregateId, enabled, 'ConfigQuickFilterSetEvent');\n this.enabled = enabled;\n }\n getEnabled() {\n return this.enabled;\n }\n}\n\nclass SetConfigQuickFilterCommandHandler {\n domainEventPublisher = CoreContainer.resolve(DomainEventPublisher);\n forCommand() {\n return SetConfigQuickFilterCommand;\n }\n handle(aggregate, command) {\n const quickFiltersConfig = command.getConfig();\n aggregate.setQuickFiltersConfig(quickFiltersConfig);\n }\n publish(aggregate, command) {\n const structureId = command.getAggregateId(), quickFiltersConfig = command.getConfig();\n this.domainEventPublisher.publish(new ConfigQuickFilterSetEvent(structureId, quickFiltersConfig.enabled));\n }\n}\n\nclass Filter extends Entity {\n filterId;\n fieldId;\n filterTypeId;\n filterValue;\n constructor(filterId, fieldId, filterTypeId, filterValue) {\n super(filterId);\n this.filterId = filterId;\n this.fieldId = fieldId;\n this.filterTypeId = filterTypeId;\n this.filterValue = filterValue;\n }\n getFilterId() {\n return this.filterId;\n }\n getFilterTypeId() {\n return this.filterTypeId;\n }\n getFieldId() {\n return this.fieldId;\n }\n getFilterValue() {\n return this.filterValue;\n }\n}\n\nclass FilterSettings {\n filteringEnabled = false;\n searchEnabled = false;\n quickFiltersEnabled = false;\n constructor(filteringEnabled = false, searchEnabled = false, quickFiltersEnabled = false) {\n this.filteringEnabled = filteringEnabled;\n this.searchEnabled = searchEnabled;\n this.quickFiltersEnabled = quickFiltersEnabled;\n }\n isFilteringEnabled() {\n return this.filteringEnabled;\n }\n isQuickFilteringEnabled() {\n return this.quickFiltersEnabled;\n }\n isSearchingEnabled() {\n return this.searchEnabled;\n }\n setFilterConfig(config) {\n if (config && config.enabled !== undefined && config.enabled !== null) {\n this.filteringEnabled = config.enabled;\n }\n }\n setSearchingConfig(config) {\n if (config && config.enabled !== undefined && config.enabled !== null) {\n this.searchEnabled = config.enabled;\n }\n }\n setQuickFiltersConfig(config) {\n if (config && config.enabled !== undefined && config.enabled !== null) {\n this.quickFiltersEnabled = config.enabled;\n }\n }\n}\n\nclass BaseFilterType extends EntityId {\n // private readonly filterTypeId: FilterTypeId;\n constructor(filterTypeId) {\n super(filterTypeId);\n // this.filterTypeId = filterTypeId;\n }\n // getId(): FilterTypeId {\n // \treturn this.filterTypeId;\n // }\n toString() {\n return this.getId().toString();\n }\n filterMany(entities, field, value) {\n if (entities.length === 0) {\n return entities;\n }\n return entities.filter((item) => {\n return this.filterEntity(item, field, value);\n });\n }\n filterOne(entity, field, value) {\n return this.filterEntity(entity, field, value);\n }\n}\n\nclass ContainsFilterType extends BaseFilterType {\n constructor(filterTypeId) {\n super(filterTypeId);\n }\n getName() {\n return 'Contains';\n }\n filterEntity(entity, field, value) {\n const fieldValue = field.getValue(entity);\n return !!fieldValue.includes(value);\n }\n}\n\nclass FilterTypeId extends EntityId {\n id;\n constructor(id) {\n super(id);\n this.id = id;\n }\n toString() {\n return this.id;\n }\n}\n\nclass FilterTypeIdGenerator {\n static index = 0;\n generate() {\n FilterTypeIdGenerator.index += 1;\n return new FilterTypeId(`${FilterTypeIdGenerator.index}`);\n }\n}\n\nclass FilterTypeModel {\n filterTypeId;\n name;\n constructor(id, name) {\n this.filterTypeId = id;\n this.name = name;\n }\n getId() {\n return this.filterTypeId;\n }\n getName() {\n return this.name;\n }\n}\n\nclass FilterTypeManager {\n fieldIds = [];\n map = new WeakMap();\n filterTypeMap = new WeakMap();\n dataTypeToFilterType = new Map();\n filterTypeIdGenerator = new FilterTypeIdGenerator();\n constructor(fields) {\n this.assignFilterTypes();\n this.addFields(fields);\n }\n getFilterType(filterTypeId) {\n return this.filterTypeMap.get(filterTypeId);\n }\n getFieldIdsToFilterTypes() {\n const map = new Map();\n for (const fieldId of this.fieldIds) {\n const filterTypes = this.map.get(fieldId), readModels = filterTypes.map(f => {\n return new FilterTypeModel(f.getId(), f.getName());\n });\n map.set(fieldId.toString(), readModels);\n }\n return map;\n }\n addFields(fields) {\n for (const field of fields) {\n this.addField(field);\n }\n }\n addField(field) {\n const fieldId = field.getId(), dataType = field.getDataType();\n const filterTypesFromDataType = this.dataTypeToFilterType.get(dataType);\n this.fieldIds.push(fieldId);\n this.map.set(fieldId, Array.from(filterTypesFromDataType));\n }\n assignFilterTypes() {\n this.assignFilterTypesForDataTypeUnknown();\n this.assignFilterTypesForDataTypeNumber();\n this.assignFilterTypesForDataTypeString();\n this.assignFilterTypesForDataTypeBoolean();\n this.assignFilterTypesForDataTypeDate();\n this.assignFilterTypesForDataTypeCustom();\n }\n assignFilterTypesForDataTypeUnknown() {\n this.dataTypeToFilterType.set(DataType.UNKNOWN, []);\n }\n assignFilterTypesForDataTypeNumber() {\n this.dataTypeToFilterType.set(DataType.NUMBER, []);\n }\n assignFilterTypesForDataTypeString() {\n const filterTypes = [\n new ContainsFilterType(this.generateId())\n ];\n this.dataTypeToFilterType.set(DataType.STRING, filterTypes);\n this.addFilterTypes(filterTypes);\n }\n assignFilterTypesForDataTypeBoolean() {\n this.dataTypeToFilterType.set(DataType.BOOLEAN, []);\n }\n assignFilterTypesForDataTypeDate() {\n this.dataTypeToFilterType.set(DataType.DATE, []);\n }\n assignFilterTypesForDataTypeCustom() {\n this.dataTypeToFilterType.set(DataType.CUSTOM, []);\n }\n generateId() {\n return this.filterTypeIdGenerator.generate();\n }\n addFilterTypes(filterTypes) {\n for (const filterType of filterTypes) {\n this.filterTypeMap.set(filterType.getId(), filterType);\n }\n }\n}\n\nclass FilterId extends EntityId {\n constructor(filterId) {\n super(filterId);\n }\n toString() {\n return this.getId();\n }\n}\n\nclass FilterIdGenerator {\n static index = 0;\n static generateId() {\n return new FilterId(`${FilterIdGenerator.index}`);\n }\n}\n\nclass ActiveFilterModel {\n filterId;\n fieldName;\n filterTypeName;\n value;\n constructor(filterId, fieldName, filterTypeName, value) {\n this.filterId = filterId;\n this.fieldName = fieldName;\n this.filterTypeName = filterTypeName;\n this.value = value;\n }\n getText() {\n return `${this.fieldName}: ${this.filterTypeName}: ${this.value}`;\n }\n getFilterId() {\n return this.filterId;\n }\n getFieldName() {\n return this.fieldName;\n }\n getFilterTypeName() {\n return this.filterTypeName;\n }\n getValue() {\n return this.value;\n }\n}\n\nclass FilterManager {\n filterSettings = new FilterSettings();\n // string -> FilterId\n filters = new Map();\n activeFilters = [];\n filterTypeManager;\n constructor() {\n }\n getSettings() {\n return this.filterSettings;\n }\n getAll() {\n return Array.from(this.filters)\n .map((arr) => arr[1]);\n }\n getAllActiveFilters(fields) {\n return this.activeFilters\n .map((af) => {\n return new ActiveFilterModel(af.getFilterId(), (fields.get(af.getFieldId().toString())).getName(), this.filterTypeManager.getFilterType(af.getFilterTypeId()).getName(), af.getFilterValue());\n });\n }\n getFilterTypes() {\n return this.filterTypeManager.getFieldIdsToFilterTypes();\n }\n assignFilterTypes(fields) {\n this.filterTypeManager = new FilterTypeManager(fields);\n }\n add(fieldId, filterTypeId, value) {\n const filter = new Filter(FilterIdGenerator.generateId(), fieldId, filterTypeId, value);\n this.activeFilters.push(filter);\n }\n filter(entities, fields) {\n let filteredEntities = Array.from(entities);\n for (const filter of this.activeFilters) {\n const filterTypeId = filter.getFilterTypeId(), filterType = this.getFilterType(filterTypeId), value = filter.getFilterValue();\n filteredEntities = filterType.filterMany(filteredEntities, fields.get(filter.getFieldId().toString()), value);\n }\n return filteredEntities;\n }\n removeAll() {\n this.activeFilters.length = 0;\n }\n remove(filterId) {\n this.activeFilters =\n this.activeFilters.filter((filter) => {\n return filter.getFilterId() !== filterId;\n });\n }\n getFilterType(filterTypeId) {\n return this.filterTypeManager.getFilterType(filterTypeId);\n }\n}\n\nclass FilterManagerFactory {\n create(enabled = false) {\n return new FilterManager();\n }\n}\n\nclass QuickFilterEnabledArchive extends AggregateArchive {\n static default = false;\n constructor() {\n super(QuickFilterEnabledArchive.default);\n }\n}\n\nclass ConfigQuickFilterSetEventHandler {\n quickFilterEnabledArchive;\n constructor(quickFilterEnabledArchive) {\n this.quickFilterEnabledArchive = quickFilterEnabledArchive;\n }\n static services = [QuickFilterEnabledArchive];\n forEvent() {\n return ConfigQuickFilterSetEvent;\n }\n handle(event) {\n if (event.ofMessageType('ConfigQuickFilterSetEvent')) {\n this.quickFilterEnabledArchive.next(event.getAggregateId(), event.getEnabled());\n }\n }\n}\n\nclass FilterEnabledArchive extends AggregateArchive {\n static default = false;\n constructor() {\n super(FilterEnabledArchive.default);\n }\n}\n\nclass ConfigFilterSetEventHandler {\n filterEnabledArchive;\n constructor(filterEnabledArchive) {\n this.filterEnabledArchive = filterEnabledArchive;\n }\n static services = [FilterEnabledArchive];\n forEvent() {\n return ConfigFilterSetEvent;\n }\n handle(event) {\n if (event.ofMessageType('ConfigFilterSetEvent')) {\n this.filterEnabledArchive.next(event.getAggregateId(), event.getEnabled());\n }\n }\n}\n\nclass FilterTypeCollectionModel {\n map; // = new WeakMap>();\n constructor(map) {\n this.map = map;\n }\n getFilterTypes(fieldId) {\n const result = this.map.get(fieldId.toString());\n if (result === undefined) {\n return [];\n }\n else {\n return result;\n }\n }\n}\n\nclass FilterTypeArchive extends AggregateArchive {\n static default = new FilterTypeCollectionModel(new Map());\n constructor() {\n super(FilterTypeArchive.default);\n }\n}\n\nclass FilterTypesInitedEvent extends StructureDomainEvent {\n map;\n constructor(aggregateId, map) {\n super(aggregateId, map, 'FilterTypesInitedEvent');\n this.map = map;\n }\n getMap() {\n return this.map;\n }\n}\n\nclass ActiveFilterArchive extends AggregateArchive {\n static default = [];\n constructor() {\n super(ActiveFilterArchive.default);\n }\n}\n\nconst filterDiContainer = createContainer();\nfilterDiContainer.provide(ActiveFilterArchive);\nfilterDiContainer.provide(FilterTypeArchive);\nconst FilterDiContainer = filterDiContainer;\n\nclass FilterTypeConfigFilterSetEventHandler {\n filterTypeArchive = FilterDiContainer.resolve(FilterTypeArchive);\n forEvent() {\n return FilterTypesInitedEvent;\n }\n handle(filterTypesInitedEvent) {\n if (filterTypesInitedEvent.ofMessageType('FilterTypesInitedEvent')) {\n const map = filterTypesInitedEvent.getMap();\n this.filterTypeArchive.next(filterTypesInitedEvent.getAggregateId(), new FilterTypeCollectionModel(map));\n }\n }\n}\n\nclass ActiveFiltersSetEvent extends StructureDomainEvent {\n filters;\n constructor(structureId, filters) {\n super(structureId, filters, 'ActiveFiltersSetEvent');\n this.filters = filters;\n }\n getFilters() {\n return this.filters;\n }\n}\n\nclass ActiveFiltersSetEventHandler {\n activeFilterRepository = FilterDiContainer.resolve(ActiveFilterArchive);\n forEvent() {\n return ActiveFiltersSetEvent;\n }\n handle(activeFiltersSetEvent) {\n if (activeFiltersSetEvent.ofMessageType('ActiveFiltersSetEvent')) {\n const activeFilters = activeFiltersSetEvent.getFilters();\n this.activeFilterRepository.next(activeFiltersSetEvent.getAggregateId(), activeFilters);\n }\n }\n}\n\nclass UniqueFilterCalculatedEvent extends StructureDomainEvent {\n map;\n constructor(aggregateId, map) {\n super(aggregateId, map, 'UniqueFilterCalculatedEvent');\n this.map = map;\n }\n getUniqueValues() {\n return this.map;\n }\n}\n\nclass UniqueValueCollectionModel {\n map = new Map();\n allSelected = new Map();\n allDisabled = new Map();\n constructor(map) {\n this.map = map;\n this.calculateSelection();\n }\n getValues(fieldId) {\n return this.map.get(fieldId.toString());\n }\n areAllSelected(fieldId) {\n return this.allSelected.get(fieldId.toString());\n }\n areAllDisabled(fieldId) {\n return this.allDisabled.get(fieldId.toString());\n }\n isSelectAllChecked(fieldId) {\n return this.areAllSelected(fieldId);\n }\n isIndeterminate(fieldId) {\n return !(this.areAllSelected(fieldId) || this.areAllDisabled(fieldId));\n }\n calculateSelection() {\n for (const key of Array.from(this.map.keys())) {\n const values = this.map.get(key);\n this.allSelected.set(key, !values.some((r) => !r.isEnabled()));\n this.allDisabled.set(key, !values.some((r) => r.isEnabled()));\n }\n }\n}\n\nclass UniqueValueCollectionArchive extends AggregateArchive {\n static default = new UniqueValueCollectionModel(new Map());\n constructor() {\n super(UniqueValueCollectionArchive.default);\n }\n}\n\nclass UniqueValueModel {\n id;\n value;\n displayValue;\n enabled;\n constructor(id, value, enabled) {\n this.id = id;\n this.value = value;\n this.enabled = enabled;\n }\n getId() {\n return this.id;\n }\n getValue() {\n return this.value;\n }\n geDisplayValue() {\n return this.displayValue;\n }\n isEnabled() {\n return this.enabled;\n }\n}\n\nclass UniqueFilterCalculatedEventHandler {\n uniqueValuesRepository;\n constructor(uniqueValuesRepository) {\n this.uniqueValuesRepository = uniqueValuesRepository;\n }\n static services = [UniqueValueCollectionArchive];\n forEvent() {\n return UniqueFilterCalculatedEvent;\n }\n handle(calculatedEvent) {\n if (calculatedEvent.ofMessageType('UniqueFilterCalculatedEvent')) {\n const uvRM = new Map();\n calculatedEvent.getUniqueValues()\n .forEach((values, key) => {\n const valuesRM = values.map((uv) => {\n return new UniqueValueModel(uv.getId(), uv.getDisplayValue(), uv.isEnabled());\n });\n uvRM.set(key, valuesRM);\n });\n const uniqueValues = new UniqueValueCollectionModel(uvRM);\n this.uniqueValuesRepository.next(calculatedEvent.getAggregateId(), uniqueValues);\n }\n }\n}\n\n// TODO Remove\nclass FilterTypeFieldsInitedEventHandler {\n // constructor(private readonly filterTypeManagerRepository: FilterTypeManagerRepository,\n // \t\t\tprivate readonly domainEventPublisher: DomainEventPublisher) {\n // }\n forEvent() {\n return FieldsInitedEvent;\n }\n handle(fieldsInitedEvent) {\n // if (fieldsInitedEvent.ofMessageType('FieldsInitedEvent')) {\n //\n // \tconst fields = fieldsInitedEvent.getFields();\n //\n // \tconst manager = new FilterTypeManager(fields);\n //\n // \tthis.filterTypeManagerRepository.next(fieldsInitedEvent.getAggregateId(), manager);\n //\n // \tthis.domainEventPublisher.publish(new FilterTypesInitedEvent(fieldsInitedEvent.getAggregateId(), manager.getFieldIdsToFieldTypes()));\n // }\n }\n}\n\nclass UnselectAllUniqueFilterCommand extends StructureCommand {\n fieldId;\n constructor(structureId, fieldId) {\n super(structureId, 'UnselectAllUniqueFilterCommand');\n this.fieldId = fieldId;\n }\n getFieldId() {\n return this.fieldId;\n }\n}\n\nclass UnselectAllUniqueFilterCommandHandler {\n forCommand() {\n return UnselectAllUniqueFilterCommand;\n }\n handle(structure, command) {\n const fieldId = command.getFieldId();\n structure.unselectAllUniqueFilter(fieldId);\n }\n}\n\nclass UnselectUniqueFilterCommand extends StructureCommand {\n fieldId;\n uniqueValueId;\n constructor(structureId, fieldId, uniqueValueId) {\n super(structureId, 'UnselectUniqueFilterCommand');\n this.fieldId = fieldId;\n this.uniqueValueId = uniqueValueId;\n }\n getFieldId() {\n return this.fieldId;\n }\n getUniqueValueId() {\n return this.uniqueValueId;\n }\n}\n\nclass UnselectUniqueFilterCommandHandler {\n forCommand() {\n return UnselectUniqueFilterCommand;\n }\n handle(structure, command) {\n const fieldId = command.getFieldId(), uniqueValueId = command.getUniqueValueId();\n structure.unselectUniqueFilter(fieldId, uniqueValueId);\n }\n}\n\nclass SelectAllUniqueFilterCommand extends StructureCommand {\n fieldId;\n constructor(structureId, fieldId) {\n super(structureId, 'SelectAllUniqueFilterCommand');\n this.fieldId = fieldId;\n }\n getFieldId() {\n return this.fieldId;\n }\n}\n\nclass SelectAllUniqueFilterCommandHandler {\n forCommand() {\n return SelectAllUniqueFilterCommand;\n }\n handle(structure, command) {\n const fieldId = command.getFieldId();\n structure.selectAllUniqueFilter(fieldId);\n }\n}\n\nclass SelectUniqueFilterCommand extends StructureCommand {\n fieldId;\n uniqueValueId;\n constructor(structureId, fieldId, uniqueValueId) {\n super(structureId, 'SelectUniqueFilterCommand');\n this.fieldId = fieldId;\n this.uniqueValueId = uniqueValueId;\n }\n getFieldId() {\n return this.fieldId;\n }\n getUniqueValueId() {\n return this.uniqueValueId;\n }\n}\n\nclass SelectUniqueFilterCommandHandler {\n forCommand() {\n return SelectUniqueFilterCommand;\n }\n handle(structure, command) {\n const fieldId = command.getFieldId(), uniqueValueId = command.getUniqueValueId();\n structure.selectUniqueFilter(fieldId, uniqueValueId);\n }\n}\n\nclass FilterDomainModule {\n defineAggregate() {\n return null;\n }\n registerKey() {\n return structureKey;\n }\n registerProviders(container) {\n container.provide(FilterManagerFactory);\n }\n registerCommandHandlers() {\n return [\n SetConfigFilterCommandHandler,\n SetConfigQuickFilterCommandHandler,\n ToggleFilterCommandHandler,\n AddFilterCommandHandler,\n RemoveAllFiltersCommandHandler,\n RemoveFilterCommandHandler,\n SelectUniqueFilterCommandHandler,\n SelectAllUniqueFilterCommandHandler,\n UnselectUniqueFilterCommandHandler,\n UnselectAllUniqueFilterCommandHandler\n ];\n }\n registerDomainEventHandler() {\n return [\n ConfigQuickFilterSetEventHandler,\n ConfigFilterSetEventHandler,\n FilterTypeConfigFilterSetEventHandler,\n ActiveFiltersSetEventHandler,\n UniqueFilterCalculatedEventHandler,\n FilterTypeFieldsInitedEventHandler\n ];\n }\n registerMultiDomainEventHandler() {\n return [];\n }\n}\n\nclass FilterDomainWarehouse extends FilterWarehouse {\n filterEnabledArchive;\n structureQuickFilterRepository;\n uniqueValuesArchive;\n activeFilterArchive = FilterDiContainer.resolve(ActiveFilterArchive);\n filterTypeArchive = FilterDiContainer.resolve(FilterTypeArchive);\n constructor(filterEnabledArchive, structureQuickFilterRepository, uniqueValuesArchive) {\n super();\n this.filterEnabledArchive = filterEnabledArchive;\n this.structureQuickFilterRepository = structureQuickFilterRepository;\n this.uniqueValuesArchive = uniqueValuesArchive;\n }\n static services = [FilterEnabledArchive, QuickFilterEnabledArchive, UniqueValueCollectionArchive];\n onFilteringEnabled(structureId) {\n return this.filterEnabledArchive.on(structureId);\n }\n onQuickFiltersEnabled(structureId) {\n return this.structureQuickFilterRepository.on(structureId);\n }\n onFilterTypes(structureId) {\n return this.filterTypeArchive.on(structureId);\n }\n findFilterTypes(structureId) {\n return this.filterTypeArchive.find(structureId);\n }\n onFilterTypesForFieldId(fieldId, structureId) {\n return this.onFilterTypes(structureId)\n .pipe(hermesMap((map) => {\n return map.getFilterTypes(fieldId);\n }));\n }\n onActiveFilters(structureId) {\n return this.activeFilterArchive.on(structureId);\n }\n findFilters(structureId) {\n return this.activeFilterArchive.find(structureId);\n }\n onUniqueValues(structureId) {\n return this.uniqueValuesArchive.on(structureId);\n }\n onceFilterTypeId(fieldId, filterTypeName, structureId) {\n return singleFromObservable(this.onFilterTypes(structureId)\n .pipe(hermesMap((map) => {\n const filterTypes = map.getFilterTypes(fieldId);\n const filterType = filterTypes.find((fieldType) => fieldType.getName() === filterTypeName);\n if (filterType === undefined) {\n return Optional.empty();\n }\n else {\n return Optional.of(filterType.getId());\n }\n })));\n }\n}\n\nclass FilterDomainPublisher extends FilterPublisher {\n commandDispatcher;\n constructor(commandDispatcher) {\n super();\n this.commandDispatcher = commandDispatcher;\n }\n static services = [CommandDispatcher];\n setConfig(config, structureId) {\n this.commandDispatcher.dispatch(new SetConfigFilterCommand(structureId, config));\n }\n add(fieldId, filterTypeId, value, structureId) {\n this.commandDispatcher.dispatch(new AddFilterCommand(structureId, fieldId, filterTypeId, value));\n }\n removeAll(structureId) {\n this.commandDispatcher.dispatch(new RemoveAllFiltersCommand(structureId));\n }\n remove(filterId, structureId) {\n this.commandDispatcher.dispatch(new RemoveFilterCommand(structureId, filterId));\n }\n selectAllUniqueFilter(fieldId, structureId) {\n this.commandDispatcher.dispatch(new SelectAllUniqueFilterCommand(structureId, fieldId));\n }\n unselectAllUniqueFilter(fieldId, structureId) {\n this.commandDispatcher.dispatch(new UnselectAllUniqueFilterCommand(structureId, fieldId));\n }\n selectUniqueFilter(fieldId, uniqueValueId, structureId) {\n this.commandDispatcher.dispatch(new SelectUniqueFilterCommand(structureId, fieldId, uniqueValueId));\n }\n unselectUniqueFilter(fieldId, uniqueValueId, structureId) {\n this.commandDispatcher.dispatch(new UnselectUniqueFilterCommand(structureId, fieldId, uniqueValueId));\n }\n}\n\nclass FilterApiModule {\n registerProviders(container) {\n container.provide(FilterPublisher, FilterDomainPublisher);\n container.provide(FilterWarehouse, FilterDomainWarehouse);\n container.provide(UniqueValueCollectionArchive);\n container.provide(FilterEnabledArchive);\n container.provide(QuickFilterEnabledArchive);\n container.provide(FilterIntegration);\n }\n}\nfunction initializeFilter() {\n new DomainInitializer(new FilterApiModule(), new FilterDomainModule()).init();\n}\n\ninitializeFilter();\nfunction provideFilterCommandInvoker() {\n return CoreContainer.resolve(FilterPublisher);\n}\nfunction provideFilterWarehouse() {\n return CoreContainer.resolve(FilterWarehouse);\n}\nfunction provideFilterIntegration() {\n return CoreContainer.resolve(FilterIntegration);\n}\nclass FilterFeatureModule {\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: FilterFeatureModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\n static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"17.0.2\", ngImport: i0, type: FilterFeatureModule });\n static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: FilterFeatureModule, providers: [\n { provide: FilterPublisher, useFactory: provideFilterCommandInvoker },\n { provide: FilterWarehouse, useFactory: provideFilterWarehouse },\n { provide: FilterIntegration, useFactory: provideFilterIntegration }\n ] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: FilterFeatureModule, decorators: [{\n type: NgModule,\n args: [{\n providers: [\n { provide: FilterPublisher, useFactory: provideFilterCommandInvoker },\n { provide: FilterWarehouse, useFactory: provideFilterWarehouse },\n { provide: FilterIntegration, useFactory: provideFilterIntegration }\n ]\n }]\n }] });\n\nclass ActiveFilterListModule extends FeatureModule {\n static forComponent() {\n return [];\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: ActiveFilterListModule, deps: null, target: i0.ɵɵFactoryTarget.NgModule });\n static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"17.0.2\", ngImport: i0, type: ActiveFilterListModule, declarations: [ActiveFilterListComponent,\n ActiveSearchComponent], imports: [CommonModule, i1$1.FabricBadgeModule, i1$1.FabricButtonModule, i1$1.FabricButtonGroupModule, i1$1.FabricCheckboxModule, i1$1.FabricChipModule, i1$1.FabricDrawerModule, i1$1.FabricDropdownModule, i1$1.FabricRadioButtonModule, i1$1.FabricRadioGroupModule, i1$1.FabricProgressBarModule, i1$1.FabricProgressSpinnerModule, i1$1.FabricSelectModule, i1$1.FabricSpinnerModule, i1$1.FabricTabModule, i1$1.FabricTooltipModule, i1$1.FabricToggleButtonModule, i1$1.FabricInputModule, i1$1.FabricDialogModule, i1$1.FabricInlineDialogModule, i1$1.FabricTabModule, GuiTemplateModule,\n FilterFeatureModule], exports: [ActiveFilterListComponent] });\n static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: ActiveFilterListModule, imports: [CommonModule,\n fabricImports,\n GuiTemplateModule,\n FilterFeatureModule] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: ActiveFilterListModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [\n CommonModule,\n fabricImports,\n GuiTemplateModule,\n FilterFeatureModule\n ],\n declarations: [\n ActiveFilterListComponent,\n ActiveSearchComponent\n ],\n exports: [\n ActiveFilterListComponent\n ]\n }]\n }] });\n\nclass FilterMenuFeatureModule extends FeatureModule {\n static forComponent() {\n return [];\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: FilterMenuFeatureModule, deps: null, target: i0.ɵɵFactoryTarget.NgModule });\n static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"17.0.2\", ngImport: i0, type: FilterMenuFeatureModule, declarations: [FilterIconComponent,\n FilterMenuComponent,\n FilterMenuTriggerComponent,\n ColumnSelectorComponent,\n FilterTypeSelectorComponent,\n FilterValueComponent,\n FieldSelectorComponent,\n FilterMenuActiveFiltersComponent], imports: [CommonModule,\n FabricModule,\n ReactiveFormsModule,\n GuiTemplateModule,\n FilterFeatureModule,\n ActiveFilterListModule], exports: [FilterMenuTriggerComponent] });\n static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: FilterMenuFeatureModule, imports: [CommonModule,\n FabricModule,\n ReactiveFormsModule,\n GuiTemplateModule,\n FilterFeatureModule,\n ActiveFilterListModule] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: FilterMenuFeatureModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [\n CommonModule,\n FabricModule,\n ReactiveFormsModule,\n GuiTemplateModule,\n FilterFeatureModule,\n ActiveFilterListModule\n ],\n declarations: [\n FilterIconComponent,\n FilterMenuComponent,\n FilterMenuTriggerComponent,\n ColumnSelectorComponent,\n FilterTypeSelectorComponent,\n FilterValueComponent,\n FieldSelectorComponent,\n FilterMenuActiveFiltersComponent\n ],\n exports: [\n FilterMenuTriggerComponent\n ]\n }]\n }] });\n\nclass SourceCounterFeatureModule extends FeatureModule {\n static forComponent() {\n return [];\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: SourceCounterFeatureModule, deps: null, target: i0.ɵɵFactoryTarget.NgModule });\n static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"17.0.2\", ngImport: i0, type: SourceCounterFeatureModule, declarations: [ActiveFilterMenuTriggerDirective,\n ActiveFilterMenuComponent], imports: [CommonModule,\n FilterMenuFeatureModule,\n ActiveFilterListModule,\n FabricButtonModule], exports: [ActiveFilterMenuTriggerDirective] });\n static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: SourceCounterFeatureModule, providers: [\n ActiveFilterService\n ], imports: [CommonModule,\n FilterMenuFeatureModule,\n ActiveFilterListModule,\n FabricButtonModule] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: SourceCounterFeatureModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [\n CommonModule,\n FilterMenuFeatureModule,\n ActiveFilterListModule,\n FabricButtonModule\n ],\n declarations: [\n ActiveFilterMenuTriggerDirective,\n ActiveFilterMenuComponent\n ],\n exports: [\n ActiveFilterMenuTriggerDirective\n ],\n providers: [\n ActiveFilterService\n ]\n }]\n }] });\n\nclass StructureInfoPanelModule {\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureInfoPanelModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\n static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureInfoPanelModule, declarations: [StructureInfoPanelComponent,\n StructureInfoModalComponent,\n StructureInfoIconComponent], imports: [CommonModule,\n NumberFormatterModule,\n FabricModule,\n StructureColumnManagerModule,\n SchemaManagerModule,\n SourceCounterFeatureModule,\n TranslationFeatureModule,\n GuiTemplateModule], exports: [StructureInfoModalComponent,\n StructureInfoPanelComponent] });\n static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureInfoPanelModule, providers: [\n StructureInfoPanelConfigConverter\n ], imports: [CommonModule,\n NumberFormatterModule,\n FabricModule,\n StructureColumnManagerModule,\n SchemaManagerModule,\n SourceCounterFeatureModule,\n TranslationFeatureModule,\n GuiTemplateModule] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureInfoPanelModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [\n CommonModule,\n NumberFormatterModule,\n FabricModule,\n StructureColumnManagerModule,\n SchemaManagerModule,\n SourceCounterFeatureModule,\n TranslationFeatureModule,\n GuiTemplateModule\n ],\n declarations: [\n StructureInfoPanelComponent,\n StructureInfoModalComponent,\n StructureInfoIconComponent\n ],\n exports: [\n StructureInfoModalComponent,\n StructureInfoPanelComponent\n ],\n providers: [\n StructureInfoPanelConfigConverter\n ]\n }]\n }] });\n\nclass StructureHeaderFilterComponent extends SmartComponent {\n changeDetectorRef;\n structureFilterCommandService;\n structureId;\n column;\n sub = new ChangedValueEmitter();\n editContext;\n constructor(changeDetectorRef, elementRef, structureFilterCommandService, structureId) {\n super(changeDetectorRef, elementRef);\n this.changeDetectorRef = changeDetectorRef;\n this.structureFilterCommandService = structureFilterCommandService;\n this.structureId = structureId;\n this.editContext = {\n changes: this.sub\n };\n }\n ngOnInit() {\n this.sub\n .on()\n .subscribe((phrase) => this.filter(phrase));\n }\n filter(phrase) {\n // this.structureFilterCommandService.addFilter(this.column.getFieldId(), '1', phrase, this.structureId);\n }\n getSelectorName() {\n return 'gui-structure-header-filter';\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureHeaderFilterComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: FilterPublisher }, { token: StructureId }], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"17.0.2\", type: StructureHeaderFilterComponent, selector: \"gui-structure-header-filter\", inputs: { column: \"column\" }, usesInheritance: true, ngImport: i0, template: \"\\n\\n\\n\\n\\n\\n\\n\\n\", dependencies: [{ kind: \"component\", type: i1$1.FabricButtonComponent, selector: \"button[gui-button], a[gui-button]\", inputs: [\"link\", \"text\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureHeaderFilterComponent, decorators: [{\n type: Component,\n args: [{ selector: 'gui-structure-header-filter', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: \"\\n\\n\\n\\n\\n\\n\\n\\n\" }]\n }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: FilterPublisher }, { type: StructureId }], propDecorators: { column: [{\n type: Input\n }] } });\n\nclass StructureQuickFiltersComponent {\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureQuickFiltersComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"17.0.2\", type: StructureQuickFiltersComponent, selector: \"div[gui-structure-quick-filters]\", ngImport: i0, template: `\n\n\t\tQuickFilters\n\n\t`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureQuickFiltersComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'div[gui-structure-quick-filters]',\n template: `\n\n\t\tQuickFilters\n\n\t`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n }]\n }] });\n\nclass ConsoleLogger extends Logger {\n warn(text) {\n // eslint-disable-next-line no-console\n console.warn(text);\n }\n error(text) {\n // eslint-disable-next-line no-console\n console.error(text);\n }\n}\n\nfunction initializeLogger() {\n CoreContainer.provide(Logger, ConsoleLogger);\n}\ninitializeLogger();\nfunction provideLogger() {\n return CoreContainer.resolve(Logger);\n}\nclass LoggerModule {\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: LoggerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\n static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"17.0.2\", ngImport: i0, type: LoggerModule });\n static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: LoggerModule, providers: [\n { provide: Logger, useFactory: provideLogger }\n ] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: LoggerModule, decorators: [{\n type: NgModule,\n args: [{\n providers: [\n { provide: Logger, useFactory: provideLogger }\n ]\n }]\n }] });\n\nclass Item {\n id;\n source;\n position;\n version = 0;\n constructor(source, position, id, version = 0) {\n this.source = source;\n this.position = position;\n this.version = version;\n if (!id) {\n this.id = RandomStringGenerator.generate();\n }\n else {\n this.id = id;\n }\n }\n getSourceItem() {\n return this.source;\n }\n getUiId() {\n return 'gui' + this.id.replace(/-/g, '');\n }\n getId() {\n return this.id;\n }\n getVersion() {\n return this.version;\n }\n getPosition() {\n return this.position;\n }\n isSelected() {\n return false;\n }\n isEven() {\n return this.position % 2 === 0;\n }\n isOdd() {\n return this.position % 2 === 1;\n }\n equals(entity) {\n return this.id === entity.id && this.getVersion() === entity.getVersion();\n }\n equalsById(id) {\n return this.id === id;\n }\n}\n\nclass ItemEntity extends Entity {\n sourceItem; // tODO\n version;\n position;\n constructor(id, sourceItem, position, version = 0) {\n super(id);\n this.sourceItem = sourceItem;\n this.position = position;\n this.version = version;\n }\n getSourceItem() {\n return this.sourceItem;\n }\n getVersion() {\n return this.version;\n }\n getPosition() {\n return this.position;\n }\n bumpVersion() {\n this.version += 1;\n }\n setPosition(position) {\n this.position = position;\n }\n clone() {\n const rawData = { ...this.sourceItem };\n return new ItemEntity(this.getId(), rawData, this.version);\n }\n}\n\nclass ItemFactory {\n create(source) {\n if (Array.isArray(source)) {\n return this.createItems(source);\n }\n else {\n return this.createItem(source);\n }\n }\n createItems(source) {\n return source.map((source) => this.createItem(source));\n }\n createItem(originItem) {\n if (originItem instanceof ItemEntity) {\n return new Item(originItem.sourceItem, originItem.getPosition(), originItem.getId().toString(), originItem.getVersion());\n }\n else {\n return new Item(originItem, 0);\n }\n }\n}\n\nclass SetConfigSearchingCommand extends StructureCommand {\n searchConfig;\n constructor(structureId, searchConfig) {\n super(structureId, 'SetConfigSearchingCommand');\n this.searchConfig = searchConfig;\n }\n getConfig() {\n return this.searchConfig;\n }\n}\n\nclass ConfigSearchingSetEvent extends StructureDomainEvent {\n enabled;\n constructor(aggregateId, enabled) {\n super(aggregateId, enabled, 'ConfigSearchingSetEvent');\n this.enabled = enabled;\n }\n isEnabled() {\n return this.enabled;\n }\n}\n\nclass SetConfigSearchingCommandHandler {\n domainEventPublisher = CoreContainer.resolve(DomainEventPublisher);\n forCommand() {\n return SetConfigSearchingCommand;\n }\n handle(aggregate, command) {\n const searchingConfig = command.getConfig();\n aggregate.setSearchingConfig(searchingConfig);\n }\n publish(aggregate, command) {\n const searchingConfig = command.getConfig();\n this.domainEventPublisher.publish(new ConfigSearchingSetEvent(command.getAggregateId(), searchingConfig.enabled));\n }\n}\n\nclass SetSearchPhraseCommand extends StructureCommand {\n phrase;\n initial;\n constructor(structureId, phrase, initial) {\n super(structureId, 'SetSearchPhraseCommand');\n this.phrase = phrase;\n this.initial = initial;\n }\n getPhrase() {\n return this.phrase;\n }\n isInitial() {\n return this.initial;\n }\n}\n\nclass SearchPhraseSetDomainEvent extends StructureDomainEvent {\n phrase;\n initial;\n constructor(aggregateId, phrase, initial) {\n super(aggregateId, { phrase, initial }, 'SearchPhraseSetDomainEvent');\n this.phrase = phrase;\n this.initial = initial;\n }\n getPhrase() {\n return this.phrase;\n }\n isInitial() {\n return this.initial;\n }\n}\n\nclass OriginSetEvent extends StructureDomainEvent {\n origin;\n constructor(aggregateId, origin) {\n super(aggregateId, origin, 'OriginSetEvent');\n this.origin = origin;\n }\n getOrigin() {\n return this.origin;\n }\n}\n\nclass StructureSummariesChangedEvent extends StructureDomainEvent {\n values;\n constructor(structureId, values) {\n super(structureId, values, 'StructureSummariesChangedEvent');\n this.values = values;\n }\n getSummaries() {\n return this.values;\n }\n}\n\nclass StructurePreparedEntitiesSetEvent extends StructureDomainEvent {\n preparedItems;\n constructor(aggregateId, preparedItems) {\n super(aggregateId, preparedItems, 'StructurePreparedEntitiesSetEvent');\n this.preparedItems = preparedItems;\n }\n getPreparedItems() {\n return this.preparedItems;\n }\n}\n\nclass SourceDomainEventPublisher {\n domainEventPublisher = CoreContainer.resolve(DomainEventPublisher);\n publish(events) {\n events.forEach((event) => {\n this.publishEvent(event);\n });\n }\n publishEvent(event) {\n if (event.getType() === 'StructureOriginChangedAggregateEvent') {\n const structureOriginChangedAggregateEvent = event;\n const domainEvent = new OriginSetEvent(structureOriginChangedAggregateEvent.getAggregateId(), structureOriginChangedAggregateEvent.getOrigin());\n this.domainEventPublisher.publish(domainEvent);\n }\n if (event.getType() === 'StructureSourceItemEditedAggregateEvent') {\n const structureSourceItemEditedAggregateEvent = event;\n const domainEvent = new StructureSourceItemEditedEvent(structureSourceItemEditedAggregateEvent.getAggregateId(), structureSourceItemEditedAggregateEvent.getBeforeItem(), structureSourceItemEditedAggregateEvent.getAfterItem());\n this.domainEventPublisher.publish(domainEvent);\n }\n if (event.getType() === 'StructureSummariesChangedAggregateEvent') {\n const structureSummariesChangedAggregateEvent = event;\n const domainEvent = new StructureSummariesChangedEvent(structureSummariesChangedAggregateEvent.getAggregateId(), structureSummariesChangedAggregateEvent.getSummaries());\n this.domainEventPublisher.publish(domainEvent);\n }\n if (event.getType() === 'StructurePreparedEntitiesSetAggregateEvent') {\n const structurePreparedEntitiesSetAggregateEvent = event;\n const domainEvent = new StructurePreparedEntitiesSetEvent(structurePreparedEntitiesSetAggregateEvent.getAggregateId(), structurePreparedEntitiesSetAggregateEvent.getPreparedItems());\n this.domainEventPublisher.publish(domainEvent);\n }\n if (event.getType() === 'UniqueFilterCalculatedAggregateEvent') {\n const uniqueFilterCalculatedAggregateEvent = event;\n const domainEvent = uniqueFilterCalculatedAggregateEvent.toDomainEvent();\n this.domainEventPublisher.publish(domainEvent);\n }\n }\n}\n\nclass StructureSetSearchPhraseCommandHandler {\n structureSourceDomainEventPublisher;\n domainEventPublisher = CoreContainer.resolve(DomainEventPublisher);\n constructor(structureSourceDomainEventPublisher) {\n this.structureSourceDomainEventPublisher = structureSourceDomainEventPublisher;\n }\n static services = [SourceDomainEventPublisher];\n forCommand() {\n return SetSearchPhraseCommand;\n }\n handle(aggregate, command) {\n const phrase = command.getPhrase();\n aggregate.addSearchPhrase(phrase);\n }\n publish(aggregate, command) {\n const phrase = command.getPhrase(), initial = command.isInitial();\n this.domainEventPublisher.publish(new SearchPhraseSetDomainEvent(command.getAggregateId(), phrase, initial));\n this.structureSourceDomainEventPublisher.publish(aggregate.getEvents());\n }\n}\n\nclass SearchManager {\n searchFields = [];\n searchPhrase;\n enabledDataTypes = [\n DataType.STRING\n ];\n addSearchPhrase(fields, searchPhrase) {\n if (!searchPhrase) {\n this.searchFields = [];\n return;\n }\n const searchableFields = fields.filter((field) => {\n return this.enabledDataTypes.some((dt) => dt === field.getDataType());\n });\n if (searchableFields.length === 0) {\n return;\n }\n this.searchFields = searchableFields;\n this.searchPhrase = searchPhrase;\n }\n removeSearchFilters() {\n this.searchFields = [];\n }\n search(entities) {\n if (entities.length === 0 || this.searchFields.length === 0) {\n return entities;\n }\n const searchedItems = new Set();\n for (let i = 0; i < entities.length; i += 1) {\n this.searchFields\n .filter((field) => field.search(entities[i], this.searchPhrase))\n .forEach(() => {\n searchedItems.add(entities[i]);\n });\n }\n return Array.from(searchedItems);\n }\n}\n\nclass SearchManagerFactory {\n create() {\n return new SearchManager();\n }\n}\n\nclass SearchHighlightArchive extends AggregateArchive {\n static HIGHLIGHTING = true;\n constructor() {\n super(SearchHighlightArchive.HIGHLIGHTING);\n }\n}\n\nclass SearchPlaceholderArchive extends AggregateArchive {\n static PLACEHOLDER = 'Search...';\n constructor() {\n super(SearchPlaceholderArchive.PLACEHOLDER);\n }\n}\n\nclass SearchDispatcher {\n commandDispatcher;\n searchHighlightArchive;\n searchPlaceholderArchive;\n constructor(commandDispatcher, searchHighlightArchive, searchPlaceholderArchive) {\n this.commandDispatcher = commandDispatcher;\n this.searchHighlightArchive = searchHighlightArchive;\n this.searchPlaceholderArchive = searchPlaceholderArchive;\n }\n static services = [CommandDispatcher, SearchHighlightArchive, SearchPlaceholderArchive];\n setSearchingConfig(config, structureId) {\n if (config.highlighting !== undefined && config.highlighting !== null) {\n this.searchHighlightArchive.next(structureId, config.highlighting);\n }\n if (config.placeholder !== undefined && config.placeholder !== null) {\n this.searchPlaceholderArchive.next(structureId, config.placeholder);\n }\n if (config.phrase !== undefined && config.phrase !== null) {\n this.searchOnInit(config.phrase, structureId);\n }\n this.commandDispatcher.dispatch(new SetConfigSearchingCommand(structureId, config));\n }\n search(phrase, structureId) {\n this.commandDispatcher.dispatch(new SetSearchPhraseCommand(structureId, phrase, false));\n }\n searchOnInit(phrase, structureId) {\n this.commandDispatcher.dispatch(new SetSearchPhraseCommand(structureId, phrase, true));\n }\n}\n\nclass SearchPhraseArchive extends AggregateArchive {\n static SEARCH_PHRASE = '';\n constructor() {\n super(SearchPhraseArchive.SEARCH_PHRASE);\n }\n}\n\nclass SearchPhraseSetEventHandler {\n searchPhraseRepository;\n constructor(searchPhraseRepository) {\n this.searchPhraseRepository = searchPhraseRepository;\n }\n static services = [SearchPhraseArchive];\n forEvent() {\n return SearchPhraseSetDomainEvent;\n }\n handle(event) {\n if (event.ofMessageType('SearchPhraseSetDomainEvent')) {\n this.searchPhraseRepository.next(event.getAggregateId(), event.getPhrase());\n }\n }\n}\n\nclass SearchingEnabledArchive extends AggregateArchive {\n static ENABLED = false;\n constructor() {\n super(SearchingEnabledArchive.ENABLED);\n }\n}\n\nclass ConfigSearchingSetEventHandler {\n searchingEnabledArchive;\n constructor(searchingEnabledArchive) {\n this.searchingEnabledArchive = searchingEnabledArchive;\n }\n static services = [SearchingEnabledArchive];\n forEvent() {\n return ConfigSearchingSetEvent;\n }\n handle(event) {\n if (event.ofMessageType('ConfigSearchingSetEvent')) {\n this.searchingEnabledArchive.next(event.getAggregateId(), event.isEnabled());\n }\n }\n}\n\nclass RemoveSearchPhraseCommand extends StructureCommand {\n constructor(structureId) {\n super(structureId, 'RemoveSearchPhraseCommand');\n }\n}\n\nclass RemoveSearchPhraseCommandHandler {\n domainEventPublisher = CoreContainer.resolve(DomainEventPublisher);\n forCommand() {\n return RemoveSearchPhraseCommand;\n }\n handle(aggregate, command) {\n aggregate.removeSearchPhrase();\n }\n publish(aggregate, command) {\n this.domainEventPublisher.publish(new FilterToggledEvent(command.getAggregateId()));\n }\n}\n\nclass SearchDomainModule {\n defineAggregate() {\n return null;\n }\n registerKey() {\n return structureKey;\n }\n registerProviders(container) {\n container.provide(SearchManagerFactory);\n container.provide(SearchDispatcher);\n }\n registerCommandHandlers() {\n return [\n SetConfigSearchingCommandHandler,\n StructureSetSearchPhraseCommandHandler,\n RemoveSearchPhraseCommandHandler\n ];\n }\n registerDomainEventHandler() {\n return [\n SearchPhraseSetEventHandler,\n ConfigSearchingSetEventHandler\n ];\n }\n registerMultiDomainEventHandler() {\n return [];\n }\n}\n\nclass SearchDomainWarehouse extends SearchWarehouse {\n searchingEnabledArchive;\n searchPhraseArchive;\n searchHighlightArchive;\n searchPlaceholderArchive;\n constructor(searchingEnabledArchive, searchPhraseArchive, searchHighlightArchive, searchPlaceholderArchive) {\n super();\n this.searchingEnabledArchive = searchingEnabledArchive;\n this.searchPhraseArchive = searchPhraseArchive;\n this.searchHighlightArchive = searchHighlightArchive;\n this.searchPlaceholderArchive = searchPlaceholderArchive;\n }\n static services = [\n SearchingEnabledArchive,\n SearchPhraseArchive,\n SearchHighlightArchive,\n SearchPlaceholderArchive\n ];\n onSearchEnabled(structureId) {\n return this.searchingEnabledArchive.on(structureId);\n }\n onPhrase(structureId) {\n return this.searchPhraseArchive.on(structureId);\n }\n onHighlight(structureId) {\n return this.searchHighlightArchive.on(structureId);\n }\n onPlaceholder(structureId) {\n return this.searchPlaceholderArchive.on(structureId);\n }\n}\n\nclass SearchDomainEventRepository extends SearchEventRepository {\n constructor() {\n super();\n }\n onSearchPhrase(structureId) {\n return this.onEvent(structureId, SearchPhraseSetDomainEvent)\n .pipe(hermesFilter((event) => event.isInitial() === false), hermesMap((event) => event.getPhrase()), hermesFilter((phrase) => phrase !== null));\n }\n}\n\nclass SearchDomainPublisher extends SearchPublisher {\n searchDispatcher;\n constructor(searchDispatcher) {\n super();\n this.searchDispatcher = searchDispatcher;\n }\n static services = [SearchDispatcher];\n setSearchingConfig(config, structureId) {\n this.searchDispatcher.setSearchingConfig(config, structureId);\n }\n search(phrase, structureId) {\n this.searchDispatcher.search(phrase, structureId);\n }\n}\n\nclass SearchApiModule {\n registerProviders(container) {\n container.provide(SearchPublisher, SearchDomainPublisher);\n container.provide(SearchWarehouse, SearchDomainWarehouse);\n container.provide(SearchEventRepository, SearchDomainEventRepository);\n container.provide(SearchPhraseArchive);\n container.provide(SearchHighlightArchive);\n container.provide(SearchPlaceholderArchive);\n container.provide(SearchingEnabledArchive);\n }\n}\nfunction initializeSearch() {\n new DomainInitializer(new SearchApiModule(), new SearchDomainModule()).init();\n}\n\ninitializeSearch();\nfunction provideSearchCommandInvoker() {\n return CoreContainer.resolve(SearchPublisher);\n}\nfunction provideSearchWarehouse() {\n return CoreContainer.resolve(SearchWarehouse);\n}\nfunction provideSearchEventRepository() {\n return CoreContainer.resolve(SearchEventRepository);\n}\nclass SearchFeatureModule extends FeatureModule {\n static forComponent() {\n return [];\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: SearchFeatureModule, deps: null, target: i0.ɵɵFactoryTarget.NgModule });\n static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"17.0.2\", ngImport: i0, type: SearchFeatureModule, declarations: [SearchIconComponent,\n SearchComponent], imports: [CommonModule,\n FabricModule,\n ReactiveFormsModule,\n GuiTemplateModule], exports: [SearchIconComponent,\n SearchComponent] });\n static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: SearchFeatureModule, providers: [\n { provide: SearchPublisher, useFactory: provideSearchCommandInvoker },\n { provide: SearchWarehouse, useFactory: provideSearchWarehouse },\n { provide: SearchEventRepository, useFactory: provideSearchEventRepository }\n ], imports: [CommonModule,\n FabricModule,\n ReactiveFormsModule,\n GuiTemplateModule] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: SearchFeatureModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [\n CommonModule,\n FabricModule,\n ReactiveFormsModule,\n GuiTemplateModule\n ],\n declarations: [\n SearchIconComponent,\n SearchComponent\n ],\n exports: [\n SearchIconComponent,\n SearchComponent\n ],\n providers: [\n { provide: SearchPublisher, useFactory: provideSearchCommandInvoker },\n { provide: SearchWarehouse, useFactory: provideSearchWarehouse },\n { provide: SearchEventRepository, useFactory: provideSearchEventRepository }\n ]\n }]\n }] });\n\nclass StructureTopPanelModule {\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureTopPanelModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\n static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureTopPanelModule, declarations: [StructureTopPanelComponent], imports: [CommonModule,\n ReactiveFormsModule,\n FilterMenuFeatureModule,\n SearchFeatureModule], exports: [StructureTopPanelComponent] });\n static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureTopPanelModule, imports: [CommonModule,\n ReactiveFormsModule,\n FilterMenuFeatureModule,\n SearchFeatureModule] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureTopPanelModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [\n CommonModule,\n ReactiveFormsModule,\n FilterMenuFeatureModule,\n SearchFeatureModule\n ],\n declarations: [\n StructureTopPanelComponent\n ],\n exports: [\n StructureTopPanelComponent\n ]\n }]\n }] });\n\nclass UniqueValueListModule extends FeatureModule {\n static forComponent() {\n return [];\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: UniqueValueListModule, deps: null, target: i0.ɵɵFactoryTarget.NgModule });\n static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"17.0.2\", ngImport: i0, type: UniqueValueListModule, declarations: [UniqueValueListComponent], imports: [CommonModule, i1$1.FabricBadgeModule, i1$1.FabricButtonModule, i1$1.FabricButtonGroupModule, i1$1.FabricCheckboxModule, i1$1.FabricChipModule, i1$1.FabricDrawerModule, i1$1.FabricDropdownModule, i1$1.FabricRadioButtonModule, i1$1.FabricRadioGroupModule, i1$1.FabricProgressBarModule, i1$1.FabricProgressSpinnerModule, i1$1.FabricSelectModule, i1$1.FabricSpinnerModule, i1$1.FabricTabModule, i1$1.FabricTooltipModule, i1$1.FabricToggleButtonModule, i1$1.FabricInputModule, i1$1.FabricDialogModule, i1$1.FabricInlineDialogModule, i1$1.FabricTabModule, GuiTemplateModule,\n FilterFeatureModule], exports: [UniqueValueListComponent] });\n static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: UniqueValueListModule, imports: [CommonModule,\n fabricImports,\n GuiTemplateModule,\n FilterFeatureModule] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: UniqueValueListModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [\n CommonModule,\n fabricImports,\n GuiTemplateModule,\n FilterFeatureModule\n ],\n declarations: [\n UniqueValueListComponent\n ],\n exports: [\n UniqueValueListComponent\n ]\n }]\n }] });\n\nconst icon$1 = [\n StructureColumnMenuIconComponent\n];\nclass StructureMenuIconModule {\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureMenuIconModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\n static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureMenuIconModule, declarations: [StructureColumnMenuIconComponent], exports: [StructureColumnMenuIconComponent] });\n static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureMenuIconModule });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureMenuIconModule, decorators: [{\n type: NgModule,\n args: [{\n declarations: icon$1,\n exports: icon$1\n }]\n }] });\n\nconst icon = [\n StructureArrowIconComponent\n];\nclass StructureArrowIconModule {\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureArrowIconModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\n static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureArrowIconModule, declarations: [StructureArrowIconComponent], exports: [StructureArrowIconComponent] });\n static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureArrowIconModule });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureArrowIconModule, decorators: [{\n type: NgModule,\n args: [{\n declarations: icon,\n exports: icon\n }]\n }] });\n\nconst declarations$2 = [\n StructureColumnConfigComponent,\n StructureColumnConfigTriggerComponent,\n StructureColumnConfigSortComponent,\n StructureColumnConfigColumnHideComponent,\n StructureColumnConfigColumnMoveComponent\n];\nconst icons$1 = [\n StructureMenuIconModule,\n StructureArrowIconModule\n];\nclass StructureColumnMenuModule {\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureColumnMenuModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\n static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureColumnMenuModule, declarations: [StructureColumnConfigComponent,\n StructureColumnConfigTriggerComponent,\n StructureColumnConfigSortComponent,\n StructureColumnConfigColumnHideComponent,\n StructureColumnConfigColumnMoveComponent], imports: [CommonModule, i1$1.FabricBadgeModule, i1$1.FabricButtonModule, i1$1.FabricButtonGroupModule, i1$1.FabricCheckboxModule, i1$1.FabricChipModule, i1$1.FabricDrawerModule, i1$1.FabricDropdownModule, i1$1.FabricRadioButtonModule, i1$1.FabricRadioGroupModule, i1$1.FabricProgressBarModule, i1$1.FabricProgressSpinnerModule, i1$1.FabricSelectModule, i1$1.FabricSpinnerModule, i1$1.FabricTabModule, i1$1.FabricTooltipModule, i1$1.FabricToggleButtonModule, i1$1.FabricInputModule, i1$1.FabricDialogModule, i1$1.FabricInlineDialogModule, i1$1.FabricTabModule, GuiTemplateModule,\n StructureColumnManagerModule,\n UniqueValueListModule,\n TranslationFeatureModule, StructureMenuIconModule,\n StructureArrowIconModule], exports: [StructureColumnConfigComponent,\n StructureColumnConfigTriggerComponent,\n StructureColumnConfigSortComponent,\n StructureColumnConfigColumnHideComponent,\n StructureColumnConfigColumnMoveComponent] });\n static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureColumnMenuModule, imports: [CommonModule,\n fabricImports,\n GuiTemplateModule,\n StructureColumnManagerModule,\n UniqueValueListModule,\n TranslationFeatureModule,\n icons$1] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureColumnMenuModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [\n CommonModule,\n fabricImports,\n GuiTemplateModule,\n StructureColumnManagerModule,\n UniqueValueListModule,\n TranslationFeatureModule,\n icons$1\n ],\n declarations: declarations$2,\n exports: declarations$2\n }]\n }] });\n\nclass StructureCellEditComponent extends SmartComponent {\n changeDetectorRef;\n structureId;\n sourceCommandService;\n cellContainerRef;\n entity;\n cell;\n editContext;\n valueChanges$;\n status$;\n actualValue;\n constructor(changeDetectorRef, elementRef, structureId, sourceCommandService) {\n super(changeDetectorRef, elementRef);\n this.changeDetectorRef = changeDetectorRef;\n this.structureId = structureId;\n this.sourceCommandService = sourceCommandService;\n }\n ngOnChanges(changes) {\n ifChanged(changes.entity, () => {\n this.initEditContext();\n });\n ifChanged(changes.cell, () => {\n this.initEditContext();\n });\n }\n ngOnInit() {\n this.initEditContext();\n }\n submitChangesAndExit() {\n const itemId = this.entity.getId(), updatedValue = this.actualValue, fieldId = this.cell.columnFieldId;\n this.sourceCommandService.editItem(new StructureEditSourceItemParams(itemId, fieldId, updatedValue), this.structureId);\n }\n getSelectorName() {\n return 'gui-structure-cell-edit';\n }\n initEditContext() {\n this.valueChanges$ = new ChangedValueEmitter();\n this.status$ = new ChangedValueEmitter();\n this.editContext = {\n status: this.status$,\n valueChanges: this.valueChanges$,\n value: this.cell.getValue(this.entity),\n focus: false,\n parent: this.cellContainerRef\n };\n this.status$\n .on()\n .pipe(this.takeUntil())\n .subscribe((status) => {\n switch (status) {\n case EditEventType.SUBMIT:\n this.submitChangesAndExit();\n this.publishEditSubmit();\n break;\n case EditEventType.CANCEL:\n // this.exitEditMode();\n this.publishEditCancel();\n break;\n default:\n break;\n }\n });\n }\n observeValueChanges() {\n this.valueChanges$\n .on()\n .pipe(this.takeUntil())\n .subscribe((value) => {\n this.actualValue = value;\n });\n }\n publishEditState(state) {\n // this.structureCellEditStore.next(state);\n }\n publishEditEnter() {\n this.publishEditState(StructureCellEditState.ENTER);\n }\n publishEditCancel() {\n this.publishEditState(StructureCellEditState.CANCEL);\n }\n publishEditSubmit() {\n this.publishEditState(StructureCellEditState.SUBMIT);\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureCellEditComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: StructureId }, { token: SourcePublisher }], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"17.0.2\", type: StructureCellEditComponent, selector: \"div[gui-structure-cell-edit][entity][cell]\", inputs: { entity: \"entity\", cell: \"cell\" }, viewQueries: [{ propertyName: \"cellContainerRef\", first: true, predicate: [\"cellContainer\"], descendants: true, read: ElementRef, static: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: \"\\n\\t\\n\\t\\n\\n\", dependencies: [{ kind: \"directive\", type: i4.NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureCellEditComponent, decorators: [{\n type: Component,\n args: [{ selector: 'div[gui-structure-cell-edit][entity][cell]', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: \"\\n\\t\\n\\t\\n\\n\" }]\n }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: StructureId }, { type: SourcePublisher }], propDecorators: { cellContainerRef: [{\n type: ViewChild,\n args: ['cellContainer', { read: ElementRef, static: true }]\n }], entity: [{\n type: Input\n }], cell: [{\n type: Input\n }] } });\n\nclass EmptySourceFeatureModule extends FeatureModule {\n static forComponent() {\n return [];\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: EmptySourceFeatureModule, deps: null, target: i0.ɵɵFactoryTarget.NgModule });\n static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"17.0.2\", ngImport: i0, type: EmptySourceFeatureModule, declarations: [EmptySourceComponent], imports: [CommonModule,\n TranslationFeatureModule], exports: [EmptySourceComponent] });\n static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: EmptySourceFeatureModule, imports: [CommonModule,\n TranslationFeatureModule] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: EmptySourceFeatureModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [\n CommonModule,\n TranslationFeatureModule\n ],\n declarations: [\n EmptySourceComponent\n ],\n exports: [\n EmptySourceComponent\n ]\n }]\n }] });\n\nclass ToggleSortCommand extends StructureCommand {\n compositionId;\n fieldId;\n constructor(structureId, compositionId, fieldId) {\n super(structureId, 'ToggleSortCommand');\n this.compositionId = compositionId;\n this.fieldId = fieldId;\n }\n getCompositionId() {\n return this.compositionId;\n }\n getFieldId() {\n return this.fieldId;\n }\n}\n\nclass ToggleSortCommandHandler {\n domainEventPublisher = CoreContainer.resolve(DomainEventPublisher);\n forCommand() {\n return ToggleSortCommand;\n }\n handle(structure, command) {\n const aggregateId = command.getAggregateId(), compositionId = command.getCompositionId(), fieldId = command.getFieldId();\n const sorters = structure.toggleSort(fieldId);\n this.publishSortEvent(aggregateId, compositionId, fieldId, sorters);\n }\n publish(aggregate, command) {\n }\n publishSortEvent(aggregateId, compositionId, fieldId, sorters) {\n const directions = sorters.map((sorter) => {\n return {\n direction: sorter.hasDirection(),\n fieldId: sorter.getField().getId()\n };\n });\n this.domainEventPublisher.publish(new SortToggledEvent(aggregateId, compositionId, directions));\n }\n}\n\nclass SetSortingCommand extends StructureCommand {\n sortingConfig;\n constructor(structureId, sortingConfig) {\n super(structureId, 'SetSortingCommand');\n this.sortingConfig = sortingConfig;\n }\n getSortingConfig() {\n return this.sortingConfig;\n }\n}\n\nclass SortingSetEvent extends StructureDomainEvent {\n constructor(aggregateId) {\n super(aggregateId, null, 'SortingSetEvent');\n }\n}\n\nclass SetSortingCommandHandler {\n domainEventPublisher = CoreContainer.resolve(DomainEventPublisher);\n forCommand() {\n return SetSortingCommand;\n }\n handle(aggregate, command) {\n const sortingConfig = command.getSortingConfig();\n aggregate.setSortingConfig(sortingConfig);\n }\n publish(aggregate, command) {\n this.domainEventPublisher.publish(new SortingSetEvent(command.getAggregateId()));\n }\n}\n\nclass SetSortOrderCommand extends StructureCommand {\n compositionId;\n fieldId;\n sortOrder;\n constructor(structureId, compositionId, fieldId, sortOrder) {\n super(structureId, 'SetSortOrderCommand');\n this.compositionId = compositionId;\n this.fieldId = fieldId;\n this.sortOrder = sortOrder;\n }\n getCompositionId() {\n return this.compositionId;\n }\n getFieldId() {\n return this.fieldId;\n }\n getSortOrder() {\n return this.sortOrder;\n }\n}\n\nclass SetSortOrderCommandHandler {\n domainEventPublisher = CoreContainer.resolve(DomainEventPublisher);\n forCommand() {\n return SetSortOrderCommand;\n }\n handle(structure, command) {\n const structureId = command.getAggregateId(), compositionId = command.getCompositionId(), fieldId = command.getFieldId(), sortOrder = command.getSortOrder();\n const sorters = structure.setSortOrder(fieldId, sortOrder);\n this.publishSortEvent(structureId, compositionId, fieldId, sorters);\n }\n publish(aggregate, command) {\n }\n publishSortEvent(aggregateId, compositionId, fieldId, sorters) {\n const directions = sorters.map((sorter) => {\n return {\n direction: sorter.hasDirection(),\n fieldId: sorter.getField().getId()\n };\n });\n this.domainEventPublisher.publish(new SortOrderSetEvent(aggregateId, compositionId, directions));\n }\n}\n\nclass SortingDispatcher {\n commandDispatcher = CoreContainer.resolve(CommandDispatcher);\n setSortingConfig(config, structureId) {\n this.commandDispatcher.dispatch(new SetSortingCommand(structureId, config));\n }\n toggleSort(fieldId, compositionId, structureId) {\n this.commandDispatcher.dispatch(new ToggleSortCommand(structureId, compositionId, fieldId));\n }\n setSortOrder(fieldId, sortOrder, compositionId, structureId) {\n this.commandDispatcher.dispatch(new SetSortOrderCommand(structureId, compositionId, fieldId, sortOrder));\n }\n}\n\nclass SortingDomainModule {\n defineAggregate() {\n return null;\n }\n registerKey() {\n return structureKey;\n }\n registerProviders(container) {\n container.provide(SortingDispatcher);\n }\n registerCommandHandlers() {\n return [\n ToggleSortCommandHandler,\n SetSortingCommandHandler,\n SetSortOrderCommandHandler\n ];\n }\n registerDomainEventHandler() {\n return [];\n }\n registerMultiDomainEventHandler() {\n return [];\n }\n}\n\nclass SortingDomainPublisher extends SortingPublisher {\n sortingDispatcher;\n constructor(sortingDispatcher) {\n super();\n this.sortingDispatcher = sortingDispatcher;\n }\n static services = [SortingDispatcher];\n setSortingConfig(config, structureId) {\n this.sortingDispatcher.setSortingConfig(config, structureId);\n }\n toggleSort(fieldId, compositionId, structureId) {\n this.sortingDispatcher.toggleSort(fieldId, compositionId, structureId);\n }\n setSortOrder(fieldId, sortOrder, compositionId, structureId) {\n this.sortingDispatcher.setSortOrder(fieldId, sortOrder, compositionId, structureId);\n }\n}\n\nclass SortingApiModule {\n registerProviders(container) {\n container.provide(SortingPublisher, SortingDomainPublisher);\n }\n}\nfunction initializeSorting() {\n new DomainInitializer(new SortingApiModule(), new SortingDomainModule()).init();\n}\n\ninitializeSorting();\nfunction provideSortingCommandInvoker() {\n return CoreContainer.resolve(SortingPublisher);\n}\nclass SortingFeatureModule extends FeatureModule {\n static forComponent() {\n return [];\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: SortingFeatureModule, deps: null, target: i0.ɵɵFactoryTarget.NgModule });\n static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"17.0.2\", ngImport: i0, type: SortingFeatureModule, imports: [CommonModule] });\n static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: SortingFeatureModule, providers: [\n { provide: SortingPublisher, useFactory: provideSortingCommandInvoker }\n ], imports: [CommonModule] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: SortingFeatureModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [\n CommonModule\n ],\n declarations: [],\n exports: [],\n providers: [\n { provide: SortingPublisher, useFactory: provideSortingCommandInvoker }\n ]\n }]\n }] });\n\nclass FieldArchive extends AggregateArchive {\n static default = [];\n constructor() {\n super(FieldArchive.default);\n }\n}\n\nclass FieldModel {\n id;\n dataType;\n name;\n constructor(id, dataType, name) {\n this.id = id;\n this.dataType = dataType;\n this.name = name;\n }\n getFieldId() {\n return this.id;\n }\n getId() {\n return this.id.getId();\n }\n getDataType() {\n return this.dataType;\n }\n getName() {\n return this.name;\n }\n}\n\nclass FieldConverter {\n convert(fields) {\n return fields.map((field) => {\n return this.convertOne(field);\n });\n }\n convertOne(field) {\n return new FieldModel(field.getId(), field.getDataType(), field.getName());\n }\n}\n\nclass FieldCollection {\n fieldFactory;\n fields = new Map();\n constructor(fieldFactory) {\n this.fieldFactory = fieldFactory;\n }\n getField(fieldId) {\n if (fieldId === null) {\n return this.getAllFields()[0];\n }\n return this.fields.get(fieldId.getId());\n }\n getAllFieldIds() {\n return Array.from(this.fields.keys());\n }\n getAllFields() {\n return Array.from(this.fields.values());\n }\n getFieldsAsMap() {\n return this.fields;\n }\n initFields(fieldConfigs) {\n const fields = this.fieldFactory.create(fieldConfigs);\n this.clear();\n this.addFields(fields);\n }\n addFields(fields) {\n for (const field of fields) {\n this.addField(field);\n }\n }\n addField(field) {\n this.fields.set(field.getId().toString(), field);\n }\n clear() {\n this.fields.clear();\n }\n}\n\nclass FieldEntity extends Entity {\n id;\n field;\n name;\n constructor(id, field, name) {\n super(id);\n this.id = id;\n this.field = field;\n this.name = name;\n }\n static of(id, dataField, name) {\n return new FieldEntity(id, dataField, name);\n }\n getId() {\n return this.id;\n }\n getKey() {\n return this.getId().toString();\n }\n getDataType() {\n return this.field.getDataType();\n }\n getName() {\n return this.name;\n }\n /**\n * @deprecated\n */\n getField() {\n return this.field;\n }\n /**\n * Probably should not be used.\n *\n * @deprecated\n */\n getAccessor() {\n return this.field.getAccessor();\n }\n /**\n * Probably should not be used.\n *\n * @deprecated\n */\n getAccessorMethod() {\n return this.field.getAccessorMethod();\n }\n /**\n * Probably should not be used.\n *\n * @deprecated\n */\n getSearchAccessorMethod() {\n return this.field.getSearchAccessorMethod();\n }\n getValue(entity) {\n return this.field.getValue(entity);\n }\n getDisplayValue(value) {\n return this.field.getDisplayValue(value);\n }\n /**\n * Probably should not be used.\n *\n * @deprecated\n */\n isSummaries(type) {\n return this.field.isSummaries(type);\n }\n /**\n * Probably should not be used.\n *\n * @deprecated\n */\n isSummariesEnabled() {\n return this.field.isSummariesEnabled();\n }\n search(item, searchPhrase) {\n return this.field.search(item, searchPhrase);\n }\n filter(item, filterPhrase) {\n const value = this.field.getValue(item);\n if (this.field.getDataType() === DataType.NUMBER) {\n return this.field.filter(value, filterPhrase);\n }\n else if (this.field.getDataType() === DataType.BOOLEAN) {\n return this.field.filter(value, filterPhrase);\n }\n else if (this.field.getDataType() === DataType.STRING) {\n return this.field.filter(value, filterPhrase);\n }\n else if (this.field.getDataType() === DataType.DATE) {\n return this.field.filter(value, filterPhrase);\n }\n else {\n return true;\n }\n }\n sort(entityOne, entityTwo, direction) {\n const valueOne = direction ? this.field.getSortValue(entityOne) : this.field.getSortValue(entityTwo), valueTwo = direction ? this.field.getSortValue(entityTwo) : this.field.getSortValue(entityOne);\n if (this.field.getDataType() === DataType.NUMBER) {\n return this.field.sort(valueOne, valueTwo);\n }\n else if (this.field.getDataType() === DataType.BOOLEAN) {\n return this.field.sort(valueOne, valueTwo);\n }\n else if (this.field.getDataType() === DataType.STRING) {\n return this.field.sort(valueOne, valueTwo);\n }\n else if (this.field.getDataType() === DataType.DATE) {\n return this.field.sort(valueOne, valueTwo);\n }\n else {\n return 0;\n }\n }\n}\n\nclass BaseDataField {\n // TODO\n accessor; // (rawData: any) => any;\n dataType;\n accessorMethod;\n matchers;\n constructor(accessor, dataType, matchers) {\n this.accessor = accessor;\n this.dataType = dataType;\n this.matchers = matchers;\n if (typeof accessor === 'string') {\n this.accessorMethod = (entity) => entity.getSourceItem()[accessor];\n }\n else if (typeof accessor === 'function') {\n this.accessorMethod = (entity) => accessor(entity.getSourceItem());\n }\n else {\n this.accessorMethod = (entity) => entity;\n }\n }\n getDataType() {\n return this.dataType;\n }\n getAccessor() {\n return this.accessor;\n }\n getAccessorMethod() {\n return this.accessorMethod;\n }\n getMatchers() {\n return this.matchers;\n }\n getSearchAccessorMethod() {\n let matcher;\n this.matchers\n .getSearchMatcher()\n .ifPresent((m) => {\n matcher = m;\n });\n if (matcher) {\n return (entity) => {\n const val = this.accessorMethod(entity);\n return matcher(val);\n };\n }\n else {\n return (entity) => {\n return this.accessorMethod(entity);\n };\n }\n }\n getValue(entity) {\n return this.accessorMethod(entity);\n }\n getSortValue(entity) {\n let value = this.accessorMethod(entity);\n this.matchers\n .getSortMatcher()\n .ifPresent((matcher) => {\n value = matcher(value);\n });\n return value;\n }\n getSearchValue(entity) {\n let value = this.accessorMethod(entity);\n this.matchers\n .getSearchMatcher()\n .ifPresent((matcher) => {\n value = matcher(value);\n });\n return value;\n }\n}\n\nclass DataField extends BaseDataField {\n summariesEnabled = true;\n summariesTypes;\n possibleSummaries;\n constructor(accessor, dataType, matchers, summariesConfig) {\n super(accessor, dataType, matchers);\n this.possibleSummaries = this.assignPossibleSummaries();\n this.assignSummaries(summariesConfig);\n }\n isSummaries(type) {\n if (!this.isSummariesEnabled()) {\n return false;\n }\n return !!(this.summariesTypes & type);\n }\n isSummariesEnabled() {\n return this.summariesEnabled;\n }\n setSummariesEnabled(enabled) {\n this.summariesEnabled = enabled;\n }\n assignSummaries(summariesConfig) {\n if (!!summariesConfig && Object.keys(summariesConfig).length !== 0) {\n if (summariesConfig.enabled) {\n this.summariesEnabled = !!summariesConfig.enabled;\n }\n if (summariesConfig.summariesTypes) {\n this.summariesTypes = SummariesType.DISTINCT;\n summariesConfig.summariesTypes.forEach((t) => {\n this.summariesTypes |= t;\n });\n }\n else {\n this.summariesTypes = this.assignDefaultSummaries();\n }\n }\n else {\n this.summariesTypes = this.assignDefaultSummaries();\n }\n }\n}\n\nclass UnknownDataField extends DataField {\n constructor(accessor, matchers, summariesConfig) {\n super(accessor, DataType.UNKNOWN, matchers, summariesConfig);\n }\n assignDefaultSummaries() {\n return SummariesType.DISTINCT;\n // return SummariesType.COUNT |\n // \tSummariesType.DISTINCT;\n }\n assignPossibleSummaries() {\n return SummariesType.COUNT |\n SummariesType.DISTINCT;\n }\n search(item, searchPhrase) {\n return false;\n }\n sort(one, two) {\n return 0;\n }\n filter(value, filterPhrase) {\n return false;\n }\n equals(item, value) {\n return false;\n }\n getDisplayValue(item) {\n return item;\n }\n}\n\nclass NumberDataField extends DataField {\n constructor(accessor, matchers, summariesConfig) {\n super(accessor, DataType.NUMBER, matchers, summariesConfig);\n }\n getField() {\n return this;\n }\n assignDefaultSummaries() {\n return SummariesType.DISTINCT;\n // return SummariesType.COUNT |\n // \tSummariesType.DISTINCT |\n // \tSummariesType.SUM |\n // \tSummariesType.MIN |\n // \tSummariesType.MAX |\n // \tSummariesType.AVERAGE |\n // \tSummariesType.MEDIAN;\n }\n assignPossibleSummaries() {\n return SummariesType.COUNT |\n SummariesType.DISTINCT |\n SummariesType.SUM |\n SummariesType.MIN |\n SummariesType.MAX |\n SummariesType.AVERAGE |\n SummariesType.MEDIAN;\n }\n search(item, searchPhrase) {\n return false;\n }\n sort(numOne, numTwo) {\n const sureNumOne = +numOne, sureNumTwo = +numTwo;\n return sureNumOne - sureNumTwo;\n }\n filter(value, filterPhrase) {\n return value > filterPhrase;\n }\n equals(item, value) {\n return this.getValue(item) === value;\n }\n getDisplayValue(item) {\n return `${item}`;\n }\n}\n\nclass StringDataField extends DataField {\n constructor(accessor, matchers, summariesConfig) {\n super(accessor, DataType.STRING, matchers, summariesConfig);\n }\n assignDefaultSummaries() {\n return SummariesType.DISTINCT;\n // return SummariesType.COUNT |\n // \tSummariesType.DISTINCT;\n }\n assignPossibleSummaries() {\n return SummariesType.COUNT |\n SummariesType.DISTINCT;\n }\n search(item, searchPhrase) {\n const value = this.getSearchValue(item);\n if (typeof value === 'string') {\n return value.toLowerCase().indexOf(searchPhrase.toLowerCase()) > -1;\n }\n else {\n return false;\n }\n }\n sort(strOne, strTwo) {\n const sureStrOne = '' + strOne, sureStrTwo = '' + strTwo;\n return sureStrOne.localeCompare(sureStrTwo);\n }\n filter(value, filterPhrase) {\n return value.toLowerCase().indexOf(filterPhrase.toLowerCase()) > -1;\n }\n equals(item, value) {\n return this.getValue(item) === value;\n }\n getDisplayValue(item) {\n return item;\n }\n}\n\nclass BooleanDataField extends DataField {\n constructor(accessor, matchers, summariesConfig) {\n super(accessor, DataType.BOOLEAN, matchers, summariesConfig);\n }\n assignDefaultSummaries() {\n return SummariesType.DISTINCT;\n // return SummariesType.COUNT |\n // \tSummariesType.DISTINCT |\n // \tSummariesType.TRUTHY |\n // \tSummariesType.FALSY;\n }\n assignPossibleSummaries() {\n return SummariesType.COUNT |\n SummariesType.DISTINCT |\n SummariesType.TRUTHY |\n SummariesType.FALSY;\n }\n search(item, searchPhrase) {\n return false;\n }\n sort(booleanOne, booleanTwo) {\n const sureBoolOne = !!booleanOne, sureBoolTwo = !!booleanTwo;\n return (sureBoolOne === sureBoolTwo) ? 0 : sureBoolTwo ? -1 : 1;\n }\n filter(value, filterPhrase) {\n return value === filterPhrase;\n }\n equals(item, value) {\n return this.getValue(item) === value;\n }\n getDisplayValue(item) {\n return item ? 'True' : 'False';\n }\n}\n\nclass DateDataField extends DataField {\n constructor(accessor, matchers, summariesConfig) {\n super(accessor, DataType.DATE, matchers, summariesConfig);\n }\n assignDefaultSummaries() {\n return SummariesType.DISTINCT;\n // return SummariesType.COUNT |\n // \tSummariesType.DISTINCT;\n }\n assignPossibleSummaries() {\n return SummariesType.COUNT |\n SummariesType.DISTINCT;\n }\n search(item, searchPhrase) {\n return false;\n }\n sort(dateOne, dateTwo) {\n return dateOne - dateTwo;\n }\n filter(value, filterPhrase) {\n return false;\n }\n equals(item, value) {\n return this.getValue(item).getTime() === value.getTime();\n }\n getDisplayValue(item) {\n return item.toDateString();\n }\n}\n\nclass FieldMatchers {\n matcher;\n sortMatcher;\n searchMatcher;\n constructor(matcher, sortMatcher, searchMatcher) {\n this.matcher = matcher;\n this.sortMatcher = sortMatcher;\n this.searchMatcher = searchMatcher;\n }\n getMatcher() {\n return Optional.of(this.matcher);\n }\n getSortMatcher() {\n let matcher;\n if (this.sortMatcher) {\n matcher = this.sortMatcher;\n }\n if (this.matcher) {\n matcher = this.matcher;\n }\n return Optional.of(matcher);\n }\n getSearchMatcher() {\n let matcher;\n if (this.searchMatcher) {\n matcher = this.searchMatcher;\n }\n if (this.matcher) {\n matcher = this.matcher;\n }\n return Optional.of(matcher);\n }\n}\n\nclass DataFieldFactory {\n create(fieldConfig) {\n const fieldMatchers = this.createMatchers(fieldConfig);\n let columnType = fieldConfig.type;\n if (columnType === undefined) {\n columnType = DataType.STRING;\n }\n if (columnType === DataType.UNKNOWN) {\n return new UnknownDataField(fieldConfig.field, fieldMatchers, fieldConfig.summaries);\n }\n if (columnType === DataType.NUMBER) {\n return new NumberDataField(fieldConfig.field, fieldMatchers, fieldConfig.summaries);\n }\n if (columnType === DataType.STRING) {\n return new StringDataField(fieldConfig.field, fieldMatchers);\n }\n if (columnType === DataType.BOOLEAN) {\n return new BooleanDataField(fieldConfig.field, fieldMatchers);\n }\n if (columnType === DataType.DATE) {\n return new DateDataField(fieldConfig.field, fieldMatchers);\n }\n return new UnknownDataField(fieldConfig.field, fieldMatchers, fieldConfig.summaries);\n }\n createMatchers(fieldConfig) {\n const matcher = fieldConfig.matcher;\n let sortMatcher;\n if (fieldConfig.sorting) {\n sortMatcher = fieldConfig.sorting.matcher;\n }\n return new FieldMatchers(matcher, sortMatcher);\n }\n}\n\nclass FieldEntityIdGenerator {\n generateId() {\n const id = RandomStringGenerator.generate();\n return new FieldId(id);\n }\n}\n\nclass FieldEntityFactory {\n fieldIdGenerator;\n dataFieldFactory;\n constructor(fieldIdGenerator, dataFieldFactory) {\n this.fieldIdGenerator = fieldIdGenerator;\n this.dataFieldFactory = dataFieldFactory;\n }\n static services = [\n FieldEntityIdGenerator,\n DataFieldFactory\n ];\n create(configs) {\n if (!configs) {\n return [];\n }\n return configs.map((fieldConfig, index) => {\n const fieldId = this.fieldIdGenerator.generateId(), dataField = this.dataFieldFactory.create(fieldConfig);\n return new FieldEntity(fieldId, dataField, this.getFieldName(fieldConfig, index));\n });\n }\n getFieldName(fieldConfig, index) {\n if (typeof fieldConfig.field === 'string') {\n return fieldConfig.field.toLowerCase();\n }\n else {\n return 'Field #' + index;\n }\n }\n}\n\nclass FieldCollectionFactory {\n fieldFactory;\n constructor(fieldFactory) {\n this.fieldFactory = fieldFactory;\n }\n static services = [FieldEntityFactory];\n create() {\n return new FieldCollection(this.fieldFactory);\n }\n}\n\nclass InitFieldsCommandHandler {\n forCommand() {\n return InitFieldsCommand;\n }\n handle(structure, command) {\n const fieldConfigs = command.getFieldConfigs();\n structure.createFields(fieldConfigs);\n }\n}\n\nclass FieldsInitedEventHandler {\n fieldArchive;\n fieldConverter;\n constructor(fieldArchive, fieldConverter) {\n this.fieldArchive = fieldArchive;\n this.fieldConverter = fieldConverter;\n }\n static services = [\n FieldArchive,\n FieldConverter\n ];\n forEvent() {\n return FieldsInitedEvent;\n }\n handle(event) {\n if (event.ofMessageType('FieldsInitedEvent')) {\n const fields = this.fieldConverter.convert(event.getFields());\n this.fieldArchive.next(event.getAggregateId(), fields);\n }\n }\n}\n\nclass FieldDomainModule {\n defineAggregate() {\n return null;\n }\n registerKey() {\n return structureKey;\n }\n registerProviders(container) {\n container.provide(FieldCollectionFactory);\n container.provide(FieldEntityFactory);\n container.provide(FieldEntityIdGenerator);\n container.provide(DataFieldFactory);\n }\n registerCommandHandlers() {\n return [\n InitFieldsCommandHandler\n ];\n }\n registerDomainEventHandler() {\n return [\n FieldsInitedEventHandler\n ];\n }\n registerMultiDomainEventHandler() {\n return [];\n }\n}\n\nclass FieldDomainWarehouse extends FieldWarehouse {\n fieldReadModelArchive;\n constructor(fieldReadModelArchive) {\n super();\n this.fieldReadModelArchive = fieldReadModelArchive;\n }\n static services = [FieldArchive];\n onFields(structureId) {\n return this.fieldReadModelArchive.on(structureId);\n }\n findFields(structureId) {\n return this.fieldReadModelArchive.find(structureId);\n }\n}\n\nclass FieldDomainPublisher extends FieldPublisher {\n commandDispatcher;\n constructor(commandDispatcher) {\n super();\n this.commandDispatcher = commandDispatcher;\n }\n static services = [CommandDispatcher];\n initFields(fieldConfigs, structureId) {\n this.commandDispatcher.dispatch(new InitFieldsCommand(structureId, fieldConfigs));\n }\n}\n\nclass FieldApiModule {\n registerProviders(container) {\n container.provide(FieldPublisher, FieldDomainPublisher);\n container.provide(FieldArchive);\n container.provide(FieldConverter);\n container.provide(FieldWarehouse, FieldDomainWarehouse);\n }\n}\nfunction initializeField() {\n new DomainInitializer(new FieldApiModule(), new FieldDomainModule()).init();\n}\n\ninitializeField();\nfunction provideFieldCommandInvoker() {\n return CoreContainer.resolve(FieldPublisher);\n}\nfunction provideFieldWarehouse() {\n return CoreContainer.resolve(FieldWarehouse);\n}\nclass FieldFeatureModule extends FeatureModule {\n static forComponent() {\n return [];\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: FieldFeatureModule, deps: null, target: i0.ɵɵFactoryTarget.NgModule });\n static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"17.0.2\", ngImport: i0, type: FieldFeatureModule, imports: [CommonModule] });\n static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: FieldFeatureModule, providers: [\n { provide: FieldPublisher, useFactory: provideFieldCommandInvoker },\n { provide: FieldWarehouse, useFactory: provideFieldWarehouse }\n ], imports: [CommonModule] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: FieldFeatureModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [\n CommonModule\n ],\n declarations: [],\n exports: [],\n providers: [\n { provide: FieldPublisher, useFactory: provideFieldCommandInvoker },\n { provide: FieldWarehouse, useFactory: provideFieldWarehouse }\n ]\n }]\n }] });\n\nclass StructureSetSummariesEnabledCommand extends StructureCommand {\n enabled;\n constructor(structureId, enabled) {\n super(structureId, 'StructureSetSummariesEnabledCommand');\n this.enabled = enabled;\n }\n isEnabled() {\n return this.enabled;\n }\n}\n\nconst StructureSummariesEnabledSetEventName = 'StructureSummariesEnabledSetEvent';\nclass StructureSummariesEnabledSetEvent extends StructureDomainEvent {\n enabled;\n constructor(aggregateId, enabled) {\n super(aggregateId, enabled, StructureSummariesEnabledSetEventName);\n this.enabled = enabled;\n }\n isEnabled() {\n return this.enabled;\n }\n}\n\nclass StructureSetSummariesEnabledCommandHandler {\n structureSourceDomainEventPublisher;\n domainEventPublisher = CoreContainer.resolve(DomainEventPublisher);\n constructor(structureSourceDomainEventPublisher) {\n this.structureSourceDomainEventPublisher = structureSourceDomainEventPublisher;\n }\n static services = [SourceDomainEventPublisher];\n forCommand() {\n return StructureSetSummariesEnabledCommand;\n }\n handle(structure, command) {\n const enabled = command.isEnabled();\n structure.setSummariesEnabled(enabled);\n }\n publish(aggregate, command) {\n const enabled = command.isEnabled(), aggregateEvents = aggregate.getEvents();\n this.domainEventPublisher.publish(new StructureSummariesEnabledSetEvent(command.getAggregateId(), enabled));\n this.structureSourceDomainEventPublisher.publish(aggregateEvents);\n }\n}\n\nclass StructureSummariesChangedAggregateEvent extends StructureAggregateEvent {\n summarizedValues;\n constructor(aggregateId, summarizedValues) {\n super(aggregateId, 'StructureSummariesChangedAggregateEvent');\n this.summarizedValues = summarizedValues;\n }\n toDomainEvent() {\n return new StructureSummariesChangedEvent(this.getAggregateId(), this.summarizedValues);\n }\n getSummaries() {\n return this.summarizedValues;\n }\n}\n\nclass SummariesManager {\n calculators;\n static DEFAULT_ENABLED = false;\n structureId;\n enabled;\n values = new Map();\n constructor(structureId, calculators) {\n this.calculators = calculators;\n this.structureId = structureId;\n this.enabled = SummariesManager.DEFAULT_ENABLED;\n }\n calculate(fields, entities) {\n if (!this.enabled) {\n return [];\n }\n const calculations = new Map();\n this.calculators.forEach((calc) => {\n const aggregatedValues = calc.calculate(fields, entities);\n if (aggregatedValues) {\n Array.from(aggregatedValues.keys())\n .forEach((key) => {\n calculations.set(key, aggregatedValues.get(key));\n });\n }\n });\n if (calculations.size > 0) {\n return [\n new StructureSummariesChangedAggregateEvent(this.structureId, calculations)\n ];\n }\n else {\n return [];\n }\n }\n setEnabled(enabled) {\n this.enabled = enabled;\n }\n add() {\n }\n remove() {\n }\n update() {\n }\n}\n\nclass SummariesEnabledArchive extends AggregateArchive {\n constructor() {\n super(SummariesManager.DEFAULT_ENABLED);\n }\n init(structureId) {\n this.next(structureId, SummariesManager.DEFAULT_ENABLED);\n }\n}\n\nclass StructureSummariesEnabledSetEventHandler {\n summariesEnabledArchive;\n constructor(summariesEnabledArchive) {\n this.summariesEnabledArchive = summariesEnabledArchive;\n }\n static services = [SummariesEnabledArchive];\n forEvent() {\n return StructureSummariesEnabledSetEvent;\n }\n handle(event) {\n if (event.ofMessageType('StructureSummariesEnabledSetEvent')) {\n this.summariesEnabledArchive.next(event.getAggregateId(), event.isEnabled());\n }\n }\n}\n\nclass SummariesCalculator {\n calculate(fields, items) {\n const filteredFields = fields.filter((field) => this.forDataType(field.getDataType()));\n if (!filteredFields || filteredFields.length === 0 || items.length === 0) {\n return null;\n }\n const count = new Map(), distinct = new Map();\n // init\n filteredFields.forEach((field) => {\n const key = field.getKey();\n count.set(key, 0);\n distinct.set(key, new Set());\n this.prepare(field);\n });\n // calculate\n items.forEach((item) => {\n filteredFields.forEach((field) => {\n const key = field.getKey(), value = field.getValue(item);\n if (value !== null || value !== undefined || value !== '') {\n if (field.isSummaries(SummariesType.COUNT)) {\n const countForField = count.get(key);\n count.set(key, countForField + 1);\n }\n if (field.isSummaries(SummariesType.DISTINCT)) {\n const distinctSet = distinct.get(key);\n distinctSet.add(value);\n }\n }\n this.aggregate(field, value);\n });\n });\n filteredFields.forEach((field) => {\n this.postCalculate(field, items);\n });\n const summaries = new Map();\n filteredFields.forEach((field) => {\n const key = field.getKey();\n const aggregatedValues = this.generateAggregatedValues(field);\n if (field.isSummaries(SummariesType.COUNT)) {\n aggregatedValues.setCount(count.get(key));\n }\n if (field.isSummaries(SummariesType.DISTINCT)) {\n aggregatedValues.setDistinct((distinct.get(key)).size);\n }\n summaries.set(key, aggregatedValues);\n });\n return summaries;\n }\n}\n\nclass SummariesValues {\n count;\n distinct;\n setCount(value) {\n this.count = value;\n }\n setDistinct(value) {\n this.distinct = value;\n }\n}\n\nclass BooleanSummarizedValues extends SummariesValues {\n truthy;\n falsy;\n constructor(truthy, falsy) {\n super();\n this.truthy = truthy;\n this.falsy = falsy;\n }\n}\n\nclass BooleanSummariesCalculator extends SummariesCalculator {\n truthy = new Map();\n falsy = new Map();\n constructor() {\n super();\n }\n forDataType(dataType) {\n return dataType === DataType.BOOLEAN;\n }\n prepare(field) {\n const key = field.getKey();\n if (field.isSummaries(SummariesType.TRUTHY)) {\n this.truthy.set(key, 0);\n }\n if (field.isSummaries(SummariesType.FALSY)) {\n this.falsy.set(key, 0);\n }\n }\n postCalculate(field, items) {\n }\n aggregate(field, value) {\n const booleanValue = value, // (value as any === 'true'),\n key = field.getKey(), truthyForField = this.truthy.get(key), falsyForField = this.falsy.get(key);\n if (booleanValue) {\n if (field.isSummaries(SummariesType.TRUTHY)) {\n this.truthy.set(key, truthyForField + 1);\n }\n }\n else {\n if (field.isSummaries(SummariesType.FALSY)) {\n this.falsy.set(key, falsyForField + 1);\n }\n }\n }\n generateAggregatedValues(field) {\n const key = field.getKey();\n return new BooleanSummarizedValues(this.truthy.get(key), this.falsy.get(key));\n }\n}\n\nclass DateSummarizedValues extends SummariesValues {\n constructor() {\n super();\n }\n}\n\nclass DateSummariesCalculator extends SummariesCalculator {\n constructor() {\n super();\n }\n forDataType(dataType) {\n return dataType === DataType.DATE;\n }\n prepare(field) {\n }\n postCalculate(field, items) {\n }\n aggregate(field, value) {\n }\n generateAggregatedValues(field) {\n return new DateSummarizedValues();\n }\n}\n\nclass NumberSummarizedValues extends SummariesValues {\n sum;\n min;\n max;\n average;\n median;\n constructor(sum, min, max, average, median) {\n super();\n this.sum = this.setValueWithPrecision(sum);\n this.min = this.setValueWithPrecision(min);\n this.max = this.setValueWithPrecision(max);\n this.average = this.setValueWithPrecision(average);\n this.median = this.setValueWithPrecision(median);\n }\n setValueWithPrecision(value) {\n if (!value && value !== 0) {\n return null;\n }\n if (value === 0) {\n return 0;\n }\n return +((value).toFixed(2));\n }\n}\n\nclass NumberSummariesCalculator extends SummariesCalculator {\n sum = new Map();\n min = new Map();\n max = new Map();\n average = new Map();\n median = new Map();\n constructor() {\n super();\n }\n forDataType(dataType) {\n return dataType === DataType.NUMBER;\n }\n prepare(field) {\n const key = field.getKey();\n this.sum.set(key, 0);\n this.min.set(key, Number.MAX_SAFE_INTEGER);\n this.max.set(key, 0);\n }\n postCalculate(field, items) {\n const key = field.getKey();\n if (field.isSummaries(SummariesType.AVERAGE)) {\n this.average.set(key, this.sum.get(key) / items.length);\n }\n if (field.isSummaries(SummariesType.MEDIAN)) {\n this.median.set(key, field.getValue(items[Math.floor(items.length / 2)]));\n }\n }\n aggregate(field, value) {\n const numberValue = +value, key = field.getKey(), sumForField = this.sum.get(key), minForField = this.min.get(key), maxForField = this.max.get(key);\n if (field.isSummaries(SummariesType.SUM) || field.isSummaries(SummariesType.AVERAGE)) {\n this.sum.set(key, sumForField + numberValue);\n }\n if (field.isSummaries(SummariesType.MIN)) {\n if (minForField > numberValue) {\n this.min.set(key, numberValue);\n }\n }\n if (field.isSummaries(SummariesType.MAX)) {\n if (maxForField < numberValue) {\n this.max.set(key, numberValue);\n }\n }\n }\n generateAggregatedValues(field) {\n const key = field.getKey(), sum = field.isSummaries(SummariesType.SUM) ? this.sum.get(key) : undefined, min = field.isSummaries(SummariesType.MIN) ? this.min.get(key) : undefined, max = field.isSummaries(SummariesType.MAX) ? this.max.get(key) : undefined, average = field.isSummaries(SummariesType.AVERAGE) ? this.average.get(key) : undefined, median = field.isSummaries(SummariesType.MEDIAN) ? this.median.get(key) : undefined;\n return new NumberSummarizedValues(sum, min, max, average, median);\n }\n}\n\nclass StringSummarizedValues extends SummariesValues {\n constructor() {\n super();\n }\n}\n\nclass StringSummariesCalculator extends SummariesCalculator {\n constructor() {\n super();\n }\n forDataType(dataType) {\n return dataType === DataType.STRING;\n }\n prepare(field) {\n }\n postCalculate(field, items) {\n }\n aggregate(field, value) {\n }\n generateAggregatedValues(field) {\n return new StringSummarizedValues();\n }\n}\n\nclass UnknownSummarizedValues extends SummariesValues {\n constructor() {\n super();\n }\n}\n\nclass UnknownSummariesCalculator extends SummariesCalculator {\n constructor() {\n super();\n }\n forDataType(dataType) {\n return dataType === DataType.UNKNOWN;\n }\n prepare(field) {\n }\n postCalculate(field, items) {\n }\n aggregate(field, value) {\n }\n generateAggregatedValues(field) {\n return new UnknownSummarizedValues();\n }\n}\n\nconst SUMMARIES_CALCULATORS = 'GUI - Summaries Calculators';\n\nclass SummariesManagerFactory {\n calculators;\n constructor(calculators) {\n this.calculators = calculators;\n }\n static services = [{ inject: SUMMARIES_CALCULATORS, collection: true }];\n create(structureId) {\n return new SummariesManager(structureId, this.calculators);\n }\n}\n\nclass SummariesDispatcher {\n commandDispatcher = CoreContainer.resolve(CommandDispatcher);\n setSummariesEnabled(enabled, structureId) {\n this.commandDispatcher.dispatch(new StructureSetSummariesEnabledCommand(structureId, enabled));\n }\n}\n\nclass StructureSummariesPanelConfig {\n static defaultTop = false;\n static defaultBottom = true;\n top = StructureSummariesPanelConfig.defaultTop;\n bottom = StructureSummariesPanelConfig.defaultBottom;\n setTop(top) {\n this.top = top;\n }\n setBottom(bottom) {\n this.bottom = bottom;\n }\n isTopEnabled() {\n return this.top;\n }\n isBottomEnabled() {\n return this.bottom;\n }\n}\n\nclass StructureSummariesConfigArchive extends AggregateArchive {\n static default = new StructureSummariesPanelConfig();\n constructor() {\n super(StructureSummariesConfigArchive.default);\n }\n}\n\nclass StructureSummariesPanelConfigConverter {\n convert(config) {\n const panelConfig = new StructureSummariesPanelConfig();\n if (config.top !== undefined && config.top !== null) {\n panelConfig.setTop(config.top);\n }\n if (config.bottom !== undefined && config.bottom !== null) {\n panelConfig.setBottom(config.bottom);\n }\n return panelConfig;\n }\n}\n\nclass SummariesDomainModule {\n defineAggregate() {\n return null;\n }\n registerKey() {\n return structureKey;\n }\n registerProviders(container) {\n container.provide(SummariesManagerFactory);\n container.provide(SummariesDispatcher);\n container.provide(StructureSummariesConfigArchive);\n container.provide(StructureSummariesPanelConfigConverter);\n container.provideCollection(SUMMARIES_CALCULATORS, BooleanSummariesCalculator);\n container.provideCollection(SUMMARIES_CALCULATORS, DateSummariesCalculator);\n container.provideCollection(SUMMARIES_CALCULATORS, NumberSummariesCalculator);\n container.provideCollection(SUMMARIES_CALCULATORS, StringSummariesCalculator);\n container.provideCollection(SUMMARIES_CALCULATORS, UnknownSummariesCalculator);\n }\n registerCommandHandlers() {\n return [\n StructureSetSummariesEnabledCommandHandler\n ];\n }\n registerDomainEventHandler() {\n return [\n StructureSummariesEnabledSetEventHandler\n ];\n }\n registerMultiDomainEventHandler() {\n return [];\n }\n}\n\nclass SummariesDomainWarehouse extends SummariesWarehouse {\n summariesEnabledArchive;\n structureSummariesArchive;\n constructor(summariesEnabledArchive, structureSummariesArchive) {\n super();\n this.summariesEnabledArchive = summariesEnabledArchive;\n this.structureSummariesArchive = structureSummariesArchive;\n }\n static services = [SummariesEnabledArchive, StructureSummariesConfigArchive];\n onEnabled(structureId) {\n return this.summariesEnabledArchive.on(structureId);\n }\n onTopEnabled(structureId) {\n return this.onEnabled(structureId)\n .pipe(hermesSwitchMap((enabled) => {\n return this.structureSummariesArchive\n .on(structureId)\n .pipe(hermesMap((config) => enabled && config.isTopEnabled()));\n }));\n }\n onBottomEnabled(structureId) {\n return this.onEnabled(structureId)\n .pipe(hermesSwitchMap((enabled) => {\n return this.structureSummariesArchive\n .on(structureId)\n .pipe(hermesMap((config) => enabled && config.isBottomEnabled()));\n }));\n }\n}\n\nclass SummariesDomainPublisher extends SummariesPublisher {\n summariesDispatcher;\n configConverter;\n structureSummariesConfigArchive;\n constructor(summariesDispatcher, configConverter, structureSummariesConfigArchive) {\n super();\n this.summariesDispatcher = summariesDispatcher;\n this.configConverter = configConverter;\n this.structureSummariesConfigArchive = structureSummariesConfigArchive;\n }\n static services = [SummariesDispatcher, StructureSummariesPanelConfigConverter, StructureSummariesConfigArchive];\n setSummariesEnabled(enabled, structureId) {\n this.summariesDispatcher.setSummariesEnabled(enabled, structureId);\n }\n setConfig(config, structureId) {\n const summariesPanelConfig = this.configConverter.convert(config);\n this.setSummariesEnabled(config.enabled, structureId);\n this.structureSummariesConfigArchive.next(structureId, summariesPanelConfig);\n }\n}\n\nclass SummariesDomainEventRepository extends SummariesEventRepository {\n constructor() {\n super();\n }\n onSummariesChanged(structureId) {\n return this.onEvent(structureId, StructureSummariesChangedEvent);\n }\n}\n\nclass SummariesApiModule {\n registerProviders(container) {\n container.provide(SummariesPublisher, SummariesDomainPublisher);\n container.provide(SummariesEventRepository, SummariesDomainEventRepository);\n container.provide(SummariesWarehouse, SummariesDomainWarehouse);\n container.provide(SummariesEnabledArchive);\n }\n}\nfunction initializeSummaries() {\n new DomainInitializer(new SummariesApiModule(), new SummariesDomainModule()).init();\n}\n\nfunction provideSummariesCalculator(clazz) {\n return {\n provide: SUMMARIES_CALCULATORS,\n useClass: clazz,\n multi: true\n };\n}\n\ninitializeSummaries();\nfunction provideSummariesCommandInvoker() {\n return CoreContainer.resolve(SummariesPublisher);\n}\nfunction provideSummariesWarehouse() {\n return CoreContainer.resolve(SummariesWarehouse);\n}\nfunction provideSummariesEventRepository() {\n return CoreContainer.resolve(SummariesEventRepository);\n}\nclass SummariesFeatureModule extends FeatureModule {\n static forComponent() {\n return [];\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: SummariesFeatureModule, deps: null, target: i0.ɵɵFactoryTarget.NgModule });\n static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"17.0.2\", ngImport: i0, type: SummariesFeatureModule, declarations: [StructureSummariesPanelComponent], imports: [CommonModule,\n FabricModule,\n TranslationFeatureModule,\n GuiTemplateModule], exports: [StructureSummariesPanelComponent] });\n static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: SummariesFeatureModule, providers: [\n { provide: SummariesPublisher, useFactory: provideSummariesCommandInvoker },\n { provide: SummariesWarehouse, useFactory: provideSummariesWarehouse },\n { provide: SummariesEventRepository, useFactory: provideSummariesEventRepository },\n provideSummariesCalculator(BooleanSummariesCalculator),\n provideSummariesCalculator(DateSummariesCalculator),\n provideSummariesCalculator(NumberSummariesCalculator),\n provideSummariesCalculator(StringSummariesCalculator),\n provideSummariesCalculator(UnknownSummariesCalculator)\n ], imports: [CommonModule,\n FabricModule,\n TranslationFeatureModule,\n GuiTemplateModule] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: SummariesFeatureModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [\n CommonModule,\n FabricModule,\n TranslationFeatureModule,\n GuiTemplateModule\n ],\n declarations: [\n StructureSummariesPanelComponent\n ],\n exports: [\n StructureSummariesPanelComponent\n ],\n providers: [\n { provide: SummariesPublisher, useFactory: provideSummariesCommandInvoker },\n { provide: SummariesWarehouse, useFactory: provideSummariesWarehouse },\n { provide: SummariesEventRepository, useFactory: provideSummariesEventRepository },\n provideSummariesCalculator(BooleanSummariesCalculator),\n provideSummariesCalculator(DateSummariesCalculator),\n provideSummariesCalculator(NumberSummariesCalculator),\n provideSummariesCalculator(StringSummariesCalculator),\n provideSummariesCalculator(UnknownSummariesCalculator)\n ]\n }]\n }] });\n\nclass VerticalRange {\n start;\n end;\n margin;\n constructor(start, end, margin) {\n this.start = start;\n this.end = end;\n this.margin = margin;\n }\n getStart() {\n return this.start;\n }\n getEnd() {\n return this.end;\n }\n getMargin() {\n return this.margin;\n }\n}\n\nlet VerticalFormationContainerHeight = class VerticalFormationContainerHeight {\n containerHeight = Optional.empty();\n sourceHeight;\n isContainerHeightProperForVirtualScroll() {\n if (this.containerHeight.isPresent()) {\n return this.containerHeight.getValueOrNullOrThrowError() > 0;\n }\n else {\n return false;\n }\n }\n getVisibleContainerHeight() {\n return this.getHeight();\n }\n getHeight() {\n if (this.containerHeight.isPresent()) {\n return this.getContainerHeight();\n }\n return this.sourceHeight;\n }\n getSourceHeight() {\n return this.sourceHeight;\n }\n setContainerHeight(height) {\n if (height >= 0) {\n this.containerHeight = Optional.of(height);\n }\n }\n setSourceSize(height) {\n this.sourceHeight = height;\n }\n getContainerHeight() {\n if (this.containerHeight.getValueOrNullOrThrowError() > this.sourceHeight) {\n return this.sourceHeight;\n }\n else {\n return this.containerHeight.getValueOrNullOrThrowError();\n }\n }\n};\nVerticalFormationContainerHeight = __decorate([\n DomainObject\n], VerticalFormationContainerHeight);\n\nclass ScrollBarPositionSetEvent extends StructureDomainEvent {\n position;\n constructor(aggregateId, position) {\n super(aggregateId, position, 'ScrollBarPositionSetEvent');\n this.position = position;\n }\n getPosition() {\n return this.position;\n }\n}\n\nclass ScrollBarPositionSetAggregateEvent extends StructureAggregateEvent {\n position;\n constructor(schemaId, position) {\n super(schemaId, 'ScrollBarPositionSetAggregateEvent');\n this.position = position;\n }\n toDomainEvent() {\n return new ScrollBarPositionSetEvent(this.getAggregateId(), this.position);\n }\n}\n\nvar VerticalFormation_1;\nlet VerticalFormation = class VerticalFormation {\n static { VerticalFormation_1 = this; }\n structureId;\n enabled;\n static ROW_HEIGHT = 42;\n static HIDDEN_ITEMS_TOP = 5;\n static HIDDEN_ITEMS_BOTTOM = 2;\n rowHeight = VerticalFormation_1.ROW_HEIGHT;\n hiddenItemsTop = VerticalFormation_1.HIDDEN_ITEMS_TOP;\n hiddenItemsBottom = VerticalFormation_1.HIDDEN_ITEMS_BOTTOM;\n container = new VerticalFormationContainerHeight();\n scrollPosition;\n range;\n sourceSize;\n logger;\n constructor(structureId, enabled = false, viewportHeight = 0, sourceSize = 0, scrollPosition = 0, rowHeight, hiddenItemsTop, hiddenItemsBottom) {\n this.structureId = structureId;\n this.enabled = enabled;\n this.sourceSize = sourceSize;\n this.container.setSourceSize(this.sourceSize * this.rowHeight);\n this.container.setContainerHeight(viewportHeight);\n this.scrollPosition = scrollPosition;\n if (Number.isInteger(rowHeight)) {\n this.rowHeight = rowHeight;\n }\n if (Number.isInteger(hiddenItemsTop)) {\n this.hiddenItemsTop = hiddenItemsTop;\n }\n if (Number.isInteger(hiddenItemsBottom)) {\n this.hiddenItemsBottom = hiddenItemsBottom;\n }\n this.calculateRange();\n }\n isEnabled() {\n return this.enabled &&\n this.container.getHeight() > 0 &&\n this.sourceSize > 0;\n }\n getViewPortHeight() {\n return this.container.getVisibleContainerHeight();\n }\n getSourceHeight() {\n return this.container.getSourceHeight();\n }\n getRowHeight() {\n return this.rowHeight;\n }\n getRange() {\n return this.range;\n }\n getTopMargin() {\n return this.range.getStart() * this.rowHeight;\n }\n calculateRange() {\n if (this.calcFullHeight() <= this.container.getHeight()) {\n this.range = new VerticalRange(0, this.sourceSize, 0);\n return;\n }\n const itemsInViewport = Math.ceil(this.container.getHeight() / this.rowHeight), viewportPositionIndex = Math.floor(this.scrollPosition / this.rowHeight);\n let end = (viewportPositionIndex + itemsInViewport + this.hiddenItemsBottom);\n let topMargin = viewportPositionIndex;\n if (topMargin + itemsInViewport >= this.sourceSize) {\n topMargin = this.sourceSize - itemsInViewport;\n }\n let start = Math.max(viewportPositionIndex - this.hiddenItemsTop, 0);\n if (end > this.sourceSize) {\n end = this.sourceSize;\n start = end - itemsInViewport;\n }\n // end - itemsInViewport;\n this.range = new VerticalRange(start, end, topMargin);\n return {\n start,\n end,\n topMargin\n };\n }\n setEnabled(enabled) {\n this.enabled = enabled;\n // TODO dispatch aggregate event\n if (this.enabled && !this.container.isContainerHeightProperForVirtualScroll()) {\n this.logger.warn('Height needs to be specified in order for virtual scroll to work.');\n }\n this.calculateRange();\n }\n setSourceSize(sourceSize = 0) {\n this.sourceSize = sourceSize;\n this.container.setSourceSize(this.sourceSize * this.rowHeight);\n this.calculateRange();\n }\n setTopHiddenItemsCount(count) {\n this.hiddenItemsTop = count;\n this.calculateRange();\n }\n setBottomHiddenItemsCount(count) {\n this.hiddenItemsBottom = count;\n this.calculateRange();\n }\n setScrollPosition(scrollPosition) {\n this.scrollPosition = scrollPosition;\n this.calculateRange();\n }\n scrollToIndex(index) {\n if (index >= this.sourceSize) {\n index = this.sourceSize;\n }\n if (index < -1) {\n index = 0;\n }\n const position = index * this.rowHeight;\n return new ScrollBarPositionSetAggregateEvent(this.structureId, position);\n }\n setViewportHeight(height) {\n this.container.setContainerHeight(height);\n this.calculateRange();\n }\n setRowHeight(rowHeight) {\n this.rowHeight = rowHeight;\n this.container.setSourceSize(this.sourceSize * this.rowHeight);\n this.calculateRange();\n }\n setLogger(logger) {\n this.logger = logger;\n }\n // TODO REMOVE\n calcFullHeight() {\n return this.sourceSize * this.rowHeight;\n }\n};\nVerticalFormation = VerticalFormation_1 = __decorate([\n DomainObject\n], VerticalFormation);\n\nclass VerticalFormationFactory {\n logger;\n constructor(logger) {\n this.logger = logger;\n }\n static services = [Logger];\n create(structureId, enabled = false, viewportHeight = -1, sourceSize = 0, scrollPosition = 0, rowHeight, hiddenItemsTop, hiddenItemsBottom) {\n const vf = new VerticalFormation(structureId, enabled, viewportHeight, sourceSize, scrollPosition, rowHeight, hiddenItemsTop, hiddenItemsBottom);\n vf.setLogger(this.logger);\n return vf;\n }\n}\n\nclass SetScrollPositionCommand extends StructureCommand {\n position;\n constructor(structureId, position) {\n super(structureId, 'SetScrollPositionCommand');\n this.position = position;\n }\n getPosition() {\n return this.position;\n }\n}\n\nclass ScrollPositionSetEvent extends StructureDomainEvent {\n constructor(aggregateId) {\n super(aggregateId, null, 'ScrollPositionSetEvent');\n }\n}\n\nclass SetScrollPositionCommandHandler {\n domainEventPublisher = CoreContainer.resolve(DomainEventPublisher);\n forCommand() {\n return SetScrollPositionCommand;\n }\n handle(structure, command) {\n const position = command.getPosition();\n structure.setScrollPosition(position);\n }\n publish(aggregate, command) {\n this.domainEventPublisher.publish(new ScrollPositionSetEvent(command.getAggregateId()));\n }\n}\n\nclass SetVerticalScrollEnabledCommand extends StructureCommand {\n enabled;\n constructor(structureId, enabled) {\n super(structureId, 'SetVerticalScrollEnabledCommand');\n this.enabled = enabled;\n }\n isEnabled() {\n return this.enabled;\n }\n}\n\nclass VerticalScrollEnabledSetEvent extends StructureDomainEvent {\n constructor(aggregateId) {\n super(aggregateId, null, 'VerticalScrollEnabledSetEvent');\n }\n}\n\nclass SetVerticalScrollEnabledCommandHandler {\n domainEventPublisher = CoreContainer.resolve(DomainEventPublisher);\n forCommand() {\n return SetVerticalScrollEnabledCommand;\n }\n handle(structure, command) {\n const enabled = command.isEnabled();\n structure.setVerticalFormationEnabled(enabled);\n }\n publish(aggregate, command) {\n this.domainEventPublisher.publish(new VerticalScrollEnabledSetEvent(command.getAggregateId()));\n }\n}\n\nclass SetRowHeightBasedOnThemeCommand extends StructureCommand {\n theme;\n constructor(structureId, theme) {\n super(structureId, 'SetRowHeightBasedOnThemeCommand');\n this.theme = theme;\n }\n getTheme() {\n return this.theme;\n }\n}\n\nclass RowHeightSetBasedOnThemeEvent extends StructureDomainEvent {\n constructor(structureId) {\n super(structureId, null, 'RowHeightSetBasedOnThemeEvent');\n }\n}\n\nclass SetRowHeightBasedOnThemeCommandHandler {\n domainEventPublisher = CoreContainer.resolve(DomainEventPublisher);\n forCommand() {\n return SetRowHeightBasedOnThemeCommand;\n }\n handle(structure, command) {\n const theme = command.getTheme();\n structure.setTheme(theme);\n }\n publish(aggregate, command) {\n this.domainEventPublisher.publish(new RowHeightSetBasedOnThemeEvent(command.getAggregateId()));\n }\n}\n\nclass SetRowHeightCommand extends StructureCommand {\n rowHeight;\n constructor(structureId, rowHeight) {\n super(structureId, 'SetRowHeightCommand');\n this.rowHeight = rowHeight;\n }\n getRowHeight() {\n return this.rowHeight;\n }\n}\n\nclass RowHeightSetEvent extends StructureDomainEvent {\n constructor(aggregateId) {\n super(aggregateId, null, 'RowHeightSetEvent');\n }\n}\n\nclass SetRowHeightCommandHandler {\n domainEventPublisher = CoreContainer.resolve(DomainEventPublisher);\n forCommand() {\n return SetRowHeightCommand;\n }\n handle(structure, command) {\n const rowHeight = command.getRowHeight();\n const formation = structure.getVerticalFormation();\n formation.setRowHeight(rowHeight);\n }\n publish(aggregate, command) {\n this.domainEventPublisher.publish(new RowHeightSetEvent(command.getAggregateId()));\n }\n}\n\nclass StructureSetHeightCommand extends StructureCommand {\n height;\n constructor(structureId, height) {\n super(structureId, 'StructureSetHeightCommand');\n this.height = height;\n }\n getHeight() {\n return this.height;\n }\n}\n\nclass StructureHeightSetEvent extends StructureDomainEvent {\n constructor(aggregateId) {\n super(aggregateId, null, 'StructureHeightSetEvent');\n }\n}\n\nclass StructureSetHeightCommandHandler {\n domainEventPublisher = CoreContainer.resolve(DomainEventPublisher);\n forCommand() {\n return StructureSetHeightCommand;\n }\n handle(aggregate, command) {\n const height = command.getHeight();\n aggregate.setHeight(height);\n }\n publish(aggregate, command) {\n this.domainEventPublisher.publish(new StructureHeightSetEvent(command.getAggregateId()));\n }\n}\n\nclass VerticalFormationScrollBarPositionArchive extends AggregateArchive {\n static DEFAULT_POSITION = 0;\n constructor() {\n super(VerticalFormationScrollBarPositionArchive.DEFAULT_POSITION);\n }\n}\n\nclass ScrollBarPositionSetEventHandler {\n positionRepository;\n constructor(positionRepository) {\n this.positionRepository = positionRepository;\n }\n static services = [VerticalFormationScrollBarPositionArchive];\n forEvent() {\n return ScrollBarPositionSetEvent;\n }\n handle(event) {\n if (event.ofMessageType('ScrollBarPositionSetEvent')) {\n this.positionRepository.next(event.getAggregateId(), event.getPosition());\n }\n }\n}\n\nclass SetScrollBarPositionCommand extends StructureCommand {\n position;\n constructor(structureId, position) {\n super(structureId, 'SetScrollBarPositionCommand');\n this.position = position;\n }\n getPosition() {\n return this.position;\n }\n}\n\nclass SetScrollBarPositionCommandHandler {\n forCommand() {\n return SetScrollBarPositionCommand;\n }\n handle(structure, command) {\n const index = command.getPosition();\n structure.scrollToIndex(index);\n }\n}\n\nclass VerticalFormationDispatcher {\n commandDispatcher = CoreContainer.resolve(CommandDispatcher);\n setVirtualScrollEnabled(enabled, structureId) {\n this.commandDispatcher.dispatch(new SetVerticalScrollEnabledCommand(structureId, enabled));\n }\n scrollTo(position, structureId) {\n this.commandDispatcher.dispatch(new SetScrollBarPositionCommand(structureId, position));\n }\n setScrollPosition(position, structureId) {\n this.commandDispatcher.dispatch(new SetScrollPositionCommand(structureId, position));\n }\n}\n\nclass VerticalFormationDomainModule {\n defineAggregate() {\n return null;\n }\n registerKey() {\n return structureKey;\n }\n registerProviders(container) {\n container.provide(VerticalFormationFactory);\n container.provide(VerticalFormationDispatcher);\n }\n registerCommandHandlers() {\n return [\n SetScrollPositionCommandHandler,\n SetVerticalScrollEnabledCommandHandler,\n SetRowHeightBasedOnThemeCommandHandler,\n SetRowHeightCommandHandler,\n StructureSetHeightCommandHandler,\n SetScrollBarPositionCommandHandler\n ];\n }\n registerDomainEventHandler() {\n return [\n ScrollBarPositionSetEventHandler\n ];\n }\n registerMultiDomainEventHandler() {\n return [];\n }\n}\n\nlet VerticalFormationModel = class VerticalFormationModel {\n enabled;\n topMargin;\n sourceHeight;\n viewportHeight;\n rowHeight;\n constructor(enabled, topMargin, sourceHeight, viewportHeight, rowHeight) {\n this.enabled = enabled;\n this.topMargin = topMargin;\n this.sourceHeight = sourceHeight;\n this.viewportHeight = viewportHeight;\n this.rowHeight = rowHeight;\n }\n isEnabled() {\n return this.enabled;\n }\n getTopMargin() {\n return this.topMargin; // * this.rowHeight;\n }\n getSourceHeight() {\n return this.sourceHeight;\n }\n getViewPortHeight() {\n return this.viewportHeight;\n }\n getRowHeight() {\n return this.rowHeight;\n }\n};\nVerticalFormationModel = __decorate([\n ReadModelObject\n], VerticalFormationModel);\n\nclass VerticalFormationConverter {\n convert(verticalFormation) {\n const enabled = verticalFormation.isEnabled(), topMargin = verticalFormation.getTopMargin(), sourceHeight = verticalFormation.getSourceHeight(), viewportHeight = verticalFormation.getViewPortHeight(), rowHeight = verticalFormation.getRowHeight();\n return new VerticalFormationModel(enabled, topMargin, sourceHeight, viewportHeight, rowHeight);\n }\n}\n\nclass StructureCreatedEvent extends StructureDomainEvent {\n constructor(aggregateId) {\n super(aggregateId, null, 'StructureCreatedEvent');\n }\n}\n\nclass InMemoryStructureStore extends InMemoryStore {\n}\n\nlet SourceIsLoadingModel = class SourceIsLoadingModel {\n loading;\n constructor(loading) {\n this.loading = loading;\n }\n isLoading() {\n return this.loading;\n }\n};\nSourceIsLoadingModel = __decorate([\n ReadModelObject\n], SourceIsLoadingModel);\n\nclass SourceConverter {\n convert(aggregate) {\n return new SourceIsLoadingModel(aggregate.isLoading());\n }\n}\n\nclass StructureReadModelRoot extends ReadModelRoot {\n paging;\n entities;\n source;\n verticalFormation;\n constructor(uid, paging, entities, source, verticalFormation) {\n super(uid);\n this.paging = paging;\n this.entities = entities;\n this.source = source;\n this.verticalFormation = verticalFormation;\n }\n getPaging() {\n return this.paging;\n }\n getEntities() {\n return this.entities;\n }\n getSource() {\n return this.source;\n }\n getVerticalFormation() {\n return this.verticalFormation;\n }\n // TODO Remove\n getTopMargin() {\n return this.verticalFormation.getTopMargin();\n }\n isLoaderVisible() {\n return this.getSource().isLoading();\n }\n getSourceHeight() {\n return this.verticalFormation.getSourceHeight();\n }\n isReadyToDisplay() {\n return this.entities.length > 0;\n // this.presentation.getColumns().length > 0; // TODO presentation getColumns\n }\n isVerticalScrollEnabled() {\n return this.verticalFormation.isEnabled();\n }\n}\n\nclass StructureReadModelRootConverter {\n pagingConverter;\n sourceConverter;\n verticalFormationConverter;\n constructor(pagingConverter, sourceConverter, verticalFormationConverter) {\n this.pagingConverter = pagingConverter;\n this.sourceConverter = sourceConverter;\n this.verticalFormationConverter = verticalFormationConverter;\n }\n static services = [PagingConverter, SourceConverter, VerticalFormationConverter];\n convert(aggregate) {\n const pagingAggregate = aggregate.getPaging(), originItemEntities = aggregate.getEntities(), sourceCoordinator = aggregate.getSource(), verticalFormation = aggregate.getVerticalFormation();\n return new StructureReadModelRoot(aggregate.getId().toReadModelRootId(), this.pagingConverter.convert(pagingAggregate), this.convertSource(originItemEntities), this.sourceConverter.convert(sourceCoordinator), this.verticalFormationConverter.convert(verticalFormation));\n }\n convertSource(source) {\n return source.map((originItem) => {\n return new Item(originItem.sourceItem, originItem.getPosition(), originItem.getId().toString(), originItem.getVersion());\n });\n }\n}\n\nclass InMemoryStructureReadStore extends InMemoryReadModelStore {\n inMemoryProjectStore;\n structureConverter;\n constructor(inMemoryProjectStore, structureConverter) {\n super(inMemoryProjectStore);\n this.inMemoryProjectStore = inMemoryProjectStore;\n this.structureConverter = structureConverter;\n }\n static services = [InMemoryStructureStore, StructureReadModelRootConverter];\n toReadModel(aggregate) {\n return this.structureConverter.convert(aggregate);\n }\n}\n\nclass SchemaDomainEvent extends DomainEvent {\n}\n\nclass SchemaThemeSetEvent extends SchemaDomainEvent {\n theme;\n constructor(schemaId, theme) {\n super(schemaId, theme, 'SchemaThemeSetEvent');\n this.theme = theme;\n }\n getTheme() {\n return this.theme;\n }\n}\n\nclass UniqueFilterUnselectedEvent extends StructureDomainEvent {\n constructor(aggregateId) {\n super(aggregateId, null, 'UniqueFilterUnselectedEvent');\n }\n}\n\nclass AllUniqueFilterUnselectedEvent extends StructureDomainEvent {\n constructor(aggregateId) {\n super(aggregateId, null, 'AllUniqueFilterUnselectedEvent');\n }\n}\n\nclass AllUniqueFilterSelectedEvent extends StructureDomainEvent {\n constructor(aggregateId) {\n super(aggregateId, null, 'AllUniqueFilterSelectedEvent');\n }\n}\n\nclass UniqueFilterSelectedEvent extends StructureDomainEvent {\n constructor(aggregateId) {\n super(aggregateId, null, 'UniqueFilterSelectedEvent');\n }\n}\n\nclass VerticalFormationRepository extends Reactive {\n inMemoryStructureReadStore;\n verticalFormation = new Map();\n verticalFormation$ = new HermesReplaySubject(1);\n domainEventBus = CoreContainer.resolve(DomainEventBus);\n constructor(inMemoryStructureReadStore) {\n super();\n this.inMemoryStructureReadStore = inMemoryStructureReadStore;\n this.domainEventBus\n .ofEvents([\n StructureCreatedEvent,\n VerticalScrollEnabledSetEvent,\n OriginSetEvent,\n StructureHeightSetEvent,\n RowHeightSetEvent,\n SchemaThemeSetEvent,\n RowHeightSetBasedOnThemeEvent,\n ScrollPositionSetEvent,\n SearchPhraseSetDomainEvent,\n UniqueFilterUnselectedEvent,\n AllUniqueFilterUnselectedEvent,\n AllUniqueFilterSelectedEvent,\n UniqueFilterSelectedEvent,\n PageChangedEvent,\n PagingSetEvent,\n ActiveFiltersSetEvent\n ])\n .pipe(this.hermesTakeUntil())\n .subscribe((event) => {\n const aggregateId = event.getAggregateId();\n const optStructure = this.inMemoryStructureReadStore.getById(aggregateId);\n optStructure.ifPresent((structureReadModelRoot) => {\n const verticalFormation = structureReadModelRoot.getVerticalFormation();\n this.next(aggregateId, verticalFormation);\n });\n });\n }\n static services = [InMemoryStructureReadStore];\n onVerticalScrollEnabled(structureId) {\n return this.onVerticalFormation(structureId)\n .pipe(hermesMap((v) => v.isEnabled()), hermesDistinctUntilChanged());\n }\n onRowHeight(structureId) {\n return this.onVerticalFormation(structureId)\n .pipe(hermesMap((v) => v.getRowHeight()), hermesDistinctUntilChanged());\n }\n onContainerHeight(structureId) {\n return this.onVerticalFormation(structureId)\n .pipe(hermesMap((v) => v.getViewPortHeight()), hermesDistinctUntilChanged());\n }\n onTopMargin(structureId) {\n return this.onVerticalFormation(structureId)\n .pipe(hermesMap((v) => v.getTopMargin()), hermesDistinctUntilChanged());\n }\n onVerticalFormation(structureId) {\n return this.verticalFormation$\n .toObservable()\n .pipe(hermesFilter((idToVerticalFormation) => {\n const key = structureId.getId();\n return idToVerticalFormation.has(key);\n }), hermesMap((idToVerticalFormation) => idToVerticalFormation.get(structureId.getId())));\n }\n next(structureId, verticalFormation) {\n this.verticalFormation.set(structureId.toString(), verticalFormation);\n this.verticalFormation$.next(this.verticalFormation);\n }\n}\n\nclass VerticalFormationDomainWarehouse extends VerticalFormationWarehouse {\n verticalFormationRepository;\n positionRepository;\n constructor(verticalFormationRepository, positionRepository) {\n super();\n this.verticalFormationRepository = verticalFormationRepository;\n this.positionRepository = positionRepository;\n }\n static services = [\n VerticalFormationRepository,\n VerticalFormationScrollBarPositionArchive\n ];\n onEnabled(structureId) {\n return this.verticalFormationRepository.onVerticalScrollEnabled(structureId);\n }\n onRowHeight(structureId) {\n return this.verticalFormationRepository.onRowHeight(structureId);\n }\n onContainerHeight(structureId) {\n return this.verticalFormationRepository.onContainerHeight(structureId);\n }\n onTopMargin(structureId) {\n return this.verticalFormationRepository.onTopMargin(structureId);\n }\n onScrollBarPosition(structureId) {\n return this.positionRepository.on(structureId);\n }\n}\n\nclass VerticalFormationPublisher {\n constructor() {\n }\n}\n\nclass VerticalFormationDomainPublisher extends VerticalFormationPublisher {\n verticalFormationDispatcher;\n constructor(verticalFormationDispatcher) {\n super();\n this.verticalFormationDispatcher = verticalFormationDispatcher;\n }\n static services = [VerticalFormationDispatcher];\n enableVirtualScroll(structureId) {\n this.verticalFormationDispatcher.setVirtualScrollEnabled(true, structureId);\n }\n disableVirtualScroll(structureId) {\n this.verticalFormationDispatcher.setVirtualScrollEnabled(false, structureId);\n }\n scrollToTop(structureId) {\n this.verticalFormationDispatcher.scrollTo(0, structureId);\n }\n scrollToBottom(structureId) {\n this.verticalFormationDispatcher.scrollTo(Number.MAX_SAFE_INTEGER, structureId);\n }\n scrollToIndex(index, structureId) {\n this.verticalFormationDispatcher.scrollTo(index, structureId);\n }\n setScrollPosition(position, structureId) {\n this.verticalFormationDispatcher.setScrollPosition(position, structureId);\n }\n}\n\nclass VerticalFormationApiModule {\n registerProviders(container) {\n container.provide(VerticalFormationConverter);\n container.provide(VerticalFormationRepository);\n container.provide(VerticalFormationWarehouse, VerticalFormationDomainWarehouse);\n container.provide(VerticalFormationPublisher, VerticalFormationDomainPublisher);\n container.provide(VerticalFormationScrollBarPositionArchive);\n }\n}\nfunction initializeVerticalFormation() {\n new DomainInitializer(new VerticalFormationApiModule(), new VerticalFormationDomainModule()).init();\n}\n\ninitializeVerticalFormation();\nfunction provideVerticalFormationCommandInvoker() {\n return CoreContainer.resolve(VerticalFormationPublisher);\n}\nfunction provideVerticalFormationWarehouse() {\n return CoreContainer.resolve(VerticalFormationWarehouse);\n}\nclass VerticalFormationFeatureModule extends FeatureModule {\n static forComponent() {\n return [];\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: VerticalFormationFeatureModule, deps: null, target: i0.ɵɵFactoryTarget.NgModule });\n static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"17.0.2\", ngImport: i0, type: VerticalFormationFeatureModule, imports: [CommonModule] });\n static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: VerticalFormationFeatureModule, providers: [\n { provide: VerticalFormationPublisher, useFactory: provideVerticalFormationCommandInvoker },\n { provide: VerticalFormationWarehouse, useFactory: provideVerticalFormationWarehouse }\n ], imports: [CommonModule] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: VerticalFormationFeatureModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [\n CommonModule\n ],\n declarations: [],\n exports: [],\n providers: [\n { provide: VerticalFormationPublisher, useFactory: provideVerticalFormationCommandInvoker },\n { provide: VerticalFormationWarehouse, useFactory: provideVerticalFormationWarehouse }\n ]\n }]\n }] });\n\nclass SchemaAggregateRepository extends AggregateRepository {\n}\n\nclass InMemorySchemaStore extends InMemoryStore {\n}\n\nclass InMemorySchemaAggregateStore extends InMemoryAggregateStore {\n constructor(inMemorySchemaStore) {\n super(inMemorySchemaStore);\n }\n static services = [InMemorySchemaStore];\n}\n\nclass InMemorySchemaAggregateRepository extends SchemaAggregateRepository {\n inMemorySchemaAggregateStore;\n constructor(inMemorySchemaAggregateStore) {\n super();\n this.inMemorySchemaAggregateStore = inMemorySchemaAggregateStore;\n }\n static services = [InMemorySchemaAggregateStore];\n findById(schemaId) {\n return this.inMemorySchemaAggregateStore.findById(schemaId);\n }\n save(schemaAggregate) {\n this.inMemorySchemaAggregateStore.save(schemaAggregate);\n }\n}\n\nclass SchemaCommand extends Command {\n}\n\nclass SetSchemaThemeCommand extends SchemaCommand {\n theme;\n constructor(schemaId, theme) {\n super(schemaId, 'SetSchemaThemeCommand');\n this.theme = theme;\n }\n getTheme() {\n return this.theme;\n }\n}\n\nclass SetSchemaThemeCommandHandler {\n forCommand() {\n return SetSchemaThemeCommand;\n }\n handle(schemaAggregate, command) {\n const theme = command.getTheme();\n schemaAggregate.changeTheme(theme);\n }\n}\n\nclass SetRowColoringCommand extends SchemaCommand {\n coloring;\n constructor(schemaId, coloring) {\n super(schemaId, 'SetRowColoringCommand');\n this.coloring = coloring;\n }\n getColoring() {\n return this.coloring;\n }\n}\n\nclass SetRowColoringCommandHandler {\n forCommand() {\n return SetRowColoringCommand;\n }\n handle(schemaAggregate, command) {\n const coloring = command.getColoring();\n schemaAggregate.setRowColoring(coloring);\n }\n}\n\nclass SetSchemaHorizontalGridCommand extends SchemaCommand {\n enabled;\n constructor(schemaId, enabled) {\n super(schemaId, 'SetSchemaHorizontalGridCommand');\n this.enabled = enabled;\n }\n isEnabled() {\n return this.enabled;\n }\n}\n\nclass SetSchemaHorizontalGridCommandHandler {\n domainEventPublisher = CoreContainer.resolve(DomainEventPublisher);\n forCommand() {\n return SetSchemaHorizontalGridCommand;\n }\n handle(schemaAggregate, command) {\n const enabled = command.isEnabled();\n schemaAggregate.setHorizontalGrid(enabled);\n }\n publish(schemaAggregate, command) {\n this.domainEventPublisher.publishFromAggregate(schemaAggregate);\n }\n}\n\nclass SetSchemaVerticalGridCommand extends SchemaCommand {\n enabled;\n constructor(schemaId, enabled) {\n super(schemaId, 'SetSchemaVerticalGridCommand');\n this.enabled = enabled;\n }\n isEnabled() {\n return this.enabled;\n }\n}\n\nclass SetSchemaVerticalGridCommandHandler {\n domainEventPublisher = CoreContainer.resolve(DomainEventPublisher);\n forCommand() {\n return SetSchemaVerticalGridCommand;\n }\n handle(schemaAggregate, command) {\n const enabled = command.isEnabled();\n schemaAggregate.setVerticalGrid(enabled);\n }\n publish(schemaAggregate, command) {\n this.domainEventPublisher.publishFromAggregate(schemaAggregate);\n }\n}\n\nclass SchemaCssClassesRepository extends AggregateArchive {\n constructor() {\n super();\n }\n}\n\nclass RowColoringSetEvent extends SchemaDomainEvent {\n rowColoring;\n constructor(schemaId, rowColoring) {\n super(schemaId, rowColoring, 'RowColoringSetEvent');\n this.rowColoring = rowColoring;\n }\n getRowColoring() {\n return this.rowColoring;\n }\n}\n\nclass SchemaHorizontalGridSetEvent extends SchemaDomainEvent {\n horizontalGrid;\n constructor(schemaId, horizontalGrid) {\n super(schemaId, horizontalGrid, 'SchemaHorizontalGridSetEvent');\n this.horizontalGrid = horizontalGrid;\n }\n getHorizontalGrid() {\n return this.horizontalGrid;\n }\n}\n\nclass SchemaVerticalGridSetEvent extends SchemaDomainEvent {\n verticalGrid;\n constructor(schemaId, verticalGrid) {\n super(schemaId, verticalGrid, 'SchemaVerticalGridSetEvent');\n this.verticalGrid = verticalGrid;\n }\n getVerticalGrid() {\n return this.verticalGrid;\n }\n}\n\nclass SchemaCssClass {\n verticalGrid;\n horizontalGrid;\n theme;\n rowColoring;\n constructor(verticalGrid, horizontalGrid, theme, rowColoring) {\n this.verticalGrid = verticalGrid;\n this.horizontalGrid = horizontalGrid;\n this.theme = theme;\n this.rowColoring = rowColoring;\n }\n getRowColoring() {\n return this.rowColoring;\n }\n}\n\nclass SchemaCssClassesEventHandler {\n schemaCssClassesRepository;\n rowColoring;\n horizontalGrid;\n verticalGrid;\n schemaTheme;\n constructor(schemaCssClassesRepository) {\n this.schemaCssClassesRepository = schemaCssClassesRepository;\n }\n static services = [SchemaCssClassesRepository];\n forEvents() {\n return [\n SchemaThemeSetEvent,\n RowColoringSetEvent,\n SchemaHorizontalGridSetEvent,\n SchemaVerticalGridSetEvent\n ];\n }\n handle(event) {\n if (event.ofMessageType('RowColoringSetEvent')) {\n this.rowColoring = event.getRowColoring();\n }\n if (event.ofMessageType('SchemaHorizontalGridSetEvent')) {\n this.horizontalGrid = event.getHorizontalGrid();\n }\n if (event.ofMessageType('SchemaVerticalGridSetEvent')) {\n this.verticalGrid = event.getVerticalGrid();\n }\n if (event.ofMessageType('SchemaThemeSetEvent')) {\n this.schemaTheme = event.getTheme();\n }\n this.publish(event.getAggregateId());\n }\n publish(aggregateId) {\n if (this.rowColoring !== undefined && this.horizontalGrid !== undefined && this.verticalGrid !== undefined && this.schemaTheme !== undefined) {\n this.schemaCssClassesRepository.next(aggregateId, new SchemaCssClass(this.verticalGrid, this.horizontalGrid, this.schemaTheme, this.rowColoring));\n }\n }\n}\n\nconst schemaKey = 'SchemaAggregate';\n\nclass SchemaVerticalGridRepository extends EventDrivenRepository {\n constructor() {\n super();\n }\n forEvent() {\n return SchemaVerticalGridSetEvent;\n }\n}\n\nclass SchemaThemeRepository extends EventDrivenRepository {\n constructor() {\n super();\n }\n forEvent() {\n return SchemaThemeSetEvent;\n }\n}\n\nclass SchemaRowColoringRepository extends EventDrivenRepository {\n constructor() {\n super();\n }\n forEvent() {\n return RowColoringSetEvent;\n }\n}\n\nclass SchemaHorizontalGridRepository extends EventDrivenRepository {\n constructor() {\n super();\n }\n forEvent() {\n return SchemaHorizontalGridSetEvent;\n }\n}\n\nclass CreateSchemaCommand extends CreateAggregateCommand {\n constructor(schemaId) {\n super(schemaId, 'CreateSchemaCommand');\n }\n}\n\nclass CreateSchemaCommandHandler {\n forCommand() {\n return CreateSchemaCommand;\n }\n}\n\nclass SchemaAggregateEvent extends AggregateEvent {\n}\n\nclass SchemaThemeSetAggregateEvent extends SchemaAggregateEvent {\n theme;\n constructor(schemaId, theme) {\n super(schemaId, 'SchemaThemeSetAggregateEvent');\n this.theme = theme;\n }\n toDomainEvent() {\n return new SchemaThemeSetEvent(this.getAggregateId(), this.theme);\n }\n}\n\nclass RowColoringSetAggregateEvent extends SchemaAggregateEvent {\n rowColoring;\n constructor(schemaId, rowColoring) {\n super(schemaId, 'RowColoringSetEvent');\n this.rowColoring = rowColoring;\n }\n toDomainEvent() {\n return new RowColoringSetEvent(this.getAggregateId(), this.rowColoring);\n }\n}\n\nclass SchemaVerticalGridSetAggregateEvent extends SchemaAggregateEvent {\n verticalGrid;\n constructor(schemaId, verticalGrid) {\n super(schemaId, 'SchemaHorizontalGridSetEvent');\n this.verticalGrid = verticalGrid;\n }\n toDomainEvent() {\n return new SchemaVerticalGridSetEvent(this.getAggregateId(), this.verticalGrid);\n }\n}\n\nclass SchemaHorizontalGridSetAggregateEvent extends SchemaAggregateEvent {\n horizontalGrid;\n constructor(schemaId, horizontalGrid) {\n super(schemaId, 'SchemaHorizontalGridSetEvent');\n this.horizontalGrid = horizontalGrid;\n }\n toDomainEvent() {\n return new SchemaHorizontalGridSetEvent(this.getAggregateId(), this.horizontalGrid);\n }\n}\n\nclass SchemaCreatedEvent extends SchemaDomainEvent {\n constructor(aggregateId) {\n super(aggregateId, null, 'SchemaCreatedEvent');\n }\n}\n\nclass SchemaCreatedAggregateEvent extends SchemaAggregateEvent {\n constructor(aggregateId) {\n super(aggregateId, 'SchemaCreatedAggregateEvent');\n }\n toDomainEvent() {\n return new SchemaCreatedEvent(this.getAggregateId());\n }\n}\n\nclass SchemaAggregate extends AggregateRoot {\n static DEFAULT_THEME = SchemaTheme.GENERIC;\n static DEFAULT_ROW_COLORING = SchemaRowColoring.ODD;\n static DEFAULT_VERTICAL_GRID = true;\n static DEFAULT_HORIZONTAL_GRID = true;\n horizontalGrid;\n verticalGrid;\n theme;\n rowColoring;\n constructor(id) {\n super(id, 'SchemaAggregate');\n this.setTheme(SchemaAggregate.DEFAULT_THEME);\n this.setHorizontalGrid(SchemaAggregate.DEFAULT_HORIZONTAL_GRID);\n this.setVerticalGrid(SchemaAggregate.DEFAULT_VERTICAL_GRID);\n this.setRowColoring(SchemaAggregate.DEFAULT_ROW_COLORING);\n }\n createEvent() {\n return SchemaCreatedAggregateEvent;\n }\n changeTheme(theme) {\n this.setTheme(theme);\n if (theme === SchemaTheme.MATERIAL) {\n this.setRowColoring(SchemaRowColoring.NONE);\n this.setVerticalGrid(false);\n }\n if (theme === SchemaTheme.LIGHT) {\n this.setRowColoring(SchemaRowColoring.NONE);\n this.setVerticalGrid(false);\n }\n if (theme === SchemaTheme.DARK) {\n this.setRowColoring(SchemaRowColoring.NONE);\n this.setVerticalGrid(false);\n }\n if (theme === SchemaTheme.GENERIC) {\n this.setRowColoring(SchemaRowColoring.ODD);\n }\n }\n setRowColoring(coloring) {\n this.rowColoring = coloring;\n this.addEvent(new RowColoringSetAggregateEvent(this.getId(), this.rowColoring));\n }\n setVerticalGrid(enabled) {\n this.verticalGrid = enabled;\n this.addEvent(new SchemaVerticalGridSetAggregateEvent(this.getId(), this.verticalGrid));\n }\n setHorizontalGrid(enabled) {\n this.horizontalGrid = enabled;\n this.addEvent(new SchemaHorizontalGridSetAggregateEvent(this.getId(), this.horizontalGrid));\n }\n setTheme(theme) {\n this.theme = theme;\n this.addEvent(new SchemaThemeSetAggregateEvent(this.getId(), this.theme));\n }\n}\n\nclass SchemaAggregateFactory extends AggregateFactory {\n constructor() {\n super();\n }\n create(aggregateId) {\n return new SchemaAggregate(aggregateId);\n }\n}\n\nclass SchemaRowClassArchive extends AggregateArchive {\n constructor() {\n super();\n }\n}\n\nclass SchemaRowStyleArchive extends AggregateArchive {\n constructor() {\n super();\n }\n}\n\nclass SchemaDomainModule {\n defineAggregate() {\n return {\n aggregateKey: schemaKey,\n createCommandHandler: CreateSchemaCommandHandler,\n factory: SchemaAggregateFactory,\n repository: InMemorySchemaAggregateRepository\n };\n }\n registerKey() {\n return schemaKey;\n }\n registerProviders(container) {\n container.provide(SchemaRowClassArchive);\n container.provide(SchemaRowStyleArchive);\n }\n registerCommandHandlers() {\n return [\n SetSchemaThemeCommandHandler,\n SetRowColoringCommandHandler,\n SetSchemaHorizontalGridCommandHandler,\n SetSchemaVerticalGridCommandHandler\n ];\n }\n registerDomainEventHandler() {\n return [\n SchemaThemeRepository,\n SchemaHorizontalGridRepository,\n SchemaRowColoringRepository,\n SchemaVerticalGridRepository\n ];\n }\n registerMultiDomainEventHandler() {\n return [\n SchemaCssClassesEventHandler\n ];\n }\n}\n\nclass SchemaDispatcher {\n commandDispatcher = CoreContainer.resolve(CommandDispatcher);\n create(schemaId) {\n this.commandDispatcher.dispatch(new CreateSchemaCommand(schemaId));\n }\n setTheme(theme, schemaId) {\n this.commandDispatcher.dispatch(new SetSchemaThemeCommand(schemaId, theme));\n }\n setRowColoring(rowColoring, schemaId) {\n this.commandDispatcher.dispatch(new SetRowColoringCommand(schemaId, rowColoring));\n }\n setVerticalGrid(verticalGrid, schemaId) {\n this.commandDispatcher.dispatch(new SetSchemaVerticalGridCommand(schemaId, verticalGrid));\n }\n setHorizontalGrid(horizontalGrid, schemaId) {\n this.commandDispatcher.dispatch(new SetSchemaHorizontalGridCommand(schemaId, horizontalGrid));\n }\n}\n\nclass SchemaDomainPublisher extends SchemaPublisher {\n schemaDispatcher;\n structurePublisher;\n fabricModalThemeService;\n schemaRowClassArchive;\n schemaRowStyleArchive;\n constructor(schemaDispatcher, structurePublisher, fabricModalThemeService, schemaRowClassArchive, schemaRowStyleArchive) {\n super();\n this.schemaDispatcher = schemaDispatcher;\n this.structurePublisher = structurePublisher;\n this.fabricModalThemeService = fabricModalThemeService;\n this.schemaRowClassArchive = schemaRowClassArchive;\n this.schemaRowStyleArchive = schemaRowStyleArchive;\n }\n static services = [\n SchemaDispatcher,\n StructurePublisher,\n FabricModalThemeService,\n SchemaRowClassArchive,\n SchemaRowStyleArchive\n ];\n create(schemaId) {\n this.schemaDispatcher.create(schemaId.toAggregateId());\n }\n setTheme(theme, schemaId, structureId) {\n this.schemaDispatcher.setTheme(theme, schemaId.toAggregateId());\n this.fabricModalThemeService.changeTheme(this.toFabricTheme(theme)); // TODO github #2162\n this.structurePublisher.setRowHeightBasedOnTheme(theme, structureId);\n }\n setRowColoring(rowColoring, schemaId) {\n const schemaRowColoring = this.toSchemaRowColoring(rowColoring);\n this.schemaDispatcher.setRowColoring(schemaRowColoring, schemaId.toAggregateId());\n }\n setVerticalGrid(verticalGrid, schemaId) {\n this.schemaDispatcher.setVerticalGrid(verticalGrid, schemaId.toAggregateId());\n }\n setHorizontalGrid(horizontalGrid, schemaId) {\n this.schemaDispatcher.setHorizontalGrid(horizontalGrid, schemaId.toAggregateId());\n }\n setRowClass(schemaRowClass, schemaId) {\n return this.schemaRowClassArchive.next(schemaId.toAggregateId(), schemaRowClass);\n }\n setRowStyle(rowStyle, schemaId) {\n return this.schemaRowStyleArchive.next(schemaId.toAggregateId(), rowStyle);\n }\n // move to function\n toSchemaRowColoring(coloring) {\n switch (coloring) {\n case RowColoring.NONE:\n return SchemaRowColoring.NONE;\n case RowColoring.ODD:\n return SchemaRowColoring.ODD;\n case RowColoring.EVEN:\n return SchemaRowColoring.EVEN;\n default:\n return SchemaRowColoring.NONE;\n }\n }\n // move to function\n toFabricTheme(schemaTheme) {\n switch (schemaTheme) {\n case SchemaTheme.DARK: {\n return Theme.DARK;\n }\n case SchemaTheme.FABRIC: {\n return Theme.FABRIC;\n }\n case SchemaTheme.GENERIC: {\n return Theme.GENERIC;\n }\n case SchemaTheme.LIGHT: {\n return Theme.LIGHT;\n }\n case SchemaTheme.MATERIAL: {\n return Theme.MATERIAL;\n }\n default:\n return Theme.FABRIC;\n }\n }\n}\n\nclass SchemaDomainWarehouse extends SchemaWarehouse {\n schemaCssClassesRepository;\n schemaThemeRepository;\n schemaHorizontalGridRepository;\n schemaRowColoringRepository;\n schemaVerticalGridRepository;\n schemaRowClassArchive;\n schemaRowStyleArchive;\n constructor(schemaCssClassesRepository, schemaThemeRepository, schemaHorizontalGridRepository, schemaRowColoringRepository, schemaVerticalGridRepository, schemaRowClassArchive, schemaRowStyleArchive) {\n super();\n this.schemaCssClassesRepository = schemaCssClassesRepository;\n this.schemaThemeRepository = schemaThemeRepository;\n this.schemaHorizontalGridRepository = schemaHorizontalGridRepository;\n this.schemaRowColoringRepository = schemaRowColoringRepository;\n this.schemaVerticalGridRepository = schemaVerticalGridRepository;\n this.schemaRowClassArchive = schemaRowClassArchive;\n this.schemaRowStyleArchive = schemaRowStyleArchive;\n }\n static services = [\n SchemaCssClassesRepository,\n SchemaThemeRepository,\n SchemaHorizontalGridRepository,\n SchemaRowColoringRepository,\n SchemaVerticalGridRepository,\n SchemaRowClassArchive,\n SchemaRowStyleArchive\n ];\n onTheme(schemaId) {\n return this.schemaThemeRepository\n .on(schemaId.toAggregateId());\n }\n onceTheme(schemaId) {\n return singleFromObservable(this.onTheme(schemaId));\n }\n findTheme(schemaId) {\n return this.schemaThemeRepository.find(schemaId.toAggregateId());\n }\n onHorizontalGrid(schemaId) {\n return this.schemaHorizontalGridRepository\n .on(schemaId.toAggregateId());\n }\n onVerticalGrid(schemaId) {\n return this.schemaVerticalGridRepository\n .on(schemaId.toAggregateId());\n }\n onRowColoring(schemaId) {\n return this.schemaRowColoringRepository\n .on(schemaId.toAggregateId());\n }\n onCssClasses(schemaId) {\n return this.schemaCssClassesRepository\n .on(schemaId.toAggregateId());\n }\n onRowClass(schemaId) {\n return this.schemaRowClassArchive.on(schemaId.toAggregateId());\n }\n onRowStyle(schemaId) {\n return this.schemaRowStyleArchive.on(schemaId.toAggregateId());\n }\n}\n\nclass SchemaDomainEventRepository extends SchemaEventRepository {\n constructor() {\n super();\n }\n onThemeChanged(schemaId) {\n return this.onEvent(schemaId, SchemaThemeSetEvent)\n .pipe(hermesMap((event) => {\n return event.getTheme();\n }));\n }\n onHorizontalGridChanged(schemaId) {\n return this.onEvent(schemaId, SchemaHorizontalGridSetEvent)\n .pipe(hermesMap((event) => event.getHorizontalGrid()));\n }\n onVerticalGridChanged(schemaId) {\n return this.onEvent(schemaId, SchemaVerticalGridSetEvent)\n .pipe(hermesMap((event) => event.getVerticalGrid()));\n }\n onRowColoring(schemaId) {\n return this.onEvent(schemaId, RowColoringSetEvent)\n .pipe(hermesMap((event) => event.getRowColoring()));\n }\n}\n\nclass SchemaApiModule {\n registerProviders(container) {\n container.provide(SchemaDispatcher);\n container.provide(SchemaAggregateRepository, InMemorySchemaAggregateRepository);\n container.provide(InMemorySchemaAggregateStore);\n container.provide(InMemorySchemaStore);\n container.provide(SchemaPublisher, SchemaDomainPublisher);\n container.provide(SchemaWarehouse, SchemaDomainWarehouse);\n container.provide(SchemaEventRepository, SchemaDomainEventRepository);\n container.provide(SchemaCssClassesRepository);\n }\n}\nconst initSchema = () => {\n new DomainInitializer(new SchemaApiModule(), new SchemaDomainModule()).init();\n};\n\nfunction useFactorySchemaCommandInvoker() {\n return CoreContainer.resolve(SchemaPublisher);\n}\nfunction useFactorySchemaWarehouse() {\n return CoreContainer.resolve(SchemaWarehouse);\n}\nfunction useFactorySchemaEventRepository() {\n return CoreContainer.resolve(SchemaEventRepository);\n}\ninitSchema();\nclass SchemaFeatureModule extends FeatureModule {\n constructor() {\n super();\n }\n static forComponent() {\n return [];\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: SchemaFeatureModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\n static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"17.0.2\", ngImport: i0, type: SchemaFeatureModule, imports: [CommonModule] });\n static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: SchemaFeatureModule, providers: [\n { provide: SchemaPublisher, useFactory: useFactorySchemaCommandInvoker },\n { provide: SchemaWarehouse, useFactory: useFactorySchemaWarehouse },\n { provide: SchemaEventRepository, useFactory: useFactorySchemaEventRepository }\n ], imports: [CommonModule] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: SchemaFeatureModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [\n CommonModule\n ],\n providers: [\n { provide: SchemaPublisher, useFactory: useFactorySchemaCommandInvoker },\n { provide: SchemaWarehouse, useFactory: useFactorySchemaWarehouse },\n { provide: SchemaEventRepository, useFactory: useFactorySchemaEventRepository }\n ],\n declarations: [],\n exports: []\n }]\n }], ctorParameters: () => [] });\n\nclass SanitizeModule {\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: SanitizeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\n static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"17.0.2\", ngImport: i0, type: SanitizeModule, declarations: [SafePipe], imports: [CommonModule], exports: [SafePipe] });\n static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: SanitizeModule, imports: [CommonModule] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: SanitizeModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [\n CommonModule\n ],\n declarations: [\n SafePipe\n ],\n exports: [\n SafePipe\n ]\n }]\n }] });\n\nclass ColumnQueryComponent {\n cellTemplate;\n header;\n headerTemplate;\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: ColumnQueryComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"17.0.2\", type: ColumnQueryComponent, selector: \"gui-column[header]\", inputs: { header: \"header\" }, queries: [{ propertyName: \"cellTemplate\", first: true, predicate: TemplateRef, descendants: true, read: TemplateRef }], ngImport: i0, template: '', isInline: true });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: ColumnQueryComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'gui-column[header]',\n template: ''\n }]\n }], propDecorators: { cellTemplate: [{\n type: ContentChild,\n args: [TemplateRef, { read: TemplateRef, static: false }]\n }], header: [{\n type: Input\n }] } });\n\nconst components = [\n ViewTemplatesComponent,\n EditTemplatesComponent,\n StringEditTemplateComponent,\n NumberEditTemplateComponent,\n BooleanEditTemplateComponent,\n DateEditTemplateComponent,\n ColumnQueryComponent,\n FunctionViewComponent,\n BarViewComponent,\n PercentageViewComponent,\n TextViewComponent,\n HtmlViewComponent\n];\nconst exportDeclarations$2 = [\n ViewTemplatesComponent,\n EditTemplatesComponent,\n ColumnQueryComponent,\n FabricChipModule,\n FabricCheckboxModule,\n FabricButtonModule,\n FabricInputModule,\n FunctionViewComponent,\n BarViewComponent,\n PercentageViewComponent,\n HtmlViewComponent\n];\ninitializeComposition();\nfunction provideCompositionCommandPublisher() {\n return CoreContainer.resolve(CompositionPublisher);\n}\nfunction provideCompositionWarehouse() {\n return CoreContainer.resolve(CompositionWarehouse);\n}\nfunction provideCompositionEventRepository() {\n return CoreContainer.resolve(CompositionEventRepository);\n}\nfunction provideColumnAutoConfigurator() {\n return CoreContainer.resolve(ColumnAutoConfigurator);\n}\nfunction provideColumnFieldFactory() {\n return CoreContainer.resolve(ColumnFieldFactory);\n}\nclass CompositionFeatureModule extends FeatureModule {\n constructor(cfr) {\n super();\n CoreContainer.provideValue(ComponentFactoryResolver, cfr);\n }\n static forComponent() {\n return [];\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: CompositionFeatureModule, deps: [{ token: i0.ComponentFactoryResolver }], target: i0.ɵɵFactoryTarget.NgModule });\n static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"17.0.2\", ngImport: i0, type: CompositionFeatureModule, declarations: [ViewTemplatesComponent,\n EditTemplatesComponent,\n StringEditTemplateComponent,\n NumberEditTemplateComponent,\n BooleanEditTemplateComponent,\n DateEditTemplateComponent,\n ColumnQueryComponent,\n FunctionViewComponent,\n BarViewComponent,\n PercentageViewComponent,\n TextViewComponent,\n HtmlViewComponent], imports: [CommonModule,\n ReactiveFormsModule,\n SanitizeModule,\n FabricChipModule,\n FabricCheckboxModule,\n FabricButtonModule,\n FabricInputModule,\n FabricDatePickerModule], exports: [ViewTemplatesComponent,\n EditTemplatesComponent,\n ColumnQueryComponent,\n FabricChipModule,\n FabricCheckboxModule,\n FabricButtonModule,\n FabricInputModule,\n FunctionViewComponent,\n BarViewComponent,\n PercentageViewComponent,\n HtmlViewComponent] });\n static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: CompositionFeatureModule, providers: [\n { provide: CompositionPublisher, useFactory: provideCompositionCommandPublisher },\n { provide: CompositionWarehouse, useFactory: provideCompositionWarehouse },\n { provide: CompositionEventRepository, useFactory: provideCompositionEventRepository },\n CompositionTemplateWarehouse,\n ViewTemplateRepository,\n ViewTemplateFactory,\n EditTemplateRepository,\n EditTemplateFactory,\n { provide: ColumnAutoConfigurator, useFactory: provideColumnAutoConfigurator },\n { provide: ColumnFieldFactory, useFactory: provideColumnFieldFactory }\n ], imports: [CommonModule,\n ReactiveFormsModule,\n SanitizeModule,\n FabricChipModule,\n FabricCheckboxModule,\n FabricButtonModule,\n FabricInputModule,\n FabricDatePickerModule, FabricChipModule,\n FabricCheckboxModule,\n FabricButtonModule,\n FabricInputModule] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: CompositionFeatureModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [\n CommonModule,\n ReactiveFormsModule,\n SanitizeModule,\n FabricChipModule,\n FabricCheckboxModule,\n FabricButtonModule,\n FabricInputModule,\n FabricDatePickerModule\n ],\n declarations: [\n components\n ],\n exports: [\n exportDeclarations$2\n ],\n providers: [\n { provide: CompositionPublisher, useFactory: provideCompositionCommandPublisher },\n { provide: CompositionWarehouse, useFactory: provideCompositionWarehouse },\n { provide: CompositionEventRepository, useFactory: provideCompositionEventRepository },\n CompositionTemplateWarehouse,\n ViewTemplateRepository,\n ViewTemplateFactory,\n EditTemplateRepository,\n EditTemplateFactory,\n { provide: ColumnAutoConfigurator, useFactory: provideColumnAutoConfigurator },\n { provide: ColumnFieldFactory, useFactory: provideColumnFieldFactory }\n ]\n }]\n }], ctorParameters: () => [{ type: i0.ComponentFactoryResolver }] });\n\nconst structureGates = [\n StructureColumnHeaderGate,\n StructurePagingGate,\n StructureSearchingGate,\n // StructureSourceGate,\n StructureSelectionGate,\n StructureL10nGate,\n StructurePanelGate,\n StructureRowDetailGate,\n StructureColumnMenuGate,\n StructureSummariesGate,\n StructureInfoPanelGate,\n StructureRowClassGate,\n StructureRowStyleGate,\n StructureRowColoringGate,\n ThemeGridGate,\n StructureSortingGate,\n SourceLoadingGate,\n StructureFilterGate,\n StructureQuickFiltersGate,\n VerticalFormationGate\n];\n\nclass SetSourceLoadingEvent extends StructureDomainEvent {\n constructor(aggregateId) {\n super(aggregateId, null, 'SetSourceLoadingEvent');\n }\n}\n\nclass SourceSetLoadingCommand extends StructureCommand {\n enabled;\n constructor(structureId, enabled) {\n super(structureId, 'SourceSetLoadingCommand');\n this.enabled = enabled;\n }\n isEnabled() {\n return this.enabled;\n }\n}\n\nclass SourceSetLoadingCommandHandler {\n domainEventPublisher = CoreContainer.resolve(DomainEventPublisher);\n forCommand() {\n return SourceSetLoadingCommand;\n }\n handle(aggregate, command) {\n const enabled = command.isEnabled(), source = aggregate.getSource();\n source.setLoading(enabled);\n }\n publish(aggregate, command) {\n this.domainEventPublisher.publish(new SetSourceLoadingEvent(command.getAggregateId()));\n }\n}\n\nclass SetOriginCommand extends StructureCommand {\n items;\n constructor(structureId, items = []) {\n super(structureId, 'SetOriginCommand');\n this.items = items;\n }\n getItems() {\n return this.items;\n }\n}\n\nclass SetOriginCommandHandler {\n structureSourceDomainEventPublisher;\n constructor(structureSourceDomainEventPublisher) {\n this.structureSourceDomainEventPublisher = structureSourceDomainEventPublisher;\n }\n static services = [SourceDomainEventPublisher];\n forCommand() {\n return SetOriginCommand;\n }\n handle(structure, command) {\n const items = command.getItems();\n structure.setOrigin(items);\n }\n publish(aggregate, command) {\n const aggregateEvents = aggregate.getEvents();\n this.structureSourceDomainEventPublisher.publish(aggregateEvents);\n }\n}\n\nclass StructureEditSourceItemCommand extends StructureCommand {\n params;\n constructor(structureId, params) {\n super(structureId, 'StructureEditSourceItemCommand');\n this.params = params;\n }\n getParams() {\n return this.params;\n }\n}\n\nclass StructureEditSourceItemCommandHandler {\n structureSourceDomainEventPublisher;\n constructor(structureSourceDomainEventPublisher) {\n this.structureSourceDomainEventPublisher = structureSourceDomainEventPublisher;\n }\n static services = [SourceDomainEventPublisher];\n forCommand() {\n return StructureEditSourceItemCommand;\n }\n handle(structure, command) {\n const params = command.getParams();\n structure.editItem(params);\n }\n publish(aggregate, command) {\n const aggregateEvents = aggregate.getEvents();\n this.structureSourceDomainEventPublisher.publish(aggregateEvents);\n }\n}\n\nclass StructureSourceItemEditedAggregateEvent extends StructureAggregateEvent {\n beforeItem;\n afterItem;\n constructor(aggregateId, beforeItem, afterItem) {\n super(aggregateId, 'StructureSourceItemEditedAggregateEvent');\n this.beforeItem = beforeItem;\n this.afterItem = afterItem;\n }\n toDomainEvent() {\n return new StructureSourceItemEditedEvent(this.getAggregateId(), this.beforeItem, this.afterItem);\n }\n getBeforeItem() {\n return this.beforeItem;\n }\n getAfterItem() {\n return this.afterItem;\n }\n}\n\nclass StructureOriginChangedAggregateEvent extends StructureAggregateEvent {\n origin;\n constructor(aggregateId, origin) {\n super(aggregateId, 'StructureOriginChangedAggregateEvent');\n this.origin = origin;\n }\n toDomainEvent() {\n return new OriginSetEvent(this.getAggregateId(), this.origin);\n }\n getOrigin() {\n return this.origin;\n }\n}\n\nclass ItemEntityId extends EntityId {\n constructor(id) {\n super(id);\n }\n toString() {\n return this.getId();\n }\n}\n\nclass SourceManager {\n events = [];\n loading = false;\n fetched = false;\n origin;\n entities = [];\n // Entities after filtering, searching\n preparedEntities = [];\n slicedEntities = [];\n formationManager;\n constructor(formationManager) {\n this.formationManager = formationManager;\n this.events.push(...this.formationManager.init(true, RowSelectionMode.SINGLE, RowSelectionType.ROW));\n }\n isLoading() {\n return this.loading;\n }\n setLoading(enabled) {\n this.loading = enabled;\n }\n setEntities(ent) {\n this.entities = ent;\n this.recalculatePositions();\n }\n getEntities() {\n return this.entities;\n }\n setPreparedEntities() {\n this.preparedEntities = Array.from(this.entities);\n }\n getPreparedEntities() {\n return this.preparedEntities;\n }\n setSlicedEntities(ent) {\n this.slicedEntities = ent;\n }\n getSlicedEntities() {\n return this.slicedEntities;\n }\n setOrigin(items = [], structureId) {\n this.origin = this.convertItems(items);\n return this.createOriginChangedEvent(structureId);\n }\n setConvertedOrigin(items = [], structureId) {\n this.origin = Array.from(items);\n return this.createOriginChangedEvent(structureId);\n }\n getOrigin() {\n return this.origin;\n }\n editOriginItem(itemId, value, field, structureId) {\n const item = this.findOriginItem(itemId), itemBeforeChange = item.clone();\n if (item) {\n item.sourceItem[field.getAccessor()] = value;\n item.bumpVersion();\n }\n return [\n new StructureSourceItemEditedAggregateEvent(structureId, itemBeforeChange, item.clone()),\n this.createOriginChangedEvent(structureId)\n ];\n }\n deleteAllSelected(structureId) {\n let events = [];\n const itemEntityIds = this.formationManager.getSelectedItemIds();\n itemEntityIds.forEach((itemEntityId) => {\n events = events.concat(this.deleteOriginItemByItemId(itemEntityId, structureId));\n });\n return events;\n }\n deleteOriginItem(payload, structureId) {\n if (payload instanceof ItemEntityId) {\n return this.deleteOriginItemByItemId(payload, structureId);\n }\n else if (Array.isArray(payload)) {\n let events = [];\n payload.forEach((item) => {\n events = events.concat(this.deleteOneOriginItem(item, structureId));\n });\n return events;\n }\n else if (Number.isInteger(payload)) {\n return this.deleteOriginItemByIndex(payload, structureId);\n }\n else {\n return [];\n }\n }\n addOriginItem(item, structureId) {\n this.origin.push(item);\n return [this.createOriginChangedEvent(structureId)];\n }\n setCustomConfig(config) {\n return this.formationManager.setCustomConfig(config);\n }\n selectCustom(id) {\n this.formationManager.selectCustom(id, this.getEntities());\n }\n selectAll() {\n this.formationManager.selectAll(this.getEntities().map(entity => entity.getId()));\n }\n unselectAll() {\n this.formationManager.unselectAll();\n }\n selectByIndex(indexes) {\n this.formationManager.selectByIndex(indexes, this.getEntities().map(e => e.getId()));\n }\n selectByIds(ids) {\n this.formationManager.selectByIds(ids, this.getEntities());\n }\n reSelect() {\n this.formationManager.reSelectByIds(this.getEntities());\n }\n setSelectedRows(selectedRows) {\n this.formationManager.selectRows(selectedRows, this.getEntities().map(e => e.getId()));\n }\n toggleRow(itemId, type) {\n this.formationManager.toggleRow(itemId, type, this.getEntities().map(e => e.getId()));\n }\n getFormation() {\n return this.formationManager;\n }\n convertItems(items) {\n return items.map((item, index) => {\n return new ItemEntity(new ItemEntityId(RandomStringGenerator.generate()), item, index);\n });\n }\n createOriginChangedEvent(structureId) {\n return new StructureOriginChangedAggregateEvent(structureId, this.origin);\n }\n findOriginItem(itemId) {\n return this.origin.find((item) => item.getId().toString() === itemId);\n }\n findOriginItemIndex(itemId) {\n return this.origin.findIndex((item) => item.getId().toString() === itemId);\n }\n recalculatePositions() {\n this.entities.forEach((ent, index) => {\n ent.setPosition(index);\n });\n }\n deleteOneOriginItem(item, structureId) {\n if (item instanceof ItemEntityId) {\n return this.deleteOriginItemByItemId(item, structureId);\n }\n else if (Number.isInteger(item)) {\n return this.deleteOriginItemByIndex(item, structureId);\n }\n else {\n return [];\n }\n }\n deleteOriginItemByItemId(itemId, structureId) {\n const index = this.findOriginItemIndex(itemId.toString());\n return this.deleteOriginItemByIndex(index, structureId);\n }\n deleteOriginItemByIndex(index, structureId) {\n if (index > -1) {\n const removedItems = this.origin.splice(index, 1);\n if (removedItems.length > 0) {\n for (const element of removedItems) {\n this.formationManager.unselectRow(element.getId());\n }\n this.formationManager.calculateAllSelected(removedItems.map((f) => f.getId()));\n this.formationManager.calculateAllUnselected();\n }\n return [\n this.createOriginChangedEvent(structureId)\n ];\n }\n return [];\n }\n deleteManyOriginItemByIndex(indexes, structureId) {\n let events = [];\n indexes.forEach((index) => {\n events = events.concat(this.deleteOriginItemByIndex(index, structureId));\n });\n return events;\n }\n deleteManyOriginItemByItemID(itemIds, structureId) {\n let events = [];\n itemIds.forEach((itemId) => {\n events = events.concat(this.deleteOriginItemByItemId(itemId, structureId));\n });\n return events;\n }\n}\n\nclass FormationSelection {\n mode;\n type;\n constructor(mode, type) {\n this.mode = mode;\n this.type = type;\n }\n setMode(mode) {\n this.mode = mode;\n }\n getMode() {\n if (this.type === RowSelectionType.RADIO) {\n return RowSelectionMode.SINGLE;\n }\n else {\n return this.mode;\n }\n }\n isSingle() {\n return this.getMode() === RowSelectionMode.SINGLE;\n }\n setType(type) {\n this.type = type;\n }\n getType() {\n return this.type;\n }\n}\n\nclass SelectionModeSetEvent extends StructureDomainEvent {\n mode;\n constructor(aggregateId, mode) {\n super(aggregateId, mode, 'SelectionModeSetEvent');\n this.mode = mode;\n }\n getMode() {\n return this.mode;\n }\n}\n\nclass SelectionModeSetAggregateEvent extends StructureAggregateEvent {\n mode;\n constructor(structureId, mode) {\n super(structureId, 'SelectionModeSetAggregateEvent');\n this.mode = mode;\n }\n toDomainEvent() {\n return new SelectionModeSetEvent(this.getAggregateId(), this.mode);\n }\n}\n\nclass SelectionTypeSetEvent extends StructureDomainEvent {\n selectionType;\n constructor(aggregateId, selectionType) {\n super(aggregateId, selectionType, 'SelectionTypeSetEvent');\n this.selectionType = selectionType;\n }\n getType() {\n return this.selectionType;\n }\n}\n\nclass SelectionTypeSetAggregateEvent extends StructureAggregateEvent {\n selectionType;\n constructor(structureId, selectionType) {\n super(structureId, 'SelectionTypeSetAggregateEvent');\n this.selectionType = selectionType;\n }\n toDomainEvent() {\n return new SelectionTypeSetEvent(this.getAggregateId(), this.selectionType);\n }\n}\n\nclass SelectionEnabledSetEvent extends StructureDomainEvent {\n enabled;\n constructor(aggregateId, enabled) {\n super(aggregateId, enabled, 'SelectionEnabledSetEvent');\n this.enabled = enabled;\n }\n isEnabled() {\n return this.enabled;\n }\n}\n\nclass SelectionEnabledSetAggregateEvent extends StructureAggregateEvent {\n enabled;\n constructor(structureId, enabled) {\n super(structureId, 'SelectionEnabledSetAggregateEvent');\n this.enabled = enabled;\n }\n toDomainEvent() {\n return new SelectionEnabledSetEvent(this.getAggregateId(), this.enabled);\n }\n}\n\nclass FormationCustomSelectId extends HermesId {\n constructor(uid) {\n super(uid);\n }\n toString() {\n return super.getId();\n }\n}\n\nclass FormationCustomSelectionFunctionModel {\n key;\n text;\n customSelectId;\n builtIn;\n method;\n constructor(key, text, customSelectId, builtIn, method) {\n this.key = key;\n this.text = text;\n this.customSelectId = customSelectId;\n this.builtIn = builtIn;\n this.method = method;\n }\n getKey() {\n return this.key;\n }\n getText() {\n return this.text;\n }\n getCustomSelectId() {\n return this.customSelectId;\n }\n isBuiltIn() {\n return this.builtIn;\n }\n customSelect(items) {\n return this.method(items);\n }\n}\nclass FormationCustomSelection {\n enabled;\n selections;\n constructor(enabled, selections) {\n this.enabled = enabled;\n this.selections = selections;\n }\n isEnabled() {\n return this.enabled;\n }\n getSelections() {\n return this.selections;\n }\n}\n\nclass FormationCustomManager {\n enabled;\n selections;\n static id = 0;\n constructor(enabled, selections) {\n this.enabled = enabled;\n this.selections = selections;\n }\n init() {\n return [];\n }\n isEnabled() {\n return this.enabled;\n }\n setEnabled(enabled) {\n this.enabled = enabled;\n }\n getSelections() {\n return this.selections;\n }\n setSelections(selections) {\n this.selections = selections.map((sel) => {\n if (typeof sel === 'string') {\n return new FormationCustomSelectionFunctionModel('', sel, new FormationCustomSelectId(sel), true);\n }\n else {\n FormationCustomManager.id++;\n return new FormationCustomSelectionFunctionModel(sel.key, sel.text, new FormationCustomSelectId(`${FormationCustomManager.id}`), false, sel.select);\n }\n });\n }\n findSelection(id) {\n return Optional.of(this.selections.find((s) => s.getCustomSelectId().equals(id)));\n }\n}\n\nclass FormationCustomSelectionChangeEvent extends StructureDomainEvent {\n customSelection;\n constructor(aggregateId, customSelection) {\n super(aggregateId, customSelection, 'FormationCustomSelectionChangeEvent');\n this.customSelection = customSelection;\n }\n getCustomSelection() {\n return this.customSelection;\n }\n}\n\nclass FormationCustomSelectionChangeAggregateEvent extends StructureAggregateEvent {\n customSelection;\n constructor(structureId, customSelection) {\n super(structureId, 'FormationCustomSelectionChangeAggregateEvent');\n this.customSelection = customSelection;\n }\n toDomainEvent() {\n return new FormationCustomSelectionChangeEvent(this.getAggregateId(), this.customSelection);\n }\n}\n\nclass FormationManager {\n id;\n selectedItemIds;\n enabled;\n selection = new FormationSelection(RowSelectionMode.SINGLE, RowSelectionType.ROW);\n allSelected;\n allUnselected;\n customSelection;\n matcher = (item) => item.id;\n constructor(id, selectedItemIds) {\n this.id = id;\n this.selectedItemIds = selectedItemIds;\n }\n init(enabled, mode, type) {\n this.enabled = enabled;\n this.selection.setMode(mode);\n this.selection.setType(type);\n this.customSelection = new FormationCustomManager(false, [\n new FormationCustomSelectionFunctionModel('select_all', 'SELECT_ALL', new FormationCustomSelectId('SELECT_ALL'), true),\n new FormationCustomSelectionFunctionModel('UNSELECT_ALL', 'UNSELECT_ALL', new FormationCustomSelectId('UNSELECT_ALL'), true),\n new FormationCustomSelectionFunctionModel('', 'INVERT', new FormationCustomSelectId('INVERT'), true)\n ]);\n return [\n new SelectionEnabledSetAggregateEvent(this.getId(), this.enabled),\n new SelectionModeSetAggregateEvent(this.getId(), this.selection.getMode()),\n new SelectionTypeSetAggregateEvent(this.getId(), this.selection.getType()),\n new FormationCustomSelectionChangeAggregateEvent(this.getId(), new FormationCustomSelection(this.customSelection.isEnabled(), this.customSelection.getSelections()))\n ];\n }\n setSelection(enabled) {\n this.enabled = enabled;\n return [\n new SelectionEnabledSetAggregateEvent(this.getId(), this.enabled)\n ];\n }\n setMode(mode) {\n this.selection.setMode(mode);\n return [\n new SelectionModeSetAggregateEvent(this.getId(), this.selection.getMode()),\n new SelectionTypeSetAggregateEvent(this.getId(), this.selection.getType())\n ];\n }\n setType(type) {\n this.selection.setType(type);\n return [\n new SelectionModeSetAggregateEvent(this.getId(), this.selection.getMode()),\n new SelectionTypeSetAggregateEvent(this.getId(), this.selection.getType())\n ];\n }\n setMatcher(matcher) {\n this.matcher = matcher;\n }\n setCustomConfig(config) {\n if (config?.enabled) {\n this.customSelection.setEnabled(config.enabled);\n }\n if (config?.selections) {\n this.customSelection.setSelections(config.selections);\n }\n return [\n new FormationCustomSelectionChangeAggregateEvent(this.getId(), new FormationCustomSelection(this.customSelection.isEnabled(), this.customSelection.getSelections()))\n ];\n }\n isAllSelected() {\n return this.allSelected;\n }\n isAllUnselected() {\n return this.allUnselected;\n }\n getSelectedItemIds() {\n return Array.from(this.selectedItemIds).map(id => new ItemEntityId(id));\n }\n selectCustom(id, itemEntities) {\n this.customSelection\n .findSelection(id)\n .ifPresent((s) => {\n if (s.isBuiltIn()) {\n switch (s.getCustomSelectId().toString()) {\n case 'SELECT_ALL':\n this.selectAll(itemEntities.map(i => i.getId()));\n break;\n case 'UNSELECT_ALL':\n this.unselectAll();\n break;\n case 'INVERT':\n this.invertSelected(itemEntities.map(i => i.getId()));\n break;\n default:\n break;\n }\n }\n else {\n const selectedItems = s.customSelect(itemEntities);\n this.selectedItemIds = new Set(selectedItems.map(item => item.getId().toString()));\n }\n });\n }\n selectAll(allEntityIds) {\n this.selectedItemIds = new Set(allEntityIds.map(id => id.toString()));\n this.allSelected = true;\n this.allUnselected = false;\n }\n unselectAll() {\n this.selectedItemIds.clear();\n this.allSelected = false;\n this.allUnselected = true;\n }\n invertSelected(allEntityIds) {\n const selectedItemIds = this.getSelectedItemIds();\n const a = allEntityIds.filter((id) => {\n return !selectedItemIds.some((selId) => selId.equals(id));\n });\n this.selectedItemIds = new Set(a.map(id => id.toString()));\n this.calculateAllSelected(allEntityIds);\n this.calculateAllUnselected();\n }\n reSelectByIds(itemEntities) {\n this.selectByIds(this.getSelectedItemIds().map(i => i.getId()), itemEntities);\n this.calculateAllSelected(itemEntities.map(i => i.getId()));\n this.calculateAllUnselected();\n }\n selectByIds(ids, itemEntities) {\n if (!this.enabled) {\n return;\n }\n const itemIds = [];\n for (let i = 0; i < ids.length; i++) {\n const items = itemEntities\n .filter((item) => {\n return this.matcher(item.getSourceItem()) === ids[i];\n })\n .map((item) => item.getId().toString());\n itemIds.push(...items);\n }\n let type = RowSelectToggleType.ADD;\n if (this.selection.isSingle()) {\n type = RowSelectToggleType.NONE;\n }\n itemIds.forEach((id) => {\n this.toggleRowByType(type, id);\n });\n this.calculateAllSelected(itemEntities.map(i => i.getId()));\n this.calculateAllUnselected();\n }\n selectByIndex(indexes, allEntityIds) {\n if (!this.enabled) {\n return;\n }\n const itemIds = indexes.map((i) => {\n if (!allEntityIds[i]) {\n console.error('Item not found');\n }\n return allEntityIds[i].toString();\n });\n let type = RowSelectToggleType.ADD;\n if (this.selection.isSingle()) {\n type = RowSelectToggleType.NONE;\n }\n itemIds.forEach((id) => {\n this.toggleRowByType(type, id);\n });\n this.calculateAllSelected(allEntityIds);\n this.calculateAllUnselected();\n }\n selectRows(itemIds, itemEntityIds) {\n }\n toggleRow(itemId, type, itemEntityIds) {\n if (!this.enabled) {\n return;\n }\n if (type === RowSelectToggleType.ADD && this.selection.isSingle()) {\n type = RowSelectToggleType.NONE;\n }\n this.toggleRowByType(type, itemId);\n this.calculateAllSelected(itemEntityIds);\n this.calculateAllUnselected();\n }\n calculateAllSelected(itemEntityIds) {\n if (itemEntityIds.length !== this.selectedItemIds.size) {\n this.allSelected = false;\n }\n else {\n const rows = Array.from(this.selectedItemIds);\n let equal = true;\n rows.sort();\n itemEntityIds.sort();\n for (let i = 0; i < rows.length; i += 1) {\n if (rows[i] !== itemEntityIds[i].toString()) {\n equal = false;\n break;\n }\n }\n this.allSelected = equal;\n }\n }\n calculateAllUnselected() {\n this.allUnselected = this.selectedItemIds.size === 0;\n }\n unselectRow(itemEntityId) {\n if (this.selectedItemIds.has(itemEntityId.toString())) {\n this.selectedItemIds.delete(itemEntityId.toString());\n }\n }\n getId() {\n return this.id;\n }\n getType() {\n return this.selection.getType();\n }\n toggleRowByType(type, itemId) {\n switch (type) {\n case RowSelectToggleType.NONE:\n if (this.selectedItemIds.has(itemId)) {\n this.selectedItemIds.delete(itemId);\n }\n else {\n this.selectedItemIds.clear();\n this.selectedItemIds.add(itemId);\n }\n break;\n case RowSelectToggleType.ADD:\n if (this.selectedItemIds.has(itemId)) {\n this.selectedItemIds.delete(itemId);\n }\n else {\n this.selectedItemIds.add(itemId);\n }\n break;\n case RowSelectToggleType.RANGE:\n break;\n default:\n break;\n }\n }\n}\n\nclass FormationManagerFactory {\n create(id) {\n return new FormationManager(id, new Set());\n }\n}\n\nclass SourceManagerFactory {\n formationManagerFactory;\n constructor(formationManagerFactory) {\n this.formationManagerFactory = formationManagerFactory;\n }\n static services = [FormationManagerFactory];\n createDefault(id) {\n const fm = this.formationManagerFactory.create(id);\n return new SourceManager(fm);\n }\n create(id) {\n const fm = this.formationManagerFactory.create(id);\n return new SourceManager(fm);\n }\n}\n\nvar DeleteCommandPayloadType;\n(function (DeleteCommandPayloadType) {\n DeleteCommandPayloadType[DeleteCommandPayloadType[\"INDEX\"] = 0] = \"INDEX\";\n DeleteCommandPayloadType[DeleteCommandPayloadType[\"ITEM_ID\"] = 1] = \"ITEM_ID\";\n DeleteCommandPayloadType[DeleteCommandPayloadType[\"MANY_INDEX\"] = 2] = \"MANY_INDEX\";\n DeleteCommandPayloadType[DeleteCommandPayloadType[\"MANY_ITEM_ID\"] = 3] = \"MANY_ITEM_ID\";\n})(DeleteCommandPayloadType || (DeleteCommandPayloadType = {}));\nclass DeleteOriginItemCommand extends StructureCommand {\n payload;\n type;\n constructor(structureId, payload, type) {\n super(structureId, 'DeleteOriginItemCommand');\n this.payload = payload;\n this.type = type;\n }\n static byIndex(structureId, index) {\n return new DeleteOriginItemCommand(structureId, index, DeleteCommandPayloadType.INDEX);\n }\n static byManyIndex(structureId, indexes) {\n return new DeleteOriginItemCommand(structureId, indexes, DeleteCommandPayloadType.MANY_INDEX);\n }\n static byItemId(structureId, itemId) {\n return new DeleteOriginItemCommand(structureId, itemId, DeleteCommandPayloadType.ITEM_ID);\n }\n static byManyItemId(structureId, itemIds) {\n return new DeleteOriginItemCommand(structureId, itemIds, DeleteCommandPayloadType.MANY_ITEM_ID);\n }\n getType() {\n return this.type;\n }\n getPayload() {\n return this.payload;\n }\n}\n\nclass DeleteOriginItemCommandHandler {\n forCommand() {\n return DeleteOriginItemCommand;\n }\n handle(aggregate, command) {\n aggregate.deleteItem(command.getPayload());\n }\n}\n\nclass StructureSourceOriginArchive extends AggregateArchive {\n static default = [];\n constructor() {\n super(StructureSourceOriginArchive.default);\n }\n}\n\nclass StructureOriginChangedEventHandler {\n structureSourceOriginRepository;\n constructor(structureSourceOriginRepository) {\n this.structureSourceOriginRepository = structureSourceOriginRepository;\n }\n static services = [StructureSourceOriginArchive];\n forEvent() {\n return OriginSetEvent;\n }\n handle(event) {\n if (event.ofMessageType('OriginSetEvent')) {\n const origin = event.getOrigin();\n this.structureSourceOriginRepository.next(event.getAggregateId(), origin);\n }\n }\n}\n\nclass StructurePreparedItemsArchive extends AggregateArchive {\n static default = [];\n constructor() {\n super(StructurePreparedItemsArchive.default);\n }\n /**\n * @deprecated\n */\n getPreparedItems(structureId) {\n return this.find(structureId).getValueOrNullOrThrowError();\n }\n}\n\nclass StructurePreparedItemsEventHandler {\n structurePreparedItemsRepository;\n constructor(structurePreparedItemsRepository) {\n this.structurePreparedItemsRepository = structurePreparedItemsRepository;\n }\n static services = [StructurePreparedItemsArchive];\n forEvent() {\n return StructurePreparedEntitiesSetEvent;\n }\n handle(event) {\n if (event.ofMessageType('StructurePreparedEntitiesSetEvent')) {\n const preparedItems = event.getPreparedItems();\n this.structurePreparedItemsRepository.next(event.getAggregateId(), preparedItems);\n }\n }\n}\n\nclass SourceDomainModule {\n defineAggregate() {\n return null;\n }\n registerKey() {\n return structureKey;\n }\n registerProviders(container) {\n container.provide(StructureSourceOriginArchive);\n container.provide(SourceManagerFactory);\n container.provide(SourceDomainEventPublisher);\n }\n registerCommandHandlers() {\n return [\n SourceSetLoadingCommandHandler,\n SetOriginCommandHandler,\n StructureEditSourceItemCommandHandler,\n DeleteOriginItemCommandHandler\n ];\n }\n registerDomainEventHandler() {\n return [\n StructureOriginChangedEventHandler,\n StructurePreparedItemsEventHandler\n ];\n }\n registerMultiDomainEventHandler() {\n return [];\n }\n}\n\nclass SourceDomainWarehouse extends SourceWarehouse {\n structureRepository;\n structurePreparedItemsRepository;\n structureSourceOriginRepository;\n constructor(structureRepository, structurePreparedItemsRepository, structureSourceOriginRepository) {\n super();\n this.structureRepository = structureRepository;\n this.structurePreparedItemsRepository = structurePreparedItemsRepository;\n this.structureSourceOriginRepository = structureSourceOriginRepository;\n }\n static services = [StructureReadModelRepository, StructurePreparedItemsArchive, StructureSourceOriginArchive];\n findItems(structureId) {\n return this.structureRepository.getStructure(structureId).getEntities();\n }\n onItems(structureId) {\n return this.structureRepository\n .on(structureId)\n .pipe(hermesMap((structure) => structure.getEntities()), hermesDistinctUntilChanged((ents1, ents2) => {\n if (ents1.length !== ents2.length) {\n return false;\n }\n let flag = true;\n ents1.forEach((ent, index) => {\n if (!ent.equals(ents2[index])) {\n flag = false;\n return;\n }\n });\n return flag;\n }));\n }\n onItemsSize(structureId) {\n return this.onItems(structureId)\n .pipe(hermesMap((entities) => {\n return entities.length;\n }));\n }\n onceItems(structureId) {\n return singleFromObservable(this.onItems(structureId));\n }\n onOriginSize(structureId) {\n return this.structureSourceOriginRepository\n .on(structureId)\n .pipe(hermesMap(origin => origin.length));\n }\n onLoading(structureId) {\n return this.structureRepository\n .on(structureId)\n .pipe(hermesMap((structure) => structure.getSource().isLoading()));\n }\n onPreparedItems(structureId) {\n return this.structurePreparedItemsRepository.on(structureId);\n }\n findPreparedItems(structureId) {\n return this.structurePreparedItemsRepository.getPreparedItems(structureId);\n }\n}\n\nclass SourceDomainPublisher extends SourcePublisher {\n commandDispatcher;\n fieldWarehouse;\n sourceReadModelService;\n constructor(commandDispatcher, fieldWarehouse, sourceReadModelService) {\n super();\n this.commandDispatcher = commandDispatcher;\n this.fieldWarehouse = fieldWarehouse;\n this.sourceReadModelService = sourceReadModelService;\n }\n static services = [CommandDispatcher, FieldWarehouse, SourceWarehouse];\n setOrigin(items, structureId) {\n this.commandDispatcher.dispatch(new SetOriginCommand(structureId, items));\n }\n setLoading(enabled, structureId) {\n this.commandDispatcher.dispatch(new SourceSetLoadingCommand(structureId, enabled));\n }\n editItem(params, structureId) {\n this.commandDispatcher.dispatch(new StructureEditSourceItemCommand(structureId, params));\n }\n editItemByIndex(itemIndex, fieldIndex, value, structureId) {\n const itemId$ = toRxJsObservable(this.sourceReadModelService\n .onceItems(structureId)\n .pipe(hermesMap((entities) => {\n return entities[itemIndex].getId();\n })));\n const fieldId$ = toRxJsObservable(this.fieldWarehouse.onFields(structureId));\n fromRxJsObservable(zip(itemId$, fieldId$))\n .pipe(hermesTake(1))\n .subscribe((array) => {\n const itemId = array[0], fields = array[1];\n this.editItem(new StructureEditSourceItemParams(itemId, fields[fieldIndex], value), structureId);\n });\n }\n deleteRow(row, structureId) {\n if (row.getItemId() !== undefined) {\n this.deleteItemById(row.getItemId(), structureId);\n }\n else if (row.getIndex() !== undefined) {\n this.deleteItemByIndex(row.getIndex(), structureId);\n }\n }\n deleteRows(rows, structureId) {\n if (rows.length > 0) {\n if (rows[0].getItemId() !== undefined) {\n this.deleteManyItemsByItemIds(rows.map(r => r.getItemId()), structureId);\n }\n else if (rows[0].getIndex() !== undefined) {\n this.deleteManyItemsByIndex(rows.map(r => r.getIndex()), structureId);\n }\n }\n }\n deleteItemByIndex(index, structureId) {\n this.commandDispatcher.dispatch(DeleteOriginItemCommand.byIndex(structureId, index));\n }\n deleteItemById(itemId, structureId) {\n this.commandDispatcher.dispatch(DeleteOriginItemCommand.byItemId(structureId, itemId));\n }\n deleteManyItemsByIndex(indexes, structureId) {\n this.commandDispatcher.dispatch(DeleteOriginItemCommand.byManyIndex(structureId, indexes));\n }\n deleteManyItemsByItemIds(itemIds, structureId) {\n this.commandDispatcher.dispatch(DeleteOriginItemCommand.byManyItemId(structureId, itemIds));\n }\n}\n\nclass SourceApiModule {\n registerProviders(container) {\n container.provide(SourcePublisher, SourceDomainPublisher);\n container.provide(SourceWarehouse, SourceDomainWarehouse);\n container.provide(SourceEventService);\n container.provide(StructurePreparedItemsArchive);\n container.provide(SourceConverter);\n }\n}\nfunction initializeSource() {\n new DomainInitializer(new SourceApiModule(), new SourceDomainModule()).init();\n}\n\ninitializeSource();\nfunction provideSourceCommandInvoker() {\n return CoreContainer.resolve(SourcePublisher);\n}\nfunction provideSourceWarehouse() {\n return CoreContainer.resolve(SourceWarehouse);\n}\nfunction provideSourceEventRepository() {\n return CoreContainer.resolve(SourceEventService);\n}\nclass SourceFeatureModule extends FeatureModule {\n static forComponent() {\n return [];\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: SourceFeatureModule, deps: null, target: i0.ɵɵFactoryTarget.NgModule });\n static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"17.0.2\", ngImport: i0, type: SourceFeatureModule, imports: [CommonModule] });\n static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: SourceFeatureModule, providers: [\n { provide: SourcePublisher, useFactory: provideSourceCommandInvoker },\n { provide: SourceWarehouse, useFactory: provideSourceWarehouse },\n { provide: SourceEventService, useFactory: provideSourceEventRepository }\n ], imports: [CommonModule] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: SourceFeatureModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [\n CommonModule\n ],\n declarations: [],\n exports: [],\n providers: [\n { provide: SourcePublisher, useFactory: provideSourceCommandInvoker },\n { provide: SourceWarehouse, useFactory: provideSourceWarehouse },\n { provide: SourceEventService, useFactory: provideSourceEventRepository }\n ]\n }]\n }] });\n\nCoreContainer.provide(CssClassModifier);\nfunction provideCssClassModifier() {\n return CoreContainer.resolve(CssClassModifier);\n}\nclass CssClassModule {\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: CssClassModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\n static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"17.0.2\", ngImport: i0, type: CssClassModule });\n static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: CssClassModule, providers: [\n { provide: CssClassModifier, useFactory: provideCssClassModifier }\n ] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: CssClassModule, decorators: [{\n type: NgModule,\n args: [{\n providers: [\n { provide: CssClassModifier, useFactory: provideCssClassModifier }\n ]\n }]\n }] });\n\nclass StructureSharedModule {\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureSharedModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\n static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureSharedModule, imports: [CssClassModule] });\n static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureSharedModule, imports: [CssClassModule] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: StructureSharedModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [\n CssClassModule\n ]\n }]\n }] });\n\nclass ResizeDetectorModule {\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: ResizeDetectorModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\n static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"17.0.2\", ngImport: i0, type: ResizeDetectorModule });\n static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: ResizeDetectorModule, providers: [\n ResizeDetector\n ] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: ResizeDetectorModule, decorators: [{\n type: NgModule,\n args: [{\n providers: [\n ResizeDetector\n ]\n }]\n }] });\n\nclass RowSelectedReadModel {\n itemIds;\n allSelected;\n allUnselected;\n constructor(itemIds, allSelected, allUnselected) {\n this.itemIds = itemIds;\n this.allSelected = allSelected;\n this.allUnselected = allUnselected;\n }\n getAll() {\n return this.itemIds;\n }\n isSelected(id) {\n return this.itemIds.some((itemId) => itemId === id);\n }\n isAllSelected() {\n return this.allSelected;\n }\n isAllUnselected() {\n return this.allUnselected;\n }\n isIndeterminate() {\n return !(this.isAllSelected() || this.isAllUnselected());\n }\n}\n\nclass RowSelectedArchive extends AggregateArchive {\n static default = new RowSelectedReadModel([], false, false);\n constructor() {\n super(RowSelectedArchive.default);\n }\n}\n\nclass SetEnabledSelectionCommand extends StructureCommand {\n enabled;\n constructor(structureId, enabled) {\n super(structureId, 'SetEnabledSelectionCommand');\n this.enabled = enabled;\n }\n isEnabled() {\n return this.enabled;\n }\n}\n\nclass SetEnabledSelectionCommandHandler {\n forCommand() {\n return SetEnabledSelectionCommand;\n }\n handle(aggregate, command) {\n aggregate.setSelection(command.isEnabled());\n }\n}\n\nclass ToggleSelectedRowCommand extends StructureCommand {\n selectedRow;\n type;\n constructor(structureId, selectedRow, type) {\n super(structureId, 'ToggleSelectedRowCommand');\n this.selectedRow = selectedRow;\n this.type = type;\n }\n getSelectedRow() {\n return this.selectedRow;\n }\n getType() {\n return this.type;\n }\n}\n\nclass ToggleSelectedRowCommandHandler {\n forCommand() {\n return ToggleSelectedRowCommand;\n }\n handle(aggregate, command) {\n const selectedRow = command.getSelectedRow(), type = command.getType();\n aggregate.toggleRow(selectedRow, type);\n }\n}\n\nclass SelectedRowChangedEventHandler {\n rowSelectedArchive;\n constructor(rowSelectedArchive) {\n this.rowSelectedArchive = rowSelectedArchive;\n }\n static services = [RowSelectedArchive];\n forEvent() {\n return SelectedRowChangedEvent;\n }\n handle(rowChangedEvent) {\n if (rowChangedEvent.ofMessageType('SelectedRowChangedEvent')) {\n const rowSelectedRead = new RowSelectedReadModel(rowChangedEvent.getSelectedRows(), rowChangedEvent.isAllSelected(), rowChangedEvent.isAllUnselected());\n this.rowSelectedArchive.next(rowChangedEvent.getAggregateId(), rowSelectedRead);\n }\n }\n}\n\nclass SetSelectionModeCommand extends StructureCommand {\n mode;\n constructor(structureId, mode) {\n super(structureId, 'SetSelectionModeCommand');\n this.mode = mode;\n }\n getMode() {\n return this.mode;\n }\n}\n\nclass SetSelectionModeCommandHandler {\n forCommand() {\n return SetSelectionModeCommand;\n }\n handle(aggregate, command) {\n aggregate.setSelectionMode(command.getMode());\n }\n}\n\nclass SelectAllRowsCommand extends StructureCommand {\n constructor(structureId) {\n super(structureId, 'SelectAllRowsCommand');\n }\n}\n\nclass SelectAllRowsCommandHandler {\n forCommand() {\n return SelectAllRowsCommand;\n }\n handle(aggregate, command) {\n aggregate.selectAll();\n }\n}\n\nclass UnselectAllRowsCommand extends StructureCommand {\n constructor(structureId) {\n super(structureId, 'UnselectAllRowsCommand');\n }\n}\n\nclass UnselectAllRowsCommandHandler {\n forCommand() {\n return UnselectAllRowsCommand;\n }\n handle(aggregate, command) {\n aggregate.unselectAll();\n }\n}\n\nclass SetSelectionTypeCommand extends StructureCommand {\n type;\n constructor(structureId, type) {\n super(structureId, 'SetSelectionTypeCommand');\n this.type = type;\n }\n getType() {\n return this.type;\n }\n}\n\nclass SetSelectionTypeCommandHandler {\n forCommand() {\n return SetSelectionTypeCommand;\n }\n handle(aggregate, command) {\n aggregate.setSelectionType(command.getType());\n }\n}\n\nclass FormationTypeRepository extends EventDrivenRepository {\n constructor() {\n super();\n }\n forEvent() {\n return SelectionTypeSetEvent;\n }\n}\n\nclass FormationModeRepository extends EventDrivenRepository {\n constructor() {\n super();\n }\n forEvent() {\n return SelectionModeSetEvent;\n }\n}\n\nclass FormationEnabledRepository extends EventDrivenRepository {\n constructor() {\n super();\n }\n forEvent() {\n return SelectionEnabledSetEvent;\n }\n}\n\nclass SetSelectedRowCommand extends StructureCommand {\n selectedRows;\n constructor(structureId, selectedRows) {\n super(structureId, 'SetSelectedRowCommand');\n this.selectedRows = selectedRows;\n }\n getSelectedRows() {\n return this.selectedRows;\n }\n}\n\nclass SetSelectedRowCommandHandler {\n forCommand() {\n return SetSelectedRowCommand;\n }\n handle(aggregate, command) {\n const selectedRows = command.getSelectedRows();\n aggregate.setSelectedRows(selectedRows);\n }\n}\n\nclass SelectRowByIndexCommand extends StructureCommand {\n indexes;\n constructor(structureId, indexes) {\n super(structureId, 'SelectRowByIndexCommand');\n this.indexes = indexes;\n }\n getIndexes() {\n return this.indexes;\n }\n}\n\nclass SelectRowByIndexCommandHandler {\n forCommand() {\n return SelectRowByIndexCommand;\n }\n handle(aggregate, command) {\n const selectedRowIndexes = command.getIndexes();\n aggregate.selectByIndex(selectedRowIndexes);\n }\n}\n\nclass SelectRowByIdCommand extends StructureCommand {\n ids;\n constructor(structureId, ids) {\n super(structureId, 'SelectRowByIdCommand');\n this.ids = ids;\n }\n getIds() {\n return this.ids;\n }\n}\n\nclass SelectRowByIdCommandHandler {\n forCommand() {\n return SelectRowByIdCommand;\n }\n handle(aggregate, command) {\n const selectedRowIds = command.getIds();\n aggregate.selectByIds(selectedRowIds);\n }\n}\n\nclass FormationSetMatcherCommand extends StructureCommand {\n matcher;\n constructor(structureId, matcher) {\n super(structureId, 'FormationSetMatcherCommand');\n this.matcher = matcher;\n }\n getMatcher() {\n return this.matcher;\n }\n}\n\nclass FormationSetMatcherCommandHandler {\n forCommand() {\n return FormationSetMatcherCommand;\n }\n handle(aggregate, command) {\n const matcher = command.getMatcher();\n aggregate.setFormationMatcher(matcher);\n }\n}\n\nclass FormationCustomRepository extends EventDrivenRepository {\n constructor() {\n super();\n }\n forEvent() {\n return FormationCustomSelectionChangeEvent;\n }\n}\n\nclass FormationCustomSelectCommand extends StructureCommand {\n customSelectId;\n constructor(structureId, customSelectId) {\n super(structureId, 'FormationCustomSelectCommand');\n this.customSelectId = customSelectId;\n }\n getCustomSelectId() {\n return this.customSelectId;\n }\n}\n\nclass FormationCustomSelectCommandHandler {\n forCommand() {\n return FormationCustomSelectCommand;\n }\n handle(aggregate, command) {\n const customSelectId = command.getCustomSelectId();\n aggregate.selectCustom(customSelectId);\n }\n}\n\nclass FormationSetCustomSelectConfigCommand extends StructureCommand {\n config;\n constructor(structureId, config) {\n super(structureId, 'FormationSetCustomSelectConfigCommand');\n this.config = config;\n }\n getConfig() {\n return this.config;\n }\n}\n\nclass FormationSetCustomSelectConfigCommandHandler {\n forCommand() {\n return FormationSetCustomSelectConfigCommand;\n }\n handle(aggregate, command) {\n const config = command.getConfig();\n aggregate.setSelectionCustomConfig(config);\n }\n}\n\nclass FormationDomainModule {\n defineAggregate() {\n return null;\n }\n registerKey() {\n return structureKey;\n }\n registerProviders(container) {\n container.provide(FormationManagerFactory);\n }\n registerCommandHandlers() {\n return [\n SetEnabledSelectionCommandHandler,\n SetSelectionModeCommandHandler,\n SetSelectionTypeCommandHandler,\n SelectAllRowsCommandHandler,\n UnselectAllRowsCommandHandler,\n ToggleSelectedRowCommandHandler,\n SetSelectedRowCommandHandler,\n SelectRowByIndexCommandHandler,\n SelectRowByIdCommandHandler,\n FormationSetMatcherCommandHandler,\n FormationCustomSelectCommandHandler,\n FormationSetCustomSelectConfigCommandHandler\n ];\n }\n registerDomainEventHandler() {\n return [\n SelectedRowChangedEventHandler,\n FormationTypeRepository,\n FormationModeRepository,\n FormationEnabledRepository,\n FormationCustomRepository\n ];\n }\n registerMultiDomainEventHandler() {\n return [];\n }\n}\n\nclass FormationDomainWarehouse extends FormationWarehouse {\n rowSelectedRepository;\n formationModeRepository;\n formationTypeRepository;\n formationEnabledRepository;\n formationCustomRepository;\n sourceWarehouse;\n constructor(rowSelectedRepository, formationModeRepository, formationTypeRepository, formationEnabledRepository, formationCustomRepository, sourceWarehouse) {\n super();\n this.rowSelectedRepository = rowSelectedRepository;\n this.formationModeRepository = formationModeRepository;\n this.formationTypeRepository = formationTypeRepository;\n this.formationEnabledRepository = formationEnabledRepository;\n this.formationCustomRepository = formationCustomRepository;\n this.sourceWarehouse = sourceWarehouse;\n }\n static services = [\n RowSelectedArchive,\n FormationModeRepository,\n FormationTypeRepository,\n FormationEnabledRepository,\n FormationCustomRepository,\n SourceWarehouse\n ];\n findSelectedRows(structureId) {\n const items = this.sourceWarehouse.findPreparedItems(structureId), selectedItemIds = this.findSelectedItemIds(structureId).getValueOrNullOrThrowError();\n const selectedItems = [], length = items.length;\n for (let i = 0; i < length; i += 1) {\n const item = items[i];\n if (selectedItemIds.some((itemId) => itemId === item.getId().toString())) {\n selectedItems.push(new SelectedRow(item.getSourceItem(), i, item.getId()));\n }\n }\n return Optional.of(selectedItems);\n }\n onRowSelectedReadModel(structureId) {\n return this.rowSelectedRepository\n .on(structureId);\n }\n findSelectedItemIds(structureId) {\n return this.rowSelectedRepository\n .find(structureId)\n .map((r) => {\n return r.getAll();\n });\n }\n onSelectedRows(structureId) {\n return this.rowSelectedRepository\n .on(structureId)\n .pipe(hermesMap((rm) => {\n return rm.getAll();\n }));\n }\n onMode(structureId) {\n return this.formationModeRepository.on(structureId);\n }\n onType(structureId) {\n return this.formationTypeRepository.on(structureId);\n }\n onSelectionEnabled(structureId) {\n return this.formationEnabledRepository.on(structureId);\n }\n onCustomSelections(structureId) {\n return this.formationCustomRepository.on(structureId);\n }\n}\n\nclass FormationDomainPublisher extends FormationPublisher {\n commandDispatcher;\n constructor(commandDispatcher) {\n super();\n this.commandDispatcher = commandDispatcher;\n }\n static services = [CommandDispatcher];\n setSelection(enabled, structureId) {\n this.commandDispatcher.dispatch(new SetEnabledSelectionCommand(structureId, enabled));\n }\n selectRows(selectedRow, structureId) {\n this.commandDispatcher.dispatch(new SetSelectedRowCommand(structureId, selectedRow));\n }\n selectByIndex(indexes, structureId) {\n this.commandDispatcher.dispatch(new SelectRowByIndexCommand(structureId, indexes));\n }\n selectByIds(ids, structureId) {\n this.commandDispatcher.dispatch(new SelectRowByIdCommand(structureId, ids));\n }\n toggleSelectedRow(selectedRow, type, structureId) {\n this.commandDispatcher.dispatch(new ToggleSelectedRowCommand(structureId, selectedRow, type));\n }\n changeMode(mode, structureId) {\n this.commandDispatcher.dispatch(new SetSelectionModeCommand(structureId, mode));\n }\n changeType(type, structureId) {\n this.commandDispatcher.dispatch(new SetSelectionTypeCommand(structureId, type));\n }\n setMatcher(matcher, structureId) {\n this.commandDispatcher.dispatch(new FormationSetMatcherCommand(structureId, matcher));\n }\n selectAll(structureId) {\n this.commandDispatcher.dispatch(new SelectAllRowsCommand(structureId));\n }\n unselectAll(structureId) {\n this.commandDispatcher.dispatch(new UnselectAllRowsCommand(structureId));\n }\n selectCustom(id, structureId) {\n this.commandDispatcher.dispatch(new FormationCustomSelectCommand(structureId, id));\n }\n setCustomSelection(config, structureId) {\n this.commandDispatcher.dispatch(new FormationSetCustomSelectConfigCommand(structureId, config));\n }\n}\n\nclass FormationApiModule {\n registerProviders(container) {\n container.provide(RowSelectedArchive);\n container.provide(FormationEventRepository);\n container.provide(FormationPublisher, FormationDomainPublisher);\n container.provide(FormationWarehouse, FormationDomainWarehouse);\n }\n}\nfunction initializeFormation() {\n new DomainInitializer(new FormationApiModule(), new FormationDomainModule())\n .init();\n}\n\nclass SelectCustomComponent extends SmartComponent {\n changeDetectorRef;\n structureSelectCustomService;\n structureId;\n formationCommandDispatcher;\n formationWarehouse;\n // @ViewChild('selectCustomContainer', { static: true })\n headerDialogContainer;\n options = ['a', 'b'];\n context = useReactiveContext();\n constructor(changeDetectorRef, elementRef, structureSelectCustomService, structureId, formationCommandDispatcher, formationWarehouse) {\n super(changeDetectorRef, elementRef);\n this.changeDetectorRef = changeDetectorRef;\n this.structureSelectCustomService = structureSelectCustomService;\n this.structureId = structureId;\n this.formationCommandDispatcher = formationCommandDispatcher;\n this.formationWarehouse = formationWarehouse;\n }\n openConfigDialog() {\n this.structureSelectCustomService.open(this.headerDialogContainer);\n }\n getSelectorName() {\n return 'gui-select-custom';\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: SelectCustomComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: StructureSelectCustomService }, { token: StructureId }, { token: FormationPublisher }, { token: FormationWarehouse }], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"17.0.2\", type: SelectCustomComponent, selector: \"gui-select-custom\", providers: [\n StructureSelectCustomService\n ], usesInheritance: true, ngImport: i0, template: \"
\\n\\t
\\n
\\n\", changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: SelectCustomComponent, decorators: [{\n type: Component,\n args: [{ selector: 'gui-select-custom', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, providers: [\n StructureSelectCustomService\n ], template: \"
\\n\\t
\\n
\\n\" }]\n }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: StructureSelectCustomService }, { type: StructureId }, { type: FormationPublisher }, { type: FormationWarehouse }] });\n\ninitializeFormation();\nfunction provideFormationCommandInvoker() {\n return CoreContainer.resolve(FormationPublisher);\n}\nfunction provideFormationWarehouse() {\n return CoreContainer.resolve(FormationWarehouse);\n}\nfunction provideFormationEventRepository() {\n return CoreContainer.resolve(FormationEventRepository);\n}\nclass FormationFeatureModule extends FeatureModule {\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: FormationFeatureModule, deps: null, target: i0.ɵɵFactoryTarget.NgModule });\n static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"17.0.2\", ngImport: i0, type: FormationFeatureModule, declarations: [SelectAllComponent,\n SelectCustomComponent,\n SelectCustomModalComponent], imports: [CommonModule,\n GuiTemplateModule,\n FabricCheckboxModule,\n FabricTooltipModule], exports: [SelectAllComponent,\n SelectCustomComponent,\n SelectCustomModalComponent] });\n static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: FormationFeatureModule, providers: [\n { provide: FormationPublisher, useFactory: provideFormationCommandInvoker },\n { provide: FormationWarehouse, useFactory: provideFormationWarehouse },\n { provide: FormationEventRepository, useFactory: provideFormationEventRepository }\n ], imports: [CommonModule,\n GuiTemplateModule,\n FabricCheckboxModule,\n FabricTooltipModule] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: FormationFeatureModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [\n CommonModule,\n GuiTemplateModule,\n FabricCheckboxModule,\n FabricTooltipModule\n ],\n declarations: [\n SelectAllComponent,\n SelectCustomComponent,\n SelectCustomModalComponent\n ],\n exports: [\n SelectAllComponent,\n SelectCustomComponent,\n SelectCustomModalComponent\n ],\n providers: [\n { provide: FormationPublisher, useFactory: provideFormationCommandInvoker },\n { provide: FormationWarehouse, useFactory: provideFormationWarehouse },\n { provide: FormationEventRepository, useFactory: provideFormationEventRepository }\n ]\n }]\n }] });\n\nclass CreateStructureCommand extends StructureCommand {\n constructor(structureId) {\n super(structureId, 'CreateStructureCommand');\n }\n}\n\nclass CreateStructureCommandHandler {\n forCommand() {\n return CreateStructureCommand;\n }\n}\n\nclass StructurePreparedEntitiesSetAggregateEvent extends StructureAggregateEvent {\n preparedItems;\n constructor(aggregateId, preparedItems) {\n super(aggregateId, 'StructurePreparedEntitiesSetAggregateEvent');\n this.preparedItems = preparedItems;\n }\n toDomainEvent() {\n return new StructurePreparedEntitiesSetEvent(this.getAggregateId(), this.preparedItems);\n }\n getPreparedItems() {\n return this.preparedItems;\n }\n}\n\nclass FieldsInitedAggregateEvent extends StructureAggregateEvent {\n fieldConfigs;\n fields;\n constructor(structureId, fieldConfigs, // TODO merge\n fields) {\n super(structureId, 'FieldsInitedAggregateEvent');\n this.fieldConfigs = fieldConfigs;\n this.fields = fields;\n }\n toDomainEvent() {\n return new FieldsInitedEvent(this.getAggregateId(), this.fieldConfigs, this.fields);\n }\n getFieldConfigs() {\n return this.fieldConfigs;\n }\n getFields() {\n return this.fields;\n }\n}\n\nclass StructureCreatedAggregateEvent extends StructureAggregateEvent {\n constructor(aggregateId) {\n super(aggregateId, 'StructureCreatedAggregateEvent');\n }\n toDomainEvent() {\n return new StructureCreatedEvent(this.getAggregateId());\n }\n}\n\nclass FilterTypesInitedAggregateEvent extends StructureAggregateEvent {\n filterTypes;\n constructor(structureId, filterTypes) {\n super(structureId, 'FilterTypesInitedAggregateEvent');\n this.filterTypes = filterTypes;\n }\n toDomainEvent() {\n return new FilterTypesInitedEvent(this.getAggregateId(), this.filterTypes);\n }\n getFilterTypes() {\n return this.filterTypes;\n }\n}\n\nclass AllFiltersRemovedAggregateEvent extends StructureAggregateEvent {\n constructor(aggregateId) {\n super(aggregateId, 'FilterAddedEvent');\n }\n toDomainEvent() {\n return new ActiveFiltersSetEvent(this.getAggregateId(), []);\n }\n}\n\nclass FilterAddedAggregateEvent extends StructureAggregateEvent {\n activeFilters;\n constructor(aggregateId, activeFilters) {\n super(aggregateId, 'FilterAddedEvent');\n this.activeFilters = activeFilters;\n }\n toDomainEvent() {\n return new ActiveFiltersSetEvent(this.getAggregateId(), this.activeFilters);\n }\n}\n\nclass FilterRemovedAggregateEvent extends StructureAggregateEvent {\n activeFilters;\n constructor(aggregateId, activeFilters) {\n super(aggregateId, 'FilterRemovedAggregateEvent');\n this.activeFilters = activeFilters;\n }\n toDomainEvent() {\n return new ActiveFiltersSetEvent(this.getAggregateId(), this.activeFilters);\n }\n}\n\nclass UniqueFilterCalculatedAggregateEvent extends StructureAggregateEvent {\n map;\n constructor(aggregateId, map) {\n super(aggregateId, 'UniqueFilterCalculatedAggregateEvent');\n this.map = map;\n }\n toDomainEvent() {\n return new UniqueFilterCalculatedEvent(this.getAggregateId(), this.map);\n }\n}\n\nclass UniqueFilterSelectedAggregateEvent extends StructureAggregateEvent {\n constructor(aggregateId) {\n super(aggregateId, 'UniqueFilterSelectedAggregateEvent');\n }\n toDomainEvent() {\n return new UniqueFilterSelectedEvent(this.getAggregateId());\n }\n}\n\nclass UniqueFilterUnselectedAggregateEvent extends StructureAggregateEvent {\n constructor(aggregateId) {\n super(aggregateId, 'UniqueFilterUnselectedAggregateEvent');\n }\n toDomainEvent() {\n return new UniqueFilterUnselectedEvent(this.getAggregateId());\n }\n}\n\nclass AllUniqueFilterUnselectedAggregateEvent extends StructureAggregateEvent {\n constructor(aggregateId) {\n super(aggregateId, 'AllUniqueFilterUnselectedAggregateEvent');\n }\n toDomainEvent() {\n return new AllUniqueFilterUnselectedEvent(this.getAggregateId());\n }\n}\n\nclass AllUniqueFilterSelectedAggregateEvent extends StructureAggregateEvent {\n constructor(aggregateId) {\n super(aggregateId, 'AllUniqueFilterSelectedAggregateEvent');\n }\n toDomainEvent() {\n return new AllUniqueFilterSelectedEvent(this.getAggregateId());\n }\n}\n\nclass SelectedRowChangedAggregateEvent extends StructureAggregateEvent {\n selectedRows;\n allSelected;\n allUnselected;\n constructor(structureId, selectedRows, allSelected, allUnselected) {\n super(structureId, 'SelectedRowChangedAggregateEvent');\n this.selectedRows = selectedRows;\n this.allSelected = allSelected;\n this.allUnselected = allUnselected;\n }\n toDomainEvent() {\n return new SelectedRowChangedEvent(this.getAggregateId(), this.selectedRows, this.allSelected, this.allUnselected);\n }\n}\n\nclass StructureAggregate extends AggregateRoot {\n pagingManager;\n sourceManager;\n sorterManager;\n filterManager;\n searchManager;\n verticalFormation;\n fieldCollection;\n summariesManager;\n uniqueFilterManager;\n constructor(structureId, pagingAggregate, sourceManager, verticalFormation, summariesManager, sorterCollection, filterManager, uniqueFilterManager, searchManager, fieldCollection) {\n super(structureId, structureKey);\n this.pagingManager = pagingAggregate;\n this.sourceManager = sourceManager;\n this.verticalFormation = verticalFormation;\n this.summariesManager = summariesManager;\n this.sorterManager = sorterCollection;\n this.filterManager = filterManager;\n this.uniqueFilterManager = uniqueFilterManager;\n this.searchManager = searchManager;\n this.fieldCollection = fieldCollection;\n this.addEvent(this.sourceManager.events);\n this.sourceManager.events = [];\n }\n createEvent() {\n return StructureCreatedAggregateEvent;\n }\n clearEvents() {\n super.clearEvents();\n this.pagingManager.clearEvents();\n }\n init() {\n this.initTheme();\n }\n setVerticalFormationEnabled(enabled) {\n this.verticalFormation.setEnabled(enabled);\n this.calculateSource();\n }\n getVerticalFormation() {\n return this.verticalFormation;\n }\n setSummariesEnabled(enabled) {\n this.summariesManager.setEnabled(enabled);\n this.calculateSource();\n return this.getEvents();\n }\n setOrigin(items) {\n this.addEvent(this.sourceManager.setOrigin(items, this.getId()));\n // if (false) {\n this.calculateUniqueValues();\n // }\n this.calculateSource();\n return this.getEvents();\n }\n deleteItem(payload) {\n this.addEvent(this.sourceManager.deleteOriginItem(payload, this.getId()));\n this.generateSelectedRowChangedEvent();\n this.calculateSource();\n }\n editItem(editParams) {\n const itemId = editParams.getItemId(), fieldId = editParams.getColumnFieldId(), field = this.fieldCollection.getField(fieldId), // as FieldId\n value = editParams.getValue();\n const editItemEvents = this.sourceManager.editOriginItem(itemId, value, field, this.getId());\n editItemEvents.forEach((e) => this.addEvent(e));\n // TODO\n this.calculateUniqueValues();\n this.calculateSource();\n return this.getEvents();\n }\n setHeight(height) {\n this.verticalFormation.setViewportHeight(height);\n this.calculateSourceBasedOnVirtualScroll();\n }\n setTheme(theme) {\n // #1707 Move to SchemeAggregate\n if (theme === SchemaTheme.MATERIAL) {\n this.getVerticalFormation().setRowHeight(52);\n }\n if (theme === SchemaTheme.GENERIC) {\n this.getVerticalFormation().setRowHeight(42);\n }\n if (theme === SchemaTheme.FABRIC) {\n this.getVerticalFormation().setRowHeight(36);\n }\n if (theme === SchemaTheme.LIGHT) {\n this.getVerticalFormation().setRowHeight(56);\n }\n if (theme === SchemaTheme.DARK) {\n this.getVerticalFormation().setRowHeight(38);\n }\n }\n setScrollPosition(position) {\n this.verticalFormation.setScrollPosition(position);\n this.calculateSourceBasedOnVirtualScroll();\n }\n scrollToIndex(index) {\n this.addEvent(this.verticalFormation.scrollToIndex(index));\n }\n setSelection(enabled) {\n this.sourceManager.getFormation().setSelection(enabled);\n this.addEvent(new SelectionEnabledSetAggregateEvent(this.getId(), enabled));\n }\n setSelectionMode(mode) {\n this.addEvent(this.sourceManager.getFormation().setMode(mode));\n }\n setSelectionType(type) {\n this.addEvent(this.sourceManager.getFormation().setType(type));\n }\n setFormationMatcher(matcher) {\n this.getFormation().setMatcher(matcher);\n this.sourceManager.reSelect();\n this.generateSelectedRowChangedEvent();\n }\n selectByIndex(indexes) {\n this.sourceManager.selectByIndex(indexes);\n this.generateSelectedRowChangedEvent();\n }\n selectByIds(ids) {\n this.sourceManager.selectByIds(ids);\n this.generateSelectedRowChangedEvent();\n }\n /**\n *\n * Doesnt' work\n */\n setSelectedRows(selectedRows) {\n this.sourceManager.setSelectedRows(selectedRows);\n this.generateSelectedRowChangedEvent();\n }\n setSelectionCustomConfig(config) {\n this.addEvent(this.sourceManager.setCustomConfig(config));\n }\n toggleRow(selectedRow, type) {\n this.sourceManager.toggleRow(selectedRow, type);\n this.generateSelectedRowChangedEvent();\n }\n selectCustom(id) {\n this.sourceManager.selectCustom(id);\n this.generateSelectedRowChangedEvent();\n }\n selectAll() {\n this.sourceManager.selectAll();\n this.generateSelectedRowChangedEvent();\n }\n unselectAll() {\n this.sourceManager.unselectAll();\n this.generateSelectedRowChangedEvent();\n }\n getFormation() {\n return this.sourceManager.getFormation();\n }\n getPaging() {\n return this.pagingManager;\n }\n changePaging(config) {\n this.pagingManager.change(config);\n this.calculateSource();\n }\n setPaging(paging) {\n this.pagingManager = paging;\n this.calculateSource();\n }\n nextPage() {\n this.pagingManager.nextPage();\n this.calculateSource();\n }\n prevPage() {\n this.pagingManager.prevPage();\n this.calculateSource();\n }\n changePageSize(pageSize) {\n const pagingEvents = this.pagingManager.changePageSize(pageSize);\n // TODO\n pagingEvents.forEach((event) => {\n this.addEvent(event);\n });\n this.calculateSource();\n return this.getEvents();\n }\n getEntities() {\n return this.sourceManager.getSlicedEntities();\n }\n getSource() {\n return this.sourceManager;\n }\n createFields(fieldConfigs) {\n this.fieldCollection.initFields(fieldConfigs);\n const fields = this.fieldCollection.getAllFields();\n this.addEvent(new FieldsInitedAggregateEvent(this.getId(), fieldConfigs, fields));\n this.filterManager.assignFilterTypes(fields);\n this.addEvent(new FilterTypesInitedAggregateEvent(this.getId(), this.filterManager.getFilterTypes()));\n return this.getEvents();\n }\n setSortingConfig(config) {\n this.sorterManager.setConfig(config);\n }\n toggleSort(fieldId) {\n const field = this.fieldCollection.getField(fieldId);\n this.sorterManager.toggle(field);\n this.calculateSource();\n return this.sorterManager.getAll();\n }\n setSortOrder(fieldId, sortOrder) {\n const field = this.fieldCollection.getField(fieldId);\n this.sorterManager.setSortOrder(field, sortOrder);\n this.calculateSource();\n return this.sorterManager.getAll();\n }\n setFilterConfig(config) {\n this.filterManager.getSettings().setFilterConfig(config);\n }\n setQuickFiltersConfig(config) {\n this.filterManager.getSettings().setQuickFiltersConfig(config);\n }\n toggleFilter(fieldId, externalFilterId, filterValue) {\n const field = this.fieldCollection.getField(fieldId);\n // Field not found\n // TODO throw aggregate event\n if (field === undefined) {\n return [];\n }\n // this.filterManager.addFilter(field, externalFilterId, filterValue);\n this.calculateSource();\n return [];\n }\n addFilter(fieldId, filterTypeId, value) {\n this.filterManager.add(fieldId, filterTypeId, value);\n const fields = this.fieldCollection.getFieldsAsMap();\n const activeFilters = this.filterManager.getAllActiveFilters(fields);\n this.addEvent(new FilterAddedAggregateEvent(this.getId(), activeFilters));\n this.calculateSource();\n }\n removeAllFilters() {\n this.filterManager.removeAll();\n this.addEvent(new AllFiltersRemovedAggregateEvent(this.getId()));\n this.calculateSource();\n }\n removeFilter(filterId) {\n this.filterManager.remove(filterId);\n const fields = this.fieldCollection.getFieldsAsMap();\n const activeFilters = this.filterManager.getAllActiveFilters(fields);\n this.addEvent(new FilterRemovedAggregateEvent(this.getId(), activeFilters));\n this.calculateSource();\n }\n setSearchingConfig(config) {\n this.filterManager.getSettings().setSearchingConfig(config);\n }\n addSearchPhrase(phrase) {\n const fields = this.fieldCollection.getAllFields();\n this.searchManager.addSearchPhrase(fields, phrase);\n this.calculateSource();\n return [];\n }\n removeSearchPhrase() {\n this.searchManager.removeSearchFilters();\n this.calculateSource();\n return [];\n }\n selectAllUniqueFilter(fieldId) {\n this.uniqueFilterManager.selectAll(fieldId);\n this.addEvent(new AllUniqueFilterSelectedAggregateEvent(this.getId()));\n this.generateCalculateUniqueValuesAggregateEvent();\n this.calculateSource();\n }\n selectUniqueFilter(fieldId, uniqueValueId) {\n this.uniqueFilterManager.select(fieldId, uniqueValueId);\n this.addEvent(new UniqueFilterSelectedAggregateEvent(this.getId()));\n this.generateCalculateUniqueValuesAggregateEvent();\n this.calculateSource();\n }\n unselectAllUniqueFilter(fieldId) {\n this.uniqueFilterManager.unselectAll(fieldId);\n this.addEvent(new AllUniqueFilterUnselectedAggregateEvent(this.getId()));\n this.generateCalculateUniqueValuesAggregateEvent();\n this.calculateSource();\n }\n unselectUniqueFilter(fieldId, uniqueValueId) {\n this.uniqueFilterManager.unselect(fieldId, uniqueValueId);\n this.addEvent(new UniqueFilterUnselectedAggregateEvent(this.getId()));\n this.generateCalculateUniqueValuesAggregateEvent();\n this.calculateSource();\n }\n calculateSource() {\n if (!this.sourceManager.getOrigin() || !this.pagingManager) {\n return;\n }\n // TODO Refactor\n this.sourceManager.setEntities(this.sourceManager.getOrigin());\n // filtering\n this.sourceManager.setEntities(this.filterManager.filter(this.sourceManager.getEntities(), this.fieldCollection.getFieldsAsMap()));\n // search\n const searchedEntities = this.searchManager.search(this.sourceManager.getEntities());\n this.sourceManager.setEntities(searchedEntities);\n // unique filtering\n if (true) {\n // this.sourceManager.setEntities(\n // \tthis.uniqueFilterManager.filterAll(this.sourceManager.getEntities(), this.fieldCollection.getAllFields())\n // );\n }\n // sorting\n const ents = this.sorterManager.sort(this.sourceManager.getEntities());\n this.sourceManager.setEntities(ents);\n // calculate filteredEntities\n this.sourceManager.setPreparedEntities();\n this.pagingManager.setSourceSize(this.sourceManager.getPreparedEntities().length);\n this.addEvent(new StructurePreparedEntitiesSetAggregateEvent(this.getId(), ents));\n // summaries\n const summariesEvents = this.summariesManager.calculate(this.fieldCollection.getAllFields(), this.sourceManager.getEntities());\n summariesEvents.forEach((ae) => {\n this.addEvent(ae);\n });\n // paging\n this.sourceManager.setEntities(this.pagingManager.sample(this.sourceManager.getEntities()));\n this.verticalFormation.setSourceSize(this.sourceManager.getEntities().length);\n this.calculateSourceBasedOnVirtualScroll();\n }\n calculateSourceBasedOnVirtualScroll() {\n if (this.verticalFormation.isEnabled()) {\n const range = this.verticalFormation.getRange();\n this.sourceManager.setSlicedEntities(this.sourceManager.getEntities().slice(range.getStart(), range.getEnd()));\n }\n else {\n this.sourceManager.setSlicedEntities(this.sourceManager.getEntities());\n }\n }\n initTheme() {\n // TODO\n const theme = SchemaAggregate.DEFAULT_THEME;\n this.setTheme(theme);\n }\n calculateUniqueValues() {\n const fields = this.fieldCollection.getAllFields(), items = this.sourceManager.getOrigin();\n this.uniqueFilterManager.calculateAll(items, fields);\n this.generateCalculateUniqueValuesAggregateEvent();\n }\n generateCalculateUniqueValuesAggregateEvent() {\n this.addEvent(new UniqueFilterCalculatedAggregateEvent(this.getId(), this.uniqueFilterManager.getAll(this.fieldCollection.getAllFields())));\n }\n generateSelectedRowChangedEvent() {\n this.addEvent(new SelectedRowChangedAggregateEvent(this.getId(), this.sourceManager.getFormation().getSelectedItemIds().map(i => i.toString()), this.sourceManager.getFormation().isAllSelected(), this.sourceManager.getFormation().isAllUnselected()));\n }\n}\n\nclass Sorter {\n sorterId;\n columnId;\n field;\n rank = 1;\n direction;\n constructor(id, field, direction = true) {\n this.sorterId = id;\n this.field = field;\n this.direction = direction;\n }\n getId() {\n return this.sorterId;\n }\n getRank() {\n return this.rank;\n }\n getField() {\n return this.field;\n }\n hasDirection() {\n return this.direction;\n }\n changeDirection() {\n this.direction = !this.direction;\n }\n setDirection(direction) {\n this.direction = direction;\n }\n sort(entities) {\n if (entities.length === 0) {\n return entities;\n }\n return entities.sort((entityOne, entityTwo) => {\n return this.field.sort(entityOne, entityTwo, this.direction);\n });\n }\n}\n\nclass SorterId {\n sorterId;\n constructor(id) {\n this.sorterId = id;\n }\n getId() {\n return this.sorterId;\n }\n}\n\nclass SorterManager {\n enabled;\n multi;\n sorters = new Map();\n constructor(enabled = false, multi = false) {\n this.enabled = enabled;\n this.multi = multi;\n }\n setConfig(config) {\n if (config && config.enabled !== undefined && config.enabled !== null) {\n this.enabled = config.enabled;\n }\n if (config && config.multiSorting !== undefined && config.multiSorting !== null) {\n this.multi = config.multiSorting;\n this.sorters.clear();\n }\n }\n toggle(field) {\n const fieldId = field.getId(), sorter = this.sorters.get(fieldId.getId());\n if (sorter) {\n if (sorter.hasDirection()) {\n sorter.changeDirection();\n }\n else {\n this.delete(fieldId);\n }\n }\n else {\n this.add(field);\n }\n }\n setSortOrder(field, sortOrder) {\n const fieldId = field.getId(), sorter = this.sorters.get(fieldId.getId());\n if (sortOrder === SortOrder.NONE) {\n this.delete(fieldId);\n }\n else if (sortOrder === SortOrder.ASC || sortOrder === SortOrder.DESC) {\n this.delete(fieldId);\n const direction = sortOrder === SortOrder.ASC;\n this.add(field, direction);\n }\n }\n add(field, direction = true) {\n this.addSorter(field.getId(), new Sorter(new SorterId(RandomStringGenerator.generate()), field, direction));\n }\n addSorter(fieldId, sorter) {\n if (!this.multi) {\n this.sorters.clear();\n }\n this.sorters.set(fieldId.getId(), sorter);\n }\n delete(fieldId) {\n this.sorters.delete(fieldId.getId());\n }\n update() {\n }\n // TODO Remove the loop from sorter.sort\n sort(entities) {\n const sorters = this.getAll();\n let sortedEntities = Array.from(entities);\n for (const sorter of sorters) {\n sortedEntities = sorter.sort(sortedEntities);\n }\n return sortedEntities;\n }\n getAll() {\n if (!this.enabled) {\n return [];\n }\n return Array.from(this.sorters)\n .map((arr) => arr[1])\n .sort((sorterOne, sorterTwo) => {\n return sorterOne.getRank() - sorterTwo.getRank();\n })\n .reverse();\n }\n}\n\nclass UniqueValue {\n id;\n value;\n displayValue;\n enabled;\n constructor(id, value, displayValue, enabled) {\n this.id = id;\n this.value = value;\n this.displayValue = displayValue;\n this.enabled = enabled;\n }\n getId() {\n return this.id;\n }\n getValue() {\n return this.value;\n }\n getDisplayValue() {\n return this.displayValue;\n }\n isEnabled() {\n return this.enabled;\n }\n isDisabled() {\n return !this.enabled;\n }\n select() {\n this.enabled = true;\n }\n unselect() {\n this.enabled = false;\n }\n}\n\nclass UniqueValueId {\n id;\n constructor(uniqueValueId) {\n this.id = uniqueValueId;\n }\n toString() {\n return this.id;\n }\n equals(uniqueValueId) {\n return uniqueValueId.toString() === this.id;\n }\n}\n\nclass UniqueValueIdGenerator {\n static index = 0;\n static generate() {\n UniqueValueIdGenerator.index += 1;\n return new UniqueValueId(`${UniqueValueIdGenerator.index}`);\n }\n}\n\nclass UniqueValueCollection {\n values = [];\n allSelected;\n allDisabled;\n constructor(values, field) {\n for (const value of values) {\n this.values.push(new UniqueValue(UniqueValueIdGenerator.generate(), value, field.getDisplayValue(value), true));\n }\n this.calculateAllSelected();\n this.calculateAllDisabled();\n }\n getAll() {\n return this.values;\n }\n isAllSelected() {\n return this.allSelected;\n }\n isAllDisabled() {\n return this.allDisabled;\n }\n getNotSelected() {\n return this.values.filter((uv) => uv.isDisabled());\n }\n selectAll() {\n this.values.forEach((uv) => {\n uv.select();\n });\n this.allSelected = true;\n this.allDisabled = false;\n }\n select(uniqueValueId) {\n this.values\n .filter((uv) => uv.getId().equals(uniqueValueId))\n .forEach((uv) => {\n uv.select();\n });\n this.calculateAllSelected();\n this.calculateAllDisabled();\n }\n unselectAll() {\n this.values.forEach((uv) => {\n uv.unselect();\n });\n this.allSelected = false;\n this.allDisabled = true;\n }\n unselect(uniqueValueId) {\n this.values\n .filter((uv) => uv.getId().equals(uniqueValueId))\n .forEach((uv) => {\n uv.unselect();\n });\n this.calculateAllSelected();\n this.calculateAllDisabled();\n }\n calculateAllSelected() {\n this.allSelected = !this.values.some((f) => f.isDisabled());\n }\n calculateAllDisabled() {\n this.allDisabled = !this.values.some((f) => f.isEnabled());\n }\n}\n\nclass UniqueFilterManager {\n uniqueValueMap = new KeyMap();\n calculate(entities, field) {\n const fieldId = field.getId();\n const optUVM = this.uniqueValueMap.find(fieldId);\n optUVM.ifEmpty(() => {\n const set = new Set();\n for (const entity of entities) {\n set.add(field.getValue(entity));\n }\n // sort\n const sortedValues = Array.from(set.values()).sort((a, b) => {\n return field.getField().sort(a, b);\n });\n const uvc = new UniqueValueCollection(sortedValues, field);\n this.uniqueValueMap.set(field.getId(), uvc);\n });\n }\n calculateAll(entities, fields) {\n for (const field of fields) {\n this.calculate(entities, field);\n }\n }\n filterAll(entities, fields) {\n let values = entities;\n for (const field of fields) {\n values = this.filter(values, field);\n }\n return values;\n }\n filter(entities, field) {\n let values = [];\n this.uniqueValueMap\n .find(field.getId())\n .ifPresent((uvc) => {\n if (uvc.isAllSelected()) {\n values = entities;\n }\n else if (uvc.isAllDisabled()) {\n values = [];\n }\n else {\n values = entities.filter((itemEntity) => {\n for (const notSelectedValue of uvc.getNotSelected()) {\n if (field.getField().equals(itemEntity, notSelectedValue.getValue())) {\n return false;\n }\n }\n return true;\n });\n }\n });\n return values;\n }\n selectAll(fieldId) {\n this.uniqueValueMap\n .find(fieldId)\n .ifPresent((uvc) => {\n uvc.selectAll();\n });\n }\n select(fieldId, uniqueValueId) {\n this.uniqueValueMap\n .find(fieldId)\n .ifPresent((uvc) => {\n uvc.select(uniqueValueId);\n });\n }\n unselectAll(fieldId) {\n this.uniqueValueMap\n .find(fieldId)\n .ifPresent((uvc) => {\n uvc.unselectAll();\n });\n }\n unselect(fieldId, uniqueValueId) {\n this.uniqueValueMap\n .find(fieldId)\n .ifPresent((uvc) => {\n uvc.unselect(uniqueValueId);\n });\n }\n getAll(fields) {\n const map = new Map();\n for (const field of fields) {\n this.getValues(field)\n .ifPresent((v) => {\n map.set(field.getId().toString(), v);\n });\n }\n return map;\n }\n getValues(field) {\n return this.uniqueValueMap\n .find(field.getId())\n .map((uvc) => {\n return uvc.getAll();\n });\n }\n}\n\nclass StructureAggregateFactory extends AggregateFactory {\n pagingAggregateFactory;\n sourceManagerFactory;\n verticalFormationFactory;\n summariesManagerFactory;\n filterManagerFactory;\n searchManagerFactory;\n fieldCollectionFactory;\n constructor(pagingAggregateFactory, sourceManagerFactory, verticalFormationFactory, summariesManagerFactory, filterManagerFactory, searchManagerFactory, fieldCollectionFactory) {\n super();\n this.pagingAggregateFactory = pagingAggregateFactory;\n this.sourceManagerFactory = sourceManagerFactory;\n this.verticalFormationFactory = verticalFormationFactory;\n this.summariesManagerFactory = summariesManagerFactory;\n this.filterManagerFactory = filterManagerFactory;\n this.searchManagerFactory = searchManagerFactory;\n this.fieldCollectionFactory = fieldCollectionFactory;\n }\n static services = [\n PagingManagerFactory, SourceManagerFactory, VerticalFormationFactory, SummariesManagerFactory,\n FilterManagerFactory, SearchManagerFactory, FieldCollectionFactory\n ];\n create(structureId) {\n const paging = this.pagingAggregateFactory.createDefault(), source = this.sourceManagerFactory.createDefault(structureId), verticalFormation = this.verticalFormationFactory.create(structureId);\n const sorterContainer = new SorterManager(), filterContainer = this.filterManagerFactory.create(false), fieldContainer = this.fieldCollectionFactory.create(), summariesManager = this.summariesManagerFactory.create(structureId), searchManager = this.searchManagerFactory.create();\n const structureAggregate = new StructureAggregate(structureId, paging, source, verticalFormation, summariesManager, sorterContainer, filterContainer, new UniqueFilterManager(), searchManager, fieldContainer);\n this.init(structureAggregate);\n return structureAggregate;\n }\n init(structureAggregate) {\n structureAggregate.init();\n }\n}\n\nclass StructureAggregateRepository extends AggregateRepository {\n}\n\nclass InMemoryStructureAggregateStore extends InMemoryAggregateStore {\n constructor(inMemoryStructureStore) {\n super(inMemoryStructureStore);\n }\n static services = [InMemoryStructureStore];\n}\n\nclass InMemoryStructureAggregateRepository extends StructureAggregateRepository {\n inMemoryStructureAggregateStore;\n constructor(inMemoryStructureAggregateStore) {\n super();\n this.inMemoryStructureAggregateStore = inMemoryStructureAggregateStore;\n }\n static services = [InMemoryStructureAggregateStore];\n findById(aggregateId) {\n return this.inMemoryStructureAggregateStore.findById(aggregateId);\n }\n save(aggregate) {\n this.inMemoryStructureAggregateStore.save(aggregate);\n }\n}\n\nclass StructureCreatedEventHandler {\n summariesEnabledArchive;\n constructor(summariesEnabledArchive) {\n this.summariesEnabledArchive = summariesEnabledArchive;\n }\n static services = [SummariesEnabledArchive];\n forEvent() {\n return StructureCreatedEvent;\n }\n handle(event) {\n if (event.ofMessageType('StructureCreatedEvent')) {\n const structureId = event.getAggregateId();\n this.summariesEnabledArchive.init(structureId);\n }\n }\n}\n\nclass StructureDomainModule {\n defineAggregate() {\n return {\n aggregateKey: structureKey,\n createCommandHandler: CreateStructureCommandHandler,\n factory: StructureAggregateFactory,\n repository: InMemoryStructureAggregateRepository\n };\n }\n registerKey() {\n return structureKey;\n }\n registerProviders(container) {\n // container.provide(ListViewDispatcher);\n }\n registerCommandHandlers() {\n return [\n // SetListViewModeCommandHandler,\n // ToggleListViewSelectorCommandHandler\n ];\n }\n registerDomainEventHandler() {\n return [\n StructureCreatedEventHandler\n ];\n }\n registerMultiDomainEventHandler() {\n return [];\n }\n}\n\nclass FilterAddedEvent extends StructureDomainEvent {\n fieldId;\n filterTypeId;\n value;\n constructor(aggregateId, fieldId, filterTypeId, value) {\n super(aggregateId, { fieldId, filterTypeId, value }, 'FilterAddedEvent');\n this.fieldId = fieldId;\n this.filterTypeId = filterTypeId;\n this.value = value;\n }\n}\n\nclass InMemoryStructureRepository extends StructureReadModelRepository {\n inMemoryStructureReadStore;\n structureIdToStructure = new Map();\n hermesStructure$ = new HermesReplaySubject(1);\n constructor(inMemoryStructureReadStore) {\n super();\n this.inMemoryStructureReadStore = inMemoryStructureReadStore;\n }\n static services = [InMemoryStructureReadStore];\n getStructure(structureId) {\n return this.structureIdToStructure.get(structureId.getId());\n }\n on(structureId) {\n return this.hermesStructure$\n .toObservable()\n .pipe(hermesFilter((structureIdToStructure) => {\n const key = structureId.getId();\n return structureIdToStructure.has(key);\n }), hermesMap((structureIdToStructure) => {\n return structureIdToStructure.get(structureId.getId());\n }));\n }\n forEvents() {\n return [\n StructureCreatedEvent,\n SetSourceLoadingEvent,\n PagingSetEvent,\n PrevPageEvent,\n NextPageEvent,\n PagesizeChangedEvent,\n SelectionEnabledSetEvent,\n VerticalScrollEnabledSetEvent,\n ScrollPositionSetEvent,\n SortToggledEvent,\n FilterToggledEvent,\n SearchPhraseSetDomainEvent,\n SortOrderSetEvent,\n OriginSetEvent,\n RowHeightSetEvent,\n StructureHeightSetEvent,\n RowHeightSetBasedOnThemeEvent,\n FilterAddedEvent,\n ActiveFiltersSetEvent,\n UniqueFilterSelectedEvent,\n AllUniqueFilterSelectedEvent,\n UniqueFilterUnselectedEvent,\n AllUniqueFilterUnselectedEvent\n ];\n }\n subs(event) {\n const aggregateId = event.getAggregateId();\n const optStructure = this.inMemoryStructureReadStore.getById(aggregateId);\n optStructure.ifPresent((structureReadModelRoot) => {\n const key = structureReadModelRoot.getId().toString();\n this.structureIdToStructure.set(key, structureReadModelRoot);\n this.hermesStructure$.next(this.structureIdToStructure);\n });\n }\n}\n\nclass StructureDomainPublisher extends StructurePublisher {\n filterCommandInvoker;\n sourcePublisher;\n verticalFormationCommandInvoker;\n structureCellEditArchive;\n commandDispatcher = CoreContainer.resolve(CommandDispatcher);\n constructor(filterCommandInvoker, sourcePublisher, verticalFormationCommandInvoker, structureCellEditArchive) {\n super();\n this.filterCommandInvoker = filterCommandInvoker;\n this.sourcePublisher = sourcePublisher;\n this.verticalFormationCommandInvoker = verticalFormationCommandInvoker;\n this.structureCellEditArchive = structureCellEditArchive;\n }\n static services = [\n FilterPublisher,\n SourcePublisher,\n VerticalFormationPublisher,\n StructureCellEditArchive\n ];\n create(structureId) {\n this.commandDispatcher.dispatch(new CreateStructureCommand(structureId));\n }\n // REMOVE\n enableVirtualScroll(structureId) {\n this.verticalFormationCommandInvoker.enableVirtualScroll(structureId);\n }\n // REMOVE\n disableVirtualScroll(structureId) {\n this.verticalFormationCommandInvoker.disableVirtualScroll(structureId);\n }\n // REMOVE\n scrollToTop(structureId) {\n this.verticalFormationCommandInvoker.scrollToTop(structureId);\n }\n // REMOVE\n scrollToBottom(structureId) {\n this.verticalFormationCommandInvoker.scrollToBottom(structureId);\n }\n // REMOVE\n scrollToIndex(index, structureId) {\n this.verticalFormationCommandInvoker.scrollToIndex(index, structureId);\n }\n // REMOVE\n setScrollPosition(position, structureId) {\n this.verticalFormationCommandInvoker.setScrollPosition(position, structureId);\n }\n setFilterConfig(config, structureId) {\n this.filterCommandInvoker.setConfig(config, structureId);\n }\n setQuickFiltersConfig(config, structureId) {\n this.commandDispatcher.dispatch(new SetConfigQuickFilterCommand(structureId, config));\n }\n setRowHeight(rowHeight, structureId) {\n this.commandDispatcher.dispatch(new SetRowHeightCommand(structureId, +rowHeight));\n }\n // REMOVE\n setContainerHeight(height, structureId) {\n this.commandDispatcher.dispatch(new StructureSetHeightCommand(structureId, +height));\n }\n // REMOVE\n setRowHeightBasedOnTheme(theme, structureId) {\n this.commandDispatcher.dispatch(new SetRowHeightBasedOnThemeCommand(structureId, theme));\n }\n setCellEdit(cellEdit, structureId) {\n this.structureCellEditArchive.next(structureId, new CellEditorManager(cellEdit));\n }\n}\n\nclass StructureApiModule {\n registerProviders(container) {\n container.provide(InMemoryStructureReadStore);\n container.provide(StructureReadModelRepository, InMemoryStructureRepository);\n container.provide(StructureAggregateFactory);\n container.provide(StructureReadModelRootConverter);\n container.provide(StructureWarehouse);\n container.provide(StructurePublisher, StructureDomainPublisher);\n container.provide(StructureInitialValuesReadyArchive);\n container.provide(InMemoryStructureAggregateStore);\n container.provide(InMemoryStructureStore);\n container.provide(StructureAggregateRepository, InMemoryStructureAggregateRepository);\n container.provide(FabricModalThemeService);\n container.provide(StructureCellEditArchive);\n }\n}\nfunction initializeStructure() {\n new DomainInitializer(new StructureApiModule(), new StructureDomainModule()).init();\n}\n\nclass CreateListViewCommand extends CreateAggregateCommand {\n constructor(listViewId) {\n super(listViewId, 'CreateListViewCommand');\n }\n}\n\nclass ListViewCommand extends Command {\n}\n\nclass SetListViewModeCommand extends ListViewCommand {\n mode;\n constructor(listViewId, mode) {\n super(listViewId, 'SetListViewModeCommand');\n this.mode = mode;\n }\n getMode() {\n return this.mode;\n }\n}\n\nclass ToggleListViewSelectorCommand extends ListViewCommand {\n enabled;\n constructor(listViewId, enabled) {\n super(listViewId, 'ToggleListViewSelectorCommand');\n this.enabled = enabled;\n }\n isEnabled() {\n return this.enabled;\n }\n}\n\nclass ListViewDispatcher {\n commandDispatcher = CoreContainer.resolve(CommandDispatcher);\n create(listViewId) {\n this.commandDispatcher.dispatch(new CreateListViewCommand(listViewId));\n }\n setMode(mode, listViewId) {\n this.commandDispatcher.dispatch(new SetListViewModeCommand(listViewId, mode));\n }\n toggleSelector(enabled, listViewId) {\n this.commandDispatcher.dispatch(new ToggleListViewSelectorCommand(listViewId, enabled));\n }\n}\n\nclass ListViewId extends AggregateId {\n constructor(id) {\n super(id);\n }\n toReadModelRootId() {\n return new ListViewReadModelRootId(this.getId());\n }\n}\n\nclass ListViewReadModelRootId extends ReadModelRootId {\n constructor(id) {\n super(id);\n }\n toAggregateId() {\n return new ListViewId(this.getId());\n }\n}\n\nconst listViewGlobalId = new ListViewReadModelRootId('-1');\n\nclass ListViewPublisher {\n listViewDispatcher;\n constructor(listViewDispatcher) {\n this.listViewDispatcher = listViewDispatcher;\n }\n static services = [ListViewDispatcher];\n create(listViewReadModelRootId = listViewGlobalId) {\n this.listViewDispatcher.create(listViewReadModelRootId.toAggregateId());\n }\n setMode(mode, listViewReadModelRootId = listViewGlobalId) {\n this.listViewDispatcher.setMode(mode, listViewReadModelRootId.toAggregateId());\n }\n toggleSelector(enabled, listViewReadModelRootId = listViewGlobalId) {\n this.listViewDispatcher.toggleSelector(enabled, listViewReadModelRootId.toAggregateId());\n }\n}\n\nclass ListViewDomainEvent extends DomainEvent {\n}\n\nclass ListViewModeSetEvent extends ListViewDomainEvent {\n mode;\n constructor(schemaId, mode) {\n super(schemaId, mode, 'ListViewModeSetEvent');\n this.mode = mode;\n }\n getTheme() {\n return this.mode;\n }\n}\n\nclass ListViewEventRepository extends EventRepository {\n constructor() {\n super();\n }\n onModeChange(listViewReadModelRootId) {\n return this.onEvent(listViewReadModelRootId, ListViewModeSetEvent);\n }\n}\n\nvar ListViewMode;\n(function (ListViewMode) {\n ListViewMode[\"LIST\"] = \"List\";\n ListViewMode[\"CARD\"] = \"Card\";\n})(ListViewMode || (ListViewMode = {}));\n\nclass ListViewModeArchive extends AggregateArchive {\n static default = ListViewMode.LIST;\n constructor() {\n super(ListViewModeArchive.default);\n }\n}\n\nclass ListViewSelectorArchive extends AggregateArchive {\n static default = false;\n constructor() {\n super(ListViewSelectorArchive.default);\n }\n}\n\nclass ListViewWarehouse {\n listViewModeArchive;\n listViewSelectorArchive;\n constructor(listViewModeArchive, listViewSelectorArchive) {\n this.listViewModeArchive = listViewModeArchive;\n this.listViewSelectorArchive = listViewSelectorArchive;\n }\n static services = [ListViewModeArchive, ListViewSelectorArchive];\n onMode(id) {\n return this.listViewModeArchive.on(id);\n }\n onSelector(id) {\n return this.listViewSelectorArchive.on(id);\n }\n}\n\nclass InMemoryListViewStore extends InMemoryStore {\n}\n\nclass InMemoryListViewAggregateStore extends InMemoryAggregateStore {\n constructor(inMemorySchemaStore) {\n super(inMemorySchemaStore);\n }\n static services = [InMemoryListViewStore];\n}\n\nclass SetListViewModeCommandHandler {\n forCommand() {\n return SetListViewModeCommand;\n }\n handle(listViewAggregate, command) {\n const mode = command.getMode();\n listViewAggregate.setMode(mode);\n }\n}\n\nclass ToggleListViewSelectorCommandHandler {\n forCommand() {\n return ToggleListViewSelectorCommand;\n }\n handle(listViewAggregate, command) {\n const enabled = command.isEnabled();\n listViewAggregate.toggleModeSelector(enabled);\n }\n}\n\nclass ListViewModeSetEventHandler {\n listViewModeArchive;\n constructor(listViewModeArchive) {\n this.listViewModeArchive = listViewModeArchive;\n }\n static services = [ListViewModeArchive];\n forEvent() {\n return ListViewModeSetEvent;\n }\n handle(event) {\n if (event.ofMessageType('ListViewModeSetEvent')) {\n this.listViewModeArchive.next(event.getAggregateId(), event.getTheme());\n }\n }\n}\n\nclass ListViewSelectorToggledEvent extends ListViewDomainEvent {\n enabled;\n constructor(schemaId, enabled) {\n super(schemaId, enabled, 'ListViewSelectorToggledEvent');\n this.enabled = enabled;\n }\n isEnabled() {\n return this.enabled;\n }\n}\n\nclass ListViewSelectorToggledEventHandler {\n listViewSelectorArchive;\n constructor(listViewSelectorArchive) {\n this.listViewSelectorArchive = listViewSelectorArchive;\n }\n static services = [ListViewSelectorArchive];\n forEvent() {\n return ListViewSelectorToggledEvent;\n }\n handle(event) {\n if (event.ofMessageType('ListViewSelectorToggledEvent')) {\n this.listViewSelectorArchive.next(event.getAggregateId(), event.isEnabled());\n }\n }\n}\n\nclass CreateListViewCommandHandler {\n forCommand() {\n return CreateListViewCommand;\n }\n}\n\nclass ListViewCreatedEvent extends ListViewDomainEvent {\n constructor(aggregateId) {\n super(aggregateId, null, 'ListViewCreatedEvent');\n }\n}\n\nclass ListViewAggregateEvent extends AggregateEvent {\n}\n\nclass ListViewCreatedAggregateEvent extends ListViewAggregateEvent {\n constructor(aggregateId) {\n super(aggregateId, 'ListViewCreatedAggregateEvent');\n }\n toDomainEvent() {\n return new ListViewCreatedEvent(this.getAggregateId());\n }\n}\n\nclass ListViewModeSetAggregateEvent extends ListViewAggregateEvent {\n mode;\n constructor(listViewId, mode) {\n super(listViewId, 'ListViewModeSetAggregateEvent');\n this.mode = mode;\n }\n toDomainEvent() {\n return new ListViewModeSetEvent(this.getAggregateId(), this.mode);\n }\n}\n\nclass SelectorVisibility {\n enabled = null;\n visible = false;\n constructor() {\n }\n isVisible() {\n if (this.enabled !== null) {\n return this.enabled;\n }\n return this.visible;\n }\n setEnabled(enabled) {\n this.enabled = enabled;\n }\n setVisible(visible) {\n this.visible = visible;\n }\n}\n\nclass ListViewSelectorToggledAggregateEvent extends ListViewAggregateEvent {\n enabled;\n constructor(listViewId, enabled) {\n super(listViewId, 'ListViewSelectorToggledAggregateEvent');\n this.enabled = enabled;\n }\n toDomainEvent() {\n return new ListViewSelectorToggledEvent(this.getAggregateId(), this.enabled);\n }\n}\n\nclass ListViewAggregate extends AggregateRoot {\n mode;\n selectorVisibility;\n constructor(listViewId) {\n super(listViewId, 'ListViewAggregate');\n this.setMode(ListViewMode.LIST);\n this.initSelectorVisibility();\n }\n createEvent() {\n return ListViewCreatedAggregateEvent;\n }\n setMode(mode) {\n this.mode = mode;\n this.addEvent(new ListViewModeSetAggregateEvent(this.getId(), this.mode));\n }\n toggleModeSelector(enabled) {\n this.selectorVisibility.setEnabled(enabled);\n this.emitEventAfterSelectorVisibilityChange();\n }\n initSelectorVisibility() {\n this.selectorVisibility = new SelectorVisibility();\n this.emitEventAfterSelectorVisibilityChange();\n }\n emitEventAfterSelectorVisibilityChange() {\n this.addEvent(new ListViewSelectorToggledAggregateEvent(this.getId(), this.selectorVisibility.isVisible()));\n }\n}\n\nclass ListViewAggregateFactory extends AggregateFactory {\n constructor() {\n super();\n }\n create(id) {\n return new ListViewAggregate(id);\n }\n}\n\nclass ListViewAggregateRepository extends AggregateRepository {\n}\n\nclass InMemoryListViewAggregateRepository extends ListViewAggregateRepository {\n inMemorySchemaAggregateStore;\n constructor(inMemorySchemaAggregateStore) {\n super();\n this.inMemorySchemaAggregateStore = inMemorySchemaAggregateStore;\n }\n static services = [InMemoryListViewAggregateStore];\n findById(listViewId) {\n return this.inMemorySchemaAggregateStore.findById(listViewId);\n }\n save(listViewAggregate) {\n this.inMemorySchemaAggregateStore.save(listViewAggregate);\n }\n}\n\nclass ListViewDomainModule {\n defineAggregate() {\n return {\n aggregateKey: listViewKey,\n createCommandHandler: CreateListViewCommandHandler,\n factory: ListViewAggregateFactory,\n repository: InMemoryListViewAggregateRepository\n };\n }\n registerKey() {\n return listViewKey;\n }\n registerProviders(container) {\n container.provide(ListViewDispatcher);\n }\n registerCommandHandlers() {\n return [\n SetListViewModeCommandHandler,\n ToggleListViewSelectorCommandHandler\n ];\n }\n registerDomainEventHandler() {\n return [\n ListViewModeSetEventHandler,\n ListViewSelectorToggledEventHandler\n ];\n }\n registerMultiDomainEventHandler() {\n return [];\n }\n}\n\nconst listViewKey = 'ListViewKey';\nclass ListViewApiModule {\n registerProviders(container) {\n container.provide(ListViewPublisher);\n container.provide(ListViewEventRepository);\n container.provide(ListViewWarehouse);\n container.provide(ListViewModeArchive);\n container.provide(ListViewSelectorArchive);\n container.provide(InMemoryListViewAggregateStore);\n container.provide(InMemoryListViewStore);\n }\n}\nfunction initializeListView() {\n new DomainInitializer(new ListViewApiModule(), new ListViewDomainModule()).init();\n}\n\nfunction provideStructureCommandInvoker() {\n return CoreContainer.resolve(StructurePublisher);\n}\nfunction provideStructureWarehouse() {\n return CoreContainer.resolve(StructureWarehouse);\n}\nfunction provideStructureInitialValuesReadyArchive() {\n return CoreContainer.resolve(StructureInitialValuesReadyArchive);\n}\nconst structureProviders = [\n { provide: StructurePublisher, useFactory: provideStructureCommandInvoker },\n { provide: StructureWarehouse, useFactory: provideStructureWarehouse },\n { provide: StructureInitialValuesReadyArchive, useFactory: provideStructureInitialValuesReadyArchive }\n];\nfunction createStructureDefinition() {\n return new StructureDefinition.DefaultBuilder().build();\n}\nconst icons = [\n StructureArrowIconModule,\n StructureMenuIconModule\n];\nconst imports$1 = [\n CommonModule,\n ReactiveFormsModule,\n TranslationFeatureModule,\n GuiTemplateModule,\n // .withConfig({\n // \tloggers: false\n // }),\n fabricImports,\n ResizeDetectorModule,\n PagingFeatureModule,\n SortingFeatureModule,\n FieldFeatureModule,\n FormationFeatureModule,\n SearchFeatureModule,\n FilterMenuFeatureModule,\n SourceFeatureModule,\n SummariesFeatureModule,\n VerticalFormationFeatureModule,\n SchemaFeatureModule,\n StructureSharedModule,\n StructureInfoPanelModule,\n StructureTopPanelModule,\n StructureColumnMenuModule,\n StructureColumnManagerModule,\n SchemaManagerModule,\n EmptySourceFeatureModule,\n CompositionFeatureModule,\n LoggerModule,\n SanitizeModule,\n icons\n];\nconst declarations$1 = [\n StructureComponent,\n StructureHeaderComponent,\n StructureHeaderColumnsComponent,\n StructureHeaderGroupsComponent,\n StructureHeaderFiltersComponent,\n StructureHeaderFilterComponent,\n StructureContentComponent,\n StructureRowComponent,\n StructureCellComponent,\n StructureCellEditComponent,\n StructureCellEditBooleanComponent,\n StructureContainerComponent,\n StructureQuickFiltersComponent,\n StructureBlueprintComponent,\n StructureRowDetailViewComponent,\n StructureTitlePanelComponent,\n StructureFooterPanelComponent,\n structureGates\n];\nconst exportDeclarations$1 = [\n FabricModule,\n StructureComponent,\n StructureHeaderComponent,\n StructureContentComponent,\n StructureRowComponent,\n StructureContainerComponent,\n fabricImports,\n PagingFeatureModule,\n structureGates\n];\nfunction provideStructureCellEditArchive() {\n return CoreContainer.resolve(StructureCellEditArchive);\n}\nfunction provideFabricModalThemeService() {\n return CoreContainer.resolve(FabricModalThemeService);\n}\ninitializeListView();\ninitializeStructure();\nclass GridViewFeatureModule {\n platformId;\n static HERMES_API = 'hermesApi';\n static exportDeclarations = Array.from(exportDeclarations$1);\n static withConfig(structureConfig = {\n cssClassName: '',\n hermesModuleConfig: { loggers: false }\n }) {\n return {\n ngModule: GridViewFeatureModule,\n providers: [\n {\n provide: STRUCTURE_CSS_CLASS_NAME,\n useValue: structureConfig.cssClassName\n },\n { provide: COMMAND_LOGGER_ENABLED, useValue: structureConfig.hermesModuleConfig.loggers },\n { provide: EVENT_LOGGER_ENABLED, useValue: structureConfig.hermesModuleConfig.loggers },\n {\n provide: STRUCTURE_CSS_CLASS_NAME,\n useValue: 'structure'\n },\n {\n provide: StructureDefinition,\n useFactory: createStructureDefinition\n },\n ItemFactory,\n StructureThemeConverter,\n StructureIdGenerator,\n { provide: StructureCellEditArchive, useFactory: provideStructureCellEditArchive },\n { provide: FabricModalThemeService, useFactory: provideFabricModalThemeService },\n structureProviders\n ]\n };\n }\n constructor(platformId) {\n this.platformId = platformId;\n runHermes();\n if (isPlatformBrowser(this.platformId)) {\n initHermesApi();\n window[GridViewFeatureModule.HERMES_API].loggers = false;\n }\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: GridViewFeatureModule, deps: [{ token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.NgModule });\n static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"17.0.2\", ngImport: i0, type: GridViewFeatureModule, declarations: [StructureComponent,\n StructureHeaderComponent,\n StructureHeaderColumnsComponent,\n StructureHeaderGroupsComponent,\n StructureHeaderFiltersComponent,\n StructureHeaderFilterComponent,\n StructureContentComponent,\n StructureRowComponent,\n StructureCellComponent,\n StructureCellEditComponent,\n StructureCellEditBooleanComponent,\n StructureContainerComponent,\n StructureQuickFiltersComponent,\n StructureBlueprintComponent,\n StructureRowDetailViewComponent,\n StructureTitlePanelComponent,\n StructureFooterPanelComponent, StructureColumnHeaderGate, StructurePagingGate, StructureSearchingGate, StructureSelectionGate, StructureL10nGate, StructurePanelGate, StructureRowDetailGate, StructureColumnMenuGate, StructureSummariesGate, StructureInfoPanelGate, StructureRowClassGate, StructureRowStyleGate, StructureRowColoringGate, ThemeGridGate, StructureSortingGate, SourceLoadingGate, StructureFilterGate, StructureQuickFiltersGate, VerticalFormationGate], imports: [CommonModule,\n ReactiveFormsModule,\n TranslationFeatureModule,\n GuiTemplateModule, i1$1.FabricBadgeModule, i1$1.FabricButtonModule, i1$1.FabricButtonGroupModule, i1$1.FabricCheckboxModule, i1$1.FabricChipModule, i1$1.FabricDrawerModule, i1$1.FabricDropdownModule, i1$1.FabricRadioButtonModule, i1$1.FabricRadioGroupModule, i1$1.FabricProgressBarModule, i1$1.FabricProgressSpinnerModule, i1$1.FabricSelectModule, i1$1.FabricSpinnerModule, i1$1.FabricTabModule, i1$1.FabricTooltipModule, i1$1.FabricToggleButtonModule, i1$1.FabricInputModule, i1$1.FabricDialogModule, i1$1.FabricInlineDialogModule, i1$1.FabricTabModule, ResizeDetectorModule,\n PagingFeatureModule,\n SortingFeatureModule,\n FieldFeatureModule,\n FormationFeatureModule,\n SearchFeatureModule,\n FilterMenuFeatureModule,\n SourceFeatureModule,\n SummariesFeatureModule,\n VerticalFormationFeatureModule,\n SchemaFeatureModule,\n StructureSharedModule,\n StructureInfoPanelModule,\n StructureTopPanelModule,\n StructureColumnMenuModule,\n StructureColumnManagerModule,\n SchemaManagerModule,\n EmptySourceFeatureModule,\n CompositionFeatureModule,\n LoggerModule,\n SanitizeModule, StructureArrowIconModule,\n StructureMenuIconModule], exports: [FabricModule,\n StructureComponent,\n StructureHeaderComponent,\n StructureContentComponent,\n StructureRowComponent,\n StructureContainerComponent, i1$1.FabricBadgeModule, i1$1.FabricButtonModule, i1$1.FabricButtonGroupModule, i1$1.FabricCheckboxModule, i1$1.FabricChipModule, i1$1.FabricDrawerModule, i1$1.FabricDropdownModule, i1$1.FabricRadioButtonModule, i1$1.FabricRadioGroupModule, i1$1.FabricProgressBarModule, i1$1.FabricProgressSpinnerModule, i1$1.FabricSelectModule, i1$1.FabricSpinnerModule, i1$1.FabricTabModule, i1$1.FabricTooltipModule, i1$1.FabricToggleButtonModule, i1$1.FabricInputModule, i1$1.FabricDialogModule, i1$1.FabricInlineDialogModule, i1$1.FabricTabModule, PagingFeatureModule, StructureColumnHeaderGate, StructurePagingGate, StructureSearchingGate, StructureSelectionGate, StructureL10nGate, StructurePanelGate, StructureRowDetailGate, StructureColumnMenuGate, StructureSummariesGate, StructureInfoPanelGate, StructureRowClassGate, StructureRowStyleGate, StructureRowColoringGate, ThemeGridGate, StructureSortingGate, SourceLoadingGate, StructureFilterGate, StructureQuickFiltersGate, VerticalFormationGate] });\n static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: GridViewFeatureModule, imports: [imports$1, FabricModule, i1$1.FabricBadgeModule, i1$1.FabricButtonModule, i1$1.FabricButtonGroupModule, i1$1.FabricCheckboxModule, i1$1.FabricChipModule, i1$1.FabricDrawerModule, i1$1.FabricDropdownModule, i1$1.FabricRadioButtonModule, i1$1.FabricRadioGroupModule, i1$1.FabricProgressBarModule, i1$1.FabricProgressSpinnerModule, i1$1.FabricSelectModule, i1$1.FabricSpinnerModule, i1$1.FabricTabModule, i1$1.FabricTooltipModule, i1$1.FabricToggleButtonModule, i1$1.FabricInputModule, i1$1.FabricDialogModule, i1$1.FabricInlineDialogModule, i1$1.FabricTabModule, PagingFeatureModule] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: GridViewFeatureModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [\n imports$1\n ],\n declarations: declarations$1,\n exports: exportDeclarations$1\n }]\n }], ctorParameters: () => [{ type: undefined, decorators: [{\n type: Inject,\n args: [PLATFORM_ID]\n }] }] });\n\nclass GuiGridIdGenerator {\n static PREFIX = 'gui-grid-';\n static index = 0;\n generateId() {\n GuiGridIdGenerator.index++;\n return GuiGridIdGenerator.PREFIX + GuiGridIdGenerator.index;\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: GuiGridIdGenerator, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: GuiGridIdGenerator });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: GuiGridIdGenerator, decorators: [{\n type: Injectable\n }] });\n\nconst imports = [\n GridViewFeatureModule.withConfig({\n cssClassName: 'grid',\n hermesModuleConfig: {\n loggers: true\n }\n })\n];\nconst declarations = [\n GuiGridComponent,\n GuiGridColumnComponent\n];\nconst providers = [\n GuiGridIdGenerator,\n GuiGridRegister\n];\nconst exportDeclarations = [\n GuiGridComponent,\n GuiGridColumnComponent\n];\nconst elementComponents = [\n GuiGridComponent,\n GuiGridColumnComponent\n];\nclass GuiGridModule {\n static exportDeclarations = Array.from(exportDeclarations);\n static elementComponents = Array.from(elementComponents);\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: GuiGridModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\n static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"17.0.2\", ngImport: i0, type: GuiGridModule, declarations: [GuiGridComponent,\n GuiGridColumnComponent], imports: [GridViewFeatureModule], exports: [GuiGridComponent,\n GuiGridColumnComponent] });\n static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: GuiGridModule, providers: providers, imports: [imports] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.2\", ngImport: i0, type: GuiGridModule, decorators: [{\n type: NgModule,\n args: [{\n imports,\n declarations,\n providers,\n exports: exportDeclarations\n }]\n }] });\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { GuiBooleanCellView, GuiCellView, GuiColumnAlign, GuiDataType, GuiDateCellView, GuiDefaultTranslation, GuiGridColumnComponent, GuiGridComponent, GuiGridModule, GuiNumberCellView, GuiPagingDisplay, GuiRowColoring, GuiRowSelectionMode, GuiRowSelectionType, GuiSortingOrder, GuiStringCellView, GuiTheme };\n"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}