{"version":3,"file":"generic-ui-ngx-grid.mjs","sources":["../../build-cli/projects/ngx-grid/src/core/l10n/src/core/lang/en.ts","../../build-cli/projects/ngx-grid/src/core/l10n/src/api/default-translation.ts","../../build-cli/projects/ngx-grid/src/gui/grid/src/core/api/gui.grid.public-api.ts","../../build-cli/projects/ngx-grid/src/core/structure/field/src/domain/field/data/data-type.ts","../../build-cli/projects/ngx-grid/src/gui/grid/src/feature/column/gui.grid.column-type.converter.ts","../../build-cli/projects/ngx-grid/src/core/structure/summaries/src/domain/summaries.type.ts","../../build-cli/projects/ngx-grid/src/gui/grid/src/feature/column/summaries/gui.grid.column-summaries.converter.ts","../../build-cli/projects/ngx-grid/src/core/composition/src/domain/column/cell-view.ts","../../build-cli/projects/ngx-grid/src/gui/grid/src/feature/column/gui.grid.column-view.converter.ts","../../build-cli/projects/ngx-grid/src/gui/grid/src/feature/column/sorting/gui.grid.column-sorting.converter.ts","../../build-cli/projects/ngx-grid/src/gui/grid/src/feature/column/cell-editing/gui.grid.column-cell-editing.converter.ts","../../build-cli/projects/ngx-grid/src/core/composition/src/domain/column/column-align.ts","../../build-cli/projects/ngx-grid/src/gui/grid/src/feature/column/align/gui.grid.column-align.converter.ts","../../build-cli/projects/ngx-grid/src/gui/grid/src/feature/column/gui.grid.column.converter.ts","../../build-cli/projects/ngx-grid/src/core/schema/src/api/theme/schema-theme.ts","../../build-cli/projects/ngx-grid/src/gui/grid/src/feature/theme/gui.grid.theme.converter.ts","../../build-cli/projects/ngx-grid/src/core/schema/src/api/row-coloring/row-coloring.ts","../../build-cli/projects/ngx-grid/src/gui/grid/src/feature/theme/coloring/gui.grid.row-coloring.converter.ts","../../build-cli/projects/ngx-grid/src/gui/grid/src/feature/column/menu/gui.grid.column-menu.converter.ts","../../build-cli/projects/ngx-grid/src/feature/structure/paging/src/mode/paging-display-mode.ts","../../build-cli/projects/ngx-grid/src/gui/grid/src/feature/paging/gui.grid.paging.converter.ts","../../build-cli/projects/ngx-grid/src/core/common/src/cdk/generic-builder.ts","../../build-cli/projects/ngx-grid/src/core/structure/formation/src/api/row-selected/row-selection.ts","../../build-cli/projects/ngx-grid/src/core/structure/formation/src/api/custom/formation.custom-selection.config.ts","../../build-cli/projects/ngx-grid/src/gui/grid/src/feature/row-selection/gui.grid.row-selection.converter.ts","../../build-cli/projects/ngx-grid/src/gui/grid/src/feature/column/gui.grid-column.component.ts","../../build-cli/projects/ngx-grid/src/gui/grid/src/feature/column/cell-editing/gui.grid.cell-edit.converter.ts","../../build-cli/projects/ngx-grid/src/feature/common/component/src/check.input.ts","../../build-cli/projects/ngx-grid/src/gui/grid/src/feature/gui.grid-gateway.ts","../../build-cli/projects/ngx-grid/src/feature-view/grid-view/src/structure/parent/structure-parent-component.ts","../../build-cli/projects/ngx-grid/src/core/structure/formation/src/api/row-selected/selected-row.ts","../../build-cli/projects/ngx-grid/src/gui/grid/src/feature/api/gui.grid.api-provider.ts","../../build-cli/projects/ngx-grid/src/gui/grid/src/feature/theme/gui.grid.theme.command-invoker.ts","../../build-cli/projects/ngx-grid/src/feature/common/component/src/dom/core/modifier.ts","../../build-cli/projects/ngx-grid/src/feature/common/component/src/dom/class/class-modifier.ts","../../build-cli/projects/ngx-grid/src/feature/common/component/src/dom/attribute/attribute-modifier.ts","../../build-cli/projects/ngx-grid/src/feature/structure/paging/src/paging-definition.ts","../../build-cli/projects/ngx-grid/src/feature-view/grid-view/src/structure/structure-definition.ts","../../build-cli/projects/ngx-grid/src/gui/grid/src/feature/gui.grid-structure-definition.ts","../../build-cli/projects/ngx-grid/src/gui/grid/src/feature/register/gui.grid.register.ts","../../build-cli/projects/ngx-grid/src/feature-view/grid-view/src/structure/structure-id.generator.ts","../../build-cli/projects/ngx-grid/src/core/structure/formation/src/api/formation.publisher.ts","../../build-cli/projects/ngx-grid/src/core/structure/formation/src/api/formation.warehouse.ts","../../build-cli/projects/ngx-grid/src/core/composition/src/api/composition.publisher.ts","../../build-cli/projects/ngx-grid/src/core/composition/src/api/composition.warehouse.ts","../../build-cli/projects/ngx-grid/src/core/structure/filter/src/api/filter.warehouse.ts","../../build-cli/projects/ngx-grid/src/core/structure/field/src/domain/field/field.id.ts","../../build-cli/projects/ngx-grid/src/core/structure/filter/src/api/filter.publisher.ts","../../build-cli/projects/ngx-grid/src/core/structure/filter/src/api-integration/filter.integration.ts","../../build-cli/projects/ngx-grid/src/core/structure/source/src/api/source.publisher.ts","../../build-cli/projects/ngx-grid/src/core/structure/search/src/api/search.publisher.ts","../../build-cli/projects/ngx-grid/src/core/schema/src/api/schema.publisher.ts","../../build-cli/projects/ngx-grid/src/core/structure/structure-core/src/api/structure.publisher.ts","../../build-cli/projects/ngx-grid/src/core/structure/summaries/src/api/summaries.publisher.ts","../../build-cli/projects/ngx-grid/src/core/structure/sorting/src/api/sorting.publisher.ts","../../build-cli/projects/ngx-grid/src/core/structure/paging/src/api/paging.publisher.ts","../../build-cli/projects/ngx-grid/src/core/structure/structure-core/src/api/read/structure.read-model-root-id.ts","../../build-cli/projects/ngx-grid/src/core/structure/structure-core/src/api/global/structure.id.ts","../../build-cli/projects/ngx-grid/src/core/composition/src/api/global/composition.read-model-root-id.ts","../../build-cli/projects/ngx-grid/src/core/composition/src/api/global/composition.id.ts","../../build-cli/projects/ngx-grid/src/core/schema/src/api/row-coloring/schema-row-coloring.ts","../../build-cli/projects/ngx-grid/src/core/schema/src/api/schema.warehouse.ts","../../build-cli/projects/ngx-grid/src/feature-view/grid-view/src/schema/schema-css-class.manager.ts","../../build-cli/projects/ngx-grid/src/feature-view/grid-view/src/edit/structure.cell-edit.store.ts","../../build-cli/projects/ngx-grid/src/feature-view/grid-view/src/edit/structure.edit-mode.archive.ts","../../build-cli/projects/ngx-grid/src/core/structure/structure-core/src/api/panel/info/structure.info-panel.config.ts","../../build-cli/projects/ngx-grid/src/core/structure/structure-core/src/api/panel/info/structure.info-panel.archive.ts","../../build-cli/projects/ngx-grid/src/feature-view/grid-view/src/structure/structure-component-token.ts","../../build-cli/projects/ngx-grid/src/feature/common/component/src/gui-component.ts","../../build-cli/projects/ngx-grid/src/feature/common/component/src/smart-component.ts","../../build-cli/projects/ngx-grid/src/feature-view/grid-view/src/edit/structure.cell-edit.state.ts","../../build-cli/projects/ngx-grid/src/core/structure/structure-core/src/core/structure.command.ts","../../build-cli/projects/ngx-grid/src/core/structure/field/src/core/init/init-fields.command.ts","../../build-cli/projects/ngx-grid/src/core/structure/structure-core/src/core/structure.domain-event.ts","../../build-cli/projects/ngx-grid/src/core/structure/field/src/core/init/fields-inited.event.ts","../../build-cli/projects/ngx-grid/src/core/composition/src/domain/column/field/column-field.id.ts","../../build-cli/projects/ngx-grid/src/core/composition/src/core/column/set-columns/column.params.ts","../../build-cli/projects/ngx-grid/src/feature-view/grid-view/src/structure/gate/column/structure-column.input-handler.ts","../../build-cli/projects/ngx-grid/src/core/composition/src/api/column/auto/column-auto.configurator.ts","../../build-cli/projects/ngx-grid/src/core/schema/src/core/schema.id.ts","../../build-cli/projects/ngx-grid/src/core/schema/src/api/global/schema.read-model-root-id.ts","../../build-cli/projects/ngx-grid/src/core/structure/paging/src/api/paging.event-repository.ts","../../build-cli/projects/ngx-grid/src/core/structure/source/src/api/edit/edited-item.model.ts","../../build-cli/projects/ngx-grid/src/core/structure/source/src/core/origin/edit/structure.source-item-edited.event.ts","../../build-cli/projects/ngx-grid/src/core/structure/source/src/api/edit/source-event.service.ts","../../build-cli/projects/ngx-grid/src/core/composition/src/api/composition.event-repository.ts","../../build-cli/projects/ngx-grid/src/core/structure/source/src/api/source.warehouse.ts","../../build-cli/projects/ngx-grid/src/core/structure/formation/src/core/selected-row-changed.event.ts","../../build-cli/projects/ngx-grid/src/core/structure/formation/src/api/formation.event-repository.ts","../../build-cli/projects/ngx-grid/src/core/structure/structure-core/src/domain/edit/cell-editor.manager.ts","../../build-cli/projects/ngx-grid/src/feature-view/grid-view/src/edit/structure.cell-edit.archive.ts","../../build-cli/projects/ngx-grid/src/core/structure/structure-core/src/api/panel/info/structure.info-panel.config-converter.ts","../../build-cli/projects/ngx-grid/src/feature-view/grid-view/src/structure/gate/panel/info/structure.info-panel-config.service.ts","../../build-cli/projects/ngx-grid/src/core/composition/src/domain/column/field/column-field.ts","../../build-cli/projects/ngx-grid/src/core/composition/src/domain/column/field/colum-field.factory.ts","../../build-cli/projects/ngx-grid/src/core/structure/search/src/api/search.event-repository.ts","../../build-cli/projects/ngx-grid/src/feature-view/grid-view/src/header/structure-header-bottom-enabled.archive.ts","../../build-cli/projects/ngx-grid/src/core/schema/src/api/schema.event-repository.ts","../../build-cli/projects/ngx-grid/src/core/l10n/src/api/translation.facade.ts","../../build-cli/projects/ngx-grid/src/core/structure/structure-core/src/api/ready/structure.initial-values-ready.archive.ts","../../build-cli/projects/ngx-grid/src/feature-view/grid-view/src/structure/gate/structure.gateway.ts","../../build-cli/projects/ngx-grid/src/feature-view/grid-view/src/header/menu/config/structure.column-menu-config.ts","../../build-cli/projects/ngx-grid/src/feature-view/grid-view/src/header/menu/config/structure.column-menu-config.archive.ts","../../build-cli/projects/ngx-grid/src/feature-view/grid-view/src/edit/structure.cell-edit-close-all.service.ts","../../build-cli/projects/ngx-grid/src/feature-view/grid-view/src/header/structure-header-top-enabled.archive.ts","../../build-cli/projects/ngx-grid/src/feature-view/grid-view/src/row-detail/structure.row-detail.config-archive.ts","../../build-cli/projects/ngx-grid/src/feature-view/grid-view/src/row-detail/view/structure.row-detail-view.tokens.ts","../../build-cli/projects/ngx-grid/src/feature/common/component/src/dynamically-created-component.ts","../../build-cli/projects/ngx-grid/src/feature-view/grid-view/src/row-detail/view/structure.row-detail-view.component.ts","../../build-cli/projects/ngx-grid/src/feature-view/grid-view/src/row-detail/view/structure.row-detail-view.component.html","../../build-cli/projects/ngx-grid/src/feature-view/grid-view/src/row-detail/structure.row-detail.service.ts","../../build-cli/projects/ngx-grid/src/feature/structure/paging/src/paging-position.ts","../../build-cli/projects/ngx-grid/src/feature/structure/common/src/css-class/css-class.ts","../../build-cli/projects/ngx-grid/src/feature/gui-angular/state/gui.state.ts","../../build-cli/projects/ngx-grid/src/core/common/src/cdk/reactive/stream-closer.ts","../../build-cli/projects/ngx-grid/src/feature/common/component/src/gate.ts","../../build-cli/projects/ngx-grid/src/feature/common/component/src/static-component.ts","../../build-cli/projects/ngx-grid/src/feature/common/component/src/icon-component.ts","../../build-cli/projects/ngx-grid/src/feature/common/component/src/ng-changes.ts","../../build-cli/projects/ngx-grid/src/feature/common/component/src/pure-component.ts","../../build-cli/projects/ngx-grid/src/feature/common/component/src/functional/reactive-context.ts","../../build-cli/projects/ngx-grid/src/feature/structure/common/src/css-class/css-class.modifier.ts","../../build-cli/projects/ngx-grid/src/core/structure/paging/src/api/paging.warehouse.ts","../../build-cli/projects/ngx-grid/src/feature/structure/paging/src/mode/paging-display-mode.archive.ts","../../build-cli/projects/ngx-grid/src/feature/gui-angular/template/gui.subscriber.ts","../../build-cli/projects/ngx-grid/src/feature/gui-angular/template/let/gui.let-view-chager.ts","../../build-cli/projects/ngx-grid/src/feature/gui-angular/template/let/gui.let.directive.ts","../../build-cli/projects/ngx-grid/src/feature/l10n/src/translation.pipe.ts","../../build-cli/projects/ngx-grid/src/feature/structure/paging/src/basic/navigator/paging-navigator.component.ts","../../build-cli/projects/ngx-grid/src/feature/structure/paging/src/basic/navigator/paging-navigator.component.html","../../build-cli/projects/ngx-grid/src/feature/structure/paging/src/select/paging-select.component.ts","../../build-cli/projects/ngx-grid/src/feature/structure/paging/src/select/paging-select.component.html","../../build-cli/projects/ngx-grid/src/feature/structure/paging/src/basic/stats/paging-stats.component.ts","../../build-cli/projects/ngx-grid/src/feature/structure/paging/src/basic/stats/paging-stats.component.html","../../build-cli/projects/ngx-grid/src/feature/structure/paging/src/advanced/navigator/alternative-paging-navigator.component.ts","../../build-cli/projects/ngx-grid/src/feature/structure/paging/src/advanced/navigator/alternative-paging-navigator.component.html","../../build-cli/projects/ngx-grid/src/feature/structure/paging/src/advanced/pages/alternative-paging-pages.component.ts","../../build-cli/projects/ngx-grid/src/feature/structure/paging/src/advanced/pages/alternative-paging-pages.component.html","../../build-cli/projects/ngx-grid/src/feature/structure/paging/src/paging.component.ts","../../build-cli/projects/ngx-grid/src/feature/structure/paging/src/paging.component.html","../../build-cli/projects/ngx-grid/src/feature/common/cdk/src/logger/logger.ts","../../build-cli/projects/ngx-grid/src/core/structure/paging/src/core/page/page-changed.event.ts","../../build-cli/projects/ngx-grid/src/core/structure/structure-core/src/core/structure.aggregate-event.ts","../../build-cli/projects/ngx-grid/src/core/structure/paging/src/core/page/page-changed.aggregate-event.ts","../../build-cli/projects/ngx-grid/src/core/structure/paging/src/core/change-pagesize/pagesize-changed.event.ts","../../build-cli/projects/ngx-grid/src/core/structure/paging/src/core/pagesize/pagesize-changed.aggregate-event.ts","../../build-cli/projects/ngx-grid/src/core/structure/paging/src/domain/paging.manager.ts","../../build-cli/projects/ngx-grid/src/core/structure/paging/src/domain/paging.manager-factory.ts","../../build-cli/projects/ngx-grid/src/core/structure/paging/src/core/set/set-paging.command.ts","../../build-cli/projects/ngx-grid/src/core/structure/paging/src/core/change-pagesize/change-pagesize.command.ts","../../build-cli/projects/ngx-grid/src/core/structure/paging/src/core/next-page/next-page.command.ts","../../build-cli/projects/ngx-grid/src/core/structure/paging/src/core/prev-page/prev-page.command.ts","../../build-cli/projects/ngx-grid/src/core/structure/paging/src/core/paging.dispatcher.ts","../../build-cli/projects/ngx-grid/src/core/structure/paging/src/core/set/paging-set.event.ts","../../build-cli/projects/ngx-grid/src/core/structure/paging/src/core/set/set-paging.command-handler.ts","../../build-cli/projects/ngx-grid/src/core/structure/paging/src/core/next-page/next-page.event.ts","../../build-cli/projects/ngx-grid/src/core/structure/paging/src/core/next-page/next-page.command-handler.ts","../../build-cli/projects/ngx-grid/src/core/structure/paging/src/core/prev-page/prev-page.event.ts","../../build-cli/projects/ngx-grid/src/core/structure/paging/src/core/prev-page/prev-page.command-handler.ts","../../build-cli/projects/ngx-grid/src/core/structure/paging/src/core/change-pagesize/change-pagesize.command-handler.ts","../../build-cli/projects/ngx-grid/src/core/structure/structure-core/src/api/global/structre.key.ts","../../build-cli/projects/ngx-grid/src/core/structure/paging/src/core/paging.domain-module.ts","../../build-cli/projects/ngx-grid/src/core/structure/paging/src/api/model/paging.model.ts","../../build-cli/projects/ngx-grid/src/core/structure/paging/src/core-read/paging.converter.ts","../../build-cli/projects/ngx-grid/src/core/structure/structure-core/src/api/read/structure.read-model-repository.ts","../../build-cli/projects/ngx-grid/src/core/structure/paging/src/core-read/paging.repository.ts","../../build-cli/projects/ngx-grid/src/core/structure/paging/src/core-read/paging.domain-warehouse.ts","../../build-cli/projects/ngx-grid/src/core/structure/paging/src/core/paging.domain-publisher.ts","../../build-cli/projects/ngx-grid/src/core/structure/paging/src/core-read/paging.domain.event-repository.ts","../../build-cli/projects/ngx-grid/src/core/structure/paging/src/api/paging.api-module.ts","../../build-cli/projects/ngx-grid/src/core/l10n/src/core/dictionary.ts","../../build-cli/projects/ngx-grid/src/core/l10n/src/core/translation.domain-facade.ts","../../build-cli/projects/ngx-grid/src/feature/l10n/src/translation.feature-module.ts","../../build-cli/projects/ngx-grid/src/feature/gui-angular/template/push/gui.push-subscriber.ts","../../build-cli/projects/ngx-grid/src/feature/gui-angular/template/push/gui.push.pipe.ts","../../build-cli/projects/ngx-grid/src/feature/gui-angular/template/if/gui.if.directive.ts","../../build-cli/projects/ngx-grid/src/feature/gui-angular/template/for/gui.for.directive.ts","../../build-cli/projects/ngx-grid/src/feature/gui-angular/template/style/gui.style.directive.ts","../../build-cli/projects/ngx-grid/src/feature/gui-angular/template/class/gui.class.manager.ts","../../build-cli/projects/ngx-grid/src/feature/gui-angular/template/class/gui.class.directive.ts","../../build-cli/projects/ngx-grid/src/feature/gui-angular/template/gui.template.module.ts","../../build-cli/projects/ngx-grid/src/feature/structure/paging/src/paging.feature-module.ts","../../build-cli/projects/ngx-grid/src/feature-view/grid-view/src/panel/banner-panels/title-panel/structure.title-panel.config-archive.ts","../../build-cli/projects/ngx-grid/src/feature-view/grid-view/src/panel/banner-panels/footer-panel/structure.footer-panel.config-archive.ts","../../build-cli/projects/ngx-grid/src/core/structure/filter/src/api/config/filter-container-token.ts","../../build-cli/projects/ngx-grid/src/feature/common/component/src/dom/style/style-name.ts","../../build-cli/projects/ngx-grid/src/feature/common/component/src/dom/style/style-modifier.ts","../../build-cli/projects/ngx-grid/src/core/structure/field/src/api/field.publisher.ts","../../build-cli/projects/ngx-grid/src/core/structure/structure-core/src/api/structure.warehouse.ts","../../build-cli/projects/ngx-grid/src/core/structure/search/src/api/search.warehouse.ts","../../build-cli/projects/ngx-grid/src/feature-view/grid-view/src/blueprint/structure-tokens.ts","../../build-cli/projects/ngx-grid/src/core/structure/summaries/src/api/summaries.warehouse.ts","../../build-cli/projects/ngx-grid/src/feature/structure/summaries/src/structure.summaries-translations.ts","../../build-cli/projects/ngx-grid/src/core/composition/src/domain/column/sort/sort-order.ts","../../build-cli/projects/ngx-grid/src/core/composition/src/core-read/definition/cell-template-with-context.ts","../../build-cli/projects/ngx-grid/src/feature/composition/src/column/composition.template.model.ts","../../build-cli/projects/ngx-grid/src/core/composition/src/core-read/definition/cell-value.ts","../../build-cli/projects/ngx-grid/src/core/composition/src/core-read/definition/cell-template-with-accessor.ts","../../build-cli/projects/ngx-grid/src/feature/composition/src/column/composition.accessor.model.ts","../../build-cli/projects/ngx-grid/src/core/composition/src/core/composition.events.ts","../../build-cli/projects/ngx-grid/src/core/composition/src/core/composition.domain-event.ts","../../build-cli/projects/ngx-grid/src/core/composition/src/core/width/resize-width/composition-resize-width-set.event.ts","../../build-cli/projects/ngx-grid/src/core/composition/src/core/column/set-columns/composition.columns-set.event.ts","../../build-cli/projects/ngx-grid/src/core/composition/src/core/width/set-container-width/composition-container-width-set.event.ts","../../build-cli/projects/ngx-grid/src/core/composition/src/core/width/set-width/composition-width-set.event.ts","../../build-cli/projects/ngx-grid/src/core/composition/src/core/column/set-enabled/composition.column-set-enabled.event.ts","../../build-cli/projects/ngx-grid/src/core/composition/src/core/column/move/left/composition.column-moved-left.event.ts","../../build-cli/projects/ngx-grid/src/core/composition/src/core/column/move/right/composition.column-moved-right.event.ts","../../build-cli/projects/ngx-grid/src/core/composition/src/core/group/set-groups/composition.groups-set.event.ts","../../build-cli/projects/ngx-grid/src/core/composition/src/core/composition.event-converter.ts","../../build-cli/projects/ngx-grid/src/core/composition/src/core/composition.command.ts","../../build-cli/projects/ngx-grid/src/core/composition/src/core/column/set-columns/set-columns.command.ts","../../build-cli/projects/ngx-grid/src/core/composition/src/core/column/set-columns/set-columns.command-handler.ts","../../build-cli/projects/ngx-grid/src/core/composition/src/core/width/set-width/set-composition-width.command.ts","../../build-cli/projects/ngx-grid/src/core/composition/src/core/width/set-width/set-composition-width.command-handler.ts","../../build-cli/projects/ngx-grid/src/core/composition/src/core/width/resize-width/set-composition-resize-width.command.ts","../../build-cli/projects/ngx-grid/src/core/composition/src/core/width/resize-width/set-composition-resize-width.command-handler.ts","../../build-cli/projects/ngx-grid/src/core/composition/src/core/width/set-container-width/set-composition-container-width.command.ts","../../build-cli/projects/ngx-grid/src/core/composition/src/core/width/set-container-width/set-composition-container-width.command-handler.ts","../../build-cli/projects/ngx-grid/src/core/composition/src/core/column/set-enabled/composition.set-column-enabled.command.ts","../../build-cli/projects/ngx-grid/src/core/composition/src/core/column/set-enabled/composition.set-column-enabled.command-handler.ts","../../build-cli/projects/ngx-grid/src/core/composition/src/core/column/sort/composition-change-sort-status.command.ts","../../build-cli/projects/ngx-grid/src/core/composition/src/core/column/sort/composition-change-sort-status.event.ts","../../build-cli/projects/ngx-grid/src/core/composition/src/core/column/sort/composition-change-sort-status.command-handler.ts","../../build-cli/projects/ngx-grid/src/core/composition/src/core/column/move/left/composition.move-left-column.command.ts","../../build-cli/projects/ngx-grid/src/core/composition/src/core/column/move/left/composition.move-left-column.command-handler.ts","../../build-cli/projects/ngx-grid/src/core/composition/src/core/column/move/right/composition.move-right-column.command.ts","../../build-cli/projects/ngx-grid/src/core/composition/src/core/column/move/right/composition.move-right-column.command-handler.ts","../../build-cli/projects/ngx-grid/src/core/structure/sorting/src/core/toggle/sort-toggled.event.ts","../../build-cli/projects/ngx-grid/src/core/composition/src/core/create/create-composition.command.ts","../../build-cli/projects/ngx-grid/src/core/composition/src/core/group/set-groups/set-groups.command.ts","../../build-cli/projects/ngx-grid/src/core/composition/src/core/composition.dispatcher.ts","../../build-cli/projects/ngx-grid/src/core/composition/src/domain/column/sort/change-sort.params.ts","../../build-cli/projects/ngx-grid/src/core/structure/sorting/src/core/order/sort-order-set.event.ts","../../build-cli/projects/ngx-grid/src/core/composition/src/core/column/sort/composition-change-sort-status.event-handler.ts","../../build-cli/projects/ngx-grid/src/core/composition/src/domain/column/view.entity.ts","../../build-cli/projects/ngx-grid/src/core/composition/src/domain/column/abstract-column.entity.ts","../../build-cli/projects/ngx-grid/src/core/composition/src/domain/column/column.entity.ts","../../build-cli/projects/ngx-grid/src/core/composition/src/api/column/column.id.ts","../../build-cli/projects/ngx-grid/src/core/composition/src/domain/column/presentation/column.presentation.ts","../../build-cli/projects/ngx-grid/src/core/composition/src/domain/column/presentation/data-type/number-column.presentation.ts","../../build-cli/projects/ngx-grid/src/core/composition/src/domain/column/presentation/data-type/boolean-column.presentation.ts","../../build-cli/projects/ngx-grid/src/core/composition/src/domain/column/presentation/data-type/date-column.presentation.ts","../../build-cli/projects/ngx-grid/src/core/composition/src/domain/column/presentation/data-type/string-column.presentation.ts","../../build-cli/projects/ngx-grid/src/core/composition/src/domain/column/presentation/data-type/unknown-column.presentation.ts","../../build-cli/projects/ngx-grid/src/core/composition/src/domain/column/presentation/column.presentation.converter.ts","../../build-cli/projects/ngx-grid/src/core/composition/src/domain/column/column-entity.factory.ts","../../build-cli/projects/ngx-grid/src/core/composition/src/api/group/group.ts","../../build-cli/projects/ngx-grid/src/core/composition/src/api/group/group.id.ts","../../build-cli/projects/ngx-grid/src/core/composition/src/core/group/composition.group.factory.ts","../../build-cli/projects/ngx-grid/src/core/composition/src/core/group/set-groups/set-groups.command-handler.ts","../../build-cli/projects/ngx-grid/src/core/composition/src/domain/highlight/column-highlight.manager.ts","../../build-cli/projects/ngx-grid/src/core/composition/src/domain/highlight/column-highlight.archive.ts","../../build-cli/projects/ngx-grid/src/core/composition/src/persist/in-memory.composition.store.ts","../../build-cli/projects/ngx-grid/src/core/composition/src/persist/domain/in-memory.composition.aggregate-store.ts","../../build-cli/projects/ngx-grid/src/core/composition/src/core/composition.aggregate-repository.ts","../../build-cli/projects/ngx-grid/src/core/composition/src/persist/domain/in-memory.composition.aggregate-repository.ts","../../build-cli/projects/ngx-grid/src/core/composition/src/core-read/definition/cell-context.ts","../../build-cli/projects/ngx-grid/src/core/composition/src/core-read/definition/column-definition.ts","../../build-cli/projects/ngx-grid/src/core/composition/src/api/column/column-definition-id.ts","../../build-cli/projects/ngx-grid/src/core/composition/src/core-read/definition/column-definition.factory.ts","../../build-cli/projects/ngx-grid/src/core/composition/src/core-read/composition.read-mode-root.ts","../../build-cli/projects/ngx-grid/src/core/composition/src/core-read/composition.read-model-root-converter.ts","../../build-cli/projects/ngx-grid/src/core/composition/src/persist/api/in-memory.composition.read-store.ts","../../build-cli/projects/ngx-grid/src/core/composition/src/core-read/composition.read-model-root-repository.ts","../../build-cli/projects/ngx-grid/src/core/composition/src/core/create/composition-created.event.ts","../../build-cli/projects/ngx-grid/src/core/composition/src/persist/api/in-memory.composition.repository.ts","../../build-cli/projects/ngx-grid/src/core/composition/src/core/create/create-composition.command-handler.ts","../../build-cli/projects/ngx-grid/src/core/composition/src/domain/width/composition-container-width.calculator.ts","../../build-cli/projects/ngx-grid/src/core/composition/src/core/composition.aggregate-event.ts","../../build-cli/projects/ngx-grid/src/core/composition/src/core/width/set-width/composition-width-set.aggregate-event.ts","../../build-cli/projects/ngx-grid/src/core/composition/src/core/width/set-container-width/composition-container-width-set.aggregate-event.ts","../../build-cli/projects/ngx-grid/src/core/composition/src/core/width/resize-width/composition-resize-width-set.aggregate-event.ts","../../build-cli/projects/ngx-grid/src/core/composition/src/core/column/set-enabled/composition.column-set-enabled.aggregate-event.ts","../../build-cli/projects/ngx-grid/src/core/composition/src/domain/column/column-width/column-width-type.ts","../../build-cli/projects/ngx-grid/src/core/composition/src/domain/column/column-width/column-width.ts","../../build-cli/projects/ngx-grid/src/core/composition/src/domain/width/composition-width.calculator.ts","../../build-cli/projects/ngx-grid/src/core/composition/src/domain/column/column-width/column-width-collection.ts","../../build-cli/projects/ngx-grid/src/core/composition/src/core/column/sort/composition-change-sort-status.aggregate-event.ts","../../build-cli/projects/ngx-grid/src/core/composition/src/domain/column/active/active-column.container.ts","../../build-cli/projects/ngx-grid/src/core/composition/src/domain/column/active/active-column.entity.ts","../../build-cli/projects/ngx-grid/src/core/composition/src/domain/column/active/active-column.entity-converter.ts","../../build-cli/projects/ngx-grid/src/core/composition/src/core/column/move/left/composition.column-moved-left.aggregate-event.ts","../../build-cli/projects/ngx-grid/src/core/composition/src/core/column/move/right/composition.column-moved-right.aggregate-event.ts","../../build-cli/projects/ngx-grid/src/core/composition/src/core/column/set-columns/columns-set.aggregate-event.ts","../../build-cli/projects/ngx-grid/src/core/composition/src/core/create/composition-created.aggregate-event.ts","../../build-cli/projects/ngx-grid/src/core/composition/src/core/group/empty-group.ts","../../build-cli/projects/ngx-grid/src/core/composition/src/domain/composition.aggregate.ts","../../build-cli/projects/ngx-grid/src/core/composition/src/core/composition.aggregate-factory.ts","../../build-cli/projects/ngx-grid/src/core/composition/src/core/composition.domain-module.ts","../../build-cli/projects/ngx-grid/src/feature/composition/src/column/view/function/function-view.component.ts","../../build-cli/projects/ngx-grid/src/feature/composition/src/column/view/percentage/percentage-view.component.ts","../../build-cli/projects/ngx-grid/src/feature/composition/src/column/view/bar/bar-view.component.ts","../../build-cli/projects/ngx-grid/src/feature/common/cdk/src/sanitize/safe.pipe.ts","../../build-cli/projects/ngx-grid/src/feature/composition/src/column/view/text/text-view.component.ts","../../build-cli/projects/ngx-grid/src/feature/composition/src/column/view/html/html-view.component.ts","../../build-cli/projects/ngx-grid/src/feature/composition/src/column/view/view-templates.component.ts","../../build-cli/projects/ngx-grid/src/feature/composition/src/column/template/template.factory.ts","../../build-cli/projects/ngx-grid/src/feature/composition/src/column/view/view-template.factory.ts","../../build-cli/projects/ngx-grid/src/feature/composition/src/column/view/view-template.repository.ts","../../build-cli/projects/ngx-grid/src/feature/composition/src/column/edit/state/edit.event-type.ts","../../build-cli/projects/ngx-grid/src/feature/composition/src/column/edit/edit-communication.component.ts","../../build-cli/projects/ngx-grid/src/feature/composition/src/column/edit/template/input-edit-template.component.ts","../../build-cli/projects/ngx-grid/src/feature/composition/src/column/edit/template/string-edit-template.component.ts","../../build-cli/projects/ngx-grid/src/feature/composition/src/column/edit/template/number-edit-template.component.ts","../../build-cli/projects/ngx-grid/src/feature/composition/src/column/edit/template/boolean-edit-template.component.ts","../../build-cli/projects/ngx-grid/src/feature/composition/src/column/edit/template/date-edit-template.component.ts","../../build-cli/projects/ngx-grid/src/feature/composition/src/column/edit/edit-templates.component.ts","../../build-cli/projects/ngx-grid/src/feature/composition/src/column/edit/edit-template.factory.ts","../../build-cli/projects/ngx-grid/src/feature/composition/src/column/edit/edit-template.repository.ts","../../build-cli/projects/ngx-grid/src/core/composition/src/api/group/group.collection.ts","../../build-cli/projects/ngx-grid/src/core/composition/src/core-read/group/composition-group.archive.ts","../../build-cli/projects/ngx-grid/src/core/composition/src/core/compositon.domain-publisher.ts","../../build-cli/projects/ngx-grid/src/core/composition/src/core-read/composition.domain-warehouse.ts","../../build-cli/projects/ngx-grid/src/core/composition/src/core/composition.domain-event-repository.ts","../../build-cli/projects/ngx-grid/src/core/composition/src/domain/column/auto/domain.column-auto.configurator.ts","../../build-cli/projects/ngx-grid/src/core/composition/src/api/composition.api-module.ts","../../build-cli/projects/ngx-grid/src/feature/composition/src/column/composition.template-warehouse.ts","../../build-cli/projects/ngx-grid/src/core/structure/summaries/src/api/summaries.event-repository.ts","../../build-cli/projects/ngx-grid/src/feature/structure/summaries/src/panel/structure.summaries-panel.component.ts","../../build-cli/projects/ngx-grid/src/feature/structure/summaries/src/panel/structure.summaries-panel.component.html","../../build-cli/projects/ngx-grid/src/feature-view/grid-view/src/panel/info/info-modal/structure-info-modal.component.ts","../../build-cli/projects/ngx-grid/src/feature-view/grid-view/src/panel/info/info-modal/structure-info-modal.component.html","../../build-cli/projects/ngx-grid/src/feature-view/grid-view/src/column-manager/manager/structure.column-manager.component.ts","../../build-cli/projects/ngx-grid/src/feature-view/grid-view/src/column-manager/manager/structure.column-manager.component.html","../../build-cli/projects/ngx-grid/src/feature-view/grid-view/src/column-manager/dialog/structure.dialog-column-manager.component.ts","../../build-cli/projects/ngx-grid/src/feature-view/grid-view/src/column-manager/dialog/structure.dialog-column-manager.component.html","../../build-cli/projects/ngx-grid/src/feature-view/grid-view/src/schema/structure.theme.converter.ts","../../build-cli/projects/ngx-grid/src/feature-view/grid-view/src/column-manager/dialog/structure.dialog-column-manager.service.ts","../../build-cli/projects/ngx-grid/src/feature/schema/src/manager/structure.schema-manger.component.ts","../../build-cli/projects/ngx-grid/src/feature/schema/src/manager/structure.schema-manger.component.html","../../build-cli/projects/ngx-grid/src/feature/schema/src/manager/dialog/structure.dialog-schema-manager.component.ts","../../build-cli/projects/ngx-grid/src/feature/schema/src/manager/dialog/structure.dialog-schema-manager.service.ts","../../build-cli/projects/ngx-grid/src/feature-view/grid-view/src/column-manager/icon/structure.column-manager-icon.component.ts","../../build-cli/projects/ngx-grid/src/feature/schema/src/manager/manager-icon/structure.schema-manager-icon.component.ts","../../build-cli/projects/ngx-grid/src/feature/schema/src/manager/manager-icon/structure.schema-manager-icon.component.html","../../build-cli/projects/ngx-grid/src/feature/structure/filter/src/active-filters/search/active-search.component.ts","../../build-cli/projects/ngx-grid/src/feature/structure/filter/src/active-filters/search/active-search.component.html","../../build-cli/projects/ngx-grid/src/feature/structure/filter/src/active-filters/active-filter-list.component.ts","../../build-cli/projects/ngx-grid/src/feature/structure/filter/src/active-filters/active-filter-list.component.html","../../build-cli/projects/ngx-grid/src/feature/structure/source/src/counter/filter/active-filter-menu.component.ts","../../build-cli/projects/ngx-grid/src/feature/structure/source/src/counter/filter/active-filter.service.ts","../../build-cli/projects/ngx-grid/src/feature/structure/source/src/counter/filter/active-filter-menu-trigger.directive.ts","../../build-cli/projects/ngx-grid/src/feature-view/grid-view/src/panel/info/icon/structure.info-icon.component.ts","../../build-cli/projects/ngx-grid/src/feature-view/grid-view/src/panel/info/icon/structure.info-icon.component.html","../../build-cli/projects/ngx-grid/src/feature/common/cdk/src/number-formatter/number-formatter.pipe.ts","../../build-cli/projects/ngx-grid/src/feature-view/grid-view/src/panel/info/structure.info-panel.component.ts","../../build-cli/projects/ngx-grid/src/feature-view/grid-view/src/panel/info/structure.info-panel.component.html","../../build-cli/projects/ngx-grid/src/feature/gui-angular/effect/gui.effects.ts","../../build-cli/projects/ngx-grid/src/feature/structure/search/src/icon/search-icon.component.ts","../../build-cli/projects/ngx-grid/src/feature/structure/search/src/search.component.ts","../../build-cli/projects/ngx-grid/src/feature/structure/search/src/search.component.html","../../build-cli/projects/ngx-grid/src/feature-view/grid-view/src/panel/top/structure.top-panel.component.ts","../../build-cli/projects/ngx-grid/src/feature-view/grid-view/src/panel/top/structure.top-panel.component.html","../../build-cli/projects/ngx-grid/src/feature/structure/source/src/empty/empty-source.component.ts","../../build-cli/projects/ngx-grid/src/feature/structure/source/src/empty/empty-source.component.html","../../build-cli/projects/ngx-grid/src/core/structure/vertical-formation/src/api/vertical-formation.warehouse.ts","../../build-cli/projects/ngx-grid/src/feature-view/grid-view/src/column-manager/menu/structure.menu-column-manager.component.ts","../../build-cli/projects/ngx-grid/src/feature-view/grid-view/src/column-manager/menu/structure.menu-column-manager.component.html","../../build-cli/projects/ngx-grid/src/feature/structure/filter/src/unique/unique-value-list.component.ts","../../build-cli/projects/ngx-grid/src/feature/structure/filter/src/unique/unique-value-list.component.html","../../build-cli/projects/ngx-grid/src/feature/common/icons/arrow/strucutre.arrow-position.ts","../../build-cli/projects/ngx-grid/src/feature/common/icons/arrow/structure.arrow-icon.component.ts","../../build-cli/projects/ngx-grid/src/feature-view/grid-view/src/header/menu/main/sort/structure.column-config-sort.component.ts","../../build-cli/projects/ngx-grid/src/feature-view/grid-view/src/header/menu/main/sort/structure.column-config-sort.component.html","../../build-cli/projects/ngx-grid/src/feature-view/grid-view/src/header/menu/main/hide/structure.column-config-column-hide.component.ts","../../build-cli/projects/ngx-grid/src/feature-view/grid-view/src/header/menu/main/hide/structure.column-config-column-hide.component.html","../../build-cli/projects/ngx-grid/src/feature-view/grid-view/src/header/menu/main/move/structure.column-config-column-move.component.ts","../../build-cli/projects/ngx-grid/src/feature-view/grid-view/src/header/menu/main/move/structure.column-config-column-move.component.html","../../build-cli/projects/ngx-grid/src/feature-view/grid-view/src/header/menu/config/structure.column-config.component.ts","../../build-cli/projects/ngx-grid/src/feature-view/grid-view/src/header/menu/config/structure.column-config.component.html","../../build-cli/projects/ngx-grid/src/feature-view/grid-view/src/header/menu/structure.column-config.service.ts","../../build-cli/projects/ngx-grid/src/feature/structure/formation/src/select-custom/modal/select-custom-modal.component.ts","../../build-cli/projects/ngx-grid/src/feature/structure/formation/src/select-custom/modal/select-custom-modal.component.html","../../build-cli/projects/ngx-grid/src/feature/structure/formation/src/select-custom/structure.select-custom.service.ts","../../build-cli/projects/ngx-grid/src/feature/structure/formation/src/select-all/select-all.component.ts","../../build-cli/projects/ngx-grid/src/feature/structure/formation/src/select-all/select-all.component.html","../../build-cli/projects/ngx-grid/src/feature/common/icons/menu/structure.column-menu-icon.component.ts","../../build-cli/projects/ngx-grid/src/feature-view/grid-view/src/header/menu/trigger/structure.column-config-trigger.component.ts","../../build-cli/projects/ngx-grid/src/feature-view/grid-view/src/header/menu/trigger/structure.column-config-trigger.component.html","../../build-cli/projects/ngx-grid/src/feature-view/grid-view/src/header/column/structure-header-columns.component.ts","../../build-cli/projects/ngx-grid/src/feature-view/grid-view/src/header/column/structure-header-columns.component.html","../../build-cli/projects/ngx-grid/src/feature-view/grid-view/src/header/group/structure-header-groups.component.ts","../../build-cli/projects/ngx-grid/src/feature-view/grid-view/src/header/group/structure-header-groups.component.html","../../build-cli/projects/ngx-grid/src/feature-view/grid-view/src/header/filters/structure-header-filters.component.ts","../../build-cli/projects/ngx-grid/src/feature-view/grid-view/src/header/filters/structure-header-filters.component.html","../../build-cli/projects/ngx-grid/src/feature-view/grid-view/src/header/structure-header.component.ts","../../build-cli/projects/ngx-grid/src/feature-view/grid-view/src/header/structure-header.component.html","../../build-cli/projects/ngx-grid/src/feature/common/cdk/src/resize-detector/resize.detector.ts","../../build-cli/projects/ngx-grid/src/core/structure/formation/src/domain/row-select-toggle-type.ts","../../build-cli/projects/ngx-grid/src/feature/composition/src/column/edit/changed-value.emitter.ts","../../build-cli/projects/ngx-grid/src/core/structure/source/src/core/origin/edit/structure.edit-source-item.params.ts","../../build-cli/projects/ngx-grid/src/feature-view/grid-view/src/content/cell/boolean/structure.cell-edit-boolean.component.ts","../../build-cli/projects/ngx-grid/src/feature-view/grid-view/src/content/cell/boolean/structure.cell-edit-boolean.component.html","../../build-cli/projects/ngx-grid/src/feature-view/grid-view/src/content/cell/structure.cell.component.ts","../../build-cli/projects/ngx-grid/src/feature-view/grid-view/src/content/cell/structure.cell.component.html","../../build-cli/projects/ngx-grid/src/feature-view/grid-view/src/content/row/structure-row.component.ts","../../build-cli/projects/ngx-grid/src/feature-view/grid-view/src/content/row/structure-row.component.html","../../build-cli/projects/ngx-grid/src/feature-view/grid-view/src/content/structure-content.component.ts","../../build-cli/projects/ngx-grid/src/feature-view/grid-view/src/content/structure-content.component.html","../../build-cli/projects/ngx-grid/src/feature-view/grid-view/src/content/container/structure-container.component.ts","../../build-cli/projects/ngx-grid/src/feature-view/grid-view/src/content/container/structure-container.component.html","../../build-cli/projects/ngx-grid/src/feature-view/grid-view/src/panel/banner-panels/structure-banner-panel.ts","../../build-cli/projects/ngx-grid/src/feature-view/grid-view/src/panel/banner-panels/title-panel/structure.title-panel.component.ts","../../build-cli/projects/ngx-grid/src/feature-view/grid-view/src/panel/banner-panels/title-panel/structure.title-panel.component.html","../../build-cli/projects/ngx-grid/src/feature-view/grid-view/src/panel/banner-panels/footer-panel/structure.footer-panel.component.ts","../../build-cli/projects/ngx-grid/src/feature-view/grid-view/src/panel/banner-panels/footer-panel/structure.footer-panel.component.html","../../build-cli/projects/ngx-grid/src/feature-view/grid-view/src/blueprint/structure.blueprint.component.ts","../../build-cli/projects/ngx-grid/src/feature-view/grid-view/src/blueprint/structure.blueprint.component.html","../../build-cli/projects/ngx-grid/src/feature-view/grid-view/src/structure/structure.component.ts","../../build-cli/projects/ngx-grid/src/feature-view/grid-view/src/structure/structure.component.html","../../build-cli/projects/ngx-grid/src/feature-view/grid-view/src/structure/gate/column/header/structure-column-header.gate.ts","../../build-cli/projects/ngx-grid/src/feature/structure/paging/src/gate/paging.gate.ts","../../build-cli/projects/ngx-grid/src/feature-view/grid-view/src/structure/gate/paging/structure-paging.gate.ts","../../build-cli/projects/ngx-grid/src/feature/structure/search/src/gate/searching.gate.ts","../../build-cli/projects/ngx-grid/src/feature-view/grid-view/src/structure/gate/searching/structure-searching.gate.ts","../../build-cli/projects/ngx-grid/src/feature/structure/formation/src/gate/selection.gate.ts","../../build-cli/projects/ngx-grid/src/feature-view/grid-view/src/structure/gate/source/structure-selection.gate.ts","../../build-cli/projects/ngx-grid/src/feature-view/grid-view/src/structure/gate/l10n/structure-l10n.gate.ts","../../build-cli/projects/ngx-grid/src/feature-view/grid-view/src/structure/gate/panel/structure-panel.gate.ts","../../build-cli/projects/ngx-grid/src/feature-view/grid-view/src/structure/gate/row/detail/structure-row-detail.gate.ts","../../build-cli/projects/ngx-grid/src/feature-view/grid-view/src/structure/gate/column/menu/structure-column-menu.gate.ts","../../build-cli/projects/ngx-grid/src/feature/structure/summaries/src/gate/structure-summaries.gate.ts","../../build-cli/projects/ngx-grid/src/feature-view/grid-view/src/structure/gate/panel/info/structure-info-panel.gate.ts","../../build-cli/projects/ngx-grid/src/feature-view/grid-view/src/structure/gate/row/class/structure-row-class.gate.ts","../../build-cli/projects/ngx-grid/src/feature-view/grid-view/src/structure/gate/row/style/structure-row-style.gate.ts","../../build-cli/projects/ngx-grid/src/feature-view/grid-view/src/structure/gate/row/coloring/structure-row-coloring.gate.ts","../../build-cli/projects/ngx-grid/src/feature/schema/src/gate/grid/theme-grid.gate.ts","../../build-cli/projects/ngx-grid/src/feature/structure/sorting/src/gate/structure-sorting.gate.ts","../../build-cli/projects/ngx-grid/src/feature-view/grid-view/src/structure/gate/source/source-loading.gate.ts","../../build-cli/projects/ngx-grid/src/feature/structure/filter/src/gate/structure-filter.gate.ts","../../build-cli/projects/ngx-grid/src/feature/structure/filter/src/gate/structure-quick-filters.gate.ts","../../build-cli/projects/ngx-grid/src/feature/structure/vertical-formation/src/gate/vertical-formation.gate.ts","../../build-cli/projects/ngx-grid/src/gui/grid/src/feature/gui.grid.component.ts","../../build-cli/projects/ngx-grid/src/gui/grid/src/feature/gui.grid.component.html","../../build-cli/projects/ngx-grid/src/feature-view/grid-view/src/structure-fabric.imports.ts","../../build-cli/projects/ngx-grid/src/feature/common/cdk/src/number-formatter/number-formatter.module.ts","../../build-cli/projects/ngx-grid/src/feature-view/grid-view/src/column-manager/structure.column-manager.module.ts","../../build-cli/projects/ngx-grid/src/feature/schema/src/manager/schema-manager.module.ts","../../build-cli/projects/ngx-grid/src/feature/structure/filter/src/menu/icon/filter-icon.component.ts","../../build-cli/projects/ngx-grid/src/core/structure/field/src/api/field.warehouse.ts","../../build-cli/projects/ngx-grid/src/feature/structure/filter/src/menu/filter-selector/filter-type-selector.component.ts","../../build-cli/projects/ngx-grid/src/feature/structure/filter/src/menu/filter-selector/filter-type-selector.component.html","../../build-cli/projects/ngx-grid/src/feature/structure/filter/src/menu/value/filter-value.component.ts","../../build-cli/projects/ngx-grid/src/feature/structure/filter/src/menu/value/filter-value.component.html","../../build-cli/projects/ngx-grid/src/feature/structure/filter/src/menu/field-selector/field-selector.component.ts","../../build-cli/projects/ngx-grid/src/feature/structure/filter/src/menu/active-filters/filter-menu-active-filters.component.ts","../../build-cli/projects/ngx-grid/src/feature/structure/filter/src/menu/filter-menu.component.ts","../../build-cli/projects/ngx-grid/src/feature/structure/filter/src/menu/filter-menu.component.html","../../build-cli/projects/ngx-grid/src/feature/structure/filter/src/menu/trigger/filter-menu-trigger.component.ts","../../build-cli/projects/ngx-grid/src/feature/structure/filter/src/menu/trigger/filter-menu-trigger.component.html","../../build-cli/projects/ngx-grid/src/feature/structure/filter/src/menu/column-selector/column-selector.component.ts","../../build-cli/projects/ngx-grid/src/core/structure/filter/src/core/toggle/toggle-filter.command.ts","../../build-cli/projects/ngx-grid/src/core/structure/filter/src/core/toggle/filter-toggled.event.ts","../../build-cli/projects/ngx-grid/src/core/structure/filter/src/core/toggle/toggle-filter.command-handler.ts","../../build-cli/projects/ngx-grid/src/core/structure/filter/src/core/add/add-filter.command.ts","../../build-cli/projects/ngx-grid/src/core/structure/filter/src/core/add/add-filter.command-handler.ts","../../build-cli/projects/ngx-grid/src/core/structure/filter/src/core/remove-all/remove-all-filters.command.ts","../../build-cli/projects/ngx-grid/src/core/structure/filter/src/core/remove-all/remove-all-filters.command-handler.ts","../../build-cli/projects/ngx-grid/src/core/structure/filter/src/core/remove/remove-filter.command.ts","../../build-cli/projects/ngx-grid/src/core/structure/filter/src/core/remove/remove-filter.command-handler.ts","../../build-cli/projects/ngx-grid/src/core/structure/filter/src/core/config/set-config-filter.command.ts","../../build-cli/projects/ngx-grid/src/core/structure/filter/src/core/config/config-filter-set.event.ts","../../build-cli/projects/ngx-grid/src/core/structure/filter/src/core/config/set-config-filter.command-handler.ts","../../build-cli/projects/ngx-grid/src/core/structure/filter/src/core/quick/set-config-quick-filter.command.ts","../../build-cli/projects/ngx-grid/src/core/structure/filter/src/core/quick/config-quick-filter-set.event.ts","../../build-cli/projects/ngx-grid/src/core/structure/filter/src/core/quick/set-config-quick-filter.command-handler.ts","../../build-cli/projects/ngx-grid/src/core/structure/filter/src/domain/filter.ts","../../build-cli/projects/ngx-grid/src/core/structure/filter/src/domain/filter.settings.ts","../../build-cli/projects/ngx-grid/src/core/structure/filter/src/domain/type/base-filter-type.ts","../../build-cli/projects/ngx-grid/src/core/structure/filter/src/domain/type/filter-types/contains-filter-type.ts","../../build-cli/projects/ngx-grid/src/core/structure/filter/src/domain/type/filter-type.id.ts","../../build-cli/projects/ngx-grid/src/core/structure/filter/src/domain/type/filter-type.id-generator.ts","../../build-cli/projects/ngx-grid/src/core/structure/filter/src/api/type/filter-type.model.ts","../../build-cli/projects/ngx-grid/src/core/structure/filter/src/domain/type/filter-type.manager.ts","../../build-cli/projects/ngx-grid/src/core/structure/filter/src/api/id/filter.id.ts","../../build-cli/projects/ngx-grid/src/core/structure/filter/src/core/filter.id-generator.ts","../../build-cli/projects/ngx-grid/src/core/structure/filter/src/api/active/active-filter.model.ts","../../build-cli/projects/ngx-grid/src/core/structure/filter/src/domain/filter.manager.ts","../../build-cli/projects/ngx-grid/src/core/structure/filter/src/domain/filter.manager-factory.ts","../../build-cli/projects/ngx-grid/src/core/structure/filter/src/core-read/quick-filter/quick-filter-enabled.archive.ts","../../build-cli/projects/ngx-grid/src/core/structure/filter/src/core-read/quick-filter/config-quick-filter-set.event-handler.ts","../../build-cli/projects/ngx-grid/src/core/structure/filter/src/core-read/config/filter-enabled.archive.ts","../../build-cli/projects/ngx-grid/src/core/structure/filter/src/core-read/config/config-filter-set.event-handler.ts","../../build-cli/projects/ngx-grid/src/core/structure/filter/src/api/type/filter-type-collection.model.ts","../../build-cli/projects/ngx-grid/src/core/structure/filter/src/core-read/type/filter-type.archive.ts","../../build-cli/projects/ngx-grid/src/core/structure/filter/src/core/type/init/filter-types-inited.event.ts","../../build-cli/projects/ngx-grid/src/core/structure/filter/src/core-read/active/active-filter.archive.ts","../../build-cli/projects/ngx-grid/src/core/structure/filter/src/api/di/filter.di-container.ts","../../build-cli/projects/ngx-grid/src/core/structure/filter/src/core-read/type/filter-type.config-filter-set.event-handler.ts","../../build-cli/projects/ngx-grid/src/core/structure/filter/src/core/active-filters-set.event.ts","../../build-cli/projects/ngx-grid/src/core/structure/filter/src/core-read/active/active-filters-set.event-handler.ts","../../build-cli/projects/ngx-grid/src/core/structure/filter/src/core/unique/calculate/unique-filter-calculated.event.ts","../../build-cli/projects/ngx-grid/src/core/structure/filter/src/api/unique/unique-value-collection.model.ts","../../build-cli/projects/ngx-grid/src/core/structure/filter/src/core-read/unique/unique-value-collection.archive.ts","../../build-cli/projects/ngx-grid/src/core/structure/filter/src/api/unique/unique-value.model.ts","../../build-cli/projects/ngx-grid/src/core/structure/filter/src/core-read/unique/unique-filter-calculated.event-handler.ts","../../build-cli/projects/ngx-grid/src/core/structure/filter/src/core/type/init/filter-type.fields-inited.event-handler.ts","../../build-cli/projects/ngx-grid/src/core/structure/filter/src/core/unique/unselect-all/unselect-all-unique-filter.command.ts","../../build-cli/projects/ngx-grid/src/core/structure/filter/src/core/unique/unselect-all/unselect-all-unique-filter.command-handler.ts","../../build-cli/projects/ngx-grid/src/core/structure/filter/src/core/unique/unselect/unselect-unique-filter.command.ts","../../build-cli/projects/ngx-grid/src/core/structure/filter/src/core/unique/unselect/unselect-unique-filter.command-handler.ts","../../build-cli/projects/ngx-grid/src/core/structure/filter/src/core/unique/select-all/select-all-unique-filter.command.ts","../../build-cli/projects/ngx-grid/src/core/structure/filter/src/core/unique/select-all/select-all-unique-filter.command-handler.ts","../../build-cli/projects/ngx-grid/src/core/structure/filter/src/core/unique/select/select-unique-filter.command.ts","../../build-cli/projects/ngx-grid/src/core/structure/filter/src/core/unique/select/select-unique-filter.command-handler.ts","../../build-cli/projects/ngx-grid/src/core/structure/filter/src/core/filter.domain-module.ts","../../build-cli/projects/ngx-grid/src/core/structure/filter/src/core-read/filter.domain-warehouse.ts","../../build-cli/projects/ngx-grid/src/core/structure/filter/src/core/filter.domain-publisher.ts","../../build-cli/projects/ngx-grid/src/core/structure/filter/src/api/filter.api-module.ts","../../build-cli/projects/ngx-grid/src/feature/structure/filter/src/filter.feature-module.ts","../../build-cli/projects/ngx-grid/src/feature/structure/filter/src/active-filters/active-filter-list.module.ts","../../build-cli/projects/ngx-grid/src/feature/structure/filter/src/menu/filter-menu.feature-module.ts","../../build-cli/projects/ngx-grid/src/feature/structure/source/src/counter/source-counter.feature-module.ts","../../build-cli/projects/ngx-grid/src/feature-view/grid-view/src/panel/info/structure.info-panel.module.ts","../../build-cli/projects/ngx-grid/src/feature-view/grid-view/src/header/filters/structure.header-filter.component.ts","../../build-cli/projects/ngx-grid/src/feature-view/grid-view/src/header/filters/structure.header-filter.component.html","../../build-cli/projects/ngx-grid/src/feature-view/grid-view/src/header/quick-filters/structure.quick-filters.component.ts","../../build-cli/projects/ngx-grid/src/feature/common/cdk/src/logger/console.logger.ts","../../build-cli/projects/ngx-grid/src/feature/common/cdk/src/logger/logger.module.ts","../../build-cli/projects/ngx-grid/src/core/structure/source/src/api/item/item.ts","../../build-cli/projects/ngx-grid/src/core/structure/source/src/domain/item/item.entity.ts","../../build-cli/projects/ngx-grid/src/core/structure/source/src/core-read/item/item.factory.ts","../../build-cli/projects/ngx-grid/src/core/structure/search/src/core/config/set-config-searching.command.ts","../../build-cli/projects/ngx-grid/src/core/structure/search/src/core/config/config-searching-set.event.ts","../../build-cli/projects/ngx-grid/src/core/structure/search/src/core/config/set-config-searching.command-handler.ts","../../build-cli/projects/ngx-grid/src/core/structure/search/src/core/phrase/set-phrase/set-search-phrase.command.ts","../../build-cli/projects/ngx-grid/src/core/structure/search/src/core/phrase/set-phrase/search-phrase-set.domain-event.ts","../../build-cli/projects/ngx-grid/src/core/structure/source/src/core/origin/set/origin-set.event.ts","../../build-cli/projects/ngx-grid/src/core/structure/summaries/src/core/structure.summaries-changed.event.ts","../../build-cli/projects/ngx-grid/src/core/structure/source/src/core/prepared/structure.prepared-entities-set.event.ts","../../build-cli/projects/ngx-grid/src/core/structure/source/src/core/source.domain-event.publisher.ts","../../build-cli/projects/ngx-grid/src/core/structure/search/src/core/phrase/set-phrase/structure.set-search-phrase.command-handler.ts","../../build-cli/projects/ngx-grid/src/core/structure/search/src/domain/search.manager.ts","../../build-cli/projects/ngx-grid/src/core/structure/search/src/domain/search.manager-factory.ts","../../build-cli/projects/ngx-grid/src/core/structure/search/src/core/highlight/search-highlight.archive.ts","../../build-cli/projects/ngx-grid/src/core/structure/search/src/core/placeholder/search-placeholder.archive.ts","../../build-cli/projects/ngx-grid/src/core/structure/search/src/core/search.dispatcher.ts","../../build-cli/projects/ngx-grid/src/core/structure/search/src/core/phrase/search-phrase.archive.ts","../../build-cli/projects/ngx-grid/src/core/structure/search/src/core/phrase/search-phrase-set.event-handler.ts","../../build-cli/projects/ngx-grid/src/core/structure/search/src/core/enabled/searching-enabled.archive.ts","../../build-cli/projects/ngx-grid/src/core/structure/search/src/core/enabled/config-searching-set.event-handler.ts","../../build-cli/projects/ngx-grid/src/core/structure/search/src/core/phrase/remove/remove-search-phrase.command.ts","../../build-cli/projects/ngx-grid/src/core/structure/search/src/core/phrase/remove/remove-search-phrase.command-handler.ts","../../build-cli/projects/ngx-grid/src/core/structure/search/src/core/search.domain-module.ts","../../build-cli/projects/ngx-grid/src/core/structure/search/src/core-read/search.domain-warehouse.ts","../../build-cli/projects/ngx-grid/src/core/structure/search/src/core-read/search.domain-event-repository.ts","../../build-cli/projects/ngx-grid/src/core/structure/search/src/core/search.domain-publisher.ts","../../build-cli/projects/ngx-grid/src/core/structure/search/src/api/search.api-module.ts","../../build-cli/projects/ngx-grid/src/feature/structure/search/src/search.feature-module.ts","../../build-cli/projects/ngx-grid/src/feature-view/grid-view/src/panel/top/structure.top-panel.module.ts","../../build-cli/projects/ngx-grid/src/feature/structure/filter/src/unique/unique-value-list.module.ts","../../build-cli/projects/ngx-grid/src/feature/common/icons/menu/structure.menu-icon.module.ts","../../build-cli/projects/ngx-grid/src/feature/common/icons/arrow/structure.arrow-icon.module.ts","../../build-cli/projects/ngx-grid/src/feature-view/grid-view/src/header/menu/structure.column-menu.module.ts","../../build-cli/projects/ngx-grid/src/feature-view/grid-view/src/content/cell/edit/structure.cell-edit.component.ts","../../build-cli/projects/ngx-grid/src/feature-view/grid-view/src/content/cell/edit/structure.cell-edit.component.html","../../build-cli/projects/ngx-grid/src/feature/structure/source/src/empty/empty-source.feature-module.ts","../../build-cli/projects/ngx-grid/src/core/structure/sorting/src/core/toggle/toggle-sort.command.ts","../../build-cli/projects/ngx-grid/src/core/structure/sorting/src/core/toggle/toggle-sort.command-handler.ts","../../build-cli/projects/ngx-grid/src/core/structure/sorting/src/core/set-config/set-sorting.command.ts","../../build-cli/projects/ngx-grid/src/core/structure/sorting/src/core/set-config/sorting-set.event.ts","../../build-cli/projects/ngx-grid/src/core/structure/sorting/src/core/set-config/set-sorting.command-handler.ts","../../build-cli/projects/ngx-grid/src/core/structure/sorting/src/core/order/set-sort-order.command.ts","../../build-cli/projects/ngx-grid/src/core/structure/sorting/src/core/order/set-sort-order.command-handler.ts","../../build-cli/projects/ngx-grid/src/core/structure/sorting/src/core/sorting.dispatcher.ts","../../build-cli/projects/ngx-grid/src/core/structure/sorting/src/core/sorting.domain-module.ts","../../build-cli/projects/ngx-grid/src/core/structure/sorting/src/core/sorting.domain-publisher.ts","../../build-cli/projects/ngx-grid/src/core/structure/sorting/src/api/sorting.api-module.ts","../../build-cli/projects/ngx-grid/src/feature/structure/sorting/src/sorting.feature-module.ts","../../build-cli/projects/ngx-grid/src/core/structure/field/src/core-read/field.archive.ts","../../build-cli/projects/ngx-grid/src/core/structure/field/src/api/model/field.model.ts","../../build-cli/projects/ngx-grid/src/core/structure/field/src/core-read/init/field.converter.ts","../../build-cli/projects/ngx-grid/src/core/structure/field/src/domain/field-collection.ts","../../build-cli/projects/ngx-grid/src/core/structure/field/src/domain/field/field.entity.ts","../../build-cli/projects/ngx-grid/src/core/structure/field/src/domain/field/data/base-data-field.ts","../../build-cli/projects/ngx-grid/src/core/structure/field/src/domain/field/data/data-field.ts","../../build-cli/projects/ngx-grid/src/core/structure/field/src/domain/field/data/type/unknown-data-field.ts","../../build-cli/projects/ngx-grid/src/core/structure/field/src/domain/field/data/type/number-data-field.ts","../../build-cli/projects/ngx-grid/src/core/structure/field/src/domain/field/data/type/string-data-field.ts","../../build-cli/projects/ngx-grid/src/core/structure/field/src/domain/field/data/type/boolean-data-field.ts","../../build-cli/projects/ngx-grid/src/core/structure/field/src/domain/field/data/type/date-data-field.ts","../../build-cli/projects/ngx-grid/src/core/structure/field/src/domain/matcher/field.matchers.ts","../../build-cli/projects/ngx-grid/src/core/structure/field/src/domain/field/data/data-field.factory.ts","../../build-cli/projects/ngx-grid/src/core/structure/field/src/domain/field/field-entity-id.generator.ts","../../build-cli/projects/ngx-grid/src/core/structure/field/src/domain/field/field.entity-factory.ts","../../build-cli/projects/ngx-grid/src/core/structure/field/src/core/field-collection.factory.ts","../../build-cli/projects/ngx-grid/src/core/structure/field/src/core/init/init-fields.command-handler.ts","../../build-cli/projects/ngx-grid/src/core/structure/field/src/core-read/init/fields-inited.event-handler.ts","../../build-cli/projects/ngx-grid/src/core/structure/field/src/core/field.domain-module.ts","../../build-cli/projects/ngx-grid/src/core/structure/field/src/core-read/field.domain-warehouse.ts","../../build-cli/projects/ngx-grid/src/core/structure/field/src/core/field.domain-publisher.ts","../../build-cli/projects/ngx-grid/src/core/structure/field/src/api/field.api-module.ts","../../build-cli/projects/ngx-grid/src/feature/structure/field/src/field.feature-module.ts","../../build-cli/projects/ngx-grid/src/core/structure/summaries/src/core/set/structure.set-summaries-enabled.command.ts","../../build-cli/projects/ngx-grid/src/core/structure/summaries/src/core/set/structure.summaries-enabled-set.event.ts","../../build-cli/projects/ngx-grid/src/core/structure/summaries/src/core/set/structure.set-summaries-enabled.command-handler.ts","../../build-cli/projects/ngx-grid/src/core/structure/summaries/src/core/structure.summaries-changed.aggregate-event.ts","../../build-cli/projects/ngx-grid/src/core/structure/summaries/src/domain/summaries.manager.ts","../../build-cli/projects/ngx-grid/src/core/structure/summaries/src/core-read/enabled/summaries-enabled-archive.service.ts","../../build-cli/projects/ngx-grid/src/core/structure/summaries/src/core-read/enabled/structure.summaries-enabled-set.event-handler.ts","../../build-cli/projects/ngx-grid/src/core/structure/summaries/src/domain/calculation/summaries.calculator.ts","../../build-cli/projects/ngx-grid/src/core/structure/summaries/src/domain/calculation/summaries.values.ts","../../build-cli/projects/ngx-grid/src/core/structure/summaries/src/domain/calculation/boolean/boolean-summarized.values.ts","../../build-cli/projects/ngx-grid/src/core/structure/summaries/src/domain/calculation/boolean/boolean-summaries.calculator.ts","../../build-cli/projects/ngx-grid/src/core/structure/summaries/src/domain/calculation/date/date-summarized.values.ts","../../build-cli/projects/ngx-grid/src/core/structure/summaries/src/domain/calculation/date/date-summaries.calculator.ts","../../build-cli/projects/ngx-grid/src/core/structure/summaries/src/domain/calculation/number/number-summarized.values.ts","../../build-cli/projects/ngx-grid/src/core/structure/summaries/src/domain/calculation/number/number-summaries.calculator.ts","../../build-cli/projects/ngx-grid/src/core/structure/summaries/src/domain/calculation/string/string-summarized.values.ts","../../build-cli/projects/ngx-grid/src/core/structure/summaries/src/domain/calculation/string/string-summaries.calculator.ts","../../build-cli/projects/ngx-grid/src/core/structure/summaries/src/domain/calculation/unknown/unknown-summarized.values.ts","../../build-cli/projects/ngx-grid/src/core/structure/summaries/src/domain/calculation/unknown/unknown-summaries.calculator.ts","../../build-cli/projects/ngx-grid/src/core/structure/summaries/src/domain/calculation/summaries.calculators.token.ts","../../build-cli/projects/ngx-grid/src/core/structure/summaries/src/domain/summaries.manager.factory.ts","../../build-cli/projects/ngx-grid/src/core/structure/summaries/src/core/summaries.dispatcher.ts","../../build-cli/projects/ngx-grid/src/core/structure/summaries/src/core/config/structure.summaries-panel.config.ts","../../build-cli/projects/ngx-grid/src/core/structure/summaries/src/core-read/config/structure.summaries-config.archive.ts","../../build-cli/projects/ngx-grid/src/core/structure/summaries/src/core-read/config/structure.summaries-panel.config-converter.ts","../../build-cli/projects/ngx-grid/src/core/structure/summaries/src/core/summaries.domain-module.ts","../../build-cli/projects/ngx-grid/src/core/structure/summaries/src/core-read/summaries.domain-warehouse.ts","../../build-cli/projects/ngx-grid/src/core/structure/summaries/src/core/summaries.domain-publisher.ts","../../build-cli/projects/ngx-grid/src/core/structure/summaries/src/core-read/summaries.domain-event-repository.ts","../../build-cli/projects/ngx-grid/src/core/structure/summaries/src/api/summaries.api-module.ts","../../build-cli/projects/ngx-grid/src/feature/structure/summaries/src/summaries.providers.ts","../../build-cli/projects/ngx-grid/src/feature/structure/summaries/src/summaries.feature-module.ts","../../build-cli/projects/ngx-grid/src/core/structure/vertical-formation/src/domain/vertical-range.ts","../../build-cli/projects/ngx-grid/src/core/structure/vertical-formation/src/domain/container/vertical-formation.container-height.ts","../../build-cli/projects/ngx-grid/src/core/structure/vertical-formation/src/core/scroll-bar/scroll-bar-position-set.event.ts","../../build-cli/projects/ngx-grid/src/core/structure/vertical-formation/src/core/scroll-bar/scroll-bar-position-set.aggregate-event.ts","../../build-cli/projects/ngx-grid/src/core/structure/vertical-formation/src/domain/vertical-formation.ts","../../build-cli/projects/ngx-grid/src/core/structure/vertical-formation/src/domain/vertical-formation.factory.ts","../../build-cli/projects/ngx-grid/src/core/structure/vertical-formation/src/core/scroll-position/set-scroll-position.command.ts","../../build-cli/projects/ngx-grid/src/core/structure/vertical-formation/src/core/scroll-position/scroll-position-set.event.ts","../../build-cli/projects/ngx-grid/src/core/structure/vertical-formation/src/core/scroll-position/set-scroll-position.command-handler.ts","../../build-cli/projects/ngx-grid/src/core/structure/vertical-formation/src/core/set-enabled/set-vertical-scroll-enabled.command.ts","../../build-cli/projects/ngx-grid/src/core/structure/vertical-formation/src/core/set-enabled/vertical-scroll-enabled-set.event.ts","../../build-cli/projects/ngx-grid/src/core/structure/vertical-formation/src/core/set-enabled/set-vertical-scroll-enabled.command-handler.ts","../../build-cli/projects/ngx-grid/src/core/structure/vertical-formation/src/core/set-row-height-theme/set-row-height-based-on-theme.command.ts","../../build-cli/projects/ngx-grid/src/core/structure/vertical-formation/src/core/set-row-height-theme/row-height-set-based-on-theme.event.ts","../../build-cli/projects/ngx-grid/src/core/structure/vertical-formation/src/core/set-row-height-theme/set-row-height-based-on-theme.command-handler.ts","../../build-cli/projects/ngx-grid/src/core/structure/vertical-formation/src/core/set-row-height/set-row-height.command.ts","../../build-cli/projects/ngx-grid/src/core/structure/vertical-formation/src/core/set-row-height/row-height-set.event.ts","../../build-cli/projects/ngx-grid/src/core/structure/vertical-formation/src/core/set-row-height/set-row-height.command-handler.ts","../../build-cli/projects/ngx-grid/src/core/structure/vertical-formation/src/core/container/set-height/structure-set-height.command.ts","../../build-cli/projects/ngx-grid/src/core/structure/vertical-formation/src/core/container/set-height/structure-height-set.event.ts","../../build-cli/projects/ngx-grid/src/core/structure/vertical-formation/src/core/container/set-height/structure-set-height.command-handler.ts","../../build-cli/projects/ngx-grid/src/core/structure/vertical-formation/src/core-read/scroll-bar/vertical-formation.scroll-bar-position.archive.ts","../../build-cli/projects/ngx-grid/src/core/structure/vertical-formation/src/core-read/scroll-bar/scroll-bar-position-set.event-handler.ts","../../build-cli/projects/ngx-grid/src/core/structure/vertical-formation/src/core/scroll-bar/set-scroll-bar-position.command.ts","../../build-cli/projects/ngx-grid/src/core/structure/vertical-formation/src/core/scroll-bar/set-scroll-bar-position.command-handler.ts","../../build-cli/projects/ngx-grid/src/core/structure/vertical-formation/src/core/vertical-formation.dispatcher.ts","../../build-cli/projects/ngx-grid/src/core/structure/vertical-formation/src/core/vertical-formation.domain-module.ts","../../build-cli/projects/ngx-grid/src/core/structure/vertical-formation/src/core-read/vertical-formation.model.ts","../../build-cli/projects/ngx-grid/src/core/structure/vertical-formation/src/core/vertical-formation.converter.ts","../../build-cli/projects/ngx-grid/src/core/structure/structure-core/src/core/create/structure-created.event.ts","../../build-cli/projects/ngx-grid/src/core/structure/structure-core/src/persist/in-memory.structure.store.ts","../../build-cli/projects/ngx-grid/src/core/structure/source/src/core-read/source-is-loading.model.ts","../../build-cli/projects/ngx-grid/src/core/structure/source/src/core/source.converter.ts","../../build-cli/projects/ngx-grid/src/core/structure/structure-core/src/api/read/structure.read-model-root.ts","../../build-cli/projects/ngx-grid/src/core/structure/structure-core/src/api/read/structure.read-model-root-converter.ts","../../build-cli/projects/ngx-grid/src/core/structure/structure-core/src/persist/api/in-memory-structure.read-store.ts","../../build-cli/projects/ngx-grid/src/core/schema/src/core/schema.domain-event.ts","../../build-cli/projects/ngx-grid/src/core/schema/src/core/theme/schema-theme-set.event.ts","../../build-cli/projects/ngx-grid/src/core/structure/filter/src/core/unique/unselect/unique-filter-unselected.event.ts","../../build-cli/projects/ngx-grid/src/core/structure/filter/src/core/unique/unselect-all/all-unique-filter-unselected.event.ts","../../build-cli/projects/ngx-grid/src/core/structure/filter/src/core/unique/select-all/all-unique-filter-selected.event.ts","../../build-cli/projects/ngx-grid/src/core/structure/filter/src/core/unique/select/unique-filter-selected.event.ts","../../build-cli/projects/ngx-grid/src/core/structure/vertical-formation/src/core-read/vertical-formation.repository.ts","../../build-cli/projects/ngx-grid/src/core/structure/vertical-formation/src/core-read/vertical-formation.domain-warehouse.ts","../../build-cli/projects/ngx-grid/src/core/structure/vertical-formation/src/api/vertical-formation.publisher.ts","../../build-cli/projects/ngx-grid/src/core/structure/vertical-formation/src/core/vertical-formation.domain-publisher.ts","../../build-cli/projects/ngx-grid/src/core/structure/vertical-formation/src/api/vertical-formation.api-module.ts","../../build-cli/projects/ngx-grid/src/feature/structure/vertical-formation/src/vertical-formation.feature-module.ts","../../build-cli/projects/ngx-grid/src/core/schema/src/core/schema.aggregate-repository.ts","../../build-cli/projects/ngx-grid/src/core/schema/src/persist/in-memory.schema.store.ts","../../build-cli/projects/ngx-grid/src/core/schema/src/persist/in-memory.schema.aggregate-store.ts","../../build-cli/projects/ngx-grid/src/core/schema/src/persist/in-memory.schema.aggregate-repository.ts","../../build-cli/projects/ngx-grid/src/core/schema/src/core/schema.command.ts","../../build-cli/projects/ngx-grid/src/core/schema/src/core/theme/set-schema-theme.command.ts","../../build-cli/projects/ngx-grid/src/core/schema/src/core/theme/set-schema-theme.command-handler.ts","../../build-cli/projects/ngx-grid/src/core/schema/src/core/row-coloring/set-row-coloring.command.ts","../../build-cli/projects/ngx-grid/src/core/schema/src/core/row-coloring/set-row-coloring.command-handler.ts","../../build-cli/projects/ngx-grid/src/core/schema/src/core/grid/horizontal/set-schema-horizontal-grid.command.ts","../../build-cli/projects/ngx-grid/src/core/schema/src/core/grid/horizontal/set-schema-horizontal-grid.command-handler.ts","../../build-cli/projects/ngx-grid/src/core/schema/src/core/grid/vertical/set-schema-vertical-grid.command.ts","../../build-cli/projects/ngx-grid/src/core/schema/src/core/grid/vertical/set-schema-vertical-grid.command-handler.ts","../../build-cli/projects/ngx-grid/src/core/schema/src/core-read/css-classes/schema.css-classes.repository.ts","../../build-cli/projects/ngx-grid/src/core/schema/src/core/row-coloring/row-coloring-set.event.ts","../../build-cli/projects/ngx-grid/src/core/schema/src/core/grid/horizontal/schema-horizontal-grid-set.event.ts","../../build-cli/projects/ngx-grid/src/core/schema/src/core/grid/vertical/schema-vertical-grid-set.event.ts","../../build-cli/projects/ngx-grid/src/core/schema/src/api/css-classes/schema-css-class.ts","../../build-cli/projects/ngx-grid/src/core/schema/src/core-read/css-classes/schema-css-classes.event-handler.ts","../../build-cli/projects/ngx-grid/src/core/schema/src/core/schema.key.ts","../../build-cli/projects/ngx-grid/src/core/schema/src/core-read/vertical-grid/schema.vertical-grid.repository.ts","../../build-cli/projects/ngx-grid/src/core/schema/src/core-read/theme/schema.theme.repository.ts","../../build-cli/projects/ngx-grid/src/core/schema/src/core-read/row-coloring/schema.row-coloring.repository.ts","../../build-cli/projects/ngx-grid/src/core/schema/src/core-read/horizontal-grid/schema.horizontal-grid.repository.ts","../../build-cli/projects/ngx-grid/src/core/schema/src/core/create/create-schema.command.ts","../../build-cli/projects/ngx-grid/src/core/schema/src/core/create/create-schema.command-handler.ts","../../build-cli/projects/ngx-grid/src/core/schema/src/core/schema.aggregate-event.ts","../../build-cli/projects/ngx-grid/src/core/schema/src/core/theme/schema-theme-set.aggregate-event.ts","../../build-cli/projects/ngx-grid/src/core/schema/src/core/row-coloring/row-coloring-set.aggregate-event.ts","../../build-cli/projects/ngx-grid/src/core/schema/src/core/grid/vertical/schema-vertical-grid-set.aggregate-event.ts","../../build-cli/projects/ngx-grid/src/core/schema/src/core/grid/horizontal/schema-horizontal-grid-set.aggregate-event.ts","../../build-cli/projects/ngx-grid/src/core/schema/src/core/create/schema-created.event.ts","../../build-cli/projects/ngx-grid/src/core/schema/src/core/create/schema-created.aggregate-event.ts","../../build-cli/projects/ngx-grid/src/core/schema/src/domain/schema.aggregate.ts","../../build-cli/projects/ngx-grid/src/core/schema/src/core/create/schema.aggregate-factory.ts","../../build-cli/projects/ngx-grid/src/core/schema/src/core/styling/schema.row-class.archive.ts","../../build-cli/projects/ngx-grid/src/core/schema/src/core/styling/schema.row-style.archive.ts","../../build-cli/projects/ngx-grid/src/core/schema/src/core/schema.domain-module.ts","../../build-cli/projects/ngx-grid/src/core/schema/src/core/schema.dispatcher.ts","../../build-cli/projects/ngx-grid/src/core/schema/src/core/schema.domain-publisher.ts","../../build-cli/projects/ngx-grid/src/core/schema/src/core-read/schema.domain-warehouse.ts","../../build-cli/projects/ngx-grid/src/core/schema/src/core/schema.domain-event-repository.ts","../../build-cli/projects/ngx-grid/src/core/schema/src/api/schema.api-module.ts","../../build-cli/projects/ngx-grid/src/feature/schema/src/schema.feature-module.ts","../../build-cli/projects/ngx-grid/src/feature/common/cdk/src/sanitize/sanitize.module.ts","../../build-cli/projects/ngx-grid/src/feature/composition/src/column/column-query.component.ts","../../build-cli/projects/ngx-grid/src/feature/composition/src/composition.feature-module.ts","../../build-cli/projects/ngx-grid/src/feature-view/grid-view/src/structure/gate/structure.gates.ts","../../build-cli/projects/ngx-grid/src/core/structure/source/src/core/loading/set-source-loading.event.ts","../../build-cli/projects/ngx-grid/src/core/structure/source/src/core/loading/source-set-loading.command.ts","../../build-cli/projects/ngx-grid/src/core/structure/source/src/core/loading/source-set-loading.command-handler.ts","../../build-cli/projects/ngx-grid/src/core/structure/source/src/core/origin/set/set-origin.command.ts","../../build-cli/projects/ngx-grid/src/core/structure/source/src/core/origin/set/set-origin.command-handler.ts","../../build-cli/projects/ngx-grid/src/core/structure/source/src/core/origin/edit/structure.edit-source-item.command.ts","../../build-cli/projects/ngx-grid/src/core/structure/source/src/core/origin/edit/structure.edit-source-item.command-handler.ts","../../build-cli/projects/ngx-grid/src/core/structure/source/src/core/origin/edit/structure.source-item-edited.aggregate-event.ts","../../build-cli/projects/ngx-grid/src/core/structure/source/src/core/origin/structure.origin-changed.aggregate-event.ts","../../build-cli/projects/ngx-grid/src/core/structure/source/src/domain/item/item.entity-id.ts","../../build-cli/projects/ngx-grid/src/core/structure/source/src/domain/source.manager.ts","../../build-cli/projects/ngx-grid/src/core/structure/formation/src/domain/selection/formation.selection.ts","../../build-cli/projects/ngx-grid/src/core/structure/formation/src/core/mode/selection-mode-set.event.ts","../../build-cli/projects/ngx-grid/src/core/structure/formation/src/core/mode/selection-mode-set.aggregate-event.ts","../../build-cli/projects/ngx-grid/src/core/structure/formation/src/core/type/selection-type-set.event.ts","../../build-cli/projects/ngx-grid/src/core/structure/formation/src/core/type/selection-type-set.aggregate-event.ts","../../build-cli/projects/ngx-grid/src/core/structure/formation/src/core/set-enabled/selection-enabled-set.event.ts","../../build-cli/projects/ngx-grid/src/core/structure/formation/src/core/set-enabled/selection-enabled-set.aggregate-event.ts","../../build-cli/projects/ngx-grid/src/core/structure/formation/src/api/custom/formation.custom-select.id.ts","../../build-cli/projects/ngx-grid/src/core/structure/formation/src/api/custom/formation.custom-selection.ts","../../build-cli/projects/ngx-grid/src/core/structure/formation/src/domain/custom/formation.custom.manager.ts","../../build-cli/projects/ngx-grid/src/core/structure/formation/src/core/custom/formation.custom-selection-change.event.ts","../../build-cli/projects/ngx-grid/src/core/structure/formation/src/core/custom/formation.custom-selection-change.aggregate-event.ts","../../build-cli/projects/ngx-grid/src/core/structure/formation/src/domain/formation.manager.ts","../../build-cli/projects/ngx-grid/src/core/structure/formation/src/domain/formation.manager-factory.ts","../../build-cli/projects/ngx-grid/src/core/structure/source/src/domain/source.manager-factory.ts","../../build-cli/projects/ngx-grid/src/core/structure/source/src/core/origin/delete/delete-origin-item.command.ts","../../build-cli/projects/ngx-grid/src/core/structure/source/src/core/origin/delete/delete-origin-item.command-handler.ts","../../build-cli/projects/ngx-grid/src/core/structure/source/src/core/origin/structure.source-origin.archive.ts","../../build-cli/projects/ngx-grid/src/core/structure/source/src/core/origin/structure.origin-changed.event-handler.ts","../../build-cli/projects/ngx-grid/src/core/structure/source/src/core/prepared/structure.prepared-items.archive.ts","../../build-cli/projects/ngx-grid/src/core/structure/source/src/core/prepared/structure.prepared-items.event-handler.ts","../../build-cli/projects/ngx-grid/src/core/structure/source/src/core/source.domain-module.ts","../../build-cli/projects/ngx-grid/src/core/structure/source/src/core-read/source.domain-warehouse.ts","../../build-cli/projects/ngx-grid/src/core/structure/source/src/core/source.domain-publisher.ts","../../build-cli/projects/ngx-grid/src/core/structure/source/src/api/source.api-module.ts","../../build-cli/projects/ngx-grid/src/feature/structure/source/src/source.feature-module.ts","../../build-cli/projects/ngx-grid/src/feature/structure/common/src/css-class/css-class.module.ts","../../build-cli/projects/ngx-grid/src/feature/structure/common/src/structure-shared.module.ts","../../build-cli/projects/ngx-grid/src/feature/common/cdk/src/resize-detector/resize-detector.module.ts","../../build-cli/projects/ngx-grid/src/core/structure/formation/src/api/row-selected/row-selected.read-model.ts","../../build-cli/projects/ngx-grid/src/core/structure/formation/src/core-read/row-selected/row-selected.archive.ts","../../build-cli/projects/ngx-grid/src/core/structure/formation/src/core/set-enabled/set-enabled-selection.command.ts","../../build-cli/projects/ngx-grid/src/core/structure/formation/src/core/set-enabled/set-enabled-selection.command-handler.ts","../../build-cli/projects/ngx-grid/src/core/structure/formation/src/core/toggle/toggle-selected-row.command.ts","../../build-cli/projects/ngx-grid/src/core/structure/formation/src/core/toggle/toggle-selected-row.command-handler.ts","../../build-cli/projects/ngx-grid/src/core/structure/formation/src/core-read/row-selected/selected-row-changed.event-handler.ts","../../build-cli/projects/ngx-grid/src/core/structure/formation/src/core/mode/set-selection-mode.command.ts","../../build-cli/projects/ngx-grid/src/core/structure/formation/src/core/mode/set-selection-mode.command-handler.ts","../../build-cli/projects/ngx-grid/src/core/structure/formation/src/core/select-all/select-all-rows.command.ts","../../build-cli/projects/ngx-grid/src/core/structure/formation/src/core/select-all/select-all-rows.command-handler.ts","../../build-cli/projects/ngx-grid/src/core/structure/formation/src/core/unselect-all/unselect-all-rows.command.ts","../../build-cli/projects/ngx-grid/src/core/structure/formation/src/core/unselect-all/unselect-all-rows.command-handler.ts","../../build-cli/projects/ngx-grid/src/core/structure/formation/src/core/type/set-selection-type.command.ts","../../build-cli/projects/ngx-grid/src/core/structure/formation/src/core/type/set-selection-type.command-handler.ts","../../build-cli/projects/ngx-grid/src/core/structure/formation/src/core-read/type/formation.type.repository.ts","../../build-cli/projects/ngx-grid/src/core/structure/formation/src/core-read/mode/formation.mode.repository.ts","../../build-cli/projects/ngx-grid/src/core/structure/formation/src/core-read/enabled/formation.enabled.repository.ts","../../build-cli/projects/ngx-grid/src/core/structure/formation/src/core/set-selected/set-selected-row.command.ts","../../build-cli/projects/ngx-grid/src/core/structure/formation/src/core/set-selected/set-selected-row.command-handler.ts","../../build-cli/projects/ngx-grid/src/core/structure/formation/src/core/select-by-index/select-row-by-index.command.ts","../../build-cli/projects/ngx-grid/src/core/structure/formation/src/core/select-by-index/select-row-by-index.command-handler.ts","../../build-cli/projects/ngx-grid/src/core/structure/formation/src/core/select-by-id/select-row-by-id.command.ts","../../build-cli/projects/ngx-grid/src/core/structure/formation/src/core/select-by-id/select-row-by-id.command-handler.ts","../../build-cli/projects/ngx-grid/src/core/structure/formation/src/core/set-matcher/formation.set-matcher.command.ts","../../build-cli/projects/ngx-grid/src/core/structure/formation/src/core/set-matcher/formation.set-matcher.command-handler.ts","../../build-cli/projects/ngx-grid/src/core/structure/formation/src/core-read/custom/formation.custom.repository.ts","../../build-cli/projects/ngx-grid/src/core/structure/formation/src/core/custom/select/formation.custom-select.command.ts","../../build-cli/projects/ngx-grid/src/core/structure/formation/src/core/custom/select/formation.custom-select.command-handler.ts","../../build-cli/projects/ngx-grid/src/core/structure/formation/src/core/custom/config/formation.set-custom-select-config.command.ts","../../build-cli/projects/ngx-grid/src/core/structure/formation/src/core/custom/config/formation.set-custom-select-config.command-handler.ts","../../build-cli/projects/ngx-grid/src/core/structure/formation/src/core/formation.domain-module.ts","../../build-cli/projects/ngx-grid/src/core/structure/formation/src/core-read/formation.domain-warehouse.ts","../../build-cli/projects/ngx-grid/src/core/structure/formation/src/core/formation.domain-publisher.ts","../../build-cli/projects/ngx-grid/src/core/structure/formation/src/api/formation.api-module.ts","../../build-cli/projects/ngx-grid/src/feature/structure/formation/src/select-custom/select-custom.component.ts","../../build-cli/projects/ngx-grid/src/feature/structure/formation/src/select-custom/select-custom.component.html","../../build-cli/projects/ngx-grid/src/feature/structure/formation/src/formation.feature-module.ts","../../build-cli/projects/ngx-grid/src/core/structure/structure-core/src/core/create/create-structure.command.ts","../../build-cli/projects/ngx-grid/src/core/structure/structure-core/src/core/create/create-structure.command-handler.ts","../../build-cli/projects/ngx-grid/src/core/structure/source/src/core/prepared/structure.prepared-entities-set.aggregate-event.ts","../../build-cli/projects/ngx-grid/src/core/structure/field/src/core/init/fields-inited.aggregate-event.ts","../../build-cli/projects/ngx-grid/src/core/structure/structure-core/src/core/create/structure-created.aggregate-event.ts","../../build-cli/projects/ngx-grid/src/core/structure/filter/src/core/type/init/filter-types-inited.aggregate-event.ts","../../build-cli/projects/ngx-grid/src/core/structure/filter/src/core/remove-all/all-filters-removed.aggregate-event.ts","../../build-cli/projects/ngx-grid/src/core/structure/filter/src/core/add/filter-added.aggregate-event.ts","../../build-cli/projects/ngx-grid/src/core/structure/filter/src/core/remove/filter-removed.aggregate-event.ts","../../build-cli/projects/ngx-grid/src/core/structure/filter/src/core/unique/calculate/unique-filter-calculated.aggregate-event.ts","../../build-cli/projects/ngx-grid/src/core/structure/filter/src/core/unique/select/unique-filter-selected.aggregate-event.ts","../../build-cli/projects/ngx-grid/src/core/structure/filter/src/core/unique/unselect/unique-filter-unselected.aggregate-event.ts","../../build-cli/projects/ngx-grid/src/core/structure/filter/src/core/unique/unselect-all/all-unique-filter-unselected.aggregate-event.ts","../../build-cli/projects/ngx-grid/src/core/structure/filter/src/core/unique/select-all/all-unique-filter-selected.aggregate-event.ts","../../build-cli/projects/ngx-grid/src/core/structure/formation/src/core/selected-row-changed.aggregate-event.ts","../../build-cli/projects/ngx-grid/src/core/structure/structure-core/src/domain/structure.aggregate.ts","../../build-cli/projects/ngx-grid/src/core/structure/sorting/src/domain/sorter.ts","../../build-cli/projects/ngx-grid/src/core/structure/sorting/src/api/id/sorter.id.ts","../../build-cli/projects/ngx-grid/src/core/structure/sorting/src/domain/sorter.manager.ts","../../build-cli/projects/ngx-grid/src/core/structure/filter/src/domain/unique/unique-value.ts","../../build-cli/projects/ngx-grid/src/core/structure/filter/src/domain/unique/unique-value-id.ts","../../build-cli/projects/ngx-grid/src/core/structure/filter/src/domain/unique/unique-value.id-generator.ts","../../build-cli/projects/ngx-grid/src/core/structure/filter/src/domain/unique/unique-value-collection.ts","../../build-cli/projects/ngx-grid/src/core/structure/filter/src/domain/unique/unique-filter-manager.ts","../../build-cli/projects/ngx-grid/src/core/structure/structure-core/src/core/structure.aggregate-factory.ts","../../build-cli/projects/ngx-grid/src/core/structure/structure-core/src/core/structure-aggregate.repository.ts","../../build-cli/projects/ngx-grid/src/core/structure/structure-core/src/persist/domain/in-memory.structure.aggregate-store.ts","../../build-cli/projects/ngx-grid/src/core/structure/structure-core/src/persist/domain/in-memory.structure-aggregate.repository.ts","../../build-cli/projects/ngx-grid/src/core/structure/structure-core/src/core/create/structure-created.event-handler.ts","../../build-cli/projects/ngx-grid/src/core/structure/structure-core/src/core/structure.domain-module.ts","../../build-cli/projects/ngx-grid/src/core/structure/filter/src/core/add/filter-added.event.ts","../../build-cli/projects/ngx-grid/src/core/structure/structure-core/src/persist/api/in-memory.structure.repository.ts","../../build-cli/projects/ngx-grid/src/core/structure/structure-core/src/core/structure.domain-publisher.ts","../../build-cli/projects/ngx-grid/src/core/structure/structure-core/src/api/structure.api-module.ts","../../build-cli/projects/ngx-grid/src/core/list-view/src/core/create/create-list-view.command.ts","../../build-cli/projects/ngx-grid/src/core/list-view/src/core/list-view.command.ts","../../build-cli/projects/ngx-grid/src/core/list-view/src/core/mode/set-list-view-mode.command.ts","../../build-cli/projects/ngx-grid/src/core/list-view/src/core/mode/selector/toggle-list-view-selector.command.ts","../../build-cli/projects/ngx-grid/src/core/list-view/src/core/list-view.dispatcher.ts","../../build-cli/projects/ngx-grid/src/core/list-view/src/core/list-view.id.ts","../../build-cli/projects/ngx-grid/src/core/list-view/src/api/global/list-view.read-model-root-id.ts","../../build-cli/projects/ngx-grid/src/core/list-view/src/api/global/list-view.global-id.ts","../../build-cli/projects/ngx-grid/src/core/list-view/src/api/list-view.publisher.ts","../../build-cli/projects/ngx-grid/src/core/list-view/src/core/list-view.domain-event.ts","../../build-cli/projects/ngx-grid/src/core/list-view/src/core/mode/list-view-mode-set.event.ts","../../build-cli/projects/ngx-grid/src/core/list-view/src/api/list-view.event-repository.ts","../../build-cli/projects/ngx-grid/src/core/list-view/src/domain/mode/list-view-mode.ts","../../build-cli/projects/ngx-grid/src/core/list-view/src/api/mode/list-view.mode.archive.ts","../../build-cli/projects/ngx-grid/src/core/list-view/src/api/mode/selector/list-view.selector.archive.ts","../../build-cli/projects/ngx-grid/src/core/list-view/src/api/list-view.warehouse.ts","../../build-cli/projects/ngx-grid/src/core/list-view/src/persist/in-memory.list-view.store.ts","../../build-cli/projects/ngx-grid/src/core/list-view/src/persist/in-memory.list-view.aggregate-store.ts","../../build-cli/projects/ngx-grid/src/core/list-view/src/core/mode/set-list-view-mode.command-handler.ts","../../build-cli/projects/ngx-grid/src/core/list-view/src/core/mode/selector/toggle-list-view-selector.command-handler.ts","../../build-cli/projects/ngx-grid/src/core/list-view/src/api/mode/list-view-mode-set.event-handler.ts","../../build-cli/projects/ngx-grid/src/core/list-view/src/core/mode/selector/list-view-selector-toggled.event.ts","../../build-cli/projects/ngx-grid/src/core/list-view/src/api/mode/selector/list-view-selector-toggled.event-handler.ts","../../build-cli/projects/ngx-grid/src/core/list-view/src/core/create/create-list-view.command-handler.ts","../../build-cli/projects/ngx-grid/src/core/list-view/src/core/create/list-view-created.event.ts","../../build-cli/projects/ngx-grid/src/core/list-view/src/core/list-view.aggregate-event.ts","../../build-cli/projects/ngx-grid/src/core/list-view/src/core/create/list-view-created.aggregate-event.ts","../../build-cli/projects/ngx-grid/src/core/list-view/src/core/mode/list-view-mode-set.aggregate-event.ts","../../build-cli/projects/ngx-grid/src/core/list-view/src/domain/mode/selector-visibility.ts","../../build-cli/projects/ngx-grid/src/core/list-view/src/core/mode/selector/list-view-selector-toggled.aggregate-event.ts","../../build-cli/projects/ngx-grid/src/core/list-view/src/domain/list-view.aggregate.ts","../../build-cli/projects/ngx-grid/src/core/list-view/src/core/list-view.aggregate-factory.ts","../../build-cli/projects/ngx-grid/src/core/list-view/src/core/list-view.aggregate-repository.ts","../../build-cli/projects/ngx-grid/src/core/list-view/src/persist/in-memory.list-view.aggregate-repository.ts","../../build-cli/projects/ngx-grid/src/core/list-view/src/core/list-view.domain-module.ts","../../build-cli/projects/ngx-grid/src/core/list-view/src/api/list-view.api-module.ts","../../build-cli/projects/ngx-grid/src/feature-view/grid-view/src/grid-view.feature-module.ts","../../build-cli/projects/ngx-grid/src/gui/grid/src/feature/register/gui.grid-id.generator.ts","../../build-cli/projects/ngx-grid/src/gui/grid/src/core/api/gui.grid.module.ts","../../build-cli/projects/ngx-grid/src/generic-ui-ngx-grid.ts"],"sourcesContent":["import { Translation } from '../../api/translation';\n\nexport const enTranslation: Translation = {\n\n\tsourceEmpty: 'There are no items to show.',\n\n\tpagingItemsPerPage: 'Items per page:',\n\tpagingOf: 'of',\n\tpagingNextPage: 'Next',\n\tpagingPrevPage: 'Prev',\n\tpagingNoItems: 'There is no items.',\n\n\tinfoPanelShowing: 'Showing',\n\tinfoPanelItems: 'items',\n\tinfoPanelOutOf: 'out of',\n\n\tinfoPanelThemeMangerTooltipText: 'Theme manager',\n\tinfoPanelColumnManagerTooltipText: 'Column manager',\n\tinfoPanelInfoTooltipText: 'info',\n\n\tthemeManagerModalTitle: 'Theme manager',\n\tthemeManagerModalTheme: 'Theme:',\n\tthemeManagerModalRowColoring: 'Row coloring:',\n\tthemeManagerModalVerticalGrid: 'Vertical grid',\n\tthemeManagerModalHorizontalGrid: 'HorizontalGrid',\n\n\tcolumnManagerModalTitle: 'Manage columns',\n\n\theaderMenuMainTab: 'Menu',\n\theaderMenuMainTabColumnSort: 'Column sort',\n\theaderMenuMainTabHideColumn: 'Hide column',\n\theaderMenuMainTabHighlightColumn: 'Highlight',\n\theaderMenuMainTabMoveLeft: 'Move left',\n\theaderMenuMainTabMoveRight: 'Move right',\n\theaderMenuMainTabColumnSortAscending: 'Ascending',\n\theaderMenuMainTabColumnSortDescending: 'Descending',\n\theaderMenuMainTabColumnSortNone: 'None',\n\theaderMenuFilterTab: 'Filter',\n\theaderMenuColumnsTab: 'Columns',\n\n\tsummariesCount: 'Count',\n\tsummariesDist: 'Dist',\n\tsummariesSum: 'Sum',\n\tsummariesAvg: 'Avg',\n\tsummariesMin: 'Min',\n\tsummariesMax: 'Max',\n\tsummariesMed: 'Med',\n\tsummariesTruthy: 'Truthy',\n\tsummariesFalsy: 'Falsy',\n\tsummariesDistinctValuesTooltip: 'Distinct values',\n\tsummariesAverageTooltip: 'Average',\n\tsummariesMinTooltip: 'Min',\n\tsummariesMaxTooltip: 'Max',\n\tsummariesMedTooltip: 'Median',\n\tsummariesCountTooltip: 'Number of items in the grid'\n};\n","import { enTranslation } from '../core/lang/en';\n\nexport const defaultTranslation = enTranslation;\n","import { TranslationChange } from '../../../../../core/l10n/src/api/translation-change';\nimport { defaultTranslation } from '../../../../../core/l10n/src/api/default-translation';\n\nexport type FieldAccessor = (element?: any) => any;\nexport type ViewTemplateFunction = (cellValue?: any, item?: any, index?: number) => string;\n\nexport interface GuiMultiColumn {\n\n\theader?: string | ViewTemplateFunction;\n\n\tcolumns?: Array<GuiColumn>;\n\n}\n\nexport interface GuiColumn {\n\n\tname?: string;\n\n\tfield?: string | FieldAccessor;\n\n\ttype?: string | GuiDataType;\n\n\tview?: string | GuiCellView | ViewTemplateFunction;\n\n\theader?: string | ViewTemplateFunction;\n\n\twidth?: string | number;\n\n\tenabled?: boolean;\n\n\talign?: string | GuiColumnAlign;\n\n\tsummaries?: GuiColumnSummaries;\n\n\tsorting?: boolean | GuiColumnSorting;\n\n\tcellEditing?: boolean | GuiColumnCellEditing;\n\n\tformatter?: (item: any, index: number) => any;\n\n\tmatcher?: (item: any) => any;\n\n\tcssClasses?: string;\n\n\tstyles?: string;\n\n}\n\nexport enum GuiDataType {\n\tUNKNOWN,\n\tNUMBER,\n\tSTRING,\n\tBOOLEAN,\n\tDATE,\n\tCUSTOM\n}\n\nexport enum GuiCellView {\n\tTEXT,\n\tCHIP,\n\tLINK,\n\tIMAGE,\n\tBOLD,\n\tITALIC,\n\tCHECKBOX,\n\tCUSTOM,\n\tBAR,\n\tPERCENTAGE_BAR,\n\tPERCENTAGE\n}\n\nexport enum GuiNumberCellView {\n\tTEXT,\n\tBOLD,\n\tITALIC,\n\tCHIP\n}\n\nexport enum GuiStringCellView {\n\tTEXT,\n\tBOLD,\n\tITALIC,\n\tCHIP\n}\n\nexport enum GuiBooleanCellView {\n\tTEXT,\n\tBOLD,\n\tITALIC,\n\tCHIP,\n\tCHECKBOX\n}\n\nexport enum GuiDateCellView {\n\tTEXT,\n\tBOLD,\n\tITALIC,\n\tCHIP\n}\n\nexport interface GuiPaging {\n\n\tenabled?: boolean;\n\n\tpage?: number;\n\n\tpageSize?: number;\n\n\tpageSizes?: Array<number>;\n\n\tpagerTop?: boolean;\n\n\tpagerBottom?: boolean;\n\n\tdisplay?: string | GuiPagingDisplay;\n\n}\n\nexport enum GuiTheme {\n\tFABRIC,\n\tMATERIAL,\n\tLIGHT,\n\tDARK,\n\tGENERIC\n}\n\nexport enum GuiRowColoring {\n\tNONE,\n\tEVEN,\n\tODD\n}\n\nexport interface GuiRowStyle {\n\n\tstyle?: string;\n\n\tstyleFunction?: (source: any, index: number) => string;\n\n}\n\nexport interface GuiRowClass {\n\n\tclass?: string;\n\n\tclassFunction?: (source: any, index: number) => string;\n\n}\n\nexport enum GuiSortingOrder {\n\tNONE,\n\tASC,\n\tDESC\n}\n\nexport interface GuiSorting {\n\n\tenabled?: boolean;\n\n\tmultiSorting?: boolean;\n\n}\n\nexport interface GuiFiltering {\n\n\tenabled?: boolean;\n\n}\n\nexport interface GuiQuickFilters {\n\n\tenabled?: boolean;\n\n}\n\nexport interface GuiSearching {\n\n\tenabled?: boolean;\n\n\thighlighting?: boolean;\n\n\tplaceholder?: string;\n\n\tphrase?: string;\n\n}\n\nexport interface GuiSummaries {\n\n\tenabled?: boolean;\n\n\ttop?: boolean;\n\n\tbottom?: boolean;\n\n}\n\nexport interface GuiColumnSummaries {\n\n\tenabled?: boolean;\n\n\tsummariesTypes?: Array<string>;\n\n}\n\nexport interface GuiColumnSorting {\n\n\tenabled?: boolean;\n\n\tmatcher?: (item: any) => any;\n\n\torder?: GuiSortingOrder;\n\n}\n\nexport interface GuiColumnCellEditing {\n\n\tenabled?: boolean;\n\n}\n\nexport interface GuiColumnMenu {\n\n\tenabled?: boolean;\n\n\tsort?: boolean;\n\n\tfilter?: boolean;\n\n\tcolumnsManager?: boolean;\n\n}\n\nexport enum GuiPagingDisplay {\n\tBASIC,\n\tADVANCED\n}\n\nexport enum GuiColumnAlign {\n\tRIGHT,\n\tCENTER,\n\tLEFT\n}\n\nexport interface GuiRowDetail {\n\n\tenabled?: boolean;\n\n\ttemplate?: (item: any, index: number) => string;\n\n}\n\nexport interface GuiTitlePanel {\n\n\tenabled?: boolean;\n\n\ttemplate?: string | ((title: any) => string);\n\n}\n\nexport interface GuiFooterPanel {\n\n\tenabled?: boolean;\n\n\ttemplate?: string | ((title: any) => string);\n\n}\n\nexport interface GuiInfoPanel {\n\n\tenabled?: boolean;\n\n\tinfoDialog?: boolean;\n\n\tcolumnsManager?: boolean;\n\n\tschemaManager?: boolean;\n\n\tsourceSize?: boolean;\n\n}\n\nexport enum GuiRowSelectionType {\n\tROW,\n\tCHECKBOX,\n\tRADIO\n}\n\nexport enum GuiRowSelectionMode {\n\tSINGLE,\n\tMULTIPLE\n}\n\nexport type GuiRowSelectionIdMatcher = (item: any) => any;\n\nexport interface GuiRowCustomSelectionFunction {\n\n\tkey?: string;\n\n\ttext: string;\n\n\tselect: (ids: Array<any>) => Array<any>;\n\n}\n\nexport enum GuiRowCustomSelectionType {\n\tSELECT_ALL = 'SELECT_ALL',\n\tUNSELECT_ALL = 'UNSELECT_ALL',\n\tINVERT = 'INVERT'\n}\n\nexport interface GuiRowCustomSelection {\n\n\tenabled?: boolean;\n\n\tselections?: Array<GuiRowCustomSelectionType | GuiRowCustomSelectionFunction>;\n\n}\n\nexport interface GuiRowSelection {\n\n\tenabled?: boolean;\n\n\tselectedRowIds?: Array<any>,\n\n\tselectedRowIndexes?: Array<number>,\n\n\ttype?: string | GuiRowSelectionType;\n\n\tmode?: string | GuiRowSelectionMode;\n\n\tmatcher?: string | GuiRowSelectionIdMatcher;\n\n\tcustom?: GuiRowCustomSelection;\n\n}\n\nexport interface GuiSelectedRow {\n\n\tsource?: any;\n\n\tindex: number;\n\n\titemId: any;\n\n}\n\nexport interface GuiLocalization {\n\n\ttranslation?: GuiTranslation;\n\n\ttranslationResolver?: (key: string, value: string) => string;\n\n}\n\nexport interface GuiCellEdit {\n\n\tenabled?: boolean;\n\n\trowEdit?: (value: any, item: any, index: number) => boolean;\n\n\tcellEdit?: (value: any, item: any, index: number) => boolean;\n\n}\n\nexport type GuiTranslation = TranslationChange;\n\nexport const GuiDefaultTranslation = defaultTranslation;\n","export enum DataType {\n\tUNKNOWN,\n\tNUMBER,\n\tSTRING,\n\tBOOLEAN,\n\tDATE,\n\tCUSTOM\n}\n","import { GuiDataType } from '../../core/api/gui.grid.public-api';\nimport { DataType } from '../../../../../core/structure/field/src/domain/field/data/data-type';\n\nexport class GuiGridColumnTypeConverter {\n\n\tconvertType(type: string | GuiDataType): DataType {\n\n\t\tif (typeof type === 'string') {\n\t\t\treturn this.convertTypeString(type);\n\t\t} else {\n\t\t\treturn this.convertTypeEnum(type);\n\t\t}\n\t}\n\n\tprivate convertTypeEnum(enumType: GuiDataType): DataType {\n\n\t\tswitch (enumType) {\n\n\t\t\tcase GuiDataType.STRING:\n\t\t\t\treturn DataType.STRING;\n\n\t\t\tcase GuiDataType.NUMBER:\n\t\t\t\treturn DataType.NUMBER;\n\n\t\t\tcase GuiDataType.BOOLEAN:\n\t\t\t\treturn DataType.BOOLEAN;\n\n\t\t\tcase GuiDataType.DATE:\n\t\t\t\treturn DataType.DATE;\n\n\t\t\tcase GuiDataType.UNKNOWN:\n\t\t\t\treturn DataType.UNKNOWN;\n\n\t\t\tcase GuiDataType.CUSTOM:\n\t\t\t\treturn DataType.CUSTOM;\n\n\t\t\tdefault:\n\t\t\t\treturn DataType.STRING;\n\t\t}\n\t}\n\n\tprivate convertTypeString(type: string): DataType {\n\t\tconst loweredType = type.toLocaleLowerCase();\n\n\t\tswitch (loweredType) {\n\n\t\t\tcase 'string':\n\t\t\t\treturn DataType.STRING;\n\n\t\t\tcase 'number':\n\t\t\t\treturn DataType.NUMBER;\n\n\t\t\tcase 'boolean':\n\t\t\t\treturn DataType.BOOLEAN;\n\n\t\t\tcase 'date':\n\t\t\t\treturn DataType.DATE;\n\n\t\t\tcase 'unknown':\n\t\t\t\treturn DataType.UNKNOWN;\n\n\t\t\tcase 'custom':\n\t\t\t\treturn DataType.CUSTOM;\n\n\t\t\tdefault:\n\t\t\t\treturn DataType.STRING;\n\t\t}\n\t}\n\n}\n","export enum SummariesType {\n\tCOUNT = 1 << 10,\n\tDISTINCT = 1 << 0,\n\tSUM = 1 << 1,\n\tAVERAGE = 1 << 2,\n\tMIN = 1 << 3,\n\tMAX = 1 << 4,\n\tMEDIAN = 1 << 5,\n\tTRUTHY = 1 << 6, // doesn't work\n\tFALSY = 1 << 7, // doesn't work\n\tEARLIEST = 1 << 8, // doesn't work\n\tLATEST = 1 << 9, // doesn't work\n}\n\n// count\n// count distinct\n// percentile\n// std.dev\n// std.dev Pop\n// variance\n// variance pop\n","import { ColumnSummariesConfig } from '../../../../../../core/composition/src/api/column/column-summaries.config';\nimport { SummariesType } from '../../../../../../core/structure/summaries/src/domain/summaries.type';\n\nimport { GuiColumnSummaries } from '../../../../../../gui.grid.index';\n\n\nexport class GuiGridColumnSummariesConverter {\n\n\tconvert(summariesConfig: GuiColumnSummaries): ColumnSummariesConfig {\n\t\tconst columnSummariesConfig: ColumnSummariesConfig = {};\n\n\t\tif (summariesConfig.enabled !== undefined && summariesConfig.enabled !== null) {\n\t\t\tcolumnSummariesConfig.enabled = summariesConfig.enabled;\n\t\t}\n\n\t\tif (summariesConfig.summariesTypes !== undefined && summariesConfig.summariesTypes !== null) {\n\t\t\tcolumnSummariesConfig.summariesTypes = this.convertSummariesTypes(summariesConfig.summariesTypes);\n\t\t}\n\n\t\treturn columnSummariesConfig;\n\t}\n\n\tprivate convertSummariesTypes(configSummariesTypes: Array<string>): Array<SummariesType> {\n\n\t\tconst summariesTypes: Array<SummariesType> = [];\n\n\t\tconfigSummariesTypes.forEach((type: string) => {\n\n\t\t\tconst summariesType = this.convertSummariesType(type);\n\n\t\t\tif (summariesType !== undefined && summariesType !== null) {\n\t\t\t\tsummariesTypes.push(summariesType);\n\t\t\t}\n\t\t});\n\n\t\treturn summariesTypes;\n\t}\n\n\tprivate convertSummariesType(type: string): SummariesType {\n\n\t\tconst loweredSummariesType = type.toLocaleLowerCase();\n\n\t\tswitch (loweredSummariesType) {\n\n\t\t\tcase 'count':\n\t\t\t\treturn SummariesType.COUNT;\n\n\t\t\tcase 'distinct':\n\t\t\t\treturn SummariesType.DISTINCT;\n\n\t\t\tcase 'sum':\n\t\t\t\treturn SummariesType.SUM;\n\n\t\t\tcase 'average':\n\t\t\t\treturn SummariesType.AVERAGE;\n\n\t\t\tcase 'min':\n\t\t\t\treturn SummariesType.MIN;\n\n\t\t\tcase 'max':\n\t\t\t\treturn SummariesType.MAX;\n\n\t\t\tcase 'median':\n\t\t\t\treturn SummariesType.MEDIAN;\n\n\t\t\tcase 'truthy':\n\t\t\t\treturn SummariesType.TRUTHY;\n\n\t\t\tcase 'falsy':\n\t\t\t\treturn SummariesType.FALSY;\n\n\t\t\tcase 'earliest':\n\t\t\t\treturn SummariesType.EARLIEST;\n\n\t\t\tcase 'latest':\n\t\t\t\treturn SummariesType.LATEST;\n\n\t\t\tdefault:\n\t\t\t\treturn null;\n\n\t\t}\n\t}\n\n}\n","export enum CellView {\n\tTEXT,\n\tNUMBER,\n\tCHIP,\n\tLINK,\n\tIMAGE,\n\tBOLD,\n\tITALIC,\n\tCHECKBOX,\n\tCUSTOM,\n\tFUNCTION,\n\tDATE,\n\tBAR,\n\tPERCENTAGE_BAR,\n\tPERCENTAGE,\n\tNG_TEMPLATE,\n\tHTML\n}\n","import { GuiCellView, ViewTemplateFunction } from '../../core/api/gui.grid.public-api';\nimport { CellView } from '../../../../../core/composition/src/domain/column/cell-view';\n\nexport class GuiGridColumnViewConverter {\n\n\tconvert(view: string | GuiCellView | ViewTemplateFunction): CellView | ViewTemplateFunction {\n\n\t\tif (typeof view === 'string') {\n\t\t\treturn this.convertString(view);\n\t\t} else if (typeof view === 'function') {\n\t\t\treturn view;\n\t\t} else {\n\t\t\treturn this.convertEnum(view);\n\t\t}\n\t}\n\n\tprivate convertString(view: string): CellView {\n\n\t\tconst loweredView = view.toLocaleLowerCase();\n\n\t\tswitch (loweredView) {\n\n\t\t\tcase 'text':\n\t\t\t\treturn CellView.TEXT;\n\n\t\t\tcase 'chip':\n\t\t\t\treturn CellView.CHIP;\n\n\t\t\tcase 'link':\n\t\t\t\treturn CellView.LINK;\n\n\t\t\tcase 'image':\n\t\t\t\treturn CellView.IMAGE;\n\n\t\t\tcase 'bold':\n\t\t\t\treturn CellView.BOLD;\n\n\t\t\tcase 'italic':\n\t\t\t\treturn CellView.ITALIC;\n\n\t\t\tcase 'checkbox':\n\t\t\t\treturn CellView.CHECKBOX;\n\n\t\t\tcase 'custom':\n\t\t\t\treturn CellView.CUSTOM;\n\n\t\t\tcase 'bar':\n\t\t\t\treturn CellView.BAR;\n\n\t\t\tcase 'percentage_bar':\n\t\t\t\treturn CellView.PERCENTAGE_BAR;\n\n\t\t\tcase 'percentage':\n\t\t\t\treturn CellView.PERCENTAGE;\n\n\t\t\tdefault:\n\t\t\t\treturn CellView.TEXT;\n\t\t}\n\t}\n\n\tprivate convertEnum(view: GuiCellView): CellView {\n\n\t\tswitch (view) {\n\n\t\t\tcase GuiCellView.TEXT:\n\t\t\t\treturn CellView.TEXT;\n\n\t\t\tcase GuiCellView.CHIP:\n\t\t\t\treturn CellView.CHIP;\n\n\t\t\tcase GuiCellView.LINK:\n\t\t\t\treturn CellView.LINK;\n\n\t\t\tcase GuiCellView.IMAGE:\n\t\t\t\treturn CellView.IMAGE;\n\n\t\t\tcase GuiCellView.BOLD:\n\t\t\t\treturn CellView.BOLD;\n\n\t\t\tcase GuiCellView.ITALIC:\n\t\t\t\treturn CellView.ITALIC;\n\n\t\t\tcase GuiCellView.CHECKBOX:\n\t\t\t\treturn CellView.CHECKBOX;\n\n\t\t\tcase GuiCellView.CUSTOM:\n\t\t\t\treturn CellView.CUSTOM;\n\n\t\t\tcase GuiCellView.BAR:\n\t\t\t\treturn CellView.BAR;\n\n\t\t\tcase GuiCellView.PERCENTAGE_BAR:\n\t\t\t\treturn CellView.PERCENTAGE_BAR;\n\n\t\t\tcase GuiCellView.PERCENTAGE:\n\t\t\t\treturn CellView.PERCENTAGE;\n\n\t\t\tdefault:\n\t\t\t\treturn CellView.TEXT;\n\t\t}\n\t}\n\n}\n","import { ColumnSortingConfig } from '../../../../../../core/composition/src/api/sort/column-sorting.config';\n\nimport { GuiColumnSorting } from '../../../../../../gui.grid.index';\n\nexport class GuiGridColumnSortingConverter {\n\n\tconvert(sortingConfig: boolean | GuiColumnSorting): ColumnSortingConfig {\n\n\t\tif (typeof sortingConfig === 'boolean') {\n\t\t\treturn {\n\t\t\t\tenabled: sortingConfig\n\t\t\t};\n\t\t} else {\n\t\t\treturn sortingConfig as any;\n\t\t}\n\t}\n\n}\n","import { GuiColumnCellEditing } from '../../../../../../gui.grid.index';\nimport { ColumnCellEditingConfig } from '../../../../../../core/composition/src/api/column/column-cell-editing.config';\n\nexport class GuiGridColumnCellEditingConverter {\n\n\tconvert(config: boolean | GuiColumnCellEditing): ColumnCellEditingConfig {\n\n\t\tif (typeof config === 'boolean') {\n\t\t\treturn {\n\t\t\t\tenabled: config\n\t\t\t};\n\t\t}\n\n\t\treturn config as ColumnCellEditingConfig;\n\t}\n\n}\n","export enum ColumnAlign {\n\tRIGHT,\n\tCENTER,\n\tLEFT\n}\n","import { GuiColumnAlign } from '../../../core/api/gui.grid.public-api';\nimport { ColumnAlign } from '../../../../../../core/composition/src/domain/column/column-align';\n\nexport class GuiGridColumnAlignConverter {\n\n\tconvert(align: string | GuiColumnAlign): ColumnAlign {\n\n\t\tif (typeof align === 'string') {\n\t\t\treturn this.convertTypeString(align);\n\t\t} else {\n\t\t\treturn this.convertTypeEnum(align);\n\t\t}\n\t}\n\n\tprivate convertTypeEnum(align: GuiColumnAlign): ColumnAlign {\n\n\t\tswitch (align) {\n\n\t\t\tcase GuiColumnAlign.RIGHT:\n\t\t\t\treturn ColumnAlign.RIGHT;\n\n\t\t\tcase GuiColumnAlign.CENTER:\n\t\t\t\treturn ColumnAlign.CENTER;\n\n\t\t\tcase GuiColumnAlign.LEFT:\n\t\t\t\treturn ColumnAlign.LEFT;\n\n\t\t\tdefault:\n\t\t\t\treturn ColumnAlign.LEFT;\n\t\t}\n\t}\n\n\tprivate convertTypeString(align: string): ColumnAlign {\n\t\tconst loweredType = align.toLocaleLowerCase();\n\n\t\tswitch (loweredType) {\n\n\t\t\tcase 'right':\n\t\t\t\treturn ColumnAlign.RIGHT;\n\n\t\t\tcase 'center':\n\t\t\t\treturn ColumnAlign.CENTER;\n\n\t\t\tcase 'left':\n\t\t\t\treturn ColumnAlign.LEFT;\n\n\t\t\tdefault:\n\t\t\t\treturn ColumnAlign.LEFT;\n\t\t}\n\t}\n}\n","import { GuiColumn, GuiMultiColumn } from '../../core/api/gui.grid.public-api';\nimport { ColumnConfig, MultiColumnConfig } from '../../../../../core/composition/src/api/column/column.config';\n\nimport { GuiGridColumnTypeConverter } from './gui.grid.column-type.converter';\nimport { GuiGridColumnSummariesConverter } from './summaries/gui.grid.column-summaries.converter';\nimport { GuiGridColumnViewConverter } from './gui.grid.column-view.converter';\nimport { GuiGridColumnSortingConverter } from './sorting/gui.grid.column-sorting.converter';\nimport { GuiGridColumnCellEditingConverter } from './cell-editing/gui.grid.column-cell-editing.converter';\nimport { GuiGridColumnAlignConverter } from './align/gui.grid.column-align.converter';\nimport { CellView } from '../../../../../core/composition/src/domain/column/cell-view';\n\n\nexport class GuiGridColumnConverter {\n\n\tprivate readonly columnTypeConverter = new GuiGridColumnTypeConverter();\n\n\tprivate readonly columnSummariesConverter = new GuiGridColumnSummariesConverter();\n\n\tprivate readonly columnViewConverter = new GuiGridColumnViewConverter();\n\n\tprivate readonly columnSortingConverter = new GuiGridColumnSortingConverter();\n\n\tprivate readonly columnCellEditingConverter = new GuiGridColumnCellEditingConverter();\n\n\tprivate readonly columnAlignConverter = new GuiGridColumnAlignConverter();\n\n\tconvert(configs: Array<GuiColumn | GuiMultiColumn>): Array<ColumnConfig | MultiColumnConfig> {\n\n\t\treturn configs.map((config) => {\n\n\t\t\tif ((config as GuiMultiColumn).columns !== undefined) {\n\n\t\t\t\tconst columns = ((config as GuiMultiColumn).columns).map((c) => this.convertColumn(c));\n\n\t\t\t\treturn {\n\t\t\t\t\theader: config.header,\n\t\t\t\t\tcolumns: columns\n\t\t\t\t};\n\n\t\t\t} else {\n\t\t\t\treturn this.convertColumn(config);\n\t\t\t}\n\t\t});\n\t}\n\n\tprivate convertColumn(guiColumn: GuiColumn): ColumnConfig {\n\t\tconst columnConfig: ColumnConfig = {};\n\n\t\tif (guiColumn.name !== undefined && guiColumn.name !== null) {\n\t\t\tcolumnConfig.name = guiColumn.name;\n\t\t} else if (guiColumn.field !== undefined && guiColumn.field !== null) {\n\t\t\tif (typeof guiColumn.field === 'string') {\n\t\t\t\tcolumnConfig.name = guiColumn.field;\n\t\t\t}\n\t\t}\n\n\t\tif (guiColumn.type !== undefined && guiColumn.type !== null) {\n\t\t\tcolumnConfig.type = this.columnTypeConverter.convertType(guiColumn.type);\n\t\t}\n\n\t\tif (guiColumn.header !== undefined && guiColumn.header !== null) {\n\t\t\tcolumnConfig.header = guiColumn.header;\n\t\t}\n\n\t\tif (guiColumn.enabled !== undefined && guiColumn.enabled !== null) {\n\t\t\tcolumnConfig.enabled = guiColumn.enabled;\n\t\t}\n\n\t\tif (guiColumn.field !== undefined && guiColumn.field !== null) {\n\t\t\tcolumnConfig.field = guiColumn.field;\n\t\t}\n\n\t\tif (guiColumn.width !== undefined && guiColumn.width !== null) {\n\t\t\tcolumnConfig.width = guiColumn.width;\n\t\t}\n\n\t\tif (guiColumn.align !== undefined && guiColumn.align !== null) {\n\t\t\tcolumnConfig.align = this.columnAlignConverter.convert(guiColumn.align);\n\t\t}\n\n\t\tif (guiColumn.view !== undefined && guiColumn.view !== null) {\n\t\t\tcolumnConfig.view = this.columnViewConverter.convert(guiColumn.view);\n\t\t}\n\n\t\tif (guiColumn.summaries !== undefined && guiColumn.summaries !== null) {\n\t\t\tcolumnConfig.summaries = this.columnSummariesConverter.convert(guiColumn.summaries);\n\t\t}\n\n\t\tif (guiColumn.sorting !== undefined && guiColumn.sorting !== null) {\n\t\t\tcolumnConfig.sorting = this.columnSortingConverter.convert(guiColumn.sorting);\n\t\t}\n\n\t\tif (guiColumn.cellEditing !== undefined && guiColumn.cellEditing !== null) {\n\t\t\tcolumnConfig.cellEditing = this.columnCellEditingConverter.convert(guiColumn.cellEditing);\n\t\t}\n\n\t\tif (guiColumn.formatter !== undefined && guiColumn.formatter !== null) {\n\t\t\tcolumnConfig.formatter = guiColumn.formatter;\n\t\t}\n\n\t\tif (guiColumn.matcher !== undefined && guiColumn.matcher !== null) {\n\t\t\tcolumnConfig.matcher = guiColumn.matcher;\n\t\t}\n\n\t\tif (guiColumn.cssClasses !== undefined && guiColumn.cssClasses !== null) {\n\t\t\tcolumnConfig.cssClasses = guiColumn.cssClasses;\n\t\t}\n\n\t\tif (guiColumn.styles !== undefined && guiColumn.styles !== null) {\n\t\t\tcolumnConfig.styles = guiColumn.styles;\n\t\t}\n\n\t\tif ((guiColumn as any).templateRef !== undefined && (guiColumn as any).templateRef !== null) {\n\t\t\tcolumnConfig.templateRef = (guiColumn as any).templateRef;\n\t\t\tcolumnConfig.view = CellView.NG_TEMPLATE;\n\t\t}\n\n\t\treturn columnConfig;\n\t}\n\n}\n","export enum SchemaTheme {\n\tFABRIC,\n\tMATERIAL,\n\tLIGHT,\n\tDARK,\n\tGENERIC\n}\n","import { GuiTheme } from '../../core/api/gui.grid.public-api';\nimport { SchemaTheme } from '../../../../../core/schema/src/api/theme/schema-theme';\n\n\nexport class GuiGridThemeConverter {\n\n\tconvert(theme: string | GuiTheme): SchemaTheme {\n\n\t\tif (typeof theme === 'string') {\n\t\t\treturn this.convertString(theme);\n\t\t} else {\n\t\t\treturn this.convertEnum(theme);\n\t\t}\n\n\t}\n\n\tconvertToGuiTheme(theme: SchemaTheme): GuiTheme {\n\n\t\tswitch (theme) {\n\n\t\t\tcase SchemaTheme.MATERIAL:\n\t\t\t\treturn GuiTheme.MATERIAL;\n\n\t\t\tcase SchemaTheme.FABRIC:\n\t\t\t\treturn GuiTheme.FABRIC;\n\n\t\t\tcase SchemaTheme.LIGHT:\n\t\t\t\treturn GuiTheme.LIGHT;\n\n\t\t\tcase SchemaTheme.DARK:\n\t\t\t\treturn GuiTheme.DARK;\n\n\t\t\tcase SchemaTheme.GENERIC:\n\t\t\t\treturn GuiTheme.GENERIC;\n\n\t\t\tdefault:\n\t\t\t\treturn GuiTheme.GENERIC;\n\n\t\t}\n\t}\n\n\tprivate convertString(theme: string): SchemaTheme {\n\n\t\tconst loweredTheme = theme.toLocaleLowerCase();\n\n\t\tswitch (loweredTheme) {\n\n\t\t\tcase 'material':\n\t\t\t\treturn SchemaTheme.MATERIAL;\n\n\t\t\tcase 'fabric':\n\t\t\t\treturn SchemaTheme.FABRIC;\n\n\t\t\tcase 'light':\n\t\t\t\treturn SchemaTheme.LIGHT;\n\n\t\t\tcase 'dark':\n\t\t\t\treturn SchemaTheme.DARK;\n\n\t\t\tcase 'generic':\n\t\t\t\treturn SchemaTheme.GENERIC;\n\n\t\t\tdefault:\n\t\t\t\treturn SchemaTheme.FABRIC;\n\n\t\t}\n\n\t}\n\n\tprivate convertEnum(theme: GuiTheme): SchemaTheme {\n\n\t\tswitch (theme) {\n\n\t\t\tcase GuiTheme.MATERIAL:\n\t\t\t\treturn SchemaTheme.MATERIAL;\n\n\t\t\tcase GuiTheme.FABRIC:\n\t\t\t\treturn SchemaTheme.FABRIC;\n\n\t\t\tcase GuiTheme.LIGHT:\n\t\t\t\treturn SchemaTheme.LIGHT;\n\n\t\t\tcase GuiTheme.DARK:\n\t\t\t\treturn SchemaTheme.DARK;\n\n\t\t\tcase GuiTheme.GENERIC:\n\t\t\t\treturn SchemaTheme.GENERIC;\n\n\t\t\tdefault:\n\t\t\t\treturn SchemaTheme.FABRIC;\n\n\t\t}\n\n\t}\n\n}\n","export enum RowColoring {\n\tNONE,\n\tEVEN,\n\tODD\n}\n","import { GuiRowColoring } from '../../../core/api/gui.grid.public-api';\nimport { RowColoring } from '../../../../../../core/schema/src/api/row-coloring/row-coloring';\n\n\nexport class GuiGridRowColoringConverter {\n\n\tconvert(rowColoring: string | GuiRowColoring): RowColoring {\n\n\t\tif (typeof rowColoring === 'string') {\n\t\t\treturn this.convertString(rowColoring);\n\t\t} else {\n\t\t\treturn this.convertEnum(rowColoring);\n\t\t}\n\n\t}\n\n\tconvertToGuiRowColoring(value: RowColoring): GuiRowColoring {\n\t\tswitch (value) {\n\n\t\t\tcase RowColoring.NONE:\n\t\t\t\treturn GuiRowColoring.NONE;\n\n\t\t\tcase RowColoring.EVEN:\n\t\t\t\treturn GuiRowColoring.EVEN;\n\n\t\t\tcase RowColoring.ODD:\n\t\t\t\treturn GuiRowColoring.ODD;\n\n\t\t\tdefault:\n\t\t\t\treturn GuiRowColoring.EVEN;\n\n\t\t}\n\t}\n\n\tprivate convertString(rowColoring: string): RowColoring {\n\n\t\tconst loweredRowColoring = rowColoring.toLocaleLowerCase();\n\n\t\tswitch (loweredRowColoring) {\n\n\t\t\tcase 'none':\n\t\t\t\treturn RowColoring.NONE;\n\n\t\t\tcase 'even':\n\t\t\t\treturn RowColoring.EVEN;\n\n\t\t\tcase 'odd':\n\t\t\t\treturn RowColoring.ODD;\n\n\t\t\tdefault:\n\t\t\t\treturn RowColoring.EVEN;\n\n\t\t}\n\n\t}\n\n\tprivate convertEnum(rowColoring: GuiRowColoring): RowColoring {\n\n\t\tswitch (rowColoring) {\n\n\t\t\tcase GuiRowColoring.NONE:\n\t\t\t\treturn RowColoring.NONE;\n\n\t\t\tcase GuiRowColoring.EVEN:\n\t\t\t\treturn RowColoring.EVEN;\n\n\t\t\tcase GuiRowColoring.ODD:\n\t\t\t\treturn RowColoring.ODD;\n\n\t\t\tdefault:\n\t\t\t\treturn RowColoring.EVEN;\n\n\t\t}\n\n\t}\n\n}\n","import { Injectable } from '@angular/core';\n\nimport { GuiColumnMenu } from '../../../core/api/gui.grid.public-api';\n\nimport { ColumnMenuConfig } from '../../../../../../core/structure/structure-core/src/api/config/column-menu-config';\n\n@Injectable()\nexport class GuiGridColumnMenuConverter {\n\n\tconvert(config: GuiColumnMenu): ColumnMenuConfig {\n\t\treturn config as ColumnMenuConfig;\n\t}\n}\n","export enum PagingDisplayMode {\n\tBASIC,\n\tADVANCED\n}\n","import { PagingDisplayMode } from '../../../../../feature/structure/paging/src/mode/paging-display-mode';\nimport { GuiPaging, GuiPagingDisplay } from '../../core/api/gui.grid.public-api';\nimport { PagingConfig } from '../../../../../core/structure/paging/src/api/config/paging-config';\n\n\nexport class GuiGridPagingConverter {\n\n\tconvert(guiPaging: GuiPaging): PagingConfig {\n\n\t\tconst pagingConfig: PagingConfig = {};\n\n\t\tif (guiPaging.enabled !== undefined && guiPaging.enabled !== null) {\n\t\t\tpagingConfig.enabled = guiPaging.enabled;\n\t\t}\n\n\t\tif (guiPaging.page !== undefined && guiPaging.page !== null) {\n\t\t\tpagingConfig.page = guiPaging.page;\n\t\t}\n\n\t\tif (guiPaging.pageSize !== undefined && guiPaging.pageSize !== null) {\n\t\t\tpagingConfig.pageSize = guiPaging.pageSize;\n\t\t}\n\n\t\tif (guiPaging.pageSizes !== undefined && guiPaging.pageSizes !== null) {\n\t\t\tpagingConfig.pageSizes = guiPaging.pageSizes;\n\t\t}\n\n\t\tif (guiPaging.pagerTop !== undefined && guiPaging.pagerTop !== null) {\n\t\t\tpagingConfig.pagerTop = guiPaging.pagerTop;\n\t\t}\n\n\t\tif (guiPaging.pagerBottom !== undefined && guiPaging.pagerBottom !== null) {\n\t\t\tpagingConfig.pagerBottom = guiPaging.pagerBottom;\n\t\t}\n\n\t\tif (guiPaging.display !== undefined && guiPaging.display !== null) {\n\t\t\tpagingConfig.displayMode = this.convertDisplay(guiPaging.display);\n\t\t}\n\n\t\treturn pagingConfig;\n\t}\n\n\tprivate convertDisplay(pagingDisplay: string | GuiPagingDisplay): PagingDisplayMode {\n\n\t\tif (typeof pagingDisplay === 'string') {\n\t\t\treturn this.convertString(pagingDisplay);\n\t\t} else {\n\t\t\treturn this.convertEnum(pagingDisplay);\n\t\t}\n\t}\n\n\tprivate convertString(pagingDisplay: string): PagingDisplayMode {\n\n\t\tconst loweredPaging = pagingDisplay.toLocaleLowerCase();\n\n\t\tswitch (loweredPaging) {\n\n\t\t\tcase 'basic':\n\t\t\t\treturn PagingDisplayMode.BASIC;\n\n\t\t\tcase 'advanced':\n\t\t\t\treturn PagingDisplayMode.ADVANCED;\n\n\t\t\tdefault:\n\t\t\t\treturn PagingDisplayMode.BASIC;\n\t\t}\n\t}\n\n\tprivate convertEnum(pagingDisplay: GuiPagingDisplay): PagingDisplayMode {\n\n\t\tswitch (pagingDisplay) {\n\n\t\t\tcase GuiPagingDisplay.BASIC:\n\t\t\t\treturn PagingDisplayMode.BASIC;\n\n\t\t\tcase GuiPagingDisplay.ADVANCED:\n\t\t\t\treturn PagingDisplayMode.ADVANCED;\n\n\t\t\tdefault:\n\t\t\t\treturn PagingDisplayMode.BASIC;\n\t\t}\n\t}\n\n}\n","export abstract class GenericBuilder<T> {\n\n\tprotected abstract buildObject(): T;\n\n\tbuild(): T {\n\t\treturn this.buildObject();\n\t}\n\n}\n","import { GenericBuilder } from '../../../../../common/src/cdk/generic-builder';\nimport { FormationCustomSelectionConfig } from '../custom/formation.custom-selection.config';\n\nexport enum RowSelectionType {\n\tROW = 'ROW',\n\tCHECKBOX = 'CHECKBOX',\n\tRADIO = 'RADIO'\n}\n\nexport enum RowSelectionMode {\n\tSINGLE = 'SINGLE',\n\tMULTIPLE = 'MULTIPLE'\n}\n\nexport class RowSelection {\n\n\tprivate readonly enabled: boolean;\n\n\tprivate readonly selectedRowIndexes: Array<number>;\n\n\tprivate readonly selectedRowIds: Array<string>;\n\n\tprivate readonly type: RowSelectionType;\n\n\tprivate readonly mode: RowSelectionMode;\n\n\tprivate readonly matcher: (item: any) => any;\n\n\tprivate readonly customConfig?: FormationCustomSelectionConfig;\n\n\tprivate constructor(config: {\n\t\tenabled?: boolean,\n\t\tselectedRowIndexes?: Array<number>\n\t\tselectedRowIds?: Array<string>\n\t\tmode?: RowSelectionMode,\n\t\ttype?: RowSelectionType,\n\t\tmatcher?: (item: any) => any,\n\t\tconfig?: FormationCustomSelectionConfig\n\t}) {\n\t\tif (config.enabled !== undefined) {\n\t\t\tthis.enabled = config.enabled;\n\t\t}\n\n\t\tif (config?.selectedRowIndexes) {\n\t\t\tthis.selectedRowIndexes = config.selectedRowIndexes;\n\t\t}\n\n\t\tif (config?.selectedRowIds) {\n\t\t\tthis.selectedRowIds = config.selectedRowIds;\n\t\t}\n\n\t\tif (config?.mode) {\n\t\t\tthis.mode = config.mode;\n\t\t}\n\n\t\tif (config?.type) {\n\t\t\tthis.type = config.type;\n\t\t}\n\n\t\tif (config?.matcher) {\n\t\t\tthis.matcher = config.matcher;\n\t\t}\n\n\t\tif (config?.config) {\n\t\t\tthis.customConfig = config.config;\n\t\t}\n\t}\n\n\tisModeDefined(): boolean {\n\t\treturn this.mode !== undefined;\n\t}\n\n\tisTypeDefined(): boolean {\n\t\treturn this.type !== undefined;\n\t}\n\n\tisSelectedRowIndexesDefined(): boolean {\n\t\treturn this.selectedRowIndexes !== undefined;\n\t}\n\n\tisSelectedRowIdsDefined(): boolean {\n\t\treturn this.selectedRowIds !== undefined;\n\t}\n\n\tisEnabledDefined(): boolean {\n\t\treturn this.enabled !== undefined;\n\t}\n\n\tisMatcherDefined(): boolean {\n\t\treturn this.matcher !== undefined;\n\t}\n\n\tisEnabled(): boolean {\n\t\treturn this.enabled;\n\t}\n\n\tisCustomSelectConfig(): boolean {\n\t\treturn this.customConfig !== undefined;\n\t}\n\n\tgetSelectedRowIndexes(): Array<number> {\n\t\treturn this.selectedRowIndexes;\n\t}\n\n\tgetSelectedRowIds(): Array<string> {\n\t\treturn this.selectedRowIds;\n\t}\n\n\tgetMode(): RowSelectionMode {\n\t\treturn this.mode;\n\t}\n\n\tgetType(): RowSelectionType {\n\t\treturn this.type;\n\t}\n\n\tgetMatcher(): (item: any) => any {\n\t\treturn this.matcher;\n\t}\n\n\tgetCustomSelectConfig(): FormationCustomSelectionConfig {\n\t\treturn this.customConfig;\n\t}\n\n\t// eslint-disable-next-line @typescript-eslint/member-ordering\n\tstatic Builder = class RowSelectionBuilder extends GenericBuilder<RowSelection> {\n\n\t\tenabled: boolean;\n\n\t\tselectedRowIndexes: Array<number>;\n\n\t\tselectedRowIds: Array<string>;\n\n\t\ttype: RowSelectionType;\n\n\t\tmode: RowSelectionMode;\n\n\t\tconfig: FormationCustomSelectionConfig;\n\n\t\tmatcher: (item: any) => any;\n\n\t\tconstructor() {\n\t\t\tsuper();\n\t\t}\n\n\t\tbuildObject(): RowSelection {\n\t\t\treturn new RowSelection({\n\t\t\t\tenabled: this.enabled,\n\t\t\t\tselectedRowIndexes: this.selectedRowIndexes,\n\t\t\t\tselectedRowIds: this.selectedRowIds,\n\t\t\t\ttype: this.type,\n\t\t\t\tmode: this.mode,\n\t\t\t\tmatcher: this.matcher,\n\t\t\t\tconfig: this.config\n\t\t\t});\n\t\t}\n\n\t\twithEnabled(enabled: boolean): RowSelectionBuilder {\n\t\t\tthis.enabled = enabled;\n\t\t\treturn this;\n\t\t}\n\n\t\twithSelectedRowIndexes(indexes: Array<number>): RowSelectionBuilder {\n\t\t\tthis.selectedRowIndexes = indexes;\n\t\t\treturn this;\n\t\t}\n\n\t\twithSelectedRowIds(ids: Array<string>): RowSelectionBuilder {\n\t\t\tthis.selectedRowIds = ids;\n\t\t\treturn this;\n\t\t}\n\n\t\twithType(type: RowSelectionType): RowSelectionBuilder {\n\t\t\tthis.type = type;\n\t\t\treturn this;\n\t\t}\n\n\t\twithMode(mode: RowSelectionMode): RowSelectionBuilder {\n\t\t\tthis.mode = mode;\n\t\t\treturn this;\n\t\t}\n\n\t\twithMatcher(matcher: (item: any) => any): RowSelectionBuilder {\n\t\t\tthis.matcher = matcher;\n\t\t\treturn this;\n\t\t}\n\n\t\twitCustomSelection(config: FormationCustomSelectionConfig): RowSelectionBuilder {\n\t\t\tthis.config = config;\n\t\t\treturn this;\n\t\t}\n\n\t};\n\n}\n","import { FormationCustomSelectType } from './formation.custom-select-type';\n\nexport interface FormationCustomSelectionFunction {\n\n\tkey?: string;\n\n\ttext: string;\n\n\tselect: (ids: Array<any>) => Array<any>;\n\n}\n\nexport class FormationCustomSelectionConfig {\n\n\tenabled?: boolean;\n\n\tselections?: Array<FormationCustomSelectType | FormationCustomSelectionFunction>;\n\n}\n","import {\n\tGuiRowCustomSelection,\n\tGuiRowCustomSelectionFunction,\n\tGuiRowCustomSelectionType,\n\tGuiRowSelection,\n\tGuiRowSelectionIdMatcher,\n\tGuiRowSelectionMode,\n\tGuiRowSelectionType\n} from '../../core/api/gui.grid.public-api';\nimport { RowSelection, RowSelectionMode, RowSelectionType } from '../../../../../core/structure/formation/src/api/row-selected/row-selection';\nimport {\n\tFormationCustomSelectionConfig,\n\tFormationCustomSelectionFunction\n} from '../../../../../core/structure/formation/src/api/custom/formation.custom-selection.config';\nimport { FormationCustomSelectType } from '../../../../../core/structure/formation/src/api/custom/formation.custom-select-type';\n\nexport class GuiGridRowSelectionConverter {\n\n\tconvert(selection: boolean | GuiRowSelection): RowSelection {\n\n\t\tconst builder = new RowSelection.Builder();\n\n\t\tif (typeof selection === 'boolean') {\n\t\t\treturn builder.withEnabled(selection).build();\n\t\t} else {\n\n\t\t\tif (selection.enabled !== undefined) {\n\t\t\t\tbuilder.withEnabled(selection.enabled);\n\t\t\t}\n\n\t\t\tif (selection.selectedRowIndexes !== undefined) {\n\t\t\t\tbuilder.withSelectedRowIndexes(selection.selectedRowIndexes);\n\t\t\t}\n\n\t\t\tif (selection.selectedRowIds !== undefined) {\n\t\t\t\tbuilder.withSelectedRowIds(selection.selectedRowIds);\n\t\t\t}\n\n\t\t\tif (selection.mode !== undefined) {\n\t\t\t\tconst mode = this.convertMode(selection.mode);\n\n\t\t\t\tbuilder.withMode(mode);\n\t\t\t}\n\n\t\t\tif (selection.type !== undefined) {\n\t\t\t\tconst type = this.convertType(selection.type);\n\n\t\t\t\tbuilder.withType(type);\n\t\t\t}\n\n\t\t\tif (selection.matcher !== undefined) {\n\t\t\t\tconst matcher = this.convertMatcher(selection.matcher);\n\n\t\t\t\tbuilder.withMatcher(matcher);\n\t\t\t}\n\n\t\t\tif (selection.custom !== undefined) {\n\t\t\t\tconst customSelection = this.convertCustomSelection(selection.custom);\n\n\t\t\t\tbuilder.witCustomSelection(customSelection);\n\t\t\t}\n\n\t\t\treturn builder.build();\n\t\t}\n\n\t}\n\n\tprivate convertMode(mode: string | GuiRowSelectionMode): RowSelectionMode {\n\n\t\tif (typeof mode === 'string') {\n\n\t\t\tswitch (mode.toLowerCase()) {\n\t\t\t\tcase 'single':\n\t\t\t\t\treturn RowSelectionMode.SINGLE;\n\t\t\t\tcase 'multiple':\n\t\t\t\t\treturn RowSelectionMode.MULTIPLE;\n\t\t\t\tdefault:\n\t\t\t\t\treturn RowSelectionMode.SINGLE;\n\t\t\t}\n\t\t} else {\n\t\t\tswitch (mode) {\n\n\t\t\t\tcase GuiRowSelectionMode.SINGLE:\n\t\t\t\t\treturn RowSelectionMode.SINGLE;\n\n\t\t\t\tcase GuiRowSelectionMode.MULTIPLE:\n\t\t\t\t\treturn RowSelectionMode.MULTIPLE;\n\n\t\t\t\tdefault:\n\t\t\t\t\treturn RowSelectionMode.SINGLE;\n\t\t\t}\n\t\t}\n\n\t}\n\n\tprivate convertType(type: string | GuiRowSelectionType): RowSelectionType {\n\n\t\tif (typeof type === 'string') {\n\n\t\t\tswitch (type.toLowerCase()) {\n\t\t\t\tcase 'row':\n\t\t\t\t\treturn RowSelectionType.ROW;\n\t\t\t\tcase 'checkbox':\n\t\t\t\t\treturn RowSelectionType.CHECKBOX;\n\t\t\t\tcase 'radio':\n\t\t\t\t\treturn RowSelectionType.RADIO;\n\t\t\t\tdefault:\n\t\t\t\t\treturn RowSelectionType.ROW;\n\t\t\t}\n\t\t} else {\n\t\t\tswitch (type) {\n\n\t\t\t\tcase GuiRowSelectionType.ROW:\n\t\t\t\t\treturn RowSelectionType.ROW;\n\n\t\t\t\tcase GuiRowSelectionType.CHECKBOX:\n\t\t\t\t\treturn RowSelectionType.CHECKBOX;\n\n\t\t\t\tcase GuiRowSelectionType.RADIO:\n\t\t\t\t\treturn RowSelectionType.RADIO;\n\n\t\t\t\tdefault:\n\t\t\t\t\treturn RowSelectionType.ROW;\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate convertMatcher(matcher: string | GuiRowSelectionIdMatcher): (item: any) => any {\n\n\t\tif (typeof matcher === 'string') {\n\t\t\treturn (item: any) => item[matcher];\n\t\t} else {\n\t\t\treturn matcher;\n\t\t}\n\t}\n\n\tprivate convertCustomSelection(config: GuiRowCustomSelection): FormationCustomSelectionConfig {\n\t\tlet formationConfig = new FormationCustomSelectionConfig();\n\n\t\tif (config?.enabled) {\n\t\t\tformationConfig.enabled = config.enabled;\n\t\t}\n\n\t\tif (config?.selections && Array.isArray(config?.selections)) {\n\n\t\t\tformationConfig.selections =\n\t\t\t\tconfig.selections.map((customSelection: GuiRowCustomSelectionType | GuiRowCustomSelectionFunction) => {\n\n\t\t\t\t\tif (typeof customSelection === 'string') {\n\t\t\t\t\t\treturn <unknown>customSelection as FormationCustomSelectType;\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn customSelection as FormationCustomSelectionFunction;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t}\n\n\t\treturn formationConfig;\n\t}\n\n}\n","import { Component, ContentChild, Input, TemplateRef } from '@angular/core';\nimport {\n\tFieldAccessor,\n\tGuiCellView,\n\tGuiColumn,\n\tGuiColumnAlign,\n\tGuiColumnCellEditing,\n\tGuiColumnSorting,\n\tGuiColumnSummaries,\n\tGuiDataType,\n\tViewTemplateFunction\n} from '../../core/api/gui.grid.public-api';\n\n@Component({\n\tselector: 'gui-grid-column',\n\ttemplate: ''\n})\nexport class GuiGridColumnComponent implements GuiColumn {\n\n\t@ContentChild(TemplateRef, { static: true })\n\ttemplateRef: TemplateRef<any>;\n\n\t@Input()\n\tname?: string;\n\n\t@Input()\n\tfield?: string | FieldAccessor;\n\n\t@Input()\n\ttype?: string | GuiDataType;\n\n\t@Input()\n\tview?: string | GuiCellView | ViewTemplateFunction;\n\n\t@Input()\n\theader?: string | ViewTemplateFunction;\n\n\t@Input()\n\twidth?: string | number;\n\n\t@Input()\n\tenabled?: boolean;\n\n\t@Input()\n\talign?: string | GuiColumnAlign;\n\n\t@Input()\n\tsummaries?: GuiColumnSummaries;\n\n\t@Input()\n\tsorting?: boolean | GuiColumnSorting;\n\n\t@Input()\n\tcellEditing?: boolean | GuiColumnCellEditing;\n\n\t@Input()\n\tformatter?: (item: any, index: number) => any;\n\n\t@Input()\n\tmatcher?: (item: any) => any;\n\n\t@Input()\n\tcssClasses?: string;\n\n\t@Input()\n\tstyles?: string;\n\n}\n","import { CellEditConfig } from '../../../../../../core/structure/structure-core/src/api/edit/cell-edit.config';\nimport { GuiCellEdit } from '../../../core/api/gui.grid.public-api';\n\n\nexport class GuiGridCellEditConverter {\n\n\tconvert(config: boolean | GuiCellEdit): CellEditConfig {\n\n\t\tif (typeof config === 'boolean') {\n\t\t\treturn {\n\t\t\t\tenabled: config\n\t\t\t};\n\t\t}\n\n\t\treturn config;\n\t}\n}\n","import { Changes } from './ng-changes';\n\ninterface InputChanges {\n\n\tisChanged(): boolean;\n\n\tifChanged(callback: () => void): void;\n\n}\n\nexport function checkInput<T>(prop: Changes<T>): InputChanges {\n\n\treturn {\n\t\tisChanged: () => {\n\t\t\treturn hasChanged(prop);\n\t\t},\n\t\tifChanged: (callback: () => void) => {\n\t\t\tif (hasChanged(prop)) {\n\t\t\t\tcallback();\n\t\t\t}\n\t\t}\n\t} as InputChanges;\n\n}\n\nexport function ifChanged<T>(prop: Changes<T>, callback: (value: any) => void): void {\n\tif (hasChanged(prop)) {\n\t\tcallback(prop.currentValue);\n\t}\n}\n\nexport function hasChanged<T>(prop: Changes<T>) {\n\treturn prop !== undefined && prop.currentValue !== undefined;\n}\n","import { AfterContentInit, ContentChildren, Directive, EventEmitter, Input, OnChanges, Output, QueryList } from '@angular/core';\n\nimport {\n\tGuiCellEdit,\n\tGuiColumn,\n\tGuiColumnMenu,\n\tGuiFiltering,\n\tGuiFooterPanel,\n\tGuiInfoPanel,\n\tGuiLocalization,\n\tGuiMultiColumn,\n\tGuiPaging,\n\tGuiQuickFilters,\n\tGuiRowClass,\n\tGuiRowColoring,\n\tGuiRowDetail,\n\tGuiRowSelection,\n\tGuiRowStyle,\n\tGuiSearching,\n\tGuiSelectedRow,\n\tGuiSorting,\n\tGuiSummaries,\n\tGuiTheme,\n\tGuiTitlePanel\n} from '../core/api/gui.grid.public-api';\nimport { ColumnConfig, MultiColumnConfig } from '../../../../core/composition/src/api/column/column.config';\n\nimport { GuiGridColumnConverter } from './column/gui.grid.column.converter';\nimport { GuiGridThemeConverter } from './theme/gui.grid.theme.converter';\nimport { GuiGridRowColoringConverter } from './theme/coloring/gui.grid.row-coloring.converter';\nimport { ColumnMenuConfig } from '../../../../core/structure/structure-core/src/api/config/column-menu-config';\nimport { GuiGridColumnMenuConverter } from './column/menu/gui.grid.column-menu.converter';\nimport { GuiGridPagingConverter } from './paging/gui.grid.paging.converter';\nimport { SchemaTheme } from '../../../../core/schema/src/api/theme/schema-theme';\nimport { RowColoring } from '../../../../core/schema/src/api/row-coloring/row-coloring';\nimport { GuiGridRowSelectionConverter } from './row-selection/gui.grid.row-selection.converter';\nimport { RowSelection } from '../../../../core/structure/formation/src/api/row-selected/row-selection';\nimport { SelectedRow } from '../../../../core/structure/formation/src/api/row-selected/selected-row';\nimport { NgChanges } from '../../../../feature/common/component/src/ng-changes';\nimport { GuiGridColumnComponent } from './column/gui.grid-column.component';\nimport { GuiGridCellEditConverter } from './column/cell-editing/gui.grid.cell-edit.converter';\nimport { CellEditConfig } from '../../../../core/structure/structure-core/src/api/edit/cell-edit.config';\nimport { ifChanged } from '../../../../feature/common/component/src/check.input';\n\n@Directive()\nexport abstract class GuiGridGateway implements OnChanges, AfterContentInit {\n\n\t@ContentChildren(GuiGridColumnComponent)\n\tguiGridColumnComponent: QueryList<GuiGridColumnComponent>;\n\n\t/**\n\t * INPUTS\n\t */\n\t@Input()\n\tcolumnHeaderTop: boolean;\n\n\t@Input()\n\tcolumnHeaderBottom: boolean;\n\n\t@Input()\n\tmaxHeight: number;\n\n\t@Input()\n\twidth: number;\n\n\t@Input()\n\trowHeight: number;\n\n\t@Input()\n\tautoResizeWidth: boolean;\n\n\t@Input()\n\tsource: Array<any> = [];\n\n\t@Input()\n\tcolumns: Array<GuiColumn | GuiMultiColumn> = [];\n\n\t@Input()\n\tpaging: boolean | GuiPaging;\n\n\t@Input()\n\tverticalGrid: boolean;\n\n\t@Input()\n\thorizontalGrid: boolean;\n\n\t@Input()\n\ttheme: string | GuiTheme;\n\n\t@Input()\n\trowColoring: string | GuiRowColoring;\n\n\t@Input()\n\trowSelection: boolean | GuiRowSelection;\n\n\t@Input()\n\trowStyle: GuiRowStyle;\n\n\t@Input()\n\trowClass: GuiRowClass;\n\n\t@Input()\n\tloading: boolean;\n\n\t@Input()\n\tvirtualScroll: boolean;\n\n\t@Input()\n\tsorting: boolean | GuiSorting;\n\n\t@Input()\n\tsearching: boolean | GuiSearching;\n\n\t@Input()\n\ttitlePanel: GuiTitlePanel;\n\n\t@Input()\n\tfooterPanel: GuiFooterPanel;\n\n\t/**\n\t * @experimental\n\t */\n\t@Input()\n\tfiltering: boolean | GuiFiltering;\n\n\t/**\n\t * @experimental\n\t */\n\t@Input()\n\tquickFilters: boolean | GuiQuickFilters;\n\n\t/**\n\t * @experimental\n\t */\n\t@Input()\n\teditMode: boolean;\n\n\t/**\n\t * @experimental\n\t */\n\t@Input()\n\tcellEditing: boolean | GuiCellEdit;\n\n\t@Input()\n\tinfoPanel: boolean | GuiInfoPanel;\n\n\t/**\n\t * @experimental\n\t */\n\t@Input()\n\tsummaries: GuiSummaries;\n\n\t@Input()\n\tcolumnMenu: GuiColumnMenu;\n\n\t@Input()\n\trowDetail: GuiRowDetail;\n\n\t@Input()\n\tlocalization: GuiLocalization;\n\n\n\t/**\n\t * OUTPUTS\n\t */\n\t@Output()\n\tpageChanged: EventEmitter<number> = new EventEmitter<number>();\n\n\t@Output()\n\tpageSizeChanged: EventEmitter<number> = new EventEmitter<number>();\n\n\t@Output()\n\titemsSelected: EventEmitter<any> = new EventEmitter();\n\n\t@Output()\n\tselectedRows: EventEmitter<Array<GuiSelectedRow>> = new EventEmitter();\n\n\t@Output()\n\tcolumnsChanged: EventEmitter<void> = new EventEmitter();\n\n\t@Output()\n\tcontainerWidthChanged: EventEmitter<number> = new EventEmitter();\n\n\t@Output()\n\tsourceEdited: EventEmitter<{ after: any, before: any }> = new EventEmitter();\n\n\t@Output()\n\tcellEditEntered: EventEmitter<void> = new EventEmitter();\n\n\t@Output()\n\tcellEditCanceled: EventEmitter<void> = new EventEmitter();\n\n\t@Output()\n\tcellEditSubmitted: EventEmitter<void> = new EventEmitter();\n\n\t@Output()\n\tsearchPhraseChanged: EventEmitter<string> = new EventEmitter();\n\n\t@Output()\n\tthemeChanged: EventEmitter<GuiTheme> = new EventEmitter();\n\n\t@Output()\n\thorizontalGridChanged: EventEmitter<boolean> = new EventEmitter();\n\n\t@Output()\n\tverticalGridChanged: EventEmitter<boolean> = new EventEmitter();\n\n\t@Output()\n\trowColoringChanged: EventEmitter<GuiRowColoring> = new EventEmitter();\n\n\n\t/** @internal */\n\tcolumnsConfig: Array<ColumnConfig | MultiColumnConfig>;\n\n\tthemeConfig: any; // SchemaTheme;\n\n\trowColoringConfig: any; // RowColoring;\n\n\tcolumnMenuConfig: ColumnMenuConfig;\n\n\trowSelectionConfig: RowSelection;\n\n\tcellEditingConfig: CellEditConfig;\n\n\tprotected readonly gridColumnConverter: GuiGridColumnConverter = new GuiGridColumnConverter();\n\n\tprotected readonly gridThemeConverter: GuiGridThemeConverter = new GuiGridThemeConverter();\n\n\tprotected readonly gridRowColoringConverter: GuiGridRowColoringConverter = new GuiGridRowColoringConverter();\n\n\tprotected readonly gridColumnMenuConverter: GuiGridColumnMenuConverter = new GuiGridColumnMenuConverter();\n\n\tprotected readonly gridPagingConverter: GuiGridPagingConverter = new GuiGridPagingConverter();\n\n\tprotected readonly gridRowSelectionConverter: GuiGridRowSelectionConverter = new GuiGridRowSelectionConverter();\n\n\tprotected readonly guiGridCellEditConverter: GuiGridCellEditConverter = new GuiGridCellEditConverter();\n\n\tprotected constructor() {\n\t}\n\n\tngOnChanges(changes: NgChanges<GuiGridGateway>): void {\n\n\t\tifChanged(changes.columns, () => {\n\t\t\tthis.columnsConfig = this.gridColumnConverter.convert(this.columns);\n\t\t});\n\n\t\tifChanged(changes.theme, () => {\n\t\t\tthis.themeConfig = this.gridThemeConverter.convert(this.theme);\n\t\t});\n\n\t\tifChanged(changes.rowColoring, () => {\n\t\t\tthis.rowColoringConfig = this.gridRowColoringConverter.convert(this.rowColoring);\n\t\t});\n\n\t\tifChanged(changes.columnMenu, () => {\n\t\t\tthis.columnMenuConfig = this.gridColumnMenuConverter.convert(this.columnMenu);\n\t\t});\n\n\t\tifChanged(changes.rowSelection, () => {\n\t\t\tthis.rowSelectionConfig = this.gridRowSelectionConverter.convert(this.rowSelection);\n\t\t});\n\n\t\tifChanged(changes.cellEditing, () => {\n\t\t\tthis.cellEditingConfig = this.guiGridCellEditConverter.convert(this.cellEditing);\n\t\t});\n\n\t\t// TODO\n\t\tifChanged(changes.paging, () => {\n\t\t\tif (typeof this.paging !== 'boolean') {\n\t\t\t\tthis.paging = this.gridPagingConverter.convert(this.paging);\n\t\t\t}\n\t\t});\n\t}\n\n\tngAfterContentInit() {\n\t\tif (this.guiGridColumnComponent && this.guiGridColumnComponent.toArray().length > 0) {\n\t\t\tthis.columnsConfig = this.gridColumnConverter.convert(this.guiGridColumnComponent.toArray());\n\t\t}\n\t}\n\n\tonPageChange(page: number): void {\n\t\tthis.pageChanged.emit(page);\n\t}\n\n\tonPageSizeChange(pageSize: number): void {\n\t\tthis.pageSizeChanged.emit(pageSize);\n\t}\n\n\tonItemSelect(item: any): void {\n\t\tthis.itemsSelected.emit(item);\n\t}\n\n\tonRowsSelect(rows: Array<SelectedRow>): void {\n\n\t\tconst guiRows: Array<GuiSelectedRow> = rows.map((row) => {\n\t\t\treturn {\n\t\t\t\tindex: row.getIndex(),\n\t\t\t\tsource: row.getItem(),\n\t\t\t\titemId: row.getItemId()\n\t\t\t};\n\t\t});\n\n\t\tthis.selectedRows.emit(guiRows);\n\t}\n\n\tonColumnsChange(): void {\n\t\tthis.columnsChanged.emit();\n\t}\n\n\tonContainerWidthChange(containerWidth: number): void {\n\t\tthis.containerWidthChanged.emit(containerWidth);\n\t}\n\n\tonSourceEdit(value: any): void {\n\t\tthis.sourceEdited.emit(value);\n\t}\n\n\tonCellEditEnter(): void {\n\t\tthis.cellEditEntered.emit();\n\t}\n\n\tonCellEditSubmit(): void {\n\t\tthis.cellEditSubmitted.emit();\n\t}\n\n\tonCellEditCancel(): void {\n\t\tthis.cellEditCanceled.emit();\n\t}\n\n\tonSearchPhrase(value: string): void {\n\t\tthis.searchPhraseChanged.emit(value);\n\t}\n\n\tonTheme(value: SchemaTheme): void {\n\t\tthis.themeChanged.emit(this.gridThemeConverter.convertToGuiTheme(value));\n\t}\n\n\tonHorizontalGrid(value: boolean): void {\n\t\tthis.horizontalGridChanged.emit(value);\n\t}\n\n\tonVerticalGrid(value: boolean): void {\n\t\tthis.verticalGridChanged.emit(value);\n\t}\n\n\tonRowColoring(value: RowColoring): void {\n\t\tthis.rowColoringChanged.emit(this.gridRowColoringConverter.convertToGuiRowColoring(value));\n\t}\n\n\n}\n","import { InjectionToken } from '@angular/core';\n\nexport const structureParentComponent = new InjectionToken('StructureParentComponent');\n","import { ItemEntityId } from '../../../../source/src/domain/item/item.entity-id';\nimport { ItemEntity } from '../../../../source/src/domain/item/item.entity';\n\nexport class SelectedRow {\n\n\tprivate readonly index: number;\n\n\tprivate readonly itemId: ItemEntityId;\n\n\tprivate readonly item: ItemEntity;\n\n\tconstructor(item: ItemEntity,\n\t\t\t\tindex: number,\n\t\t\t\titemId: ItemEntityId) {\n\t\tthis.item = item;\n\t\tthis.index = index;\n\t\tthis.itemId = itemId;\n\t}\n\n\tgetItem(): ItemEntity {\n\t\treturn this.item;\n\t}\n\n\tgetIndex(): number {\n\t\treturn this.index;\n\t}\n\n\tgetItemId(): ItemEntityId {\n\t\treturn this.itemId;\n\t}\n\n}\n","import { GuiRowColoring, GuiSelectedRow, GuiTheme } from '../../core/api/gui.grid.public-api';\nimport { FormationPublisher } from '../../../../../core/structure/formation/src/api/formation.publisher';\nimport { StructureId } from '../../../../../core/structure/structure-core/src/api/global/structure.id';\nimport { SourcePublisher } from '../../../../../core/structure/source/src/api/source.publisher';\nimport { SelectedRow } from '../../../../../core/structure/formation/src/api/row-selected/selected-row';\nimport { FormationWarehouse } from '../../../../../core/structure/formation/src/api/formation.warehouse';\nimport { SearchPublisher } from '../../../../../core/structure/search/src/api/search.publisher';\nimport { SchemaReadModelRootId } from '../../../../../core/schema/src/api/global/schema.read-model-root-id';\nimport { GuiGridThemeCommandInvoker } from '../theme/gui.grid.theme.command-invoker';\nimport { StructurePublisher } from '../../../../../core/structure/structure-core/src/api/structure.publisher';\nimport { PagingConfig } from '../../../../../core/structure/paging/src/api/config/paging-config';\nimport { PagingPublisher } from '../../../../../core/structure/paging/src/api/paging.publisher';\nimport { SearchConfig } from '../../../../../core/structure/search/src/api/config/search-config';\nimport { SummariesPublisher } from '../../../../../core/structure/summaries/src/api/summaries.publisher';\nimport { SortingPublisher } from '../../../../../core/structure/sorting/src/api/sorting.publisher';\nimport { SortingConfig } from '../../../../../core/structure/sorting/src/api/config/sorting-config';\nimport { CompositionWarehouse } from '../../../../../core/composition/src/api/composition.warehouse';\nimport { CompositionPublisher } from '../../../../../core/composition/src/api/composition.publisher';\nimport { CompositionId } from '../../../../../core/composition/src/api/global/composition.id';\nimport { FilterIntegration } from '../../../../../core/structure/filter/src/api-integration/filter.integration';\nimport { GuiFilter, GuiFilterCollection } from './filter/gui.filter';\nimport { FilterForColumn } from '../../../../../core/structure/filter/src/api-integration/filter-integration.api';\n\n\nexport interface GuiGridApi {\n\n\tsetSource(source: Array<any>): void;\n\n\tshowLoading(): void;\n\n\thideLoading(): void;\n\n\tgetSelectedRows(): Array<GuiSelectedRow>;\n\n\tselectAll(): void;\n\n\tunselectAll(): void;\n\n\tdeleteSelectedRows(): void;\n\n\tdeleteRow(row: GuiSelectedRow): void;\n\n\tdeleteRows(rows: Array<GuiSelectedRow>): void;\n\n\t/**\n\t * Columns\n\t */\n\tgetColumns(): Array<any>;\n\n\t/**\n\t * Filtering\n\t */\n\tgetFilters(): GuiFilterCollection;\n\n\tgetFiltersForColumn(columnName: string): Array<GuiFilter>;\n\n\tgetFilterTypes(): Array<string>;\n\n\tgetFilterTypesForColumn(columnName: string): Array<string>;\n\n\tremoveAll(): void;\n\n\tremoveFilter(filterId: string): void;\n\n\tremoveFiltersFromColumn(columnName: string): void;\n\n\tfilter(columnName: string, filterType: string, value: any): void;\n\n\t// addFilter(columnName: string, filterType: string, value: any): string;\n\n\t// editFilter(filterId: string, value): void;\n\n\t/**\n\t * Paging\n\t */\n\tenablePaging(): void;\n\n\tdisablePaging(): void;\n\n\tnextPage(): void;\n\n\tprevPage(): void;\n\n\tchangePageSize(pageSize: number): void;\n\n\tsetPagingConfig(config: PagingConfig): void;\n\n\t/**\n\t * Searching\n\t */\n\tsetSearchingConfig(config: SearchConfig): void;\n\n\tsearch(phrase: string): void;\n\n\tclearSearchPhrase(): void;\n\n\t/**\n\t * View port\n\t */\n\tscrollToTop(): void;\n\n\tscrollToBottom(): void;\n\n\tscrollToRowByIndex(index: number): void;\n\n\t/**\n\t * Visual - Schema\n\t */\n\tsetTheme(theme: string | GuiTheme): void;\n\n\tsetVerticalGrid(enabled: boolean): void;\n\n\tsetHorizontalGrid(enabled: boolean): void;\n\n\tsetRowColoring(rowColoring: string | GuiRowColoring): void;\n\n\t/**\n\t * Virtual scroll\n\t */\n\tenableVirtualScroll(): void;\n\n\tdisableVirtualScroll(): void;\n\n\t/**\n\t * Summaries\n\t */\n\tenableSummaries(): void;\n\n\tdisableSummaries(): void;\n\n\t/**\n\t * Sorting\n\t */\n\tsetSortConfig(config: SortingConfig): void;\n\n}\n\n\nexport class GuiGridApiProvider {\n\n\tprivate readonly structureId: StructureId;\n\n\tprivate readonly compositionId: CompositionId;\n\n\tprivate readonly schemaId: SchemaReadModelRootId;\n\n\tprivate readonly formationCommandInvoker: FormationPublisher;\n\n\tprivate readonly formationWarehouse: FormationWarehouse;\n\n\tprivate readonly compositionCommandInvoker: CompositionPublisher;\n\n\tprivate readonly compositionWarehouse: CompositionWarehouse;\n\n\tprivate readonly filterIntegration: FilterIntegration;\n\n\tprivate readonly sourceCommandInvoker: SourcePublisher;\n\n\tprivate readonly searchCommandInvoker: SearchPublisher;\n\n\tprivate readonly gridThemeCommandInvoker: GuiGridThemeCommandInvoker;\n\n\tprivate readonly structureCommandInvoker: StructurePublisher;\n\n\tprivate readonly summariesCommandInvoker: SummariesPublisher;\n\n\tprivate readonly sortingCommandInvoker: SortingPublisher;\n\n\tprivate readonly pagingCommandInvoker: PagingPublisher;\n\n\tconstructor(structureId: StructureId,\n\t\t\t\tcompositionId: CompositionId,\n\t\t\t\tschemaId: SchemaReadModelRootId,\n\t\t\t\tformationCommandDispatcher: FormationPublisher,\n\t\t\t\tformationWarehouse: FormationWarehouse,\n\t\t\t\tcompositionCommandInvoker: CompositionPublisher,\n\t\t\t\tcompositionWarehouse: CompositionWarehouse,\n\t\t\t\tfilterIntegration: FilterIntegration,\n\t\t\t\tsourceCommandInvoker: SourcePublisher,\n\t\t\t\tsearchCommandInvoker: SearchPublisher,\n\t\t\t\tgridThemeCommandInvoker: GuiGridThemeCommandInvoker,\n\t\t\t\tstructureCommandInvoker: StructurePublisher,\n\t\t\t\tsummariesCommandInvoker: SummariesPublisher,\n\t\t\t\tsortingCommandInvoker: SortingPublisher,\n\t\t\t\tpagingCommandInvoker: PagingPublisher) {\n\t\tthis.structureId = structureId;\n\t\tthis.compositionId = compositionId;\n\t\tthis.schemaId = schemaId;\n\t\tthis.formationCommandInvoker = formationCommandDispatcher;\n\t\tthis.formationWarehouse = formationWarehouse;\n\t\tthis.compositionCommandInvoker = compositionCommandInvoker;\n\t\tthis.compositionWarehouse = compositionWarehouse;\n\t\tthis.filterIntegration = filterIntegration;\n\t\tthis.sourceCommandInvoker = sourceCommandInvoker;\n\t\tthis.searchCommandInvoker = searchCommandInvoker;\n\t\tthis.gridThemeCommandInvoker = gridThemeCommandInvoker;\n\t\tthis.structureCommandInvoker = structureCommandInvoker;\n\t\tthis.summariesCommandInvoker = summariesCommandInvoker;\n\t\tthis.sortingCommandInvoker = sortingCommandInvoker;\n\t\tthis.pagingCommandInvoker = pagingCommandInvoker;\n\t}\n\n\tprovide(): GuiGridApi {\n\n\t\tconst structureId = this.structureId,\n\t\t\tcompositionId = this.compositionId,\n\t\t\tschemaId = this.schemaId,\n\t\t\tfcd = this.formationCommandInvoker,\n\t\t\tfw = this.formationWarehouse,\n\t\t\tcompositionCommandInvoker = this.compositionCommandInvoker,\n\t\t\tcompositionWarehouse = this.compositionWarehouse,\n\t\t\tfilterIntegration = this.filterIntegration,\n\t\t\tscd = this.sourceCommandInvoker,\n\t\t\tsearchCommandInvoker = this.searchCommandInvoker,\n\t\t\tgridThemeCommandInvoker = this.gridThemeCommandInvoker,\n\t\t\tstructureCommandInvoker = this.structureCommandInvoker,\n\t\t\tsummariesCommandInvoker = this.summariesCommandInvoker,\n\t\t\tsortingCommandInvoker = this.sortingCommandInvoker,\n\t\t\tpagingCommandInvoker = this.pagingCommandInvoker;\n\n\t\treturn {\n\n\t\t\tsetSource(source: Array<any>): void {\n\t\t\t\tscd.setOrigin(source, structureId);\n\t\t\t},\n\n\t\t\tshowLoading(): void {\n\t\t\t\tscd.setLoading(true, structureId);\n\t\t\t},\n\n\t\t\thideLoading(): void {\n\t\t\t\tscd.setLoading(false, structureId);\n\t\t\t},\n\n\t\t\tdeleteRow(row: GuiSelectedRow): void {\n\t\t\t\tscd.deleteRow(new SelectedRow(row.source, row.index, row.itemId), structureId);\n\t\t\t},\n\n\t\t\tdeleteRows(rows: Array<GuiSelectedRow>): void {\n\t\t\t\tconst selectedRows = rows.map((row: GuiSelectedRow) => new SelectedRow(row.source, row.index, row.itemId));\n\n\t\t\t\tscd.deleteRows(selectedRows, structureId);\n\t\t\t},\n\n\t\t\tdeleteSelectedRows(): void {\n\t\t\t\t// this.sourceCommandDispatcher.\n\t\t\t},\n\n\t\t\tgetSelectedRows(): Array<GuiSelectedRow> {\n\n\t\t\t\tconst rows = fw.findSelectedRows(structureId).getValueOrNullOrThrowError();\n\n\t\t\t\treturn rows.map((r: SelectedRow) => {\n\t\t\t\t\treturn { source: r.getItem(), index: r.getIndex(), itemId: r.getItemId() } as GuiSelectedRow;\n\t\t\t\t});\n\t\t\t},\n\n\t\t\tselectAll(): void {\n\t\t\t\tfcd.selectAll(structureId);\n\t\t\t},\n\n\t\t\tunselectAll(): void {\n\t\t\t\tfcd.unselectAll(structureId);\n\t\t\t},\n\n\n\t\t\t/**\n\t\t\t * Columns\n\t\t\t */\n\t\t\tgetColumns(): Array<any> {\n\n\t\t\t\tlet columns: ReadonlyArray<any> = [];\n\n\t\t\t\tcompositionWarehouse.onTemplateColumns(compositionId)\n\t\t\t\t\t\t\t\t\t.subscribe((v) => {\n\t\t\t\t\t\t\t\t\t\tcolumns = v;\n\t\t\t\t\t\t\t\t\t});\n\n\t\t\t\treturn columns as Array<any>;\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Filtering\n\t\t\t */\n\t\t\tgetFilters(): GuiFilterCollection {\n\n\t\t\t\tconst filters = filterIntegration.findFilters(compositionId, structureId);\n\n\t\t\t\tconst filterCollection = {};\n\n\t\t\t\tObject.keys(filters)\n\t\t\t\t\t  .forEach((key: string) => {\n\t\t\t\t\t\t  filterCollection[key] =\n\t\t\t\t\t\t\t  filters[key].map((filter: FilterForColumn) => {\n\t\t\t\t\t\t\t\t  return {\n\t\t\t\t\t\t\t\t\t  columnName: filter.columnName,\n\t\t\t\t\t\t\t\t\t  filterId: filter.filterId,\n\t\t\t\t\t\t\t\t\t  filterType: filter.type,\n\t\t\t\t\t\t\t\t\t  value: filter.value\n\t\t\t\t\t\t\t\t  } as GuiFilter;\n\t\t\t\t\t\t\t  }) as Array<GuiFilter>;\n\t\t\t\t\t  });\n\n\t\t\t\treturn filterCollection;\n\t\t\t},\n\n\t\t\tgetFiltersForColumn(columnName: string): Array<GuiFilter> {\n\t\t\t\treturn [];\n\t\t\t},\n\n\t\t\tgetFilterTypes(): Array<string> {\n\t\t\t\treturn [];\n\t\t\t},\n\n\t\t\tgetFilterTypesForColumn(columnName: string): Array<string> {\n\t\t\t\treturn filterIntegration.findFilterTypes(columnName, compositionId, structureId);\n\t\t\t},\n\n\t\t\tremoveAll(): void {\n\t\t\t},\n\n\t\t\tremoveFilter(filterId: string): void {\n\t\t\t},\n\n\t\t\tremoveFiltersFromColumn(columnName: string): void {\n\t\t\t},\n\n\t\t\tfilter(columnName: string, filterType: string, value: any): void {\n\t\t\t\tfilterIntegration.filter(columnName, filterType, value, compositionId, structureId);\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Paging\n\t\t\t */\n\t\t\tenablePaging(): void {\n\t\t\t\tpagingCommandInvoker.enable(structureId);\n\t\t\t},\n\n\t\t\tdisablePaging(): void {\n\t\t\t\tpagingCommandInvoker.disable(structureId);\n\t\t\t},\n\n\t\t\tnextPage(): void {\n\t\t\t\tpagingCommandInvoker.nextPage(structureId);\n\t\t\t},\n\n\t\t\tprevPage(): void {\n\t\t\t\tpagingCommandInvoker.prevPage(structureId);\n\t\t\t},\n\n\t\t\tchangePageSize(pageSize: number): void {\n\t\t\t\tpagingCommandInvoker.changePageSize(pageSize, structureId);\n\t\t\t},\n\n\t\t\tsetPagingConfig(config: PagingConfig): void {\n\t\t\t\tpagingCommandInvoker.setPaging(config, structureId);\n\t\t\t},\n\n\n\t\t\t/**\n\t\t\t * Searching\n\t\t\t */\n\t\t\tsetSearchingConfig(config: SearchConfig): void {\n\t\t\t\tsearchCommandInvoker.setSearchingConfig(config, structureId);\n\t\t\t},\n\n\t\t\tsearch(phrase: string): void {\n\t\t\t\tsearchCommandInvoker.search(phrase, structureId);\n\t\t\t},\n\n\t\t\tclearSearchPhrase(): void {\n\t\t\t\tsearchCommandInvoker.search('', structureId);\n\t\t\t},\n\n\n\t\t\t/**\n\t\t\t * View port\n\t\t\t */\n\t\t\tscrollToTop(): void {\n\t\t\t\tstructureCommandInvoker.scrollToTop(structureId);\n\t\t\t},\n\n\t\t\tscrollToBottom(): void {\n\t\t\t\tstructureCommandInvoker.scrollToBottom(structureId);\n\t\t\t},\n\n\t\t\tscrollToRowByIndex(index: number): void {\n\t\t\t\tstructureCommandInvoker.scrollToIndex(index, structureId);\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Visual - Schema\n\t\t\t */\n\t\t\tsetTheme(theme: string | GuiTheme): void {\n\t\t\t\tgridThemeCommandInvoker.setTheme(theme, schemaId, structureId);\n\t\t\t},\n\n\t\t\tsetVerticalGrid(enabled: boolean): void {\n\t\t\t\tgridThemeCommandInvoker.setVerticalGrid(enabled, schemaId);\n\t\t\t},\n\n\t\t\tsetHorizontalGrid(enabled: boolean): void {\n\t\t\t\tgridThemeCommandInvoker.setHorizontalGrid(enabled, schemaId);\n\t\t\t},\n\n\t\t\tsetRowColoring(rowColoring: string | GuiRowColoring): void {\n\t\t\t\tgridThemeCommandInvoker.setRowColoring(rowColoring, schemaId);\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Virtual scroll\n\t\t\t */\n\t\t\tenableVirtualScroll(): void {\n\t\t\t\tstructureCommandInvoker.enableVirtualScroll(structureId);\n\t\t\t},\n\n\t\t\tdisableVirtualScroll(): void {\n\t\t\t\tstructureCommandInvoker.disableVirtualScroll(structureId);\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Summaries\n\t\t\t */\n\t\t\tenableSummaries(): void {\n\t\t\t\tsummariesCommandInvoker.setSummariesEnabled(true, structureId);\n\t\t\t},\n\n\t\t\tdisableSummaries(): void {\n\t\t\t\tsummariesCommandInvoker.setSummariesEnabled(false, structureId);\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Sorting\n\t\t\t */\n\t\t\tsetSortConfig(config: SortingConfig): void {\n\t\t\t\tsortingCommandInvoker.setSortingConfig(config, structureId);\n\t\t\t}\n\n\t\t};\n\n\t}\n\n\n}\n","import { SchemaPublisher } from '../../../../../core/schema/src/api/schema.publisher';\nimport { SchemaReadModelRootId } from '../../../../../core/schema/src/api/global/schema.read-model-root-id';\nimport { StructureId } from '../../../../../core/structure/structure-core/src/api/global/structure.id';\nimport { RowColoring } from '../../../../../core/schema/src/api/row-coloring/row-coloring';\nimport { GuiRowColoring, GuiTheme } from '../../core/api/gui.grid.public-api';\nimport { GuiGridThemeConverter } from './gui.grid.theme.converter';\nimport { GuiGridRowColoringConverter } from './coloring/gui.grid.row-coloring.converter';\n\nexport class GuiGridThemeCommandInvoker {\n\n\tconstructor(private readonly schemaCommandInvoker: SchemaPublisher,\n\t\t\t\tprivate readonly gridThemeConverter: GuiGridThemeConverter,\n\t\t\t\tprivate readonly gridRowColoringConverter: GuiGridRowColoringConverter) {\n\t}\n\n\tsetTheme(theme: string | GuiTheme, schemaId: SchemaReadModelRootId, structureId: StructureId): void {\n\t\tconst schemaTheme = this.gridThemeConverter.convert(theme);\n\n\t\tthis.schemaCommandInvoker.setTheme(schemaTheme, schemaId, structureId);\n\t}\n\n\tsetRowColoring(rowColoring: string | GuiRowColoring, schemaId: SchemaReadModelRootId): void {\n\n\t\tconst schemaRowColoring: RowColoring = this.gridRowColoringConverter.convert(rowColoring);\n\n\t\tthis.schemaCommandInvoker.setRowColoring(schemaRowColoring, schemaId);\n\t}\n\n\tsetVerticalGrid(verticalGrid: boolean, schemaId: SchemaReadModelRootId): void {\n\t\tthis.schemaCommandInvoker.setVerticalGrid(verticalGrid, schemaId);\n\t}\n\n\tsetHorizontalGrid(horizontalGrid: boolean, schemaId: SchemaReadModelRootId): void {\n\t\tthis.schemaCommandInvoker.setHorizontalGrid(horizontalGrid, schemaId);\n\t}\n\n}\n","import { ModifierApi } from './modifier-api';\n\nexport abstract class Modifier<T extends ModifierApi> {\n\n\tprotected constructor(\n\t\tprivate readonly hostElement?: HTMLElement\n\t) {\n\t}\n\n\tprotected abstract createModifier(htmlElement: HTMLElement): T;\n\n\tgetElement(htmlElement: HTMLElement): T {\n\t\treturn this.createModifier(htmlElement);\n\t}\n\n\tgetHost(): T {\n\n\t\tif (!this.hostElement) {\n\t\t\tthrow new Error('Missing host element in DomRenderer constructor.');\n\t\t}\n\n\t\treturn this.createModifier(this.hostElement);\n\t}\n}\n","import { ClassModifierApi } from './class-modifier-api';\nimport { Modifier } from '../core/modifier';\n\n\nexport class ClassModifier extends Modifier<ClassModifierApi> {\n\n\tconstructor(\n\t\tprivate readonly htmlElement?: HTMLElement\n\t) {\n\t\tsuper(htmlElement);\n\t}\n\n\tprotected createModifier(htmlElement: HTMLElement): ClassModifierApi {\n\t\treturn new ClassModifier.ClassModifier(htmlElement);\n\t}\n\n\t// eslint-disable-next-line\n\tprivate static readonly ClassModifier = class implements ClassModifierApi {\n\n\t\tconstructor(\n\t\t\tprivate readonly htmlElement: HTMLElement\n\t\t) {\n\t\t}\n\n\t\tadd(...classes: Array<string>): void {\n\t\t\tthis.addClassToDomElement(this.htmlElement, classes);\n\t\t}\n\n\t\tremove(...classes: Array<string>): void {\n\t\t\tthis.removeClassFromDomElement(this.htmlElement, classes);\n\t\t}\n\n\t\tclear(): void {\n\t\t\tthis.htmlElement.removeAttribute('class');\n\t\t}\n\n\t\tprivate addClassToDomElement(htmlElement: HTMLElement, classes: Array<string>): void {\n\n\t\t\tfor (let i = 0; i < classes.length; i++) {\n\t\t\t\thtmlElement.classList.add(classes[i]);\n\t\t\t}\n\t\t}\n\n\t\tprivate removeClassFromDomElement(htmlElement: HTMLElement, classes: Array<string>): void {\n\n\t\t\tfor (let i = 0; i < classes.length; i++) {\n\t\t\t\thtmlElement.classList.remove(classes[i]);\n\t\t\t}\n\t\t}\n\n\t};\n\n}\n","import { AttributeModifierApi } from './attribute-modifier-api';\nimport { Modifier } from '../core/modifier';\n\n\nexport class AttributeModifier extends Modifier<AttributeModifierApi> {\n\n\tprivate static readonly AttributeModifier = class implements AttributeModifierApi {\n\n\t\tconstructor(\n\t\t\tprivate readonly htmlElement: HTMLElement\n\t\t) {\n\t\t}\n\n\t\tsetAttribute(name: string, value: string): void {\n\t\t\tthis.htmlElement.setAttribute(name, value);\n\t\t}\n\n\t\tremoveAttribute(name: string): void {\n\t\t\tthis.htmlElement.removeAttribute(name);\n\t\t}\n\n\t};\n\n\tconstructor(\n\t\tprivate readonly htmlElement?: HTMLElement\n\t) {\n\t\tsuper(htmlElement);\n\t}\n\n\tprotected createModifier(htmlElement: HTMLElement): AttributeModifierApi {\n\t\treturn new AttributeModifier.AttributeModifier(htmlElement);\n\t}\n\n}\n","import { GenericBuilder } from '../../../../core/common/src/cdk/generic-builder';\n\nexport class StructurePagingDefinitionBuilder extends GenericBuilder<PagingDefinition> {\n\n\tprivate enabled: boolean;\n\n\tconstructor(enabled: boolean) {\n\t\tsuper();\n\t\tthis.enabled = enabled;\n\t}\n\n\twithEnabled(enabled: boolean): StructurePagingDefinitionBuilder {\n\t\tthis.enabled = enabled;\n\t\treturn this;\n\t}\n\n\tprotected buildObject(): PagingDefinition {\n\t\treturn new PagingDefinition(this.enabled);\n\t}\n}\n\nexport class StructurePagingDefinitionDefaultBuilder extends StructurePagingDefinitionBuilder {\n\n\tprivate static readonly defaultEnabled = true;\n\n\tconstructor() {\n\t\tsuper(StructurePagingDefinitionDefaultBuilder.defaultEnabled);\n\t}\n}\n\nexport class PagingDefinition {\n\n\tstatic Builder = StructurePagingDefinitionBuilder;\n\n\tstatic DefaultBuilder = StructurePagingDefinitionDefaultBuilder;\n\n\tprivate readonly enabled: boolean;\n\n\tconstructor(enabled: boolean) {\n\t\tthis.enabled = enabled;\n\t}\n\n\tisEnabled(): boolean {\n\t\treturn this.enabled;\n\t}\n\n}\n","import { GenericBuilder } from '../../../../core/common/src/cdk/generic-builder';\nimport { PagingDefinition } from '../../../../feature/structure/paging/src/paging-definition';\n\nexport class StructureDefinitionBuilder extends GenericBuilder<StructureDefinition> {\n\n\tprivate border: boolean = true;\n\n\tconstructor(private headerEnabled: boolean,\n\t\t\t\tprivate bottomPaging: PagingDefinition,\n\t\t\t\tprivate topPaging: PagingDefinition) {\n\t\tsuper();\n\t}\n\n\twithHeader(enabled: boolean): StructureDefinitionBuilder {\n\t\tthis.headerEnabled = enabled;\n\t\treturn this;\n\t}\n\n\twithBottomPaging(paging: PagingDefinition): StructureDefinitionBuilder {\n\t\tthis.bottomPaging = paging;\n\t\treturn this;\n\t}\n\n\twithTopPaging(paging: PagingDefinition): StructureDefinitionBuilder {\n\t\tthis.topPaging = paging;\n\t\treturn this;\n\t}\n\n\twithBorder(enabled: boolean): StructureDefinitionBuilder {\n\t\tthis.border = enabled;\n\t\treturn this;\n\t}\n\n\tprotected buildObject(): StructureDefinition {\n\t\treturn new StructureDefinition(\n\t\t\tthis.headerEnabled,\n\t\t\tthis.bottomPaging,\n\t\t\tthis.topPaging,\n\t\t\tthis.border\n\t\t);\n\t}\n\n}\n\nexport class StructureDefinitionDefaultBuilder extends StructureDefinitionBuilder {\n\n\tprivate static readonly defaultHeaderEnabled: boolean = true;\n\tprivate static readonly defaultBottomPaging: PagingDefinition = new PagingDefinition.DefaultBuilder().build();\n\tprivate static readonly defaultTopPaging: PagingDefinition = new PagingDefinition.DefaultBuilder().build();\n\n\tconstructor() {\n\t\tsuper(\n\t\t\tStructureDefinitionDefaultBuilder.defaultHeaderEnabled,\n\t\t\tStructureDefinitionDefaultBuilder.defaultBottomPaging,\n\t\t\tStructureDefinitionDefaultBuilder.defaultTopPaging\n\t\t);\n\t}\n}\n\nexport class StructureDefinition {\n\n\tstatic Builder = StructureDefinitionBuilder;\n\n\tstatic DefaultBuilder = StructureDefinitionDefaultBuilder;\n\n\tprivate readonly headerEnabled: boolean;\n\n\tprivate readonly bottomPaging: PagingDefinition;\n\n\tprivate readonly topPaging: PagingDefinition;\n\n\tprivate readonly border: boolean;\n\n\tconstructor(headerEnabled: boolean,\n\t\t\t\tbottomPaging: PagingDefinition,\n\t\t\t\ttopPaging: PagingDefinition,\n\t\t\t\tborder: boolean) {\n\t\tthis.headerEnabled = headerEnabled;\n\t\tthis.bottomPaging = bottomPaging;\n\t\tthis.topPaging = topPaging;\n\t\tthis.border = border;\n\t}\n\n\tisHeaderEnabled(): boolean {\n\t\treturn this.headerEnabled;\n\t}\n\n\tisBorderEnabled(): boolean {\n\t\treturn this.border;\n\t}\n\n\tgetBottomPaging(): PagingDefinition {\n\t\treturn this.bottomPaging;\n\t}\n\n\tgetTopPaging(): PagingDefinition {\n\t\treturn this.topPaging;\n\t}\n\n}\n","import { StructureDefinition } from '../../../../feature-view/grid-view/src/structure/structure-definition';\n\n/** @internal */\nexport const guiGridStructureDefinition = new StructureDefinition.DefaultBuilder().build();\n","import { Injectable } from '@angular/core';\n\nimport { GuiGridComponent } from '../gui.grid.component';\n\n@Injectable()\nexport class GuiGridRegister {\n\n\tprivate readonly gridMap = new Map();\n\n\t// structureId: StructureId\n\tregister(gridId: string, component: GuiGridComponent, structureId: any): void {\n\t\tthis.gridMap.set(gridId, { component, structureId });\n\t}\n\n\tunregister(gridId: string): void {\n\t\tthis.gridMap.delete(gridId);\n\t}\n\n\tgetValues(gridId: string): any {\n\t\treturn this.gridMap.get(gridId);\n\t}\n\n}\n","import { RandomIdGenerator } from '@generic-ui/hermes';\n\nexport class StructureIdGenerator {\n\n\t// private increment = 0;\n\n\tgenerateId(): number {\n\t\treturn RandomIdGenerator.generate();\n\t}\n\n}\n","import { Publisher } from '@generic-ui/hermes';\nimport { StructureId } from '../../../structure-core/src/api/global/structure.id';\nimport { RowSelectionMode, RowSelectionType } from './row-selected/row-selection';\nimport { RowSelectToggleType } from '../domain/row-select-toggle-type';\nimport { FormationCustomSelectId } from './custom/formation.custom-select.id';\nimport { FormationCustomSelectionConfig } from './custom/formation.custom-selection.config';\n\n\nexport abstract class FormationPublisher implements Publisher {\n\n\tprotected constructor() {\n\t}\n\n\tabstract setSelection(enabled: boolean, structureId: StructureId): void;\n\n\tabstract selectRows(selectedRow: Array<string>, structureId: StructureId): void;\n\n\tabstract selectByIndex(indexes: Array<number>, structureId: StructureId): void;\n\n\tabstract selectByIds(ids: Array<string>, structureId: StructureId): void;\n\n\tabstract toggleSelectedRow(selectedRow: string, type: RowSelectToggleType, structureId: StructureId): void;\n\n\tabstract changeMode(mode: RowSelectionMode, structureId: StructureId): void;\n\n\tabstract changeType(type: RowSelectionType, structureId: StructureId): void;\n\n\tabstract setMatcher(matcher: (item: any) => any, structureId: StructureId): void;\n\n\tabstract selectAll(structureId: StructureId): void;\n\n\tabstract unselectAll(structureId: StructureId): void;\n\n\tabstract selectCustom(id: FormationCustomSelectId, structureId: StructureId): void;\n\n\tabstract setCustomSelection(config: FormationCustomSelectionConfig, structureId: StructureId): void;\n}\n","import { HermesObservable, Optional, Warehouse } from '@generic-ui/hermes';\n\nimport { StructureId } from '../../../structure-core/src/api/global/structure.id';\nimport { RowSelectedReadModel } from './row-selected/row-selected.read-model';\nimport { RowSelectionMode, RowSelectionType } from './row-selected/row-selection';\nimport { SelectedRow } from './row-selected/selected-row';\nimport { FormationCustomSelection } from './custom/formation.custom-selection';\n\n\nexport abstract class FormationWarehouse implements Warehouse {\n\n\tprotected constructor() {\n\t}\n\n\tabstract findSelectedRows(structureId: StructureId): Optional<ReadonlyArray<SelectedRow>>;\n\n\tabstract onRowSelectedReadModel(structureId: StructureId): HermesObservable<RowSelectedReadModel>;\n\n\tabstract findSelectedItemIds(structureId: StructureId): Optional<ReadonlyArray<string>>;\n\n\tabstract onSelectedRows(structureId: StructureId): HermesObservable<ReadonlyArray<string>>;\n\n\tabstract onMode(structureId: StructureId): HermesObservable<RowSelectionMode>;\n\n\tabstract onType(structureId: StructureId): HermesObservable<RowSelectionType>;\n\n\tabstract onSelectionEnabled(structureId: StructureId): HermesObservable<boolean>;\n\n\tabstract onCustomSelections(structureId: StructureId): HermesObservable<FormationCustomSelection>;\n\n}\n","import { Publisher } from '@generic-ui/hermes';\nimport { CompositionId } from './global/composition.id';\nimport { ColumnParams } from '../core/column/set-columns/column.params';\nimport { ColumnDefinitionId } from './column/column-definition-id';\n\n\nexport abstract class CompositionPublisher implements Publisher {\n\n\tprotected constructor() {\n\t}\n\n\tabstract create(compositionId: CompositionId): void;\n\n\tabstract setColumns(params: Array<ColumnParams>, compositionId: CompositionId): void;\n\n\tabstract setGroups(configs: any, compositionId: CompositionId): void;\n\n\tabstract setWidth(width: number, compositionId: CompositionId): void;\n\n\tabstract setContainerWidth(width: number, compositionId: CompositionId): void;\n\n\tabstract setResizeWidth(enabled: boolean, compositionId: CompositionId): void;\n\n\tabstract enableColumn(columnDefinitionId: ColumnDefinitionId, compositionId: CompositionId): void;\n\n\tabstract disableColumn(columnDefinitionId: ColumnDefinitionId, compositionId: CompositionId): void;\n\n\tabstract moveLeft(columnDefinitionId: ColumnDefinitionId, compositionId: CompositionId): void;\n\n\tabstract moveRight(columnDefinitionId: ColumnDefinitionId, compositionId: CompositionId): void;\n\n\tabstract highlightColumn(columnDefinitionId: ColumnDefinitionId, compositionId: CompositionId): void;\n}\n","import { HermesObservable, Warehouse } from '@generic-ui/hermes';\nimport { CompositionId } from './global/composition.id';\nimport { CellTemplateWithContext } from '../core-read/definition/cell-template-with-context';\nimport { CellTemplateWithAccessor } from '../core-read/definition/cell-template-with-accessor';\nimport { SortOrder } from '../domain/column/sort/sort-order';\nimport { FieldId } from '../../../structure/field/src/domain/field/field.id';\nimport { GroupCollection } from './group/group.collection';\nimport { ColumnId } from './column/column.id';\n\n\nexport abstract class CompositionWarehouse implements Warehouse {\n\n\tprotected constructor() {\n\t}\n\n\tabstract onWidth(compositionId: CompositionId): HermesObservable<number>;\n\n\tabstract onContainerWidth(compositionId: CompositionId): HermesObservable<number>;\n\n\tabstract onWidthForEachColumn(compositionId: CompositionId): HermesObservable<ReadonlyArray<number>>;\n\n\tabstract onHeaderColumns(compositionId: CompositionId): HermesObservable<ReadonlyArray<CellTemplateWithContext>>;\n\n\tabstract onAllColumns(compositionId: CompositionId): HermesObservable<ReadonlyArray<CellTemplateWithContext>>;\n\n\tabstract onSortOrder(fieldId: FieldId, compositionId: CompositionId): HermesObservable<SortOrder>;\n\n\tabstract onTemplateColumns(compositionId: CompositionId): HermesObservable<ReadonlyArray<CellTemplateWithAccessor>>;\n\n\tabstract onResizeWidth(compositionId: CompositionId): HermesObservable<boolean>;\n\n\tabstract onGroups(compositionId: CompositionId): HermesObservable<GroupCollection>;\n\n\tabstract onHighlightedColumn(columnId: ColumnId, compositionId: CompositionId): HermesObservable<boolean>;\n\n\t// abstract onHighlightedColumns(compositionId: CompositionId)\n\n\tabstract findColumnNames(compositionId: CompositionId): ReadonlyArray<string>;\n\n}\n","import { HermesObservable, HermesSingle, Optional, Warehouse } from '@generic-ui/hermes';\nimport { StructureId } from '../../../structure-core/src/api/global/structure.id';\nimport { FilterTypeCollectionModel } from './type/filter-type-collection.model';\nimport { ActiveFilterModel } from './active/active-filter.model';\nimport { UniqueValueCollectionModel } from './unique/unique-value-collection.model';\nimport { FieldId } from '../../../field/src/domain/field/field.id';\nimport { FilterTypeModel } from './type/filter-type.model';\nimport { FilterTypeId } from '../domain/type/filter-type.id';\n\n\nexport abstract class FilterWarehouse implements Warehouse {\n\n\tprotected constructor() {\n\t}\n\n\tabstract onFilteringEnabled(structureId: StructureId): HermesObservable<boolean>;\n\n\tabstract onQuickFiltersEnabled(structureId: StructureId): HermesObservable<boolean>;\n\n\tabstract onFilterTypes(structureId: StructureId): HermesObservable<FilterTypeCollectionModel>;\n\n\tabstract findFilterTypes(structureId: StructureId): Optional<FilterTypeCollectionModel>;\n\n\tabstract onFilterTypesForFieldId(fieldId: FieldId, structureId: StructureId): HermesObservable<ReadonlyArray<FilterTypeModel>>;\n\n\tabstract onActiveFilters(structureId: StructureId): HermesObservable<ReadonlyArray<ActiveFilterModel>>;\n\n\tabstract findFilters(structureId: StructureId): Optional<ReadonlyArray<ActiveFilterModel>>;\n\n\tabstract onUniqueValues(structureId: StructureId): HermesObservable<UniqueValueCollectionModel>;\n\n\tabstract onceFilterTypeId(fieldId: FieldId, filterTypeName: string, structureId: StructureId): HermesSingle<Optional<FilterTypeId>>;\n\n}\n","import { EntityId, Key } from '@generic-ui/hermes';\n\nexport class FieldId extends EntityId implements Key {\n\n\tprivate readonly id: string;\n\n\tconstructor(id: string) {\n\t\tsuper(id);\n\t\tthis.id = id;\n\t}\n\n\tgetId(): string {\n\t\treturn this.id;\n\t}\n\n\tequals(fieldId: FieldId): boolean {\n\t\treturn fieldId.toString() === this.id;\n\t}\n\n\ttoString(): string {\n\t\treturn this.id;\n\t}\n\n}\n","import { Publisher } from '@generic-ui/hermes';\n\nimport { FilterConfig } from './config/filter.config';\nimport { StructureId } from '../../../structure-core/src/api/global/structure.id';\nimport { FieldId } from '../../../field/src/domain/field/field.id';\nimport { FilterTypeId } from '../domain/type/filter-type.id';\nimport { FilterId } from './id/filter.id';\nimport { UniqueValueId } from '../domain/unique/unique-value-id';\n\n\nexport abstract class FilterPublisher implements Publisher {\n\n\tprotected constructor() {\n\t}\n\n\tabstract setConfig(config: FilterConfig, structureId: StructureId): void;\n\n\tabstract add(fieldId: FieldId, filterTypeId: FilterTypeId, value: any, structureId: StructureId): void;\n\n\tabstract removeAll(structureId: StructureId): void;\n\n\tabstract remove(filterId: FilterId, structureId: StructureId): void;\n\n\tabstract selectAllUniqueFilter(fieldId: FieldId, structureId: StructureId): void;\n\n\tabstract unselectAllUniqueFilter(fieldId: FieldId, structureId: StructureId): void;\n\n\tabstract selectUniqueFilter(fieldId: FieldId, uniqueValueId: UniqueValueId, structureId: StructureId): void;\n\n\tabstract unselectUniqueFilter(fieldId: FieldId, uniqueValueId: UniqueValueId, structureId: StructureId): void;\n\n}\n","import { CompositionWarehouse } from '../../../../composition/src/api/composition.warehouse';\nimport { CompositionId } from '../../../../composition/src/api/global/composition.id';\nimport { CellTemplateWithAccessor } from '../../../../composition/src/core-read/definition/cell-template-with-accessor';\nimport { hermesFilter, hermesMap, hermesSwitchMap, hermesTake, Optional } from '@generic-ui/hermes';\nimport { FilterWarehouse } from '../api/filter.warehouse';\nimport { StructureId } from '../../../structure-core/src/api/global/structure.id';\nimport { FieldId } from '../../../field/src/domain/field/field.id';\nimport { FilterTypeModel } from '../api/type/filter-type.model';\nimport { FilterPublisher } from '../api/filter.publisher';\nimport { FilterTypeId } from '../domain/type/filter-type.id';\nimport { ActiveFilterModel } from '../api/active/active-filter.model';\nimport { FilterForColumn } from './filter-integration.api';\n\n\nexport class FilterIntegration {\n\n\tconstructor(private readonly compositionWarehouse: CompositionWarehouse,\n\t\t\t\tprivate readonly filterCommandInvoker: FilterPublisher,\n\t\t\t\tprivate readonly filterWarehouse: FilterWarehouse) {\n\t}\n\n\tstatic readonly services = [CompositionWarehouse, FilterPublisher, FilterWarehouse];\n\n\tfindFilterTypes(columnName: string, compositionId: CompositionId, structureId: StructureId): Array<string> {\n\n\t\tlet filterTypes: Array<string> = [];\n\n\t\tthis.compositionWarehouse\n\t\t\t.onTemplateColumns(compositionId)\n\t\t\t.pipe(\n\t\t\t\thermesMap((cols: ReadonlyArray<CellTemplateWithAccessor>) => {\n\t\t\t\t\treturn cols.find((col: CellTemplateWithAccessor) => {\n\t\t\t\t\t\treturn col.getName() === columnName;\n\t\t\t\t\t});\n\t\t\t\t}),\n\t\t\t\thermesFilter((col: CellTemplateWithAccessor) => {\n\t\t\t\t\treturn col !== undefined;\n\t\t\t\t}),\n\t\t\t\thermesTake(1),\n\t\t\t\thermesSwitchMap((col: CellTemplateWithAccessor) => {\n\t\t\t\t\treturn this.filterWarehouse\n\t\t\t\t\t\t\t   .onFilterTypesForFieldId(new FieldId(col.columnFieldId.getId()), structureId);\n\t\t\t\t})\n\t\t\t)\n\t\t\t.subscribe((types: Array<FilterTypeModel>) => {\n\t\t\t\tfilterTypes = types.map((type) => type.getName());\n\t\t\t});\n\n\t\treturn filterTypes;\n\t}\n\n\tfindFilters(compositionId: CompositionId, structureId: StructureId): { [key: string]: ReadonlyArray<FilterForColumn> } {\n\n\t\tconst filters = this.filterWarehouse.findFilters(structureId).getValueOrNullOrThrowError();\n\n\t\tconst columnNames = this.compositionWarehouse.findColumnNames(compositionId);\n\n\t\tconst obj = {};\n\n\t\tfor (let i = 0; i < columnNames.length; i += 1) {\n\t\t\tobj[columnNames[i]] = filters.filter((filter: ActiveFilterModel) => {\n\t\t\t\t\t\t\t\t\t\t\t return filter.getFieldName() === columnNames[i];\n\t\t\t\t\t\t\t\t\t\t })\n\t\t\t\t\t\t\t\t\t\t .map((filter: ActiveFilterModel) => {\n\t\t\t\t\t\t\t\t\t\t\t return {\n\t\t\t\t\t\t\t\t\t\t\t\t columnName: filter.getFieldName(),\n\t\t\t\t\t\t\t\t\t\t\t\t filterId: filter.getFilterId().toString(),\n\t\t\t\t\t\t\t\t\t\t\t\t type: filter.getFilterTypeName(),\n\t\t\t\t\t\t\t\t\t\t\t\t value: filter.getValue()\n\t\t\t\t\t\t\t\t\t\t\t };\n\t\t\t\t\t\t\t\t\t\t });\n\t\t}\n\n\t\treturn obj;\n\t}\n\n\tfilter(\n\t\tcolumnName: string,\n\t\tfilterType: string,\n\t\tvalue: any,\n\t\tcompositionId: CompositionId,\n\t\tstructureId: StructureId\n\t): void {\n\n\t\tthis.compositionWarehouse\n\t\t\t.onTemplateColumns(compositionId)\n\t\t\t.pipe(\n\t\t\t\thermesMap((cols: ReadonlyArray<CellTemplateWithAccessor>) => {\n\t\t\t\t\treturn cols.find((col: CellTemplateWithAccessor) => {\n\t\t\t\t\t\treturn col.getName() === columnName;\n\t\t\t\t\t});\n\t\t\t\t}),\n\t\t\t\thermesFilter((col: CellTemplateWithAccessor) => {\n\t\t\t\t\treturn col !== undefined;\n\t\t\t\t}),\n\t\t\t\thermesTake(1),\n\t\t\t\thermesSwitchMap((col: CellTemplateWithAccessor) => {\n\n\t\t\t\t\treturn this.filterWarehouse\n\t\t\t\t\t\t\t   .onceFilterTypeId(new FieldId(col.columnFieldId.getId()), filterType, structureId)\n\t\t\t\t\t\t\t   .pipe(\n\t\t\t\t\t\t\t\t   hermesMap((filterTypeId: Optional<FilterTypeId>) => {\n\t\t\t\t\t\t\t\t\t   return {\n\t\t\t\t\t\t\t\t\t\t   fieldId: new FieldId(col.columnFieldId.getId()),\n\t\t\t\t\t\t\t\t\t\t   filterTypeId: filterTypeId\n\t\t\t\t\t\t\t\t\t   };\n\t\t\t\t\t\t\t\t   })\n\t\t\t\t\t\t\t   );\n\t\t\t\t})\n\t\t\t)\n\t\t\t.subscribe((params) => {\n\n\t\t\t\tconst { fieldId, filterTypeId } = params;\n\n\t\t\t\tfilterTypeId.ifPresent((ftId: FilterTypeId) => {\n\t\t\t\t\tthis.filterCommandInvoker.add(\n\t\t\t\t\t\tfieldId,\n\t\t\t\t\t\tftId,\n\t\t\t\t\t\tvalue,\n\t\t\t\t\t\tstructureId\n\t\t\t\t\t);\n\t\t\t\t});\n\t\t\t});\n\t}\n\n}\n","import { StructureId } from '../../../structure-core/src/api/global/structure.id';\nimport { StructureEditSourceItemParams } from '../core/origin/edit/structure.edit-source-item.params';\nimport { SelectedRow } from '../../../formation/src/api/row-selected/selected-row';\nimport { ItemEntityId } from '../domain/item/item.entity-id';\nimport { Publisher } from '@generic-ui/hermes';\n\n\nexport abstract class SourcePublisher implements Publisher {\n\n\tprotected constructor() {\n\t}\n\n\tabstract setOrigin(items: Array<any>, structureId: StructureId): void;\n\n\tabstract setLoading(enabled: boolean, structureId: StructureId): void;\n\n\tabstract editItem(params: StructureEditSourceItemParams, structureId: StructureId): void;\n\n\tabstract editItemByIndex(itemIndex: number, fieldIndex: number, value: any, structureId: StructureId): void;\n\n\tabstract deleteRow(row: SelectedRow, structureId: StructureId): void;\n\n\tabstract deleteRows(rows: Array<SelectedRow>, structureId: StructureId): void;\n\n\tabstract deleteItemByIndex(index: number, structureId: StructureId): void;\n\n\tabstract deleteItemById(itemId: ItemEntityId, structureId: StructureId): void;\n\n\tabstract deleteManyItemsByIndex(indexes: Array<number>, structureId: StructureId): void;\n\n\tabstract deleteManyItemsByItemIds(itemIds: Array<ItemEntityId>, structureId: StructureId): void;\n\n}\n","import { Publisher } from '@generic-ui/hermes';\n\nimport { StructureId } from '../../../structure-core/src/api/global/structure.id';\nimport { SearchConfig } from './config/search-config';\n\n\nexport abstract class SearchPublisher implements Publisher {\n\n\tprotected constructor() {\n\t}\n\n\tabstract setSearchingConfig(config: SearchConfig, structureId: StructureId): void;\n\n\tabstract search(phrase: string, structureId: StructureId): void;\n}\n","import { Publisher } from '@generic-ui/hermes';\n\nimport { SchemaTheme } from './theme/schema-theme';\nimport { SchemaReadModelRootId } from './global/schema.read-model-root-id';\nimport { StructureId } from '../../../structure/structure-core/src/api/global/structure.id';\nimport { RowColoring } from './row-coloring/row-coloring';\nimport { SchemaRowClass } from './styling/schema.row-class';\nimport { SchemaRowStyle } from './styling/schema.row-style';\n\n\nexport abstract class SchemaPublisher implements Publisher {\n\n\tprotected constructor() {\n\t}\n\n\tabstract create(schemaId: SchemaReadModelRootId): void;\n\n\tabstract setTheme(\n\t\ttheme: SchemaTheme,\n\t\tschemaId: SchemaReadModelRootId,\n\t\tstructureId: StructureId\n\t): void;\n\n\tabstract setRowColoring(rowColoring: RowColoring, schemaId: SchemaReadModelRootId): void;\n\n\tabstract setVerticalGrid(verticalGrid: boolean, schemaId: SchemaReadModelRootId): void;\n\n\tabstract setHorizontalGrid(horizontalGrid: boolean, schemaId: SchemaReadModelRootId): void;\n\n\tabstract setRowClass(schemaRowClass: SchemaRowClass, schemaId: SchemaReadModelRootId): void;\n\n\tabstract setRowStyle(rowStyle: SchemaRowStyle, schemaId: SchemaReadModelRootId): void;\n}\n","import { Publisher } from '@generic-ui/hermes';\nimport { StructureId } from './global/structure.id';\nimport { FilterConfig } from '../../../filter/src/api/config/filter.config';\nimport { QuickFiltersConfig } from '../../../filter/src/api/quick-filter/quick-filters.config';\nimport { SchemaTheme } from '../../../../schema/src/api/theme/schema-theme';\nimport { CellEditConfig } from './edit/cell-edit.config';\n\n\nexport abstract class StructurePublisher implements Publisher {\n\n\tprotected constructor() {\n\t}\n\n\tabstract create(structureId: StructureId): void;\n\n\tabstract enableVirtualScroll(structureId: StructureId): void;\n\n\tabstract disableVirtualScroll(structureId: StructureId): void;\n\n\tabstract scrollToTop(structureId: StructureId): void;\n\n\tabstract scrollToBottom(structureId: StructureId): void;\n\n\tabstract scrollToIndex(index: number, structureId: StructureId): void;\n\n\tabstract setScrollPosition(position: number, structureId: StructureId): void;\n\n\tabstract setFilterConfig(config: FilterConfig, structureId: StructureId): void;\n\n\tabstract setQuickFiltersConfig(config: QuickFiltersConfig, structureId: StructureId): void;\n\n\tabstract setRowHeight(rowHeight: number, structureId: StructureId): void;\n\n\tabstract setContainerHeight(height: number, structureId: StructureId): void;\n\n\tabstract setRowHeightBasedOnTheme(theme: SchemaTheme, structureId: StructureId): void;\n\n\tabstract setCellEdit(cellEdit: CellEditConfig, structureId: StructureId): void;\n\n}\n","import { Publisher } from '@generic-ui/hermes';\n\nimport { StructureId } from '../../../structure-core/src/api/global/structure.id';\nimport { SummariesConfig } from './config/summaries-config';\n\n\nexport abstract class SummariesPublisher implements Publisher {\n\n\tprotected constructor() {\n\t}\n\n\tabstract setSummariesEnabled(enabled: boolean, structureId: StructureId): void;\n\n\tabstract setConfig(config: SummariesConfig, structureId: StructureId): void;\n\n}\n","import { Publisher } from '@generic-ui/hermes';\n\nimport { StructureId } from '../../../structure-core/src/api/global/structure.id';\nimport { SortingConfig } from './config/sorting-config';\nimport { FieldId } from '../../../field/src/domain/field/field.id';\nimport { CompositionId } from '../../../../composition/src/api/global/composition.id';\nimport { SortOrder } from '../../../../composition/src/domain/column/sort/sort-order';\n\n\nexport abstract class SortingPublisher implements Publisher {\n\n\tprotected constructor() {\n\t}\n\n\tabstract setSortingConfig(config: SortingConfig, structureId: StructureId): void;\n\n\tabstract toggleSort(fieldId: FieldId, compositionId: CompositionId, structureId: StructureId): void;\n\n\tabstract setSortOrder(fieldId: FieldId, sortOrder: SortOrder, compositionId: CompositionId, structureId: StructureId): void;\n\n}\n","import { Publisher } from '@generic-ui/hermes';\nimport { StructureId } from '../../../structure-core/src/api/global/structure.id';\nimport { PagingConfig } from './config/paging-config';\n\n\nexport abstract class PagingPublisher implements Publisher {\n\n\tprotected constructor() {\n\t}\n\n\tabstract enable(structureId: StructureId): void;\n\n\tabstract disable(structureId: StructureId): void;\n\n\tabstract setPaging(paging: PagingConfig, structureId: StructureId): void;\n\n\tabstract changePageSize(pageSize: number, structureId: StructureId): void;\n\n\tabstract nextPage(structureId: StructureId): void;\n\n\tabstract prevPage(structureId: StructureId): void;\n\n\tabstract goToPage(pageNumber: number, currentPage: number, structureId: StructureId): void;\n\n\tabstract changePagerTop(enabled: boolean, structureId: StructureId): void;\n\n\tabstract changePagerBottom(enabled: boolean, structureId: StructureId): void;\n}\n","import { AggregateId, ReadModelRootId } from '@generic-ui/hermes';\n\nimport { StructureId } from '../global/structure.id';\n\n\nexport class StructureReadModelRootId extends ReadModelRootId {\n\n\tconstructor(id: string) {\n\t\tsuper(id);\n\t}\n\n\ttoAggregateId(): AggregateId {\n\t\treturn new StructureId(this.toString());\n\t}\n}\n","import { AggregateId } from '@generic-ui/hermes';\n\nimport { StructureReadModelRootId } from '../read/structure.read-model-root-id';\n\n\nexport class StructureId extends AggregateId {\n\n\tconstructor(id: string) {\n\t\tsuper(id);\n\t}\n\n\ttoReadModelRootId(): StructureReadModelRootId {\n\t\treturn new StructureReadModelRootId(this.getId());\n\t}\n\n}\n","import { ReadModelRootId } from '@generic-ui/hermes';\n\nimport { CompositionId } from './composition.id';\n\nexport class CompositionReadModelRootId extends ReadModelRootId {\n\n\tconstructor(id: string) {\n\t\tsuper(id);\n\t}\n\n\ttoAggregateId(): CompositionId {\n\t\treturn new CompositionId(this.toString());\n\t}\n}\n","import { AggregateId, ReadModelRootId } from '@generic-ui/hermes';\nimport { CompositionReadModelRootId } from './composition.read-model-root-id';\n\nexport class CompositionId extends AggregateId {\n\n\tconstructor(id: string) {\n\t\tsuper(id);\n\t}\n\n\ttoReadModelRootId(): ReadModelRootId {\n\t\treturn new CompositionReadModelRootId(this.getId());\n\t}\n\n}\n","export enum SchemaRowColoring {\n\tNONE,\n\tEVEN,\n\tODD\n}\n","import { HermesObservable, HermesSingle, Optional, Warehouse } from '@generic-ui/hermes';\n\nimport { SchemaTheme } from './theme/schema-theme';\nimport { SchemaReadModelRootId } from './global/schema.read-model-root-id';\nimport { SchemaCssClass } from './css-classes/schema-css-class';\nimport { SchemaRowColoring } from './row-coloring/schema-row-coloring';\nimport { SchemaRowClass } from './styling/schema.row-class';\nimport { SchemaRowStyle } from './styling/schema.row-style';\n\n\nexport abstract class SchemaWarehouse implements Warehouse {\n\n\tabstract onTheme(schemaId: SchemaReadModelRootId): HermesObservable<SchemaTheme>;\n\n\tabstract onceTheme(schemaId: SchemaReadModelRootId): HermesSingle<SchemaTheme>;\n\n\tabstract findTheme(schemaId: SchemaReadModelRootId): Optional<SchemaTheme>;\n\n\tabstract onHorizontalGrid(schemaId: SchemaReadModelRootId): HermesObservable<boolean>;\n\n\tabstract onVerticalGrid(schemaId: SchemaReadModelRootId): HermesObservable<boolean>;\n\n\tabstract onRowColoring(schemaId: SchemaReadModelRootId): HermesObservable<SchemaRowColoring>;\n\n\tabstract onCssClasses(schemaId: SchemaReadModelRootId): HermesObservable<SchemaCssClass>;\n\n\tabstract onRowClass(schemaId: SchemaReadModelRootId): HermesObservable<SchemaRowClass>;\n\n\tabstract onRowStyle(schemaId: SchemaReadModelRootId): HermesObservable<SchemaRowStyle>;\n\n}\n","import { ElementRef, Injectable } from '@angular/core';\n\nimport { SchemaCssClass } from '../../../../core/schema/src/api/css-classes/schema-css-class';\nimport { SchemaTheme } from '../../../../core/schema/src/api/theme/schema-theme';\nimport { SchemaRowColoring } from '../../../../core/schema/src/api/row-coloring/schema-row-coloring';\nimport { SchemaWarehouse } from '../../../../core/schema/src/api/schema.warehouse';\nimport { SchemaReadModelRootId } from '../../../../core/schema/src/api/global/schema.read-model-root-id';\nimport { ClassModifier } from '../../../../feature/common/component/src/dom/class/class-modifier';\nimport { Reactive } from '@generic-ui/hermes';\n\n\n@Injectable()\nexport class SchemaCssClassManager extends Reactive {\n\n\tprivate static readonly VERTICAL_GRID_CLASS_NAME = 'gui-vertical-grid';\n\n\tprivate static readonly HORIZONTAL_GRID_CLASS_NAME = 'gui-horizontal-grid';\n\n\tprivate static readonly THEME_FABRIC_CLASS_NAME = 'gui-fabric';\n\n\tprivate static readonly THEME_MATERIAL_CLASS_NAME = 'gui-material';\n\n\tprivate static readonly THEME_LIGHT_CLASS_NAME = 'gui-light';\n\n\tprivate static readonly THEME_DARK_CLASS_NAME = 'gui-dark';\n\n\tprivate static readonly THEME_GENERIC_CLASS_NAME = 'gui-generic';\n\n\tprivate static readonly ROW_COLORING_ODD = 'gui-rows-odd';\n\n\tprivate static readonly ROW_COLORING_EVEN = 'gui-rows-even';\n\n\tprivate readonly classModifier: ClassModifier;\n\n\tprivate cssClass: SchemaCssClass = null;\n\n\tprivate cssHostRef: ElementRef;\n\n\tconstructor(private readonly schemaReadModelRepository: SchemaWarehouse) {\n\t\tsuper();\n\t\tthis.classModifier = new ClassModifier();\n\t}\n\n\tinit(elementRef: ElementRef, schemaReadModelRootId: SchemaReadModelRootId): void {\n\n\t\tthis.cssHostRef = elementRef;\n\n\t\tthis.schemaReadModelRepository\n\t\t\t.onCssClasses(schemaReadModelRootId)\n\t\t\t.pipe(\n\t\t\t\tthis.hermesTakeUntil()\n\t\t\t)\n\t\t\t.subscribe((classes: SchemaCssClass) => {\n\n\t\t\t\tconst diff = this.updateState(classes);\n\n\t\t\t\tthis.renderCssClasses(diff);\n\t\t\t});\n\t}\n\n\tprivate updateState(css: SchemaCssClass): Partial<SchemaCssClass> {\n\n\t\tif (!this.cssClass) {\n\t\t\tthis.cssClass = css;\n\t\t\treturn this.cssClass;\n\t\t} else {\n\n\t\t\tconst diff = {};\n\n\t\t\tObject.keys(this.cssClass)\n\t\t\t\t  .forEach((key: string) => {\n\t\t\t\t\t  if (css[key] !== this.cssClass[key]) {\n\t\t\t\t\t\t  diff[key] = css[key];\n\t\t\t\t\t  }\n\t\t\t\t  });\n\n\t\t\tthis.cssClass = css;\n\n\t\t\treturn diff;\n\t\t}\n\t}\n\n\tprivate renderCssClasses(diff: Partial<SchemaCssClass>): void {\n\n\t\tif (diff.hasOwnProperty('verticalGrid')) {\n\t\t\tthis.toggleCssClass(diff.verticalGrid, SchemaCssClassManager.VERTICAL_GRID_CLASS_NAME);\n\t\t}\n\n\t\tif (diff.hasOwnProperty('horizontalGrid')) {\n\t\t\tthis.toggleCssClass(diff.horizontalGrid, SchemaCssClassManager.HORIZONTAL_GRID_CLASS_NAME);\n\t\t}\n\n\t\tif (diff.hasOwnProperty('theme')) {\n\t\t\tthis.removeThemeCssClasses();\n\t\t\tthis.addClass(this.resolveThemeClassName(diff.theme));\n\t\t}\n\n\t\tif (diff.hasOwnProperty('rowColoring')) {\n\t\t\tthis.removeRowColoringClasses();\n\t\t\tthis.addClass(this.resolveRowColoringClassName(diff.rowColoring));\n\t\t}\n\t}\n\n\tprivate toggleCssClass(toggle: boolean, cssClassName: string): void {\n\t\tif (toggle) {\n\t\t\tthis.addClass(cssClassName);\n\t\t} else {\n\t\t\tthis.removeClass(cssClassName);\n\t\t}\n\t}\n\n\tprivate removeThemeCssClasses(): void {\n\t\tObject.keys(SchemaTheme)\n\t\t\t  .map((key: string) => SchemaTheme[key])\n\t\t\t  .map((theme: SchemaTheme) => this.resolveThemeClassName(theme))\n\t\t\t  .filter((className: string) => !!className)\n\t\t\t  .forEach((className: string) => {\n\t\t\t\t  this.removeClass(className);\n\t\t\t  });\n\t}\n\n\tprivate resolveThemeClassName(theme: SchemaTheme | string): string {\n\n\t\tswitch (theme) {\n\t\t\tcase SchemaTheme.FABRIC:\n\t\t\tcase SchemaTheme[SchemaTheme.FABRIC]:\n\t\t\t\treturn SchemaCssClassManager.THEME_FABRIC_CLASS_NAME;\n\n\t\t\tcase SchemaTheme.MATERIAL:\n\t\t\tcase SchemaTheme[SchemaTheme.MATERIAL]:\n\t\t\t\treturn SchemaCssClassManager.THEME_MATERIAL_CLASS_NAME;\n\n\t\t\tcase SchemaTheme.LIGHT:\n\t\t\tcase SchemaTheme[SchemaTheme.LIGHT]:\n\t\t\t\treturn SchemaCssClassManager.THEME_LIGHT_CLASS_NAME;\n\n\t\t\tcase SchemaTheme.DARK:\n\t\t\tcase SchemaTheme[SchemaTheme.DARK]:\n\t\t\t\treturn SchemaCssClassManager.THEME_DARK_CLASS_NAME;\n\n\t\t\tcase SchemaTheme.GENERIC:\n\t\t\tcase SchemaTheme[SchemaTheme.GENERIC]:\n\t\t\t\treturn SchemaCssClassManager.THEME_GENERIC_CLASS_NAME;\n\n\t\t\tdefault:\n\t\t\t\treturn SchemaCssClassManager.THEME_FABRIC_CLASS_NAME;\n\t\t}\n\t}\n\n\tprivate resolveRowColoringClassName(coloring: SchemaRowColoring | string): string {\n\t\tswitch (coloring) {\n\t\t\tcase SchemaRowColoring.ODD:\n\t\t\tcase SchemaRowColoring[SchemaRowColoring.ODD]:\n\t\t\t\treturn SchemaCssClassManager.ROW_COLORING_ODD;\n\n\t\t\tcase SchemaRowColoring.EVEN:\n\t\t\tcase SchemaRowColoring[SchemaRowColoring.EVEN]:\n\t\t\t\treturn SchemaCssClassManager.ROW_COLORING_EVEN;\n\n\t\t\tdefault:\n\t\t\t\treturn null;\n\t\t}\n\t}\n\n\tprivate removeRowColoringClasses(): void {\n\t\tObject.keys(SchemaRowColoring)\n\t\t\t  .map((key: string) => SchemaRowColoring[key])\n\t\t\t  .map((coloring: SchemaRowColoring) => this.resolveRowColoringClassName(coloring))\n\t\t\t  .filter((className: string) => !!className)\n\t\t\t  .forEach((className: string) => {\n\t\t\t\t  this.removeClass(className);\n\t\t\t  });\n\t}\n\n\tprivate addClass(cssClassName: string): void {\n\t\tif (cssClassName) {\n\t\t\tthis.classModifier.getElement(this.cssHostRef.nativeElement).add(cssClassName);\n\t\t}\n\t}\n\n\tprivate removeClass(cssClassName: string): void {\n\t\tif (cssClassName) {\n\t\t\tthis.classModifier.getElement(this.cssHostRef.nativeElement).remove(cssClassName);\n\t\t}\n\t}\n\n}\n","import { Injectable } from '@angular/core';\n\nimport { Archive } from '@generic-ui/hermes';\n\nimport { StructureCellEditState } from './structure.cell-edit.state';\n\n\n@Injectable()\nexport class StructureCellEditStore extends Archive<StructureCellEditState> {\n\n\tconstructor() {\n\t\tsuper();\n\t}\n\n}\n","import { Injectable } from '@angular/core';\n\nimport { Archive } from '@generic-ui/hermes';\n\n@Injectable()\nexport class StructureEditModeArchive extends Archive<boolean> {\n\n\tconstructor() {\n\t\tsuper();\n\t}\n}\n","export class StructureInfoPanelConfig {\n\n\tprivate readonly enabled: boolean = false;\n\n\tprivate readonly infoDialog: boolean = true;\n\n\tprivate readonly columnsManager: boolean = true;\n\n\tprivate readonly schemaManager: boolean = true;\n\n\tprivate readonly sourceSize: boolean = true;\n\n\tconstructor(enabled?: boolean,\n\t\t\t\tinfoDialog?: boolean,\n\t\t\t\tcolumnsManager?: boolean,\n\t\t\t\tschemaManager?: boolean,\n\t\t\t\tsourceSize?: boolean) {\n\n\t\tif (this.isNotUndefinedOrNull(enabled)) {\n\t\t\tthis.enabled = enabled;\n\t\t}\n\n\t\tif (this.isNotUndefinedOrNull(infoDialog)) {\n\t\t\tthis.infoDialog = infoDialog;\n\t\t}\n\n\t\tif (this.isNotUndefinedOrNull(columnsManager)) {\n\t\t\tthis.columnsManager = columnsManager;\n\t\t}\n\n\t\tif (this.isNotUndefinedOrNull(sourceSize)) {\n\t\t\tthis.sourceSize = sourceSize;\n\t\t}\n\n\t\tif (this.isNotUndefinedOrNull(schemaManager)) {\n\t\t\tthis.schemaManager = schemaManager;\n\t\t}\n\n\t}\n\n\tisEnabled(): boolean {\n\t\treturn this.enabled;\n\t}\n\n\tisInfoDialogEnabled(): boolean {\n\t\treturn this.infoDialog;\n\t}\n\n\tisColumnsManagerEnabled(): boolean {\n\t\treturn this.columnsManager;\n\t}\n\n\tisSourceSizeEnabled(): boolean {\n\t\treturn this.sourceSize;\n\t}\n\n\tisSchemaManagerEnabled(): boolean {\n\t\treturn this.schemaManager;\n\t}\n\n\tprivate isNotUndefinedOrNull(config: boolean): boolean {\n\t\treturn config !== undefined && config !== null;\n\t}\n\n}\n","import { Archive } from '@generic-ui/hermes';\nimport { StructureInfoPanelConfig } from './structure.info-panel.config';\n\n\nexport class StructureInfoPanelArchive extends Archive<StructureInfoPanelConfig> {\n\n\tconstructor() {\n\t\tsuper(new StructureInfoPanelConfig());\n\t}\n}\n","import { InjectionToken } from '@angular/core';\n\nimport { StructureComponent } from './structure.component';\n\nexport const structureComponentToken = new InjectionToken<StructureComponent>('StructureComponentToken');\n","import { Directive, ElementRef } from '@angular/core';\n\nimport { ClassModifier } from './dom/class/class-modifier';\nimport { Changes } from './ng-changes';\n\n@Directive()\nexport abstract class GuiComponent {\n\n\tprivate innerClassModifier: ClassModifier;\n\n\tprotected constructor(private readonly innerElementRef: ElementRef) {\n\t\tthis.initClassModifier();\n\t\tthis.addHostClass();\n\t}\n\n\tprotected abstract getSelectorName(): string;\n\n\taddClassToHost(className: string): void {\n\t\tthis.innerClassModifier.getHost().add(className);\n\t}\n\n\tremoveClassFromHost(className: string): void {\n\t\tthis.innerClassModifier.getHost().remove(className);\n\t}\n\n\thasChanged<T>(prop: Changes<T>): boolean {\n\t\treturn prop !== undefined && prop.currentValue !== undefined;\n\t}\n\n\tifChanged<T>(prop: Changes<T>, callback: () => void): void {\n\t\tif (this.hasChanged(prop)) {\n\t\t\tcallback();\n\t\t}\n\t}\n\n\tprivate initClassModifier(): void {\n\t\tthis.innerClassModifier = new ClassModifier(this.innerElementRef.nativeElement);\n\t}\n\n\tprivate addHostClass(): void {\n\t\tthis.innerClassModifier.getHost().add(this.getSelectorName());\n\t}\n}\n","import { ChangeDetectorRef, Directive, ElementRef, EventEmitter } from '@angular/core';\nimport { GuiComponent } from './gui-component';\nimport { HermesObservable, HermesSubject, hermesTakeUntil } from '@generic-ui/hermes';\n\n@Directive()\nexport abstract class SmartComponent extends GuiComponent {\n\n\tprivate viewInDom: boolean = false;\n\n\tprivate readonly unsubscribe$ = new HermesSubject<void>();\n\n\tprotected constructor(protected readonly detector: ChangeDetectorRef,\n\t\t\t\t\t\t  elementRef: ElementRef) {\n\t\tsuper(elementRef);\n\t}\n\n\tngAfterViewInit() {\n\t\tthis.viewInDom = true;\n\t}\n\n\tngOnDestroy() {\n\t\tthis.unsubscribe();\n\t}\n\n\treRender(): void {\n\t\tif (this.isViewInDom()) {\n\t\t\tthis.detector.detectChanges();\n\t\t}\n\t}\n\n\tisViewInDom(): boolean {\n\t\treturn this.viewInDom;\n\t}\n\n\t/**\n\t * @deprecated instead use useReactiveContext\n\t */\n\tsubscribe<T>(stream$: HermesObservable<T>, callback: (value: T) => void): void {\n\t\tstream$\n\t\t\t.pipe(\n\t\t\t\tthis.takeUntil()\n\t\t\t)\n\t\t\t.subscribe((streamValues: T) => {\n\t\t\t\tcallback(streamValues);\n\t\t\t\tthis.reRender();\n\t\t\t});\n\t}\n\n\t/**\n\t * @deprecated instead use useReactiveContext\n\t */\n\tsubscribeWithoutRender<T>(stream$: HermesObservable<T>, callback: (value: T) => void): void {\n\t\tstream$\n\t\t\t.pipe(\n\t\t\t\tthis.takeUntil()\n\t\t\t)\n\t\t\t.subscribe((streamValues: T) => {\n\t\t\t\tcallback(streamValues);\n\t\t\t});\n\t}\n\n\t// for gate\n\tsubscribeAndEmit<V>(\n\t\tstream$: HermesObservable<V>,\n\t\temitter: EventEmitter<V>,\n\t\tmapper: (value: V) => any = (value: V) => value\n\t): void {\n\t\tstream$\n\t\t\t.pipe(\n\t\t\t\tthis.takeUntil()\n\t\t\t)\n\t\t\t.subscribe((value: V) => {\n\t\t\t\temitter.emit(mapper(value));\n\t\t\t});\n\t}\n\n\tprotected unsubscribe(): void {\n\t\tthis.unsubscribe$.next();\n\t\tthis.unsubscribe$.complete();\n\t}\n\n\tprotected takeUntil(): any {\n\t\treturn hermesTakeUntil(this.unsubscribe$);\n\t}\n\n}\n","export enum StructureCellEditState {\n\tENTER,\n\tSUBMIT,\n\tCANCEL\n}\n","import { Command } from '@generic-ui/hermes';\nimport { StructureId } from '../api/global/structure.id';\n\nexport class StructureCommand extends Command<StructureId> {\n}\n","import { StructureId } from '../../../../structure-core/src/api/global/structure.id';\nimport { FieldConfig } from '../../api/config/field.config';\nimport { StructureCommand } from '../../../../structure-core/src/core/structure.command';\n\n\nexport class InitFieldsCommand extends StructureCommand {\n\n\tconstructor(structureId: StructureId,\n\t\t\t\tprivate readonly fieldConfigs: Array<FieldConfig>) {\n\t\tsuper(structureId, 'InitFieldsCommand');\n\t}\n\n\tgetFieldConfigs(): Array<FieldConfig> {\n\t\treturn this.fieldConfigs;\n\t}\n\n}\n","import { DomainEvent } from '@generic-ui/hermes';\n\nimport { StructureId } from '../api/global/structure.id';\n\nexport class StructureDomainEvent extends DomainEvent<StructureId> {\n}\n","import { StructureId } from '../../../../structure-core/src/api/global/structure.id';\nimport { FieldEntity } from '../../domain/field/field.entity';\nimport { FieldConfig } from '../../api/config/field.config';\nimport { StructureDomainEvent } from '../../../../structure-core/src/core/structure.domain-event';\n\n\nexport class FieldsInitedEvent extends StructureDomainEvent {\n\n\tconstructor(aggregateId: StructureId,\n\t\t\t\tpublic readonly fieldConfigs: Array<FieldConfig>, // TODO merge\n\t\t\t\tprivate readonly fields: Array<FieldEntity>) {\n\t\tsuper(aggregateId, { fieldConfigs, fields }, 'FieldsInitedEvent');\n\t}\n\n\tgetFields(): Array<FieldEntity> {\n\t\treturn this.fields;\n\t}\n}\n","export class ColumnFieldId {\n\n\tprivate readonly id: string;\n\n\tconstructor(id: string) {\n\t\tthis.id = id;\n\t}\n\n\tgetId(): string {\n\t\treturn this.id;\n\t}\n\n}\n","import { ColumnConfig } from '../../../api/column/column.config';\nimport { ColumnField } from '../../../domain/column/field/column-field';\n\nexport class ColumnParams {\n\n\tconstructor(private readonly column: ColumnConfig,\n\t\t\t\tprivate readonly field: ColumnField) {\n\t}\n\n\tgetColumn(): ColumnConfig {\n\t\treturn this.column;\n\t}\n\n\tgetField(): ColumnField {\n\t\treturn this.field;\n\t}\n\n}\n","import { CommandDispatcher, CoreContainer, DomainEvent, DomainEventBus, hermesFilter, hermesTake } from '@generic-ui/hermes';\n\nimport { InitFieldsCommand } from '../../../../../../core/structure/field/src/core/init/init-fields.command';\nimport { FieldConfig } from '../../../../../../core/structure/field/src/api/config/field.config';\nimport { FieldsInitedEvent } from '../../../../../../core/structure/field/src/core/init/fields-inited.event';\nimport { StructureId } from '../../../../../../core/structure/structure-core/src/api/global/structure.id';\nimport { FieldEntity } from '../../../../../../core/structure/field/src/domain/field/field.entity';\nimport { ColumnFieldId } from '../../../../../../core/composition/src/domain/column/field/column-field.id';\nimport { ColumnConfig, MultiColumnConfig } from '../../../../../../core/composition/src/api/column/column.config';\nimport { ColumnParams } from '../../../../../../core/composition/src/core/column/set-columns/column.params';\nimport { CompositionPublisher } from '../../../../../../core/composition/src/api/composition.publisher';\nimport { CompositionId } from '../../../../../../core/composition/src/api/global/composition.id';\nimport { ColumnFieldFactory } from '../../../../../../core/composition/src/domain/column/field/colum-field.factory';\nimport { NgChanges } from '../../../../../../feature/common/component/src/ng-changes';\nimport { StructureGateway } from '../structure.gateway';\nimport { ColumnAutoConfigurator } from '../../../../../../core/composition/src/api/column/auto/column-auto.configurator';\n\n\nexport class StructureColumnInputHandler {\n\n\tprivate readonly commandDispatcher: CommandDispatcher = CoreContainer.resolve(CommandDispatcher);\n\n\tprivate readonly domainEventBus: DomainEventBus = CoreContainer.resolve(DomainEventBus);\n\n\tprivate columns: ReadonlyArray<ColumnConfig | MultiColumnConfig>;\n\n\tconstructor(private readonly structureId: StructureId,\n\t\t\t\tprivate readonly compositionId: CompositionId,\n\t\t\t\tprivate readonly columnFieldFactory: ColumnFieldFactory,\n\t\t\t\tprivate readonly columnAutoConfigurator: ColumnAutoConfigurator,\n\t\t\t\tprivate readonly compositionCommandInvoker: CompositionPublisher) {\n\t}\n\n\thandle(changes: NgChanges<StructureGateway> | any): void {\n\n\t\tlet config: ReadonlyArray<ColumnConfig | MultiColumnConfig> = [];\n\n\t\tif (changes.columns !== undefined && changes.columns.currentValue !== undefined) {\n\t\t\tconfig = changes.columns.currentValue;\n\t\t\tthis.columns = config;\n\t\t} else {\n\n\t\t\tif (this.columns === undefined && changes.source !== undefined && changes.source !== null) {\n\t\t\t\tconfig = this.columnAutoConfigurator.configure(changes.source.currentValue);\n\t\t\t\tthis.columns = config;\n\t\t\t} else {\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\tthis.compositionCommandInvoker.setGroups(config, this.compositionId);\n\n\t\t// prepare model\n\t\tconst { columns, groups } = this.getConfigs(config);\n\n\t\tconst fieldConfigs = this.getFieldConfigs(columns);\n\n\t\t// const fieldConfigs = columns as Array<FieldConfig>;\n\n\t\tconst initCommand = new InitFieldsCommand(this.structureId, fieldConfigs);\n\n\t\tthis.domainEventBus\n\t\t\t.ofEvents([\n\t\t\t\t\tFieldsInitedEvent as any\n\t\t\t\t]\n\t\t\t)\n\t\t\t.pipe(\n\t\t\t\thermesFilter((event: DomainEvent<StructureId>) => event.getAggregateId().toString() === this.structureId.toString()),\n\t\t\t\thermesTake(1)\n\t\t\t)\n\t\t\t.subscribe((event: FieldsInitedEvent) => {\n\n\t\t\t\tconst fields = event.getFields(),\n\t\t\t\t\tcolumnFieldIds = this.convertColumnFieldIds(fields),\n\t\t\t\t\tparams = this.convertColumns(columns, fields, columnFieldIds);\n\n\t\t\t\tthis.compositionCommandInvoker.setColumns(params, this.compositionId);\n\n\t\t\t\t// this.compositionCommandInvoker.setGroups(this.compositionId);\n\t\t\t});\n\n\t\tthis.commandDispatcher.dispatch(initCommand);\n\t}\n\n\tprivate getConfigs(configs: ReadonlyArray<ColumnConfig | MultiColumnConfig>): { columns: Array<ColumnConfig>, groups: Array<MultiColumnConfig> } {\n\n\t\tlet columnConfigs: Array<ColumnConfig> = [];\n\n\t\tconst groupConfigs: Array<MultiColumnConfig> = [];\n\n\t\tfor (let i = 0; i < configs.length; i += 1) {\n\n\t\t\tconst config = configs[i];\n\n\t\t\tif ((config as MultiColumnConfig).columns !== undefined) {\n\t\t\t\tgroupConfigs.push(config);\n\t\t\t\tcolumnConfigs = columnConfigs.concat((config as MultiColumnConfig).columns);\n\t\t\t} else {\n\t\t\t\tcolumnConfigs.push(config);\n\t\t\t}\n\t\t}\n\n\t\treturn {\n\t\t\tcolumns: columnConfigs,\n\t\t\tgroups: groupConfigs\n\t\t};\n\t}\n\n\tprivate getFieldConfigs(columns: Array<ColumnConfig>): Array<FieldConfig> {\n\n\t\treturn columns.map((c) => {\n\t\t\treturn {\n\t\t\t\tfield: c.field as string,\n\t\t\t\ttype: c.type,\n\t\t\t\tmatcher: c.matcher,\n\t\t\t\tsummaries: c.summaries,\n\t\t\t\tsorting: c.sorting\n\t\t\t};\n\t\t});\n\t}\n\n\tprivate convertColumnFieldIds(fields: Array<FieldEntity>): Array<ColumnFieldId> {\n\n\t\tif (!fields) {\n\t\t\treturn [];\n\t\t}\n\n\t\treturn fields.map((field: FieldEntity) => new ColumnFieldId(field.getId().getId()));\n\t}\n\n\tprivate convertColumns(columns: Array<ColumnConfig>, fields: Array<FieldEntity>, columnFieldIds: Array<ColumnFieldId>): Array<ColumnParams> {\n\n\t\tif (!columns) {\n\t\t\treturn [];\n\t\t}\n\n\t\treturn columns.map((column: ColumnConfig, index: number) => {\n\n\t\t\tconst columnFieldId = columnFieldIds[index],\n\t\t\t\tfield = fields[index];\n\n\t\t\tconst columnField = this.columnFieldFactory.create(\n\t\t\t\tcolumnFieldId,\n\t\t\t\tfield.getAccessorMethod(),\n\t\t\t\tfield.getDataType(),\n\t\t\t\tfield.getSearchAccessorMethod()\n\t\t\t);\n\n\t\t\treturn new ColumnParams(column, columnField);\n\t\t});\n\n\t}\n\n}\n","import { ColumnConfig } from '../column.config';\n\n\nexport abstract class ColumnAutoConfigurator {\n\n\tabstract configure(source: ReadonlyArray<any>): ReadonlyArray<ColumnConfig>;\n\n}\n","import { AggregateId } from '@generic-ui/hermes';\n\nimport { SchemaReadModelRootId } from '../api/global/schema.read-model-root-id';\n\n\nexport class SchemaId extends AggregateId {\n\n\tconstructor(id: string) {\n\t\tsuper(id);\n\t}\n\n\ttoReadModelRootId(): SchemaReadModelRootId {\n\t\treturn new SchemaReadModelRootId(this.getId());\n\t}\n}\n","import { ReadModelRootId } from '@generic-ui/hermes';\n\nimport { SchemaId } from '../../core/schema.id';\n\n\nexport class SchemaReadModelRootId extends ReadModelRootId {\n\n\tconstructor(id: string) {\n\t\tsuper(id);\n\t}\n\n\ttoAggregateId(): SchemaId {\n\t\treturn new SchemaId(this.getId());\n\t}\n}\n","import { EventRepository, HermesObservable } from '@generic-ui/hermes';\nimport { StructureReadModelRootId } from '../../../structure-core/src/api/read/structure.read-model-root-id';\n\n\nexport abstract class PagingEventRepository extends EventRepository<StructureReadModelRootId> {\n\n\tabstract onPageChange(structureId: StructureReadModelRootId): HermesObservable<number>;\n\n\tabstract onPageSizeChange(structureId: StructureReadModelRootId): HermesObservable<number>;\n\n}\n","export class EditedItemModel {\n\n\tconstructor(public readonly after: any,\n\t\t\t\tpublic readonly before: any) {\n\t}\n\n}\n","import { ItemEntity } from '../../../domain/item/item.entity';\nimport { StructureId } from '../../../../../structure-core/src/api/global/structure.id';\nimport { StructureDomainEvent } from '../../../../../structure-core/src/core/structure.domain-event';\n\n\nexport class StructureSourceItemEditedEvent extends StructureDomainEvent {\n\n\tconstructor(aggregateId: StructureId,\n\t\t\t\tprivate readonly beforeItem: ItemEntity,\n\t\t\t\tprivate readonly afterItem: ItemEntity) {\n\t\tsuper(aggregateId, { beforeItem, afterItem }, 'StructureSourceItemEditedEvent');\n\t}\n\n\tgetBeforeItem(): ItemEntity {\n\t\treturn this.beforeItem;\n\t}\n\n\tgetAfterItem(): ItemEntity {\n\t\treturn this.afterItem;\n\t}\n\n}\n","import { CoreContainer, DomainEvent, DomainEventBus, hermesFilter, hermesMap, HermesObservable } from '@generic-ui/hermes';\n\nimport { StructureId } from '../../../../structure-core/src/api/global/structure.id';\nimport { EditedItemModel } from './edited-item.model';\nimport { StructureSourceItemEditedEvent } from '../../core/origin/edit/structure.source-item-edited.event';\n\n\nexport class SourceEventService {\n\n\tprivate readonly domainEventBus: DomainEventBus = CoreContainer.resolve(DomainEventBus);\n\n\tonSourceEdited(structureId: StructureId): HermesObservable<EditedItemModel> {\n\n\t\treturn this.domainEventBus\n\t\t\t\t   .ofEvents([\n\t\t\t\t\t\t   StructureSourceItemEditedEvent as any\n\t\t\t\t\t   ]\n\t\t\t\t   )\n\t\t\t\t   .pipe(\n\t\t\t\t\t   hermesFilter((event: DomainEvent<StructureId>) => event.getAggregateId().toString() === structureId.toString()),\n\t\t\t\t\t   hermesMap((event: StructureSourceItemEditedEvent) => {\n\n\t\t\t\t\t\t   const afterItem = event.getAfterItem().getSourceItem(),\n\t\t\t\t\t\t\t   beforeItem = event.getBeforeItem().getSourceItem();\n\n\t\t\t\t\t\t   return new EditedItemModel(afterItem, beforeItem);\n\t\t\t\t\t   })\n\t\t\t\t   );\n\t}\n}\n","import { EventRepository, HermesObservable } from '@generic-ui/hermes';\nimport { CompositionColumnsSetEvent } from '../core/column/set-columns/composition.columns-set.event';\nimport { CompositionReadModelRootId } from './global/composition.read-model-root-id';\n\n\nexport abstract class CompositionEventRepository extends EventRepository<CompositionReadModelRootId> {\n\n\tabstract onColumnsChanged(compositionId?: CompositionReadModelRootId): HermesObservable<CompositionColumnsSetEvent>;\n\n\tabstract onContainerWidthChanged(compositionId?: CompositionReadModelRootId): HermesObservable<number>;\n\n}\n","import { StructureId } from '../../../structure-core/src/api/global/structure.id';\nimport { Item } from './item/item';\nimport { ItemEntity } from '../domain/item/item.entity';\nimport { HermesObservable, HermesSingle, Warehouse } from '@generic-ui/hermes';\n\n\nexport abstract class SourceWarehouse implements Warehouse {\n\n\tprotected constructor() {\n\t}\n\n\tabstract findItems(structureId: StructureId): ReadonlyArray<Item>;\n\n\tabstract onItems(structureId: StructureId): HermesObservable<ReadonlyArray<Item>>;\n\n\tabstract onItemsSize(structureId: StructureId): HermesObservable<number>;\n\n\tabstract onceItems(structureId: StructureId): HermesSingle<ReadonlyArray<Item>>;\n\n\tabstract onOriginSize(structureId: StructureId): HermesObservable<number>;\n\n\tabstract onLoading(structureId: StructureId): HermesObservable<boolean>;\n\n\tabstract onPreparedItems(structureId: StructureId): HermesObservable<ReadonlyArray<ItemEntity>>;\n\n\tabstract findPreparedItems(structureId: StructureId): ReadonlyArray<ItemEntity>;\n\n}\n","import { StructureId } from '../../../structure-core/src/api/global/structure.id';\nimport { StructureDomainEvent } from '../../../structure-core/src/core/structure.domain-event';\n\nexport class SelectedRowChangedEvent extends StructureDomainEvent {\n\n\tconstructor(structureId: StructureId,\n\t\t\t\tprivate readonly selectedRows: Array<string>,\n\t\t\t\tprivate readonly allSelected: boolean,\n\t\t\t\tprivate readonly allUnselected: boolean) {\n\t\tsuper(structureId, { selectedRows, allSelected, allUnselected }, 'SelectedRowChangedEvent');\n\t}\n\n\tgetSelectedRows(): Array<string> {\n\t\treturn this.selectedRows;\n\t}\n\n\tisAllSelected(): boolean {\n\t\treturn this.allSelected;\n\t}\n\n\tisAllUnselected(): boolean {\n\t\treturn this.allUnselected;\n\t}\n}\n","import { DomainEventBus, EventRepository, hermesFilter, hermesMap, HermesObservable, HermesSubject, hermesSwitchMap, hermesTake } from '@generic-ui/hermes';\n\nimport { StructureId } from '../../../structure-core/src/api/global/structure.id';\nimport { SourceWarehouse } from '../../../source/src/api/source.warehouse';\nimport { SelectedRow } from './row-selected/selected-row';\nimport { SelectedRowChangedEvent } from '../core/selected-row-changed.event';\nimport { ItemEntity } from '../../../source/src/domain/item/item.entity';\nimport { StructureReadModelRootId } from '../../../structure-core/src/api/read/structure.read-model-root-id';\n\n\nexport class FormationEventRepository extends EventRepository<StructureReadModelRootId> {\n\n\tprivate readonly map = new Map();\n\n\tprivate readonly subject$ = new HermesSubject();\n\n\tconstructor(private readonly sourceWarehouse: SourceWarehouse,\n\t\t\t\tprivate readonly domainEventBusTOREMOVE: DomainEventBus) {\n\t\tsuper();\n\n\t\tthis.domainEventBusTOREMOVE\n\t\t\t.ofEvents([\n\t\t\t\t\tSelectedRowChangedEvent as any\n\t\t\t\t]\n\t\t\t)\n\t\t\t.pipe(\n\t\t\t\thermesSwitchMap((event: SelectedRowChangedEvent) => {\n\n\t\t\t\t\tconst selectedRows = event.getSelectedRows();\n\t\t\t\t\tconst structureId = event.getAggregateId();\n\n\t\t\t\t\treturn this.sourceWarehouse\n\t\t\t\t\t\t\t   .onPreparedItems(structureId)\n\t\t\t\t\t\t\t   .pipe(\n\t\t\t\t\t\t\t\t   hermesTake(1),\n\t\t\t\t\t\t\t\t   hermesMap((items: Array<ItemEntity>) => {\n\n\t\t\t\t\t\t\t\t\t   const selectedItems = [],\n\t\t\t\t\t\t\t\t\t\t   length = items.length,\n\t\t\t\t\t\t\t\t\t\t   itemsMap = new Map<string, ItemEntity>();\n\n\t\t\t\t\t\t\t\t\t   for (let i = 0; i < length; i += 1) {\n\t\t\t\t\t\t\t\t\t\t   itemsMap.set(items[i].getId().toString(), items[i]);\n\t\t\t\t\t\t\t\t\t   }\n\n\t\t\t\t\t\t\t\t\t   for (let j = 0; j < selectedRows.length; j += 1) {\n\t\t\t\t\t\t\t\t\t\t   const item: ItemEntity = itemsMap.get(selectedRows[j]);\n\t\t\t\t\t\t\t\t\t\t   selectedItems.push(new SelectedRow(item.getSourceItem(), j, item.getId()));\n\t\t\t\t\t\t\t\t\t   }\n\n\t\t\t\t\t\t\t\t\t   return {\n\t\t\t\t\t\t\t\t\t\t   id: structureId,\n\t\t\t\t\t\t\t\t\t\t   items: selectedItems\n\t\t\t\t\t\t\t\t\t   };\n\t\t\t\t\t\t\t\t   })\n\t\t\t\t\t\t\t   );\n\t\t\t\t})\n\t\t\t)\n\t\t\t.subscribe((e) => {\n\t\t\t\tthis.map.set(e.id.toString(), e.items);\n\t\t\t\tthis.subject$.next(this.map);\n\t\t\t});\n\t}\n\n\tstatic readonly services = [SourceWarehouse, DomainEventBus] as const;\n\n\tonItemSelected(structureId: StructureId): HermesObservable<ReadonlyArray<SelectedRow>> {\n\t\treturn this.subject$\n\t\t\t\t   .toObservable()\n\t\t\t\t   .pipe(\n\t\t\t\t\t   hermesFilter((map: any) => {\n\t\t\t\t\t\t   return map.has(structureId.toString());\n\t\t\t\t\t   }),\n\t\t\t\t\t   hermesMap((map: any) => {\n\t\t\t\t\t\t   return map.get(structureId.toString());\n\t\t\t\t\t   })\n\t\t\t\t   );\n\t}\n\n}\n","import { CellEditConfig } from '../../api/edit/cell-edit.config';\n\nexport class CellEditorManager {\n\n\tprivate readonly enabled: boolean = false;\n\n\tprivate readonly rowEdit: (value: any, item: any, index: number) => boolean = () => true;\n\n\tprivate readonly cellEdit: (value: any, item: any, index: number) => boolean = () => true;\n\n\tconstructor(config: CellEditConfig) {\n\n\t\tif (config.enabled !== undefined) {\n\t\t\tthis.enabled = config.enabled;\n\t\t}\n\n\t\tif (config.rowEdit !== undefined) {\n\t\t\tthis.rowEdit = config.rowEdit;\n\t\t}\n\n\t\tif (config.cellEdit !== undefined) {\n\t\t\tthis.cellEdit = config.cellEdit;\n\t\t}\n\t}\n\n\tisEnabled(value: any, item: any, index: number): boolean {\n\t\treturn this.enabled && this.rowEdit(value, item, index) && this.cellEdit(value, item, index);\n\t}\n\n}\n","import { Injectable } from '@angular/core';\n\nimport { AggregateArchive } from '@generic-ui/hermes';\nimport { CellEditorManager } from '../../../../core/structure/structure-core/src/domain/edit/cell-editor.manager';\n\n\n@Injectable()\nexport class StructureCellEditArchive extends AggregateArchive<CellEditorManager> {\n\n\tstatic default = new CellEditorManager({ enabled: false });\n\n\tconstructor() {\n\t\tsuper(StructureCellEditArchive.default);\n\t}\n}\n","import { InfoPanelConfig } from './info-panel.config';\nimport { StructureInfoPanelConfig } from './structure.info-panel.config';\n\n\nexport class StructureInfoPanelConfigConverter {\n\n\tconvert(config: InfoPanelConfig): StructureInfoPanelConfig {\n\n\t\tlet infoDialog,\n\t\t\tcolumnsManager,\n\t\t\tsourceSize,\n\t\t\tschemaManager;\n\n\t\tif (config.infoDialog !== undefined) {\n\t\t\tinfoDialog = config.infoDialog;\n\t\t}\n\n\t\tif (config.columnsManager !== undefined) {\n\t\t\tcolumnsManager = config.columnsManager;\n\t\t}\n\n\t\tif (config.schemaManager !== undefined) {\n\t\t\tschemaManager = config.schemaManager;\n\t\t}\n\n\t\tif (config.sourceSize !== undefined) {\n\t\t\tsourceSize = config.sourceSize;\n\t\t}\n\n\t\treturn new StructureInfoPanelConfig(\n\t\t\tconfig.enabled,\n\t\t\tinfoDialog,\n\t\t\tcolumnsManager,\n\t\t\tschemaManager,\n\t\t\tsourceSize);\n\t}\n}\n","import { Injectable } from '@angular/core';\nimport { InfoPanelConfig } from '../../../../../../../core/structure/structure-core/src/api/panel/info/info-panel.config';\nimport { StructureInfoPanelArchive } from '../../../../../../../core/structure/structure-core/src/api/panel/info/structure.info-panel.archive';\nimport { StructureInfoPanelConfigConverter } from '../../../../../../../core/structure/structure-core/src/api/panel/info/structure.info-panel.config-converter';\n\n\n@Injectable()\nexport class StructureInfoPanelConfigService {\n\n\tconstructor(private structureInfoPanelConfigConverter: StructureInfoPanelConfigConverter,\n\t\t\t\tprivate structureInfoPanelArchive: StructureInfoPanelArchive) {\n\t}\n\n\tstatic readonly services = [StructureInfoPanelConfigConverter, StructureInfoPanelArchive];\n\n\tset(config: InfoPanelConfig): void {\n\t\tconst infoPanelConfig = this.structureInfoPanelConfigConverter.convert(config);\n\n\t\tthis.structureInfoPanelArchive.next(infoPanelConfig);\n\t}\n\n}\n","import { ColumnFieldId } from './column-field.id';\nimport { ColumnFieldAccessor } from './column-field-accessor';\n\nimport { DataType } from '../../../../../structure/field/src/domain/field/data/data-type';\nimport { ItemEntity } from '../../../../../structure/source/src/domain/item/item.entity';\n\n\nexport class ColumnField {\n\n\tprivate readonly fieldId: ColumnFieldId;\n\n\tprivate readonly accessor: ColumnFieldAccessor;\n\n\tprivate readonly searchAccessor: ColumnFieldAccessor;\n\n\tprivate readonly dataType: DataType;\n\n\tconstructor(fieldId: ColumnFieldId,\n\t\t\t\taccessor: ColumnFieldAccessor,\n\t\t\t\tdataType: DataType,\n\t\t\t\tsearchAccessor: ColumnFieldAccessor) {\n\t\tthis.fieldId = fieldId;\n\t\tthis.accessor = accessor;\n\t\tthis.dataType = dataType;\n\t\tthis.searchAccessor = searchAccessor;\n\t}\n\n\tgetId(): ColumnFieldId {\n\t\treturn this.fieldId;\n\t}\n\n\tgetValue(entity: ItemEntity): any {\n\t\treturn this.accessor(entity);\n\t}\n\n\tgetAccessor(): ColumnFieldAccessor {\n\t\treturn this.accessor;\n\t}\n\n\tgetSearchAccessor(): ColumnFieldAccessor {\n\t\treturn this.searchAccessor;\n\t}\n\n\tgetDataType(): DataType {\n\t\treturn this.dataType;\n\t}\n\n}\n","import { ColumnFieldId } from './column-field.id';\nimport { ColumnFieldAccessor } from './column-field-accessor';\nimport { ColumnField } from './column-field';\n\nimport { DataType } from '../../../../../structure/field/src/domain/field/data/data-type';\n\n\nexport class ColumnFieldFactory {\n\n\tcreate(columnFieldId: ColumnFieldId, accessor: ColumnFieldAccessor, dataType: DataType, searchAccessor: ColumnFieldAccessor): ColumnField {\n\t\treturn new ColumnField(columnFieldId, accessor, dataType, searchAccessor);\n\t}\n\n}\n","import { EventRepository, HermesObservable } from '@generic-ui/hermes';\nimport { StructureReadModelRootId } from '../../../structure-core/src/api/read/structure.read-model-root-id';\n\n\nexport abstract class SearchEventRepository extends EventRepository<StructureReadModelRootId> {\n\n\tprotected constructor() {\n\t\tsuper();\n\t}\n\n\tabstract onSearchPhrase(structureId: StructureReadModelRootId): HermesObservable<string>;\n}\n","import { Injectable } from '@angular/core';\n\nimport { Archive } from '@generic-ui/hermes';\n\n@Injectable()\nexport class StructureHeaderBottomEnabledArchive extends Archive<boolean> {\n\n\tconstructor() {\n\t\tsuper(false);\n\t}\n\n}\n","import { EventRepository, HermesObservable } from '@generic-ui/hermes';\nimport { SchemaReadModelRootId } from './global/schema.read-model-root-id';\nimport { SchemaTheme } from './theme/schema-theme';\nimport { SchemaRowColoring } from './row-coloring/schema-row-coloring';\n\n\nexport abstract class SchemaEventRepository extends EventRepository<SchemaReadModelRootId> {\n\n\tprotected constructor() {\n\t\tsuper();\n\t}\n\n\tabstract onThemeChanged(schemaId: SchemaReadModelRootId): HermesObservable<SchemaTheme>;\n\n\tabstract onHorizontalGridChanged(schemaId: SchemaReadModelRootId): HermesObservable<boolean>;\n\n\tabstract onVerticalGridChanged(schemaId: SchemaReadModelRootId): HermesObservable<boolean>;\n\n\tabstract onRowColoring(schemaId: SchemaReadModelRootId): HermesObservable<SchemaRowColoring>;\n\n}\n","import { Translation } from './translation';\nimport { TranslationChange } from './translation-change';\nimport { HermesObservable } from '@generic-ui/hermes';\n\nexport abstract class TranslationFacade {\n\n\tabstract getTranslation(): Translation;\n\n\tabstract onTranslation(): HermesObservable<Translation>;\n\n\tabstract setDefaultTranslation(): void;\n\n\tabstract changeTranslation(change: TranslationChange): void;\n\n\tabstract setResolver(resolver: (key: string, value: string) => string): void;\n\n}\n","import { AggregateArchive, AggregateId, hermesFilter, HermesObservable, HermesSingle, singleFromObservable } from '@generic-ui/hermes';\n\n\nexport class StructureInitialValuesReadyArchive extends AggregateArchive<boolean> {\n\n\tstatic readonly default = false;\n\n\tconstructor() {\n\t\tsuper(StructureInitialValuesReadyArchive.default);\n\t}\n\n\ton(aggregateId: AggregateId): HermesObservable<boolean> {\n\t\treturn super.on(aggregateId)\n\t\t\t\t\t.pipe(\n\t\t\t\t\t\thermesFilter(v => v)\n\t\t\t\t\t);\n\t}\n\n\tonce(aggregateId: AggregateId): HermesSingle<boolean> {\n\t\treturn singleFromObservable(this.on(aggregateId));\n\t}\n\n}\n","import { ChangeDetectorRef, Directive, ElementRef, EventEmitter, Input, OnChanges, OnInit, Output } from '@angular/core';\n\nimport { SmartComponent } from '../../../../../feature/common/component/src/smart-component';\nimport { EditedItemModel } from '../../../../../core/structure/source/src/api/edit/edited-item.model';\nimport { StructureId } from '../../../../../core/structure/structure-core/src/api/global/structure.id';\nimport { CompositionId } from '../../../../../core/composition/src/api/global/composition.id';\nimport { StructurePublisher } from '../../../../../core/structure/structure-core/src/api/structure.publisher';\nimport { PagingPublisher } from '../../../../../core/structure/paging/src/api/paging.publisher';\nimport { PagingEventRepository } from '../../../../../core/structure/paging/src/api/paging.event-repository';\nimport { SourcePublisher } from '../../../../../core/structure/source/src/api/source.publisher';\nimport { SourceEventService } from '../../../../../core/structure/source/src/api/edit/source-event.service';\nimport { CompositionPublisher } from '../../../../../core/composition/src/api/composition.publisher';\nimport { CompositionEventRepository } from '../../../../../core/composition/src/api/composition.event-repository';\nimport { FormationEventRepository } from '../../../../../core/structure/formation/src/api/formation.event-repository';\nimport { StructureEditModeArchive } from '../../edit/structure.edit-mode.archive';\nimport { StructureCellEditArchive } from '../../edit/structure.cell-edit.archive';\nimport { StructureCellEditStore } from '../../edit/structure.cell-edit.store';\nimport { StructureCellEditState } from '../../edit/structure.cell-edit.state';\nimport { SearchEventRepository } from '../../../../../core/structure/search/src/api/search.event-repository';\nimport { SchemaPublisher } from '../../../../../core/schema/src/api/schema.publisher';\nimport { StructureHeaderBottomEnabledArchive } from '../../header/structure-header-bottom-enabled.archive';\nimport { SchemaEventRepository } from '../../../../../core/schema/src/api/schema.event-repository';\nimport { SchemaReadModelRootId } from '../../../../../core/schema/src/api/global/schema.read-model-root-id';\nimport { StructureInfoPanelConfigService } from './panel/info/structure.info-panel-config.service';\nimport { SortingPublisher } from '../../../../../core/structure/sorting/src/api/sorting.publisher';\nimport { SearchPublisher } from '../../../../../core/structure/search/src/api/search.publisher';\nimport { StructureColumnInputHandler } from './column/structure-column.input-handler';\nimport { ColumnFieldFactory } from '../../../../../core/composition/src/domain/column/field/colum-field.factory';\nimport { FormationPublisher } from '../../../../../core/structure/formation/src/api/formation.publisher';\nimport { TranslationFacade } from '../../../../../core/l10n/src/api/translation.facade';\nimport { NgChanges } from '../../../../../feature/common/component/src/ng-changes';\nimport { ColumnConfig, MultiColumnConfig } from '../../../../../core/composition/src/api/column/column.config';\nimport { StructureInitialValuesReadyArchive } from '../../../../../core/structure/structure-core/src/api/ready/structure.initial-values-ready.archive';\nimport { SchemaTheme } from '../../../../../core/schema/src/api/theme/schema-theme';\nimport { CellEditConfig } from '../../../../../core/structure/structure-core/src/api/edit/cell-edit.config';\nimport { ColumnAutoConfigurator } from '../../../../../core/composition/src/api/column/auto/column-auto.configurator';\nimport { ifChanged } from '../../../../../feature/common/component/src/check.input';\n\n\n/** @internal */\n@Directive()\nexport abstract class StructureGateway extends SmartComponent implements OnChanges, OnInit {\n\n\t/** *********************\n\t * INPUTS\n\t ***********************/\n\n\t@Input()\n\tmaxHeight: number;\n\n\t@Input()\n\twidth: number;\n\n\t@Input()\n\trowHeight: number;\n\n\t@Input()\n\tautoResizeWidth: boolean;\n\n\n\t// DOESNT WORK WITH GATE\n\t@Input()\n\tsource: Array<any> = [];\n\n\n\t// DOESNT WORK WITH GATE\n\t@Input()\n\tcolumns: Array<ColumnConfig | MultiColumnConfig>;\n\n\t// @Input()\n\t// filtering: boolean | FilterConfig;\n\n\t// @Input()\n\t// quickFilters: boolean | QuickFiltersConfig;\n\n\t@Input()\n\teditMode: boolean;\n\n\t@Input()\n\tcellEditing: boolean | CellEditConfig;\n\n\t@Input()\n\ttheme: SchemaTheme;\n\n\n\t/** *********************\n\t * OUTPUTS\n\t ***********************/\n\n\t@Output()\n\tthemeChanged: EventEmitter<SchemaTheme> = new EventEmitter();\n\n\t@Output()\n\tcolumnsChanged: EventEmitter<void> = new EventEmitter();\n\n\t@Output()\n\tcontainerWidthChanged: EventEmitter<number> = new EventEmitter();\n\n\t@Output()\n\tsourceEdited: EventEmitter<EditedItemModel> = new EventEmitter();\n\n\t@Output()\n\tcellEditEntered: EventEmitter<void> = new EventEmitter();\n\n\t@Output()\n\tcellEditCanceled: EventEmitter<void> = new EventEmitter();\n\n\t@Output()\n\tcellEditSubmitted: EventEmitter<void> = new EventEmitter();\n\n\tstructureColumnInputHandler: StructureColumnInputHandler;\n\n\tprivate changeAfterInit = false;\n\n\tprotected constructor(\n\t\tprotected readonly changeDetectorRef: ChangeDetectorRef,\n\t\telementRef: ElementRef,\n\t\tprivate readonly columnAutoConfigurator: ColumnAutoConfigurator,\n\t\tpublic structureId: StructureId,\n\t\tprotected compositionId: CompositionId,\n\t\tprotected schemaId: SchemaReadModelRootId,\n\t\tprotected structureCommandInvoker: StructurePublisher,\n\t\tprotected structurePagingCommandDispatcher: PagingPublisher,\n\t\tprotected pagingEventRepository: PagingEventRepository,\n\t\tprotected sortingCommandInvoker: SortingPublisher,\n\t\tprotected searchCommandInvoker: SearchPublisher,\n\t\tprotected sourceCommandService: SourcePublisher,\n\t\tprotected sourceEventService: SourceEventService,\n\t\tprotected schemaCommandInvoker: SchemaPublisher,\n\t\tprotected compositionCommandDispatcher: CompositionPublisher,\n\t\tprotected compositionEventRepository: CompositionEventRepository,\n\t\tprotected formationEventService: FormationEventRepository,\n\t\tprotected structureEditModeArchive: StructureEditModeArchive,\n\t\tprotected structureCellEditArchive: StructureCellEditArchive,\n\t\tprotected structureInfoPanelConfigService: StructureInfoPanelConfigService,\n\t\tprotected structureCellEditStore: StructureCellEditStore,\n\t\tprotected columnFieldFactory: ColumnFieldFactory,\n\t\tprotected formationCommandDispatcher: FormationPublisher,\n\t\tprotected searchEventRepository: SearchEventRepository,\n\t\tprotected structureHeaderBottomEnabledArchive: StructureHeaderBottomEnabledArchive,\n\t\tprotected schemaEventRepository: SchemaEventRepository,\n\t\tprotected translationService: TranslationFacade,\n\t\tprotected structureInitialValuesReadyArchive: StructureInitialValuesReadyArchive\n\t) {\n\t\tsuper(changeDetectorRef, elementRef);\n\n\t\tthis.structureColumnInputHandler = new StructureColumnInputHandler(structureId,\n\t\t\tcompositionId, columnFieldFactory,\n\t\t\tcolumnAutoConfigurator, compositionCommandDispatcher);\n\n\t\tthis.translationService.setDefaultTranslation();\n\t}\n\n\tngOnChanges(changes: NgChanges<StructureGateway>) {\n\n\t\tifChanged(changes.editMode, () => {\n\t\t\tthis.structureEditModeArchive.next(this.editMode);\n\t\t});\n\n\t\tifChanged(changes.cellEditing, () => {\n\n\t\t\tlet editingConfig;\n\n\t\t\tif (typeof this.cellEditing === 'boolean') {\n\t\t\t\teditingConfig = {\n\t\t\t\t\tenabled: this.cellEditing\n\t\t\t\t};\n\t\t\t} else {\n\t\t\t\teditingConfig = this.cellEditing;\n\t\t\t}\n\n\t\t\tthis.structureCommandInvoker.setCellEdit(editingConfig, this.structureId);\n\t\t});\n\n\t\tifChanged(changes.width, (width) => {\n\t\t\tthis.compositionCommandDispatcher.setWidth(width, this.compositionId);\n\t\t});\n\n\t\tifChanged(changes.theme, () => {\n\t\t\tthis.schemaCommandInvoker.setTheme(this.theme, this.schemaId, this.structureId);\n\t\t});\n\n\t\tifChanged(changes.rowHeight, () => {\n\t\t\tthis.structureCommandInvoker.setRowHeight(this.rowHeight, this.structureId);\n\t\t});\n\n\t\tifChanged(changes.autoResizeWidth, () => {\n\t\t\tthis.compositionCommandDispatcher.setResizeWidth(this.autoResizeWidth, this.compositionId);\n\t\t});\n\n\t\t/**\n\t\t * Columns\n\t\t */\n\t\tthis.structureColumnInputHandler.handle(changes);\n\n\t\tifChanged(changes.maxHeight, () => {\n\t\t\tthis.structureCommandInvoker.setContainerHeight(this.maxHeight, this.structureId);\n\t\t});\n\n\t\t/**\n\t\t * Setting source should be last step\n\t\t */\n\t\tifChanged(changes.source, () => {\n\t\t\tthis.sourceCommandService.setOrigin(this.source, this.structureId);\n\t\t});\n\n\t}\n\n\tngOnInit() {\n\n\t\tthis.compositionEventRepository\n\t\t\t.onColumnsChanged(this.compositionId.toReadModelRootId())\n\t\t\t.pipe(\n\t\t\t\tthis.takeUntil())\n\t\t\t.subscribe(() => {\n\t\t\t\tthis.columnsChanged.emit();\n\t\t\t});\n\n\t\tthis.compositionEventRepository\n\t\t\t.onContainerWidthChanged(this.compositionId.toReadModelRootId())\n\t\t\t.pipe(\n\t\t\t\tthis.takeUntil()\n\t\t\t)\n\t\t\t.subscribe((containerWidth: number) => {\n\t\t\t\tthis.containerWidthChanged.emit(containerWidth);\n\t\t\t});\n\n\t\tthis.sourceEventService\n\t\t\t.onSourceEdited(this.structureId)\n\t\t\t.subscribe((values: EditedItemModel) => {\n\t\t\t\tthis.sourceEdited.emit(values);\n\t\t\t});\n\n\t\tthis.structureCellEditStore\n\t\t\t.on()\n\t\t\t.pipe(this.takeUntil())\n\t\t\t.subscribe((state: StructureCellEditState) => {\n\n\t\t\t\tswitch (state) {\n\n\t\t\t\t\tcase StructureCellEditState.ENTER:\n\t\t\t\t\t\tthis.cellEditEntered.emit();\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase StructureCellEditState.SUBMIT:\n\t\t\t\t\t\tthis.cellEditSubmitted.emit();\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase StructureCellEditState.CANCEL:\n\t\t\t\t\t\tthis.cellEditCanceled.emit();\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t});\n\n\t\tthis.subscribeAndEmit(\n\t\t\tthis.schemaEventRepository.onThemeChanged(this.schemaId),\n\t\t\tthis.themeChanged\n\t\t);\n\n\t\tthis.componentInitialized();\n\t}\n\n\n\tprivate componentInitialized(): void {\n\t\tthis.changeAfterInit = true;\n\t}\n\n}\n","import { ColumnMenuConfig } from '../../../../../../core/structure/structure-core/src/api/config/column-menu-config';\n\nexport class StructureColumnMenuConfig {\n\n\tprivate mainMenu: string = 'Menu';\n\n\tprivate filterMenu: string = 'Filter';\n\n\tprivate columnsMenu: string = 'Columns';\n\n\tconstructor(private enabled: boolean = false,\n\t\t\t\tprivate sort: boolean = true,\n\t\t\t\tprivate filter: boolean = false,\n\t\t\t\tprivate columnsManager: boolean = false) {\n\t}\n\n\tstatic default(): StructureColumnMenuConfig {\n\t\treturn new StructureColumnMenuConfig();\n\t}\n\n\tstatic fromConfig(config: ColumnMenuConfig): StructureColumnMenuConfig {\n\t\treturn new StructureColumnMenuConfig(\n\t\t\tconfig.enabled,\n\t\t\tconfig.sort,\n\t\t\tconfig.filter,\n\t\t\tconfig.columnsManager\n\t\t);\n\t}\n\n\tisEnabled(): boolean {\n\t\treturn this.enabled &&\n\t\t\t(this.sort || this.filter || this.columnsManager);\n\t}\n\n\tisMainEnabled(): boolean {\n\t\treturn this.sort;\n\t}\n\n\tisSortingEnabled(): boolean {\n\t\treturn this.sort;\n\t}\n\n\tisFilteringEnabled(): boolean {\n\t\treturn this.filter;\n\t}\n\n\tisColumnManagerEnabled(): boolean {\n\t\treturn this.columnsManager;\n\t}\n\n\tgetMenus(): Array<string> {\n\n\t\tconst menus = [];\n\n\t\tif (this.isMainEnabled()) {\n\t\t\tmenus.push(this.getMainMenu());\n\t\t}\n\n\t\tif (this.isFilteringEnabled()) {\n\t\t\tmenus.push(this.getFilterMenu());\n\t\t}\n\n\t\tif (this.isColumnManagerEnabled()) {\n\t\t\tmenus.push(this.getColumnMenu());\n\t\t}\n\n\t\treturn menus;\n\t}\n\n\tgetActiveMenu(): string {\n\t\treturn this.getMenus()[0];\n\t}\n\n\tgetMainMenu(): string {\n\t\treturn this.mainMenu;\n\t}\n\n\tgetFilterMenu(): string {\n\t\treturn this.filterMenu;\n\t}\n\n\tgetColumnMenu(): string {\n\t\treturn this.columnsMenu;\n\t}\n\n\tsetMainMenu(mainMenu: string): void {\n\t\tthis.mainMenu = mainMenu;\n\t}\n\n\tsetFilterMenu(filterMenu: string): void {\n\t\tthis.filterMenu = filterMenu;\n\t}\n\n\tsetColumnsMenu(columnsMenu: string): void {\n\t\tthis.columnsMenu = columnsMenu;\n\t}\n\n}\n","import { Injectable } from '@angular/core';\n\nimport { Archive } from '@generic-ui/hermes';\n\nimport { StructureColumnMenuConfig } from './structure.column-menu-config';\nimport { ColumnMenuConfig } from '../../../../../../core/structure/structure-core/src/api/config/column-menu-config';\n\n@Injectable()\nexport class StructureColumnMenuConfigArchive extends Archive<StructureColumnMenuConfig> {\n\n\tconstructor() {\n\t\tsuper(StructureColumnMenuConfig.default());\n\t}\n\n\tnextConfig(config: ColumnMenuConfig): void {\n\n\t\tconst menuConfig = StructureColumnMenuConfig.fromConfig(config);\n\n\t\tthis.next(menuConfig);\n\t}\n\n}\n","import { Injectable } from '@angular/core';\nimport { HermesObservable, HermesSubject } from '@generic-ui/hermes';\n\n@Injectable()\nexport class StructureCellEditCloseAllService {\n\n\tprivate readonly closeAll$ = new HermesSubject<void>();\n\n\tcloseAll(): void {\n\t\tthis.closeAll$.next();\n\t}\n\n\tonCloseAll(): HermesObservable<void> {\n\t\treturn this.closeAll$.toObservable();\n\t}\n}\n","import { Injectable } from '@angular/core';\n\nimport { Archive } from '@generic-ui/hermes';\n\n@Injectable()\nexport class StructureHeaderTopEnabledArchive extends Archive<boolean> {\n\n\tconstructor() {\n\t\tsuper(true);\n\t}\n\n}\n","import { Injectable } from '@angular/core';\n\nimport { Archive } from '@generic-ui/hermes';\n\nimport { RowDetailConfig } from './row-detail.config';\n\n\n@Injectable()\nexport class StructureRowDetailConfigArchive extends Archive<RowDetailConfig> {\n\n\tconstructor() {\n\t\tsuper({\n\t\t\tenabled: false,\n\t\t\ttemplate: (item => 'Detail View')\n\t\t});\n\t}\n\n}\n","import { InjectionToken } from '@angular/core';\n\nexport const structureRowDetailViewItem = new InjectionToken('structureRowDetailViewItem');\n\nexport const structureRowDetailViewTemplate = new InjectionToken('structureRowDetailViewTemplate');\n","import { Directive, ElementRef } from '@angular/core';\nimport { GuiComponent } from './gui-component';\n\n@Directive()\nexport abstract class DynamicallyCreatedComponent extends GuiComponent {\n\n\tprivate readonly subClassConstructor: Function;\n\n\tprotected constructor(elRef: ElementRef) {\n\t\tsuper(elRef);\n\t\tthis.subClassConstructor = this.constructor;\n\t\tif (this.hasInputs()) {\n\t\t\tthis.throwError('it cannot have properties annotated with @Inputs().');\n\t\t}\n\t}\n\n\tprivate hasInputs(): boolean {\n\t\treturn !this.isEmpty((this.constructor as any).ɵcmp.inputs);\n\t}\n\n\tprivate throwError(reason: string): void {\n\t\tthrow new Error(`Component \"${this.subClassConstructor.name}\" is a DynamicallyCreatedComponent, ${reason}.`);\n\t}\n\n\tprivate isEmpty(obj: Object) {\n\t\tfor (const key in obj) {\n\t\t\tif (obj.hasOwnProperty(key))\n\t\t\t\treturn false;\n\t\t}\n\t\treturn true;\n\t}\n}\n","import { ChangeDetectionStrategy, Component, ElementRef, Inject, OnInit, ViewEncapsulation } from '@angular/core';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\n\nimport { structureRowDetailViewItem, structureRowDetailViewTemplate } from './structure.row-detail-view.tokens';\nimport { SelectedRow } from '../../../../../core/structure/formation/src/api/row-selected/selected-row';\nimport { DynamicallyCreatedComponent } from '../../../../../feature/common/component/src/dynamically-created-component';\nimport { ItemEntity } from '../../../../../core/structure/source/src/domain/item/item.entity';\n\n\n@Component({\n\tselector: 'div[gui-row-detail]',\n\ttemplateUrl: './structure.row-detail-view.component.html',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tencapsulation: ViewEncapsulation.None\n})\nexport class StructureRowDetailViewComponent extends DynamicallyCreatedComponent {\n\n\tselectedRowValue: ItemEntity;\n\n\tsafeHTML: SafeHtml;\n\n\tconstructor(elRef: ElementRef,\n\t\t\t\t@Inject(structureRowDetailViewItem) private readonly item: SelectedRow,\n\t\t\t\t@Inject(structureRowDetailViewTemplate) private readonly template: any,\n\t\t\t\tprivate readonly sanitizer: DomSanitizer) {\n\t\tsuper(elRef);\n\n\t\tthis.safeHTML = this.sanitizer.bypassSecurityTrustHtml(this.template(this.item.getItem(), this.item.getIndex()));\n\t\tthis.selectedRowValue = this.item.getItem();\n\t}\n\n\tprotected getSelectorName(): string {\n\t\treturn 'gui-row-detail';\n\t}\n\n}\n","<div [innerHTML]=\"safeHTML\"></div>\n","import { ElementRef, Injectable, Injector } from '@angular/core';\n\nimport { FabricDrawerService } from '@generic-ui/fabric';\n\nimport { FormationEventRepository } from '../../../../core/structure/formation/src/api/formation.event-repository';\nimport { StructureId } from '../../../../core/structure/structure-core/src/api/global/structure.id';\n\nimport { StructureRowDetailConfigArchive } from './structure.row-detail.config-archive';\nimport { RowDetailConfig } from './row-detail.config';\nimport { StructureRowDetailViewComponent } from './view/structure.row-detail-view.component';\nimport { structureRowDetailViewItem, structureRowDetailViewTemplate } from './view/structure.row-detail-view.tokens';\nimport { SelectedRow } from '../../../../core/structure/formation/src/api/row-selected/selected-row';\nimport { Reactive } from '@generic-ui/hermes';\n\n\n@Injectable()\nexport class StructureRowDetailService extends Reactive {\n\n\tenabled: boolean = false;\n\n\tconfig: RowDetailConfig;\n\n\telementRef: ElementRef;\n\n\tconstructor(private readonly injector: Injector,\n\t\t\t\tprivate readonly structureId: StructureId,\n\t\t\t\tprivate readonly structureDetailViewConfigArchive: StructureRowDetailConfigArchive,\n\t\t\t\tprivate readonly formationEventService: FormationEventRepository,\n\t\t\t\tprivate readonly drawerService: FabricDrawerService) {\n\t\tsuper();\n\t}\n\n\tinit(ref: ElementRef): void {\n\t\tthis.elementRef = ref;\n\n\t\tthis.structureDetailViewConfigArchive\n\t\t\t.on()\n\t\t\t.pipe(this.hermesTakeUntil())\n\t\t\t.subscribe((config: RowDetailConfig) => {\n\n\t\t\t\tthis.config = config;\n\n\t\t\t\tif (config.enabled === true) {\n\t\t\t\t\tthis.turnOn();\n\t\t\t\t} else if (config.enabled === false) {\n\t\t\t\t\tthis.turnOff();\n\t\t\t\t}\n\t\t\t});\n\n\t\tthis.formationEventService\n\t\t\t.onItemSelected(this.structureId)\n\t\t\t.pipe(this.hermesTakeUntil())\n\t\t\t.subscribe((items: Array<SelectedRow>) => {\n\n\t\t\t\tif (!this.enabled) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tthis.drawerService.close();\n\n\t\t\t\tif (items.length === 0) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst item = items[0];\n\n\t\t\t\tconst injector = Injector.create({\n\t\t\t\t\tparent: this.injector,\n\t\t\t\t\tproviders: [\n\t\t\t\t\t\t{ provide: structureRowDetailViewItem, useValue: item },\n\t\t\t\t\t\t{ provide: structureRowDetailViewTemplate, useValue: this.config.template }\n\t\t\t\t\t]\n\t\t\t\t});\n\n\t\t\t\tthis.drawerService.open({\n\t\t\t\t\tappendToElement: this.elementRef,\n\t\t\t\t\tcomponent: StructureRowDetailViewComponent,\n\t\t\t\t\tinjector: injector\n\t\t\t\t});\n\t\t\t});\n\t}\n\n\tprivate turnOn(): void {\n\t\tthis.enabled = true;\n\t}\n\n\tprivate turnOff(): void {\n\t\tthis.enabled = false;\n\t}\n}\n","export enum PagingPosition {\n\tTOP,\n\tBOTTOM\n}\n","export enum CssClass {\n\tSELECTED = 'selected',\n\tPAGING_TOP_CLASS_NAME = 'gui-paging-top',\n\tPAGING_BOTTOM_CLASS_NAME = 'gui-paging-bottom'\n}\n","import { Injectable, OnDestroy } from '@angular/core';\nimport { hermesDistinctUntilChanged, hermesMap, HermesObservable, HermesReplaySubject, hermesTakeUntil } from '@generic-ui/hermes';\n\n@Injectable()\nexport class GuiState<T> implements OnDestroy {\n\n\tprivate state: Partial<T> = {};\n\n\tprivate readonly state$ = new HermesReplaySubject<Partial<T>>();\n\n\tprivate readonly destroy$ = new HermesReplaySubject<void>();\n\n\tngOnDestroy(): void {\n\t\tthis.destroy$.next();\n\t\tthis.destroy$.complete();\n\t}\n\n\tsetValue(state: T): void;\n\tsetValue(state: Partial<T>): void;\n\tsetValue(state: T | Partial<T>): void {\n\t\tthis.state = Object.assign({}, this.state, state);\n\t\tthis.state$.next(this.state);\n\t}\n\n\tgetValue(): T;\n\tgetValue<K extends keyof T>(key: K): T[K];\n\tgetValue<\n\t\tK extends keyof T\n\t>(\n\t\tkey?: K\n\t):\n\t\t| T\n\t\t| T[K] {\n\n\t\tif (key !== undefined) {\n\t\t\treturn this.state[key];\n\t\t} else {\n\t\t\treturn this.state as unknown as T;\n\t\t}\n\t}\n\n\tselect(): HermesObservable<T>;\n\tselect<K extends keyof T>(key: K): HermesObservable<T[K]>;\n\tselect<K extends keyof T>(key?: K): HermesObservable<T> | HermesObservable<T[K]> {\n\n\t\tlet preparedState$ = this.state$;\n\n\t\tif (key !== undefined) {\n\t\t\tpreparedState$ = this.state$.pipe(\n\t\t\t\thermesMap((state: T) => {\n\t\t\t\t\treturn state[key];\n\t\t\t\t})\n\t\t\t);\n\t\t}\n\n\t\treturn preparedState$.pipe(\n\t\t\thermesDistinctUntilChanged()\n\t\t);\n\t}\n\n\tconnect(state$: HermesObservable<T>): void;\n\tconnect(key: keyof T, value$: HermesObservable<T[keyof T]>): void;\n\tconnect(arg: keyof T | HermesObservable<T>, value$?: HermesObservable<T[keyof T]>): void {\n\n\t\tif (typeof arg === 'string') {\n\t\t\tvalue$\n\t\t\t\t.pipe(\n\t\t\t\t\thermesTakeUntil(this.destroy$)\n\t\t\t\t)\n\t\t\t\t.subscribe((value: T[keyof T]) => {\n\t\t\t\t\tthis.setPartialState(arg, value);\n\t\t\t\t});\n\t\t} else {\n\t\t\t(arg as HermesObservable<T>)\n\t\t\t\t.pipe(\n\t\t\t\t\thermesTakeUntil(this.destroy$)\n\t\t\t\t)\n\t\t\t\t.subscribe((state: T) => {\n\t\t\t\t\tthis.setValue(state);\n\t\t\t\t});\n\t\t}\n\t}\n\n\tprivate setPartialState(key: keyof T, value: T[keyof T]): void {\n\t\tconst newState: Partial<T> = {};\n\t\tnewState[key] = value;\n\t\tthis.state = Object.assign({}, this.state, newState);\n\t\tthis.state$.next(this.state);\n\t}\n}\n","import { HermesSubject, hermesTakeUntil } from '@generic-ui/hermes';\n\n\nexport class StreamCloser<T> {\n\n\tprivate readonly unsubscribe$ = new HermesSubject<void>();\n\n\tconstructor() {\n\t}\n\n\ttakeUntil() {\n\t\treturn hermesTakeUntil(this.unsubscribe$);\n\t}\n\n\tunsubscribe(): void {\n\t\tif ((this.unsubscribe$ as any).isCompleted) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.unsubscribe$.next();\n\t\tthis.unsubscribe$.complete();\n\t}\n\n}\n","import { Directive, EventEmitter, OnDestroy } from '@angular/core';\n\nimport { NgChanges } from './ng-changes';\nimport { StreamCloser } from '../../../../core/common/src/cdk/reactive/stream-closer';\nimport { HermesObservable, HermesSubject, hermesTakeUntil } from '@generic-ui/hermes';\n\n@Directive()\nexport abstract class Gate<T = any> implements OnDestroy {\n\n\tprivate readonly streamCloser = new StreamCloser();\n\n\tprivate readonly hermesUnsubscribe$ = new HermesSubject<void>();\n\n\tprotected constructor() {\n\t}\n\n\tngOnDestroy() {\n\t\tthis.streamCloser.unsubscribe();\n\t\tthis.hermesUnsubscribe();\n\t}\n\n\tisDefined(propertyName: string, changes: NgChanges<T>): boolean {\n\t\treturn changes[propertyName] !== undefined && changes[propertyName].currentValue !== undefined;\n\t}\n\n\tsubscribeAndEmit<V>(\n\t\tstream$: HermesObservable<V>,\n\t\temitter: EventEmitter<V>\n\t): void {\n\t\tstream$\n\t\t\t.pipe(\n\t\t\t\tthis.hermesTakeUntil()\n\t\t\t)\n\t\t\t.subscribe((value: V) => {\n\t\t\t\temitter.emit(value);\n\t\t\t});\n\t}\n\n\tprotected unsubscribe(): void {\n\t\tthis.streamCloser.unsubscribe();\n\t}\n\n\tprotected hermesUnsubscribe(): void {\n\t\tthis.hermesUnsubscribe$.next();\n\t\tthis.hermesUnsubscribe$.complete();\n\t}\n\n\tprotected hermesTakeUntil(): any {\n\t\treturn hermesTakeUntil(this.hermesUnsubscribe$);\n\t}\n\n\tprotected takeUntil() {\n\t\treturn this.streamCloser.takeUntil();\n\t}\n\n}\n","import { ChangeDetectorRef, Directive, ElementRef, OnInit } from '@angular/core';\n\nimport { GuiComponent } from './gui-component';\n\n\n@Directive()\nexport abstract class StaticComponent extends GuiComponent implements OnInit {\n\n\tprotected constructor(elementRef: ElementRef,\n\t\t\t\t\t\t  private readonly changeDetectorRef: ChangeDetectorRef) {\n\t\tsuper(elementRef);\n\t}\n\n\tngOnInit(): void {\n\t\tthis.changeDetectorRef.detach();\n\t}\n\n}\n","import { ChangeDetectorRef, Directive, ElementRef } from '@angular/core';\n\nimport { StaticComponent } from './static-component';\n\n@Directive()\nexport abstract class IconComponent extends StaticComponent {\n\n\tprotected constructor(elementRef: ElementRef,\n\t\t\t\t\t\t  changeDetectorRef: ChangeDetectorRef) {\n\t\tsuper(elementRef, changeDetectorRef);\n\t\tthis.addClassToHost('gui-icon');\n\t}\n\n}\n","/**\n * https://netbasal.com/create-a-typed-version-of-simplechanges-in-angular-451f86593003\n */\n\ntype MarkFunctionProperties<Component> = {\n\t[Key in keyof Component]: Component[Key] extends Function ? never : Key;\n};\n\ntype ExcludeFunctionPropertyNames<T> = MarkFunctionProperties<T>[keyof T];\n\ntype ExcludeFunctions<T> = Pick<T, ExcludeFunctionPropertyNames<T>>;\n\nexport type NgChanges<Component, Props = ExcludeFunctions<Component>> = {\n\t[Key in keyof Props]: {\n\t\tpreviousValue: Props[Key];\n\t\tcurrentValue: Props[Key];\n\t\tfirstChange: boolean;\n\t\tisFirstChange(): boolean;\n\t}\n};\n\nexport type Changes<T> = {\n\tpreviousValue: T;\n\tcurrentValue: T;\n\tfirstChange: boolean;\n\tisFirstChange(): boolean;\n};\n","import { GuiComponent } from './gui-component';\nimport { Directive, ElementRef } from '@angular/core';\n\n@Directive()\nexport abstract class PureComponent extends GuiComponent {\n\n\tprivate readonly subClassConstructor: Function;\n\n\tprivate readonly subClassNgOnInit: Function;\n\n\tprotected constructor(elementRef: ElementRef) {\n\t\tsuper(elementRef);\n\t\tthis.subClassConstructor = this.constructor;\n\t\tthis.subClassNgOnInit = (this as any).ngOnInit;\n\n\t\tif (!this.hasConstructorOnlyElementRefInjected(arguments)) {\n\t\t\tthis.throwError('it should not inject services');\n\t\t}\n\n\t\tif (this.subClassNgOnInit) {\n\t\t\tthis.throwError('it should not use ngOnInit');\n\t\t}\n\t}\n\n\tprivate hasConstructorOnlyElementRefInjected(args: IArguments): boolean {\n\n\t\tif (arguments.length > 1) {\n\t\t\treturn false;\n\t\t}\n\n\t\tif (arguments.length === 1) {\n\t\t\treturn this.isElementRef(arguments[0]);\n\t\t}\n\n\t\treturn false;\n\t}\n\n\tprivate isElementRef(elRef: any): boolean {\n\t\treturn elRef.nativeElement !== null;\n\t}\n\n\tprivate throwError(reason: string): void {\n\t\tthrow new Error(`Component \"${this.subClassConstructor.name}\" is a PureComponent, ${reason}.`);\n\t}\n}\n","import { ChangeDetectorRef, inject, ViewRef } from '@angular/core';\nimport { HermesObservable, HermesSubject, HermesSubscription, hermesTakeUntil } from '@generic-ui/hermes';\n\nexport interface ReactiveContext<T> {\n\n\tconnect<T>(stream$: HermesObservable<T>): ReactiveContext<T>;\n\n\tsubscribe(next?: (value: T) => void, error?: (e: any) => void, complete?: () => void): HermesSubscription;\n\n\tsubscribeAndRender(next?: (value: T) => void, error?: (e: any) => void, complete?: () => void): HermesSubscription;\n\n\tunsubscribe(): void;\n\n}\n\nexport function useReactiveContext<T>(stream$?: HermesObservable<T>, cd?: ChangeDetectorRef): ReactiveContext<T> {\n\n\tconst unsub$ = new HermesSubject<void>();\n\n\tlet changeDetector: ChangeDetectorRef | undefined;\n\n\tif (cd) {\n\t\tchangeDetector = cd;\n\t} else {\n\t\tchangeDetector = inject(ChangeDetectorRef);\n\t}\n\n\tlet innerStream$: HermesObservable<T> | undefined;\n\n\tif (stream$) {\n\t\tinnerStream$ = stream$.pipe(hermesTakeUntil(unsub$));\n\t}\n\n\t(changeDetector as ViewRef).onDestroy(() => {\n\t\tunsub$.next();\n\t\tunsub$.complete();\n\t});\n\n\tconst context = {\n\t\tconnect: (stream$: HermesObservable<T>) => {\n\t\t\tinnerStream$ = stream$.pipe(hermesTakeUntil(unsub$));\n\t\t\treturn context;\n\t\t},\n\t\tsubscribe(next?: (value: T) => void, error?: (e: any) => void, complete?: () => void): HermesSubscription {\n\t\t\treturn innerStream$.subscribe(next, error, complete);\n\t\t},\n\t\tsubscribeAndRender(next?: (value: T) => void, error?: (e: any) => void, complete?: () => void): HermesSubscription {\n\t\t\treturn innerStream$.subscribe((v) => {\n\t\t\t\t\tnext(v);\n\t\t\t\t\tchangeDetector.detectChanges();\n\t\t\t\t},\n\t\t\t\terror,\n\t\t\t\tcomplete\n\t\t\t);\n\t\t},\n\t\tunsubscribe(): void {\n\t\t\tunsub$.next();\n\t\t\tunsub$.complete();\n\t\t}\n\t} as ReactiveContext<T>;\n\treturn context;\n}\n","import { ClassModifier } from '../../../../common/component/src/dom/class/class-modifier';\nimport { CssClass } from './css-class';\n\n\nexport class CssClassModifier {\n\n\tprivate readonly classModifier: ClassModifier = new ClassModifier();\n\n\tselect(htmlElement: HTMLElement): void {\n\t\tthis.classModifier.getElement(htmlElement).add(CssClass.SELECTED);\n\t}\n\n\tunselect(htmlElement: HTMLElement): void {\n\t\tthis.classModifier.getElement(htmlElement).remove(CssClass.SELECTED);\n\t}\n\n\tadd(htmlElement: HTMLElement, clazzName: string): void {\n\t\tthis.classModifier.getElement(htmlElement).add(clazzName);\n\t}\n\n\tremove(htmlElement: HTMLElement, clazzName: string): void {\n\t\tthis.classModifier.getElement(htmlElement).remove(clazzName);\n\t}\n\n\ttoggle(htmlElement: HTMLElement): void {\n\t}\n\n}\n","import { HermesObservable, HermesSingle, Warehouse } from '@generic-ui/hermes';\nimport { StructureId } from '../../../structure-core/src/api/global/structure.id';\nimport { PagingModel } from './model/paging.model';\n\n\nexport abstract class PagingWarehouse implements Warehouse {\n\n\tprotected constructor() {\n\t}\n\n\tabstract onPaging(structureId: StructureId): HermesObservable<PagingModel>;\n\n\tabstract oncePaging(structureId: StructureId): HermesSingle<PagingModel>;\n\n}\n","import { Injectable } from '@angular/core';\n\nimport { Archive } from '@generic-ui/hermes';\n\nimport { PagingDisplayMode } from './paging-display-mode';\n\n\n@Injectable()\nexport class PagingDisplayModeArchive extends Archive<PagingDisplayMode> {\n\n\tconstructor() {\n\t\tsuper(PagingDisplayMode.BASIC);\n\t}\n\n}\n","import { hermesDistinctUntilChanged, HermesObservable, HermesReplaySubject, HermesSubscription, hermesTakeUntil } from '@generic-ui/hermes';\n\nexport class GuiSubscriber {\n\n\tprivate readonly destroy$ = new HermesReplaySubject<void>(1);\n\n\tprivate subscription: HermesSubscription;\n\n\tsubscribe(\n\t\tobs$: HermesObservable<any>,\n\t\tnext: (v: any) => void\n\t): void {\n\n\t\tif (this.subscription !== undefined) {\n\t\t\tthis.subscription.unsubscribe();\n\t\t}\n\n\t\tthis.subscription =\n\t\t\tobs$\n\t\t\t\t.pipe(\n\t\t\t\t\thermesDistinctUntilChanged(),\n\t\t\t\t\thermesTakeUntil(this.destroy$)\n\t\t\t\t)\n\t\t\t\t.subscribe(\n\t\t\t\t\t(v: any) => next(v),\n\t\t\t\t\t(error: any) => this.onError(error),\n\t\t\t\t\t() => this.onComplete()\n\t\t\t\t);\n\t}\n\n\tdestroy(): void {\n\t\tthis.destroy$.next();\n\t\tthis.destroy$.complete();\n\t}\n\n\tonError(_error: any): void {\n\n\t}\n\n\tonComplete(): void {\n\n\t}\n\n}\n","import { ChangeDetectorRef, TemplateRef, ViewContainerRef } from '@angular/core';\n\nexport class GuiLetViewChanger {\n\n\tconstructor(\n\t\tprivate readonly cd: ChangeDetectorRef,\n\t\tprivate readonly vcr: ViewContainerRef,\n\t\tprivate readonly template: TemplateRef<any>\n\t) {\n\t}\n\n\tonNext(v: any): void {\n\t\tthis.vcr.clear();\n\t\tthis.vcr.createEmbeddedView(this.template, { $implicit: v });\n\t\tthis.cd.detectChanges();\n\t}\n\n}\n","import { ChangeDetectorRef, Directive, Input, OnChanges, OnDestroy, SimpleChanges, TemplateRef, ViewContainerRef } from '@angular/core';\nimport { HermesObservable } from '@generic-ui/hermes';\nimport { GuiSubscriber } from '../gui.subscriber';\nimport { GuiLetViewChanger } from './gui.let-view-chager';\n\n@Directive({\n\tselector: '[guiLet]',\n\tproviders: [\n\t\tGuiSubscriber\n\t]\n})\nexport class GuiLetDirective implements OnChanges, OnDestroy {\n\n\t@Input()\n\tguiLet!: HermesObservable<any>;\n\n\tprivate readonly guiLetViewChanger: GuiLetViewChanger;\n\n\tconstructor(\n\t\tprivate readonly subscriber: GuiSubscriber,\n\t\tprivate readonly cd: ChangeDetectorRef,\n\t\tprivate readonly vcr: ViewContainerRef,\n\t\tprivate readonly template: TemplateRef<any>\n\t) {\n\t\tthis.guiLetViewChanger = new GuiLetViewChanger(this.cd, this.vcr, this.template);\n\t}\n\n\tngOnChanges(changes: SimpleChanges): void {\n\n\t\tif (changes['guiLet'] !== undefined) {\n\n\t\t\tthis.subscriber\n\t\t\t\t.subscribe(\n\t\t\t\t\tthis.guiLet,\n\t\t\t\t\t(v: any) => {\n\t\t\t\t\t\tthis.guiLetViewChanger.onNext(v);\n\t\t\t\t\t});\n\t\t}\n\t}\n\n\tngOnDestroy() {\n\t\tthis.subscriber.destroy();\n\t}\n}\n","import { ChangeDetectorRef, OnDestroy, Pipe, PipeTransform } from '@angular/core';\n\nimport { TranslationFacade } from '../../../core/l10n/src/api/translation.facade';\nimport { Translation } from '../../../core/l10n/src/api/translation';\nimport { HermesSubscription } from '@generic-ui/hermes';\n\n\n@Pipe({\n\tname: 'guiTranslate',\n\tpure: false\n})\nexport class TranslationPipe implements PipeTransform, OnDestroy {\n\n\tprivate actualTranslationValue: string = '';\n\n\tprivate subscription: HermesSubscription;\n\n\tconstructor(private readonly changeDetectorRef: ChangeDetectorRef,\n\t\t\t\tprivate readonly translationService: TranslationFacade) {\n\t}\n\n\tngOnDestroy() {\n\t\tif (this.subscription) {\n\t\t\tthis.subscription.unsubscribe();\n\t\t}\n\t}\n\n\ttransform(key: string): string {\n\n\t\tif (this.subscription) {\n\t\t\tthis.subscription.unsubscribe();\n\t\t}\n\n\t\tthis.subscription =\n\t\t\tthis.translationService\n\t\t\t\t.onTranslation()\n\t\t\t\t.subscribe((translation: Translation) => {\n\t\t\t\t\tconst value = translation[key];\n\n\t\t\t\t\tif (!value) {\n\t\t\t\t\t\tthis.actualTranslationValue = key;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.actualTranslationValue = value;\n\t\t\t\t\tthis.changeDetectorRef.markForCheck();\n\t\t\t\t});\n\n\t\treturn this.actualTranslationValue;\n\t}\n\n}\n","import { ChangeDetectionStrategy, Component, ElementRef, EventEmitter, Input, OnChanges, Output, ViewEncapsulation } from '@angular/core';\n\nimport { PagingModel } from '../../../../../../core/structure/paging/src/api/model/paging.model';\nimport { PureComponent } from '../../../../../common/component/src/pure-component';\n\n\n@Component({\n\tselector: 'div[gui-paging-navigator][paging]',\n\ttemplateUrl: './paging-navigator.component.html',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tencapsulation: ViewEncapsulation.None\n})\nexport class PagingNavigatorComponent extends PureComponent implements OnChanges {\n\n\t@Input()\n\tpaging: PagingModel;\n\n\t@Input()\n\tsourceSize?: number;\n\n\t@Output()\n\tnextPageChanged = new EventEmitter();\n\n\t@Output()\n\tprevPageChanged = new EventEmitter();\n\n\tprevDisabled: boolean = false;\n\n\tnextDisabled: boolean = false;\n\n\tconstructor(elementRef: ElementRef) {\n\t\tsuper(elementRef);\n\t}\n\n\tngOnChanges() {\n\t\tthis.calculatePrev();\n\t\tthis.calculateNext();\n\t}\n\n\tprevPage(): void {\n\t\tthis.prevPageChanged.emit();\n\t}\n\n\tnextPage(): void {\n\t\tthis.nextPageChanged.emit();\n\t}\n\n\tprotected getSelectorName(): string {\n\t\treturn 'gui-paging-navigator';\n\t}\n\n\tprivate calculatePrev(): void {\n\n\t\tif (!this.paging) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.prevDisabled = this.paging.isPrevPageDisabled();\n\t}\n\n\tprivate calculateNext(): void {\n\n\t\tif (!this.paging && !this.sourceSize) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.nextDisabled = this.paging.isNextPageDisabled();\n\t}\n\n}\n","<gui-button-group>\n\t<button (click)=\"prevPage()\"\n\t\t\t[disabled]=\"prevDisabled\"\n\t\t\tclass=\"gui-paging-navigator-prev gui-mr-5\"\n\t\t\tgui-button>\n\t\t{{ 'pagingPrevPage' | guiTranslate }}\n\t</button>\n\n\t<button (click)=\"nextPage()\"\n\t\t\t[disabled]=\"nextDisabled\"\n\t\t\tclass=\"gui-paging-navigator-next gui-mr-0\"\n\t\t\tgui-button>\n\t\t{{ 'pagingNextPage' | guiTranslate }}\n\t</button>\n</gui-button-group>\n","import { ChangeDetectionStrategy, Component, ElementRef, EventEmitter, Input, OnChanges, Output, ViewEncapsulation } from '@angular/core';\n\nimport { PagingModel } from '../../../../../core/structure/paging/src/api/model/paging.model';\nimport { GuiSelectOption } from '@generic-ui/fabric';\nimport { PureComponent } from '../../../../common/component/src/pure-component';\nimport { NgChanges } from '../../../../common/component/src/ng-changes';\nimport { ifChanged } from '../../../../common/component/src/check.input';\n\n\n@Component({\n\tselector: 'div[gui-paging-select][paging]',\n\ttemplateUrl: './paging-select.component.html',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tencapsulation: ViewEncapsulation.None\n})\nexport class PagingSelectComponent extends PureComponent implements OnChanges {\n\n\t@Input()\n\tpaging: PagingModel;\n\n\t@Output()\n\tpageSizeChanged = new EventEmitter();\n\n\tselectPageSizes: Array<GuiSelectOption>;\n\n\tselectPageSize: GuiSelectOption;\n\n\tconstructor(elementRef: ElementRef) {\n\t\tsuper(elementRef);\n\t}\n\n\tngOnChanges(changes: NgChanges<PagingSelectComponent>) {\n\n\t\tifChanged(changes.paging, () => {\n\t\t\tif (this.paging) {\n\t\t\t\tthis.selectPageSizes = this.getSelectPageSizes();\n\t\t\t\tthis.selectPageSize = this.getSelectPageSize(this.paging.getPageSize());\n\t\t\t}\n\t\t});\n\t}\n\n\tchangePageSize(pageSize: GuiSelectOption): void {\n\t\tthis.pageSizeChanged.emit(+pageSize.value);\n\t}\n\n\tprotected getSelectorName(): string {\n\t\treturn 'gui-paging-select';\n\t}\n\n\tprivate getSelectPageSizes(): Array<GuiSelectOption> {\n\t\tconst selectPageSizes: Array<GuiSelectOption> = [],\n\t\t\tpageSizes = this.paging.getPageSizes();\n\n\t\tpageSizes.forEach((pageSize: number) => {\n\t\t\tconst selectOption = this.getSelectPageSize(pageSize);\n\t\t\tselectPageSizes.push(selectOption);\n\t\t});\n\n\t\treturn selectPageSizes;\n\t}\n\n\tprivate getSelectPageSize(pageSize: number): GuiSelectOption {\n\t\treturn { name: pageSize.toString(), value: pageSize.toString() };\n\t}\n\n}\n","<span class=\"gui-inline-block gui-mr-5\">\n\t{{ 'pagingItemsPerPage' | guiTranslate }}\n</span>\n\n<gui-select (optionChanged)=\"changePageSize($event)\"\n\t\t\t[options]=\"selectPageSizes\"\n\t\t\t[selected]=\"selectPageSize\"\n\t\t\t[width]=\"25\">\n</gui-select>\n","import { ChangeDetectionStrategy, Component, ElementRef, Input, OnChanges, ViewEncapsulation } from '@angular/core';\n\nimport { PureComponent } from '../../../../../common/component/src/pure-component';\nimport { PagingModel } from '../../../../../../core/structure/paging/src/api/model/paging.model';\n\n\n@Component({\n\tselector: 'div[gui-paging-stats][paging]',\n\ttemplateUrl: './paging-stats.component.html',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tencapsulation: ViewEncapsulation.None\n})\nexport class PagingStatsComponent extends PureComponent implements OnChanges {\n\n\t@Input()\n\tpaging: PagingModel;\n\n\tsourceSize: number;\n\n\tfirstItemIndex: number;\n\n\tlastItemIndex: number;\n\n\tconstructor(elementRef: ElementRef) {\n\t\tsuper(elementRef);\n\t\tthis.addClassToHost('gui-mx-6');\n\t}\n\n\tngOnChanges() {\n\t\tthis.calculate();\n\t}\n\n\tcalculate(): void {\n\t\tif (this.paging) {\n\t\t\tthis.firstItemIndex = this.paging.getStart();\n\t\t\tthis.lastItemIndex = this.paging.getEnd();\n\t\t\tthis.sourceSize = this.paging.getSourceSize();\n\t\t}\n\t}\n\n\tisSourceNotEmpty(): boolean {\n\t\treturn this.sourceSize > 0;\n\t}\n\n\tprotected getSelectorName(): string {\n\t\treturn 'gui-paging-stats';\n\t}\n\n}\n","<ng-container *ngIf=\"isSourceNotEmpty(); else noSource;\">\n\t<span class=\"gui-paging-source-stats\">\n\t\t<span>{{firstItemIndex}}</span>\n\t\t-\n\t\t<span>{{lastItemIndex}}</span>\n\t</span>\n\t<span>\n\t\t{{ 'pagingOf' | guiTranslate }}\n\t</span>\n\t<span class=\"gui-paging-source-size\">\n\t\t{{sourceSize}}\n\t</span>\n</ng-container>\n\n<ng-template #noSource>\n\t<span class=\"gui-paging-source-stats gui-paging-no-items\">\n\t\t{{'pagingNoItems' | guiTranslate}}\n\t</span>\n</ng-template>\n","import { ChangeDetectionStrategy, Component, ElementRef, EventEmitter, Input, OnChanges, Output, ViewEncapsulation } from '@angular/core';\n\nimport { PagingModel } from '../../../../../../core/structure/paging/src/api/model/paging.model';\nimport { PagingPublisher } from '../../../../../../core/structure/paging/src/api/paging.publisher';\nimport { PureComponent } from '../../../../../common/component/src/pure-component';\nimport { StructureId } from '../../../../../../core/structure/structure-core/src/api/global/structure.id';\n\n\n@Component({\n\tselector: 'div[gui-paging-alternative-navigator][paging][sourceSize]',\n\ttemplateUrl: './alternative-paging-navigator.component.html',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tencapsulation: ViewEncapsulation.None\n})\nexport class AlternativePagingNavigatorComponent extends PureComponent implements OnChanges {\n\n\t@Input()\n\tpaging: PagingModel;\n\n\t@Input()\n\tsourceSize: number;\n\n\t@Output()\n\tnextPageChanged = new EventEmitter();\n\n\t@Output()\n\tprevPageChanged = new EventEmitter();\n\n\tprevDisabled: boolean = false;\n\n\tnextDisabled: boolean = false;\n\n\tconstructor(elRef: ElementRef,\n\t\t\t\tprivate readonly structureId: StructureId,\n\t\t\t\tprivate readonly pagingCommandInvoker: PagingPublisher) {\n\t\tsuper(elRef);\n\t}\n\n\tngOnChanges() {\n\t\tthis.calculatePrev();\n\t\tthis.calculateNext();\n\t}\n\n\tprevPage(): void {\n\t\tthis.prevPageChanged.emit();\n\t}\n\n\tnextPage(): void {\n\t\tthis.nextPageChanged.emit();\n\t}\n\n\tfirstPage(): void {\n\t\tthis.pagingCommandInvoker.goToPage(1, this.paging.getPage(), this.structureId);\n\t}\n\n\tlastPage(): void {\n\t\tconst numberOfPages = Math.ceil(this.sourceSize / this.paging.getPageSize());\n\t\tthis.pagingCommandInvoker.goToPage(numberOfPages, this.paging.getPage(), this.structureId);\n\t}\n\n\tprotected getSelectorName(): string {\n\t\treturn 'gui-paging-alternative-navigator';\n\t}\n\n\tprivate calculatePrev(): void {\n\n\t\tif (!this.paging) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.prevDisabled = this.paging.isPrevPageDisabled();\n\t}\n\n\tprivate calculateNext(): void {\n\n\t\tif (!this.paging && !this.sourceSize) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.nextDisabled = this.paging.isNextPageDisabled();\n\t}\n\n}\n","<button (click)=\"firstPage()\"\n\t\t[disabled]=\"prevDisabled\"\n\t\tgui-button>\n\t<svg height=\"10.661\" viewBox=\"0 0 11.081 10.661\" width=\"11.081\" xmlns=\"http://www.w3.org/2000/svg\">\n\t\t<g transform=\"translate(-522.98 669.601) rotate(180)\">\n\t\t\t<path d=\"M.75.75,5.02,5.02.75,9.29\" fill=\"none\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\n\t\t\t\t  stroke-width=\"1.5\" transform=\"translate(-533.75 659.25)\"/>\n\t\t\t<path d=\"M.75.75,5.02,5.02.75,9.29\" fill=\"none\" stroke-linecap=\"round\"\n\t\t\t\t  stroke-linejoin=\"round\" stroke-width=\"1.5\" transform=\"translate(-528.75 659.25)\"/>\n\t\t</g>\n\t</svg>\n</button>\n\n<button (click)=\"prevPage()\"\n\t\t[disabled]=\"prevDisabled\"\n\t\tclass=\"gui-paging-navigator-prev\"\n\t\tgui-button>\n\t<svg height=\"10.661\" viewBox=\"0 0 6.081 10.661\" width=\"6.081\" xmlns=\"http://www.w3.org/2000/svg\">\n\t\t<path d=\"M.75.75,5.02,5.02.75,9.29\" fill=\"none\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\n\t\t\t  stroke-width=\"1.5\" transform=\"translate(5.77 10.351) rotate(180)\"/>\n\t</svg>\n</button>\n\n<ng-content></ng-content>\n\n<button (click)=\"nextPage()\"\n\t\t[disabled]=\"nextDisabled\"\n\t\tclass=\"gui-paging-navigator-next\"\n\t\tgui-button>\n\t<svg height=\"10.661\" viewBox=\"0 0 6.081 10.661\" width=\"6.081\" xmlns=\"http://www.w3.org/2000/svg\">\n\t\t<path d=\"M.75.75,5.02,5.02.75,9.29\" fill=\"none\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\n\t\t\t  stroke-width=\"1.5\" transform=\"translate(0.311 0.311)\"/>\n\t</svg>\n</button>\n\n<button (click)=\"lastPage()\"\n\t\t[disabled]=\"nextDisabled\"\n\t\tgui-button>\n\t<svg height=\"10.661\" viewBox=\"0 0 11.081 10.661\" width=\"11.081\" xmlns=\"http://www.w3.org/2000/svg\">\n\t\t<g transform=\"translate(534.061 -658.939)\">\n\t\t\t<path d=\"M.75.75,5.02,5.02.75,9.29\" fill=\"none\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\n\t\t\t\t  stroke-width=\"1.5\" transform=\"translate(-533.75 659.25)\"/>\n\t\t\t<path d=\"M.75.75,5.02,5.02.75,9.29\" fill=\"none\" stroke-linecap=\"round\"\n\t\t\t\t  stroke-linejoin=\"round\" stroke-width=\"1.5\" transform=\"translate(-528.75 659.25)\"/>\n\t\t</g>\n\t</svg>\n</button>\n","import { ChangeDetectionStrategy, Component, ElementRef, Input, OnChanges, ViewEncapsulation } from '@angular/core';\n\nimport { PagingModel } from '../../../../../../core/structure/paging/src/api/model/paging.model';\nimport { PagingPublisher } from '../../../../../../core/structure/paging/src/api/paging.publisher';\nimport { NgChanges } from '../../../../../common/component/src/ng-changes';\nimport { PureComponent } from '../../../../../common/component/src/pure-component';\nimport { StructureId } from '../../../../../../core/structure/structure-core/src/api/global/structure.id';\n\n\n@Component({\n\tselector: 'div[gui-paging-alternative-pages][paging]',\n\ttemplateUrl: './alternative-paging-pages.component.html',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tencapsulation: ViewEncapsulation.None\n})\nexport class AlternativePagingPagesComponent extends PureComponent implements OnChanges {\n\n\t@Input()\n\tpaging: PagingModel;\n\n\t@Input()\n\tsourceSize?: number = 0;\n\n\tcurrentPage: number;\n\n\tpages: Array<number>;\n\n\tnumberOfVisiblePages: number = 3;\n\n\tconstructor(elRef: ElementRef,\n\t\t\t\tprivate readonly structureId: StructureId,\n\t\t\t\tprivate readonly pagingCommandService: PagingPublisher) {\n\t\tsuper(elRef);\n\t}\n\n\tngOnChanges(changes: NgChanges<AlternativePagingPagesComponent>) {\n\t\tthis.calculate();\n\t}\n\n\tcalculate(): void {\n\t\tif (this.paging && this.sourceSize) {\n\t\t\tconst numberOfPages = Math.ceil(this.sourceSize / this.paging.getPageSize());\n\n\t\t\tthis.currentPage = this.paging.getPage();\n\n\t\t\tthis.pages = [];\n\t\t\tif (this.pages.length <= numberOfPages) {\n\t\t\t\tfor (let i = 1; i <= numberOfPages; i++) {\n\t\t\t\t\tthis.pages.push(i);\n\t\t\t\t}\n\t\t\t}\n\n\t\t}\n\t}\n\n\tisSourceNotEmpty(): boolean {\n\t\treturn this.sourceSize > 0;\n\t}\n\n\tgoToPage(pageNumber: number) {\n\t\tconst currentPage = this.paging.getPage();\n\t\tthis.pagingCommandService.goToPage(pageNumber, currentPage, this.structureId);\n\t}\n\n\tcalculateVisiblePages(page: number): boolean {\n\t\treturn this.paging.calculateVisiblePages(this.currentPage, this.numberOfVisiblePages, page);\n\t}\n\n\tactivePage(page: number): boolean {\n\t\treturn this.currentPage === page;\n\t}\n\n\tprotected getSelectorName(): string {\n\t\treturn 'gui-paging-alternative-pages';\n\t}\n\n}\n","<ng-container *ngIf=\"isSourceNotEmpty(); else noSource;\">\n\n\t<div *ngFor=\"let page of pages\">\n\t\t<div [class.gui-paging-active-page]=\"activePage(page)\"\n\t\t\t [class.gui-paging-visible-page]=\"calculateVisiblePages(page)\"\n\t\t\t class=\"relative\">\n\t\t\t<div (click)=\"goToPage(page)\"\n\t\t\t\t class=\"gui-paging-page gui-select-none gui-cursor-pointer gui-py-0 gui-px-6 gui-font-base\">\n\t\t\t\t{{page}}\n\t\t\t</div>\n\t\t</div>\n\t</div>\n\n</ng-container>\n\n<ng-template #noSource>\n\t<span class=\"gui-paging-source-stats gui-paging-no-items\">\n\t\t{{'pagingNoItems' | guiTranslate}}\n\t</span>\n</ng-template>\n","import { ChangeDetectionStrategy, Component, ElementRef, inject, Input, ViewEncapsulation } from '@angular/core';\n\nimport { PagingModel } from '../../../../core/structure/paging/src/api/model/paging.model';\nimport { PagingWarehouse } from '../../../../core/structure/paging/src/api/paging.warehouse';\nimport { PagingPublisher } from '../../../../core/structure/paging/src/api/paging.publisher';\nimport { SourceWarehouse } from '../../../../core/structure/source/src/api/source.warehouse';\nimport { PagingDisplayModeArchive } from './mode/paging-display-mode.archive';\nimport { PagingDisplayMode } from './mode/paging-display-mode';\nimport { PagingPosition } from './paging-position';\nimport { CssClassModifier } from '../../common/src/css-class/css-class.modifier';\nimport { CssClass } from '../../common/src/css-class/css-class';\nimport { NgChanges } from '../../../common/component/src/ng-changes';\nimport { StructureId } from '../../../../core/structure/structure-core/src/api/global/structure.id';\nimport { GuiState } from '../../../gui-angular/state/gui.state';\nimport { hermesMap, HermesObservable } from '@generic-ui/hermes';\nimport { GuiComponent } from '../../../common/component';\n\nexport interface PagingComponentState {\n\n\talternativeDisplay: boolean;\n\n\tsourceSize: number;\n\n\tpaging: PagingModel;\n\n\tisPagingVisible: boolean;\n\n}\n\n@Component({\n\tselector: 'div[gui-paging][position]',\n\ttemplateUrl: './paging.component.html',\n\tstyleUrls: [\n\t\t'./style/paging.component.scss',\n\t\t'./style/theme/generic.paging.component.scss'\n\t],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tencapsulation: ViewEncapsulation.None,\n\tproviders: [\n\t\tGuiState\n\t]\n})\nexport class PagingComponent extends GuiComponent {\n\n\t@Input()\n\tposition!: PagingPosition;\n\n\t@Input()\n\tminimal?: boolean;\n\n\tprivate readonly state = inject(GuiState<PagingComponentState>);\n\n\treadonly state$ = this.state.select();\n\n\tconstructor(\n\t\tprivate readonly elRef: ElementRef,\n\t\tprivate readonly cssClassModifier: CssClassModifier,\n\t\tprivate readonly structureId: StructureId,\n\t\tprivate readonly pagingWarehouse: PagingWarehouse,\n\t\tprivate readonly pagingCommandInvoker: PagingPublisher,\n\t\tprivate readonly sourceWarehouse: SourceWarehouse,\n\t\tprivate readonly pagingDisplayModeArchive: PagingDisplayModeArchive\n\t) {\n\t\tsuper(elRef);\n\t\tthis.addClassToHost('gui-flex');\n\t\tthis.addClassToHost('gui-justify-end');\n\t\tthis.addClassToHost('gui-items-center');\n\t\tthis.addClassToHost('gui-p-4');\n\n\t\tthis.state.setValue({\n\t\t\talternativeDisplay: false,\n\t\t\tisPagingVisible: false\n\t\t});\n\n\t\tthis.state.connect('sourceSize', this.sourceWarehouse.onOriginSize(this.structureId));\n\t\tthis.state.connect('alternativeDisplay', this.selectIsAdvancedPagingEnabled());\n\t\tthis.state.connect('paging', this.pagingWarehouse.onPaging(this.structureId));\n\t\tthis.state.connect('isPagingVisible', this.selectIsPagingVisible());\n\t}\n\n\tngOnChanges(changes: NgChanges<PagingComponent>) {\n\n\t\tif (changes.position) {\n\n\t\t\tif (this.position === PagingPosition.BOTTOM) {\n\t\t\t\tthis.cssClassModifier.remove(this.elRef.nativeElement, CssClass.PAGING_TOP_CLASS_NAME);\n\t\t\t\tthis.cssClassModifier.add(this.elRef.nativeElement, CssClass.PAGING_BOTTOM_CLASS_NAME);\n\t\t\t} else {\n\t\t\t\tthis.cssClassModifier.remove(this.elRef.nativeElement, CssClass.PAGING_BOTTOM_CLASS_NAME);\n\t\t\t\tthis.cssClassModifier.add(this.elRef.nativeElement, CssClass.PAGING_TOP_CLASS_NAME);\n\t\t\t}\n\t\t}\n\t}\n\n\tchangePageSize(pageSize: number) {\n\t\tthis.pagingCommandInvoker.changePageSize(pageSize, this.structureId);\n\t}\n\n\tnextPage(sourceSize: number): void {\n\n\t\tif (!sourceSize) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.pagingCommandInvoker.nextPage(this.structureId);\n\t}\n\n\tprevPage(): void {\n\t\tthis.pagingCommandInvoker.prevPage(this.structureId);\n\t}\n\n\tprotected getSelectorName(): string {\n\t\treturn 'gui-paging';\n\t}\n\n\tprivate selectIsPagingVisible(): HermesObservable<boolean> {\n\t\treturn this.pagingWarehouse\n\t\t\t\t   .onPaging(this.structureId)\n\t\t\t\t   .pipe(\n\t\t\t\t\t   hermesMap((paging: PagingModel) => {\n\t\t\t\t\t\t   return this.mapIsPagingVisible(paging);\n\t\t\t\t\t   })\n\t\t\t\t   );\n\t}\n\n\tprivate mapIsPagingVisible(paging: PagingModel): boolean {\n\t\treturn paging && paging.isEnabled() &&\n\t\t\t(((this.position === PagingPosition.TOP) && paging.isPagerTop()) ||\n\t\t\t\t((this.position === PagingPosition.BOTTOM) && paging.isPagerBottom()));\n\t}\n\n\tprivate selectIsAdvancedPagingEnabled(): HermesObservable<boolean> {\n\t\treturn this.pagingDisplayModeArchive\n\t\t\t\t   .on()\n\t\t\t\t   .pipe(\n\t\t\t\t\t   hermesMap((mode: PagingDisplayMode) => {\n\t\t\t\t\t\t   return mode === PagingDisplayMode.ADVANCED;\n\t\t\t\t\t   })\n\t\t\t\t   );\n\t}\n\n}\n","<ng-container *guiLet=\"state$; let localState\">\n\n\t<ng-container *ngIf=\"localState.isPagingVisible && !localState.alternativeDisplay\">\n\n\t\t<ng-container *ngIf=\"!minimal; else minimalTemplate\">\n\n\t\t\t<div (pageSizeChanged)=\"changePageSize($event)\"\n\t\t\t\t [paging]=\"localState.paging\"\n\t\t\t\t gui-paging-select>\n\t\t\t</div>\n\n\t\t\t<div [paging]=\"localState.paging\"\n\t\t\t\t gui-paging-stats>\n\t\t\t</div>\n\n\t\t\t<div (nextPageChanged)=\"nextPage(localState.sourceSize)\"\n\t\t\t\t (prevPageChanged)=\"prevPage()\"\n\t\t\t\t [paging]=\"localState.paging\"\n\t\t\t\t [sourceSize]=\"localState.sourceSize\"\n\t\t\t\t gui-paging-navigator>\n\t\t\t</div>\n\n\t\t</ng-container>\n\n\t\t<ng-template #minimalTemplate>\n\n\t\t\t<div [paging]=\"localState.paging\"\n\t\t\t\t gui-paging-stats>\n\t\t\t</div>\n\n\t\t\t<div (nextPageChanged)=\"nextPage(localState.sourceSize)\"\n\t\t\t\t (prevPageChanged)=\"prevPage()\"\n\t\t\t\t [paging]=\"localState.paging\"\n\t\t\t\t [sourceSize]=\"localState.sourceSize\"\n\t\t\t\t gui-paging-navigator>\n\t\t\t</div>\n\n\t\t</ng-template>\n\n\t</ng-container>\n\n\t<ng-container *ngIf=\"localState.isPagingVisible && localState.alternativeDisplay\">\n\n\t\t<div (pageSizeChanged)=\"changePageSize($event)\"\n\t\t\t [paging]=\"localState.paging\"\n\t\t\t gui-paging-select>\n\t\t</div>\n\n\t\t<div (nextPageChanged)=\"nextPage(localState.sourceSize)\"\n\t\t\t (prevPageChanged)=\"prevPage()\"\n\t\t\t [paging]=\"localState.paging\"\n\t\t\t [sourceSize]=\"localState.sourceSize\"\n\t\t\t class=\"gui-flex gui-p-0\"\n\t\t\t gui-paging-alternative-navigator>\n\n\t\t\t<div [paging]=\"localState.paging\"\n\t\t\t\t [sourceSize]=\"localState.sourceSize\"\n\t\t\t\t class=\"gui-flex gui-justify-center\"\n\t\t\t\t gui-paging-alternative-pages>\n\t\t\t</div>\n\n\t\t</div>\n\n\t</ng-container>\n</ng-container>\n","export abstract class Logger {\n\n\tabstract warn(text: string): void;\n\n\tabstract error(text: string): void;\n\n}\n","import { StructureId } from '../../../../structure-core/src/api/global/structure.id';\nimport { StructureDomainEvent } from '../../../../structure-core/src/core/structure.domain-event';\n\nexport class PageChangedEvent extends StructureDomainEvent {\n\n\tconstructor(aggregateId: StructureId) {\n\t\tsuper(aggregateId, null, 'PageChangedEvent');\n\t}\n}\n","import { AggregateEvent } from '@generic-ui/hermes';\nimport { StructureId } from '../api/global/structure.id';\n\nexport abstract class StructureAggregateEvent extends AggregateEvent<StructureId> {\n}\n","import { DomainEvent } from '@generic-ui/hermes';\nimport { StructureId } from '../../../../structure-core/src/api/global/structure.id';\nimport { PageChangedEvent } from './page-changed.event';\nimport { StructureAggregateEvent } from '../../../../structure-core/src/core/structure.aggregate-event';\n\n\nexport class PageChangedAggregateEvent extends StructureAggregateEvent {\n\n\tconstructor(structureId: StructureId) {\n\t\tsuper(structureId, 'PageChangedAggregateEvent');\n\t}\n\n\ttoDomainEvent(): DomainEvent<StructureId> {\n\t\treturn new PageChangedEvent(this.getAggregateId());\n\t}\n\n}\n","import { StructureId } from '../../../../structure-core/src/api/global/structure.id';\nimport { StructureDomainEvent } from '../../../../structure-core/src/core/structure.domain-event';\n\nexport class PagesizeChangedEvent extends StructureDomainEvent {\n\n\tconstructor(aggregateId: StructureId) {\n\t\tsuper(aggregateId, null, 'PagesizeChangedEvent');\n\t}\n}\n","import { DomainEvent } from '@generic-ui/hermes';\n\nimport { StructureId } from '../../../../structure-core/src/api/global/structure.id';\nimport { PagesizeChangedEvent } from '../change-pagesize/pagesize-changed.event';\nimport { StructureAggregateEvent } from '../../../../structure-core/src/core/structure.aggregate-event';\n\n\nexport class PagesizeChangedAggregateEvent extends StructureAggregateEvent {\n\n\tconstructor(structureId: StructureId) {\n\t\tsuper(structureId, 'PagesizeChangedAggregateEvent');\n\t}\n\n\ttoDomainEvent(): DomainEvent<StructureId> {\n\t\treturn new PagesizeChangedEvent(this.getAggregateId());\n\t}\n\n}\n","import { AggregateEvent } from '@generic-ui/hermes';\n\nimport { Logger } from '../../../../../feature/common/cdk/src/logger/logger';\n\nimport { PagingConfigWithId } from './paging-config-with-id';\nimport { PagingConfig } from '../api/config/paging-config';\nimport { PageChangedAggregateEvent } from '../core/page/page-changed.aggregate-event';\nimport { StructureId } from '../../../structure-core/src/api/global/structure.id';\nimport { PagesizeChangedAggregateEvent } from '../core/pagesize/pagesize-changed.aggregate-event';\n\n\nexport class PagingManager {\n\n\t// TODO\n\tprivate readonly events: Array<AggregateEvent<StructureId>> = [];\n\n\tprivate readonly logger: Logger;\n\n\tprivate constructor(private enabled: boolean,\n\t\t\t\t\t\tprivate page: number,\n\t\t\t\t\t\tprivate pageSize: number,\n\t\t\t\t\t\tprivate pageSizes: Array<number>,\n\t\t\t\t\t\tprivate pagerTop: boolean,\n\t\t\t\t\t\tprivate pagerBottom: boolean,\n\t\t\t\t\t\tprivate sourceSize: number,\n\t\t\t\t\t\tlogger: Logger) {\n\t\tthis.logger = logger;\n\t}\n\n\t// TODO Remove\n\tstatic default(logger: Logger) {\n\t\treturn new PagingManager(\n\t\t\tfalse,\n\t\t\t1,\n\t\t\t25,\n\t\t\t[10, 25, 50, 100],\n\t\t\tfalse,\n\t\t\ttrue,\n\t\t\t0,\n\t\t\tlogger\n\t\t);\n\t}\n\n\t// TODO Remove\n\tstatic fromConfig(paging: PagingConfigWithId, logger: Logger): PagingManager {\n\n\t\tconst defaultPagingDefinition = PagingManager.default(logger),\n\t\t\tenabled = paging.enabled || defaultPagingDefinition.isEnabled(),\n\t\t\tpage = paging.page || defaultPagingDefinition.getPage(),\n\t\t\tpageSize = paging.pageSize || defaultPagingDefinition.getPageSize(),\n\t\t\tpageSizes = paging.pageSizes || defaultPagingDefinition.getPageSizes(),\n\t\t\tpagerTop = paging.pagerTop || defaultPagingDefinition.isPagerTop(),\n\t\t\tpagerBottom = paging.pagerBottom || defaultPagingDefinition.isPagerBottom();\n\n\t\treturn new PagingManager(\n\t\t\tenabled,\n\t\t\tpage,\n\t\t\tpageSize,\n\t\t\tpageSizes,\n\t\t\tpagerTop,\n\t\t\tpagerBottom,\n\t\t\t0,\n\t\t\tlogger\n\t\t);\n\t}\n\n\tisEnabled(): boolean {\n\t\treturn this.enabled;\n\t}\n\n\tisDisabled(): boolean {\n\t\treturn !this.enabled;\n\t}\n\n\tgetPage(): number {\n\t\treturn this.page;\n\t}\n\n\tgetPageSize(): number {\n\t\treturn this.pageSize;\n\t}\n\n\tgetPageSizes(): Array<number> {\n\t\treturn this.pageSizes;\n\t}\n\n\tisPagerTop(): boolean {\n\t\tif (this.isDisabled()) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn this.pagerTop;\n\t}\n\n\tisPagerBottom(): boolean {\n\t\tif (this.isDisabled()) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn this.pagerBottom;\n\t}\n\n\tgetSourceSize(): number {\n\t\treturn this.sourceSize;\n\t}\n\n\tchange(pagingConfig: PagingConfig): void {\n\n\t\tif (pagingConfig.enabled !== undefined) {\n\t\t\tthis.enabled = pagingConfig.enabled;\n\t\t}\n\n\t\tif (pagingConfig.page !== undefined) {\n\t\t\tthis.page = pagingConfig.page;\n\n\t\t\tif (pagingConfig.enabled === undefined) {\n\t\t\t\tthis.enabled = true;\n\t\t\t}\n\t\t}\n\n\t\tif (pagingConfig.pageSize !== undefined) {\n\t\t\tthis.pageSize = pagingConfig.pageSize;\n\n\t\t\tif (pagingConfig.enabled === undefined) {\n\t\t\t\tthis.enabled = true;\n\t\t\t}\n\t\t}\n\n\t\tif (pagingConfig.pageSizes !== undefined) {\n\t\t\tthis.pageSizes = pagingConfig.pageSizes;\n\n\t\t\tif (pagingConfig.enabled === undefined) {\n\t\t\t\tthis.enabled = true;\n\t\t\t}\n\t\t}\n\n\t\tif (pagingConfig.pagerTop !== undefined) {\n\t\t\tthis.pagerTop = pagingConfig.pagerTop;\n\n\t\t\tif (pagingConfig.enabled === undefined) {\n\t\t\t\tthis.enabled = true;\n\t\t\t}\n\t\t}\n\n\t\tif (pagingConfig.pagerBottom !== undefined) {\n\t\t\tthis.pagerBottom = pagingConfig.pagerBottom;\n\n\t\t\tif (pagingConfig.enabled === undefined) {\n\t\t\t\tthis.enabled = true;\n\t\t\t}\n\t\t}\n\n\t\tif (this.enabled === true &&\n\t\t\tpagingConfig.pagerTop === false &&\n\t\t\tpagingConfig.pagerBottom === false) {\n\t\t\tthis.pagerBottom = true;\n\n\t\t\tthis.logger.warn('Pagers cannot be turn off when paging is enabled.');\n\t\t}\n\n\t}\n\n\tsetSourceSize(size: number): void {\n\t\tthis.sourceSize = size;\n\t}\n\n\tnextPage(): void {\n\t\tlet nextPage = this.page;\n\n\t\tif (!this.isNextPageDisabled()) {\n\t\t\tnextPage += 1;\n\t\t}\n\n\t\tthis.page = nextPage;\n\t}\n\n\tprevPage(): void {\n\t\tlet prevPage = this.page;\n\n\t\tif (!this.isPrevPageDisabled()) {\n\t\t\tprevPage -= 1;\n\t\t}\n\n\t\tthis.page = prevPage;\n\t}\n\n\tchangePageSize(pageSize: number): ReadonlyArray<AggregateEvent<StructureId>> {\n\n\t\tif (this.pageSizes.find((ps: number) => ps === pageSize)) {\n\n\t\t\tthis.setPage(1);\n\t\t\tthis.setPageSize(pageSize);\n\t\t}\n\n\t\treturn this.events;\n\t}\n\n\tisNextPageDisabled(): boolean {\n\n\t\tif (this.sourceSize === 0) {\n\t\t\treturn true;\n\t\t}\n\n\t\treturn this.page === Math.ceil(this.sourceSize / this.pageSize);\n\t}\n\n\tisPrevPageDisabled(): boolean {\n\t\treturn this.page === 1;\n\t}\n\n\tcalculateStart(): number {\n\n\t\tconst firstItem = 1 + ((this.page - 1) * this.pageSize);\n\n\t\tif (this.sourceSize < firstItem) {\n\t\t\treturn 0;\n\t\t}\n\n\t\treturn firstItem;\n\t}\n\n\tcalculateEnd(): number {\n\n\t\tconst lastItem = this.page * this.pageSize;\n\n\t\tif (this.sourceSize < lastItem) {\n\t\t\treturn this.sourceSize;\n\t\t}\n\n\t\treturn lastItem;\n\t}\n\n\tsample(source: Array<any>): Array<any> {\n\n\t\tif (this.isDisabled()) {\n\t\t\treturn source;\n\t\t}\n\n\t\tlet start = this.calculateStart();\n\n\t\tif (start !== 0) {\n\t\t\tstart -= 1;\n\t\t}\n\n\t\treturn source.slice(start, this.calculateEnd());\n\t}\n\n\tclearEvents(): void {\n\t\tthis.events.length = 0;\n\t}\n\n\tprivate setPage(page: number): void {\n\t\tthis.page = page;\n\t\tthis.events.push(new PageChangedAggregateEvent(new StructureId('TODO need to be changed')));\n\t}\n\n\tprivate setPageSize(pageSize: number): void {\n\t\tthis.pageSize = pageSize;\n\t\tthis.events.push(new PagesizeChangedAggregateEvent(new StructureId('TODO need to be changed')));\n\t}\n\n}\n","import { Logger } from '../../../../../feature/common/cdk/src/logger/logger';\n\nimport { PagingManager } from './paging.manager';\nimport { PagingConfigWithId } from './paging-config-with-id';\n\n\nexport class PagingManagerFactory {\n\n\tconstructor(private readonly logger: Logger) {\n\t}\n\n\tstatic readonly services = [Logger];\n\n\tcreateDefault(): PagingManager {\n\t\treturn PagingManager.default(this.logger);\n\t}\n\n\tcreateFromConfig(config: PagingConfigWithId): PagingManager {\n\t\treturn PagingManager.fromConfig(config, this.logger);\n\t}\n\n}\n","import { StructureId } from '../../../../structure-core/src/api/global/structure.id';\nimport { PagingConfig } from '../../api/config/paging-config';\nimport { StructureCommand } from '../../../../structure-core/src/core/structure.command';\n\nexport class SetPagingCommand extends StructureCommand {\n\n\tconstructor(structureId: StructureId,\n\t\t\t\tprivate readonly config: PagingConfig) {\n\t\tsuper(structureId, 'SetPagingCommand');\n\t}\n\n\tgetPagingConfig(): PagingConfig {\n\t\treturn this.config;\n\t}\n\n}\n","import { StructureId } from '../../../../structure-core/src/api/global/structure.id';\nimport { StructureCommand } from '../../../../structure-core/src/core/structure.command';\n\nexport class ChangePagesizeCommand extends StructureCommand {\n\n\tconstructor(structureId: StructureId,\n\t\t\t\tprivate readonly pageSize: number) {\n\t\tsuper(structureId, 'ChangePagesizeCommand');\n\t}\n\n\tgetPageSize(): number {\n\t\treturn this.pageSize;\n\t}\n}\n","import { StructureId } from '../../../../structure-core/src/api/global/structure.id';\nimport { StructureCommand } from '../../../../structure-core/src/core/structure.command';\n\nexport class NextPageCommand extends StructureCommand {\n\n\tconstructor(structureId: StructureId) {\n\t\tsuper(structureId, 'NextPageCommand');\n\t}\n\n}\n","import { StructureId } from '../../../../structure-core/src/api/global/structure.id';\nimport { StructureCommand } from '../../../../structure-core/src/core/structure.command';\n\nexport class PrevPageCommand extends StructureCommand {\n\n\tconstructor(structureId: StructureId) {\n\t\tsuper(structureId, 'PrevPageCommand');\n\t}\n\n}\n","import { CommandDispatcher } from '@generic-ui/hermes';\n\nimport { StructureId } from '../../../structure-core/src/api/global/structure.id';\nimport { PagingConfig } from '../api/config/paging-config';\nimport { SetPagingCommand } from './set/set-paging.command';\nimport { ChangePagesizeCommand } from './change-pagesize/change-pagesize.command';\nimport { NextPageCommand } from './next-page/next-page.command';\nimport { PrevPageCommand } from './prev-page/prev-page.command';\n\n\nexport class PagingDispatcher {\n\n\tconstructor(private readonly commandDispatcher: CommandDispatcher) {\n\t}\n\n\tstatic readonly services = [CommandDispatcher] as const;\n\n\tsetPaging(paging: PagingConfig, structureId: StructureId): void {\n\t\tthis.commandDispatcher.dispatch(new SetPagingCommand(structureId, paging));\n\t}\n\n\tchangePageSize(pageSize: number, structureId: StructureId): void {\n\t\tthis.commandDispatcher.dispatch(new ChangePagesizeCommand(structureId, pageSize));\n\t}\n\n\tnextPage(structureId: StructureId): void {\n\t\tthis.commandDispatcher.dispatch(new NextPageCommand(structureId));\n\t}\n\n\tprevPage(structureId: StructureId): void {\n\t\tthis.commandDispatcher.dispatch(new PrevPageCommand(structureId));\n\t}\n}\n","import { StructureId } from '../../../../structure-core/src/api/global/structure.id';\nimport { StructureDomainEvent } from '../../../../structure-core/src/core/structure.domain-event';\n\nexport class PagingSetEvent extends StructureDomainEvent {\n\n\tconstructor(aggregateId: StructureId) {\n\t\tsuper(aggregateId, null, 'PagingSetEvent');\n\t}\n}\n","import { CommandHandler, CommandType, CoreContainer, DomainEventPublisher } from '@generic-ui/hermes';\n\nimport { SetPagingCommand } from './set-paging.command';\nimport { PagingSetEvent } from './paging-set.event';\nimport { StructureAggregate } from '../../../../structure-core/src/domain/structure.aggregate';\n\n\nexport class SetPagingCommandHandler implements CommandHandler<StructureAggregate, SetPagingCommand> {\n\n\tprivate readonly domainEventPublisher: DomainEventPublisher = CoreContainer.resolve(DomainEventPublisher);\n\n\n\tforCommand(): CommandType<SetPagingCommand> {\n\t\treturn SetPagingCommand;\n\t}\n\n\thandle(structureAggregate: StructureAggregate, command: SetPagingCommand): void {\n\n\t\tconst pagingConfig = command.getPagingConfig();\n\n\t\tstructureAggregate.changePaging(pagingConfig);\n\t}\n\n\tpublish(aggregate: StructureAggregate, command: SetPagingCommand): void {\n\t\tthis.domainEventPublisher.publish(new PagingSetEvent(command.getAggregateId()));\n\t}\n\n}\n","import { StructureId } from '../../../../structure-core/src/api/global/structure.id';\nimport { StructureDomainEvent } from '../../../../structure-core/src/core/structure.domain-event';\n\nexport class NextPageEvent extends StructureDomainEvent {\n\n\tconstructor(aggregateId: StructureId) {\n\t\tsuper(aggregateId, null, 'NextPageEvent');\n\t}\n}\n","import { CommandHandler, CommandType, CoreContainer, DomainEventPublisher } from '@generic-ui/hermes';\nimport { NextPageCommand } from './next-page.command';\nimport { NextPageEvent } from './next-page.event';\nimport { StructureAggregate } from '../../../../structure-core/src/domain/structure.aggregate';\n\n\nexport class NextPageCommandHandler implements CommandHandler<StructureAggregate, NextPageCommand> {\n\n\tprivate readonly domainEventPublisher: DomainEventPublisher = CoreContainer.resolve(DomainEventPublisher);\n\n\tforCommand(): CommandType<NextPageCommand> {\n\t\treturn NextPageCommand;\n\t}\n\n\thandle(aggregate: StructureAggregate, command: NextPageCommand): void {\n\n\t\t// missing implementation\n\t\taggregate.nextPage();\n\t}\n\n\tpublish(aggregate: StructureAggregate, command: NextPageCommand): void {\n\t\tthis.domainEventPublisher.publish(new NextPageEvent(command.getAggregateId()));\n\t}\n\n}\n","import { StructureId } from '../../../../structure-core/src/api/global/structure.id';\nimport { StructureDomainEvent } from '../../../../structure-core/src/core/structure.domain-event';\n\nexport class PrevPageEvent extends StructureDomainEvent {\n\n\tconstructor(aggregateId: StructureId) {\n\t\tsuper(aggregateId, null, 'PrevPageEvent');\n\t}\n}\n","import { CommandHandler, CommandType, CoreContainer, DomainEventPublisher } from '@generic-ui/hermes';\n\nimport { PrevPageCommand } from './prev-page.command';\nimport { PrevPageEvent } from './prev-page.event';\nimport { StructureAggregate } from '../../../../structure-core/src/domain/structure.aggregate';\n\n\nexport class PrevPageCommandHandler implements CommandHandler<StructureAggregate, PrevPageCommand> {\n\n\tprivate readonly domainEventPublisher: DomainEventPublisher = CoreContainer.resolve(DomainEventPublisher);\n\n\tforCommand(): CommandType<PrevPageCommand> {\n\t\treturn PrevPageCommand;\n\t}\n\n\thandle(structure: StructureAggregate, command: PrevPageCommand): void {\n\n\t\tstructure.prevPage();\n\t}\n\n\tpublish(aggregate: StructureAggregate, command: PrevPageCommand): void {\n\t\tthis.domainEventPublisher.publish(new PrevPageEvent(command.getAggregateId()));\n\t}\n\n}\n","import { AggregateEvent, CommandHandler, CommandType, CoreContainer, DomainEventPublisher } from '@generic-ui/hermes';\n\nimport { ChangePagesizeCommand } from './change-pagesize.command';\nimport { PageChangedEvent } from '../page/page-changed.event';\nimport { PagesizeChangedEvent } from './pagesize-changed.event';\nimport { StructureAggregate } from '../../../../structure-core/src/domain/structure.aggregate';\nimport { StructureId } from '../../../../structure-core/src/api/global/structure.id';\n\n\nexport class ChangePagesizeCommandHandler implements CommandHandler<StructureAggregate, ChangePagesizeCommand> {\n\n\tprivate readonly domainEventPublisher: DomainEventPublisher = CoreContainer.resolve(DomainEventPublisher);\n\n\n\tforCommand(): CommandType<ChangePagesizeCommand> {\n\t\treturn ChangePagesizeCommand;\n\t}\n\n\thandle(structureAggregate: StructureAggregate, command: ChangePagesizeCommand): void {\n\n\t\tconst pageSize = command.getPageSize();\n\n\t\tstructureAggregate.changePageSize(pageSize);\n\t}\n\n\tpublish(aggregate: StructureAggregate, command: ChangePagesizeCommand): void {\n\n\t\tconst aggregateEvents = aggregate.getEvents();\n\n\t\t(aggregateEvents as any).forEach((event: AggregateEvent<StructureId>) => {\n\t\t\t(event as any).aggregateId = aggregate.getId();\n\t\t});\n\n\t\tthis.publishAggregateEvents(aggregateEvents, command);\n\n\t\taggregate.clearEvents();\n\t}\n\n\tprivate publishAggregateEvents(events: ReadonlyArray<AggregateEvent<StructureId>>, command: ChangePagesizeCommand): void {\n\n\t\tfor (const event of events) {\n\t\t\tthis.publishAggregateEvent(event, command);\n\t\t}\n\t}\n\n\tprivate publishAggregateEvent(event: AggregateEvent<StructureId>, command: ChangePagesizeCommand): void {\n\n\t\tswitch (event.getType()) {\n\t\t\tcase 'PageChangedAggregateEvent':\n\n\t\t\t\tconst pageChangedEvent = new PageChangedEvent(command.getAggregateId());\n\n\t\t\t\tthis.domainEventPublisher.publish(pageChangedEvent);\n\n\t\t\t\tbreak;\n\n\t\t\tcase 'PagesizeChangedAggregateEvent':\n\n\t\t\t\tconst pagesizeChangedEvent = new PagesizeChangedEvent(command.getAggregateId());\n\n\t\t\t\tthis.domainEventPublisher.publish(pagesizeChangedEvent);\n\n\t\t\t\tbreak;\n\n\t\t\tcase 'StructurePreparedEntitiesSetAggregateEvent':\n\n\t\t\t\tthis.domainEventPublisher.publish(event.toDomainEvent());\n\n\t\t\t\tbreak;\n\n\t\t\tdefault:\n\t\t\t\tbreak;\n\t\t}\n\t}\n}\n","export const structureKey = 'StructureAggregate';\n","import { AggregateDefinition, AggregateId, AggregateRoot, Command, Container, DomainEvent, DomainProviders } from '@generic-ui/hermes';\n\nimport { PagingManagerFactory } from '../domain/paging.manager-factory';\nimport { PagingDispatcher } from './paging.dispatcher';\nimport { SetPagingCommandHandler } from './set/set-paging.command-handler';\nimport { NextPageCommandHandler } from './next-page/next-page.command-handler';\nimport { PrevPageCommandHandler } from './prev-page/prev-page.command-handler';\nimport { ChangePagesizeCommandHandler } from './change-pagesize/change-pagesize.command-handler';\nimport { structureKey } from '../../../structure-core/src/api/global/structre.key';\n\n\nexport class PagingDomainModule implements DomainProviders {\n\n\tdefineAggregate(): AggregateDefinition<any, any, any> | null {\n\t\treturn null;\n\t}\n\n\tregisterKey(): string {\n\t\treturn structureKey;\n\t}\n\n\tregisterProviders(container: Container): void {\n\t\tcontainer.provide(PagingDispatcher);\n\t\tcontainer.provide(PagingManagerFactory);\n\t}\n\n\tregisterCommandHandlers<I extends AggregateId, A extends AggregateRoot<I>, C extends Command<I>>(): Array<any> {\n\t\treturn [\n\t\t\tSetPagingCommandHandler,\n\t\t\tNextPageCommandHandler,\n\t\t\tPrevPageCommandHandler,\n\t\t\tChangePagesizeCommandHandler\n\t\t];\n\t}\n\n\tregisterDomainEventHandler<I extends AggregateId, E extends DomainEvent<I>>(): Array<any> {\n\t\treturn [];\n\t}\n\n\tregisterMultiDomainEventHandler<I extends AggregateId, E extends DomainEvent<I>>(): Array<any> {\n\t\treturn [];\n\t}\n}\n","import { ReadModelObject } from '@generic-ui/hermes';\n\n@ReadModelObject\nexport class PagingModel {\n\n\tconstructor(private readonly enabled: boolean,\n\t\t\t\tprivate readonly page: number,\n\t\t\t\tprivate readonly pageSize: number,\n\t\t\t\tprivate readonly pageSizes: Array<number>,\n\t\t\t\tprivate readonly pagerTop: boolean,\n\t\t\t\tprivate readonly pagerBottom: boolean,\n\t\t\t\tprivate readonly isNextDisabled: boolean,\n\t\t\t\tprivate readonly isPrevDisabled: boolean,\n\t\t\t\tprivate readonly start: number,\n\t\t\t\tprivate readonly end: number,\n\t\t\t\tprivate readonly sourceSize: number) {\n\t}\n\n\tisEnabled(): boolean {\n\t\treturn this.enabled;\n\t}\n\n\tgetPage(): number {\n\t\treturn this.page;\n\t}\n\n\tgetPageSize(): number {\n\t\treturn this.pageSize;\n\t}\n\n\tgetPageSizes(): Array<number> {\n\t\treturn this.pageSizes;\n\t}\n\n\tisPagerTop(): boolean {\n\t\treturn this.pagerTop;\n\t}\n\n\tisPagerBottom(): boolean {\n\t\treturn this.pagerBottom;\n\t}\n\n\tisNextPageDisabled(): boolean {\n\t\treturn this.isNextDisabled;\n\t}\n\n\tisPrevPageDisabled(): boolean {\n\t\treturn this.isPrevDisabled;\n\t}\n\n\tgetStart(): number {\n\t\treturn this.start;\n\t}\n\n\tgetEnd(): number {\n\t\treturn this.end;\n\t}\n\n\tgetSourceSize(): number {\n\t\treturn this.sourceSize;\n\t}\n\n\tcalculateVisiblePages(currentPage: number, numberOfVisiblePages: number, page: number): boolean {\n\t\treturn currentPage - numberOfVisiblePages < page && page < currentPage + numberOfVisiblePages;\n\t}\n\n\tsample(source: Array<any>): Array<any> {\n\n\t\tlet start = this.getStart();\n\n\t\tif (start !== 0) {\n\t\t\tstart -= 1;\n\t\t}\n\n\t\treturn source.slice(start, this.getEnd());\n\t}\n\n\t// TODO\n\tcompare(target: PagingModel): boolean {\n\t\treturn JSON.stringify(this) === JSON.stringify(target);\n\t}\n\n}\n","import { PagingManager } from '../domain/paging.manager';\nimport { PagingModel } from '../api/model/paging.model';\n\n\nexport class PagingConverter {\n\n\tconvert(aggregate: PagingManager): PagingModel {\n\t\treturn new PagingModel(\n\t\t\taggregate.isEnabled(),\n\t\t\taggregate.getPage(),\n\t\t\taggregate.getPageSize(),\n\t\t\taggregate.getPageSizes(),\n\t\t\taggregate.isPagerTop(),\n\t\t\taggregate.isPagerBottom(),\n\t\t\taggregate.isNextPageDisabled(),\n\t\t\taggregate.isPrevPageDisabled(),\n\t\t\taggregate.calculateStart(),\n\t\t\taggregate.calculateEnd(),\n\t\t\taggregate.getSourceSize()\n\t\t);\n\t}\n\n}\n","import { CoreContainer, DomainEvent, DomainEventBus, HermesObservable, Reactive } from '@generic-ui/hermes';\n\nimport { StructureReadModelRoot } from './structure.read-model-root';\nimport { StructureId } from '../global/structure.id';\n\n\nexport abstract class StructureReadModelRepository extends Reactive {\n\n\tprivate readonly domainEventBus: DomainEventBus = CoreContainer.resolve(DomainEventBus);\n\n\tprotected constructor() {\n\t\tsuper();\n\n\t\tthis.domainEventBus\n\t\t\t.ofEvents(\n\t\t\t\tthis.forEvents()\n\t\t\t)\n\t\t\t.pipe(\n\t\t\t\tthis.hermesTakeUntil()\n\t\t\t)\n\t\t\t.subscribe((event: DomainEvent<StructureId>) => {\n\n\t\t\t\ttry {\n\t\t\t\t\tthis.subs(event);\n\t\t\t\t} catch (e) {\n\t\t\t\t\t// eslint-disable-next-line no-console\n\t\t\t\t\tconsole.error(e);\n\t\t\t\t}\n\t\t\t});\n\t}\n\n\tabstract getStructure(structureId: StructureId): StructureReadModelRoot;\n\n\tabstract on(structureId: StructureId): HermesObservable<StructureReadModelRoot>;\n\n\tprotected abstract forEvents(): Array<typeof DomainEvent>;\n\n\tprotected abstract subs(event: DomainEvent<StructureId>): void;\n\n}\n","import { StructureReadModelRepository } from '../../../structure-core/src/api/read/structure.read-model-repository';\nimport { StructureId } from '../../../structure-core/src/api/global/structure.id';\nimport { PagingModel } from '../api/model/paging.model';\nimport { StructureReadModelRoot } from '../../../structure-core/src/api/read/structure.read-model-root';\nimport { hermesFilter, hermesMap, HermesObservable } from '@generic-ui/hermes';\n\n\nexport class PagingRepository {\n\n\tconstructor(private readonly structureRepository: StructureReadModelRepository) {\n\t}\n\n\tstatic readonly services = [StructureReadModelRepository];\n\n\ton(structureId: StructureId): HermesObservable<PagingModel> {\n\n\t\treturn this.structureRepository\n\t\t\t\t   .on(structureId)\n\t\t\t\t   .pipe(\n\t\t\t\t\t   hermesFilter((structure: StructureReadModelRoot) => structure.getId().toString() === structureId.toString()),\n\t\t\t\t\t   hermesMap((structure: StructureReadModelRoot) => structure.getPaging())\n\t\t\t\t   );\n\t}\n\n}\n","import { HermesObservable, HermesSingle, singleFromObservable } from '@generic-ui/hermes';\n\nimport { StructureId } from '../../../structure-core/src/api/global/structure.id';\nimport { PagingRepository } from './paging.repository';\nimport { PagingModel } from '../api/model/paging.model';\nimport { PagingWarehouse } from '../api/paging.warehouse';\n\n\nexport class PagingDomainWarehouse extends PagingWarehouse {\n\n\tconstructor(private readonly pagingRepository: PagingRepository) {\n\t\tsuper();\n\t}\n\n\tstatic readonly services = [PagingRepository];\n\n\tonPaging(structureId: StructureId): HermesObservable<PagingModel> {\n\t\treturn this.pagingRepository.on(structureId);\n\t}\n\n\toncePaging(structureId: StructureId): HermesSingle<PagingModel> {\n\t\treturn singleFromObservable(this.pagingRepository.on(structureId));\n\t}\n\n}\n","import { PagingDispatcher } from './paging.dispatcher';\nimport { StructureId } from '../../../structure-core/src/api/global/structure.id';\nimport { PagingConfig } from '../api/config/paging-config';\nimport { PagingPublisher } from '../api/paging.publisher';\n\n\nexport class PagingDomainPublisher extends PagingPublisher {\n\n\tconstructor(private readonly pagingDispatcher: PagingDispatcher) {\n\t\tsuper();\n\t}\n\n\tstatic readonly services = [PagingDispatcher];\n\n\tenable(structureId: StructureId): void {\n\t\tthis.pagingDispatcher.setPaging({ enabled: true }, structureId);\n\t}\n\n\tdisable(structureId: StructureId): void {\n\t\tthis.pagingDispatcher.setPaging({ enabled: false }, structureId);\n\t}\n\n\tsetPaging(paging: PagingConfig, structureId: StructureId): void {\n\t\tthis.pagingDispatcher.setPaging(paging, structureId);\n\t}\n\n\tchangePageSize(pageSize: number, structureId: StructureId): void {\n\t\tthis.pagingDispatcher.changePageSize(pageSize, structureId);\n\t}\n\n\tnextPage(structureId: StructureId): void {\n\t\tthis.pagingDispatcher.nextPage(structureId);\n\t}\n\n\tprevPage(structureId: StructureId): void {\n\t\tthis.pagingDispatcher.prevPage(structureId);\n\t}\n\n\tgoToPage(pageNumber: number, currentPage: number, structureId: StructureId) {\n\n\t\tif (currentPage < pageNumber) {\n\t\t\twhile (currentPage !== pageNumber) {\n\t\t\t\tthis.nextPage(structureId);\n\t\t\t\tcurrentPage += 1;\n\t\t\t}\n\t\t} else {\n\t\t\twhile (currentPage !== pageNumber) {\n\t\t\t\tthis.prevPage(structureId);\n\t\t\t\tcurrentPage -= 1;\n\t\t\t}\n\t\t}\n\t}\n\n\tchangePagerTop(enabled: boolean, structureId: StructureId): void {\n\t\tthis.pagingDispatcher.setPaging({ pagerTop: enabled }, structureId);\n\t}\n\n\tchangePagerBottom(enabled: boolean, structureId: StructureId): void {\n\t\tthis.pagingDispatcher.setPaging({ pagerBottom: enabled }, structureId);\n\t}\n}\n","import { CoreContainer, DomainEvent, DomainEventBus, hermesFilter, hermesMap, HermesObservable, hermesSwitchMap } from '@generic-ui/hermes';\nimport { StructureReadModelRootId } from '../../../structure-core/src/api/read/structure.read-model-root-id';\nimport { StructureId } from '../../../structure-core/src/api/global/structure.id';\nimport { PagingWarehouse } from '../api/paging.warehouse';\nimport { PrevPageEvent } from '../core/prev-page/prev-page.event';\nimport { NextPageEvent } from '../core/next-page/next-page.event';\nimport { PageChangedEvent } from '../core/page/page-changed.event';\nimport { PagingModel } from '../api/model/paging.model';\nimport { PagesizeChangedEvent } from '../core/change-pagesize/pagesize-changed.event';\nimport { PagingEventRepository } from '../api/paging.event-repository';\n\n\nexport class PagingDomainEventRepository extends PagingEventRepository {\n\n\tprivate readonly eventBusToRemove: DomainEventBus = CoreContainer.resolve(DomainEventBus);\n\n\tconstructor(private readonly pagingWarehouse: PagingWarehouse) {\n\t\tsuper();\n\t}\n\n\tstatic readonly services = [PagingWarehouse];\n\n\tonPageChange(structureId: StructureReadModelRootId): HermesObservable<number> {\n\n\t\treturn this.eventBusToRemove\n\t\t\t\t   .ofEvents([\n\t\t\t\t\t\t   PrevPageEvent as any,\n\t\t\t\t\t\t   NextPageEvent as any,\n\t\t\t\t\t\t   PageChangedEvent as any\n\t\t\t\t\t   ]\n\t\t\t\t   )\n\t\t\t\t   .pipe(\n\t\t\t\t\t   hermesFilter((event: DomainEvent<StructureId>) => event.getAggregateId().toString() === structureId.toAggregateId().toString()),\n\t\t\t\t\t   hermesSwitchMap((event: DomainEvent<StructureId>) => {\n\n\t\t\t\t\t\t   return this.pagingWarehouse\n\t\t\t\t\t\t\t\t\t  .oncePaging(structureId.toAggregateId())\n\t\t\t\t\t\t\t\t\t  .pipe(\n\t\t\t\t\t\t\t\t\t\t  hermesMap((paging: PagingModel) => paging.getPage())\n\t\t\t\t\t\t\t\t\t  );\n\t\t\t\t\t   })\n\t\t\t\t   );\n\t}\n\n\tonPageSizeChange(structureId: StructureReadModelRootId): HermesObservable<number> {\n\n\t\treturn this.eventBusToRemove\n\t\t\t\t   .ofEvents([\n\t\t\t\t\t\t   PagesizeChangedEvent as any\n\t\t\t\t\t   ]\n\t\t\t\t   )\n\t\t\t\t   .pipe(\n\t\t\t\t\t   hermesFilter((event: DomainEvent<StructureId>) => event.getAggregateId().toString() === structureId.toAggregateId().toString()),\n\t\t\t\t\t   hermesSwitchMap((event: DomainEvent<StructureId>) => {\n\n\t\t\t\t\t\t   return this.pagingWarehouse\n\t\t\t\t\t\t\t\t\t  .oncePaging(structureId.toAggregateId())\n\t\t\t\t\t\t\t\t\t  .pipe(\n\t\t\t\t\t\t\t\t\t\t  hermesMap((paging: PagingModel) => paging.getPageSize())\n\t\t\t\t\t\t\t\t\t  );\n\t\t\t\t\t   })\n\t\t\t\t   );\n\t}\n\n}\n","import { ApiProviders, Container, DomainInitializer } from '@generic-ui/hermes';\n\nimport { PagingPublisher } from './paging.publisher';\nimport { PagingWarehouse } from './paging.warehouse';\nimport { PagingEventRepository } from './paging.event-repository';\nimport { PagingDomainModule } from '../core/paging.domain-module';\nimport { PagingConverter } from '../core-read/paging.converter';\nimport { PagingRepository } from '../core-read/paging.repository';\nimport { PagingDomainWarehouse } from '../core-read/paging.domain-warehouse';\nimport { PagingDomainPublisher } from '../core/paging.domain-publisher';\nimport { PagingDomainEventRepository } from '../core-read/paging.domain.event-repository';\n\n\nexport class PagingApiModule implements ApiProviders {\n\n\tregisterProviders(container: Container): void {\n\t\tcontainer.provide(PagingPublisher, PagingDomainPublisher);\n\t\tcontainer.provide(PagingWarehouse, PagingDomainWarehouse);\n\t\tcontainer.provide(PagingEventRepository, PagingDomainEventRepository);\n\t\tcontainer.provide(PagingRepository);\n\t\tcontainer.provide(PagingConverter);\n\t}\n}\n\nexport function initializePaging(): void {\n\tnew DomainInitializer(new PagingApiModule(), new PagingDomainModule()).init();\n}\n","import { TranslationChange } from '../api/translation-change';\nimport { Translation } from '../api/translation';\n\nexport class Dictionary {\n\n\tprivate readonly translation: Map<string, string> = new Map<string, string>();\n\n\tprivate resolver: (key: string, value: string) => string = (key: string, value: string) => value;\n\n\tchangeTranslation(change: TranslationChange | Translation): void {\n\t\tfor (const key of Object.keys(change)) {\n\t\t\tthis.translation.set(key, change[key]);\n\t\t}\n\t}\n\n\tgetTranslation(): Translation {\n\t\treturn Array.from(this.translation)\n\t\t\t\t\t.reduce((obj, [key, value]) => (\n\t\t\t\t\t\tObject.assign(obj, { [key]: this.resolver(key, value) })\n\t\t\t\t\t), {}) as Translation;\n\t}\n\n\tsetResolver(resolver: (key: string, value: string) => string): void {\n\t\tthis.resolver = resolver;\n\t}\n\n}\n","import { TranslationFacade } from '../api/translation.facade';\nimport { Translation } from '../api/translation';\nimport { TranslationChange } from '../api/translation-change';\nimport { enTranslation } from './lang/en';\nimport { Dictionary } from './dictionary';\nimport { HermesObservable, HermesReplaySubject, HermesSubject } from '@generic-ui/hermes';\n\n\nexport class TranslationDomainFacade extends TranslationFacade {\n\n\tprivate readonly defaultTranslation: Translation = enTranslation;\n\n\tprivate readonly dictionary: Dictionary = new Dictionary();\n\n\tprivate readonly dictionary$: HermesSubject<Translation> = new HermesReplaySubject(1);\n\n\tconstructor() {\n\t\tsuper();\n\t}\n\n\tgetTranslation(): Translation {\n\t\treturn this.dictionary.getTranslation();\n\t}\n\n\tonTranslation(): HermesObservable<Translation> {\n\t\treturn this.dictionary$.toObservable();\n\t}\n\n\tsetDefaultTranslation(): void {\n\t\tthis.changeTranslationAndPropagate(this.defaultTranslation);\n\t}\n\n\tchangeTranslation(change: TranslationChange): void {\n\t\tthis.changeTranslationAndPropagate(change);\n\t}\n\n\tsetResolver(resolver: (key: string, value: string) => string): void {\n\t\tthis.setResolverAndPropagate(resolver);\n\t}\n\n\tprivate changeTranslationAndPropagate(change: TranslationChange | Translation): void {\n\n\t\tthis.dictionary.changeTranslation(change);\n\n\t\tthis.dictionary$.next(this.dictionary.getTranslation());\n\t}\n\n\tprivate setResolverAndPropagate(resolver: (key: string, value: string) => string): void {\n\n\t\tthis.dictionary.setResolver(resolver);\n\n\t\tthis.dictionary$.next(this.dictionary.getTranslation());\n\t}\n}\n","import { NgModule, Provider } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { FeatureModule } from '@generic-ui/hermes';\n\nimport { TranslationPipe } from './translation.pipe';\nimport { TranslationFacade } from '../../../core/l10n/src/api/translation.facade';\nimport { TranslationDomainFacade } from '../../../core/l10n/src/core/translation.domain-facade';\n\n\n@NgModule({\n\timports: [\n\t\tCommonModule\n\t],\n\tdeclarations: [\n\t\tTranslationPipe\n\t],\n\texports: [\n\t\tTranslationPipe\n\t]\n})\nexport class TranslationFeatureModule extends FeatureModule {\n\n\tstatic forComponent(): Array<Provider> {\n\t\treturn [{ provide: TranslationFacade, useClass: TranslationDomainFacade }];\n\t}\n\n\t// constructor(@Optional() apiModule: TranslationApiModule) {\n\t// \tsuper();\n\t// \tif (apiModule === null) {\n\t// \t\tthrow new Error('TranslationApiModule is required.');\n\t// \t}\n\t// }\n\n}\n","import { ChangeDetectorRef } from '@angular/core';\nimport {\n\thermesDistinctUntilChanged,\n\thermesFilter,\n\tHermesObservable,\n\tHermesReplaySubject,\n\tHermesSubject,\n\thermesSwitchMap,\n\thermesTakeUntil\n} from '@generic-ui/hermes';\n\nexport class GuiPushSubscriber {\n\n\tprivate value: any;\n\n\tprivate actualObs$: HermesObservable<any> | undefined;\n\n\tprivate baseValues$ = new HermesSubject();\n\n\tprivate destroy$ = new HermesReplaySubject<void>(1);\n\n\tconstructor(\n\t\tprivate readonly cd: ChangeDetectorRef\n\t) {\n\n\t\tthis.baseValues$\n\t\t\t.pipe(\n\t\t\t\thermesFilter((obs$: HermesObservable<any>) => obs$ !== this.actualObs$),\n\t\t\t\thermesSwitchMap((value$: HermesObservable<any>) => {\n\t\t\t\t\tthis.actualObs$ = value$;\n\t\t\t\t\treturn value$;\n\t\t\t\t}),\n\t\t\t\thermesDistinctUntilChanged(),\n\t\t\t\thermesTakeUntil(this.destroy$)\n\t\t\t)\n\t\t\t.subscribe((v: any) => {\n\t\t\t\tthis.value = v;\n\t\t\t\tthis.scheduleCD();\n\t\t\t});\n\t}\n\n\tdestroy(): void {\n\t\tthis.destroy$.next();\n\t\tthis.destroy$.complete();\n\t}\n\n\tsubscribe<T>(value: HermesObservable<T>): any {\n\t\tthis.baseValues$.next(value);\n\n\t\treturn this.value;\n\t}\n\n\tscheduleCD(): void {\n\t\tsetTimeout(() => {\n\t\t\tthis.cd.detectChanges();\n\t\t});\n\t}\n}\n","import { ChangeDetectorRef, inject, OnDestroy, Pipe, PipeTransform } from '@angular/core';\nimport { HermesObservable } from '@generic-ui/hermes';\nimport { GuiPushSubscriber } from './gui.push-subscriber';\n\n@Pipe({\n\tname: 'guiPush',\n\tpure: false\n})\nexport class GuiPushPipe implements PipeTransform, OnDestroy {\n\n\tprivate readonly cd = inject(ChangeDetectorRef);\n\n\tprivate readonly subscriber = new GuiPushSubscriber(this.cd);\n\n\ttransform<T>(value: HermesObservable<T>): T {\n\t\treturn this.subscriber.subscribe(value);\n\t}\n\n\tngOnDestroy(): void {\n\t\tthis.subscriber.destroy();\n\t}\n}\n","import { Directive, Input, OnChanges, OnDestroy, SimpleChanges, TemplateRef, ViewContainerRef } from '@angular/core';\nimport { HermesObservable } from '@generic-ui/hermes';\nimport { GuiSubscriber } from '../gui.subscriber';\n\n@Directive({\n\tselector: '[guiIf]',\n\tproviders: [\n\t\tGuiSubscriber\n\t]\n})\nexport class GuiIfDirective implements OnChanges, OnDestroy {\n\n\t@Input()\n\tguiIf!: HermesObservable<boolean>;\n\n\tconstructor(\n\t\tprivate readonly subscriber: GuiSubscriber,\n\t\tprivate readonly vcr: ViewContainerRef,\n\t\tprivate readonly template: TemplateRef<any>\n\t) {\n\t}\n\n\tngOnChanges(changes: SimpleChanges): void {\n\n\t\tif (changes['guiIf'] !== undefined) {\n\n\t\t\tthis.subscriber\n\t\t\t\t.subscribe(\n\t\t\t\t\tthis.guiIf,\n\t\t\t\t\t(v: boolean) => {\n\t\t\t\t\t\tif (v) {\n\t\t\t\t\t\t\tthis.vcr.createEmbeddedView(this.template);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tthis.vcr.clear();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t}\n\t}\n\n\tngOnDestroy() {\n\t\tthis.subscriber.destroy();\n\t}\n\n}\n","import { Directive, Input, OnChanges, OnDestroy, SimpleChanges, TemplateRef, ViewContainerRef } from '@angular/core';\nimport { HermesObservable } from '@generic-ui/hermes';\nimport { GuiSubscriber } from '../gui.subscriber';\n\n@Directive({\n\tselector: '[guiFor]',\n\tproviders: [\n\t\tGuiSubscriber\n\t]\n})\nexport class GuiForDirective implements OnChanges, OnDestroy {\n\n\t@Input()\n\tguiForOf!: HermesObservable<Array<any>>;\n\n\tconstructor(\n\t\tprivate readonly subscriber: GuiSubscriber,\n\t\tprivate readonly vcr: ViewContainerRef,\n\t\tprivate readonly template: TemplateRef<any>\n\t) {\n\t}\n\n\tngOnChanges(changes: SimpleChanges): void {\n\n\t\tif (changes['guiForOf'] !== undefined) {\n\n\t\t\tthis.guiForOf\n\t\t\t\t.subscribe((values: Array<any>) => {\n\t\t\t\t\tthis.vcr.clear();\n\t\t\t\t\tfor (const value of values) {\n\t\t\t\t\t\tthis.vcr.createEmbeddedView(this.template, { $implicit: value });\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\tthis.subscriber\n\t\t\t\t.subscribe(\n\t\t\t\t\tthis.guiForOf,\n\t\t\t\t\t(values: Array<any>) => {\n\t\t\t\t\t\tthis.vcr.clear();\n\t\t\t\t\t\tfor (const value of values) {\n\t\t\t\t\t\t\tthis.vcr.createEmbeddedView(this.template, { $implicit: value });\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t}\n\t}\n\n\tngOnDestroy() {\n\t\tthis.subscriber.destroy();\n\t}\n}\n","import { Directive, ElementRef, Input, OnChanges, OnDestroy, SimpleChanges } from '@angular/core';\nimport { HermesObservable } from '@generic-ui/hermes';\nimport { GuiSubscriber } from '../gui.subscriber';\n\n@Directive({\n\tselector: '[guiStyle]',\n\tproviders: [\n\t\tGuiSubscriber\n\t]\n})\nexport class GuiStyleDirective implements OnChanges, OnDestroy {\n\n\tprivate static readonly STYLE = 'style';\n\n\t@Input()\n\tguiStyle!: HermesObservable<{ [key: string]: string }>;\n\n\tconstructor(\n\t\tprivate readonly subscriber: GuiSubscriber,\n\t\tprivate readonly elementRef: ElementRef\n\t) {\n\t}\n\n\tngOnChanges(changes: SimpleChanges) {\n\n\t\tif (changes['guiStyle'] !== undefined) {\n\n\t\t\tthis.subscriber\n\t\t\t\t.subscribe(\n\t\t\t\t\tthis.guiStyle,\n\t\t\t\t\t(styles: { [key: string]: string }) => {\n\n\t\t\t\t\t\tObject.keys(styles)\n\t\t\t\t\t\t\t  .forEach((key: string) => {\n\t\t\t\t\t\t\t\t  this.setStyleByName(key, styles[key]);\n\t\t\t\t\t\t\t  });\n\t\t\t\t\t});\n\t\t}\n\t}\n\n\tngOnDestroy() {\n\t\tthis.subscriber.destroy();\n\t}\n\n\tprivate setStyleByName(name: string, value: string): void {\n\t\tthis.set(name, value);\n\t}\n\n\tprivate set(name: string, value: string): void {\n\t\tthis.elementRef.nativeElement[GuiStyleDirective.STYLE][name] = value;\n\t}\n\n}\n","export class GuiClassManager {\n\n\tprivate classes = new Set<string>();\n\n\tconstructor(\n\t\tprivate readonly nativeElement: HTMLElement\n\t) {\n\t}\n\n\tupdate(newClasses: Array<string>) {\n\n\t\tconst actualClasses = Array.from(this.classes);\n\n\t\tconst classesToAdd: Array<string> = [];\n\t\tconst classesToRemove: Array<string> = [];\n\n\t\tfor (const clazz of newClasses) {\n\n\t\t\tif (!actualClasses.some((actualClass) => actualClass === clazz)) {\n\t\t\t\tclassesToAdd.push(clazz);\n\t\t\t}\n\t\t}\n\n\t\tfor (const actualClass of actualClasses) {\n\n\t\t\tif (!newClasses.some((newClass) => actualClass === newClass)) {\n\t\t\t\tclassesToRemove.push(actualClass);\n\t\t\t}\n\t\t}\n\n\t\tthis.remove(...classesToRemove);\n\t\tthis.add(...classesToAdd);\n\n\t\tthis.classes = new Set(newClasses);\n\t}\n\n\tprivate add(...classes: Array<string>): void {\n\t\tthis.addClassToDomElement(this.nativeElement, classes);\n\t}\n\n\tprivate remove(...classes: Array<string>): void {\n\t\tthis.removeClassFromDomElement(this.nativeElement, classes);\n\t}\n\n\tprivate addClassToDomElement(htmlElement: HTMLElement, classes: Array<string>): void {\n\t\tfor (let i = 0; i < classes.length; i++) {\n\t\t\thtmlElement.classList.add(classes[i]);\n\t\t}\n\t}\n\n\tprivate removeClassFromDomElement(htmlElement: HTMLElement, classes: Array<string>): void {\n\t\tfor (let i = 0; i < classes.length; i++) {\n\t\t\thtmlElement.classList.remove(classes[i]);\n\t\t}\n\t}\n\n}\n","import { Directive, ElementRef, Input, OnChanges, OnDestroy, SimpleChanges } from '@angular/core';\nimport { HermesObservable } from '@generic-ui/hermes';\nimport { GuiClassManager } from './gui.class.manager';\nimport { GuiSubscriber } from '../gui.subscriber';\n\n@Directive({\n\tselector: '[guiClass]',\n\tproviders: [\n\t\tGuiSubscriber\n\t]\n})\nexport class GuiClassDirective implements OnChanges, OnDestroy {\n\n\t@Input({ required: true })\n\tguiClass!: HermesObservable<Array<string>>;\n\n\tprivate readonly classManager: GuiClassManager;\n\n\tconstructor(\n\t\tprivate readonly subscriber: GuiSubscriber,\n\t\tprivate readonly elementRef: ElementRef\n\t) {\n\t\tthis.classManager = new GuiClassManager(this.elementRef.nativeElement);\n\t}\n\n\tngOnChanges(changes: SimpleChanges) {\n\n\t\tif (changes['guiClass'] !== undefined) {\n\n\t\t\tthis.subscriber\n\t\t\t\t.subscribe(\n\t\t\t\t\tthis.guiClass,\n\t\t\t\t\t(newClasses: Array<string>) => {\n\t\t\t\t\t\tthis.classManager.update(newClasses);\n\t\t\t\t\t});\n\t\t}\n\t}\n\n\tngOnDestroy() {\n\t\tthis.subscriber.destroy();\n\t}\n\n}\n","import { GuiPushPipe } from './push/gui.push.pipe';\nimport { GuiLetDirective } from './let/gui.let.directive';\nimport { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { GuiIfDirective } from './if/gui.if.directive';\nimport { GuiForDirective } from './for/gui.for.directive';\nimport { GuiStyleDirective } from './style/gui.style.directive';\nimport { GuiClassDirective } from './class/gui.class.directive';\n\n@NgModule({\n\timports: [\n\t\tCommonModule\n\t],\n\tdeclarations: [\n\t\tGuiPushPipe,\n\t\tGuiLetDirective,\n\t\tGuiIfDirective,\n\t\tGuiForDirective,\n\t\tGuiStyleDirective,\n\t\tGuiClassDirective\n\t],\n\texports: [\n\t\tGuiPushPipe,\n\t\tGuiLetDirective,\n\t\tGuiIfDirective,\n\t\tGuiForDirective,\n\t\tGuiStyleDirective,\n\t\tGuiClassDirective\n\t]\n})\nexport class GuiTemplateModule {\n}\n","import { NgModule, Provider } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { FabricModule } from '@generic-ui/fabric';\nimport { CoreContainer, FeatureModule } from '@generic-ui/hermes';\n\nimport { PagingComponent } from './paging.component';\nimport { PagingSelectComponent } from './select/paging-select.component';\nimport { AlternativePagingNavigatorComponent } from './advanced/navigator/alternative-paging-navigator.component';\nimport { AlternativePagingPagesComponent } from './advanced/pages/alternative-paging-pages.component';\nimport { PagingDisplayModeArchive } from './mode/paging-display-mode.archive';\nimport { initializePaging } from '../../../../core/structure/paging/src/api/paging.api-module';\nimport { PagingNavigatorComponent } from './basic/navigator/paging-navigator.component';\nimport { PagingStatsComponent } from './basic/stats/paging-stats.component';\nimport { TranslationFeatureModule } from '../../../l10n/src/translation.feature-module';\nimport { PagingPublisher } from '../../../../core/structure/paging/src/api/paging.publisher';\nimport { PagingWarehouse } from '../../../../core/structure/paging/src/api/paging.warehouse';\nimport { PagingEventRepository } from '../../../../core/structure/paging/src/api/paging.event-repository';\nimport { GuiTemplateModule } from '../../../gui-angular/template/gui.template.module';\n\ninitializePaging();\n\nexport function providePagingCommandInvoker() {\n\treturn CoreContainer.resolve(PagingPublisher);\n}\n\nexport function providePagingWarehouse() {\n\treturn CoreContainer.resolve(PagingWarehouse);\n}\n\nexport function providePagingEventRepository() {\n\treturn CoreContainer.resolve(PagingEventRepository);\n}\n\n\n@NgModule({\n\timports: [\n\t\tCommonModule,\n\t\tFabricModule,\n\t\tTranslationFeatureModule,\n\t\tGuiTemplateModule\n\t],\n\tdeclarations: [\n\t\tPagingComponent,\n\t\tPagingNavigatorComponent,\n\t\tPagingSelectComponent,\n\t\tPagingStatsComponent,\n\t\tAlternativePagingNavigatorComponent,\n\t\tAlternativePagingPagesComponent\n\t],\n\texports: [\n\t\tPagingComponent,\n\t\tPagingNavigatorComponent,\n\t\tPagingSelectComponent,\n\t\tPagingStatsComponent,\n\t\tAlternativePagingNavigatorComponent,\n\t\tAlternativePagingPagesComponent\n\t],\n\tproviders: [\n\t\t{ provide: PagingPublisher, useFactory: providePagingCommandInvoker },\n\t\t{ provide: PagingWarehouse, useFactory: providePagingWarehouse },\n\t\t{ provide: PagingEventRepository, useFactory: providePagingEventRepository }\n\t]\n})\nexport class PagingFeatureModule extends FeatureModule {\n\n\tstatic forComponent(): Array<Provider> {\n\t\treturn [\n\t\t\tPagingDisplayModeArchive\n\t\t];\n\t}\n\n}\n","import { Archive } from '@generic-ui/hermes';\nimport { StructureBannerPanelConfig } from '../structure-banner-panel.config';\n\nexport class StructureTitlePanelConfigArchive extends Archive<StructureBannerPanelConfig> {\n\n\tprivate static readonly titlePanelConfig: StructureBannerPanelConfig = {\n\t\tenabled: false,\n\t\ttemplate: 'Title Panel'\n\t};\n\n\tconstructor() {\n\t\tsuper({ ...StructureTitlePanelConfigArchive.titlePanelConfig });\n\t}\n\n}\n","import { Archive } from '@generic-ui/hermes';\nimport { StructureBannerPanelConfig } from '../structure-banner-panel.config';\n\nexport class StructureFooterPanelConfigArchive extends Archive<StructureBannerPanelConfig> {\n\n\tprivate static readonly footerPanelConfig: StructureBannerPanelConfig = {\n\t\tenabled: false,\n\t\ttemplate: 'Footer Panel'\n\t};\n\n\tconstructor() {\n\t\tsuper({ ...StructureFooterPanelConfigArchive.footerPanelConfig });\n\t}\n\n}\n","export const filterContainerToken = 'Filter container token';\n","export enum StyleName {\n\tWIDTH = 'width',\n\tHEIGHT = 'height',\n\tPADDING_TOP = 'padding-top'\n}\n","import { StyleModifierApi } from './style-modifier-api';\nimport { StyleName } from './style-name';\nimport { Modifier } from '../core/modifier';\n\nconst STYLE = 'style';\n\nexport class StyleModifier extends Modifier<StyleModifierApi> {\n\n\tconstructor(\n\t\thtmlElement?: HTMLElement\n\t) {\n\t\tsuper(htmlElement);\n\t}\n\n\tprotected createModifier(htmlElement: HTMLElement): StyleModifierApi {\n\t\treturn new StyleModifier.StyleModifier(htmlElement);\n\t}\n\n\t// eslint-disable-next-line\n\tprivate static readonly StyleModifier = class implements StyleModifierApi {\n\n\t\tconstructor(\n\t\t\tprivate readonly htmlElement: HTMLElement\n\t\t) {\n\t\t}\n\n\t\tsetStyleByName(name: string, value: string): void {\n\t\t\tthis.set(name, value);\n\t\t}\n\n\t\tsetWidth(value: number): void {\n\t\t\tthis.set(StyleName.WIDTH, this.toPx(value));\n\t\t}\n\n\t\tsetHeight(value: number): void {\n\t\t\tthis.set(StyleName.HEIGHT, this.toPx(value));\n\t\t}\n\n\t\tsetPaddingTop(value: number): void {\n\t\t\tthis.set(StyleName.PADDING_TOP, this.toPx(value));\n\t\t}\n\n\t\tremove(styleName: StyleName): void {\n\t\t\tthis.htmlElement[STYLE][styleName] = '';\n\t\t}\n\n\t\tremoveStyleByName(name: string): void {\n\t\t\tthis.htmlElement[STYLE][name] = '';\n\t\t}\n\n\t\tclear(): void {\n\t\t\tthis.htmlElement.removeAttribute(STYLE);\n\t\t}\n\n\t\tprivate set(name: string, value: string): void {\n\t\t\tthis.htmlElement[STYLE][name] = value;\n\t\t}\n\n\t\tprivate toPx(value: number): string {\n\t\t\treturn value > 0 ? `${value}px` : `${value}`;\n\t\t}\n\n\t};\n\n}\n","import { Publisher } from '@generic-ui/hermes';\n\nimport { StructureId } from '../../../structure-core/src/api/global/structure.id';\nimport { FieldConfig } from './config/field.config';\n\n\nexport abstract class FieldPublisher implements Publisher {\n\n\tprotected constructor() {\n\t}\n\n\tabstract initFields(fieldConfigs: Array<FieldConfig>, structureId: StructureId): void;\n\n}\n","import { HermesObservable, Warehouse } from '@generic-ui/hermes';\n\nimport { StructureReadModelRepository } from './read/structure.read-model-repository';\nimport { StructureReadModelRoot } from './read/structure.read-model-root';\nimport { StructureId } from './global/structure.id';\nimport { StructureCellEditArchive } from '../../../../../feature-view/grid-view/src/edit/structure.cell-edit.archive';\nimport { CellEditorManager } from '../domain/edit/cell-editor.manager';\n\n\nexport class StructureWarehouse implements Warehouse {\n\n\tconstructor(private readonly structureRepository: StructureReadModelRepository,\n\t\t\t\tprivate readonly structureCellEditArchive: StructureCellEditArchive) {\n\t}\n\n\tstatic readonly services = [StructureReadModelRepository, StructureCellEditArchive] as const;\n\n\ton(structureId: StructureId): HermesObservable<StructureReadModelRoot> {\n\t\treturn this.structureRepository.on(structureId);\n\t}\n\n\tonEditManager(structureId: StructureId): HermesObservable<CellEditorManager> {\n\t\treturn this.structureCellEditArchive\n\t\t\t\t   .on(structureId);\n\t}\n\n}\n","import { HermesObservable, Warehouse } from '@generic-ui/hermes';\nimport { StructureId } from '../../../structure-core/src/api/global/structure.id';\n\n\nexport abstract class SearchWarehouse implements Warehouse {\n\n\tprotected constructor() {\n\t}\n\n\tabstract onSearchEnabled(structureId: StructureId): HermesObservable<boolean>;\n\n\tabstract onPhrase(structureId: StructureId): HermesObservable<string>;\n\n\tabstract onHighlight(structureId: StructureId): HermesObservable<boolean>;\n\n\tabstract onPlaceholder(structureId: StructureId): HermesObservable<string>;\n\n}\n","import { InjectionToken } from '@angular/core';\n\nconst prefix = 'Structure -';\n\nexport const STRUCTURE_CSS_CLASS_NAME = new InjectionToken<string>(`${prefix} - css className`);\n","import { StructureId } from '../../../structure-core/src/api/global/structure.id';\nimport { HermesObservable, Warehouse } from '@generic-ui/hermes';\n\n\nexport abstract class SummariesWarehouse implements Warehouse {\n\n\tprotected constructor() {\n\t}\n\n\tabstract onEnabled(structureId: StructureId): HermesObservable<boolean>;\n\n\tabstract onTopEnabled(structureId: StructureId): HermesObservable<boolean>;\n\n\tabstract onBottomEnabled(structureId: StructureId): HermesObservable<boolean>;\n\n}\n","export class SummariesTranslations {\n\n\tconstructor(readonly distinctTooltip: string,\n\t\t\t\treadonly averageTooltip: string,\n\t\t\t\treadonly minTooltip: string,\n\t\t\t\treadonly maxTooltip: string,\n\t\t\t\treadonly medTooltip: string,\n\t\t\t\treadonly countTooltip: string) {\n\t}\n\n}\n","export enum SortOrder {\n\tASC,\n\tDESC,\n\tNONE\n}\n","import { CellContext } from './cell-context';\nimport { FieldId } from '../../../../structure/field/src/domain/field/field.id';\nimport { SortOrder } from '../../domain/column/sort/sort-order';\nimport { ColumnAlign } from '../../domain/column/column-align';\nimport { ColumnDefinitionId } from '../../api/column/column-definition-id';\n\n// Basically header template\nexport class CellTemplateWithContext {\n\n\tconstructor(\n\t\t// public viewTemplate: TemplateRef<any> | null = null,\n\t\t// \t\tpublic editTemplate: TemplateRef<any> | null = null,\n\t\t// public editContext: any,\n\t\tprivate header: any,\n\t\tprivate dataType: any,\n\t\tpublic context: CellContext,\n\t\tpublic width: number,\n\t\tprivate readonly fieldId: FieldId,\n\t\tprivate readonly columnDefinitionId: ColumnDefinitionId,\n\t\tprivate readonly sortStatus: SortOrder,\n\t\tprivate readonly enabled: boolean,\n\t\tprivate readonly cssClasses: string,\n\t\tprivate readonly styles: string,\n\t\tprivate readonly sortable: boolean,\n\t\tprivate readonly align: ColumnAlign) {\n\t}\n\n\tgetHeader() {\n\t\treturn this.header;\n\t}\n\n\tgetDataType() {\n\t\treturn this.dataType;\n\t}\n\n\tgetColumnDefinitionId(): ColumnDefinitionId {\n\t\treturn this.columnDefinitionId;\n\t}\n\n\tgetFieldId(): FieldId {\n\t\treturn this.fieldId;\n\t}\n\n\tgetSortStatus(): SortOrder {\n\t\treturn this.sortStatus;\n\t}\n\n\tgetCssClasses(): string {\n\t\treturn this.cssClasses;\n\t}\n\n\tgetStyles(): string {\n\t\treturn this.styles;\n\t}\n\n\tisSortEnabled(): boolean {\n\t\treturn this.sortable;\n\t}\n\n\tisAscSort(): boolean {\n\t\treturn this.sortStatus === SortOrder.ASC;\n\t}\n\n\tisDescSort(): boolean {\n\t\treturn this.sortStatus === SortOrder.DESC;\n\t}\n\n\tisNoSort(): boolean {\n\t\treturn this.sortStatus === SortOrder.NONE;\n\t}\n\n\tisEnabled(): boolean {\n\t\treturn this.enabled;\n\t}\n\n\tisAlignLeft(): boolean {\n\t\treturn this.align === ColumnAlign.LEFT;\n\t}\n\n\tisAlignCenter(): boolean {\n\t\treturn this.align === ColumnAlign.CENTER;\n\t}\n\n\tisAlignRight(): boolean {\n\t\treturn this.align === ColumnAlign.RIGHT;\n\t}\n\n\tgetAlign(): ColumnAlign {\n\t\treturn this.align;\n\t}\n\n}\n","import { TemplateRef } from '@angular/core';\nimport { CellTemplateWithContext } from '../../../../core/composition/src/core-read/definition/cell-template-with-context';\n\nexport class CompositionTemplateModel extends CellTemplateWithContext {\n\n\tconstructor(public viewTemplate: TemplateRef<any> | null = null,\n\t\t\t\tpublic editTemplate: TemplateRef<any> | null = null,\n\t\t\t\tcontext: CellTemplateWithContext) {\n\t\tsuper(\n\t\t\tcontext.getHeader(),\n\t\t\tcontext.getDataType(),\n\t\t\tcontext.context,\n\t\t\tcontext.width,\n\t\t\tcontext.getFieldId(),\n\t\t\tcontext.getColumnDefinitionId(),\n\t\t\tcontext.getSortStatus(),\n\t\t\tcontext.isEnabled(),\n\t\t\tcontext.getCssClasses(),\n\t\t\tcontext.getStyles(),\n\t\t\tcontext.isSortEnabled(),\n\t\t\tcontext.getAlign()\n\t\t);\n\t}\n}\n","export enum CellValueType {\n\tTEXT,\n\tHTML\n}\n\nexport class CellValue {\n\n\tconstructor(public value: any,\n\t\t\t\tpublic readonly type: CellValueType) {\n\t}\n\n\tstatic text(value: any): CellValue {\n\t\treturn new CellValue(value, CellValueType.TEXT);\n\t}\n\n\tstatic HTML(value: any): CellValue {\n\t\treturn new CellValue(value, CellValueType.HTML);\n\t}\n\n}\n","import { ColumnFieldId } from '../../domain/column/field/column-field.id';\nimport { Item } from '../../../../structure/source/src/api/item/item';\nimport { DataType } from '../../../../structure/field/src/domain/field/data/data-type';\nimport { ViewEntity } from '../../domain/column/view.entity';\nimport { CellView } from '../../domain/column/cell-view';\nimport { ColumnAlign } from '../../domain/column/column-align';\nimport { CellValue } from './cell-value';\nimport { ColumnDefinitionId } from '../../api/column/column-definition-id';\nimport { ColumnConfig } from '../../api/column/column.config';\n\n\nexport class CellTemplateWithAccessor {\n\n\tconstructor(private readonly columnConfig: ColumnConfig,\n\t\t\t\tpublic columnDefinitionId: ColumnDefinitionId,\n\t\t\t\tprivate readonly name: string,\n\t\t\t\t// public template: TemplateRef<any> | null = null,\n\t\t\t\t// public editTemplate: TemplateRef<any> | null = null,\n\t\t\t\tpublic editable: boolean,\n\t\t\t\tpublic templateFun: (value: any, item: any) => any,\n\t\t\t\tpublic formatterFun: (value: any, item: any) => any,\n\t\t\t\tpublic accessor: (element: any) => any,\n\t\t\t\tpublic searchAccessor: (element: any) => any,\n\t\t\t\tpublic width: number,\n\t\t\t\tpublic columnFieldId: ColumnFieldId,\n\t\t\t\tprivate readonly align: ColumnAlign,\n\t\t\t\tprivate readonly cellEditingEnabled: boolean,\n\t\t\t\tprivate readonly type: DataType, // REFACTOR\n\t\t\t\tprivate readonly view: ViewEntity) { // REFACTOR\n\t}\n\n\tgetDataType(): DataType {\n\t\treturn this.type;\n\t}\n\n\tgetCellView(): CellView {\n\t\treturn this.view.getCellView();\n\t}\n\n\tgetColumnConfig(): ColumnConfig {\n\t\treturn this.columnConfig;\n\t}\n\n\tisCellEditingEnabled(): boolean {\n\t\treturn this.cellEditingEnabled;\n\t}\n\n\tisBooleanDataType(): boolean {\n\t\treturn this.type === DataType.BOOLEAN;\n\t}\n\n\tisAlignLeft(): boolean {\n\t\treturn this.align === ColumnAlign.LEFT;\n\t}\n\n\tisAlignCenter(): boolean {\n\t\treturn this.align === ColumnAlign.CENTER;\n\t}\n\n\tisAlignRight(): boolean {\n\t\treturn this.align === ColumnAlign.RIGHT;\n\t}\n\n\tgetAlign() {\n\t\treturn this.align;\n\t}\n\n\tgetType() {\n\t\treturn this.type;\n\t}\n\n\tgetView() {\n\t\treturn this.view;\n\t}\n\n\tgetName(): string {\n\t\treturn this.name;\n\t}\n\n\t// REFACTOR #1581\n\tgetValue(entity: Item, searchPhrase?: string): CellValue {\n\n\t\tconst cellValue = this.findValue(entity, searchPhrase);\n\n\t\tcellValue.value = this.templateFun(cellValue.value, entity.getSourceItem());\n\n\t\tif (this.formatterFun) {\n\t\t\tcellValue.value = this.formatterFun(cellValue.value, entity.getSourceItem());\n\t\t}\n\n\t\treturn cellValue;\n\t}\n\n\tgetClasses(): string {\n\t\treturn 'gui-cell-highlighted';\n\t}\n\n\tprivate findValue(entity: Item, searchPhrase?: string): CellValue {\n\n\t\tconst value = this.accessor(entity);\n\n\t\tif (this.type !== DataType.STRING) {\n\t\t\treturn CellValue.text(value);\n\t\t}\n\n\t\tif (this.view && this.view.getCellView() === CellView.FUNCTION) {\n\t\t\treturn CellValue.text(value);\n\t\t}\n\n\t\tif (searchPhrase) {\n\n\t\t\tlet txt: string = '' + this.searchAccessor(entity);\n\t\t\tconst lowerCasedText: string = txt.toLocaleLowerCase(),\n\t\t\t\tloweredSearchPhrase = searchPhrase.toLocaleLowerCase();\n\n\t\t\tconst positions: Array<number> = [];\n\n\t\t\tlet index = 0;\n\n\t\t\twhile (index < loweredSearchPhrase.length) {\n\n\t\t\t\tconst found = lowerCasedText.indexOf(loweredSearchPhrase, index);\n\n\t\t\t\tif (found >= 0) {\n\t\t\t\t\tpositions.push(found);\n\t\t\t\t\tindex = found + searchPhrase.length;\n\n\t\t\t\t} else {\n\t\t\t\t\tindex = loweredSearchPhrase.length;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst arr = txt.split('');\n\n\t\t\tpositions.forEach((pos: number) => {\n\n\t\t\t\tfor (let i = 0; i < searchPhrase.length; i += 1) {\n\n\t\t\t\t\tlet ph;\n\n\t\t\t\t\tif (i === 0) {\n\t\t\t\t\t\tph = `<span class=\"gui-text-highlight\">${arr[pos + i]}`;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tph = arr[pos + i];\n\t\t\t\t\t}\n\n\t\t\t\t\tif (i === searchPhrase.length - 1) {\n\t\t\t\t\t\tph += '</span>';\n\t\t\t\t\t}\n\n\t\t\t\t\tarr[pos + i] = ph;\n\t\t\t\t}\n\n\t\t\t});\n\n\t\t\ttxt = arr.join('');\n\n\t\t\treturn CellValue.HTML(txt);\n\t\t} else {\n\t\t\treturn CellValue.text(value);\n\t\t}\n\t}\n\n}\n","import { TemplateRef } from '@angular/core';\nimport { CellTemplateWithAccessor } from '../../../../core/composition/src/core-read/definition/cell-template-with-accessor';\n\nexport class CompositionAccessorModel extends CellTemplateWithAccessor {\n\n\tconstructor(public template: TemplateRef<any> | null = null,\n\t\t\t\tpublic editTemplate: TemplateRef<any> | null = null,\n\t\t\t\tcontext: CellTemplateWithAccessor) {\n\t\tsuper(\n\t\t\tcontext.getColumnConfig(),\n\t\t\tcontext.columnDefinitionId,\n\t\t\tcontext.getName(),\n\t\t\tcontext.editable,\n\t\t\tcontext.templateFun,\n\t\t\tcontext.formatterFun,\n\t\t\tcontext.accessor,\n\t\t\tcontext.searchAccessor,\n\t\t\tcontext.width,\n\t\t\tcontext.columnFieldId,\n\t\t\tcontext.getAlign(),\n\t\t\tcontext.isCellEditingEnabled(),\n\t\t\tcontext.getType(),\n\t\t\tcontext.getView()\n\t\t);\n\t}\n}\n","import { CompositionColumnMovedLeftAggregateEvent } from './column/move/left/composition.column-moved-left.aggregate-event';\n\nexport const CompositionAggregateEvents = {\n\tCompositionResizeWidthSetAggregateEvent: 'CompositionResizeWidthSetAggregateEvent',\n\tColumnsSetAggregateEvent: 'ColumnsSetAggregateEvent',\n\tCompositionContainerWidthSetAggregateEvent: 'CompositionContainerWidthSetAggregateEvent',\n\tCompositionWidthSetAggregateEvent: 'CompositionWidthSetAggregateEvent',\n\tCompositionColumnSetEnabledAggregateEvent: 'CompositionColumnSetEnabledAggregateEvent',\n\tCompositionColumnMovedLeftAggregateEvent: 'CompositionColumnMovedLeftAggregateEvent',\n\tCompositionColumnMovedRightAggregateEvent: 'CompositionColumnMovedRightAggregateEvent',\n\tGroupsSetAggregateEvent: 'GroupsSetAggregateEvent'\n};\n","import { DomainEvent } from '@generic-ui/hermes';\nimport { CompositionId } from '../api/global/composition.id';\n\nexport abstract class CompositionDomainEvent extends DomainEvent<CompositionId> {\n}\n","import { CompositionId } from '../../../api/global/composition.id';\nimport { CompositionDomainEvent } from '../../composition.domain-event';\n\nexport class CompositionResizeWidthSetEvent extends CompositionDomainEvent {\n\n\tconstructor(aggregateId: CompositionId) {\n\t\tsuper(aggregateId, null, 'CompositionResizeWidthSetEvent');\n\t}\n}\n","import { CompositionId } from '../../../api/global/composition.id';\nimport { CompositionDomainEvent } from '../../composition.domain-event';\n\nexport class CompositionColumnsSetEvent extends CompositionDomainEvent {\n\n\tconstructor(compositionId: CompositionId) {\n\t\tsuper(compositionId, null, 'CompositionColumnsSetEvent');\n\t}\n}\n","import { CompositionId } from '../../../api/global/composition.id';\nimport { CompositionDomainEvent } from '../../composition.domain-event';\n\nexport class CompositionContainerWidthSetEvent extends CompositionDomainEvent {\n\n\tconstructor(compositionId: CompositionId,\n\t\t\t\tpayload: any) {\n\t\tsuper(compositionId, payload, 'CompositionContainerWidthSetEvent');\n\t}\n\n}\n","import { CompositionId } from '../../../api/global/composition.id';\nimport { CompositionDomainEvent } from '../../composition.domain-event';\n\nexport class CompositionWidthSetEvent extends CompositionDomainEvent {\n\n\tconstructor(compositionId: CompositionId) {\n\t\tsuper(compositionId, null, 'CompositionWidthSetEvent');\n\t}\n}\n","import { CompositionId } from '../../../api/global/composition.id';\nimport { CompositionDomainEvent } from '../../composition.domain-event';\n\nexport class CompositionColumnSetEnabledEvent extends CompositionDomainEvent {\n\n\tconstructor(aggregateId: CompositionId) {\n\t\tsuper(aggregateId, null, 'CompositionColumnSetEnabledEvent');\n\t}\n}\n","import { CompositionId } from '../../../../api/global/composition.id';\nimport { CompositionDomainEvent } from '../../../composition.domain-event';\n\nexport class CompositionColumnMovedLeftEvent extends CompositionDomainEvent {\n\n\tconstructor(aggregateId: CompositionId) {\n\t\tsuper(aggregateId, null, 'CompositionColumnMovedLeftEvent');\n\t}\n}\n","import { CompositionId } from '../../../../api/global/composition.id';\nimport { CompositionDomainEvent } from '../../../composition.domain-event';\n\nexport class CompositionColumnMovedRightEvent extends CompositionDomainEvent {\n\n\tconstructor(aggregateId: CompositionId) {\n\t\tsuper(aggregateId, null, 'CompositionColumnMovedRightEvent');\n\t}\n}\n","import { CompositionId } from '../../../api/global/composition.id';\nimport { CompositionDomainEvent } from '../../composition.domain-event';\n\nexport class CompositionGroupsSetEvent extends CompositionDomainEvent {\n\n\tconstructor(compositionId: CompositionId) {\n\t\tsuper(compositionId, null, 'CompositionGroupsSetEvent');\n\t}\n}\n","import { AggregateEvent, DomainEvent } from '@generic-ui/hermes';\n\nimport { CompositionAggregateEvents } from './composition.events';\nimport { CompositionResizeWidthSetEvent } from './width/resize-width/composition-resize-width-set.event';\nimport { CompositionColumnsSetEvent } from './column/set-columns/composition.columns-set.event';\nimport { CompositionContainerWidthSetAggregateEvent } from './width/set-container-width/composition-container-width-set.aggregate-event';\nimport { CompositionContainerWidthSetEvent } from './width/set-container-width/composition-container-width-set.event';\nimport { CompositionWidthSetEvent } from './width/set-width/composition-width-set.event';\nimport { CompositionColumnSetEnabledEvent } from './column/set-enabled/composition.column-set-enabled.event';\nimport { CompositionColumnMovedLeftEvent } from './column/move/left/composition.column-moved-left.event';\nimport { CompositionColumnMovedRightEvent } from './column/move/right/composition.column-moved-right.event';\nimport { CompositionId } from '../api/global/composition.id';\nimport { CompositionGroupsSetEvent } from './group/set-groups/composition.groups-set.event';\n\n\nexport class CompositionEventConverter {\n\n\tconvert(event: AggregateEvent<CompositionId>): DomainEvent<CompositionId>;\n\tconvert(events: Array<AggregateEvent<CompositionId>>): Array<DomainEvent<CompositionId>>;\n\tconvert(arg: AggregateEvent<CompositionId> | Array<AggregateEvent<CompositionId>>): DomainEvent<CompositionId> | Array<DomainEvent<CompositionId>> {\n\n\t\tif (Array.isArray(arg)) {\n\t\t\treturn this.convertEvents(arg);\n\t\t} else {\n\t\t\treturn this.convertEvent(arg);\n\t\t}\n\t}\n\n\tprivate convertEvents(aggregateEvents: Array<AggregateEvent<CompositionId>>): Array<DomainEvent<CompositionId>> {\n\t\treturn aggregateEvents.map((event: AggregateEvent<CompositionId>) => {\n\t\t\treturn this.convertEvent(event);\n\t\t});\n\t}\n\n\tprivate convertEvent(aggregateEvent: AggregateEvent<CompositionId>): DomainEvent<CompositionId> {\n\n\t\tswitch (aggregateEvent.getType()) {\n\t\t\tcase CompositionAggregateEvents.CompositionResizeWidthSetAggregateEvent:\n\n\t\t\t\treturn new CompositionResizeWidthSetEvent(aggregateEvent.getAggregateId());\n\n\t\t\tcase CompositionAggregateEvents.ColumnsSetAggregateEvent:\n\n\t\t\t\treturn new CompositionColumnsSetEvent(aggregateEvent.getAggregateId());\n\n\t\t\tcase CompositionAggregateEvents.CompositionContainerWidthSetAggregateEvent:\n\n\t\t\t\tconst payload = (aggregateEvent as CompositionContainerWidthSetAggregateEvent).containerWidth;\n\n\t\t\t\treturn new CompositionContainerWidthSetEvent(aggregateEvent.getAggregateId(), payload);\n\n\t\t\tcase CompositionAggregateEvents.CompositionWidthSetAggregateEvent:\n\n\t\t\t\treturn new CompositionWidthSetEvent(aggregateEvent.getAggregateId());\n\n\t\t\tcase CompositionAggregateEvents.CompositionColumnSetEnabledAggregateEvent:\n\n\t\t\t\treturn new CompositionColumnSetEnabledEvent(aggregateEvent.getAggregateId());\n\n\t\t\tcase CompositionAggregateEvents.CompositionColumnMovedLeftAggregateEvent:\n\n\t\t\t\treturn new CompositionColumnMovedLeftEvent(aggregateEvent.getAggregateId());\n\n\t\t\tcase CompositionAggregateEvents.CompositionColumnMovedRightAggregateEvent:\n\n\t\t\t\treturn new CompositionColumnMovedRightEvent(aggregateEvent.getAggregateId());\n\n\t\t\tcase CompositionAggregateEvents.GroupsSetAggregateEvent:\n\n\t\t\t\treturn new CompositionGroupsSetEvent(aggregateEvent.getAggregateId());\n\n\t\t\tdefault:\n\t\t\t\treturn new CompositionResizeWidthSetEvent(aggregateEvent.getAggregateId());\n\t\t}\n\n\t}\n\n\n}\n","import { Command } from '@generic-ui/hermes';\nimport { CompositionId } from '../api/global/composition.id';\n\nexport abstract class CompositionCommand extends Command<CompositionId> {\n}\n","import { CompositionId } from '../../../api/global/composition.id';\n\nimport { ColumnParams } from './column.params';\nimport { CompositionCommand } from '../../composition.command';\n\n\nexport class SetColumnsCommand extends CompositionCommand {\n\n\tconstructor(readonly compositionId: CompositionId,\n\t\t\t\tprivate readonly columns: Array<ColumnParams>) {\n\t\tsuper(compositionId, 'SetColumnsCommand');\n\t}\n\n\tgetParams(): Array<ColumnParams> {\n\t\treturn this.columns;\n\t}\n\n}\n","import { AggregateEvent, CommandHandler, CommandType, CoreContainer, DomainEventPublisher } from '@generic-ui/hermes';\nimport { CompositionEventConverter } from '../../composition.event-converter';\nimport { CompositionAggregate } from '../../../domain/composition.aggregate';\n\nimport { SetColumnsCommand } from './set-columns.command';\nimport { ColumnParams } from './column.params';\nimport { CompositionId } from '../../../api/global/composition.id';\n\n\nexport class SetColumnsCommandHandler implements CommandHandler<CompositionAggregate, SetColumnsCommand> {\n\n\tprivate readonly domainEventPublisher: DomainEventPublisher = CoreContainer.resolve(DomainEventPublisher);\n\n\tconstructor(private readonly compositionEventConverter: CompositionEventConverter) {\n\t}\n\n\tstatic readonly services = [CompositionEventConverter] as const;\n\n\tforCommand(): CommandType<SetColumnsCommand> {\n\t\treturn SetColumnsCommand;\n\t}\n\n\thandle(aggregate: CompositionAggregate, command: SetColumnsCommand): void {\n\n\t\tconst setColumnsParams: Array<ColumnParams> = command.getParams();\n\n\t\taggregate.setColumns(setColumnsParams);\n\t}\n\n\tpublish(aggregate: CompositionAggregate, command: SetColumnsCommand): void {\n\t\tthis.publishEvents(aggregate, command);\n\t}\n\n\tprivate publishEvents(composition: CompositionAggregate, command: SetColumnsCommand): void {\n\n\t\tconst events = composition.getEvents() as Array<AggregateEvent<CompositionId>>;\n\n\t\tconst domainEvents = this.compositionEventConverter.convert(events);\n\n\t\tthis.domainEventPublisher.publish(domainEvents);\n\t}\n}\n","import { StructureId } from '../../../../../structure/structure-core/src/api/global/structure.id';\nimport { CompositionCommand } from '../../composition.command';\n\n\nexport class SetCompositionWidthCommand extends CompositionCommand {\n\n\tconstructor(private readonly structureId: StructureId,\n\t\t\t\tprivate readonly width: number) {\n\t\tsuper(structureId, 'SetCompositionWidthCommand');\n\t}\n\n\tgetWidth(): number {\n\t\treturn this.width;\n\t}\n\n}\n","import { CommandHandler, CommandType, CoreContainer, DomainEventPublisher } from '@generic-ui/hermes';\nimport { SetCompositionWidthCommand } from './set-composition-width.command';\nimport { CompositionWidthSetEvent } from './composition-width-set.event';\nimport { CompositionAggregate } from '../../../domain/composition.aggregate';\n\n\nexport class SetCompositionWidthCommandHandler implements CommandHandler<CompositionAggregate, SetCompositionWidthCommand> {\n\n\tprivate readonly domainEventPublisher: DomainEventPublisher = CoreContainer.resolve(DomainEventPublisher);\n\n\tforCommand(): CommandType<SetCompositionWidthCommand> {\n\t\treturn SetCompositionWidthCommand;\n\t}\n\n\thandle(composition: CompositionAggregate, command: SetCompositionWidthCommand): void {\n\n\t\tconst width = command.getWidth();\n\n\t\tcomposition.setWidth(width);\n\t}\n\n\tpublish(aggregate: CompositionAggregate, command: SetCompositionWidthCommand): void {\n\t\tthis.domainEventPublisher.publish(new CompositionWidthSetEvent(command.getAggregateId()));\n\t}\n\n}\n","import { StructureId } from '../../../../../structure/structure-core/src/api/global/structure.id';\nimport { CompositionCommand } from '../../composition.command';\n\n\nexport class SetCompositionResizeWidthCommand extends CompositionCommand {\n\n\tconstructor(private readonly structureId: StructureId,\n\t\t\t\tprivate readonly enabled: boolean) {\n\t\tsuper(structureId, 'SetCompositionResizeWidthCommand');\n\t}\n\n\tgetEnabled(): boolean {\n\t\treturn this.enabled;\n\t}\n\n}\n","import { CommandHandler, CommandType, CoreContainer, DomainEventPublisher } from '@generic-ui/hermes';\n\nimport { SetCompositionResizeWidthCommand } from './set-composition-resize-width.command';\nimport { CompositionResizeWidthSetEvent } from './composition-resize-width-set.event';\nimport { CompositionAggregate } from '../../../domain/composition.aggregate';\n\n\nexport class SetCompositionResizeWidthCommandHandler implements CommandHandler<CompositionAggregate, SetCompositionResizeWidthCommand> {\n\n\tprivate readonly domainEventPublisher: DomainEventPublisher = CoreContainer.resolve(DomainEventPublisher);\n\n\tforCommand(): CommandType<SetCompositionResizeWidthCommand> {\n\t\treturn SetCompositionResizeWidthCommand;\n\t}\n\n\thandle(composition: CompositionAggregate, command: SetCompositionResizeWidthCommand): void {\n\n\t\tconst enabled = command.getEnabled();\n\n\t\tcomposition.setResizeWidth(enabled);\n\t}\n\n\tpublish(aggregate: CompositionAggregate, command: SetCompositionResizeWidthCommand): void {\n\t\tthis.domainEventPublisher.publish(new CompositionResizeWidthSetEvent(command.getAggregateId()));\n\t}\n\n}\n","import { StructureId } from '../../../../../structure/structure-core/src/api/global/structure.id';\nimport { CompositionCommand } from '../../composition.command';\n\nexport class SetCompositionContainerWidthCommand extends CompositionCommand {\n\n\tconstructor(private readonly structureId: StructureId,\n\t\t\t\tprivate readonly width: number) {\n\t\tsuper(structureId, 'SetCompositionContainerWidthCommand');\n\t}\n\n\tgetWidth(): number {\n\t\treturn this.width;\n\t}\n\n}\n","import { AggregateEvent, CommandHandler, CommandType, CoreContainer, DomainEventPublisher } from '@generic-ui/hermes';\nimport { CompositionEventConverter } from '../../composition.event-converter';\nimport { SetCompositionContainerWidthCommand } from './set-composition-container-width.command';\nimport { CompositionAggregate } from '../../../domain/composition.aggregate';\nimport { CompositionId } from '../../../api/global/composition.id';\n\n\nexport class SetCompositionContainerWidthCommandHandler implements CommandHandler<CompositionAggregate, SetCompositionContainerWidthCommand> {\n\n\tprivate readonly domainEventPublisher: DomainEventPublisher = CoreContainer.resolve(DomainEventPublisher);\n\n\tconstructor(private readonly compositionEventConverter: CompositionEventConverter) {\n\t}\n\n\tstatic readonly services = [CompositionEventConverter];\n\n\tforCommand(): CommandType<SetCompositionContainerWidthCommand> {\n\t\treturn SetCompositionContainerWidthCommand;\n\t}\n\n\thandle(composition: CompositionAggregate, command: SetCompositionContainerWidthCommand): void {\n\n\t\tconst width = command.getWidth();\n\n\t\tcomposition.setContainerWidth(width);\n\t}\n\n\tpublish(aggregate: CompositionAggregate, command: SetCompositionContainerWidthCommand): void {\n\t\tthis.publishAggregateEvents(aggregate.getEvents() as Array<AggregateEvent<CompositionId>>);\n\t}\n\n\tprivate publishAggregateEvents(aggregateEvents: Array<AggregateEvent<CompositionId>>): void {\n\n\t\tconst domainEvents = this.compositionEventConverter.convert(aggregateEvents);\n\n\t\tthis.domainEventPublisher.publish(domainEvents);\n\t}\n\n}\n","import { CompositionId } from '../../../api/global/composition.id';\nimport { ColumnId } from '../../../api/column/column.id';\nimport { CompositionCommand } from '../../composition.command';\n\nexport class CompositionSetColumnEnabledCommand extends CompositionCommand {\n\n\tconstructor(readonly compositionId: CompositionId,\n\t\t\t\tprivate readonly columnId: ColumnId,\n\t\t\t\tprivate readonly enabled: boolean) {\n\t\tsuper(compositionId, 'CompositionSetColumnEnabledCommand');\n\t}\n\n\tgetColumnId(): ColumnId {\n\t\treturn this.columnId;\n\t}\n\n\tisEnabled(): boolean {\n\t\treturn this.enabled;\n\t}\n\n}\n","import { AggregateEvent, CommandHandler, CommandType, CoreContainer, DomainEventPublisher } from '@generic-ui/hermes';\nimport { CompositionEventConverter } from '../../composition.event-converter';\nimport { CompositionAggregate } from '../../../domain/composition.aggregate';\nimport { CompositionSetColumnEnabledCommand } from './composition.set-column-enabled.command';\nimport { CompositionId } from '../../../api/global/composition.id';\n\n\nexport class CompositionSetColumnEnabledCommandHandler implements CommandHandler<CompositionAggregate, CompositionSetColumnEnabledCommand> {\n\n\tprivate readonly domainEventPublisher: DomainEventPublisher = CoreContainer.resolve(DomainEventPublisher);\n\n\tconstructor(private readonly compositionEventConverter: CompositionEventConverter) {\n\t}\n\n\tstatic readonly services = [CompositionEventConverter] as const;\n\n\tforCommand(): CommandType<CompositionSetColumnEnabledCommand> {\n\t\treturn CompositionSetColumnEnabledCommand;\n\t}\n\n\thandle(aggregate: CompositionAggregate, command: CompositionSetColumnEnabledCommand): void {\n\n\t\tconst columnId = command.getColumnId(),\n\t\t\tenabled = command.isEnabled();\n\n\t\taggregate.enableColumn(columnId, enabled);\n\t}\n\n\tpublish(aggregate: CompositionAggregate, command: CompositionSetColumnEnabledCommand): void {\n\t\tthis.publishEvents(aggregate, command);\n\t}\n\n\tprivate publishEvents(composition: CompositionAggregate, command: CompositionSetColumnEnabledCommand): void {\n\n\t\tconst events = composition.getEvents() as Array<AggregateEvent<CompositionId>>;\n\n\t\tconst domainEvents = this.compositionEventConverter.convert(events);\n\n\t\tif (domainEvents && domainEvents.length > 0) {\n\t\t\tthis.domainEventPublisher.publish(domainEvents);\n\t\t}\n\t}\n}\n","import { CompositionId } from '../../../api/global/composition.id';\nimport { ChangeSortParams } from '../../../domain/column/sort/change-sort.params';\nimport { CompositionCommand } from '../../composition.command';\n\n\nexport class CompositionChangeSortStatusCommand extends CompositionCommand {\n\n\tconstructor(readonly compositionId: CompositionId,\n\t\t\t\tprivate readonly sortParams: Array<ChangeSortParams>) {\n\t\tsuper(compositionId, 'CompositionChangeSortStatusCommand');\n\t}\n\n\tgetCompositionId(): CompositionId {\n\t\treturn this.compositionId;\n\t}\n\n\tgetSortParams(): Array<ChangeSortParams> {\n\t\treturn this.sortParams;\n\t}\n\n}\n","import { CompositionId } from '../../../api/global/composition.id';\nimport { ActiveColumnEntity } from '../../../domain/column/active/active-column.entity';\nimport { CompositionDomainEvent } from '../../composition.domain-event';\n\n\nexport class CompositionChangeSortStatusEvent extends CompositionDomainEvent {\n\n\tconstructor(aggregateId: CompositionId,\n\t\t\t\tprivate readonly activeColumns: Array<ActiveColumnEntity>) {\n\t\tsuper(aggregateId, activeColumns, 'CompositionChangeSortStatusEvent');\n\t}\n\n\tgetCompositionId(): CompositionId {\n\t\treturn this.getAggregateId();\n\t}\n\n\tgetActiveColumns(): Array<ActiveColumnEntity> {\n\t\treturn this.activeColumns;\n\t}\n\n}\n","import { CommandHandler, CommandType, CoreContainer, DomainEventPublisher } from '@generic-ui/hermes';\nimport { CompositionChangeSortStatusCommand } from './composition-change-sort-status.command';\nimport { CompositionChangeSortStatusEvent } from './composition-change-sort-status.event';\nimport { CompositionAggregate } from '../../../domain/composition.aggregate';\n\n\nexport class CompositionChangeSortStatusCommandHandler implements CommandHandler<CompositionAggregate, CompositionChangeSortStatusCommand> {\n\n\tprivate readonly domainEventPublisher: DomainEventPublisher = CoreContainer.resolve(DomainEventPublisher);\n\n\tforCommand(): CommandType<CompositionChangeSortStatusCommand> {\n\t\treturn CompositionChangeSortStatusCommand;\n\t}\n\n\thandle(composition: CompositionAggregate, command: CompositionChangeSortStatusCommand): void {\n\n\t\tconst sortParams = command.getSortParams();\n\n\t\tcomposition.changeSort(sortParams);\n\t}\n\n\tpublish(composition: CompositionAggregate, command: CompositionChangeSortStatusCommand): void {\n\n\t\tconst compositionId = command.getAggregateId(),\n\t\t\tcolumns = composition.getActiveColumns();\n\n\t\tthis.domainEventPublisher.publish(new CompositionChangeSortStatusEvent(compositionId, columns));\n\t}\n\n}\n","import { CompositionId } from '../../../../api/global/composition.id';\nimport { ColumnId } from '../../../../api/column/column.id';\nimport { CompositionCommand } from '../../../composition.command';\n\nexport class CompositionMoveLeftColumnCommand extends CompositionCommand {\n\n\tconstructor(readonly compositionId: CompositionId,\n\t\t\t\tprivate readonly columnId: ColumnId) {\n\t\tsuper(compositionId, 'CompositionMoveLeftColumnCommand');\n\t}\n\n\tgetColumnId(): ColumnId {\n\t\treturn this.columnId;\n\t}\n\n}\n","import { AggregateEvent, CommandHandler, CommandType, CoreContainer, DomainEventPublisher } from '@generic-ui/hermes';\nimport { CompositionEventConverter } from '../../../composition.event-converter';\nimport { CompositionAggregate } from '../../../../domain/composition.aggregate';\nimport { CompositionMoveLeftColumnCommand } from './composition.move-left-column.command';\nimport { CompositionId } from '../../../../api/global/composition.id';\n\n\nexport class CompositionMoveLeftColumnCommandHandler implements CommandHandler<CompositionAggregate, CompositionMoveLeftColumnCommand> {\n\n\tprivate readonly domainEventPublisher: DomainEventPublisher = CoreContainer.resolve(DomainEventPublisher);\n\n\tconstructor(private readonly compositionEventConverter: CompositionEventConverter) {\n\t}\n\n\tstatic readonly services = [CompositionEventConverter] as const;\n\n\tforCommand(): CommandType<CompositionMoveLeftColumnCommand> {\n\t\treturn CompositionMoveLeftColumnCommand;\n\t}\n\n\thandle(aggregate: CompositionAggregate, command: CompositionMoveLeftColumnCommand): void {\n\n\t\tconst columnId = command.getColumnId();\n\n\t\taggregate.moveLeft(columnId);\n\t}\n\n\tpublish(aggregate: CompositionAggregate, command: CompositionMoveLeftColumnCommand): void {\n\t\tthis.publishEvents(aggregate, command);\n\t}\n\n\tprivate publishEvents(composition: CompositionAggregate, command: CompositionMoveLeftColumnCommand): void {\n\n\t\tconst events = composition.getEvents() as Array<AggregateEvent<CompositionId>>;\n\n\t\tconst domainEvents = this.compositionEventConverter.convert(events);\n\n\t\tif (domainEvents && domainEvents.length > 0) {\n\t\t\tthis.domainEventPublisher.publish(domainEvents);\n\t\t}\n\t}\n}\n","import { CompositionId } from '../../../../api/global/composition.id';\nimport { ColumnId } from '../../../../api/column/column.id';\nimport { CompositionCommand } from '../../../composition.command';\n\nexport class CompositionMoveRightColumnCommand extends CompositionCommand {\n\n\tconstructor(compositionId: CompositionId,\n\t\t\t\tprivate readonly columnId: ColumnId) {\n\t\tsuper(compositionId, 'CompositionMoveRightColumnCommand');\n\t}\n\n\tgetColumnId(): ColumnId {\n\t\treturn this.columnId;\n\t}\n\n}\n","import { AggregateEvent, CommandHandler, CommandType, CoreContainer, DomainEventPublisher } from '@generic-ui/hermes';\nimport { CompositionEventConverter } from '../../../composition.event-converter';\nimport { CompositionAggregate } from '../../../../domain/composition.aggregate';\nimport { CompositionMoveRightColumnCommand } from './composition.move-right-column.command';\nimport { CompositionId } from '../../../../api/global/composition.id';\n\n\nexport class CompositionMoveRightColumnCommandHandler implements CommandHandler<CompositionAggregate, CompositionMoveRightColumnCommand> {\n\n\tprivate readonly domainEventPublisher: DomainEventPublisher = CoreContainer.resolve(DomainEventPublisher);\n\n\tconstructor(private readonly compositionEventConverter: CompositionEventConverter) {\n\t}\n\n\tstatic readonly services = [CompositionEventConverter] as const;\n\n\tforCommand(): CommandType<CompositionMoveRightColumnCommand> {\n\t\treturn CompositionMoveRightColumnCommand;\n\t}\n\n\thandle(aggregate: CompositionAggregate, command: CompositionMoveRightColumnCommand): void {\n\n\t\tconst columnId = command.getColumnId();\n\n\t\taggregate.moveRight(columnId);\n\t}\n\n\tpublish(aggregate: CompositionAggregate, command: CompositionMoveRightColumnCommand): void {\n\t\tthis.publishEvents(aggregate, command);\n\t}\n\n\tprivate publishEvents(composition: CompositionAggregate, command: CompositionMoveRightColumnCommand): void {\n\n\t\tconst events = composition.getEvents() as Array<AggregateEvent<CompositionId>>;\n\n\t\tconst domainEvents = this.compositionEventConverter.convert(events);\n\n\t\tif (domainEvents && domainEvents.length > 0) {\n\t\t\tthis.domainEventPublisher.publish(domainEvents);\n\t\t}\n\t}\n}\n","import { CompositionId } from '../../../../../composition/src/api/global/composition.id';\nimport { FieldId } from '../../../../field/src/domain/field/field.id';\nimport { StructureId } from '../../../../structure-core/src/api/global/structure.id';\nimport { StructureDomainEvent } from '../../../../structure-core/src/core/structure.domain-event';\n\n\nexport class SortToggledEvent extends StructureDomainEvent {\n\n\tconstructor(aggregateId: StructureId,\n\t\t\t\tprivate readonly compositionId: CompositionId,\n\t\t\t\tprivate readonly directions: Array<{ fieldId: FieldId, direction: boolean }>) {\n\t\tsuper(aggregateId, { compositionId, directions }, 'SortToggledEvent');\n\t}\n\n\tgetCompositionId(): CompositionId {\n\t\treturn this.compositionId;\n\t}\n\n\tgetDirections(): any {\n\t\treturn this.directions;\n\t}\n}\n","import { CompositionId } from '../../api/global/composition.id';\nimport { CompositionCommand } from '../composition.command';\n\n\nexport class CreateCompositionCommand extends CompositionCommand {\n\n\tconstructor(private readonly compositionId: CompositionId) {\n\t\tsuper(compositionId, 'CreateCompositionCommand');\n\t}\n\n}\n","import { CompositionId } from '../../../api/global/composition.id';\n\nimport { CompositionCommand } from '../../composition.command';\nimport { ColumnConfig, MultiColumnConfig } from '../../../api/column/column.config';\n\n\nexport class SetGroupsCommand extends CompositionCommand {\n\n\tconstructor(readonly compositionId: CompositionId,\n\t\t\t\tprivate readonly configs: Array<ColumnConfig | MultiColumnConfig>) {\n\t\tsuper(compositionId, 'SetGroupsCommand');\n\t}\n\n\tgetConfigs(): Array<ColumnConfig | MultiColumnConfig> {\n\t\treturn this.configs;\n\t}\n\n}\n","import { CommandDispatcher, CoreContainer } from '@generic-ui/hermes';\n\nimport { CompositionId } from '../api/global/composition.id';\nimport { CreateCompositionCommand } from './create/create-composition.command';\nimport { ColumnParams } from './column/set-columns/column.params';\nimport { SetColumnsCommand } from './column/set-columns/set-columns.command';\nimport { SetCompositionWidthCommand } from './width/set-width/set-composition-width.command';\nimport { SetCompositionContainerWidthCommand } from './width/set-container-width/set-composition-container-width.command';\nimport { SetCompositionResizeWidthCommand } from './width/resize-width/set-composition-resize-width.command';\nimport { ChangeSortParams } from '../domain/column/sort/change-sort.params';\nimport { CompositionChangeSortStatusCommand } from './column/sort/composition-change-sort-status.command';\nimport { ColumnId } from '../api/column/column.id';\nimport { CompositionSetColumnEnabledCommand } from './column/set-enabled/composition.set-column-enabled.command';\nimport { CompositionMoveLeftColumnCommand } from './column/move/left/composition.move-left-column.command';\nimport { CompositionMoveRightColumnCommand } from './column/move/right/composition.move-right-column.command';\nimport { SetGroupsCommand } from './group/set-groups/set-groups.command';\n\n\nexport class CompositionDispatcher {\n\n\tprivate readonly commandDispatcher: CommandDispatcher = CoreContainer.resolve(CommandDispatcher);\n\n\tcreate(compositionId: CompositionId): void {\n\t\tthis.commandDispatcher.dispatch(new CreateCompositionCommand(compositionId));\n\t}\n\n\tsetColumns(compositionId: CompositionId, params: Array<ColumnParams>): void {\n\t\tthis.commandDispatcher.dispatch(new SetColumnsCommand(compositionId, params));\n\t}\n\n\tsetGroups(compositionId: CompositionId, params: any): void {\n\t\tthis.commandDispatcher.dispatch(new SetGroupsCommand(compositionId, params));\n\t}\n\n\tsetWidth(compositionId: CompositionId, width: number): void {\n\t\tthis.commandDispatcher.dispatch(new SetCompositionWidthCommand(compositionId, width));\n\t}\n\n\tsetContainerWidth(compositionId: CompositionId, width: number): void {\n\t\tthis.commandDispatcher.dispatch(new SetCompositionContainerWidthCommand(compositionId, width));\n\t}\n\n\tsetResizeWidth(compositionId: CompositionId, enabled: boolean): void {\n\t\tthis.commandDispatcher.dispatch(new SetCompositionResizeWidthCommand(compositionId, enabled));\n\t}\n\n\tchangeSort(compositionId: CompositionId, params: Array<ChangeSortParams>): void {\n\t\tthis.commandDispatcher.dispatch(new CompositionChangeSortStatusCommand(compositionId, params));\n\t}\n\n\tsetColumnEnabled(compositionId: CompositionId, columnId: ColumnId, enabled: boolean): void {\n\t\tthis.commandDispatcher.dispatch(new CompositionSetColumnEnabledCommand(compositionId, columnId, enabled));\n\t}\n\n\tmoveLeft(compositionId: CompositionId, columnId: ColumnId): void {\n\t\tthis.commandDispatcher.dispatch(new CompositionMoveLeftColumnCommand(compositionId, columnId));\n\t}\n\n\tmoveRight(compositionId: CompositionId, columnId: ColumnId): void {\n\t\tthis.commandDispatcher.dispatch(new CompositionMoveRightColumnCommand(compositionId, columnId));\n\t}\n\n}\n","import { ColumnFieldId } from '../field/column-field.id';\n\nexport class ChangeSortParams {\n\n\tconstructor(public readonly fieldId: ColumnFieldId,\n\t\t\t\tpublic readonly direction: boolean) {\n\t}\n\n}\n","import { CompositionId } from '../../../../../composition/src/api/global/composition.id';\nimport { FieldId } from '../../../../field/src/domain/field/field.id';\nimport { StructureId } from '../../../../structure-core/src/api/global/structure.id';\nimport { StructureDomainEvent } from '../../../../structure-core/src/core/structure.domain-event';\n\nexport class SortOrderSetEvent extends StructureDomainEvent {\n\n\tconstructor(aggregateId: StructureId,\n\t\t\t\tprivate readonly compositionId: CompositionId,\n\t\t\t\tprivate readonly directions: Array<{ fieldId: FieldId, direction: boolean }>) {\n\t\tsuper(aggregateId, { compositionId, directions }, 'SortOrderSetEvent');\n\t}\n\n\tgetCompositionId(): CompositionId {\n\t\treturn this.compositionId;\n\t}\n\n\tgetDirections(): any {\n\t\treturn this.directions;\n\t}\n}\n","import { DomainEventType, MultiDomainEventHandler } from '@generic-ui/hermes';\n\nimport { SortToggledEvent } from '../../../../../structure/sorting/src/core/toggle/sort-toggled.event';\n\nimport { CompositionDispatcher } from '../../composition.dispatcher';\nimport { ColumnFieldId } from '../../../domain/column/field/column-field.id';\nimport { ChangeSortParams } from '../../../domain/column/sort/change-sort.params';\nimport { SortOrderSetEvent } from '../../../../../structure/sorting/src/core/order/sort-order-set.event';\nimport { CompositionId } from '../../../api/global/composition.id';\n\nexport type CompositionChangeSortStatusEventType = SortToggledEvent | SortOrderSetEvent;\n\n\nexport class CompositionChangeSortStatusEventHandler implements MultiDomainEventHandler<CompositionId, CompositionChangeSortStatusEventType> {\n\n\tconstructor(private readonly compositionDispatcher: CompositionDispatcher) {\n\t}\n\n\tstatic readonly services = [CompositionDispatcher];\n\n\tforEvents(): Array<DomainEventType<CompositionChangeSortStatusEventType>> {\n\t\treturn [\n\t\t\tSortToggledEvent,\n\t\t\tSortOrderSetEvent\n\t\t];\n\t}\n\n\thandle(event: CompositionChangeSortStatusEventType): void {\n\n\t\tif (event.ofMessageType('SortToggledEvent')) {\n\n\t\t\tconst compositionId = event.getCompositionId(),\n\t\t\t\tdirs = event.getDirections();\n\n\t\t\tconst params = dirs.map((dir: any) => {\n\n\t\t\t\tconst columnFieldId = new ColumnFieldId(dir.fieldId.getId());\n\n\t\t\t\treturn new ChangeSortParams(columnFieldId, dir.direction);\n\t\t\t});\n\n\t\t\tthis.compositionDispatcher.changeSort(compositionId, params);\n\t\t}\n\n\t\tif (event.ofMessageType('SortOrderSetEvent')) {\n\n\t\t\tconst compositionId = event.getCompositionId(),\n\t\t\t\tdirs = event.getDirections();\n\n\t\t\tconst params = dirs.map((dir: any) => {\n\n\t\t\t\tconst columnFieldId = new ColumnFieldId(dir.fieldId.getId());\n\n\t\t\t\treturn new ChangeSortParams(columnFieldId, dir.direction);\n\t\t\t});\n\n\t\t\tthis.compositionDispatcher.changeSort(compositionId, params);\n\t\t}\n\t}\n\n\n}\n","import { CellView } from './cell-view';\nimport { DataType } from '../../../../structure/field/src/domain/field/data/data-type';\n\nexport class ViewEntity {\n\n\tprivate readonly view: CellView;\n\n\tprivate readonly templateFunction?: (entity: any, item: any) => string = (cellValue: any, item: any) => cellValue;\n\n\tconstructor(cellView: CellView | any) {\n\n\t\tif (typeof cellView === 'function') {\n\t\t\tthis.view = CellView.FUNCTION;\n\t\t\tthis.templateFunction = cellView;\n\t\t} else {\n\t\t\tthis.view = cellView;\n\t\t}\n\t}\n\n\tstatic fromDataType(dataType: DataType): ViewEntity {\n\n\t\tif (dataType === DataType.DATE) {\n\t\t\treturn new ViewEntity(CellView.DATE);\n\t\t} else {\n\t\t\treturn new ViewEntity(CellView.TEXT);\n\t\t}\n\n\t}\n\n\tgetCellView(): CellView {\n\t\treturn this.view;\n\t}\n\n\tgetTemplateFunction(): any {\n\t\treturn this.templateFunction;\n\t}\n\n}\n","import { Entity } from '@generic-ui/hermes';\n\nimport { ColumnId } from '../../api/column/column.id';\nimport { ColumnField } from './field/column-field';\nimport { ColumnConfig, HeaderTemplate } from '../../api/column/column.config';\nimport { ColumnAlign } from './column-align';\nimport { ViewEntity } from './view.entity';\nimport { DataType } from '../../../../structure/field/src/domain/field/data/data-type';\nimport { CellView } from './cell-view';\nimport { ColumnPresentation } from './presentation/column.presentation';\n\nexport abstract class AbstractColumnEntity extends Entity<ColumnId> {\n\n\tprivate readonly columnField: ColumnField;\n\n\tprivate header?: string | HeaderTemplate;\n\n\tprivate width?: number;\n\n\tprivate readonly columnConfig: ColumnConfig;\n\n\tprotected view: ViewEntity;\n\n\tprotected align: ColumnAlign;\n\n\tprotected presentation: ColumnPresentation;\n\n\tprotected constructor(columnId: ColumnId,\n\t\t\t\t\t\t  columnField: ColumnField,\n\t\t\t\t\t\t  columnConfig: ColumnConfig,\n\t\t\t\t\t\t  presentation: ColumnPresentation,\n\t\t\t\t\t\t  header?: string | HeaderTemplate,\n\t\t\t\t\t\t  align?: ColumnAlign,\n\t\t\t\t\t\t  view?: ViewEntity,\n\t\t\t\t\t\t  width?: number) {\n\t\tsuper(columnId);\n\t\tthis.columnField = columnField;\n\t\tthis.columnConfig = columnConfig;\n\t\tthis.presentation = presentation;\n\n\t\tthis.view = ViewEntity.fromDataType(columnField.getDataType());\n\n\t\tif (header) {\n\t\t\tthis.header = header;\n\t\t}\n\n\t\tif (view) {\n\t\t\tthis.view = view;\n\t\t}\n\n\t\tif (width) {\n\t\t\tthis.width = width;\n\t\t}\n\n\t\tthis.setInitialAlign(columnField, align);\n\t}\n\n\tgetPresentation(): ColumnPresentation {\n\t\treturn this.presentation;\n\t}\n\n\tgetColumnConfig(): ColumnConfig {\n\t\treturn this.columnConfig;\n\t}\n\n\tgetField(): ColumnField {\n\t\treturn this.columnField;\n\t}\n\n\tgetHeader(): string | HeaderTemplate {\n\t\treturn this.header;\n\t}\n\n\tgetDataType(): DataType {\n\t\treturn this.columnField.getDataType();\n\t}\n\n\tgetCellView(): CellView {\n\t\treturn this.view.getCellView();\n\t}\n\n\tgetTemplateFunction(): any {\n\t\treturn this.view.getTemplateFunction();\n\t}\n\n\tgetFormatterFunction(): any {\n\t\treturn this.columnConfig.formatter;\n\t}\n\n\tsetView(view: ViewEntity): void {\n\t\tthis.view = view;\n\t}\n\n\tsetHeader(header: string | HeaderTemplate): void {\n\t\tthis.header = header;\n\t}\n\n\tgetView(): ViewEntity {\n\t\treturn this.view;\n\t}\n\n\tgetAlign(): ColumnAlign {\n\t\treturn this.align;\n\t}\n\n\tsetWidth(width: number): void {\n\t\tthis.width = width;\n\t}\n\n\tgetWidth(): number {\n\t\treturn this.width;\n\t}\n\n\tisSortingEnabled(): boolean {\n\t\tconst config = this.columnConfig;\n\n\t\tif (config.sorting !== undefined && config.sorting !== null) {\n\n\t\t\tif (config.sorting.enabled === undefined || config.sorting.enabled === null) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\treturn config.sorting.enabled;\n\t\t}\n\n\t\treturn true;\n\t}\n\n\tisCellEditingEnabled(): boolean {\n\t\tconst config = this.columnConfig;\n\n\t\tif (config.cellEditing !== undefined && config.cellEditing !== null) {\n\n\t\t\tif (config.cellEditing.enabled === undefined || config.cellEditing.enabled === null) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\treturn config.cellEditing.enabled;\n\t\t}\n\n\t\treturn true;\n\t}\n\n\tprivate setInitialAlign(columnField: ColumnField, align?: ColumnAlign): void {\n\n\t\tif (align !== undefined && align !== null) {\n\t\t\tthis.align = align;\n\t\t} else if (columnField.getDataType() === DataType.NUMBER) {\n\t\t\tthis.align = ColumnAlign.RIGHT;\n\t\t} else {\n\t\t\tthis.align = ColumnAlign.LEFT;\n\t\t}\n\t}\n\n}\n","import { ColumnId } from '../../api/column/column.id';\nimport { ColumnField } from './field/column-field';\nimport { ColumnConfig, HeaderTemplate } from '../../api/column/column.config';\nimport { SortOrder } from './sort/sort-order';\nimport { ViewEntity } from './view.entity';\nimport { ColumnAlign } from './column-align';\nimport { AbstractColumnEntity } from './abstract-column.entity';\nimport { ColumnPresentation } from './presentation/column.presentation';\n\n\nexport class ColumnEntity extends AbstractColumnEntity {\n\n\tsortable?: boolean;\n\n\tprivate sortStatus = SortOrder.NONE;\n\n\tprivate enabled: boolean = true;\n\n\tconstructor(columnId: ColumnId,\n\t\t\t\tcolumnField: ColumnField,\n\t\t\t\tcolumnConfig: ColumnConfig,\n\t\t\t\tenabled: boolean,\n\t\t\t\tpresentation: ColumnPresentation,\n\t\t\t\theader: string | HeaderTemplate,\n\t\t\t\talign: ColumnAlign,\n\t\t\t\tview: ViewEntity,\n\t\t\t\twidth: number) {\n\t\tsuper(\n\t\t\tcolumnId,\n\t\t\tcolumnField,\n\t\t\tcolumnConfig,\n\t\t\tpresentation,\n\t\t\theader,\n\t\t\talign,\n\t\t\tview,\n\t\t\twidth\n\t\t);\n\n\t\tthis.enabled = enabled;\n\n\t\tif (view === undefined) {\n\t\t\tthis.view = new ViewEntity(this.presentation.getDefaultView());\n\t\t}\n\n\t\tif (align === undefined) {\n\t\t\tthis.align = this.presentation.getDefaultAlign(this.view);\n\t\t}\n\t}\n\n\tisEnabled(): boolean {\n\t\treturn this.enabled;\n\t}\n\n\tsetEnabled(enabled: boolean): void {\n\t\tthis.enabled = enabled;\n\t}\n\n\tgetSortStatus(): SortOrder {\n\t\treturn this.sortStatus;\n\t}\n\n\tsetSortStatus(status: SortOrder): void {\n\t\tthis.sortStatus = status;\n\t}\n\n}\n","import { EntityId } from '@generic-ui/hermes';\n\nexport class ColumnId extends EntityId {\n\n\tconstructor(id: string) {\n\t\tsuper(id);\n\t}\n\n\ttoString(): string {\n\t\treturn this.getId();\n\t}\n}\n","import { CellView } from '../cell-view';\nimport { ColumnAlign } from '../column-align';\nimport { ViewEntity } from '../view.entity';\n\nexport abstract class ColumnPresentation {\n\n\tabstract getPossibleViews(): Array<CellView>;\n\n\tabstract getDefaultView(): CellView;\n\n\tabstract getDefaultAlign(view: ViewEntity): ColumnAlign;\n}\n","import { ColumnPresentation } from '../column.presentation';\nimport { ColumnAlign } from '../../column-align';\nimport { CellView } from '../../cell-view';\nimport { ViewEntity } from '../../view.entity';\n\n\nexport class NumberColumnPresentation extends ColumnPresentation {\n\n\tprivate static instance: NumberColumnPresentation = null;\n\n\tprivate constructor() {\n\t\tsuper();\n\t}\n\n\tstatic getInstance(): NumberColumnPresentation {\n\t\tif (!NumberColumnPresentation.instance) {\n\t\t\tNumberColumnPresentation.instance = new NumberColumnPresentation();\n\t\t}\n\t\treturn NumberColumnPresentation.instance;\n\t}\n\n\tgetPossibleViews(): Array<CellView> {\n\t\treturn [\n\t\t\tCellView.TEXT,\n\t\t\tCellView.BAR,\n\t\t\tCellView.PERCENTAGE_BAR,\n\t\t\tCellView.PERCENTAGE\n\t\t];\n\t}\n\n\tgetDefaultView(): CellView {\n\t\treturn CellView.NUMBER;\n\t}\n\n\tgetDefaultAlign(view: ViewEntity): ColumnAlign {\n\t\treturn ColumnAlign.RIGHT;\n\t}\n}\n","import { ColumnPresentation } from '../column.presentation';\nimport { ColumnAlign } from '../../column-align';\nimport { CellView } from '../../cell-view';\nimport { ViewEntity } from '../../view.entity';\n\n\nexport class BooleanColumnPresentation extends ColumnPresentation {\n\n\tprivate static instance: BooleanColumnPresentation = null;\n\n\tprivate constructor() {\n\t\tsuper();\n\t}\n\n\tstatic getInstance(): BooleanColumnPresentation {\n\t\tif (!BooleanColumnPresentation.instance) {\n\t\t\tBooleanColumnPresentation.instance = new BooleanColumnPresentation();\n\t\t}\n\t\treturn BooleanColumnPresentation.instance;\n\t}\n\n\tgetPossibleViews(): Array<CellView> {\n\t\treturn [\n\t\t\tCellView.TEXT,\n\t\t\tCellView.ITALIC,\n\t\t\tCellView.CHIP,\n\t\t\tCellView.BOLD,\n\t\t\tCellView.CHECKBOX\n\t\t];\n\t}\n\n\tgetDefaultView(): CellView {\n\t\treturn CellView.TEXT;\n\t}\n\n\tgetDefaultAlign(view: ViewEntity): ColumnAlign {\n\n\t\tif (view.getCellView() === CellView.CHECKBOX) {\n\t\t\treturn ColumnAlign.CENTER;\n\t\t} else {\n\t\t\treturn ColumnAlign.LEFT;\n\t\t}\n\n\t}\n}\n","import { ColumnPresentation } from '../column.presentation';\nimport { ColumnAlign } from '../../column-align';\nimport { CellView } from '../../cell-view';\n\n\nexport class DateColumnPresentation extends ColumnPresentation {\n\n\tstatic getInstance(): DateColumnPresentation {\n\t\tif (!DateColumnPresentation.instance) {\n\t\t\tDateColumnPresentation.instance = new DateColumnPresentation();\n\t\t}\n\t\treturn DateColumnPresentation.instance;\n\t}\n\n\tprivate static instance: DateColumnPresentation = null;\n\n\tprivate constructor() {\n\t\tsuper();\n\t}\n\n\tgetPossibleViews(): Array<CellView> {\n\t\treturn [\n\t\t\tCellView.DATE,\n\t\t\tCellView.TEXT,\n\t\t\tCellView.ITALIC,\n\t\t\tCellView.BOLD,\n\t\t\tCellView.CHIP\n\t\t];\n\t}\n\n\tgetDefaultView(): CellView {\n\t\treturn CellView.DATE;\n\t}\n\n\tgetDefaultAlign(): ColumnAlign {\n\t\treturn ColumnAlign.LEFT;\n\t}\n}\n","import { ColumnPresentation } from '../column.presentation';\nimport { ColumnAlign } from '../../column-align';\nimport { CellView } from '../../cell-view';\n\n\nexport class StringColumnPresentation extends ColumnPresentation {\n\n\tprivate static instance: StringColumnPresentation = null;\n\n\tprivate constructor() {\n\t\tsuper();\n\t}\n\n\tstatic getInstance(): StringColumnPresentation {\n\t\tif (!StringColumnPresentation.instance) {\n\t\t\tStringColumnPresentation.instance = new StringColumnPresentation();\n\t\t}\n\t\treturn StringColumnPresentation.instance;\n\t}\n\n\tgetPossibleViews(): Array<CellView> {\n\t\treturn [\n\t\t\tCellView.TEXT,\n\t\t\tCellView.ITALIC,\n\t\t\tCellView.BOLD,\n\t\t\tCellView.IMAGE,\n\t\t\tCellView.LINK,\n\t\t\tCellView.CHIP\n\t\t];\n\t}\n\n\tgetDefaultView(): CellView {\n\t\treturn CellView.TEXT;\n\t}\n\n\tgetDefaultAlign(): ColumnAlign {\n\t\treturn ColumnAlign.LEFT;\n\t}\n}\n","import { ColumnPresentation } from '../column.presentation';\nimport { ColumnAlign } from '../../column-align';\nimport { CellView } from '../../cell-view';\n\n\nexport class UnknownColumnPresentation extends ColumnPresentation {\n\n\tprivate static instance: UnknownColumnPresentation = null;\n\n\tprivate constructor() {\n\t\tsuper();\n\t}\n\n\tstatic getInstance(): UnknownColumnPresentation {\n\t\tif (!UnknownColumnPresentation.instance) {\n\t\t\tUnknownColumnPresentation.instance = new UnknownColumnPresentation();\n\t\t}\n\t\treturn UnknownColumnPresentation.instance;\n\t}\n\n\tgetPossibleViews(): Array<CellView> {\n\t\treturn [\n\t\t\tCellView.TEXT\n\t\t];\n\t}\n\n\tgetDefaultView(): CellView {\n\t\treturn CellView.TEXT;\n\t}\n\n\tgetDefaultAlign(): ColumnAlign {\n\t\treturn ColumnAlign.LEFT;\n\t}\n}\n","import { DataType } from '../../../../../structure/field/src/domain/field/data/data-type';\n\nimport { ColumnPresentation } from './column.presentation';\nimport { NumberColumnPresentation } from './data-type/number-column.presentation';\nimport { BooleanColumnPresentation } from './data-type/boolean-column.presentation';\nimport { DateColumnPresentation } from './data-type/date-column.presentation';\nimport { StringColumnPresentation } from './data-type/string-column.presentation';\nimport { UnknownColumnPresentation } from './data-type/unknown-column.presentation';\n\n\nexport class ColumnPresentationConverter {\n\n\tconvert(dataType: DataType): ColumnPresentation {\n\n\t\tif (dataType === DataType.NUMBER) {\n\t\t\treturn NumberColumnPresentation.getInstance();\n\t\t} else if (dataType === DataType.BOOLEAN) {\n\t\t\treturn BooleanColumnPresentation.getInstance();\n\t\t} else if (dataType === DataType.DATE) {\n\t\t\treturn DateColumnPresentation.getInstance();\n\t\t} else if (dataType === DataType.STRING) {\n\t\t\treturn StringColumnPresentation.getInstance();\n\t\t} else {\n\t\t\treturn UnknownColumnPresentation.getInstance();\n\t\t}\n\t}\n\n}\n","import { RandomStringGenerator } from '@generic-ui/hermes';\n\nimport { ColumnParams } from '../../core/column/set-columns/column.params';\nimport { ColumnEntity } from './column.entity';\nimport { ColumnConfig } from '../../api/column/column.config';\nimport { ColumnField } from './field/column-field';\nimport { ViewEntity } from './view.entity';\nimport { ColumnId } from '../../api/column/column.id';\nimport { DataType } from '../../../../structure/field/src/domain/field/data/data-type';\nimport { ColumnPresentation } from './presentation/column.presentation';\nimport { ColumnPresentationConverter } from './presentation/column.presentation.converter';\n\n\nexport class ColumnEntityFactory {\n\n\tconstructor(private readonly columnPresentationConverter: ColumnPresentationConverter) {\n\t}\n\n\tstatic readonly services = [ColumnPresentationConverter];\n\n\tcreate(params: ColumnParams): ColumnEntity;\n\tcreate(params: Array<ColumnParams>): Array<ColumnEntity>;\n\tcreate(source: ColumnParams | Array<ColumnParams>): ColumnEntity | Array<ColumnEntity> {\n\n\t\tif (Array.isArray(source)) {\n\t\t\treturn this.createColumns(source);\n\t\t} else {\n\t\t\treturn this.createColumn(source);\n\t\t}\n\t}\n\n\tprivate createColumn(params: ColumnParams): ColumnEntity {\n\n\t\tconst columnConfig: ColumnConfig = params.getColumn(),\n\t\t\tfield: ColumnField = params.getField(),\n\t\t\tdataType = field.getDataType(),\n\t\t\twidth = this.convertWidth(columnConfig.width) || undefined;\n\n\t\tlet view: ViewEntity,\n\t\t\tenabled: boolean;\n\n\t\tif (columnConfig.view !== undefined) {\n\t\t\tview = new ViewEntity(columnConfig.view);\n\t\t}\n\n\t\tif (columnConfig.enabled !== undefined) {\n\t\t\tenabled = columnConfig.enabled;\n\t\t} else {\n\t\t\tenabled = true;\n\t\t}\n\n\t\tconst presentation = this.getPresentation(dataType);\n\n\t\tconst columnEntity = new ColumnEntity(\n\t\t\tnew ColumnId(RandomStringGenerator.generate()),\n\t\t\tfield,\n\t\t\tcolumnConfig,\n\t\t\tenabled,\n\t\t\tpresentation,\n\t\t\tundefined,\n\t\t\tcolumnConfig.align,\n\t\t\tview,\n\t\t\twidth\n\t\t);\n\n\t\tif (columnConfig.header !== undefined) {\n\t\t\tcolumnEntity.setHeader(columnConfig.header);\n\t\t}\n\n\t\treturn columnEntity;\n\t}\n\n\tprivate createColumns(columns: Array<ColumnParams>): Array<ColumnEntity> {\n\n\t\tconst columnEntities = [] as Array<ColumnEntity>;\n\n\t\tcolumns.forEach((column: ColumnParams) => {\n\t\t\tcolumnEntities.push(this.createColumn(column));\n\t\t});\n\n\t\treturn columnEntities;\n\t}\n\n\tprivate convertWidth(width: string | number): number {\n\t\treturn +width;\n\t}\n\n\tprivate getPresentation(dataType: DataType): ColumnPresentation {\n\n\t\treturn this.columnPresentationConverter.convert(dataType);\n\t}\n}\n","import { GroupId } from './group.id';\n\nexport class Group {\n\n\tconstructor(public readonly id: GroupId,\n\t\t\t\tpublic readonly header: string,\n\t\t\t\tpublic readonly width: number) {\n\t}\n\n}\n","import { HermesId } from '@generic-ui/hermes';\n\nexport class GroupId extends HermesId<string> {\n\n\tconstructor(id: string) {\n\t\tsuper(id);\n\t}\n\n\ttoString(): string {\n\t\treturn this.getId();\n\t}\n\n}\n","import { RandomStringGenerator } from '@generic-ui/hermes';\n\nimport { Group } from '../../api/group/group';\nimport { GroupId } from '../../api/group/group.id';\n\n\nexport class CompositionGroupFactory {\n\n\tcreate(config: any): Group {\n\t\treturn new Group(\n\t\t\tnew GroupId(RandomStringGenerator.generate()),\n\t\t\tconfig.header,\n\t\t\tconfig.width\n\t\t);\n\t}\n\n}\n","import { AggregateEvent, CommandHandler, CommandType, CoreContainer, DomainEventPublisher } from '@generic-ui/hermes';\nimport { CompositionEventConverter } from '../../composition.event-converter';\nimport { CompositionAggregate } from '../../../domain/composition.aggregate';\n\nimport { SetGroupsCommand } from './set-groups.command';\nimport { CompositionId } from '../../../api/global/composition.id';\nimport { ColumnConfig, MultiColumnConfig } from '../../../api/column/column.config';\n\n\nexport class SetGroupsCommandHandler implements CommandHandler<CompositionAggregate, SetGroupsCommand> {\n\n\tprivate readonly domainEventPublisher: DomainEventPublisher = CoreContainer.resolve(DomainEventPublisher);\n\n\tconstructor(private readonly compositionEventConverter: CompositionEventConverter) {\n\t}\n\n\tstatic readonly services = [CompositionEventConverter];\n\n\tforCommand(): CommandType<SetGroupsCommand> {\n\t\treturn SetGroupsCommand;\n\t}\n\n\thandle(aggregate: CompositionAggregate, command: SetGroupsCommand): void {\n\n\t\tconst groupConfigs: Array<ColumnConfig | MultiColumnConfig> = command.getConfigs();\n\n\t\taggregate.setGroups(groupConfigs);\n\t}\n\n\tpublish(aggregate: CompositionAggregate, command: SetGroupsCommand): void {\n\t\tthis.publishEvents(aggregate, command);\n\t}\n\n\tprivate publishEvents(composition: CompositionAggregate, command: SetGroupsCommand): void {\n\n\t\tconst events = composition.getEvents() as Array<AggregateEvent<CompositionId>>;\n\n\t\tconst domainEvents = this.compositionEventConverter.convert(events);\n\n\t\tthis.domainEventPublisher.publish(domainEvents);\n\t}\n}\n","import { ColumnId } from '../../api/column/column.id';\n\nexport class ColumnHighlightManager {\n\n\tprivate enabled = true;\n\n\tprivate highlightedColumns: Set<string> = new Set(); // should be set of ColumnId\n\n\tisHighlighted(columnId: ColumnId): boolean {\n\t\treturn this.highlightedColumns.has(columnId.toString());\n\t}\n\n\ttoggle(columnId: ColumnId): void {\n\t\tif (this.highlightedColumns.has(columnId.toString())) {\n\t\t\tthis.highlightedColumns.delete(columnId.toString());\n\t\t} else {\n\t\t\tthis.highlightedColumns.add(columnId.toString());\n\t\t}\n\t}\n\n\tremove(columnId: ColumnId): void {\n\t\tthis.highlightedColumns.delete(columnId.toString());\n\t}\n}\n","import { AggregateArchive } from '@generic-ui/hermes';\nimport { ColumnHighlightManager } from './column-highlight.manager';\nimport { CompositionId } from '../../api/global/composition.id';\nimport { ColumnId } from '../../api/column/column.id';\n\n\nexport class ColumnHighlightArchive extends AggregateArchive<ColumnHighlightManager> {\n\n\tconstructor() {\n\t\tsuper(new ColumnHighlightManager());\n\t}\n\n\ttoggle(key: CompositionId, value: ColumnId) {\n\t\tthis.find(key)\n\t\t\t.ifPresent((manager) => {\n\t\t\t\tmanager.toggle(value);\n\t\t\t\tthis.next(key, manager);\n\t\t\t});\n\t}\n\n\tprotected override equals(a: ColumnHighlightManager, b: ColumnHighlightManager): boolean {\n\t\treturn false;\n\t}\n\n\tprotected override createDefaultValue(defaultValue: ColumnHighlightManager): ColumnHighlightManager {\n\t\treturn new ColumnHighlightManager();\n\t}\n\n}\n","import { InMemoryStore } from '@generic-ui/hermes';\n\nimport { CompositionAggregate } from '../domain/composition.aggregate';\nimport { CompositionId } from '../api/global/composition.id';\n\n\nexport class InMemoryCompositionStore extends InMemoryStore<CompositionId, CompositionAggregate> {\n}\n","import { InMemoryAggregateStore } from '@generic-ui/hermes';\n\nimport { CompositionAggregate } from '../../domain/composition.aggregate';\n\nimport { InMemoryCompositionStore } from '../in-memory.composition.store';\nimport { CompositionId } from '../../api/global/composition.id';\n\n\nexport class InMemoryCompositionAggregateStore extends InMemoryAggregateStore<CompositionId, CompositionAggregate> {\n\n\tconstructor(inMemoryCompositionStore: InMemoryCompositionStore) {\n\t\tsuper(inMemoryCompositionStore);\n\t}\n\n\tstatic readonly services = [InMemoryCompositionStore];\n\n}\n","import { AggregateRepository, Optional } from '@generic-ui/hermes';\n\nimport { CompositionId } from '../api/global/composition.id';\nimport { CompositionAggregate } from '../domain/composition.aggregate';\n\n\nexport abstract class CompositionAggregateRepository extends AggregateRepository<CompositionId, CompositionAggregate> {\n\n\tabstract findById(compositionId: CompositionId): Optional<CompositionAggregate>;\n\n\tabstract save(aggregate: CompositionAggregate): void;\n\n}\n","import { AggregateId, Optional } from '@generic-ui/hermes';\n\nimport { CompositionAggregateRepository } from '../../core/composition.aggregate-repository';\nimport { InMemoryCompositionAggregateStore } from './in-memory.composition.aggregate-store';\nimport { CompositionAggregate } from '../../domain/composition.aggregate';\n\n\nexport class InMemoryCompositionAggregateRepository extends CompositionAggregateRepository {\n\n\tconstructor(private readonly inMemoryCompositionAggregateStore: InMemoryCompositionAggregateStore) {\n\t\tsuper();\n\t}\n\n\tstatic readonly services = [InMemoryCompositionAggregateStore];\n\n\tfindById(aggregateId: AggregateId): Optional<CompositionAggregate> {\n\t\treturn this.inMemoryCompositionAggregateStore.findById(aggregateId);\n\t}\n\n\tsave(aggregate: CompositionAggregate): void {\n\t\tthis.inMemoryCompositionAggregateStore.save(aggregate);\n\t}\n\n}\n","import { CellValue } from './cell-value';\n\nexport class CellContext {\n\n\tconstructor(public element: CellValue) {\n\t}\n}\n","import { ReadModelEntity } from '@generic-ui/hermes';\n\nimport { ColumnField } from '../../domain/column/field/column-field';\nimport { SortOrder } from '../../domain/column/sort/sort-order';\nimport { ColumnConfig, HeaderTemplate } from '../../api/column/column.config';\nimport { CellTemplateWithContext } from './cell-template-with-context';\nimport { CellContext } from './cell-context';\nimport { FieldId } from '../../../../structure/field/src/domain/field/field.id';\nimport { CellTemplateWithAccessor } from './cell-template-with-accessor';\nimport { DataType } from '../../../../structure/field/src/domain/field/data/data-type';\nimport { ViewEntity } from '../../domain/column/view.entity';\nimport { ColumnAlign } from '../../domain/column/column-align';\nimport { ColumnDefinitionId } from '../../api/column/column-definition-id';\nimport { CellValue } from './cell-value';\n\n\nexport class ColumnDefinition extends ReadModelEntity<ColumnDefinitionId> {\n\n\t// cellTemplate: TemplateRef<any> | null = null;\n\t//\n\t// headerTemplate: TemplateRef<any> | null = null;\n\t//\n\t// editTemplate: TemplateRef<any> | null = null;\n\n\twidth: number;\n\n\tprivate templateFunction: (i: any, item: any) => string;\n\n\tprivate formatterFunction: (i: any, item: any) => string;\n\n\tprivate readonly columnDefinitionId: ColumnDefinitionId;\n\n\tprivate field: ColumnField;\n\n\tprivate header: string | HeaderTemplate;\n\n\tprivate readonly sortStatus: SortOrder;\n\n\tprivate readonly sortable: boolean = true;\n\n\tprivate readonly enabled: boolean;\n\n\tprivate readonly cellEditingEnabled: boolean;\n\n\tconstructor(field: ColumnField,\n\t\t\t\tcolumnDefinitionId: ColumnDefinitionId, // REFACTOR Id first argument\n\t\t\t\tprivate columnConfig: ColumnConfig,\n\t\t\t\tprivate readonly name: string,\n\t\t\t\tenabled: boolean,\n\t\t\t\tprivate readonly type: DataType, // REFACTOR\n\t\t\t\tprivate readonly view: ViewEntity, // REFACTOR\n\t\t\t\tprivate readonly align: ColumnAlign, // REFACTOR\n\t\t\t\theader: string | HeaderTemplate,\n\t\t\t\tcellEditingEnabled: boolean,\n\t\t\t\tprivate readonly cssClasses: string,\n\t\t\t\tprivate readonly styles: string,\n\t\t\t\tsort: SortOrder = SortOrder.NONE,\n\t\t\t\tsortable = true) {\n\t\tsuper(columnDefinitionId);\n\t\tthis.field = field;\n\t\tthis.columnDefinitionId = columnDefinitionId;\n\t\tthis.enabled = enabled;\n\t\tthis.header = header;\n\t\tthis.cellEditingEnabled = cellEditingEnabled;\n\t\tthis.sortStatus = sort;\n\t\tthis.sortable = sortable;\n\t}\n\n\tgetName(): string {\n\t\treturn this.name;\n\t}\n\n\tisEnabled(): boolean {\n\t\treturn this.enabled;\n\t}\n\n\tsetHeader(header: string): void {\n\t\tthis.header = header;\n\t}\n\n\tsetField(field: ColumnField): void {\n\t\tthis.field = field;\n\t}\n\n\tsetTemplateFunction(templateFun: (i: any, item: any) => string): void {\n\t\tthis.templateFunction = templateFun;\n\t}\n\n\tsetFormatterFunction(formatter: (i: any, item: any) => string): void {\n\t\tthis.formatterFunction = formatter;\n\t}\n\n\ttoHeaderCellTemplateWithContext(index: number): CellTemplateWithContext {\n\n\t\tconst header: any = this.header || '';\n\t\tlet headerCellContext: CellContext;\n\n\t\tif (typeof header === 'string') {\n\t\t\theaderCellContext = new CellContext(CellValue.text(header));\n\t\t} else if (typeof header === 'function') {\n\t\t\theaderCellContext = new CellContext(CellValue.text(header(index)));\n\t\t}\n\n\t\tconst fieldId = new FieldId(this.field.getId().getId());\n\n\t\treturn new CellTemplateWithContext(\n\t\t\theader,\n\t\t\tthis.type,\n\t\t\theaderCellContext,\n\t\t\tthis.width,\n\t\t\tfieldId,\n\t\t\tthis.columnDefinitionId,\n\t\t\tthis.sortStatus,\n\t\t\tthis.enabled,\n\t\t\tthis.cssClasses,\n\t\t\tthis.styles,\n\t\t\tthis.sortable,\n\t\t\tthis.align\n\t\t);\n\t}\n\n\ttoContentCellTemplateWithAccessor(): CellTemplateWithAccessor {\n\n\t\tconst accessor = (entity: any) => {\n\t\t\treturn this.field.getAccessor()(entity);\n\t\t}, searchAccessor = (entity: any) => {\n\t\t\treturn this.field.getSearchAccessor()(entity);\n\t\t};\n\n\t\treturn new CellTemplateWithAccessor(\n\t\t\tthis.columnConfig,\n\t\t\tthis.columnDefinitionId,\n\t\t\tthis.name,\n\t\t\t// null,\n\t\t\t// null,\n\t\t\ttrue,\n\t\t\tthis.templateFunction,\n\t\t\tthis.formatterFunction,\n\t\t\taccessor,\n\t\t\tsearchAccessor,\n\t\t\tthis.width,\n\t\t\tthis.field.getId(),\n\t\t\tthis.align,\n\t\t\tthis.cellEditingEnabled,\n\t\t\tthis.type,\n\t\t\tthis.view\n\t\t);\n\t}\n\n}\n","import { ReadModelEntityId } from '@generic-ui/hermes';\n\nexport class ColumnDefinitionId extends ReadModelEntityId {\n\tconstructor(id: string) {\n\t\tsuper(id);\n\t}\n}\n","import { ColumnEntity } from '../../domain/column/column.entity';\nimport { ColumnDefinition } from './column-definition';\nimport { ActiveColumnEntity } from '../../domain/column/active/active-column.entity';\nimport { ColumnDefinitionId } from '../../api/column/column-definition-id';\n\n\nexport class ColumnDefinitionFactory {\n\n\tcreate(column: ColumnEntity): ColumnDefinition;\n\tcreate(column: ActiveColumnEntity): ColumnDefinition;\n\tcreate(column: ColumnEntity | ActiveColumnEntity): ColumnDefinition {\n\n\t\tif (column instanceof ColumnEntity) {\n\t\t\treturn this.createFromColumnEntity(column);\n\t\t} else {\n\t\t\treturn this.createFromActiveColumnEntity(column);\n\t\t}\n\t}\n\n\tcreateColumns(columns: Array<ColumnEntity>): Array<ColumnDefinition> {\n\t\treturn columns.map((column: ColumnEntity) => this.create(column));\n\t}\n\n\tprivate createFromColumnEntity(column: ColumnEntity): ColumnDefinition {\n\n\t\tconst columnDef = new ColumnDefinition(\n\t\t\tcolumn.getField(),\n\t\t\tnew ColumnDefinitionId(column.getId().toString()),\n\t\t\tcolumn.getColumnConfig(),\n\t\t\tcolumn.getColumnConfig().name,\n\t\t\tcolumn.isEnabled(),\n\t\t\tcolumn.getDataType(),\n\t\t\tcolumn.getView(),\n\t\t\tcolumn.getAlign(),\n\t\t\tcolumn.getHeader(),\n\t\t\tcolumn.isCellEditingEnabled(),\n\t\t\tcolumn.getColumnConfig().cssClasses,\n\t\t\tcolumn.getColumnConfig().styles,\n\t\t\tcolumn.getSortStatus(),\n\t\t\tcolumn.isSortingEnabled()\n\t\t);\n\n\t\tcolumnDef.setTemplateFunction(column.getTemplateFunction());\n\t\tcolumnDef.setFormatterFunction(column.getFormatterFunction());\n\n\t\tcolumnDef.width = +column.getWidth();\n\n\t\treturn columnDef;\n\t}\n\n\tprivate createFromActiveColumnEntity(activeColumn: ActiveColumnEntity): ColumnDefinition {\n\n\t\tconst columnDef = new ColumnDefinition(\n\t\t\tactiveColumn.getField(),\n\t\t\tnew ColumnDefinitionId(activeColumn.getId().toString()),\n\t\t\tactiveColumn.getColumnConfig(),\n\t\t\tactiveColumn.getColumnConfig().name,\n\t\t\ttrue, // remove,\n\t\t\tactiveColumn.getDataType(),\n\t\t\tactiveColumn.getView(),\n\t\t\tactiveColumn.getAlign(),\n\t\t\tactiveColumn.getHeader(),\n\t\t\tactiveColumn.isCellEditingEnabled(),\n\t\t\tactiveColumn.getColumnConfig().cssClasses,\n\t\t\tactiveColumn.getColumnConfig().styles,\n\t\t\tactiveColumn.getSortStatus(),\n\t\t\tactiveColumn.isSortingEnabled()\n\t\t);\n\n\t\tcolumnDef.setTemplateFunction(activeColumn.getTemplateFunction());\n\t\tcolumnDef.setFormatterFunction(activeColumn.getFormatterFunction());\n\n\t\tcolumnDef.width = +activeColumn.getWidth();\n\n\t\treturn columnDef;\n\t}\n\n}\n","import { ReadModelRoot } from '@generic-ui/hermes';\n\nimport { ColumnDefinition } from './definition/column-definition';\nimport { CellTemplateWithContext } from './definition/cell-template-with-context';\nimport { CellTemplateWithAccessor } from './definition/cell-template-with-accessor';\nimport { CompositionReadModelRootId } from '../api/global/composition.read-model-root-id';\n\n\nexport class CompositionReadModeRoot extends ReadModelRoot<CompositionReadModelRootId> {\n\n\tconstructor(uid: CompositionReadModelRootId,\n\t\t\t\tprivate readonly ready: boolean,\n\t\t\t\tprivate readonly allColumns: Array<ColumnDefinition>,\n\t\t\t\tprivate readonly activeColumns: Array<ColumnDefinition>,\n\t\t\t\tprivate readonly width: number,\n\t\t\t\tprivate readonly resizeWidth: boolean) {\n\t\tsuper(uid);\n\t}\n\n\tgetActiveColumns(): Array<ColumnDefinition> {\n\t\treturn this.activeColumns;\n\t}\n\n\tgetAllColumns(): Array<ColumnDefinition> {\n\t\treturn this.allColumns;\n\t}\n\n\tgetActiveHeaderColumns(): Array<CellTemplateWithContext> {\n\t\treturn this.getActiveColumns()\n\t\t\t\t   .map((column: ColumnDefinition, index: number) => column.toHeaderCellTemplateWithContext(index));\n\t}\n\n\tgetHeaderColumns(): Array<CellTemplateWithContext> {\n\t\treturn this.getAllColumns()\n\t\t\t\t   .map((column: ColumnDefinition, index: number) => column.toHeaderCellTemplateWithContext(index));\n\t}\n\n\tgetTemplateColumns(): Array<CellTemplateWithAccessor> {\n\t\treturn this.getActiveColumns()\n\t\t\t\t   .map((column: ColumnDefinition) => column.toContentCellTemplateWithAccessor());\n\t}\n\n\tgetWidth(): number {\n\t\treturn this.width;\n\t}\n\n\tgetContainerWidth(): number {\n\t\treturn +this.width - 2;\n\t}\n\n\tisReady(): boolean {\n\t\treturn this.ready;\n\t}\n\n\tisResizeWidthEnabled(): boolean {\n\t\treturn this.resizeWidth;\n\t}\n\n\tequals(composition: CompositionReadModeRoot): boolean {\n\t\treturn this.width === composition.width &&\n\t\t\tthis.resizeWidth === composition.resizeWidth &&\n\t\t\tthis.equalsByColumns(composition.allColumns);\n\t}\n\n\tequalsByColumns(columns: Array<ColumnDefinition>): boolean {\n\t\treturn this.allColumns.length === columns.length;\n\t}\n\n}\n","import { ColumnDefinitionFactory } from './definition/column-definition.factory';\nimport { CompositionAggregate } from '../domain/composition.aggregate';\nimport { CompositionReadModeRoot } from './composition.read-mode-root';\nimport { ColumnEntity } from '../domain/column/column.entity';\nimport { ColumnDefinition } from './definition/column-definition';\nimport { ActiveColumnEntity } from '../domain/column/active/active-column.entity';\n\n\nexport class CompositionReadModelRootConverter {\n\n\tconstructor(private readonly columnDefinitionFactory: ColumnDefinitionFactory) {\n\t}\n\n\tstatic readonly services = [ColumnDefinitionFactory] as const;\n\n\tconvert(aggregate: CompositionAggregate): CompositionReadModeRoot {\n\n\t\tconst ready = aggregate.isReady(),\n\t\t\tallColumns: Array<ColumnEntity> = aggregate.getColumns(),\n\t\t\tactiveColumns: Array<ActiveColumnEntity> = aggregate.getActiveColumns(),\n\t\t\tallColumnDefs: Array<ColumnDefinition> = this.convertToColumnDef(allColumns),\n\t\t\tactiveColumnDefs: Array<ColumnDefinition> = this.convertActiveColumnsToColumnDef(activeColumns),\n\t\t\twidth = aggregate.getWidth(),\n\t\t\tresizeWidth = aggregate.isResizeEnabled(),\n\t\t\taggregateId = aggregate.getId();\n\n\t\treturn new CompositionReadModeRoot(aggregateId.toReadModelRootId(), ready, allColumnDefs, activeColumnDefs, width, resizeWidth);\n\t}\n\n\tprivate convertToColumnDef(columns: Array<ColumnEntity>): Array<ColumnDefinition> {\n\n\t\tconst columnDefs: Array<ColumnDefinition> = [];\n\n\t\tcolumns.forEach((column: ColumnEntity) => {\n\n\t\t\tconst columnDef = this.columnDefinitionFactory.create(column);\n\n\t\t\tcolumnDefs.push(columnDef);\n\t\t});\n\n\t\treturn columnDefs;\n\t}\n\n\tprivate convertActiveColumnsToColumnDef(activeColumns: Array<ActiveColumnEntity>): Array<ColumnDefinition> {\n\n\t\tconst columnDefs: Array<ColumnDefinition> = [];\n\n\t\tactiveColumns.forEach((column: ActiveColumnEntity) => {\n\n\t\t\tconst columnDef = this.columnDefinitionFactory.create(column);\n\n\t\t\tcolumnDefs.push(columnDef);\n\t\t});\n\n\t\treturn columnDefs;\n\t}\n\n}\n","import { InMemoryReadModelStore } from '@generic-ui/hermes';\n\nimport { CompositionReadModeRoot } from '../../core-read/composition.read-mode-root';\nimport { CompositionAggregate } from '../../domain/composition.aggregate';\nimport { InMemoryCompositionStore } from '../in-memory.composition.store';\nimport { CompositionReadModelRootConverter } from '../../core-read/composition.read-model-root-converter';\nimport { CompositionId } from '../../api/global/composition.id';\nimport { CompositionReadModelRootId } from '../../api/global/composition.read-model-root-id';\n\n\nexport class InMemoryCompositionReadStore extends InMemoryReadModelStore<CompositionReadModelRootId,\n\tCompositionReadModeRoot,\n\tCompositionId,\n\tCompositionAggregate> {\n\n\tconstructor(private inMemoryCompositionStore: InMemoryCompositionStore,\n\t\t\t\tprivate compositionConverter: CompositionReadModelRootConverter) {\n\t\tsuper(inMemoryCompositionStore);\n\t}\n\n\tstatic readonly services = [InMemoryCompositionStore, CompositionReadModelRootConverter];\n\n\ttoReadModel(aggregate: CompositionAggregate): CompositionReadModeRoot {\n\t\treturn this.compositionConverter.convert(aggregate);\n\t}\n\n}\n","import { CompositionId } from '../api/global/composition.id';\nimport { CompositionReadModeRoot } from './composition.read-mode-root';\nimport { HermesObservable, Optional, ReadModelRootRepository } from '@generic-ui/hermes';\n\n\nexport abstract class CompositionReadModelRootRepository extends ReadModelRootRepository<CompositionId> {\n\n\tprotected constructor() {\n\t\tsuper();\n\t}\n\n\tabstract on(compositionId: CompositionId): HermesObservable<Readonly<CompositionReadModeRoot>>;\n\n\tabstract find(compositionId: CompositionId): Optional<CompositionReadModeRoot>;\n}\n","import { CompositionId } from '../../api/global/composition.id';\nimport { CompositionDomainEvent } from '../composition.domain-event';\n\nexport class CompositionCreatedEvent extends CompositionDomainEvent {\n\n\tconstructor(compositionId: CompositionId) {\n\t\tsuper(compositionId, null, 'CompositionCreatedEvent');\n\t}\n}\n","import { DomainEvent, hermesFilter, hermesMap, HermesObservable, HermesReplaySubject, Optional } from '@generic-ui/hermes';\n\nimport { CompositionReadModelRootRepository } from '../../core-read/composition.read-model-root-repository';\nimport { CompositionReadModeRoot } from '../../core-read/composition.read-mode-root';\nimport { InMemoryCompositionReadStore } from './in-memory.composition.read-store';\nimport { CompositionCreatedEvent } from '../../core/create/composition-created.event';\nimport { CompositionResizeWidthSetEvent } from '../../core/width/resize-width/composition-resize-width-set.event';\nimport { CompositionColumnsSetEvent } from '../../core/column/set-columns/composition.columns-set.event';\nimport { CompositionContainerWidthSetEvent } from '../../core/width/set-container-width/composition-container-width-set.event';\nimport { CompositionWidthSetEvent } from '../../core/width/set-width/composition-width-set.event';\nimport { CompositionChangeSortStatusEvent } from '../../core/column/sort/composition-change-sort-status.event';\nimport { CompositionColumnSetEnabledEvent } from '../../core/column/set-enabled/composition.column-set-enabled.event';\nimport { CompositionColumnMovedLeftEvent } from '../../core/column/move/left/composition.column-moved-left.event';\nimport { CompositionColumnMovedRightEvent } from '../../core/column/move/right/composition.column-moved-right.event';\nimport { CompositionId } from '../../api/global/composition.id';\n\n\nexport class InMemoryCompositionRepository extends CompositionReadModelRootRepository {\n\n\tprivate readonly compositionIdToComposition = new Map<string, CompositionReadModeRoot>();\n\n\tprivate readonly composition$ = new HermesReplaySubject<Map<string, CompositionReadModeRoot>>(1);\n\n\tconstructor(private inMemoryCompositionReadStore: InMemoryCompositionReadStore) {\n\t\tsuper();\n\t}\n\n\tstatic readonly services = [InMemoryCompositionReadStore];\n\n\ton(compositionId: CompositionId): HermesObservable<Readonly<CompositionReadModeRoot>> {\n\n\t\treturn this.composition$\n\t\t\t\t   .toObservable()\n\t\t\t\t   .pipe(\n\t\t\t\t\t   hermesFilter((compositionIdToComposition: Map<string, CompositionReadModeRoot>) => {\n\n\t\t\t\t\t\t   const key = compositionId.getId();\n\n\t\t\t\t\t\t   return compositionIdToComposition.has(key);\n\t\t\t\t\t   }),\n\t\t\t\t\t   hermesMap((compositionIdToComposition: Map<string, CompositionReadModeRoot>) => compositionIdToComposition.get(compositionId.getId()))\n\t\t\t\t   );\n\t}\n\n\tfind(compositionId: CompositionId): Optional<CompositionReadModeRoot> {\n\n\t\tconst key = compositionId.getId();\n\n\t\treturn Optional.of(this.compositionIdToComposition.get(key));\n\t}\n\n\tprotected forEvents(): Array<typeof DomainEvent> {\n\t\treturn [\n\t\t\tCompositionCreatedEvent,\n\t\t\tCompositionResizeWidthSetEvent,\n\t\t\tCompositionColumnsSetEvent,\n\t\t\tCompositionContainerWidthSetEvent,\n\t\t\tCompositionWidthSetEvent,\n\t\t\tCompositionColumnSetEnabledEvent,\n\t\t\tCompositionColumnMovedLeftEvent,\n\t\t\tCompositionColumnMovedRightEvent,\n\t\t\tCompositionChangeSortStatusEvent as any\n\t\t];\n\t}\n\n\tprotected subscribe(event: DomainEvent<CompositionId>): void {\n\n\t\tconst aggregateId = event.getAggregateId();\n\n\t\tconst optComposition = this.inMemoryCompositionReadStore.getById(aggregateId);\n\n\t\toptComposition.ifPresent((composition: CompositionReadModeRoot) => {\n\t\t\tconst key = composition.getId().toString();\n\n\t\t\tthis.compositionIdToComposition.set(key, composition);\n\n\t\t\tthis.composition$.next(this.compositionIdToComposition);\n\t\t});\n\t}\n}\n","import { CommandType, CreateAggregateCommandHandler } from '@generic-ui/hermes';\nimport { CreateCompositionCommand } from './create-composition.command';\n\n\nexport class CreateCompositionCommandHandler implements CreateAggregateCommandHandler<CreateCompositionCommand> {\n\n\tforCommand(): CommandType<CreateCompositionCommand> {\n\t\treturn CreateCompositionCommand;\n\t}\n\n}\n","import { ColumnWidth } from '../column/column-width/column-width';\n\nexport class CompositionContainerWidthCalculator {\n\n\tconstructor(private readonly MIN_COLUMN_WIDTH: number) {\n\t}\n\n\tcalculateMinWidth(columnWidths: Array<ColumnWidth>): number {\n\n\t\tconst { staticColumns, fluidColumns } = this.segregateColumns(columnWidths);\n\n\t\t// TODO reduce\n\t\tlet sum = 0;\n\t\tstaticColumns.forEach((c) => {\n\t\t\tsum += c.getWidth();\n\t\t});\n\n\t\tsum += fluidColumns.length * this.MIN_COLUMN_WIDTH;\n\n\t\treturn sum;\n\t}\n\n\tprivate segregateColumns(columns: Array<ColumnWidth>): { staticColumns: Array<ColumnWidth>, fluidColumns: Array<ColumnWidth> } {\n\n\t\tconst staticColumns = columns.filter((columnWidth: ColumnWidth) => columnWidth.isTypeNumber() && columnWidth.getWidth() > this.MIN_COLUMN_WIDTH),\n\t\t\tfluidColumns = columns.filter((columnWidth: ColumnWidth) => {\n\t\t\t\treturn columnWidth.isTypeAuto() ||\n\t\t\t\t\tcolumnWidth.isTypePercentage() ||\n\t\t\t\t\t(columnWidth.isTypeNumber() && columnWidth.getWidth() <= this.MIN_COLUMN_WIDTH);\n\t\t\t});\n\n\t\treturn {\n\t\t\tstaticColumns: staticColumns,\n\t\t\tfluidColumns: fluidColumns\n\t\t};\n\t}\n}\n","import { AggregateEvent } from '@generic-ui/hermes';\nimport { CompositionId } from '../api/global/composition.id';\n\nexport abstract class CompositionAggregateEvent extends AggregateEvent<CompositionId> {\n}\n","import { AggregateId, DomainEvent } from '@generic-ui/hermes';\n\nimport { CompositionId } from '../../../api/global/composition.id';\nimport { CompositionWidthSetEvent } from './composition-width-set.event';\nimport { CompositionAggregateEvent } from '../../composition.aggregate-event';\n\n\nexport class CompositionWidthSetAggregateEvent extends CompositionAggregateEvent {\n\n\tconstructor(aggregateId: AggregateId) {\n\t\tsuper(aggregateId, 'CompositionWidthSetAggregateEvent');\n\t}\n\n\ttoDomainEvent(): DomainEvent<CompositionId> {\n\t\treturn new CompositionWidthSetEvent(this.getAggregateId());\n\t}\n\n}\n","import { DomainEvent } from '@generic-ui/hermes';\n\nimport { CompositionId } from '../../../api/global/composition.id';\nimport { CompositionContainerWidthSetEvent } from './composition-container-width-set.event';\nimport { CompositionAggregateEvent } from '../../composition.aggregate-event';\n\n\nexport class CompositionContainerWidthSetAggregateEvent extends CompositionAggregateEvent {\n\n\tconstructor(compositionId: CompositionId,\n\t\t\t\tpublic readonly containerWidth: number) {\n\t\tsuper(compositionId, 'CompositionContainerWidthSetAggregateEvent');\n\t}\n\n\ttoDomainEvent(): DomainEvent<CompositionId> {\n\t\treturn new CompositionContainerWidthSetEvent(this.getAggregateId(), this.containerWidth);\n\t}\n}\n","import { DomainEvent } from '@generic-ui/hermes';\n\nimport { CompositionId } from '../../../api/global/composition.id';\nimport { CompositionResizeWidthSetEvent } from './composition-resize-width-set.event';\nimport { CompositionAggregateEvent } from '../../composition.aggregate-event';\n\n\nexport class CompositionResizeWidthSetAggregateEvent extends CompositionAggregateEvent {\n\n\tconstructor(compositionId: CompositionId) {\n\t\tsuper(compositionId, 'CompositionResizeWidthSetAggregateEvent');\n\t}\n\n\ttoDomainEvent(): DomainEvent<CompositionId> {\n\t\treturn new CompositionResizeWidthSetEvent(this.getAggregateId());\n\t}\n}\n","import { AggregateId, DomainEvent } from '@generic-ui/hermes';\n\nimport { ActiveColumnEntity } from '../../../domain/column/active/active-column.entity';\nimport { CompositionId } from '../../../api/global/composition.id';\nimport { CompositionColumnSetEnabledEvent } from './composition.column-set-enabled.event';\nimport { CompositionAggregateEvent } from '../../composition.aggregate-event';\n\nexport class CompositionColumnSetEnabledAggregateEvent extends CompositionAggregateEvent {\n\n\tconstructor(aggregateId: AggregateId,\n\t\t\t\tprivate readonly activeColumns: Array<ActiveColumnEntity>) {\n\t\tsuper(aggregateId, 'CompositionColumnSetEnabledAggregateEvent');\n\t}\n\n\ttoDomainEvent(): DomainEvent<CompositionId> {\n\t\treturn new CompositionColumnSetEnabledEvent(this.getAggregateId());\n\t}\n\n\tgetActiveColumns(): Array<ActiveColumnEntity> {\n\t\treturn this.activeColumns;\n\t}\n\n}\n","export enum ColumnWidthType {\n\tPERCENTAGE,\n\tNUMBER,\n\tAUTO\n}\n","import { ColumnWidthType } from './column-width-type';\n\nexport class ColumnWidth {\n\n\tprivate template: ColumnWidthType;\n\n\tprivate baseWidth: number | string;\n\n\tprivate width: number;\n\n\tconstructor(width?: number | string) {\n\t\tthis.baseWidth = width;\n\t\tthis.setWidthAndType(width);\n\t}\n\n\tgetWidth(): number {\n\t\treturn this.width;\n\t}\n\n\tgetColumnType(): ColumnWidthType {\n\t\treturn this.template;\n\t}\n\n\tisTypePercentage(): boolean {\n\t\treturn this.template === ColumnWidthType.PERCENTAGE;\n\t}\n\n\tisTypeAuto(): boolean {\n\t\treturn this.template === ColumnWidthType.AUTO;\n\t}\n\n\tisTypeNumber(): boolean {\n\t\treturn this.template === ColumnWidthType.NUMBER;\n\t}\n\n\tsetWidth(width: number): void {\n\t\tthis.width = width;\n\t}\n\n\tsetWidthAndType(width: number | string): void {\n\n\t\tif (width === undefined || width === null || width === 'auto') {\n\n\t\t\tthis.template = ColumnWidthType.AUTO;\n\t\t\tthis.setWidth(null);\n\n\t\t} else if (this.isPercentage(width)) {\n\n\t\t\tthis.template = ColumnWidthType.PERCENTAGE;\n\t\t\tthis.setWidth(this.percentageToNumber('' + width));\n\n\t\t} else if (this.isStringNumber(width)) {\n\n\t\t\tthis.template = ColumnWidthType.NUMBER;\n\t\t\tthis.setWidth(+width);\n\t\t} else {\n\n\t\t\tthis.template = ColumnWidthType.NUMBER;\n\t\t\tthis.setWidth(+width);\n\t\t}\n\t}\n\n\tclone(): ColumnWidth {\n\t\treturn new ColumnWidth(this.baseWidth);\n\t}\n\n\tprivate isPercentage(width: number | string): boolean {\n\t\treturn typeof width === 'string' && width[width.length - 1] === '%';\n\t}\n\n\t/**\n\t * Width needs to be in format '89%'\n\t * @param width\n\t */\n\tprivate percentageToNumber(width: string): number {\n\t\treturn +(width.slice(0, -1));\n\t}\n\n\tprivate isStringNumber(width: number | string): boolean {\n\t\tconst widthAsNumber = +width;\n\n\t\treturn Number.isNaN(widthAsNumber);\n\t}\n}\n","import { ColumnWidth } from '../column/column-width/column-width';\nimport { ColumnWidthType } from '../column/column-width/column-width-type';\n\nexport class CompositionWidthCalculator {\n\n\tprivate readonly columns: Array<ColumnWidth>;\n\n\tconstructor(private source: Array<ColumnWidth>,\n\t\t\t\tprivate width: number,\n\t\t\t\tprivate readonly MIN_COLUMN_WIDTH: number) {\n\t\tthis.columns = this.source.map((c) => c.clone());\n\t}\n\n\tcalculate(): Array<ColumnWidth> {\n\n\t\tlet width = this.width,\n\t\t\tcolumns = Array.from(this.columns);\n\n\t\t// adjust min value\n\t\tthis.adjustMinimalWidth(columns);\n\n\t\t// remove number columns\n\t\tconst newColumns: Array<ColumnWidth> = [];\n\n\t\tcolumns.forEach((column: ColumnWidth, index: number) => {\n\t\t\tif (column.isTypeNumber()) {\n\t\t\t\twidth -= column.getWidth();\n\t\t\t} else {\n\t\t\t\tnewColumns.push(column);\n\t\t\t}\n\t\t});\n\n\t\tcolumns = newColumns;\n\n\t\t// split even auto columns\n\t\tif (columns.length !== 0) {\n\n\t\t\tconst evenWidth = width / columns.length;\n\n\t\t\tcolumns.forEach((column: ColumnWidth, index: number) => {\n\t\t\t\tcolumn.setWidth(evenWidth);\n\t\t\t});\n\t\t}\n\n\t\t// adjust number columns\n\t\t// let numberColumns = this.columns.filter((columnWidth: ColumnWidth) => columnWidth.isTypeNumber());\n\t\t//\n\t\t// // sort by min values\n\t\t// numberColumns.sort((columnOne: ColumnWidth, columnTwo: ColumnWidth) => {\n\t\t// \treturn columnOne.getWidth() - columnTwo.getWidth();\n\t\t// });\n\t\t//\n\t\t// numberColumns.forEach(() => {\n\t\t// });\n\n\t\t// this.adjustMinimalWidth(ColumnWidthType.NUMBER);\n\t\t//\n\t\t// this.adjustPercentageWidth();\n\t\t//\n\t\t// this.adjustAutoWidth();\n\n\t\treturn this.columns;\n\t}\n\n\tprivate adjustMinimalWidth(columns: Array<ColumnWidth>): void {\n\t\tcolumns.forEach((column: ColumnWidth) => {\n\t\t\tif (column.isTypeNumber()) {\n\t\t\t\tif (column.getWidth() < this.MIN_COLUMN_WIDTH) {\n\t\t\t\t\tcolumn.setWidthAndType(this.MIN_COLUMN_WIDTH);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\n\tprivate adjustPercentageWidth(): void {\n\n\t\tconst percentageColumns = this.columns.filter((columnWidth: ColumnWidth) => columnWidth.isTypePercentage());\n\n\t\tfor (const column of this.columns) {\n\t\t\tif (column.getColumnType() === ColumnWidthType.PERCENTAGE) {\n\t\t\t\tcolumn.setWidth(this.width * column.getWidth() * 0.01);\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate adjustAutoWidth(): void {\n\n\t\tlet leftWidth = this.width;\n\t\tconst autoColumns = [];\n\n\t\tfor (let i = 0; i < this.columns.length; i += 1) {\n\n\t\t\tconst column = this.columns[i];\n\n\t\t\tif (column.getColumnType() !== ColumnWidthType.AUTO) {\n\t\t\t\tleftWidth -= column.getWidth();\n\t\t\t} else {\n\t\t\t\tautoColumns.push(column);\n\t\t\t}\n\t\t}\n\n\t\tif (autoColumns.length > 0) {\n\t\t\tconst splitWidth = leftWidth / autoColumns.length;\n\n\t\t\tfor (const column of autoColumns) {\n\t\t\t\tcolumn.setWidth(splitWidth);\n\t\t\t}\n\t\t}\n\t}\n\n}\n","import { ColumnWidth } from './column-width';\nimport { ColumnConfig } from '../../../api/column/column.config';\nimport { CompositionContainerWidthCalculator } from '../../width/composition-container-width.calculator';\nimport { CompositionWidthCalculator } from '../../width/composition-width.calculator';\n\n\nexport class ColumnWidthCollection {\n\n\tprivate baseColumnWidths: Array<ColumnWidth>;\n\n\tprivate columnWidths: Array<ColumnWidth>;\n\n\tprivate width: number;\n\n\tconstructor(private readonly MIN_COLUMN_WIDTH: number,\n\t\t\t\tcolumns: Array<ColumnConfig> = [],\n\t\t\t\twidth: number = 100) {\n\t\tthis.baseColumnWidths = columns.map((column: ColumnConfig) => new ColumnWidth(column.width));\n\t\tthis.columnWidths = columns.map((column: ColumnConfig) => new ColumnWidth(column.width));\n\n\t\tthis.setContainerWidth(width);\n\n\t\tthis.calculate();\n\t}\n\n\tgetColumnWidths(): Array<ColumnWidth> {\n\t\treturn this.baseColumnWidths;\n\t}\n\n\tgetColumnsWidth(): number {\n\t\treturn this.width;\n\t}\n\n\tgetWidths(): Array<number> {\n\t\treturn this.columnWidths.map(c => c.getWidth());\n\t}\n\n\tgetMinWidth(): number {\n\t\tconst calculator = new CompositionContainerWidthCalculator(this.MIN_COLUMN_WIDTH);\n\n\t\treturn calculator.calculateMinWidth(this.columnWidths);\n\t}\n\n\tsetWidth(width: number): void {\n\n\t\tthis.setContainerWidth(width);\n\t\tthis.calculate();\n\t}\n\n\tsetColumns(columnConfigs: Array<ColumnConfig>): void {\n\t\tthis.baseColumnWidths = columnConfigs.map((column: ColumnConfig) => new ColumnWidth(column.width));\n\t\tthis.columnWidths = columnConfigs.map((column: ColumnConfig) => new ColumnWidth(column.width));\n\n\t\tthis.calculate();\n\t}\n\n\tgetMinColumnWidth(): number {\n\t\treturn this.MIN_COLUMN_WIDTH;\n\t}\n\n\tprivate calculate(): void {\n\n\t\tif (this.baseColumnWidths && this.width) {\n\n\t\t\tconst calculator = new CompositionWidthCalculator(this.baseColumnWidths, this.width, this.MIN_COLUMN_WIDTH);\n\n\t\t\tthis.columnWidths = calculator.calculate();\n\t\t}\n\t}\n\n\tprivate setContainerWidth(width: number): void {\n\t\tif (this.getMinWidth() > width) {\n\t\t\tthis.width = this.getMinWidth();\n\t\t} else {\n\t\t\tthis.width = width;\n\t\t}\n\n\t\tthis.calculate();\n\t}\n}\n","import { AggregateId, DomainEvent } from '@generic-ui/hermes';\n\nimport { CompositionId } from '../../../api/global/composition.id';\nimport { CompositionChangeSortStatusEvent } from './composition-change-sort-status.event';\nimport { ActiveColumnEntity } from '../../../domain/column/active/active-column.entity';\nimport { CompositionAggregateEvent } from '../../composition.aggregate-event';\n\n\nexport class CompositionChangeSortStatusAggregateEvent extends CompositionAggregateEvent {\n\n\tconstructor(aggregateId: AggregateId,\n\t\t\t\tprivate readonly activeColumns: Array<ActiveColumnEntity>) {\n\t\tsuper(aggregateId, 'CompositionChangeSortStatusAggregateEvent');\n\t}\n\n\ttoDomainEvent(): DomainEvent<CompositionId> {\n\t\treturn new CompositionChangeSortStatusEvent(this.getAggregateId(), this.activeColumns);\n\t}\n\n}\n","import { AggregateEvent } from '@generic-ui/hermes';\n\nimport { ActiveColumnEntity } from './active-column.entity';\nimport { ColumnWidthCollection } from '../column-width/column-width-collection';\nimport { ColumnConfig } from '../../../api/column/column.config';\nimport { ChangeSortParams } from '../sort/change-sort.params';\nimport { SortOrder } from '../sort/sort-order';\nimport { CompositionId } from '../../../api/global/composition.id';\nimport { CompositionChangeSortStatusAggregateEvent } from '../../../core/column/sort/composition-change-sort-status.aggregate-event';\nimport { ColumnId } from '../../../api/column/column.id';\nimport { ColumnWidth } from '../column-width/column-width';\n\nexport class ActiveColumnContainer {\n\n\tprivate readonly MIN_COLUMN_WIDTH = 50;\n\n\tprivate columns: Array<ActiveColumnEntity>;\n\n\t/**\n\t * Columns taken from user config.\n\t * This should not be modified and it should be used as a reference point.\n\t */\n\tprivate columnWidthCollection: ColumnWidthCollection = new ColumnWidthCollection(this.MIN_COLUMN_WIDTH);\n\n\tconstructor(private compositionId: CompositionId,\n\t\t\t\tcolumns: Array<ActiveColumnEntity> = [],\n\t\t\t\tgridWidth?: number,\n\t\t\t\tcolumnConfigs?: Array<ColumnConfig>) {\n\t\tthis.columns = columns;\n\n\t\tif (gridWidth && columnConfigs) {\n\t\t\tthis.columnWidthCollection = new ColumnWidthCollection(this.MIN_COLUMN_WIDTH, columnConfigs, gridWidth);\n\t\t}\n\t}\n\n\tgetColumnWidths(): Array<ColumnWidth> {\n\t\treturn this.columnWidthCollection.getColumnWidths();\n\t}\n\n\t// REMOVE\n\tgetColumns(): Array<ActiveColumnEntity> {\n\t\treturn this.columns;\n\t}\n\n\tsetWidth(width: number): void {\n\t\tthis.columnWidthCollection.setWidth(width);\n\t}\n\n\taddColumn(column: ActiveColumnEntity, index: number): void {\n\t\tthis.columns.splice(index, 0, column);\n\t}\n\n\tremoveColumn(index: number): void {\n\t\tthis.columns.splice(index, 1);\n\t}\n\n\tsetColumns(columns: Array<ActiveColumnEntity>, columnConfigs: Array<ColumnConfig>) {\n\n\t\tthis.columns = columns;\n\n\t\tthis.columnWidthCollection.setColumns(columnConfigs);\n\n\t\tconst updatedWidths = this.columnWidthCollection.getWidths();\n\n\t\tthis.columns.forEach((column: ActiveColumnEntity, index: number) => {\n\t\t\tcolumn.setWidth(updatedWidths[index]);\n\t\t});\n\n\t\t// TODO\n\t\t// this.addEvent(new ColumnsSetAggregateEvent(this.getId(), columns));\n\t}\n\n\tchangeSort(sortParams: Array<ChangeSortParams>): AggregateEvent<CompositionId> {\n\n\t\tthis.columns.forEach((column: ActiveColumnEntity) => {\n\t\t\tcolumn.setSortStatus(SortOrder.NONE);\n\t\t});\n\n\t\tfor (const param of sortParams) {\n\n\t\t\tconst fieldId = param.fieldId,\n\t\t\t\tdirection = param.direction,\n\t\t\t\tsortStatus = direction ? SortOrder.ASC : SortOrder.DESC;\n\n\t\t\tconst columns = this.columns.filter((column: ActiveColumnEntity) => {\n\t\t\t\treturn column.getField().getId().getId() === fieldId.getId();\n\t\t\t});\n\n\t\t\tif (columns.length > 0) {\n\t\t\t\tcolumns.forEach((column: ActiveColumnEntity) => {\n\n\t\t\t\t\tcolumn.setSortStatus(sortStatus);\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\treturn new CompositionChangeSortStatusAggregateEvent(this.getCompositionId(), this.columns);\n\t}\n\n\tmoveLeft(columnId: ColumnId): void {\n\n\t\tconst index = this.findColumnIndex(columnId);\n\n\t\tthis.move(index, index - 1);\n\t}\n\n\tmoveRight(columnId: ColumnId): void {\n\n\t\tconst index = this.findColumnIndex(columnId);\n\n\t\tthis.move(index, index + 1);\n\t}\n\n\tgetMinColumnWidth(): number {\n\t\treturn this.MIN_COLUMN_WIDTH;\n\t}\n\n\tprivate move(fromIndex: number, toIndex: number): void {\n\n\t\tif (!this.validateMoveIndex(fromIndex) || !this.validateMoveIndex(toIndex)) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst column = this.columns[fromIndex];\n\n\t\tthis.columns[fromIndex] = this.columns[toIndex];\n\t\tthis.columns[toIndex] = column;\n\t}\n\n\tprivate validateMoveIndex(index: number): boolean {\n\t\treturn index >= 0;\n\t}\n\n\tprivate getCompositionId(): CompositionId {\n\t\treturn this.compositionId;\n\t}\n\n\tprivate findColumnIndex(columnId: ColumnId): number {\n\t\treturn this.columns.findIndex(c => c.getId().equals(columnId));\n\t}\n\n}\n","import { ColumnField } from '../field/column-field';\nimport { ColumnId } from '../../../api/column/column.id';\nimport { ColumnConfig, HeaderTemplate } from '../../../api/column/column.config';\nimport { ViewEntity } from '../view.entity';\nimport { ColumnAlign } from '../column-align';\nimport { ColumnEntity } from '../column.entity';\nimport { ColumnPresentation } from '../presentation/column.presentation';\n\n\nexport class ActiveColumnEntity extends ColumnEntity {\n\n\tprivate constructor(columnId: ColumnId,\n\t\t\t\t\t\tcolumnField: ColumnField,\n\t\t\t\t\t\theader: string | HeaderTemplate,\n\t\t\t\t\t\talign: ColumnAlign,\n\t\t\t\t\t\tview: ViewEntity,\n\t\t\t\t\t\tconfig: ColumnConfig,\n\t\t\t\t\t\tpresentation: ColumnPresentation) {\n\t\tsuper(\n\t\t\tcolumnId,\n\t\t\tcolumnField,\n\t\t\tconfig,\n\t\t\ttrue,\n\t\t\tpresentation,\n\t\t\theader,\n\t\t\talign,\n\t\t\tview,\n\t\t\tundefined\n\t\t);\n\t}\n\n\tstatic fromEntity(entity: ColumnEntity): ActiveColumnEntity {\n\t\treturn new ActiveColumnEntity(\n\t\t\tentity.getId(),\n\t\t\tentity.getField(),\n\t\t\tentity.getHeader(),\n\t\t\tentity.getAlign(),\n\t\t\tentity.getView(),\n\t\t\tentity.getColumnConfig(),\n\t\t\tentity.getPresentation()\n\t\t);\n\t}\n\n}\n","import { ActiveColumnEntity } from './active-column.entity';\nimport { ColumnEntity } from '../column.entity';\n\nexport class ActiveColumnEntityConverter {\n\n\tconvertMany(entities: Array<ColumnEntity>): Array<ActiveColumnEntity> {\n\t\treturn entities.map(e => this.convert(e));\n\t}\n\n\tconvert(entity: ColumnEntity): ActiveColumnEntity {\n\n\t\treturn ActiveColumnEntity.fromEntity(entity);\n\t}\n\n\n}\n","import { AggregateId, DomainEvent } from '@generic-ui/hermes';\nimport { CompositionId } from '../../../../api/global/composition.id';\nimport { CompositionColumnMovedLeftEvent } from './composition.column-moved-left.event';\nimport { CompositionAggregateEvent } from '../../../composition.aggregate-event';\n\nexport class CompositionColumnMovedLeftAggregateEvent extends CompositionAggregateEvent {\n\n\tconstructor(aggregateId: AggregateId) {\n\t\tsuper(aggregateId, 'CompositionColumnMovedLeftAggregateEvent');\n\t}\n\n\ttoDomainEvent(): DomainEvent<CompositionId> {\n\t\treturn new CompositionColumnMovedLeftEvent(this.getAggregateId());\n\t}\n\n}\n","import { AggregateId, DomainEvent } from '@generic-ui/hermes';\nimport { CompositionId } from '../../../../api/global/composition.id';\nimport { CompositionColumnMovedRightEvent } from './composition.column-moved-right.event';\nimport { CompositionAggregateEvent } from '../../../composition.aggregate-event';\n\nexport class CompositionColumnMovedRightAggregateEvent extends CompositionAggregateEvent {\n\n\tconstructor(aggregateId: AggregateId) {\n\t\tsuper(aggregateId, 'CompositionColumnMovedRightAggregateEvent');\n\t}\n\n\ttoDomainEvent(): DomainEvent<CompositionId> {\n\t\treturn new CompositionColumnMovedRightEvent(this.getAggregateId());\n\t}\n\n}\n","import { DomainEvent } from '@generic-ui/hermes';\n\nimport { CompositionId } from '../../../api/global/composition.id';\nimport { CompositionColumnsSetEvent } from './composition.columns-set.event';\nimport { CompositionAggregateEvent } from '../../composition.aggregate-event';\n\n\nexport class ColumnsSetAggregateEvent extends CompositionAggregateEvent {\n\n\tconstructor(compositionId: CompositionId) {\n\t\tsuper(compositionId, 'ColumnsSetAggregateEvent');\n\t}\n\n\ttoDomainEvent(): DomainEvent<CompositionId> {\n\t\treturn new CompositionColumnsSetEvent(this.getAggregateId());\n\t}\n\n}\n","import { DomainEvent } from '@generic-ui/hermes';\n\nimport { CompositionId } from '../../api/global/composition.id';\nimport { CompositionCreatedEvent } from './composition-created.event';\nimport { CompositionAggregateEvent } from '../composition.aggregate-event';\n\nexport class CompositionCreatedAggregateEvent extends CompositionAggregateEvent {\n\n\tconstructor(compositionId: CompositionId) {\n\t\tsuper(compositionId, 'SchemaCreatedEvent');\n\t}\n\n\ttoDomainEvent(): DomainEvent<CompositionId> {\n\t\treturn new CompositionCreatedEvent(this.getAggregateId());\n\t}\n}\n","import { Group } from '../../api/group/group';\nimport { GroupId } from '../../api/group/group.id';\n\nexport const emptyGroup = new Group(new GroupId('-1'), '', 100);\n","import { AggregateEvent, AggregateEventType, AggregateRoot, KeyMap } from '@generic-ui/hermes';\n\nimport { ColumnEntity } from './column/column.entity';\nimport { ColumnConfig, MultiColumnConfig } from '../api/column/column.config';\nimport { ColumnParams } from '../core/column/set-columns/column.params';\nimport { ColumnEntityFactory } from './column/column-entity.factory';\nimport { ChangeSortParams } from './column/sort/change-sort.params';\nimport { CompositionContainerWidthCalculator } from './width/composition-container-width.calculator';\nimport { CompositionWidthSetAggregateEvent } from '../core/width/set-width/composition-width-set.aggregate-event';\nimport { CompositionContainerWidthSetAggregateEvent } from '../core/width/set-container-width/composition-container-width-set.aggregate-event';\nimport { CompositionResizeWidthSetAggregateEvent } from '../core/width/resize-width/composition-resize-width-set.aggregate-event';\nimport { ColumnId } from '../api/column/column.id';\nimport { CompositionColumnSetEnabledAggregateEvent } from '../core/column/set-enabled/composition.column-set-enabled.aggregate-event';\nimport { ActiveColumnContainer } from './column/active/active-column.container';\nimport { ActiveColumnEntity } from './column/active/active-column.entity';\nimport { ActiveColumnEntityConverter } from './column/active/active-column.entity-converter';\nimport { CompositionColumnMovedLeftAggregateEvent } from '../core/column/move/left/composition.column-moved-left.aggregate-event';\nimport { CompositionColumnMovedRightAggregateEvent } from '../core/column/move/right/composition.column-moved-right.aggregate-event';\nimport { ColumnsSetAggregateEvent } from '../core/column/set-columns/columns-set.aggregate-event';\nimport { CompositionId } from '../api/global/composition.id';\nimport { CompositionCreatedAggregateEvent } from '../core/create/composition-created.aggregate-event';\nimport { GroupId } from '../api/group/group.id';\nimport { Group } from '../api/group/group';\nimport { CompositionGroupFactory } from '../core/group/composition.group.factory';\nimport { emptyGroup } from '../core/group/empty-group';\n\n\nexport class CompositionAggregate extends AggregateRoot<CompositionId> {\n\n\tprivate allColumns: Array<ColumnEntity> = [];\n\n\tprivate readonly baseColumns: Array<ColumnConfig>;\n\n\tprivate readonly baseParams: Array<ColumnParams>;\n\n\t/**\n\t * Value taken from user config [width]\n\t */\n\tprivate width: number;\n\n\tprivate containerInDOMWidth: number;\n\n\tprivate resizeWidthEnabled: boolean = true;\n\n\tprivate readonly columnFactory: ColumnEntityFactory;\n\n\tprivate readonly groupFactory: CompositionGroupFactory;\n\n\tprivate readonly activeColumnContainer: ActiveColumnContainer;\n\n\tprivate readonly activeColumnEntityConverter: ActiveColumnEntityConverter = new ActiveColumnEntityConverter();\n\n\tprivate readonly groups: KeyMap<GroupId, Group> = new KeyMap();\n\n\tprivate readonly columnNameToGroupId: Map<string, GroupId> = new Map();\n\n\tconstructor(id: CompositionId,\n\t\t\t\tcolumnFactory: ColumnEntityFactory,\n\t\t\t\tgroupFactory: CompositionGroupFactory,\n\t\t\t\tcolumnsParams: Array<ColumnParams> = [],\n\t\t\t\twidth?: number,\n\t\t\t\tresizeWidth?: boolean) {\n\t\tsuper(id, 'CompositionAggregate');\n\n\t\tconst columnConfigs: Array<ColumnConfig> = columnsParams.map((param) => param.getColumn());\n\n\t\tthis.baseParams = columnsParams;\n\t\tthis.baseColumns = columnConfigs;\n\n\t\tthis.columnFactory = columnFactory;\n\t\tthis.groupFactory = groupFactory;\n\n\t\tthis.width = width;\n\n\t\tthis.allColumns = this.columnFactory.create(columnsParams);\n\n\t\tconst activeColumns = this.activeColumnEntityConverter.convertMany(this.getEnabledColumns());\n\n\t\tthis.activeColumnContainer = new ActiveColumnContainer(this.getId(), activeColumns, width, columnConfigs);\n\n\t\tif (resizeWidth !== undefined && resizeWidth !== null) {\n\t\t\tthis.resizeWidthEnabled = resizeWidth;\n\t\t}\n\n\t}\n\n\tcreateEvent(): AggregateEventType<AggregateEvent<CompositionId>> {\n\t\treturn CompositionCreatedAggregateEvent;\n\t}\n\n\t// REMOVE\n\tgetColumns(): Array<ColumnEntity> {\n\t\treturn this.allColumns;\n\t}\n\n\t// REMOVE\n\tgetActiveColumns(): Array<ActiveColumnEntity> {\n\t\treturn this.activeColumnContainer.getColumns();\n\t}\n\n\t// make private\n\tgetWidth(): number {\n\n\t\tif (this.resizeWidthEnabled) {\n\t\t\treturn this.containerInDOMWidth;\n\t\t} else {\n\t\t\treturn this.width;\n\t\t}\n\t}\n\n\t// REMOVE\n\tisResizeEnabled(): boolean {\n\t\treturn this.resizeWidthEnabled;\n\t}\n\n\t// REMOVE\n\tisReady(): boolean {\n\t\treturn !!this.getWidth() && this.getActiveColumns().length > 0;\n\t}\n\n\tsetGroups(configs: Array<ColumnConfig | MultiColumnConfig>): void {\n\n\t\tfor (let i = 0; i < configs.length; i += 1) {\n\n\t\t\tconst config = configs[i];\n\n\t\t\tif ((config as MultiColumnConfig).columns !== undefined) {\n\n\t\t\t\tconst group = this.groupFactory.create(config);\n\n\t\t\t\tthis.groups.set(group.id, group);\n\n\t\t\t\t(config as MultiColumnConfig).columns.forEach((c: ColumnConfig, index: number) => {\n\n\t\t\t\t\tthis.columnNameToGroupId.set(c.header as string, group.id);\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tthis.columnNameToGroupId.set(config.header as string, emptyGroup.id);\n\t\t\t}\n\t\t}\n\t}\n\n\tsetColumns(params: Array<ColumnParams>): void {\n\n\t\tthis.allColumns = this.columnFactory.create(params);\n\n\t\tconst columnConfigs: Array<ColumnConfig> = params.map((param: ColumnParams) => param.getColumn());\n\n\t\tconst activeColumns = this.activeColumnEntityConverter.convertMany(this.getEnabledColumns());\n\n\t\tthis.activeColumnContainer.setColumns(activeColumns, columnConfigs);\n\n\t\tthis.addEvent(new ColumnsSetAggregateEvent(this.getId()));\n\t}\n\n\tsetContainerWidth(containerWidth: number): void {\n\n\t\tthis.setContainerWidthWithEvent(containerWidth);\n\n\t\tthis.recalculateColumns();\n\t}\n\n\tsetWidth(width: number): void {\n\t\tthis.setWidthWithEvent(width);\n\n\t\tthis.setResizeWidthWithEvent(false);\n\n\t\tthis.recalculateColumns();\n\t}\n\n\tsetResizeWidth(enabled: boolean): void {\n\t\tthis.setResizeWidthWithEvent(enabled);\n\t}\n\n\tchangeSort(sortParams: Array<ChangeSortParams>): void {\n\t\tthis.addEvent(\n\t\t\tthis.activeColumnContainer.changeSort(sortParams)\n\t\t);\n\t}\n\n\t// DELEGATE\n\tenableColumn(columnId: ColumnId, enabled: boolean): void {\n\n\t\tlet enabledIndex = -1;\n\n\t\tthis.allColumns.forEach((column: ColumnEntity, index: number) => {\n\t\t\tif (column.getId().getId() === columnId.getId()) {\n\n\t\t\t\tconst prevState = column.isEnabled();\n\n\t\t\t\tcolumn.setEnabled(enabled);\n\n\t\t\t\tif (prevState !== enabled) {\n\t\t\t\t\tenabledIndex = index;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\tif (enabledIndex > 0) {\n\n\t\t\tif (enabled) {\n\n\t\t\t\t// convert\n\t\t\t\tconst columnToAdd = this.activeColumnEntityConverter.convert(this.allColumns[enabledIndex]);\n\n\t\t\t\tthis.activeColumnContainer.addColumn(columnToAdd, enabledIndex);\n\t\t\t} else {\n\t\t\t\tthis.activeColumnContainer.removeColumn(enabledIndex);\n\t\t\t}\n\t\t}\n\n\t\tthis.recalculateColumns();\n\n\t\tthis.addEvent(\n\t\t\tnew CompositionColumnSetEnabledAggregateEvent(this.getId(), this.getActiveColumns())\n\t\t);\n\t}\n\n\tmoveLeft(columnId: ColumnId): void {\n\n\t\tconst columnIndex = this.findColumnIndex(columnId);\n\n\t\tlet nextLeft,\n\t\t\tnextLeftIndex = -1;\n\n\t\tfor (let i = columnIndex - 1; i >= 0; i -= 1) {\n\n\t\t\tconst leftColumn = this.allColumns[i];\n\n\t\t\tif (leftColumn.isEnabled()) {\n\n\t\t\t\tnextLeft = leftColumn;\n\t\t\t\tnextLeftIndex = i;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\tif (nextLeft && nextLeftIndex >= 0 && columnIndex >= 0) {\n\n\t\t\tconst column = this.allColumns[columnIndex];\n\n\t\t\tthis.allColumns[columnIndex] = nextLeft;\n\t\t\tthis.allColumns[nextLeftIndex] = column;\n\t\t}\n\n\t\tthis.activeColumnContainer.moveLeft(columnId);\n\n\t\tthis.addEvent(\n\t\t\tnew CompositionColumnMovedLeftAggregateEvent(this.getId())\n\t\t);\n\t}\n\n\tmoveRight(columnId: ColumnId): void {\n\n\t\tconst columnIndex = this.findColumnIndex(columnId);\n\n\t\tlet nextRight,\n\t\t\tnextRightIndex = -1;\n\n\t\tfor (let i = columnIndex + 1; i < this.allColumns.length; i += 1) {\n\n\t\t\tconst rightColumn = this.allColumns[i];\n\n\t\t\tif (rightColumn.isEnabled()) {\n\n\t\t\t\tnextRight = rightColumn;\n\t\t\t\tnextRightIndex = i;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\tif (nextRight && nextRightIndex >= 0 && columnIndex >= 0) {\n\n\t\t\tconst column = this.allColumns[columnIndex];\n\n\t\t\tthis.allColumns[columnIndex] = nextRight;\n\t\t\tthis.allColumns[nextRightIndex] = column;\n\t\t}\n\n\t\tthis.activeColumnContainer.moveRight(columnId);\n\n\t\tthis.addEvent(\n\t\t\tnew CompositionColumnMovedRightAggregateEvent(this.getId())\n\t\t);\n\t}\n\n\tprivate recalculateColumns(): void {\n\n\t\tconst activeColumns = this.activeColumnEntityConverter.convertMany(this.getEnabledColumns());\n\n\t\tthis.activeColumnContainer.setColumns(activeColumns, activeColumns.map(c => c.getColumnConfig()));\n\t}\n\n\t// TODO Refactor\n\tprivate setWidthWithEvent(width: number): void {\n\n\t\tconst calculator = new CompositionContainerWidthCalculator(this.getMinColumnWidth());\n\n\t\tconst minWidth = calculator.calculateMinWidth(this.activeColumnContainer.getColumnWidths());\n\n\t\tif (minWidth > width) {\n\t\t\tthis.width = minWidth;\n\t\t} else {\n\t\t\tthis.width = width;\n\t\t}\n\n\t\tthis.activeColumnContainer.setWidth(this.getWidth());\n\n\t\tthis.addEvent(new CompositionWidthSetAggregateEvent(this.getId()));\n\t}\n\n\t// TODO Refactor\n\tprivate setContainerWidthWithEvent(containerWidth: number): void {\n\n\t\tconst calculator = new CompositionContainerWidthCalculator(this.getMinColumnWidth());\n\n\t\tconst minWidth = calculator.calculateMinWidth(this.activeColumnContainer.getColumnWidths());\n\n\t\tif (minWidth > containerWidth) {\n\t\t\tthis.containerInDOMWidth = minWidth;\n\t\t} else {\n\t\t\tthis.containerInDOMWidth = containerWidth;\n\t\t}\n\n\t\tthis.activeColumnContainer.setWidth(this.getWidth());\n\n\t\tthis.addEvent(new CompositionContainerWidthSetAggregateEvent(this.getId(), containerWidth));\n\t}\n\n\tprivate setResizeWidthWithEvent(enabled: boolean): void {\n\t\tthis.resizeWidthEnabled = enabled;\n\t\tthis.activeColumnContainer.setWidth(this.getWidth());\n\t\tthis.addEvent(new CompositionResizeWidthSetAggregateEvent(this.getId()));\n\t}\n\n\t// REMOVE -> move to allColumnsContainer\n\tprivate getEnabledColumns(): Array<ColumnEntity> {\n\t\treturn this.allColumns.filter(c => c.isEnabled());\n\t}\n\n\tprivate findColumnIndex(columnId: ColumnId): number {\n\t\treturn this.allColumns.findIndex((column: ColumnEntity) => column.getId().equals(columnId));\n\t}\n\n\tprivate getMinColumnWidth(): number {\n\t\treturn this.activeColumnContainer.getMinColumnWidth();\n\t}\n}\n","import { AggregateFactory } from '@generic-ui/hermes';\n\nimport { CompositionId } from '../api/global/composition.id';\nimport { CompositionAggregate } from '../domain/composition.aggregate';\nimport { ColumnEntityFactory } from '../domain/column/column-entity.factory';\nimport { CompositionGroupFactory } from './group/composition.group.factory';\n\n\nexport class CompositionAggregateFactory extends AggregateFactory<CompositionId, CompositionAggregate> {\n\n\tconstructor(private readonly columnFactory: ColumnEntityFactory,\n\t\t\t\tprivate readonly groupFactory: CompositionGroupFactory) {\n\t\tsuper();\n\t}\n\n\tstatic readonly services = [\n\t\tColumnEntityFactory,\n\t\tCompositionGroupFactory\n\t] as const;\n\n\tcreate(id: CompositionId): CompositionAggregate {\n\t\treturn new CompositionAggregate(id, this.columnFactory, this.groupFactory);\n\t}\n}\n","import { AggregateDefinition, AggregateId, AggregateRoot, Command, Container, DomainEvent, DomainProviders } from '@generic-ui/hermes';\n\nimport { SetColumnsCommandHandler } from './column/set-columns/set-columns.command-handler';\nimport { SetCompositionWidthCommandHandler } from './width/set-width/set-composition-width.command-handler';\nimport { SetCompositionResizeWidthCommandHandler } from './width/resize-width/set-composition-resize-width.command-handler';\nimport { SetCompositionContainerWidthCommandHandler } from './width/set-container-width/set-composition-container-width.command-handler';\nimport { CompositionSetColumnEnabledCommandHandler } from './column/set-enabled/composition.set-column-enabled.command-handler';\nimport { CompositionChangeSortStatusCommandHandler } from './column/sort/composition-change-sort-status.command-handler';\nimport { CompositionMoveLeftColumnCommandHandler } from './column/move/left/composition.move-left-column.command-handler';\nimport { CompositionMoveRightColumnCommandHandler } from './column/move/right/composition.move-right-column.command-handler';\nimport { CompositionChangeSortStatusEventHandler } from './column/sort/composition-change-sort-status.event-handler';\nimport { CompositionDispatcher } from './composition.dispatcher';\nimport { ColumnEntityFactory } from '../domain/column/column-entity.factory';\nimport { ColumnPresentationConverter } from '../domain/column/presentation/column.presentation.converter';\nimport { CompositionEventConverter } from './composition.event-converter';\nimport { ColumnFieldFactory } from '../domain/column/field/colum-field.factory';\nimport { CompositionGroupFactory } from './group/composition.group.factory';\nimport { SetGroupsCommandHandler } from './group/set-groups/set-groups.command-handler';\nimport { ColumnHighlightArchive } from '../domain/highlight/column-highlight.archive';\nimport { InMemoryCompositionAggregateStore } from '../persist/domain/in-memory.composition.aggregate-store';\nimport { CompositionAggregateRepository } from './composition.aggregate-repository';\nimport { InMemoryCompositionAggregateRepository } from '../persist/domain/in-memory.composition.aggregate-repository';\nimport { InMemoryCompositionStore } from '../persist/in-memory.composition.store';\nimport { InMemoryCompositionReadStore } from '../persist/api/in-memory.composition.read-store';\nimport { CompositionReadModelRootRepository } from '../core-read/composition.read-model-root-repository';\nimport { InMemoryCompositionRepository } from '../persist/api/in-memory.composition.repository';\nimport { CreateCompositionCommandHandler } from './create/create-composition.command-handler';\nimport { CompositionAggregateFactory } from './composition.aggregate-factory';\n\nconst compositionKey = 'CompositionAggregate';\n\n\nexport class CompositionDomainModule implements DomainProviders {\n\n\tdefineAggregate(): AggregateDefinition<any, any, any> | null {\n\t\treturn {\n\t\t\taggregateKey: compositionKey,\n\t\t\tcreateCommandHandler: CreateCompositionCommandHandler,\n\t\t\tfactory: CompositionAggregateFactory,\n\t\t\trepository: InMemoryCompositionAggregateRepository\n\t\t};\n\t}\n\n\tregisterKey(): string {\n\t\treturn compositionKey;\n\t}\n\n\tregisterProviders(container: Container): void {\n\t\tcontainer.provide(InMemoryCompositionAggregateStore);\n\t\tcontainer.provide(CompositionAggregateRepository, InMemoryCompositionAggregateRepository);\n\t\tcontainer.provide(CompositionDispatcher);\n\t\tcontainer.provide(ColumnEntityFactory);\n\t\tcontainer.provide(ColumnPresentationConverter);\n\t\tcontainer.provide(CompositionEventConverter);\n\t\tcontainer.provide(ColumnFieldFactory);\n\t\tcontainer.provide(CompositionGroupFactory);\n\t\tcontainer.provide(ColumnHighlightArchive);\n\n\t\tcontainer.provide(InMemoryCompositionStore);\n\t\tcontainer.provide(InMemoryCompositionReadStore);\n\t\tcontainer.provide(CompositionReadModelRootRepository, InMemoryCompositionRepository);\n\t}\n\n\tregisterCommandHandlers<I extends AggregateId, A extends AggregateRoot<I>, C extends Command<I>>(): Array<any> {\n\t\treturn [\n\t\t\tSetColumnsCommandHandler,\n\t\t\tSetCompositionWidthCommandHandler,\n\t\t\tSetCompositionResizeWidthCommandHandler,\n\t\t\tSetCompositionContainerWidthCommandHandler,\n\t\t\tCompositionSetColumnEnabledCommandHandler,\n\t\t\tCompositionChangeSortStatusCommandHandler,\n\t\t\tCompositionMoveLeftColumnCommandHandler,\n\t\t\tCompositionMoveRightColumnCommandHandler,\n\t\t\tSetGroupsCommandHandler\n\t\t];\n\t}\n\n\tregisterDomainEventHandler(): Array<any> {\n\t\treturn [];\n\t}\n\n\tregisterMultiDomainEventHandler<I extends AggregateId, E extends DomainEvent<I>>(): Array<any> {\n\t\treturn [\n\t\t\tCompositionChangeSortStatusEventHandler\n\t\t];\n\t}\n\n}\n","import { ChangeDetectionStrategy, Component, ElementRef, Input, ViewEncapsulation } from '@angular/core';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\n\nimport { CellValue } from '../../../../../../core/composition/src/core-read/definition/cell-value';\nimport { PureComponent } from '../../../../../common/component/src/pure-component';\n\n\n@Component({\n\tselector: 'gui-function-view',\n\ttemplate: `\n\n\t\t<div class=\"gui-h-full gui-flex gui-items-center\"\n\t\t\t [innerHTML]=\"safeHTML\">\n\t\t</div>\n\n\t`,\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tencapsulation: ViewEncapsulation.None\n})\nexport class FunctionViewComponent extends PureComponent {\n\n\t@Input()\n\telement: CellValue;\n\n\tsafeHTML: SafeHtml;\n\n\tconstructor(private readonly sanitizer: DomSanitizer,\n\t\t\t\telRef: ElementRef) {\n\t\tsuper(elRef);\n\n\t\tthis.addClassToHost('gui-h-full');\n\t\tthis.addClassToHost('gui-w-full');\n\t}\n\n\tngOnChanges() {\n\t\tthis.safeHTML = this.sanitizer.bypassSecurityTrustHtml(this.element.value);\n\t}\n\n\tprotected getSelectorName(): string {\n\t\treturn 'gui-function-view';\n\t}\n\n}\n","import { ChangeDetectionStrategy, Component, ElementRef, Input, ViewEncapsulation } from '@angular/core';\n\nimport { PureComponent } from '../../../../../common/component/src/pure-component';\n\n@Component({\n\tselector: 'gui-percentage-view[value]',\n\ttemplate: `\n\t\t{{ value }} %\n\t`,\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tencapsulation: ViewEncapsulation.None\n})\nexport class PercentageViewComponent extends PureComponent {\n\n\t@Input()\n\tvalue: number;\n\n\tconstructor(elementRef: ElementRef) {\n\t\tsuper(elementRef);\n\t}\n\n\tprotected getSelectorName(): string {\n\t\treturn 'gui-percentage-view';\n\t}\n\n}\n","import { ChangeDetectionStrategy, Component, ElementRef, Input, OnChanges, ViewEncapsulation } from '@angular/core';\nimport { PureComponent } from '../../../../../common/component/src/pure-component';\nimport { NgChanges } from '../../../../../common/component/src/ng-changes';\nimport { ifChanged } from '../../../../../common/component/src/check.input';\n\n@Component({\n\tselector: 'gui-bar-view[value]',\n\ttemplate: `\n\t\t<div class=\"gui-percentage-bar\">\n\t\t\t<div class=\"gui-percentage\" [style.width.%]=\"width\">\n\t\t\t</div>\n\t\t\t<gui-percentage-view *ngIf=\"showPercentage\"\n\t\t\t\t\t\t\t\t [value]=\"value\">\n\t\t\t</gui-percentage-view>\n\t\t</div>\n\t`,\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tencapsulation: ViewEncapsulation.None\n})\nexport class BarViewComponent extends PureComponent implements OnChanges {\n\n\t@Input()\n\tvalue: number;\n\n\t@Input()\n\tshowPercentage: boolean = false;\n\n\twidth: number;\n\n\tconstructor(elementRef: ElementRef) {\n\t\tsuper(elementRef);\n\t}\n\n\tngOnChanges(changes: NgChanges<BarViewComponent>) {\n\n\t\tifChanged(changes.value, () => {\n\t\t\tthis.width = this.value > 100 ? 100 : this.value;\n\t\t});\n\t}\n\n\tprotected getSelectorName(): string {\n\t\treturn 'gui-bar-view';\n\t}\n\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { DomSanitizer, SafeHtml, SafeResourceUrl, SafeScript, SafeStyle, SafeUrl } from '@angular/platform-browser';\n\n@Pipe({\n\tname: 'guiSafe'\n})\nexport class SafePipe implements PipeTransform {\n\n\tconstructor(protected sanitizer: DomSanitizer) {\n\t}\n\n\ttransform(value: any, type: string): SafeHtml | SafeStyle | SafeScript | SafeUrl | SafeResourceUrl {\n\t\tswitch (type) {\n\t\t\tcase 'html':\n\t\t\t\treturn this.sanitizer.bypassSecurityTrustHtml(value);\n\t\t\tcase 'style':\n\t\t\t\treturn this.sanitizer.bypassSecurityTrustStyle(value);\n\t\t\tcase 'script':\n\t\t\t\treturn this.sanitizer.bypassSecurityTrustScript(value);\n\t\t\tcase 'url':\n\t\t\t\treturn this.sanitizer.bypassSecurityTrustUrl(value);\n\t\t\tcase 'resourceUrl':\n\t\t\t\treturn this.sanitizer.bypassSecurityTrustResourceUrl(value);\n\t\t\tdefault:\n\t\t\t\tthrow new Error(`Invalid safe type specified: ${type}`);\n\t\t}\n\t}\n}\n","import { Attribute, ChangeDetectionStrategy, Component, ElementRef, Input, ViewEncapsulation } from '@angular/core';\n\nimport { CellValue, CellValueType } from '../../../../../../core/composition/src/core-read/definition/cell-value';\nimport { PureComponent } from '../../../../../common/component/src/pure-component';\n\n@Component({\n\tselector: 'gui-view-text[value]',\n\ttemplate: `\n\n\t\t<ng-container *ngIf=\"isHtml; else text\">\n\t\t\t<span [innerHTML]=\"value.value | guiSafe: 'html'\"></span>\n\t\t</ng-container>\n\n\t\t<ng-template #text>\n\t\t\t<span>\n\t\t\t\t{{value.value}}\n\t\t\t</span>\n\t\t</ng-template>\n\t`,\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tencapsulation: ViewEncapsulation.None\n})\nexport class TextViewComponent extends PureComponent {\n\n\t@Input()\n\tvalue: CellValue;\n\n\tisHtml = false;\n\n\tconstructor(@Attribute('bold') isBold: any,\n\t\t\t\t@Attribute('italic') isItalic: any,\n\t\t\t\telementRef: ElementRef) {\n\t\tsuper(elementRef);\n\n\t\tif (isBold !== null) {\n\t\t\tthis.addClassToHost('gui-bold');\n\t\t}\n\n\t\tif (isItalic !== null) {\n\t\t\tthis.addClassToHost('gui-italic');\n\t\t}\n\t}\n\n\tngOnChanges() {\n\t\tthis.isHtml = this.value.type === CellValueType.HTML;\n\t}\n\n\tprotected getSelectorName(): string {\n\t\treturn 'gui-text-view';\n\t}\n\n}\n","import { ChangeDetectionStrategy, Component, ElementRef, Input, ViewEncapsulation } from '@angular/core';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\n\nimport { CellValue } from '../../../../../../core/composition/src/core-read/definition/cell-value';\nimport { PureComponent } from '../../../../../common/component/src/pure-component';\n\n\n@Component({\n\tselector: 'gui-html-view',\n\ttemplate: `\n\n\t\t<div class=\"gui-h-full gui-flex gui-items-center\"\n\t\t\t [innerHTML]=\"safeHTML\">\n\t\t</div>\n\n\t`,\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tencapsulation: ViewEncapsulation.None\n})\nexport class HtmlViewComponent extends PureComponent {\n\n\t@Input()\n\telement: CellValue;\n\n\tsafeHTML: SafeHtml;\n\n\tconstructor(private readonly sanitizer: DomSanitizer,\n\t\t\t\telRef: ElementRef) {\n\t\tsuper(elRef);\n\n\t\tthis.addClassToHost('gui-h-full');\n\t\tthis.addClassToHost('gui-w-full');\n\t}\n\n\tngOnChanges() {\n\t\tthis.safeHTML = this.sanitizer.bypassSecurityTrustHtml(this.element.value);\n\t}\n\n\tprotected getSelectorName(): string {\n\t\treturn 'gui-html-view';\n\t}\n\n}\n","import { Component, TemplateRef, ViewChild } from '@angular/core';\n\nimport { CellView } from '../../../../../core/composition/src/domain/column/cell-view';\nimport { TemplatesComponent } from '../template/templates.component';\n\n\n@Component({\n\ttemplate: `\n\n\t\t<ng-template #text let-element=\"element\">\n\t\t\t<gui-view-text [value]=\"element\"></gui-view-text>\n\t\t</ng-template>\n\n\t\t<ng-template #number let-element=\"element\">\n\t\t\t<span class=\"gui-cell-number\">\n\t\t\t\t{{ element.value }}\n\t\t\t</span>\n\t\t</ng-template>\n\n\t\t<ng-template #chip let-element=\"element\">\n\t\t\t<gui-chip>\n\t\t\t\t<gui-view-text [value]=\"element\"></gui-view-text>\n\t\t\t</gui-chip>\n\t\t</ng-template>\n\n\t\t<ng-template #link let-element=\"element\">\n\t\t\t<a gui-button link=\"true\" href=\"{{ element.value }}\">\n\t\t\t\t<gui-view-text [value]=\"element\"></gui-view-text>\n\t\t\t</a>\n\t\t</ng-template>\n\n\t\t<ng-template #image let-element=\"element\">\n\t\t\t<img src=\"{{ element.value }}\"/>\n\t\t</ng-template>\n\n\t\t<ng-template #checkbox let-element=\"element\">\n\t\t\t<span class=\"gui-cell-boolean\">\n\t\t\t\t<gui-checkbox [checked]=\"!!element.value\" [disabled]=\"true\"></gui-checkbox>\n\t\t\t</span>\n\t\t</ng-template>\n\n\t\t<ng-template #bold let-element=\"element\">\n\t\t\t<gui-view-text bold [value]=\"element\"></gui-view-text>\n\t\t</ng-template>\n\n\t\t<ng-template #italic let-element=\"element\">\n\t\t\t<gui-view-text italic [value]=\"element\"></gui-view-text>\n\t\t</ng-template>\n\n\t\t<ng-template #custom let-element=\"element\">\n\t\t\t{{ element.value }}\n\t\t</ng-template>\n\n\t\t<ng-template #function let-element=\"element\">\n\t\t\t<gui-function-view [element]=\"element\"></gui-function-view>\n\t\t</ng-template>\n\n\t\t<ng-template #html let-element=\"element\">\n\t\t\t<gui-html-view [element]=\"element\"></gui-html-view>\n\t\t</ng-template>\n\n\t\t<ng-template #date let-element=\"element\">\n\t\t\t<span class=\"gui-view-text\">{{ element.value | date: 'dd/MM/yyyy' }}</span>\n\t\t</ng-template>\n\n\t\t<ng-template #bar let-element=\"element\">\n\t\t\t<gui-bar-view [value]=\"element.value\" [showPercentage]=\"false\"></gui-bar-view>\n\t\t</ng-template>\n\n\t\t<ng-template #percentageBar let-element=\"element\">\n\t\t\t<gui-bar-view [value]=\"element.value\" [showPercentage]=\"true\"></gui-bar-view>\n\t\t</ng-template>\n\n\t\t<ng-template #percentage let-element=\"element\">\n\t\t\t<gui-percentage-view [value]=\"element.value\"></gui-percentage-view>\n\t\t</ng-template>\n\n\t`\n})\nexport class ViewTemplatesComponent implements TemplatesComponent {\n\n\t@ViewChild('text', { read: TemplateRef, static: true })\n\ttextTemplate: TemplateRef<any>;\n\n\t@ViewChild('number', { read: TemplateRef, static: true })\n\tnumberTemplate: TemplateRef<any>;\n\n\t@ViewChild('chip', { read: TemplateRef, static: true })\n\tchipTemplate: TemplateRef<any>;\n\n\t@ViewChild('link', { read: TemplateRef, static: true })\n\tlinkTemplate: TemplateRef<any>;\n\n\t@ViewChild('image', { read: TemplateRef, static: true })\n\timageTemplate: TemplateRef<any>;\n\n\t@ViewChild('checkbox', { read: TemplateRef, static: true })\n\tcheckboxTemplate: TemplateRef<any>;\n\n\t@ViewChild('bold', { read: TemplateRef, static: true })\n\tboldTemplate: TemplateRef<any>;\n\n\t@ViewChild('italic', { read: TemplateRef, static: true })\n\titalicTemplate: TemplateRef<any>;\n\n\t@ViewChild('custom', { read: TemplateRef, static: true })\n\tcustomTemplate: TemplateRef<any>;\n\n\t@ViewChild('function', { read: TemplateRef, static: true })\n\tfunctionTemplate: TemplateRef<any>;\n\n\t@ViewChild('html', { read: TemplateRef, static: true })\n\thtmlTemplate: TemplateRef<any>;\n\n\t@ViewChild('date', { read: TemplateRef, static: true })\n\tdateTemplate: TemplateRef<any>;\n\n\t@ViewChild('bar', { read: TemplateRef, static: true })\n\tbarTemplate: TemplateRef<any>;\n\n\t@ViewChild('percentageBar', { read: TemplateRef, static: true })\n\tpercentageBarTemplate: TemplateRef<any>;\n\n\t@ViewChild('percentage', { read: TemplateRef, static: true })\n\tpercentageTemplate: TemplateRef<any>;\n\n\tgetTemplate(view: CellView): TemplateRef<any> {\n\n\t\tswitch (view) {\n\n\t\t\tcase CellView.TEXT:\n\t\t\t\treturn this.textTemplate;\n\n\t\t\tcase CellView.NUMBER:\n\t\t\t\treturn this.numberTemplate;\n\n\t\t\tcase CellView.CHIP:\n\t\t\t\treturn this.chipTemplate;\n\n\t\t\tcase CellView.LINK:\n\t\t\t\treturn this.linkTemplate;\n\n\t\t\tcase CellView.IMAGE:\n\t\t\t\treturn this.imageTemplate;\n\n\t\t\tcase CellView.CHECKBOX:\n\t\t\t\treturn this.checkboxTemplate;\n\n\t\t\tcase CellView.BOLD:\n\t\t\t\treturn this.boldTemplate;\n\n\t\t\tcase CellView.ITALIC:\n\t\t\t\treturn this.italicTemplate;\n\n\t\t\tcase CellView.CUSTOM:\n\t\t\t\treturn this.customTemplate;\n\n\t\t\tcase CellView.FUNCTION:\n\t\t\t\treturn this.functionTemplate;\n\n\t\t\tcase CellView.HTML:\n\t\t\t\treturn this.htmlTemplate;\n\n\t\t\tcase CellView.DATE:\n\t\t\t\treturn this.dateTemplate;\n\n\t\t\tcase CellView.BAR:\n\t\t\t\treturn this.barTemplate;\n\n\t\t\tcase CellView.PERCENTAGE_BAR:\n\t\t\t\treturn this.percentageBarTemplate;\n\n\t\t\tcase CellView.PERCENTAGE:\n\t\t\t\treturn this.percentageTemplate;\n\n\t\t\tdefault:\n\t\t\t\treturn this.textTemplate;\n\t\t}\n\t}\n\n}\n","import { ComponentFactoryResolver, ComponentRef, Injector, TemplateRef, Type } from '@angular/core';\nimport { TemplatesComponent } from './templates.component';\nimport { DataType } from '../../../../../core/structure/field/src/domain/field/data/data-type';\nimport { CellView } from '../../../../../core/composition/src/domain/column/cell-view';\n\n\nexport abstract class TemplateFactory<T extends TemplatesComponent> {\n\n\tprivate templates: Map<DataType | CellView, TemplateRef<any>> = new Map<DataType | CellView, TemplateRef<any>>();\n\n\tprivate templatesComponent: ComponentRef<T> = null;\n\n\tprotected constructor(private readonly templatesComponentDefinition: Type<T>,\n\t\t\t\t\t\t  private readonly componentFactoryResolver: ComponentFactoryResolver) {\n\t\tthis.createTemplatesComponent();\n\t}\n\n\tabstract generateMapKeys(): Array<DataType | CellView>;\n\n\tgetTemplates(): Map<DataType | CellView, TemplateRef<any>> {\n\t\treturn this.templates;\n\t}\n\n\tdestroy(): void {\n\t\tif (this.templatesComponent) {\n\t\t\tthis.templatesComponent.destroy();\n\t\t\tthis.templatesComponent = null;\n\t\t}\n\t}\n\n\tprivate createTemplatesComponent(): void {\n\n\t\tconst componentFactory = this.componentFactoryResolver.resolveComponentFactory(this.templatesComponentDefinition);\n\n\t\tconst injector: Injector = Injector.create({ providers: [] });\n\n\t\tthis.templatesComponent = componentFactory.create(injector);\n\n\t\tthis.generateMap();\n\t}\n\n\tprivate generateMap(): void {\n\t\tthis.generateMapKeys()\n\t\t\t.forEach((type: DataType | CellView) => {\n\t\t\t\tthis.findAndSetTemplate(type);\n\t\t\t});\n\t};\n\n\tprivate findAndSetTemplate(dt: DataType | CellView): void {\n\n\t\tconst template = this.templatesComponent.instance.getTemplate(dt);\n\n\t\tthis.templates.set(dt, template);\n\t}\n\n}\n","import { ComponentFactoryResolver, Injectable } from '@angular/core';\n\nimport { ViewTemplatesComponent } from './view-templates.component';\nimport { CellView } from '../../../../../core/composition/src/domain/column/cell-view';\nimport { TemplateFactory } from '../template/template.factory';\n\n@Injectable()\nexport class ViewTemplateFactory extends TemplateFactory<ViewTemplatesComponent> {\n\n\tconstructor(componentFactoryResolver: ComponentFactoryResolver) {\n\t\tsuper(\n\t\t\tViewTemplatesComponent,\n\t\t\tcomponentFactoryResolver\n\t\t);\n\t}\n\n\tstatic readonly services = [ComponentFactoryResolver];\n\n\tgenerateMapKeys(): Array<CellView> {\n\t\treturn Object.keys(CellView)\n\t\t\t\t\t .map(key => CellView[key]);\n\t}\n}\n","import { Injectable, TemplateRef } from '@angular/core';\nimport { ViewTemplateFactory } from './view-template.factory';\nimport { CellView } from '../../../../../core/composition/src/domain/column/cell-view';\n\n\n@Injectable()\nexport class ViewTemplateRepository {\n\n\tconstructor(private readonly columnTemplateFactory: ViewTemplateFactory) {\n\t}\n\n\tstatic readonly services = [ViewTemplateFactory];\n\n\tfindTemplate(view: CellView): TemplateRef<any> {\n\t\tconst typeToTemplate = this.columnTemplateFactory.getTemplates();\n\n\t\treturn typeToTemplate.get(view);\n\t}\n\n}\n","export enum EditEventType {\n\tSUBMIT,\n\tBLUR,\n\tCANCEL\n}\n","import { ChangeDetectorRef, Directive, ElementRef, Input } from '@angular/core';\n\nimport { SmartComponent } from '../../../../common/component/src/smart-component';\n\nimport { ChangedValueEmitter } from './changed-value.emitter';\nimport { EditEventType } from './state/edit.event-type';\n\n@Directive()\nexport abstract class EditCommunicationComponent<T> extends SmartComponent {\n\n\t@Input()\n\tvalue: T;\n\n\t@Input()\n\tvalueChanges: ChangedValueEmitter<T>;\n\n\t@Input()\n\tstatus: ChangedValueEmitter<EditEventType>;\n\n\t@Input()\n\tfocus: boolean;\n\n\t@Input()\n\tparent: ElementRef;\n\n\tprotected readonly ENTER_KEY_CODE = 13;\n\n\tprotected readonly ESC_KEY_CODE = 27;\n\n\tprotected constructor(changeDetectorRef: ChangeDetectorRef,\n\t\t\t\t\t\t  elementRef: ElementRef) {\n\t\tsuper(changeDetectorRef, elementRef);\n\t}\n\n\tsubmit(): void {\n\t\tthis.emitStatus(EditEventType.SUBMIT);\n\t}\n\n\tcancel(): void {\n\t\tthis.emitStatus(EditEventType.CANCEL);\n\t}\n\n\tprivate emitStatus(status: EditEventType): void {\n\t\tif (this.status) {\n\t\t\tthis.status.emit(status);\n\t\t}\n\t}\n\n}\n","import { ChangeDetectorRef, Directive, ElementRef, ViewChild } from '@angular/core';\nimport { FormBuilder, FormGroup } from '@angular/forms';\n\nimport { EditCommunicationComponent } from '../edit-communication.component';\nimport { NgChanges } from '../../../../../common/component/src/ng-changes';\nimport { fromRxJsObservable, hermesFilter, hermesFromEvent } from '@generic-ui/hermes';\nimport { Observable } from 'rxjs';\n\n@Directive()\nexport abstract class InputEditTemplateComponent<T> extends EditCommunicationComponent<T> {\n\n\t@ViewChild('input', { static: true })\n\tinputRef: ElementRef;\n\n\tfilterForm: FormGroup;\n\n\treadonly filterFieldName = 'phrase';\n\n\tprotected constructor(changeDetectorRef: ChangeDetectorRef,\n\t\t\t\t\t\t  elementRef: ElementRef,\n\t\t\t\t\t\t  private readonly formBuilder: FormBuilder) {\n\t\tsuper(changeDetectorRef, elementRef);\n\t\tthis.filterForm = this.formBuilder.group({\n\t\t\t[this.filterFieldName]: ['']\n\t\t});\n\t}\n\n\tngOnChanges(changes: NgChanges<InputEditTemplateComponent<any>>) {\n\t\tif (changes.value !== undefined) {\n\t\t\tthis.filterForm.get(this.filterFieldName).setValue(this.value);\n\t\t}\n\t}\n\n\tngOnInit() {\n\t\tthis.observeChanges();\n\t}\n\n\tngAfterViewInit() {\n\t\tconst inputElement = this.inputRef.nativeElement;\n\n\t\tthis.focusField(inputElement);\n\n\t\tthis.emitValueChange(inputElement.value);\n\n\t\thermesFromEvent(inputElement, 'blur')\n\t\t\t.pipe(\n\t\t\t\tthis.takeUntil()\n\t\t\t)\n\t\t\t.subscribe(() => {\n\t\t\t\tthis.unsubscribe();\n\t\t\t\tthis.submit();\n\t\t\t});\n\n\t\tconst keyup$ = hermesFromEvent(inputElement, 'keyup');\n\n\t\tkeyup$\n\t\t\t.pipe(\n\t\t\t\thermesFilter((e: any) => e.keyCode === this.ENTER_KEY_CODE),\n\t\t\t\tthis.takeUntil()\n\t\t\t)\n\t\t\t.subscribe(() => {\n\t\t\t\tthis.unsubscribe();\n\t\t\t\tthis.submit();\n\t\t\t});\n\n\t\tkeyup$\n\t\t\t.pipe(\n\t\t\t\thermesFilter((e: any) => e.keyCode === this.ESC_KEY_CODE),\n\t\t\t\tthis.takeUntil()\n\t\t\t)\n\t\t\t.subscribe(() => {\n\t\t\t\tthis.unsubscribe();\n\t\t\t\tthis.cancel();\n\t\t\t});\n\t}\n\n\tfocusField(inputElement: HTMLElement): void {\n\t\tif (this.focus) {\n\t\t\tinputElement.focus();\n\t\t}\n\t}\n\n\tprivate observeChanges() {\n\t\tfromRxJsObservable(\n\t\t\t// @ts-ignore\n\t\t\t\t\tthis.filterForm\n\t\t\t\t.controls[this.filterFieldName]\n\t\t\t\t.valueChanges as Observable<string>\n\t\t)\n\t\t\t.pipe(\n\t\t\t\tthis.takeUntil()\n\t\t\t)\n\t\t\t.subscribe((value: string) => {\n\t\t\t\tthis.emitValueChange(value);\n\t\t\t});\n\t}\n\n\tprivate emitValueChange(value: any): void {\n\t\tif (this.valueChanges) {\n\t\t\tthis.valueChanges.emit(value);\n\t\t}\n\t}\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, ViewEncapsulation } from '@angular/core';\nimport { FormBuilder } from '@angular/forms';\n\nimport { InputEditTemplateComponent } from './input-edit-template.component';\n\n\n@Component({\n\tselector: 'gui-string-edit',\n\ttemplate: `\n\n\t\t<form [formGroup]=\"filterForm\">\n\t\t\t<input #input [formControlName]=\"filterFieldName\" type=\"type\" class=\"gui-input\"/>\n\t\t</form>\n\n\t`,\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tencapsulation: ViewEncapsulation.None\n})\nexport class StringEditTemplateComponent extends InputEditTemplateComponent<string> {\n\n\tconstructor(changeDetectorRef: ChangeDetectorRef,\n\t\t\t\telementRef: ElementRef,\n\t\t\t\tfb: FormBuilder) {\n\t\tsuper(changeDetectorRef, elementRef, fb);\n\t}\n\n\toverride focusField(inputElement: any): void {\n\n\t\tif (this.focus) {\n\t\t\tinputElement.focus();\n\t\t\tinputElement.setSelectionRange(0, inputElement.value.length);\n\t\t}\n\t}\n\n\tprotected getSelectorName(): string {\n\t\treturn 'gui-string-edit';\n\t}\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, ViewEncapsulation } from '@angular/core';\nimport { FormBuilder } from '@angular/forms';\nimport { InputEditTemplateComponent } from './input-edit-template.component';\n\n\n@Component({\n\tselector: 'gui-number-edit',\n\ttemplate: `\n\n\t\t<form [formGroup]=\"filterForm\">\n\t\t\t<input #input [formControlName]=\"filterFieldName\" type=\"number\" class=\"gui-input\"/>\n\t\t</form>\n\n\t`,\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tencapsulation: ViewEncapsulation.None\n})\nexport class NumberEditTemplateComponent extends InputEditTemplateComponent<number> {\n\n\tconstructor(changeDetectorRef: ChangeDetectorRef,\n\t\t\t\telementRef: ElementRef,\n\t\t\t\tfb: FormBuilder) {\n\t\tsuper(changeDetectorRef, elementRef, fb);\n\t}\n\n\tprotected getSelectorName(): string {\n\t\treturn 'gui-number-edit';\n\t}\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, ViewChild, ViewEncapsulation } from '@angular/core';\n\nimport { EditCommunicationComponent } from '../edit-communication.component';\n\n\n@Component({\n\tselector: 'gui-boolean-edit',\n\ttemplate: `\n\n\t\t<span class=\"gui-cell-boolean\">\n\t\t\t<gui-checkbox #checkbox\n\t\t\t\t\t\t  [checked]=\"value\"\n\t\t\t\t\t\t  [name]=\"filterFieldName\"\n\t\t\t\t\t\t  (changed)=\"toggle($event)\">\n\t\t\t</gui-checkbox>\n\t\t</span>\n\n\t`,\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tencapsulation: ViewEncapsulation.None\n})\nexport class BooleanEditTemplateComponent extends EditCommunicationComponent<boolean> {\n\n\t@ViewChild('checkbox', { read: ElementRef, static: true })\n\tcheckboxRef: ElementRef;\n\n\treadonly filterFieldName = 'booleanEdit';\n\n\tconstructor(private readonly changeDetectorRef: ChangeDetectorRef,\n\t\t\t\telementRef: ElementRef) {\n\t\tsuper(changeDetectorRef, elementRef);\n\t}\n\n\ttoggle(changed: boolean): void {\n\t\tthis.valueChanges.emit(changed);\n\t\tthis.submit();\n\t}\n\n\tprotected getSelectorName(): string {\n\t\treturn 'gui-boolean-edit';\n\t}\n\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, ViewChild, ViewEncapsulation } from '@angular/core';\n\nimport { EditCommunicationComponent } from '../edit-communication.component';\n\nimport { StreamCloser } from '../../../../../../core/common/src/cdk/reactive/stream-closer';\nimport { hermesFilter, hermesFromEvent } from '@generic-ui/hermes';\n\n\n@Component({\n\tselector: 'gui-date-edit',\n\ttemplate: `\n\n\t\t<gui-date-picker #datepicker\n\t\t\t\t\t\t [selectDate]=\"value\"\n\t\t\t\t\t\t [name]=\"filterFieldName\"\n\t\t\t\t\t\t [openDialog]=\"true\"\n\t\t\t\t\t\t [onlyDialog]=\"false\"\n\t\t\t\t\t\t [parentElement]=\"parent\"\n\t\t\t\t\t\t (dialogOpened)=\"dialogOpened($event)\"\n\t\t\t\t\t\t (dateSelected)=\"toggle($event)\">\n\t\t</gui-date-picker>\n\n\t`,\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tencapsulation: ViewEncapsulation.None\n})\nexport class DateEditTemplateComponent extends EditCommunicationComponent<Date> {\n\n\t@ViewChild('datepicker', { read: ElementRef, static: true })\n\tdatePickerRef: ElementRef;\n\n\treadonly filterFieldName = 'dateEdit';\n\n\tprivate opened = false;\n\n\tprivate readonly localStreamCloser = new StreamCloser();\n\n\tconstructor(private readonly changeDetectorRef: ChangeDetectorRef,\n\t\t\t\telementRef: ElementRef) {\n\t\tsuper(changeDetectorRef, elementRef);\n\t}\n\n\tngAfterViewInit() {\n\t\tconst inputElement = this.datePickerRef.nativeElement.querySelector('.gui-date-picker-input');\n\n\t\tconst keyup$ = hermesFromEvent(inputElement, 'keyup');\n\n\t\tkeyup$\n\t\t\t.pipe(\n\t\t\t\thermesFilter((e: any) => e.keyCode === this.ENTER_KEY_CODE),\n\t\t\t\tthis.localStreamCloser.takeUntil()\n\t\t\t)\n\t\t\t.subscribe(() => {\n\t\t\t\tthis.localStreamCloser.unsubscribe();\n\t\t\t\tthis.submit();\n\t\t\t});\n\n\t\tkeyup$\n\t\t\t.pipe(\n\t\t\t\thermesFilter((e: any) => e.keyCode === this.ESC_KEY_CODE),\n\t\t\t\tthis.localStreamCloser.takeUntil()\n\t\t\t)\n\t\t\t.subscribe(() => {\n\t\t\t\tthis.localStreamCloser.unsubscribe();\n\t\t\t\tthis.cancel();\n\t\t\t});\n\t}\n\n\tngOnDestroy() {\n\t\tthis.localStreamCloser.unsubscribe();\n\t\tsuper.ngOnDestroy();\n\t}\n\n\ttoggle(changed: Date): void {\n\t\tthis.valueChanges.emit(changed);\n\t}\n\n\tdialogOpened(opened: boolean): void {\n\t\tthis.opened = opened;\n\n\t\tif (!opened) {\n\t\t\tthis.localStreamCloser.unsubscribe();\n\t\t\tthis.submit();\n\t\t}\n\t}\n\n\tprotected getSelectorName(): string {\n\t\treturn 'gui-date-edit';\n\t}\n\n}\n","import { Component, TemplateRef, ViewChild } from '@angular/core';\n\nimport { TemplatesComponent } from '../template/templates.component';\nimport { DataType } from '../../../../../core/structure/field/src/domain/field/data/data-type';\n\n\n@Component({\n\ttemplate: `\n\n\t\t<ng-template #string let-valueChanges=\"valueChanges\" let-value=\"value\" let-status=\"status\" let-focus=\"focus\">\n\t\t\t<gui-string-edit [valueChanges]=\"valueChanges\" [value]=\"value\" [status]=\"status\" [focus]=\"focus\">\n\t\t\t</gui-string-edit>\n\t\t</ng-template>\n\n\t\t<ng-template #number let-valueChanges=\"valueChanges\" let-value=\"value\" let-status=\"status\" let-focus=\"focus\">\n\t\t\t<gui-number-edit [valueChanges]=\"valueChanges\" [value]=\"value\" [status]=\"status\" [focus]=\"focus\">\n\t\t\t</gui-number-edit>\n\t\t</ng-template>\n\n\t\t<ng-template #boolean let-valueChanges=\"valueChanges\" let-value=\"value\" let-status=\"status\" let-focus=\"focus\">\n\t\t\t<gui-boolean-edit [valueChanges]=\"valueChanges\" [value]=\"value\" [status]=\"status\" [focus]=\"focus\">\n\t\t\t</gui-boolean-edit>\n\t\t</ng-template>\n\n\t\t<ng-template #date let-valueChanges=\"valueChanges\" let-value=\"value\" let-status=\"status\" let-focus=\"focus\" let-parent=\"parent\">\n\t\t\t<gui-date-edit [valueChanges]=\"valueChanges\" [value]=\"value\" [status]=\"status\" [focus]=\"focus\" [parent]=\"parent\">\n\t\t\t</gui-date-edit>\n\t\t</ng-template>\n\n\t\t<ng-template #empty>\n\n\t\t</ng-template>\n\n\t`\n})\nexport class EditTemplatesComponent implements TemplatesComponent {\n\n\t@ViewChild('string', { read: TemplateRef, static: true })\n\tstringTemplate: TemplateRef<any>;\n\n\t@ViewChild('number', { read: TemplateRef, static: true })\n\tnumberTemplate: TemplateRef<any>;\n\n\t@ViewChild('boolean', { read: TemplateRef, static: true })\n\tbooleanTemplate: TemplateRef<any>;\n\n\t@ViewChild('date', { read: TemplateRef, static: true })\n\tdateTemplate: TemplateRef<any>;\n\n\t@ViewChild('empty', { read: TemplateRef, static: true })\n\temptyTemplate: TemplateRef<any>;\n\n\tgetTemplate(dataType: DataType): TemplateRef<any> {\n\n\t\tswitch (dataType) {\n\n\t\t\tcase DataType.STRING:\n\t\t\t\treturn this.stringTemplate;\n\n\t\t\tcase DataType.NUMBER:\n\t\t\t\treturn this.numberTemplate;\n\n\t\t\tcase DataType.BOOLEAN:\n\t\t\t\treturn this.booleanTemplate;\n\n\t\t\tcase DataType.DATE:\n\t\t\t\treturn this.dateTemplate;\n\n\t\t\tdefault:\n\t\t\t\treturn this.emptyTemplate;\n\t\t}\n\t}\n\n}\n","import { ComponentFactoryResolver, Injectable } from '@angular/core';\nimport { TemplateFactory } from '../template/template.factory';\nimport { EditTemplatesComponent } from './edit-templates.component';\nimport { DataType } from '../../../../../core/structure/field/src/domain/field/data/data-type';\n\n@Injectable()\nexport class EditTemplateFactory extends TemplateFactory<EditTemplatesComponent> {\n\n\tconstructor(componentFactoryResolver: ComponentFactoryResolver) {\n\t\tsuper(\n\t\t\tEditTemplatesComponent,\n\t\t\tcomponentFactoryResolver\n\t\t);\n\t}\n\n\tstatic readonly services = [ComponentFactoryResolver];\n\n\tgenerateMapKeys(): Array<DataType> {\n\t\treturn Object.keys(DataType)\n\t\t\t\t\t .map(key => DataType[key]);\n\t}\n}\n","import { Injectable, TemplateRef } from '@angular/core';\nimport { EditTemplateFactory } from './edit-template.factory';\nimport { DataType } from '../../../../../core/structure/field/src/domain/field/data/data-type';\n\n@Injectable()\nexport class EditTemplateRepository {\n\n\tconstructor(private editTemplateFactory: EditTemplateFactory) {\n\t}\n\n\tstatic readonly services = [EditTemplateFactory];\n\n\tfindTemplate(dataType: DataType): TemplateRef<any> {\n\t\tconst typeToTemplate = this.editTemplateFactory.getTemplates();\n\n\t\treturn typeToTemplate.get(dataType);\n\t}\n\n}\n","import { Group } from './group';\n\nexport class GroupCollection {\n\n\tprivate readonly groups: Array<Group>;\n\n\tprivate readonly showGroups: boolean;\n\n\tconstructor(groups: Array<Group>,\n\t\t\t\tshowGroups: boolean) {\n\t\tthis.groups = groups;\n\t\tthis.showGroups = showGroups;\n\t}\n\n\tgetGroups(): Array<Group> {\n\t\treturn this.groups;\n\t}\n\n\tisVisible(): boolean {\n\t\treturn this.showGroups;\n\t}\n\n}\n","import { AggregateArchive } from '@generic-ui/hermes';\n\nimport { GroupCollection } from '../../api/group/group.collection';\n\n\nexport class CompositionGroupArchive extends AggregateArchive<GroupCollection> {\n\n\tstatic readonly default = new GroupCollection([], false);\n\n\tconstructor() {\n\t\tsuper(CompositionGroupArchive.default);\n\t}\n\n}\n","import { CompositionDispatcher } from './composition.dispatcher';\nimport { CompositionGroupArchive } from '../core-read/group/composition-group.archive';\nimport { CompositionId } from '../api/global/composition.id';\nimport { ColumnParams } from './column/set-columns/column.params';\nimport { ColumnDefinitionId } from '../api/column/column-definition-id';\nimport { ColumnId } from '../api/column/column.id';\nimport { CompositionPublisher } from '../api/composition.publisher';\nimport { ColumnHighlightArchive } from '../domain/highlight/column-highlight.archive';\n\n\nexport class CompositionDomainPublisher extends CompositionPublisher {\n\n\tconstructor(private readonly compositionDispatcher: CompositionDispatcher,\n\t\t\t\tprivate readonly compositionGroupRepository: CompositionGroupArchive,\n\t\t\t\tprivate readonly columnHighlightArchive: ColumnHighlightArchive) {\n\t\tsuper();\n\t}\n\n\tstatic readonly services = [\n\t\tCompositionDispatcher,\n\t\tCompositionGroupArchive,\n\t\tColumnHighlightArchive\n\t] as const;\n\n\tcreate(compositionId: CompositionId): void {\n\t\tthis.compositionDispatcher.create(compositionId);\n\t}\n\n\tsetColumns(params: Array<ColumnParams>, compositionId: CompositionId): void {\n\t\tthis.compositionDispatcher.setColumns(compositionId, params);\n\t}\n\n\tsetGroups(configs: any, compositionId: CompositionId): void {\n\t\t// this.compositionGroupRepository.next(compositionId, CompositionGroupRepository.default);\n\t\tthis.compositionDispatcher.setGroups(compositionId, configs);\n\t}\n\n\tsetWidth(width: number, compositionId: CompositionId): void {\n\t\tthis.compositionDispatcher.setWidth(compositionId, width);\n\t}\n\n\tsetContainerWidth(width: number, compositionId: CompositionId): void {\n\t\tthis.compositionDispatcher.setContainerWidth(compositionId, width);\n\t}\n\n\tsetResizeWidth(enabled: boolean, compositionId: CompositionId): void {\n\t\tthis.compositionDispatcher.setResizeWidth(compositionId, enabled);\n\t}\n\n\tenableColumn(columnDefinitionId: ColumnDefinitionId, compositionId: CompositionId): void {\n\t\tthis.compositionDispatcher.setColumnEnabled(compositionId, this.toColumnId(columnDefinitionId), true);\n\t}\n\n\tdisableColumn(columnDefinitionId: ColumnDefinitionId, compositionId: CompositionId): void {\n\t\tthis.compositionDispatcher.setColumnEnabled(compositionId, this.toColumnId(columnDefinitionId), false);\n\t}\n\n\tmoveLeft(columnDefinitionId: ColumnDefinitionId, compositionId: CompositionId): void {\n\t\tthis.compositionDispatcher.moveLeft(compositionId, this.toColumnId(columnDefinitionId));\n\t}\n\n\tmoveRight(columnDefinitionId: ColumnDefinitionId, compositionId: CompositionId): void {\n\t\tthis.compositionDispatcher.moveRight(compositionId, this.toColumnId(columnDefinitionId));\n\t}\n\n\thighlightColumn(columnDefinitionId: ColumnDefinitionId, compositionId: CompositionId): void {\n\t\tthis.columnHighlightArchive.toggle(compositionId, new ColumnId(columnDefinitionId.getId()));\n\t}\n\n\tprivate toColumnId(defId: ColumnDefinitionId): ColumnId {\n\t\treturn new ColumnId(defId.getId());\n\t}\n}\n","import { CompositionReadModelRootRepository } from './composition.read-model-root-repository';\nimport { CompositionGroupArchive } from './group/composition-group.archive';\nimport { CompositionId } from '../api/global/composition.id';\nimport { CompositionReadModeRoot } from './composition.read-mode-root';\nimport { CellTemplateWithContext } from './definition/cell-template-with-context';\nimport { FieldId } from '../../../structure/field/src/domain/field/field.id';\nimport { SortOrder } from '../domain/column/sort/sort-order';\nimport { CellTemplateWithAccessor } from './definition/cell-template-with-accessor';\nimport { GroupCollection } from '../api/group/group.collection';\nimport { CompositionWarehouse } from '../api/composition.warehouse';\nimport { hermesFilter, hermesMap, HermesObservable } from '@generic-ui/hermes';\nimport { ColumnId } from '../api/column/column.id';\nimport { ColumnHighlightArchive } from '../domain/highlight/column-highlight.archive';\nimport { ColumnHighlightManager } from '../domain/highlight/column-highlight.manager';\nimport { ColumnDefinition } from './definition/column-definition';\n\n\nexport class CompositionDomainWarehouse extends CompositionWarehouse {\n\n\tconstructor(private readonly compositionRepository: CompositionReadModelRootRepository,\n\t\t\t\tprivate readonly compositionGroupArchive: CompositionGroupArchive,\n\t\t\t\tprivate readonly columnHighlightArchive: ColumnHighlightArchive) {\n\t\tsuper();\n\t}\n\n\tstatic readonly services = [\n\t\tCompositionReadModelRootRepository,\n\t\tCompositionGroupArchive,\n\t\tColumnHighlightArchive\n\t] as const;\n\n\tonWidth(compositionId: CompositionId): HermesObservable<number> {\n\t\treturn this.compositionRepository\n\t\t\t\t   .on(compositionId)\n\t\t\t\t   .pipe(\n\t\t\t\t\t   hermesMap((composition: CompositionReadModeRoot) => composition.getWidth())\n\t\t\t\t   );\n\t}\n\n\tonContainerWidth(compositionId: CompositionId): HermesObservable<number> {\n\t\treturn this.compositionRepository\n\t\t\t\t   .on(compositionId)\n\t\t\t\t   .pipe(\n\t\t\t\t\t   hermesMap((composition: CompositionReadModeRoot) => composition.getContainerWidth())\n\t\t\t\t   );\n\t}\n\n\tonWidthForEachColumn(compositionId: CompositionId): HermesObservable<ReadonlyArray<number>> {\n\t\treturn this.compositionRepository\n\t\t\t\t   .on(compositionId)\n\t\t\t\t   .pipe(\n\t\t\t\t\t   hermesMap((composition: CompositionReadModeRoot) => composition.getAllColumns().map(c => c.width))\n\t\t\t\t   );\n\t}\n\n\tonHeaderColumns(compositionId: CompositionId): HermesObservable<ReadonlyArray<CellTemplateWithContext>> {\n\t\treturn this.compositionRepository\n\t\t\t\t   .on(compositionId)\n\t\t\t\t   .pipe(\n\t\t\t\t\t   hermesMap((composition: CompositionReadModeRoot) => composition.getActiveHeaderColumns())\n\t\t\t\t   );\n\t}\n\n\tonAllColumns(compositionId: CompositionId): HermesObservable<ReadonlyArray<CellTemplateWithContext>> {\n\t\treturn this.compositionRepository\n\t\t\t\t   .on(compositionId)\n\t\t\t\t   .pipe(\n\t\t\t\t\t   hermesMap((composition: CompositionReadModeRoot) => composition.getHeaderColumns())\n\t\t\t\t   );\n\t}\n\n\tonSortOrder(fieldId: FieldId, compositionId: CompositionId): HermesObservable<SortOrder> {\n\t\treturn this.compositionRepository\n\t\t\t\t   .on(compositionId)\n\t\t\t\t   .pipe(\n\t\t\t\t\t   hermesMap((composition: CompositionReadModeRoot) => composition.getActiveHeaderColumns()),\n\t\t\t\t\t   hermesMap((columns: Array<CellTemplateWithContext>) => {\n\t\t\t\t\t\t   return columns.filter((c) => c.getFieldId().equals(fieldId));\n\t\t\t\t\t   }),\n\t\t\t\t\t   hermesFilter((columns: Array<CellTemplateWithContext>) => {\n\t\t\t\t\t\t   return columns.length > 0;\n\t\t\t\t\t   }),\n\t\t\t\t\t   hermesMap(columns => columns[0].getSortStatus())\n\t\t\t\t   );\n\t}\n\n\tonTemplateColumns(compositionId: CompositionId): HermesObservable<ReadonlyArray<CellTemplateWithAccessor>> {\n\t\treturn this.compositionRepository\n\t\t\t\t   .on(compositionId)\n\t\t\t\t   .pipe(\n\t\t\t\t\t   hermesMap((composition: CompositionReadModeRoot) => composition.getTemplateColumns())\n\t\t\t\t   );\n\t}\n\n\tonResizeWidth(compositionId: CompositionId): HermesObservable<boolean> {\n\t\treturn this.compositionRepository\n\t\t\t\t   .on(compositionId)\n\t\t\t\t   .pipe(\n\t\t\t\t\t   hermesMap((composition: CompositionReadModeRoot) => composition.isResizeWidthEnabled())\n\t\t\t\t   );\n\t}\n\n\tonGroups(compositionId: CompositionId): HermesObservable<GroupCollection> {\n\t\treturn this.compositionGroupArchive.on(compositionId);\n\t}\n\n\tonHighlightedColumn(columnId: ColumnId, compositionId: CompositionId): HermesObservable<boolean> {\n\t\treturn this.columnHighlightArchive\n\t\t\t\t   .on(compositionId)\n\t\t\t\t   .pipe(\n\t\t\t\t\t   hermesMap((manager: ColumnHighlightManager) => manager.isHighlighted(columnId))\n\t\t\t\t   );\n\t}\n\n\tfindColumnNames(compositionId: CompositionId): ReadonlyArray<string> {\n\n\t\tlet names: Array<string> = [];\n\n\t\tthis.compositionRepository\n\t\t\t.find(compositionId)\n\t\t\t.ifPresent((value) => {\n\t\t\t\tnames = value.getAllColumns().map((cd: ColumnDefinition) => cd.getName());\n\t\t\t});\n\n\t\treturn names;\n\t}\n\n}\n","import { hermesFilter, hermesMap, HermesObservable } from '@generic-ui/hermes';\nimport { CompositionReadModelRootId } from '../api/global/composition.read-model-root-id';\nimport { CompositionColumnsSetEvent } from './column/set-columns/composition.columns-set.event';\nimport { CompositionContainerWidthSetEvent } from './width/set-container-width/composition-container-width-set.event';\nimport { CompositionEventRepository } from '../api/composition.event-repository';\n\n\nexport class CompositionDomainEventRepository extends CompositionEventRepository {\n\n\tconstructor() {\n\t\tsuper();\n\t}\n\n\tonColumnsChanged(compositionId: CompositionReadModelRootId): HermesObservable<CompositionColumnsSetEvent> {\n\n\t\treturn this.onEvent(compositionId, CompositionColumnsSetEvent);\n\t}\n\n\tonContainerWidthChanged(compositionId: CompositionReadModelRootId): HermesObservable<number> {\n\n\t\treturn this.onEvent(compositionId, CompositionContainerWidthSetEvent)\n\t\t\t\t   .pipe(\n\t\t\t\t\t   hermesMap((event: CompositionContainerWidthSetEvent) => {\n\t\t\t\t\t\t   return event.getPayload();\n\t\t\t\t\t   }),\n\t\t\t\t\t   hermesFilter((width: number) => !!width)\n\t\t\t\t   );\n\t}\n\n}\n","import { ColumnAutoConfigurator } from '../../../api/column/auto/column-auto.configurator';\nimport { ColumnConfig, MultiColumnConfig } from '../../../api/column/column.config';\nimport { DataType } from '../../../../../structure/field/src/domain/field/data/data-type';\n\n\nexport class DomainColumnAutoConfigurator extends ColumnAutoConfigurator {\n\n\tconfigure(source: ReadonlyArray<any>): ReadonlyArray<ColumnConfig | MultiColumnConfig> {\n\n\t\tif (source !== undefined && source !== null && Array.isArray(source) && source.length === 0) {\n\t\t\treturn [];\n\t\t}\n\n\t\tconst rawItem = source[0];\n\n\t\treturn Object.keys(rawItem)\n\t\t\t\t\t .map((key, index) => {\n\n\t\t\t\t\t\t return this.toColumnConfig(key, rawItem);\n\t\t\t\t\t });\n\t}\n\n\tprivate toColumnConfig(key: string, rawItem: any): ColumnConfig {\n\t\treturn {\n\t\t\tfield: this.getField(key),\n\t\t\theader: this.getHeader(key),\n\t\t\ttype: this.getType(key, rawItem)\n\t\t} as ColumnConfig;\n\t}\n\n\tprivate getField(key: string): string {\n\t\treturn key;\n\t}\n\n\tprivate getHeader(key: string): string {\n\t\treturn key[0].toUpperCase() + key.slice(1);\n\t}\n\n\tprivate getType(key: string, rawItem: any): DataType {\n\n\t\tif (typeof rawItem[key] === 'string') {\n\t\t\treturn DataType.STRING;\n\t\t} else if (typeof rawItem[key] === 'number') {\n\t\t\treturn DataType.NUMBER;\n\t\t} else if (rawItem[key] instanceof Date) {\n\t\t\treturn DataType.DATE;\n\t\t} else if (typeof rawItem[key] === 'boolean') {\n\t\t\treturn DataType.BOOLEAN;\n\t\t} else {\n\t\t\treturn DataType.UNKNOWN;\n\t\t}\n\t}\n\n}\n","import { ApiProviders, Container, DomainInitializer } from '@generic-ui/hermes';\nimport { CompositionDomainModule } from '../core/composition.domain-module';\nimport { ColumnDefinitionFactory } from '../core-read/definition/column-definition.factory';\nimport { ViewTemplateRepository } from '../../../../feature/composition/src/column/view/view-template.repository';\nimport { ViewTemplateFactory } from '../../../../feature/composition/src/column/view/view-template.factory';\nimport { EditTemplateFactory } from '../../../../feature/composition/src/column/edit/edit-template.factory';\nimport { EditTemplateRepository } from '../../../../feature/composition/src/column/edit/edit-template.repository';\nimport { CompositionReadModelRootConverter } from '../core-read/composition.read-model-root-converter';\nimport { CompositionPublisher } from './composition.publisher';\nimport { CompositionWarehouse } from './composition.warehouse';\nimport { CompositionEventRepository } from './composition.event-repository';\nimport { CompositionGroupArchive } from '../core-read/group/composition-group.archive';\nimport { ColumnAutoConfigurator } from './column/auto/column-auto.configurator';\nimport { InMemoryCompositionReadStore } from '../persist/api/in-memory.composition.read-store';\nimport { CompositionReadModelRootRepository } from '../core-read/composition.read-model-root-repository';\nimport { InMemoryCompositionStore } from '../persist/in-memory.composition.store';\nimport { InMemoryCompositionRepository } from '../persist/api/in-memory.composition.repository';\nimport { CompositionDomainPublisher } from '../core/compositon.domain-publisher';\nimport { CompositionDomainWarehouse } from '../core-read/composition.domain-warehouse';\nimport { CompositionDomainEventRepository } from '../core/composition.domain-event-repository';\nimport { DomainColumnAutoConfigurator } from '../domain/column/auto/domain.column-auto.configurator';\n\n\nexport class CompositionApiModule implements ApiProviders {\n\n\tregisterProviders(container: Container): void {\n\t\tcontainer.provide(InMemoryCompositionReadStore);\n\t\tcontainer.provide(CompositionReadModelRootRepository, InMemoryCompositionRepository);\n\t\tcontainer.provide(ColumnDefinitionFactory);\n\t\tcontainer.provide(ViewTemplateRepository);\n\t\tcontainer.provide(ViewTemplateFactory);\n\t\tcontainer.provide(EditTemplateFactory);\n\t\tcontainer.provide(EditTemplateRepository);\n\t\tcontainer.provide(InMemoryCompositionStore);\n\t\tcontainer.provide(CompositionReadModelRootConverter);\n\t\tcontainer.provide(CompositionGroupArchive);\n\n\t\tcontainer.provide(CompositionPublisher, CompositionDomainPublisher);\n\t\tcontainer.provide(CompositionWarehouse, CompositionDomainWarehouse);\n\t\tcontainer.provide(CompositionEventRepository, CompositionDomainEventRepository);\n\n\t\tcontainer.provide(ColumnAutoConfigurator, DomainColumnAutoConfigurator);\n\t}\n}\n\nexport function initializeComposition(): void {\n\tnew DomainInitializer(new CompositionApiModule(), new CompositionDomainModule()).init();\n}\n","import { CompositionId } from '../../../../core/composition/src/api/global/composition.id';\nimport { hermesMap, HermesObservable } from '@generic-ui/hermes';\nimport { CompositionTemplateModel } from './composition.template.model';\nimport { CompositionWarehouse } from '../../../../core/composition';\nimport { CellTemplateWithContext } from '../../../../core/composition/src/core-read/definition/cell-template-with-context';\nimport { ViewTemplateRepository } from './view/view-template.repository';\nimport { EditTemplateRepository } from './edit/edit-template.repository';\nimport { CellView } from '../../../../core/composition/src/domain/column/cell-view';\nimport { DataType } from '../../../../core/structure/field/src/domain/field/data/data-type';\nimport { Injectable, TemplateRef } from '@angular/core';\nimport { CellTemplateWithAccessor } from '../../../../core/composition/src/core-read/definition/cell-template-with-accessor';\nimport { CompositionAccessorModel } from './composition.accessor.model';\n\n@Injectable()\nexport class CompositionTemplateWarehouse {\n\n\tconstructor(private readonly compositionWarehouse: CompositionWarehouse,\n\t\t\t\tprivate readonly viewTemplateRepository: ViewTemplateRepository,\n\t\t\t\tprivate readonly editTemplateRepository: EditTemplateRepository) {\n\t}\n\n\tonHeaderCols(compositionId: CompositionId): HermesObservable<ReadonlyArray<CompositionTemplateModel>> {\n\t\treturn this.compositionWarehouse\n\t\t\t\t   .onHeaderColumns(compositionId)\n\t\t\t\t   .pipe(\n\t\t\t\t\t   hermesMap((arr: Array<CellTemplateWithContext>) => {\n\t\t\t\t\t\t   return arr.map((context) => {\n\n\t\t\t\t\t\t\t   let headerTemplate;\n\n\t\t\t\t\t\t\t   if (typeof context.getHeader() === 'function') {\n\t\t\t\t\t\t\t\t   headerTemplate = this.findViewTemplate(CellView.FUNCTION);\n\t\t\t\t\t\t\t   } else {\n\t\t\t\t\t\t\t\t   headerTemplate = this.findViewTemplate(CellView.HTML);\n\t\t\t\t\t\t\t   }\n\n\t\t\t\t\t\t\t   const editTemplate = this.findEditTemplate(context.getDataType());\n\n\t\t\t\t\t\t\t   return new CompositionTemplateModel(headerTemplate, editTemplate, context);\n\t\t\t\t\t\t   });\n\t\t\t\t\t   })\n\t\t\t\t   );\n\t}\n\n\tonAll(compositionId: CompositionId): HermesObservable<ReadonlyArray<CompositionTemplateModel>> {\n\t\treturn this.compositionWarehouse\n\t\t\t\t   .onAllColumns(compositionId)\n\t\t\t\t   .pipe(\n\t\t\t\t\t   hermesMap((arr: Array<CellTemplateWithContext>) => {\n\t\t\t\t\t\t   return arr.map((context) => {\n\n\t\t\t\t\t\t\t   let headerTemplate;\n\n\t\t\t\t\t\t\t   if (typeof context.getHeader() === 'function') {\n\t\t\t\t\t\t\t\t   headerTemplate = this.findViewTemplate(CellView.FUNCTION);\n\t\t\t\t\t\t\t   } else {\n\t\t\t\t\t\t\t\t   headerTemplate = this.findViewTemplate(CellView.HTML);\n\t\t\t\t\t\t\t   }\n\n\t\t\t\t\t\t\t   const editTemplate = this.findEditTemplate(context.getDataType());\n\n\t\t\t\t\t\t\t   return new CompositionTemplateModel(headerTemplate, editTemplate, context);\n\t\t\t\t\t\t   });\n\t\t\t\t\t   })\n\t\t\t\t   );\n\t}\n\n\t// CellTemplateWithAccessor\n\tonTemplateCols(compositionId: CompositionId): HermesObservable<ReadonlyArray<CompositionAccessorModel>> {\n\t\treturn this.compositionWarehouse\n\t\t\t\t   .onTemplateColumns(compositionId)\n\t\t\t\t   .pipe(\n\t\t\t\t\t   hermesMap((arr: Array<CellTemplateWithAccessor>) => {\n\t\t\t\t\t\t   return arr.map((context) => {\n\n\t\t\t\t\t\t\t   let cellTemplate;\n\n\t\t\t\t\t\t\t   if (context.getCellView() === CellView.NG_TEMPLATE) {\n\t\t\t\t\t\t\t\t   cellTemplate = context.getColumnConfig().templateRef;\n\t\t\t\t\t\t\t   } else {\n\t\t\t\t\t\t\t\t   cellTemplate = this.findViewTemplate(context.getCellView());\n\t\t\t\t\t\t\t   }\n\n\t\t\t\t\t\t\t   const editTemplate = this.findEditTemplate(context.getDataType());\n\n\t\t\t\t\t\t\t   return new CompositionAccessorModel(cellTemplate, editTemplate, context);\n\t\t\t\t\t\t   });\n\t\t\t\t\t   })\n\t\t\t\t   );\n\t}\n\n\tprivate findViewTemplate(view: CellView): TemplateRef<any> {\n\n\t\tif (view === CellView.FUNCTION) {\n\t\t\treturn this.viewTemplateRepository.findTemplate(CellView.FUNCTION);\n\t\t} else {\n\t\t\treturn this.viewTemplateRepository.findTemplate(view);\n\t\t}\n\t}\n\n\tprivate findEditTemplate(dataType: DataType): TemplateRef<any> {\n\t\treturn this.editTemplateRepository.findTemplate(dataType);\n\t}\n\n}\n","import { DomainEvent, EventRepository, HermesObservable } from '@generic-ui/hermes';\n\nimport { StructureId } from '../../../structure-core/src/api/global/structure.id';\nimport { StructureReadModelRootId } from '../../../structure-core/src/api/read/structure.read-model-root-id';\n\n\nexport abstract class SummariesEventRepository extends EventRepository<StructureReadModelRootId> {\n\n\tprotected constructor() {\n\t\tsuper();\n\t}\n\n\tabstract onSummariesChanged(structureId: StructureReadModelRootId): HermesObservable<DomainEvent<StructureId>>;\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, Input, OnInit, ViewEncapsulation, inject } from '@angular/core';\nimport { StructureId } from '../../../../../core/structure/structure-core/src/api/global/structure.id';\nimport { SummariesEventRepository } from '../../../../../core/structure/summaries/src/api/summaries.event-repository';\nimport { StructureSummariesChangedEvent } from '../../../../../core/structure/summaries/src/core/structure.summaries-changed.event';\nimport { SmartComponent } from '../../../../common/component/src/smart-component';\nimport { SourceWarehouse } from '../../../../../core/structure/source/src/api/source.warehouse';\nimport { TranslationFacade } from '../../../../../core/l10n/src/api/translation.facade';\nimport { Translation } from '../../../../../core/l10n/src/api/translation';\nimport { SummariesTranslations } from '../structure.summaries-translations';\nimport { RowSelectionType } from '../../../../../core/structure/formation/src/api/row-selected/row-selection';\nimport { CompositionId } from '../../../../../core/composition/src/api/global/composition.id';\nimport { CompositionTemplateWarehouse } from '../../../../composition/src/column/composition.template-warehouse';\nimport { FormationWarehouse } from '../../../../../core/structure/formation/src/api/formation.warehouse';\nimport { hermesMap, HermesObservable } from '@generic-ui/hermes';\nimport { GuiState } from '../../../../../feature/gui-angular/state/gui.state';\n\nexport interface StructureSummariesPanelComponentState {\n\n\tsummariesTranslations: SummariesTranslations;\n\n\tsourceEmpty: boolean;\n\n\tsummaries: Map<string, any>;\n\n}\n\n@Component({\n\tselector: 'div[gui-structure-summaries-panel][enabled]',\n\ttemplateUrl: './structure.summaries-panel.component.html',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tencapsulation: ViewEncapsulation.None,\n\tproviders: [\n\t\tGuiState\n\t]\n})\nexport class StructureSummariesPanelComponent extends SmartComponent {\n\n\t@Input({ required: true })\n\tenabled!: boolean;\n\n\treadonly state = inject(GuiState<StructureSummariesPanelComponentState>);\n\n\treadonly compositionId = inject(CompositionId);\n\n\tprivate readonly structureId = inject(StructureId);\n\n\tprivate readonly formationWarehouse = inject(FormationWarehouse);\n\n\tprivate readonly compositionTemplateWarehouse = inject(CompositionTemplateWarehouse);\n\n\theaderColumns$ = this.compositionTemplateWarehouse.onHeaderCols(this.compositionId);\n\n\treadonly state$ = this.state.select();\n\n\treadonly checkboxSelection$ = this.selectCheckboxSelection();\n\n\tconstructor(\n\t\tchangeDetectorRef: ChangeDetectorRef,\n\t\telementRef: ElementRef,\n\t\tprivate readonly structureSummariesEventRepository: SummariesEventRepository,\n\t\tprivate readonly translationService: TranslationFacade,\n\t\tprivate readonly sourceWarehouse: SourceWarehouse\n\t) {\n\t\tsuper(changeDetectorRef, elementRef);\n\n\t\tthis.addClassToHost('gui-flex');\n\n\t\tthis.state.connect('summariesTranslations', this.selectSummariesTranslations());\n\t\tthis.state.connect('sourceEmpty', this.selectSourceEmpty());\n\t\tthis.state.connect('summaries', this.selectSummaries());\n\t}\n\n\tisSummariesTypePresent(summaries: number): boolean {\n\t\treturn summaries !== undefined && summaries !== null;\n\t}\n\n\tprotected getSelectorName(): string {\n\t\treturn 'gui-structure-summaries-panel';\n\t}\n\n\tprivate selectCheckboxSelection(): HermesObservable<boolean> {\n\t\treturn this.formationWarehouse\n\t\t\t\t   .onType(this.structureId)\n\t\t\t\t   .pipe(\n\t\t\t\t\t   hermesMap((type: RowSelectionType) => {\n\t\t\t\t\t\t   return type === RowSelectionType.CHECKBOX;\n\t\t\t\t\t   })\n\t\t\t\t   );\n\t}\n\n\tprivate selectSourceEmpty(): HermesObservable<boolean> {\n\t\treturn this.sourceWarehouse\n\t\t\t\t   .onItemsSize(this.structureId)\n\t\t\t\t   .pipe(\n\t\t\t\t\t   hermesMap((size: number) => {\n\t\t\t\t\t\t   return size === 0;\n\t\t\t\t\t   })\n\t\t\t\t   );\n\t}\n\n\tprivate selectSummariesTranslations(): HermesObservable<SummariesTranslations> {\n\t\treturn this.translationService\n\t\t\t\t   .onTranslation()\n\t\t\t\t   .pipe(\n\t\t\t\t\t   hermesMap((translation: Translation) => {\n\t\t\t\t\t\t   return new SummariesTranslations(\n\t\t\t\t\t\t\t   translation.summariesDistinctValuesTooltip,\n\t\t\t\t\t\t\t   translation.summariesAverageTooltip,\n\t\t\t\t\t\t\t   translation.summariesMinTooltip,\n\t\t\t\t\t\t\t   translation.summariesMaxTooltip,\n\t\t\t\t\t\t\t   translation.summariesMedTooltip,\n\t\t\t\t\t\t\t   translation.summariesCountTooltip);\n\t\t\t\t\t   })\n\t\t\t\t   );\n\t}\n\n\tprivate selectSummaries(): HermesObservable<Map<string, any>> {\n\t\treturn this.structureSummariesEventRepository\n\t\t\t\t   .onSummariesChanged(this.structureId.toReadModelRootId())\n\t\t\t\t   .pipe(\n\t\t\t\t\t   hermesMap((event: StructureSummariesChangedEvent) => {\n\t\t\t\t\t\t   return event.getSummaries();\n\t\t\t\t\t   })\n\t\t\t\t   );\n\t}\n}\n","<ng-container *guiLet=\"state$; let localState\">\n\t<ng-container *ngIf=\"enabled && localState.summaries && !localState.sourceEmpty\">\n\n\t\t<div *ngIf=\"checkboxSelection$ | guiPush\"\n\t\t\t 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\">\n\t\t</div>\n\n\t\t<div *ngFor=\"let column of headerColumns$ | guiPush\"\n\t\t\t [style.width.px]=\"column.width\"\n\t\t\t class=\"gui-structure-summaries-cell\">\n\n\t\t\t<ng-container *ngIf=\"localState.summaries && !!localState.summaries.get(column.getFieldId().getId())\">\n\n\t\t\t\t<div *ngIf=\"isSummariesTypePresent(localState.summaries.get(column.getFieldId().getId()).count)\"\n\t\t\t\t\t class=\"gui-structure-summaries-value\">\n\t\t\t\t\t<span [gui-tooltip]=\"localState.summariesTranslations.countTooltip\">{{'summariesCount' | guiTranslate}}</span>\n\t\t\t\t\t<span class=\"gui-summaries-value\">{{ localState.summaries.get(column.getFieldId().getId()).count }}</span>\n\t\t\t\t</div>\n\n\t\t\t\t<div *ngIf=\"isSummariesTypePresent(localState.summaries.get(column.getFieldId().getId()).distinct)\"\n\t\t\t\t\t class=\"gui-structure-summaries-value\">\n\t\t\t\t\t<span [gui-tooltip]=\"localState.summariesTranslations.distinctTooltip\">{{'summariesDist' | guiTranslate}}</span>\n\t\t\t\t\t<span class=\"gui-summaries-value\">{{ localState.summaries.get(column.getFieldId().getId()).distinct }}</span>\n\t\t\t\t</div>\n\n\t\t\t\t<div *ngIf=\" isSummariesTypePresent(localState.summaries.get(column.getFieldId().getId()).sum)\"\n\t\t\t\t\t class=\"gui-structure-summaries-value\">\n\n\t\t\t\t\t\t<span>\n\t\t\t\t\t\t\t<!--\t\t\t\t\t\t\t<span [gui-tooltip]=\"'Sum'\" -->\n\t\t\t\t\t\t\t<!--\t\t\t\t\t\t\t\t  class=\"gui-math-symbol\">&sum;</span>-->\n\t\t\t\t\t\t\t{{'summariesSum' | guiTranslate}}\n\t\t\t\t\t\t</span>\n\t\t\t\t\t<span class=\"gui-summaries-value\">{{ localState.summaries.get(column.getFieldId().getId()).sum }}</span>\n\t\t\t\t</div>\n\n\t\t\t\t<div *ngIf=\"isSummariesTypePresent(localState.summaries.get(column.getFieldId().getId()).average)\"\n\t\t\t\t\t class=\"gui-structure-summaries-value\">\n\n\t\t\t\t\t<!--\t\t\t\t\t\t<div [gui-tooltip]=\"'Average'\"-->\n\t\t\t\t\t<!--\t\t\t\t\t\t\t class=\"gui-mean\">-->\n\t\t\t\t\t<!--\t\t\t\t\t\t\t<span>_</span><span>X</span>-->\n\t\t\t\t\t<!--\t\t\t\t\t\t</div>-->\n\t\t\t\t\t<span [gui-tooltip]=\"localState.summariesTranslations.averageTooltip\">{{'summariesAvg' | guiTranslate}}</span>\n\t\t\t\t\t<span class=\"gui-summaries-value\">{{ localState.summaries.get(column.getFieldId().getId()).average }}</span>\n\t\t\t\t</div>\n\n\t\t\t\t<div *ngIf=\" isSummariesTypePresent(localState.summaries.get(column.getFieldId().getId()).min)\"\n\t\t\t\t\t class=\"gui-structure-summaries-value\">\n\n\t\t\t\t\t<!--\t\t\t\t\t\t<div [gui-tooltip]=\"'Min'\">-->\n\t\t\t\t\t<!--\t\t\t\t\t\t\t<span class=\"gui-math-symbol\">&and;</span>-->\n\t\t\t\t\t<!--\t\t\t\t\t\t</div>-->\n\t\t\t\t\t<span [gui-tooltip]=\"localState.summariesTranslations.minTooltip\">\n\t\t\t\t\t\t\t{{'summariesMin' | guiTranslate}}\n\t\t\t\t\t\t</span>\n\n\t\t\t\t\t<span class=\"gui-summaries-value\">{{ localState.summaries.get(column.getFieldId().getId()).min }}</span>\n\t\t\t\t</div>\n\n\t\t\t\t<div *ngIf=\" isSummariesTypePresent(localState.summaries.get(column.getFieldId().getId()).max)\"\n\t\t\t\t\t class=\"gui-structure-summaries-value\">\n\n\t\t\t\t\t<!--\t\t\t\t\t\t<div [gui-tooltip]=\"'Max'\">-->\n\t\t\t\t\t<!--\t\t\t\t\t\t\t<span class=\"gui-math-symbol\">&or;</span>-->\n\t\t\t\t\t<!--\t\t\t\t\t\t</div>-->\n\n\t\t\t\t\t<span [gui-tooltip]=\"localState.summariesTranslations.maxTooltip\">\n\t\t\t\t\t\t\t{{'summariesMax' | guiTranslate}}\n\t\t\t\t\t\t</span>\n\t\t\t\t\t<span class=\"gui-summaries-value\">{{ localState.summaries.get(column.getFieldId().getId()).max }}</span>\n\t\t\t\t</div>\n\n\t\t\t\t<div *ngIf=\"isSummariesTypePresent(localState.summaries.get(column.getFieldId().getId()).median)\"\n\t\t\t\t\t class=\"gui-structure-summaries-value\">\n\n\t\t\t\t\t<!--\t\t\t\t\t\t<div [gui-tooltip]=\"'Median'\"-->\n\t\t\t\t\t<!--\t\t\t\t\t\t\t class=\"gui-median\">-->\n\t\t\t\t\t<!--\t\t\t\t\t\t\t<span>~</span>-->\n\t\t\t\t\t<!--\t\t\t\t\t\t\t<span>X</span>-->\n\t\t\t\t\t<!--\t\t\t\t\t\t</div>-->\n\n\t\t\t\t\t<span [gui-tooltip]=\"localState.summariesTranslations.medTooltip\">{{'summariesMed' | guiTranslate}}</span>\n\t\t\t\t\t<span class=\"gui-summaries-value\">{{ localState.summaries.get(column.getFieldId().getId()).median }}</span>\n\t\t\t\t</div>\n\n\t\t\t\t<div *ngIf=\"isSummariesTypePresent(localState.summaries.get(column.getFieldId().getId()).truthy)\"\n\t\t\t\t\t class=\"gui-structure-summaries-value\">\n\t\t\t\t\t<span>{{'summariesTruthy' | guiTranslate}}</span>\n\t\t\t\t\t<span class=\"gui-summaries-value\">{{ localState.summaries.get(column.getFieldId().getId()).truthy }}</span>\n\t\t\t\t</div>\n\n\t\t\t\t<div *ngIf=\"isSummariesTypePresent(localState.summaries.get(column.getFieldId().getId()).falsy)\"\n\t\t\t\t\t class=\"gui-structure-summaries-value\">\n\t\t\t\t\t<span>{{'summariesFalsy' | guiTranslate}}</span>\n\t\t\t\t\t<span class=\"gui-summaries-value\">{{ localState.summaries.get(column.getFieldId().getId()).falsy }}</span>\n\t\t\t\t</div>\n\n\t\t\t</ng-container>\n\t\t</div>\n\n\t</ng-container>\n</ng-container>\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, ViewEncapsulation } from '@angular/core';\n\nimport { StaticComponent } from '../../../../../../feature/common/component/src/static-component';\n\n@Component({\n\tselector: 'div[gui-info-dialog]',\n\ttemplateUrl: './structure-info-modal.component.html',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tencapsulation: ViewEncapsulation.None\n})\nexport class StructureInfoModalComponent extends StaticComponent {\n\n\tconstructor(elementRef: ElementRef,\n\t\t\t\tchangeDetectorRef: ChangeDetectorRef) {\n\t\tsuper(elementRef, changeDetectorRef);\n\t}\n\n\tprotected getSelectorName(): string {\n\t\treturn 'gui-info-dialog';\n\t}\n}\n","<div class=\"gui-structure-info-modal gui-flex gui-flex-col gui-p-0 gui-text-lg gui-w-full\">\n\n\t<p class=\"gui-text-3xl gui-mb-8 gui-font-bold\">\n\t\tGeneric UI Grid\n\t</p>\n\n\n\t<p class=\"gui-text-xl gui-mb-18 gui-font-bold\">\n\t\tver. 0.21.0\n\t</p>\n\n\t<p class=\"gui-quote gui-text-2xl gui-italic gui-font-light\">\n\t\t\"The best way to success is to help others succeed.\"\n\t</p>\n\n\t<br/>\n\n\t<section class=\"gui-m-0 gui-px-0 gui-pt-10 gui-pb-6\">\n\t\t<p class=\"gui-font-bold\">Links:</p>\n\t\t<ul class=\"gui-m-0 gui-pl-9 gui-list-none\">\n\n\t\t\t<li>\n\t\t\t\t<a class=\"gui-mb-6 gui-no-underline gui-leading-6\" href=\"https://generic-ui.com/\">Website</a>\n\t\t\t</li>\n\t\t\t<li>\n\t\t\t\t<a class=\"gui-mb-6 gui-no-underline gui-leading-6\" href=\"https://generic-ui.com/guide/\">Documentation</a>\n\t\t\t</li>\n\t\t\t<li>\n\t\t\t\t<a class=\"gui-mb-6 gui-no-underline gui-leading-6\" href=\"https://github.com/generic-ui/generic-ui/tree/master/ngx-grid\">Github</a>\n\t\t\t</li>\n\t\t</ul>\n\n\t\t<br/>\n\n\t\t<p class=\"gui-font-bold\">Feedback:</p>\n\t\t<ul class=\"gui-m-0 gui-pl-9 gui-list-none\">\n\n\t\t\t<li>\n\t\t\t\t<a class=\"gui-mb-6 gui-no-underline gui-leading-6\" href=\"https://github.com/generic-ui/generic-ui/issues\">Report a bug</a>\n\t\t\t</li>\n\t\t\t<li>\n\t\t\t\t<a class=\"gui-mb-6 gui-no-underline gui-leading-6\" href=\"https://github.com/generic-ui/generic-ui/issues\">Suggest an idea</a>\n\t\t\t</li>\n\n\t\t</ul>\n\t</section>\n</div>\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, inject, ViewEncapsulation } from '@angular/core';\n\nimport { SmartComponent } from '../../../../../feature/common/component/src/smart-component';\nimport { CellTemplateWithContext } from '../../../../../core/composition/src/core-read/definition/cell-template-with-context';\nimport { CompositionPublisher } from '../../../../../core/composition/src/api/composition.publisher';\nimport { CompositionId } from '../../../../../core/composition/src/api/global/composition.id';\nimport { CompositionTemplateWarehouse } from '../../../../../feature/composition/src/column/composition.template-warehouse';\nimport { CompositionTemplateModel } from '../../../../../feature/composition/src/column/composition.template.model';\nimport { hermesMap, HermesObservable } from '@generic-ui/hermes';\nimport { GuiState } from '../../../../../feature/gui-angular/state/gui.state';\n\nexport interface StructureColumnManagerComponentState {\n\n\tcolumns: ReadonlyArray<CompositionTemplateModel>;\n\n\tenabledColumnsCount: number;\n}\n\n@Component({\n\tselector: 'div[gui-structure-column-manager]',\n\ttemplateUrl: `./structure.column-manager.component.html`,\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tencapsulation: ViewEncapsulation.None,\n\tproviders: [\n\t\tGuiState\n\t]\n})\nexport class StructureColumnManagerComponent extends SmartComponent {\n\n\tprivate readonly state = inject(GuiState<StructureColumnManagerComponentState>);\n\n\treadonly state$ = this.state.select();\n\n\tconstructor(changeDetectorRef: ChangeDetectorRef,\n\t\t\t\telementRef: ElementRef,\n\t\t\t\tprivate readonly compositionId: CompositionId,\n\t\t\t\tprivate readonly compositionCommandInvoker: CompositionPublisher,\n\t\t\t\tprivate readonly compositionTemplateWarehouse: CompositionTemplateWarehouse) {\n\t\tsuper(changeDetectorRef, elementRef);\n\n\t\tthis.addClassToHost('gui-block');\n\n\t\tthis.state.connect('columns', this.selectColumns());\n\t\tthis.state.connect('enabledColumnsCount', this.selectEnabledColumnsCount());\n\t}\n\n\ttoggleColumn(column: CellTemplateWithContext): void {\n\t\tevent.stopPropagation();\n\t\tif (column.isEnabled()) {\n\t\t\tthis.compositionCommandInvoker.disableColumn(column.getColumnDefinitionId(), this.compositionId);\n\t\t} else {\n\t\t\tthis.compositionCommandInvoker.enableColumn(column.getColumnDefinitionId(), this.compositionId);\n\t\t}\n\t}\n\n\tprotected getSelectorName(): string {\n\t\treturn 'gui-structure-column-manager';\n\t}\n\n\tprivate selectColumns(): HermesObservable<ReadonlyArray<CompositionTemplateModel>> {\n\t\treturn this.compositionTemplateWarehouse.onAll(this.compositionId);\n\t}\n\n\tprivate selectEnabledColumnsCount(): HermesObservable<ReadonlyArray<CompositionTemplateModel>> {\n\t\treturn this.compositionTemplateWarehouse\n\t\t\t\t   .onAll(this.compositionId)\n\t\t\t\t   .pipe(\n\t\t\t\t\t   hermesMap((columns: Array<CompositionTemplateModel>) => {\n\t\t\t\t\t\t   return columns.map((c) => +c.isEnabled())\n\t\t\t\t\t\t\t\t\t\t .reduce((accumulator, currentValue) => accumulator + currentValue);\n\t\t\t\t\t   })\n\t\t\t\t   );\n\t}\n}\n","<ol *guiLet=\"state$; let localState\"\n\tclass=\"gui-structure-ordered-list gui-p-0 gui-my-4 gui-list-none gui-overflow-auto\">\n\t<li (click)=\"toggleColumn(column)\"\n\t\t*ngFor=\"let column of localState.columns\"\n\t\tclass=\"gui-px-13 gui-py-6 gui-cursor-pointer\">\n\n\t\t<gui-checkbox [checked]=\"column.isEnabled()\"\n\t\t\t\t\t  [disabled]=\"localState.enabledColumnsCount === 1 && column.isEnabled()\">\n\n\t\t\t<ng-container\n\t\t\t\t*ngTemplateOutlet=\"column.viewTemplate;\n\t\t\t\t\t\t\t\t\t\t\tcontext: column.context\">\n\t\t\t</ng-container>\n\n\t\t</gui-checkbox>\n\n\t</li>\n</ol>\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, ViewEncapsulation } from '@angular/core';\nimport { SmartComponent } from '../../../../../feature/common/component/src/smart-component';\n\n@Component({\n\tselector: 'div[gui-structure-dialog-column-manager]',\n\ttemplateUrl: './structure.dialog-column-manager.component.html',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tencapsulation: ViewEncapsulation.None\n})\nexport class StructureDialogColumnManagerComponent extends SmartComponent {\n\n\tconstructor(detector: ChangeDetectorRef,\n\t\t\t\telementRef: ElementRef) {\n\t\tsuper(detector, elementRef);\n\t}\n\n\tprotected getSelectorName(): string {\n\t\treturn 'gui-structure-dialog-column-manager';\n\t}\n}\n","<div class=\"gui-dialog-title\">{{'columnManagerModalTitle' | guiTranslate}}</div>\n\n<div class=\"-gui-mx-10\" gui-structure-column-manager>\n</div>\n","import { Injectable } from '@angular/core';\n\nimport { Theme } from '@generic-ui/fabric';\n\nimport { SchemaTheme } from '../../../../core/schema/src/api/theme/schema-theme';\n\n\n@Injectable()\nexport class StructureThemeConverter {\n\n\tconvertTheme(schemaTheme: SchemaTheme): Theme {\n\t\tswitch (schemaTheme) {\n\n\t\t\tcase SchemaTheme.FABRIC:\n\t\t\t\treturn Theme.FABRIC;\n\n\t\t\tcase SchemaTheme.MATERIAL:\n\t\t\t\treturn Theme.MATERIAL;\n\n\t\t\tcase SchemaTheme.GENERIC:\n\t\t\t\treturn Theme.GENERIC;\n\n\t\t\tcase SchemaTheme.LIGHT:\n\t\t\t\treturn Theme.LIGHT;\n\n\t\t\tcase SchemaTheme.DARK:\n\t\t\t\treturn Theme.DARK;\n\n\t\t\tdefault:\n\t\t\t\treturn Theme.FABRIC;\n\n\t\t}\n\t}\n}\n","import { Injectable, Injector } from '@angular/core';\n\nimport { FabricDialogService } from '@generic-ui/fabric';\n\nimport { CompositionId } from '../../../../../core/composition/src/api/global/composition.id';\nimport { StructureDialogColumnManagerComponent } from './structure.dialog-column-manager.component';\nimport { SchemaTheme } from '../../../../../core/schema/src/api/theme/schema-theme';\nimport { StructureThemeConverter } from '../../schema/structure.theme.converter';\nimport { SchemaWarehouse } from '../../../../../core/schema/src/api/schema.warehouse';\nimport { SchemaReadModelRootId } from '../../../../../core/schema/src/api/global/schema.read-model-root-id';\nimport { Reactive } from '@generic-ui/hermes';\n\n\n@Injectable()\nexport class StructureDialogColumnManagerService extends Reactive {\n\n\tconstructor(private readonly injector: Injector,\n\t\t\t\tprivate readonly schemaWarehouse: SchemaWarehouse,\n\t\t\t\tprivate readonly structureThemeConverter: StructureThemeConverter,\n\t\t\t\tprivate readonly fabricDialogService: FabricDialogService) {\n\t\tsuper();\n\t}\n\n\topen(compositionId: CompositionId, readModelId: SchemaReadModelRootId, parentInjector?: Injector) {\n\n\t\tif (!parentInjector) {\n\t\t\tparentInjector = this.injector;\n\t\t}\n\n\t\tconst injector = Injector.create({ parent: parentInjector, providers: [{ provide: CompositionId, useValue: compositionId }] });\n\n\t\tthis.schemaWarehouse\n\t\t\t.findTheme(readModelId)\n\t\t\t.ifPresent((theme: SchemaTheme) => {\n\t\t\t\tthis.fabricDialogService.open({\n\t\t\t\t\tinjector: injector,\n\t\t\t\t\tcomponent: StructureDialogColumnManagerComponent,\n\t\t\t\t\ttheme: this.structureThemeConverter.convertTheme(theme)\n\t\t\t\t});\n\t\t\t});\n\t}\n\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, inject, ViewEncapsulation } from '@angular/core';\n\nimport { GuiSelectOption } from '@generic-ui/fabric';\nimport { SchemaWarehouse } from '../../../../core/schema/src/api/schema.warehouse';\nimport { SchemaRowColoring } from '../../../../core/schema/src/api/row-coloring/schema-row-coloring';\nimport { SchemaTheme } from '../../../../core/schema/src/api/theme/schema-theme';\nimport { SchemaPublisher } from '../../../../core/schema/src/api/schema.publisher';\nimport { SchemaReadModelRootId } from '../../../../core/schema/src/api/global/schema.read-model-root-id';\nimport { RowColoring } from '../../../../core/schema/src/api/row-coloring/row-coloring';\nimport { SmartComponent } from '../../../common/component/src/smart-component';\nimport { StructureId } from '../../../../core/structure/structure-core/src/api/global/structure.id';\nimport { hermesMap, HermesObservable } from '@generic-ui/hermes';\n\n\n@Component({\n\tselector: 'div[gui-structure-schema-manager]',\n\ttemplateUrl: './structure.schema-manger.component.html',\n\tencapsulation: ViewEncapsulation.None,\n\tchangeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class StructureSchemaMangerComponent extends SmartComponent {\n\n\tprivate readonly schemaWarehouse = inject(SchemaWarehouse);\n\n\tprivate readonly schemaReadModelRootId = inject(SchemaReadModelRootId);\n\n\tcoloring = this.createColoringOptions();\n\n\tthemes = this.createThemeOptions();\n\n\trowColoring$ = this.selectRowColoring();\n\n\ttheme$ = this.selectTheme();\n\n\tverticalGrid$ = this.schemaWarehouse.onVerticalGrid(this.schemaReadModelRootId);\n\n\thorizontalGrid$ = this.schemaWarehouse.onHorizontalGrid(this.schemaReadModelRootId);\n\n\tconstructor(\n\t\tchangeDetectorRef: ChangeDetectorRef,\n\t\telRef: ElementRef,\n\t\tprivate readonly structureId: StructureId,\n\t\tprivate readonly schemaPublisher: SchemaPublisher\n\t) {\n\t\tsuper(changeDetectorRef, elRef);\n\t}\n\n\ttoggleTheme(theme: GuiSelectOption): void {\n\t\tthis.schemaPublisher.setTheme(this.toTheme(theme.value), this.schemaReadModelRootId, this.structureId);\n\t}\n\n\ttoggleRowColoring(schemaRowColoring: GuiSelectOption): void {\n\t\tthis.schemaPublisher.setRowColoring(this.toRowColoring(schemaRowColoring.value), this.schemaReadModelRootId);\n\t}\n\n\ttoggleVerticalGrid(verticalGrid: boolean): void {\n\t\tevent.stopPropagation();\n\t\tthis.schemaPublisher.setVerticalGrid(!verticalGrid, this.schemaReadModelRootId);\n\t}\n\n\ttoggleHorizontalGrid(horizontalGrid: boolean): void {\n\t\tevent.stopPropagation();\n\t\tthis.schemaPublisher.setHorizontalGrid(!horizontalGrid, this.schemaReadModelRootId);\n\t}\n\n\tprotected getSelectorName(): string {\n\t\treturn 'gui-structure-schema-manager';\n\t}\n\n\tprivate createColoringOptions(): Array<GuiSelectOption> {\n\t\treturn Object.keys(SchemaRowColoring)\n\t\t\t\t\t .map((key: string) => SchemaRowColoring[key])\n\t\t\t\t\t .filter((val) => !Number.isInteger(val))\n\t\t\t\t\t .map((value: string) => {\n\t\t\t\t\t\t return {\n\t\t\t\t\t\t\t value: value,\n\t\t\t\t\t\t\t name: value\n\t\t\t\t\t\t };\n\t\t\t\t\t });\n\t}\n\n\tprivate createThemeOptions(): Array<GuiSelectOption> {\n\t\treturn Object.keys(SchemaTheme)\n\t\t\t\t\t .map((key: string) => SchemaTheme[key])\n\t\t\t\t\t .filter((val) => !Number.isInteger(val))\n\t\t\t\t\t .map((value: string) => {\n\t\t\t\t\t\t return {\n\t\t\t\t\t\t\t value: value,\n\t\t\t\t\t\t\t name: value\n\t\t\t\t\t\t };\n\t\t\t\t\t });\n\t}\n\n\tprivate selectRowColoring(): HermesObservable<GuiSelectOption> {\n\t\treturn this.schemaWarehouse\n\t\t\t\t   .onRowColoring(this.schemaReadModelRootId)\n\t\t\t\t   .pipe(\n\t\t\t\t\t   hermesMap((rowColoring: SchemaRowColoring) => {\n\t\t\t\t\t\t   return {\n\t\t\t\t\t\t\t   value: SchemaRowColoring[rowColoring],\n\t\t\t\t\t\t\t   name: SchemaRowColoring[rowColoring]\n\t\t\t\t\t\t   };\n\t\t\t\t\t   })\n\t\t\t\t   );\n\t}\n\n\tprivate selectTheme(): HermesObservable<GuiSelectOption> {\n\t\treturn this.schemaWarehouse\n\t\t\t\t   .onTheme(this.schemaReadModelRootId)\n\t\t\t\t   .pipe(\n\t\t\t\t\t   hermesMap((schemaTheme: SchemaTheme) => {\n\t\t\t\t\t\t   return {\n\t\t\t\t\t\t\t   value: SchemaTheme[schemaTheme],\n\t\t\t\t\t\t\t   name: SchemaTheme[schemaTheme]\n\t\t\t\t\t\t   };\n\t\t\t\t\t   })\n\t\t\t\t   );\n\t}\n\n\tprivate toTheme(theme: string): SchemaTheme {\n\t\tswitch (theme.toLowerCase()) {\n\n\t\t\tcase 'fabric':\n\t\t\t\treturn SchemaTheme.FABRIC;\n\n\t\t\tcase 'material':\n\t\t\t\treturn SchemaTheme.MATERIAL;\n\n\t\t\tcase 'generic':\n\t\t\t\treturn SchemaTheme.GENERIC;\n\n\t\t\tcase 'light':\n\t\t\t\treturn SchemaTheme.LIGHT;\n\n\t\t\tcase 'dark':\n\t\t\t\treturn SchemaTheme.DARK;\n\n\t\t\tdefault:\n\t\t\t\treturn SchemaTheme.FABRIC;\n\t\t}\n\t}\n\n\tprivate toRowColoring(coloring: string): RowColoring {\n\t\tswitch (coloring.toLowerCase()) {\n\n\t\t\tcase 'none':\n\t\t\t\treturn RowColoring.NONE;\n\n\t\t\tcase 'odd':\n\t\t\t\treturn RowColoring.ODD;\n\n\t\t\tcase 'even':\n\t\t\t\treturn RowColoring.EVEN;\n\n\t\t\tdefault:\n\t\t\t\treturn RowColoring.NONE;\n\t\t}\n\t}\n}\n","<div class=\"gui-schema-manager gui-flex gui-flex-col\">\n\n\t<div class=\"gui-dialog-title gui-mb-8\">{{'themeManagerModalTitle' | guiTranslate}}</div>\n\n\t<div class=\"gui-structure-schema-manager-select gui-flex gui-flex-col\">\n\n\t\t<span class=\"gui-mb-4 gui-text-xs\">{{'themeManagerModalTheme' | guiTranslate}}</span>\n\n\t\t<gui-select (optionChanged)=\"toggleTheme($event)\"\n\t\t\t\t\t[options]=\"themes\"\n\t\t\t\t\t[selected]=\"theme$ | guiPush\"\n\t\t\t\t\t[width]=\"180\">\n\t\t</gui-select>\n\t</div>\n\n\t<div class=\"gui-structure-schema-manager-select gui-flex gui-flex-col \">\n\n\t\t<span class=\"gui-mb-4 gui-text-xs\">\n\t\t\t{{'themeManagerModalRowColoring' | guiTranslate}}\n\t\t</span>\n\n\t\t<gui-select (optionChanged)=\"toggleRowColoring($event)\"\n\t\t\t\t\t[options]=\"coloring\"\n\t\t\t\t\t[selected]=\"rowColoring$ | guiPush\"\n\t\t\t\t\t[width]=\"180\">\n\t\t</gui-select>\n\t</div>\n\n\t<ol class=\"gui-structure-ordered-list gui-mx-10 gui-p-0 gui-my-4 gui-list-none gui-overflow-auto\">\n\n\t\t<li (click)=\"toggleVerticalGrid(verticalGrid)\"\n\t\t\t*guiLet=\"verticalGrid$; let verticalGrid\"\n\t\t\tclass=\"gui-px-13 gui-py-6 gui-cursor-pointer\">\n\n\t\t\t<gui-checkbox [checked]=\"verticalGrid\">\n\t\t\t\t{{'themeManagerModalVerticalGrid' | guiTranslate}}\n\t\t\t</gui-checkbox>\n\n\t\t</li>\n\n\t\t<li (click)=\"toggleHorizontalGrid(horizontalGrid)\"\n\t\t\t*guiLet=\"horizontalGrid$; let horizontalGrid\"\n\t\t\tclass=\"gui-px-13 gui-py-6 gui-cursor-pointer\">\n\n\t\t\t<gui-checkbox [checked]=\"horizontalGrid\">\n\t\t\t\t{{'themeManagerModalHorizontalGrid' | guiTranslate}}\n\t\t\t</gui-checkbox>\n\n\t\t</li>\n\t</ol>\n</div>\n","import { ChangeDetectionStrategy, Component, ElementRef, ViewEncapsulation } from '@angular/core';\n\nimport { PureComponent } from '../../../../common/component/src/pure-component';\n\n\n@Component({\n\tselector: 'div[gui-schema-manager-dialog]',\n\ttemplate: `\n\t\t<div gui-structure-schema-manager></div>\n\t`,\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tencapsulation: ViewEncapsulation.None\n})\nexport class StructureDialogSchemaManagerComponent extends PureComponent {\n\n\tconstructor(elRef: ElementRef) {\n\t\tsuper(elRef);\n\t}\n\n\tprotected getSelectorName(): string {\n\t\treturn 'gui-schema-manager-dialog';\n\t}\n}\n","import { Injectable, Injector } from '@angular/core';\n\nimport { FabricDialogService } from '@generic-ui/fabric';\nimport { SchemaReadModelRootId } from '../../../../../core/schema/src/api/global/schema.read-model-root-id';\nimport { StructureDialogSchemaManagerComponent } from './structure.dialog-schema-manager.component';\nimport { Reactive } from '@generic-ui/hermes';\n\n\n@Injectable()\nexport class StructureDialogSchemaManagerService extends Reactive {\n\n\tconstructor(private readonly injector: Injector,\n\t\t\t\tprivate readonly fabricDialogService: FabricDialogService) {\n\t\tsuper();\n\t}\n\n\topen(readModelId: SchemaReadModelRootId, parentInjector?: Injector): void {\n\n\t\tif (!parentInjector) {\n\t\t\tparentInjector = this.injector;\n\t\t}\n\n\t\tconst injector = Injector.create({\n\t\t\tproviders: [{ provide: SchemaReadModelRootId, useValue: readModelId }],\n\t\t\tparent: parentInjector\n\t\t});\n\n\t\tthis.fabricDialogService.open({\n\t\t\tinjector: injector,\n\t\t\tcomponent: StructureDialogSchemaManagerComponent\n\t\t});\n\t}\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, ViewEncapsulation } from '@angular/core';\nimport { IconComponent } from '../../../../../feature/common/component/src/icon-component';\n\n\n@Component({\n\tselector: 'div[gui-structure-column-manager-icon]',\n\ttemplate: `\n\t\t<svg data-name=\"Layer 1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 10.32 10.31\">\n\t\t\t<line class=\"cls-1\" x1=\"9.57\" y1=\"3.65\" x2=\"0.75\" y2=\"3.65\"/>\n\t\t\t<line class=\"cls-2\" x1=\"9.57\" y1=\"0.75\" x2=\"0.75\" y2=\"0.75\"/>\n\t\t\t<line class=\"cls-2\" x1=\"0.75\" y1=\"9.56\" x2=\"0.75\" y2=\"0.88\"/>\n\t\t\t<line class=\"cls-1\" x1=\"3.69\" y1=\"9.65\" x2=\"3.69\" y2=\"3.89\"/>\n\t\t\t<line class=\"cls-1\" x1=\"6.63\" y1=\"9.56\" x2=\"6.63\" y2=\"3.89\"/>\n\t\t\t<line class=\"cls-2\" x1=\"9.57\" y1=\"9.56\" x2=\"9.57\" y2=\"0.88\"/>\n\t\t</svg>\n\t`,\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tencapsulation: ViewEncapsulation.None\n})\nexport class StructureColumnManagerIconComponent extends IconComponent {\n\n\tconstructor(elementRef: ElementRef,\n\t\t\t\tchangeDetectorRef: ChangeDetectorRef) {\n\t\tsuper(elementRef, changeDetectorRef);\n\t}\n\n\tprotected getSelectorName(): string {\n\t\treturn 'gui-structure-column-manager-icon';\n\t}\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, ViewEncapsulation } from '@angular/core';\nimport { IconComponent } from '../../../../common/component/src/icon-component';\n\n\n@Component({\n\tselector: 'div[gui-structure-schema-manager-icon]',\n\ttemplateUrl: './structure.schema-manager-icon.component.html',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tencapsulation: ViewEncapsulation.None\n})\nexport class StructureSchemaManagerIconComponent extends IconComponent {\n\n\tconstructor(elRef: ElementRef,\n\t\t\t\tcdr: ChangeDetectorRef) {\n\t\tsuper(elRef, cdr);\n\t}\n\n\tprotected getSelectorName(): string {\n\t\treturn 'gui-structure-schema-manager-icon';\n\t}\n}\n","<svg height=\"24\" viewBox=\"0 0 32 24\" width=\"32\" xmlns=\"http://www.w3.org/2000/svg\">\n\t<g transform=\"translate(0 -4)\">\n\t\t<path d=\"M23.337,4H32v6H23.337Z\" data-name=\"Path 303\" id=\"Path_303\"/>\n\t\t<path d=\"M11.662,4h8.662v6H11.662Z\" data-name=\"Path 304\" id=\"Path_304\"/>\n\t\t<path d=\"M0,4H8.662v6H0Z\" data-name=\"Path 305\" id=\"Path_305\"/>\n\t\t<path d=\"M23.337,22H32v6H23.337Z\" data-name=\"Path 306\" id=\"Path_306\"/>\n\t\t<path d=\"M0,22H8.662v6H0Z\" data-name=\"Path 307\" id=\"Path_307\"/>\n\t\t<path d=\"M11.662,22h8.662v6H11.662Z\" data-name=\"Path 308\" id=\"Path_308\"/>\n\t\t<path d=\"M23.337,13H32v6H23.337Z\" data-name=\"Path 309\" id=\"Path_309\"/>\n\t\t<path d=\"M11.662,13h8.662v6H11.662Z\" data-name=\"Path 310\" id=\"Path_310\"/>\n\t\t<path d=\"M0,13H8.662v6H0Z\" data-name=\"Path 311\" id=\"Path_311\"/>\n\t</g>\n</svg>\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, ViewEncapsulation, inject } from '@angular/core';\nimport { SearchWarehouse } from '../../../../../../core/structure/search/src/api/search.warehouse';\nimport { SmartComponent } from '../../../../../common/component/src/smart-component';\nimport { StructureId } from '../../../../../../core/structure/structure-core/src/api/global/structure.id';\nimport { SearchPublisher } from '../../../../../../core/structure/search/src/api/search.publisher';\n\n@Component({\n\tselector: 'div[gui-active-search]',\n\ttemplateUrl: './active-search.component.html',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tencapsulation: ViewEncapsulation.None\n})\nexport class ActiveSearchComponent extends SmartComponent {\n\n\tprivate readonly structureId = inject(StructureId);\n\tprivate readonly searchCommandDispatcher = inject(SearchPublisher);\n\tprivate readonly searchWarehouse = inject(SearchWarehouse);\n\n\treadonly phrase$ = this.searchWarehouse.onPhrase(this.structureId);\n\n\tconstructor(\n\t\tchangeDetectorRef: ChangeDetectorRef,\n\t\telementRef: ElementRef\n\t) {\n\t\tsuper(changeDetectorRef, elementRef);\n\t}\n\n\tclearSearch(): void {\n\t\tevent.stopPropagation();\n\t\tthis.searchCommandDispatcher.search('', this.structureId);\n\t}\n\n\tprotected getSelectorName(): string {\n\t\treturn 'gui-active-search';\n\t}\n\n}\n","<ng-container *guiLet=\"phrase$; let phrase\">\n\t<div>\n\t\tActive search by:\n\t</div>\n\n\t<div>\n\t\t<gui-chip>{{phrase}}</gui-chip>\n\t</div>\n\n\t<div>\n\t\t<button (click)=\"clearSearch()\"\n\t\t\t\t[outline]=\"true\"\n\t\t\t\t[primary]=\"true\"\n\t\t\t\tgui-button>\n\t\t\tClear search\n\t\t</button>\n\t</div>\n</ng-container>\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, OnInit, ViewEncapsulation, inject } from '@angular/core';\n\nimport { SmartComponent } from '../../../../common/component/src/smart-component';\nimport { FilterWarehouse } from '../../../../../core/structure/filter/src/api/filter.warehouse';\nimport { ActiveFilterModel } from '../../../../../core/structure/filter/src/api/active/active-filter.model';\nimport { StructureId } from '../../../../../core/structure/structure-core/src/api/global/structure.id';\nimport { FilterPublisher } from '../../../../../core/structure/filter/src/api/filter.publisher';\n\n\n@Component({\n\tselector: 'div[gui-active-filter-list]',\n\ttemplateUrl: './active-filter-list.component.html',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tencapsulation: ViewEncapsulation.None\n})\nexport class ActiveFilterListComponent extends SmartComponent {\n\n\tprivate readonly structureId = inject(StructureId);\n\tprivate readonly filterWarehouse = inject(FilterWarehouse);\n\n\treadonly activeFilters$ = this.filterWarehouse.onActiveFilters(this.structureId);\n\n\tconstructor(changeDetectorRef: ChangeDetectorRef,\n\t\t\t\telementRef: ElementRef,\n\t\t\t\tprivate readonly filterCommandDispatcher: FilterPublisher) {\n\t\tsuper(changeDetectorRef, elementRef);\n\t}\n\n\tremoveFilter(filter: ActiveFilterModel): void {\n\t\tthis.filterCommandDispatcher.remove(filter.getFilterId(), this.structureId);\n\t}\n\n\tprotected getSelectorName(): string {\n\t\treturn 'gui-active-filter-list';\n\t}\n}\n","<ng-container *guiLet=\"activeFilters$; let activeFilters\">\n\t<div *ngFor=\"let filter of activeFilters\">\n\t\t{{filter.getText()}}\n\t\t<span (click)=\"removeFilter(filter)\">X</span>\n\t</div>\n</ng-container>\n\n<div gui-active-search></div>\n","import { Component } from '@angular/core';\n\n@Component({\n\ttemplate: `\n\n\t\t<h3>Active filters</h3>\n\n\t\t<div gui-active-filter-list></div>\n\n\t\t<div>\n\n\t\t\t<button gui-button\n\t\t\t\t\t[text]=\"true\">\n\t\t\t\tCancel\n\t\t\t</button>\n\n\t\t\t<button gui-button\n\t\t\t\t\t[outline]=\"true\"\n\t\t\t\t\t[primary]=\"true\">\n\t\t\t\tClear All\n\t\t\t</button>\n\t\t</div>\n\t`\n})\nexport class ActiveFilterMenuComponent {\n}\n","import { Injectable, Injector } from '@angular/core';\n\nimport { FabricDialogService } from '@generic-ui/fabric';\n\nimport { SchemaWarehouse } from '../../../../../../core/schema/src/api/schema.warehouse';\nimport { StructureThemeConverter } from '../../../../../../feature-view/grid-view/src/schema/structure.theme.converter';\nimport { SchemaReadModelRootId } from '../../../../../../core/schema/src/api/global/schema.read-model-root-id';\nimport { SchemaTheme } from '../../../../../../core/schema/src/api/theme/schema-theme';\nimport { ActiveFilterMenuComponent } from './active-filter-menu.component';\nimport { StructureId } from '../../../../../../core/structure/structure-core/src/api/global/structure.id';\nimport { Reactive } from '@generic-ui/hermes';\n\n\n@Injectable()\nexport class ActiveFilterService extends Reactive {\n\n\tconstructor(private readonly injector: Injector,\n\t\t\t\tprivate readonly schemaWarehouse: SchemaWarehouse,\n\t\t\t\tprivate readonly structureThemeConverter: StructureThemeConverter,\n\t\t\t\tprivate readonly fabricDialogService: FabricDialogService) {\n\t\tsuper();\n\t}\n\n\topen(readModelId: SchemaReadModelRootId, structureId: StructureId): void {\n\n\t\tconst injector = Injector.create({\n\t\t\tparent: this.injector,\n\t\t\tproviders: [\n\t\t\t\t{ provide: SchemaReadModelRootId, useValue: readModelId },\n\t\t\t\t{ provide: StructureId, useValue: structureId }\n\t\t\t]\n\t\t});\n\n\t\tthis.schemaWarehouse\n\t\t\t.findTheme(readModelId)\n\t\t\t.ifPresent((theme: SchemaTheme) => {\n\t\t\t\tthis.fabricDialogService.open({\n\t\t\t\t\tinjector: injector,\n\t\t\t\t\tcomponent: ActiveFilterMenuComponent,\n\t\t\t\t\ttheme: this.structureThemeConverter.convertTheme(theme)\n\t\t\t\t});\n\t\t\t});\n\t}\n\n}\n","import { Directive, ElementRef } from '@angular/core';\n\nimport { ActiveFilterService } from './active-filter.service';\n\nimport { SchemaReadModelRootId } from '../../../../../../core/schema/src/api/global/schema.read-model-root-id';\nimport { StructureId } from '../../../../../../core/structure/structure-core/src/api/global/structure.id';\n\n@Directive({\n\tselector: '[gui-active-filter-menu-trigger]'\n})\nexport class ActiveFilterMenuTriggerDirective {\n\n\tconstructor(private readonly el: ElementRef,\n\t\t\t\tprivate readonly structureId: StructureId,\n\t\t\t\tprivate readonly activeFilterService: ActiveFilterService,\n\t\t\t\tprivate readonly schemaReadModelRootId: SchemaReadModelRootId) {\n\t}\n\n\tngOnInit() {\n\t\t// this.renderer.listen(this.el.nativeElement, 'click', () => {\n\t\t// \tthis.activeFilterService.open(this.schemaReadModelRootId, this.structureId);\n\t\t// });\n\t}\n\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, ViewEncapsulation } from '@angular/core';\n\nimport { IconComponent } from '../../../../../../feature/common/component/src/icon-component';\n\n\n@Component({\n\tselector: 'div[gui-structure-info-icon]',\n\ttemplateUrl: './structure.info-icon.component.html',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tencapsulation: ViewEncapsulation.None\n})\nexport class StructureInfoIconComponent extends IconComponent {\n\n\tconstructor(elRef: ElementRef,\n\t\t\t\tcdr: ChangeDetectorRef) {\n\t\tsuper(elRef, cdr);\n\t}\n\n\tprotected getSelectorName(): string {\n\t\treturn 'gui-structure-info-icon';\n\t}\n\n}\n","<svg data-name=\"Layer 1\" viewBox=\"0 0 10.08 10.08\" xmlns=\"http://www.w3.org/2000/svg\">\n\t<path class=\"cls-1\"\n\t\t  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\"\n\t\t  transform=\"translate(-397.14 -304.64)\"/>\n\t<circle class=\"cls-2\" cx=\"5.04\" cy=\"5.04\" r=\"4.54\"/>\n</svg>\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({ name: 'numberFormatter' })\nexport class NumberFormatterPipe implements PipeTransform {\n\n\ttransform(number: number): string {\n\t\treturn number.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, ' ');\n\t}\n\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, Injector, ViewEncapsulation, inject } from '@angular/core';\n\nimport { FabricDialogService } from '@generic-ui/fabric';\n\nimport { SmartComponent } from '../../../../../feature/common/component/src/smart-component';\n\nimport { StructureInfoModalComponent } from './info-modal/structure-info-modal.component';\n\nimport { SourceWarehouse } from '../../../../../core/structure/source/src/api/source.warehouse';\nimport { StructureDialogColumnManagerService } from '../../column-manager/dialog/structure.dialog-column-manager.service';\nimport { CompositionId } from '../../../../../core/composition/src/api/global/composition.id';\nimport { StructureId } from '../../../../../core/structure/structure-core/src/api/global/structure.id';\nimport { SchemaReadModelRootId } from '../../../../../core/schema/src/api/global/schema.read-model-root-id';\nimport { StructureInfoPanelArchive } from '../../../../../core/structure/structure-core/src/api/panel/info/structure.info-panel.archive';\nimport { StructureInfoPanelConfig } from '../../../../../core/structure/structure-core/src/api/panel/info/structure.info-panel.config';\nimport { StructureDialogSchemaManagerService } from '../../../../../feature/schema/src/manager/dialog/structure.dialog-schema-manager.service';\nimport { TranslationFacade } from '../../../../../core/l10n/src/api/translation.facade';\nimport { Translation } from '../../../../../core/l10n/src/api/translation';\nimport { hermesMap } from '@generic-ui/hermes';\nimport { GuiState } from '../../../../../feature/gui-angular/state/gui.state';\n\n\nexport interface StructureInfoPanelComponentState {\n\n\ttranslations: Translation;\n\n\tinfoPanelConfig: StructureInfoPanelConfig;\n\n\tpreparedItemsSize: number;\n}\n\n@Component({\n\tselector: 'div[gui-structure-info-panel]',\n\ttemplateUrl: './structure.info-panel.component.html',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tencapsulation: ViewEncapsulation.None,\n\tproviders: [\n\t\tGuiState\n\t]\n})\nexport class StructureInfoPanelComponent extends SmartComponent {\n\n\tprivate readonly state = inject(GuiState<StructureInfoPanelComponentState>);\n\n\tprivate readonly sourceWarehouse = inject(SourceWarehouse);\n\n\tprivate readonly structureId = inject(StructureId);\n\n\tstate$ = this.state.select();\n\n\ttotalItemsSize$ = this.sourceWarehouse.onOriginSize(this.structureId);\n\n\tinfoModal = StructureInfoModalComponent;\n\n\tconstructor(changeDetectorRef: ChangeDetectorRef,\n\t\t\t\telementRef: ElementRef,\n\t\t\t\tprivate readonly injector: Injector,\n\t\t\t\tprivate readonly dialog: FabricDialogService,\n\t\t\t\tprivate readonly compositionId: CompositionId,\n\t\t\t\tprivate readonly schemaReadModelRootId: SchemaReadModelRootId,\n\t\t\t\tprivate readonly menuColumnManagerService: StructureDialogColumnManagerService,\n\t\t\t\tprivate readonly translationService: TranslationFacade,\n\t\t\t\tprivate readonly schemaManagerService: StructureDialogSchemaManagerService,\n\t\t\t\tprivate readonly structureInfoPanelArchive: StructureInfoPanelArchive) {\n\t\tsuper(changeDetectorRef, elementRef);\n\n\t\tthis.state.connect('infoPanelConfig', this.structureInfoPanelArchive.on());\n\t\tthis.state.connect('preparedItemsSize', this.sourceWarehouse\n\t\t\t\t\t\t\t\t\t\t\t\t\t.onPreparedItems(this.structureId)\n\t\t\t\t\t\t\t\t\t\t\t\t\t.pipe(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\thermesMap(items => items.length)\n\t\t\t\t\t\t\t\t\t\t\t\t\t));\n\t\tthis.state.connect('translations', this.translationService.onTranslation());\n\t}\n\n\topenInfo(): void {\n\t\tthis.dialog.open({ component: this.infoModal });\n\t}\n\n\topenColumnManager(): void {\n\t\tthis.menuColumnManagerService.open(this.compositionId, this.schemaReadModelRootId, this.injector);\n\t}\n\n\topenSchemaManager(): void {\n\t\tthis.schemaManagerService.open(this.schemaReadModelRootId, this.injector);\n\t}\n\n\tprotected getSelectorName(): string {\n\t\treturn 'gui-structure-info-panel';\n\t}\n\n}\n","<ng-container *guiLet=\"state$; let localState\">\n\n\t<div *guiLet=\"totalItemsSize$; let totalItemsSize\">\n\t\t<div *ngIf=\"localState.infoPanelConfig.isSourceSizeEnabled()\">\n\t\t\t<ng-container *ngIf=\"localState.preparedItemsSize !== undefined && totalItemsSize !== undefined\">\n\n\t\t\t\t<ng-container *ngIf=\"localState.preparedItemsSize === totalItemsSize\">\n\t\t\t\t\t{{'infoPanelShowing' | guiTranslate}}\n\t\t\t\t\t<b>{{totalItemsSize | numberFormatter}}</b>\n\t\t\t\t\t{{'infoPanelItems' | guiTranslate}}\n\t\t\t\t</ng-container>\n\n\t\t\t\t<span *ngIf=\"localState.preparedItemsSize !== totalItemsSize\"\n\t\t\t\t\t  gui-active-filter-menu-trigger>\n\t\t\t\t\t\t{{'infoPanelShowing' | guiTranslate}}\n\t\t\t\t\t<b>{{localState.preparedItemsSize | numberFormatter}}</b>\n\t\t\t\t\t{{'infoPanelOutOf' | guiTranslate}}\n\t\t\t\t\t<b>{{totalItemsSize | numberFormatter}}</b>\n\t\t\t\t\t{{'infoPanelItems' | guiTranslate}}\n\t\t\t</span>\n\n\t\t\t</ng-container>\n\n\t\t</div>\n\t</div>\n\n\t<div>\n\t\t<div class=\"gui-right-section\">\n\n\t\t\t<div (click)=\"openSchemaManager()\"\n\t\t\t\t *ngIf=\"localState.infoPanelConfig.isSchemaManagerEnabled()\">\n\t\t\t\t<div [gui-tooltip]=\"localState.translations.infoPanelThemeMangerTooltipText\" gui-structure-schema-manager-icon></div>\n\t\t\t</div>\n\n\t\t\t<div (click)=\"openColumnManager()\"\n\t\t\t\t *ngIf=\"localState.infoPanelConfig.isColumnsManagerEnabled()\">\n\t\t\t\t<div [gui-tooltip]=\"localState.translations.infoPanelColumnManagerTooltipText\" gui-structure-column-manager-icon></div>\n\t\t\t</div>\n\n\t\t\t<div (click)=\"openInfo()\"\n\t\t\t\t *ngIf=\"localState.infoPanelConfig.isInfoDialogEnabled()\">\n\t\t\t\t<div [gui-tooltip]=\"localState.translations.infoPanelInfoTooltipText\" gui-structure-info-icon></div>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n\n</ng-container>\n","import { Injectable, OnDestroy } from '@angular/core';\nimport { HermesObservable, HermesReplaySubject, HermesSubscription, hermesTakeUntil } from '@generic-ui/hermes';\n\n@Injectable()\nexport class GuiEffects implements OnDestroy {\n\n\tprivate readonly destroy$ = new HermesReplaySubject<void>(1);\n\n\tregister(\n\t\teffect$: HermesObservable<any>,\n\t\tnext: (v: any) => void,\n\t\tcomplete?: () => void\n\t): HermesSubscription {\n\t\treturn effect$.pipe(\n\t\t\t\t\t\t  hermesTakeUntil(this.destroy$)\n\t\t\t\t\t  )\n\t\t\t\t\t  .subscribe(\n\t\t\t\t\t\t  (v) => next(v),\n\t\t\t\t\t\t  (error) => console.log(error),\n\t\t\t\t\t\t  complete ? () => complete() : () => {}\n\t\t\t\t\t  );\n\t}\n\n\tdestroy(): void {\n\t\tthis.destroy$.next();\n\t\tthis.destroy$.complete();\n\t}\n\n\tngOnDestroy(): void {\n\t\tthis.destroy();\n\t}\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, ViewEncapsulation } from '@angular/core';\nimport { IconComponent } from '../../../../common/component/src/icon-component';\n\n\n@Component({\n\tselector: 'div[gui-search-icon]',\n\ttemplate: `\n\t\t<svg class=\"gui-search-icon-svg\" xmlns=\"http://www.w3.org/2000/svg\" width=\"10.231\" height=\"10.601\" viewBox=\"0 0 10.231 10.601\">\n\t\t\t<line x2=\"1.77\" y2=\"1.77\" transform=\"translate(7.4 7.77)\" fill=\"none\" stroke-linecap=\"round\"\n\t\t\t\t  stroke-linejoin=\"round\" stroke-width=\"1.5\"/>\n\t\t\t<circle cx=\"4.02\" cy=\"4.02\" r=\"4.02\" transform=\"translate(0.5 0.5)\" stroke-width=\"1\"\n\t\t\t\t\tstroke-linecap=\"round\" stroke-linejoin=\"round\" fill=\"none\"/>\n\t\t</svg>\n\t`,\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tencapsulation: ViewEncapsulation.None\n})\nexport class SearchIconComponent extends IconComponent {\n\n\tconstructor(elementRef: ElementRef,\n\t\t\t\tchangeDetectorRef: ChangeDetectorRef) {\n\t\tsuper(elementRef, changeDetectorRef);\n\t}\n\n\tprotected getSelectorName(): string {\n\t\treturn 'gui-search-icon';\n\t}\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, inject, OnInit, ViewChild, ViewEncapsulation } from '@angular/core';\nimport { FormBuilder, FormGroup } from '@angular/forms';\nimport { debounceTime } from 'rxjs/operators';\nimport { Observable } from 'rxjs';\n\nimport { SmartComponent } from '../../../common/component/src/smart-component';\nimport { StructureId } from '../../../../core/structure/structure-core/src/api/global/structure.id';\nimport { SearchPublisher } from '../../../../core/structure/search/src/api/search.publisher';\nimport { SearchWarehouse } from '../../../../core/structure/search/src/api/search.warehouse';\nimport { fromRxJsObservable, HermesSubscription } from '@generic-ui/hermes';\nimport { GuiEffects } from '../../../gui-angular/effect/gui.effects';\n\n\n@Component({\n\tselector: 'div[gui-search-bar]',\n\ttemplateUrl: './search.component.html',\n\tstyleUrls: [\n\t\t'./style/searching.component.scss'\n\t],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tencapsulation: ViewEncapsulation.None,\n\tproviders: [\n\t\tGuiEffects\n\t]\n})\nexport class SearchComponent extends SmartComponent implements OnInit {\n\n\tprivate static readonly FORM_SEARCH_NAME = 'searchPhrase';\n\n\t@ViewChild('formRef', { read: ElementRef, static: false })\n\treadonly formRef?: ElementRef;\n\n\tprivate readonly structureId = inject(StructureId);\n\n\tprivate readonly searchWarehouse = inject(SearchWarehouse);\n\n\tsearchForm: FormGroup;\n\n\tplaceholder$ = this.searchWarehouse.onPlaceholder(this.structureId);\n\n\tsearchingEnabled$ = this.searchWarehouse.onSearchEnabled(this.structureId);\n\n\tsearchInputSubscription: HermesSubscription;\n\n\tconstructor(\n\t\tprivate readonly formBuilder: FormBuilder,\n\t\tchangeDetectorRef: ChangeDetectorRef,\n\t\telementRef: ElementRef,\n\t\tprivate readonly effects: GuiEffects,\n\t\tprivate readonly searchCommandDispatcher: SearchPublisher\n\t) {\n\t\tsuper(changeDetectorRef, elementRef);\n\n\t\tconst controlsConfig = {};\n\t\tcontrolsConfig[SearchComponent.FORM_SEARCH_NAME] = '';\n\n\t\tthis.searchForm = this.formBuilder.group(controlsConfig);\n\n\t\tthis.registerOnPhraseEffect();\n\t}\n\n\tngOnInit() {\n\t\tthis.registerOnChangesEffect();\n\t}\n\n\tclear(): void {\n\t\tthis.searchForm.reset();\n\t}\n\n\tprotected getSelectorName(): string {\n\t\treturn 'gui-search-bar';\n\t}\n\n\tprivate selectPhrase() {\n\n\t\t// @ts-ignore\n\t\tconst searchPhrase$ = this.searchForm\n\t\t\t.controls[SearchComponent.FORM_SEARCH_NAME]\n\t\t\t.valueChanges as Observable<string>;\n\n\t\treturn fromRxJsObservable(\n\t\t\tsearchPhrase$\n\t\t\t\t.pipe(\n\t\t\t\t\tdebounceTime(200)\n\t\t\t\t)\n\t\t);\n\t}\n\n\tprivate registerOnChangesEffect(): void {\n\t\tthis.searchInputSubscription =\n\t\t\tthis.effects.register(\n\t\t\t\tthis.selectPhrase(),\n\t\t\t\t(phrase: string) => {\n\t\t\t\t\tthis.searchCommandDispatcher.search(phrase, this.structureId);\n\t\t\t\t}\n\t\t\t);\n\t}\n\n\tprivate registerOnPhraseEffect(): void {\n\t\tthis.effects.register(\n\t\t\tthis.searchWarehouse.onPhrase(this.structureId),\n\t\t\t(phrase: string) => {\n\n\t\t\t\tif (phrase === undefined) {\n\t\t\t\t\tphrase = null;\n\t\t\t\t}\n\n\t\t\t\tconst controlsConfig = {};\n\t\t\t\tcontrolsConfig[SearchComponent.FORM_SEARCH_NAME] = phrase;\n\n\t\t\t\tif (phrase !== this.searchForm.get([SearchComponent.FORM_SEARCH_NAME]).value) {\n\n\t\t\t\t\tthis.unregisterObserveChangesEffect();\n\t\t\t\t\tthis.searchForm.setValue(controlsConfig);\n\t\t\t\t\tthis.registerOnChangesEffect();\n\t\t\t\t}\n\t\t\t}\n\t\t);\n\t}\n\n\tprivate unregisterObserveChangesEffect(): void {\n\t\tthis.searchInputSubscription.unsubscribe();\n\t}\n}\n","<ng-container *guiIf=\"searchingEnabled$\">\n\n\t<form #formRef\n\t\t  [formGroup]=\"searchForm\"\n\t\t  class=\"gui-flex gui-relative gui-w-full\">\n\n\t\t<div gui-search-icon></div>\n\n\t\t<input [placeholder]=\"placeholder$ | guiPush\"\n\t\t\t   class=\"gui-border-0 gui-w-full gui-h-full gui-py-5 gui-pr-5 gui-pl-21\"\n\t\t\t   formControlName=\"searchPhrase\">\n\n\t\t<span (click)=\"clear()\"\n\t\t\t  *ngIf=\"searchForm.controls['searchPhrase'].value\"\n\t\t\t  class=\"gui-clear-search-icon\">\n\t\t\t\t</span>\n\t</form>\n</ng-container>\n","import { ChangeDetectionStrategy, Component, ElementRef, ViewEncapsulation } from '@angular/core';\nimport { PureComponent } from '../../../../../feature/common/component';\n\n@Component({\n\tselector: 'div[gui-structure-top-panel]',\n\ttemplateUrl: './structure.top-panel.component.html',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tencapsulation: ViewEncapsulation.None\n})\nexport class StructureTopPanelComponent extends PureComponent {\n\n\tconstructor(elementRef: ElementRef) {\n\t\tsuper(elementRef);\n\t\tthis.addClassToHost('gui-p-6');\n\t\tthis.addClassToHost('gui-border-b');\n\t\tthis.addClassToHost('gui-border-b-solid');\n\t}\n\n\tprotected getSelectorName(): string {\n\t\treturn 'gui-structure-top-panel';\n\t}\n\n}\n","<div class=\"gui-flex gui-items-center gui-h-full gui-w-3/5 gui-mr-auto\"\n\t gui-search-bar></div>\n\n<!--\t\t<div gui-filter-menu-trigger></div>-->\n","import { ChangeDetectionStrategy, Component, ElementRef, Input, OnChanges, ViewEncapsulation } from '@angular/core';\n\nimport { PureComponent } from '../../../../common/component/src/pure-component';\nimport { NgChanges } from '../../../../common/component/src/ng-changes';\nimport { ifChanged } from '../../../../common/component/src/check.input';\n\n\n@Component({\n\tselector: 'div[gui-empty-source][items]',\n\ttemplateUrl: './empty-source.component.html',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tencapsulation: ViewEncapsulation.None\n})\nexport class EmptySourceComponent extends PureComponent implements OnChanges {\n\n\t@Input()\n\titems!: Array<any>;\n\n\tconstructor(elRef: ElementRef) {\n\t\tsuper(elRef);\n\t\tthis.addClassToHost('gui-py-23');\n\t\tthis.addClassToHost('gui-px-6');\n\t}\n\n\tngOnChanges(changes: NgChanges<EmptySourceComponent>) {\n\n\t\tifChanged(changes.items, () => {\n\t\t\tif (this.items.length === 0) {\n\t\t\t\tthis.removeClassFromHost('gui-hidden');\n\t\t\t\tthis.addClassToHost('gui-block');\n\t\t\t} else {\n\t\t\t\tthis.removeClassFromHost('gui-block');\n\t\t\t\tthis.addClassToHost('gui-hidden');\n\t\t\t}\n\t\t});\n\t}\n\n\tprotected getSelectorName(): string {\n\t\treturn 'gui-empty-source';\n\t}\n}\n","<ng-container *ngIf=\"items.length === 0\">\n\t{{'sourceEmpty' | guiTranslate}}\n</ng-container>\n","import { StructureId } from '../../../structure-core/src/api/global/structure.id';\nimport { HermesObservable, Warehouse } from '@generic-ui/hermes';\n\n\nexport abstract class VerticalFormationWarehouse implements Warehouse {\n\n\tprotected constructor() {\n\t}\n\n\tabstract onEnabled(structureId: StructureId): HermesObservable<boolean>;\n\n\tabstract onRowHeight(structureId: StructureId): HermesObservable<number>;\n\n\tabstract onContainerHeight(structureId: StructureId): HermesObservable<number>;\n\n\tabstract onTopMargin(structureId: StructureId): HermesObservable<number>;\n\n\tabstract onScrollBarPosition(structureId: StructureId): HermesObservable<number>;\n\n}\n","import { ChangeDetectionStrategy, Component, ElementRef, ViewEncapsulation } from '@angular/core';\n\nimport { PureComponent } from '../../../../../feature/common/component/src/pure-component';\n\n@Component({\n\tselector: 'div[gui-structure-menu-column-manager]',\n\ttemplateUrl: './structure.menu-column-manager.component.html',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tencapsulation: ViewEncapsulation.None\n})\nexport class StructureMenuColumnManagerComponent extends PureComponent {\n\n\tconstructor(elementRef: ElementRef) {\n\t\tsuper(elementRef);\n\t}\n\n\tprotected getSelectorName(): string {\n\t\treturn 'gui-structure-menu-column-manager';\n\t}\n}\n","<div gui-structure-column-manager></div>\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, inject, Input, OnInit, ViewEncapsulation } from '@angular/core';\n\nimport { SmartComponent } from '../../../../common/component/src/smart-component';\nimport { FieldId } from '../../../../../core/structure/field/src/domain/field/field.id';\nimport { UniqueValueCollectionModel } from '../../../../../core/structure/filter/src/api/unique/unique-value-collection.model';\nimport { StructureId } from '../../../../../core/structure/structure-core/src/api/global/structure.id';\nimport { FilterWarehouse } from '../../../../../core/structure/filter/src/api/filter.warehouse';\nimport { UniqueValueModel } from '../../../../../core/structure/filter/src/api/unique/unique-value.model';\nimport { FilterPublisher } from '../../../../../core/structure/filter/src/api/filter.publisher';\nimport { GuiState } from '../../../../../feature/gui-angular/state/gui.state';\nimport { hermesMap, HermesObservable, hermesSwitchMap } from '@generic-ui/hermes';\n\nexport interface UniqueValueListState {\n\n\tfieldId: FieldId;\n\n\tuniqueValues: Array<UniqueValueModel>;\n\n\tselectAllChecked: boolean;\n\n\tselectAllIndeterminate: boolean;\n\n}\n\n@Component({\n\tselector: 'div[gui-unique-value-list][fieldId]',\n\ttemplateUrl: './unique-value-list.component.html',\n\tstyleUrls: [\n\t\t'../style/unique-value-list.component.scss'\n\t],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tencapsulation: ViewEncapsulation.None,\n\tproviders: [\n\t\tGuiState\n\t]\n})\nexport class UniqueValueListComponent extends SmartComponent {\n\n\t@Input()\n\tset fieldId(fieldId: FieldId) {\n\t\tthis.state.setValue({\n\t\t\tfieldId\n\t\t});\n\t};\n\n\tprivate readonly state = inject(GuiState<UniqueValueListState>);\n\n\treadonly state$ = this.state.select();\n\n\tconstructor(\n\t\tchangeDetectorRef: ChangeDetectorRef,\n\t\telementRef: ElementRef,\n\t\tprivate readonly structureId: StructureId,\n\t\tprivate readonly filterWarehouse: FilterWarehouse,\n\t\tprivate readonly filterCommandInvoker: FilterPublisher\n\t) {\n\t\tsuper(changeDetectorRef, elementRef);\n\n\t\tthis.state.connect('uniqueValues', this.selectUniqueValues());\n\t\tthis.state.connect('selectAllChecked', this.isSelectAllChecked());\n\t\tthis.state.connect('selectAllIndeterminate', this.isSelectAllIndeterminate());\n\t}\n\n\ttoggleAllSelect(): void {\n\t\tevent.stopPropagation();\n\n\t\tconst fieldId = this.state.getValue('fieldId') as FieldId,\n\t\t\tselectAllChecked = this.state.getValue('selectAllChecked');\n\n\t\tif (selectAllChecked) {\n\t\t\tthis.filterCommandInvoker.unselectAllUniqueFilter(fieldId, this.structureId);\n\t\t} else {\n\t\t\tthis.filterCommandInvoker.selectAllUniqueFilter(fieldId, this.structureId);\n\t\t}\n\t}\n\n\ttoggleSelect(uniqueValueModel: UniqueValueModel): void {\n\t\tevent.stopPropagation();\n\n\t\tconst fieldId: FieldId = this.state.getValue('fieldId') as FieldId;\n\n\t\tif (uniqueValueModel.isEnabled()) {\n\t\t\tthis.filterCommandInvoker.unselectUniqueFilter(fieldId, uniqueValueModel.getId(), this.structureId);\n\t\t} else {\n\t\t\tthis.filterCommandInvoker.selectUniqueFilter(fieldId, uniqueValueModel.getId(), this.structureId);\n\t\t}\n\t}\n\n\tclearFilters(): void {\n\t\tconst fieldId = this.state.getValue('fieldId') as FieldId;\n\t\tthis.filterCommandInvoker.selectAllUniqueFilter(fieldId, this.structureId);\n\t}\n\n\tprotected getSelectorName(): string {\n\t\treturn 'gui-unique-value-list';\n\t}\n\n\tprivate selectUniqueValues(): HermesObservable<Array<UniqueValueModel>> {\n\t\treturn this.state\n\t\t\t\t   .select('fieldId')\n\t\t\t\t   .pipe(\n\t\t\t\t\t   hermesSwitchMap((fieldId: FieldId) => {\n\t\t\t\t\t\t   return this.filterWarehouse\n\t\t\t\t\t\t\t\t\t  .onUniqueValues(this.structureId)\n\t\t\t\t\t\t\t\t\t  .pipe(\n\t\t\t\t\t\t\t\t\t\t  hermesMap((uniqueValueCollectionModel: UniqueValueCollectionModel) => {\n\t\t\t\t\t\t\t\t\t\t\t  return uniqueValueCollectionModel.getValues(fieldId);\n\t\t\t\t\t\t\t\t\t\t  })\n\t\t\t\t\t\t\t\t\t  );\n\t\t\t\t\t   })\n\t\t\t\t   );\n\t}\n\n\tprivate isSelectAllChecked(): HermesObservable<boolean> {\n\t\treturn this.state\n\t\t\t\t   .select('fieldId')\n\t\t\t\t   .pipe(\n\t\t\t\t\t   hermesSwitchMap((fieldId: FieldId) => {\n\t\t\t\t\t\t   return this.filterWarehouse\n\t\t\t\t\t\t\t\t\t  .onUniqueValues(this.structureId)\n\t\t\t\t\t\t\t\t\t  .pipe(\n\t\t\t\t\t\t\t\t\t\t  hermesMap((uniqueValueCollectionModel: UniqueValueCollectionModel) => {\n\t\t\t\t\t\t\t\t\t\t\t  return uniqueValueCollectionModel.isSelectAllChecked(fieldId);\n\t\t\t\t\t\t\t\t\t\t  })\n\t\t\t\t\t\t\t\t\t  );\n\t\t\t\t\t   })\n\t\t\t\t   );\n\t}\n\n\tprivate isSelectAllIndeterminate(): HermesObservable<boolean> {\n\t\treturn this.state\n\t\t\t\t   .select('fieldId')\n\t\t\t\t   .pipe(\n\t\t\t\t\t   hermesSwitchMap((fieldId: FieldId) => {\n\t\t\t\t\t\t   return this.filterWarehouse\n\t\t\t\t\t\t\t\t\t  .onUniqueValues(this.structureId)\n\t\t\t\t\t\t\t\t\t  .pipe(\n\t\t\t\t\t\t\t\t\t\t  hermesMap((uniqueValueCollectionModel: UniqueValueCollectionModel) => {\n\t\t\t\t\t\t\t\t\t\t\t  return uniqueValueCollectionModel.isIndeterminate(fieldId);\n\t\t\t\t\t\t\t\t\t\t  })\n\t\t\t\t\t\t\t\t\t  );\n\t\t\t\t\t   })\n\t\t\t\t   );\n\t}\n\n}\n","<ng-container *guiLet=\"state$; let state\">\n\t<gui-checkbox (changed)=\"toggleAllSelect()\"\n\t\t\t\t  [checked]=\"state.selectAllChecked\"\n\t\t\t\t  [indeterminate]=\"state.selectAllIndeterminate\">\n\t\tSelect all\n\t</gui-checkbox>\n\n\t<div class=\"gui-unique-value-list-container gui-overflow-y-auto gui-overflow-x-hidden\">\n\t\t<div *ngFor=\"let value of state.uniqueValues\">\n\t\t\t<gui-checkbox (changed)=\"toggleSelect(value)\"\n\t\t\t\t\t\t  [checked]=\"value.isEnabled()\">\n\t\t\t\t{{value.getValue()}}\n\t\t\t</gui-checkbox>\n\t\t</div>\n\t</div>\n\n\t<div class=\"gui-unique-value-list-actions gui-px-4 gui-pb-4 gui-pt-2 gui-flex gui-justify-end\">\n\t\t<button (click)=\"clearFilters()\"\n\t\t\t\t[outline]=\"true\"\n\t\t\t\t[primary]=\"true\"\n\t\t\t\tclass=\"gui-clear-unique-filters gui-px-4 gui-py-2\"\n\t\t\t\tgui-button>\n\t\t\tClear\n\t\t</button>\n\t</div>\n</ng-container>\n","export enum StructureArrowPosition {\n\tUP,\n\tDOWN,\n\tLEFT,\n\tRIGHT\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, Input, OnChanges, ViewEncapsulation } from '@angular/core';\nimport { IconComponent } from '../../component/src/icon-component';\nimport { StyleModifier } from '../../component/src/dom/style/style-modifier';\nimport { NgChanges } from '../../component/src/ng-changes';\nimport { ifChanged } from '../../component/src/check.input';\nimport { StructureArrowPosition } from './strucutre.arrow-position';\nimport { SortOrder } from '../../../../core/composition/src/domain/column/sort/sort-order';\n\n\n@Component({\n\tselector: 'div[gui-structure-arrow-icon]',\n\ttemplate: `\n\t\t<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 10.04 11.72\">\n\t\t\t<line class=\"cls-1\" x1=\"5.02\" y1=\"2.15\" x2=\"5.02\" y2=\"10.97\"/>\n\t\t\t<line class=\"cls-1\" x1=\"5.02\" y1=\"0.75\" x2=\"9.29\" y2=\"5.02\"/>\n\t\t\t<line class=\"cls-1\" x1=\"5.02\" y1=\"0.75\" x2=\"0.75\" y2=\"5.02\"/>\n\t\t</svg>\n\t`,\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tencapsulation: ViewEncapsulation.None\n})\nexport class StructureArrowIconComponent extends IconComponent implements OnChanges {\n\n\t@Input()\n\tposition: StructureArrowPosition | SortOrder = StructureArrowPosition.UP;\n\n\t@Input()\n\tsort: boolean;\n\n\tprivate readonly styleModifier: StyleModifier;\n\n\tconstructor(elementRef: ElementRef,\n\t\t\t\tchangeDetectorRef: ChangeDetectorRef) {\n\t\tsuper(elementRef, changeDetectorRef);\n\t\tif (this.sort) {\n\t\t\tthis.addClassToHost('gui-structure-column-menu-sort-icon');\n\t\t}\n\t\tthis.styleModifier = new StyleModifier(elementRef.nativeElement);\n\t}\n\n\tngOnChanges(changes: NgChanges<StructureArrowIconComponent>) {\n\n\t\tifChanged(changes.position, () => {\n\t\t\tif (this.position) {\n\t\t\t\tthis.styleModifier.getHost().setStyleByName('transform', this.getTransformValue());\n\t\t\t}\n\t\t});\n\t}\n\n\tprotected getSelectorName(): string {\n\t\treturn 'gui-structure-column-menu-arrow-icon';\n\t}\n\n\tprivate getTransformValue(): string {\n\t\treturn 'rotate(' + this.getRotationDeg() + 'deg)';\n\t}\n\n\tprivate getRotationDeg(): number {\n\n\t\tswitch (this.position) {\n\n\t\t\tcase StructureArrowPosition.UP: {\n\t\t\t\treturn 0;\n\t\t\t}\n\n\t\t\tcase StructureArrowPosition.DOWN: {\n\t\t\t\treturn 180;\n\t\t\t}\n\n\t\t\tcase StructureArrowPosition.LEFT: {\n\t\t\t\treturn -90;\n\t\t\t}\n\n\t\t\tcase StructureArrowPosition.RIGHT: {\n\t\t\t\treturn 90;\n\t\t\t}\n\n\t\t\tdefault: {\n\t\t\t\treturn 0;\n\t\t\t}\n\t\t}\n\t}\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, inject, Input, OnInit, ViewEncapsulation } from '@angular/core';\n\nimport { Placement } from '@generic-ui/fabric';\n\nimport { SortOrder } from '../../../../../../../core/composition/src/domain/column/sort/sort-order';\nimport { CellTemplateWithContext } from '../../../../../../../core/composition/src/core-read/definition/cell-template-with-context';\nimport { CompositionWarehouse } from '../../../../../../../core/composition/src/api/composition.warehouse';\nimport { SmartComponent } from '../../../../../../../feature/common/component/src/smart-component';\nimport { SortingPublisher } from '../../../../../../../core/structure/sorting/src/api/sorting.publisher';\nimport { CompositionId } from '../../../../../../../core/composition/src/api/global/composition.id';\nimport { StructureId } from '../../../../../../../core/structure/structure-core/src/api/global/structure.id';\nimport { StructureArrowPosition } from '../../../../../../../feature/common/icons/arrow/strucutre.arrow-position';\nimport { FieldId } from '../../../../../../../core/structure/field/src/domain/field/field.id';\nimport { GuiState } from '../../../../../../../feature/gui-angular/state/gui.state';\nimport { hermesMap, HermesObservable, hermesOf, hermesSwitchMap } from '@generic-ui/hermes';\n\nexport interface StructureColumnConfigSortComponentState {\n\n\tfieldId: FieldId;\n\n\tsortOrder: SortOrder;\n\n}\n\n@Component({\n\tselector: 'div[gui-structure-column-config-sort][column][dropdownTextTranslation]',\n\ttemplateUrl: './structure.column-config-sort.component.html',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tencapsulation: ViewEncapsulation.None,\n\tproviders: [\n\t\tGuiState\n\t]\n})\nexport class StructureColumnConfigSortComponent extends SmartComponent {\n\n\t@Input()\n\tset column(column: CellTemplateWithContext) {\n\t\tthis.state.setValue({\n\t\t\tfieldId: column.getFieldId()\n\t\t});\n\t}\n\n\t@Input()\n\tdropdownTextTranslation!: string;\n\n\tprivate readonly state = inject(GuiState<StructureColumnConfigSortComponentState>);\n\n\treadonly placement = Placement.Right;\n\n\treadonly status = SortOrder;\n\n\treadonly StructureArrowPosition = StructureArrowPosition;\n\n\treadonly sortOrder$ = this.state.select('sortOrder');\n\n\tconstructor(private readonly changeDetectorRef: ChangeDetectorRef,\n\t\t\t\telementRef: ElementRef,\n\n\t\t\t\tprivate readonly compositionId: CompositionId,\n\t\t\t\tprivate readonly structureId: StructureId,\n\t\t\t\tprivate readonly sortingCommandDispatcher: SortingPublisher,\n\t\t\t\tprivate readonly compositionReadModelService: CompositionWarehouse) {\n\t\tsuper(changeDetectorRef, elementRef);\n\n\t\tthis.state.connect('sortOrder', this.selectSortOrder());\n\t}\n\n\tisAscSort(): boolean {\n\t\treturn this.state.getValue('sortOrder') === SortOrder.ASC;\n\t}\n\n\tisDescSort(): boolean {\n\t\treturn this.state.getValue('sortOrder') === SortOrder.DESC;\n\t}\n\n\tisNoneSort(): boolean {\n\t\treturn this.state.getValue('sortOrder') === SortOrder.NONE;\n\t}\n\n\tsetSortOrder(sort: SortOrder): void {\n\t\tevent.preventDefault();\n\t\tevent.stopPropagation();\n\t\tconst fieldId = this.state.getValue('fieldId');\n\t\tthis.sortingCommandDispatcher.setSortOrder(fieldId, sort, this.compositionId, this.structureId);\n\t}\n\n\tprotected getSelectorName(): string {\n\t\treturn 'gui-structure-column-config-sort';\n\t}\n\n\tprivate selectSortOrder(): HermesObservable<SortOrder> {\n\t\treturn this.state\n\t\t\t\t   .select('fieldId')\n\t\t\t\t   .pipe(\n\t\t\t\t\t   hermesSwitchMap((fieldId: FieldId) => {\n\t\t\t\t\t\t   return this.compositionReadModelService\n\t\t\t\t\t\t\t\t\t  .onSortOrder(fieldId, this.compositionId);\n\t\t\t\t\t   })\n\t\t\t\t   );\n\t}\n}\n","<gui-dropdown *guiLet=\"sortOrder$; let sortOrder\"\n\t\t\t  [dropdownText]=\"dropdownTextTranslation\"\n\t\t\t  [placement]=\"placement\"\n\t\t\t  [showOnHover]=\"true\"\n\t\t\t  [width]=\"225\"\n\t\t\t  class=\"gui-header-menu-dropdown\">\n\n\t<gui-dropdown-item (click)=\"setSortOrder(status.ASC)\"\n\t\t\t\t\t   [class.gui-header-item-active]=\"isAscSort()\">\n\t\t<div class=\"gui-sort-title\">\n\t\t\t{{'headerMenuMainTabColumnSortAscending' | guiTranslate}}\n\t\t\t<div [sort]=\"true\" gui-structure-arrow-icon>\n\t\t\t</div>\n\t\t</div>\n\t</gui-dropdown-item>\n\n\t<gui-dropdown-item (click)=\"setSortOrder(status.DESC)\"\n\t\t\t\t\t   [class.gui-header-item-active]=\"isDescSort()\">\n\t\t<div class=\"gui-sort-title\">\n\t\t\t{{'headerMenuMainTabColumnSortDescending' | guiTranslate}}\n\t\t\t<div [position]=\"StructureArrowPosition.DOWN\" [sort]=\"true\" gui-structure-arrow-icon>\n\t\t\t</div>\n\t\t</div>\n\t</gui-dropdown-item>\n\n\t<gui-dropdown-item (click)=\"setSortOrder(status.NONE)\"\n\t\t\t\t\t   [class.gui-header-item-active]=\"isNoneSort()\">\n\t\t{{'headerMenuMainTabColumnSortNone' | guiTranslate}}\n\t</gui-dropdown-item>\n\n</gui-dropdown>\n","import { ChangeDetectionStrategy, Component, ElementRef, EventEmitter, Input, Output, ViewEncapsulation } from '@angular/core';\n\nimport { CellTemplateWithContext } from '../../../../../../../core/composition/src/core-read/definition/cell-template-with-context';\nimport { PureComponent } from '../../../../../../../feature/common/component/src/pure-component';\n\n\n@Component({\n\tselector: 'div[gui-structure-column-config-column-hide]',\n\ttemplateUrl: './structure.column-config-column-hide.component.html',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tencapsulation: ViewEncapsulation.None\n})\nexport class StructureColumnConfigColumnHideComponent extends PureComponent {\n\n\t@Input()\n\tcolumn: CellTemplateWithContext;\n\n\t@Output()\n\tcolumnHidden = new EventEmitter<void>();\n\n\tconstructor(elRef: ElementRef) {\n\t\tsuper(elRef);\n\t}\n\n\thideColumn(): void {\n\t\tthis.columnHidden.emit();\n\t}\n\n\tprotected getSelectorName(): string {\n\t\treturn 'gui-structure-column-config-column-hide';\n\t}\n\n}\n","<div (click)=\"hideColumn()\"\n\t class=\"gui-header-menu-item\">\n\t{{'headerMenuMainTabHideColumn' | guiTranslate}}\n</div>\n","import { ChangeDetectionStrategy, Component, ElementRef, EventEmitter, Input, Output, ViewEncapsulation } from '@angular/core';\n\nimport { CellTemplateWithContext } from '../../../../../../../core/composition/src/core-read/definition/cell-template-with-context';\nimport { PureComponent } from '../../../../../../../feature/common/component/src/pure-component';\nimport { StructureArrowPosition } from '../../../../../../../feature/common/icons/arrow/strucutre.arrow-position';\n\n@Component({\n\tselector: 'div[gui-structure-column-config-column-move][column]',\n\ttemplateUrl: './structure.column-config-column-move.component.html',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tencapsulation: ViewEncapsulation.None\n})\nexport class StructureColumnConfigColumnMoveComponent extends PureComponent {\n\n\t@Input()\n\tcolumn: CellTemplateWithContext;\n\n\t@Output()\n\tmovedLeft = new EventEmitter<void>();\n\n\t@Output()\n\tmovedRight = new EventEmitter<void>();\n\n\tStructureArrowPosition = StructureArrowPosition;\n\n\tconstructor(elRef: ElementRef) {\n\t\tsuper(elRef);\n\t}\n\n\tmoveLeft(): void {\n\t\tthis.movedLeft.emit();\n\t}\n\n\tmoveRight(): void {\n\t\tthis.movedRight.emit();\n\t}\n\n\tprotected getSelectorName(): string {\n\t\treturn 'gui-structure-column-config-column-move';\n\t}\n\n}\n","<div class=\"gui-header-menu-column-move\">\n\t<div (click)=\"moveLeft()\"\n\t\t class=\"gui-header-menu-column-move-item left\">\n\t\t<div [position]=\"StructureArrowPosition.LEFT\"\n\t\t\t gui-structure-arrow-icon></div>\n\t\t{{'headerMenuMainTabMoveLeft' | guiTranslate}}\n\t</div>\n\n\t<div (click)=\"moveRight()\"\n\t\t class=\"gui-header-menu-column-move-item right\">\n\t\t{{'headerMenuMainTabMoveRight' | guiTranslate}}\n\t\t<div [position]=\"StructureArrowPosition.RIGHT\"\n\t\t\t gui-structure-arrow-icon></div>\n\t</div>\n</div>\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, inject, Inject, Injector, ViewChild, ViewEncapsulation } from '@angular/core';\nimport { CellTemplateWithContext } from '../../../../../../core/composition/src/core-read/definition/cell-template-with-context';\nimport { SmartComponent } from '../../../../../../feature/common/component/src/smart-component';\n\nimport { StructureColumnMenuConfigArchive } from './structure.column-menu-config.archive';\nimport { StructureColumnMenuConfig } from './structure.column-menu-config';\nimport { TranslationFacade } from '../../../../../../core/l10n/src/api/translation.facade';\nimport { hermesMap, HermesObservable } from '@generic-ui/hermes';\nimport { CompositionId } from '../../../../../../core/composition/src/api/global/composition.id';\nimport { CompositionPublisher } from '../../../../../../core/composition/src/api/composition.publisher';\nimport { StructureColumnConfigService } from '../structure.column-config.service';\nimport { Translation } from '../../../../../../core/l10n/src/api/translation';\nimport { GuiState } from '../../../../../../feature/gui-angular/state/gui.state';\n\n\nexport interface StructureColumnConfigComponentState {\n\n\tisEnabled: boolean;\n\n\tconfig: StructureColumnMenuConfig;\n\n\ttranslations: Translation;\n\n}\n\n@Component({\n\tselector: 'div[gui-column-config]',\n\ttemplateUrl: './structure.column-config.component.html',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tencapsulation: ViewEncapsulation.None,\n\tproviders: [\n\t\tGuiState\n\t]\n})\nexport class StructureColumnConfigComponent extends SmartComponent {\n\n\t@ViewChild('headerSortMenu', { read: ElementRef, static: false })\n\treadonly headerSortMenu?: ElementRef;\n\n\tprivate readonly state = inject(GuiState<StructureColumnConfigComponentState>);\n\n\treadonly state$ = this.state.select();\n\n\tprivate readonly structureColumnConfigService: StructureColumnConfigService;\n\n\tconstructor(changeDetectorRef: ChangeDetectorRef,\n\t\t\t\telementRef: ElementRef,\n\t\t\t\tprivate readonly translationFacade: TranslationFacade,\n\t\t\t\tprivate readonly structureColumnMenuConfigArchive: StructureColumnMenuConfigArchive,\n\t\t\t\tprivate readonly compositionId: CompositionId,\n\t\t\t\tprivate readonly compositionCommandInvoker: CompositionPublisher,\n\t\t\t\tprivate readonly injector: Injector,\n\t\t\t\t@Inject('column') public readonly column: CellTemplateWithContext) {\n\t\tsuper(changeDetectorRef, elementRef);\n\n\t\tthis.structureColumnConfigService = this.injector.get(StructureColumnConfigService);\n\n\t\tthis.state.connect('isEnabled', this.selectIsEnabled());\n\t\tthis.state.connect('config', this.structureColumnMenuConfigArchive.on());\n\t\tthis.state.connect('translations', this.translationFacade.onTranslation());\n\t}\n\n\tisEnabled(config: StructureColumnMenuConfig): boolean {\n\t\treturn config.isEnabled();\n\t}\n\n\thideColumn(): void {\n\t\tthis.compositionCommandInvoker.disableColumn(this.column.getColumnDefinitionId(), this.compositionId);\n\t\tthis.structureColumnConfigService.close();\n\t}\n\n\tmoveLeft(): void {\n\t\tthis.compositionCommandInvoker.moveLeft(this.column.getColumnDefinitionId(), this.compositionId);\n\t\tthis.structureColumnConfigService.close();\n\t}\n\n\tmoveRight(): void {\n\t\tthis.compositionCommandInvoker.moveRight(this.column.getColumnDefinitionId(), this.compositionId);\n\t\tthis.structureColumnConfigService.close();\n\t}\n\n\thighlightColumn(): void {\n\t\tthis.compositionCommandInvoker.highlightColumn(this.column.getColumnDefinitionId(), this.compositionId);\n\t\tthis.structureColumnConfigService.close();\n\t}\n\n\tprotected getSelectorName(): string {\n\t\treturn 'gui-column-config';\n\t}\n\n\tprivate selectIsEnabled(): HermesObservable<boolean> {\n\t\treturn this.structureColumnMenuConfigArchive\n\t\t\t\t   .on()\n\t\t\t\t   .pipe(\n\t\t\t\t\t   hermesMap((config: StructureColumnMenuConfig) => config.isEnabled())\n\t\t\t\t   );\n\t}\n}\n","<ng-container *guiLet=\"state$; let localState\">\n\n\t<div *ngIf=\"localState.isEnabled\"\n\t\t class=\"gui-header-menu-tab\">\n\n\t\t<gui-tab [active]=\"localState.config.getActiveMenu()\"\n\t\t\t\t [menu]=\"localState.config.getMenus()\">\n\n\t\t\t<ng-container *ngIf=\"localState.config.isMainEnabled()\">\n\n\t\t\t\t<gui-tab-item [tab]=\"localState.translations.headerMenuMainTab\"\n\t\t\t\t\t\t\t  class=\"gui-tab-item-dropdown\">\n\n\t\t\t\t\t<div *ngIf=\"column.isSortEnabled()\"\n\t\t\t\t\t\t [column]=\"column\"\n\t\t\t\t\t\t [dropdownTextTranslation]=\"localState.translations.headerMenuMainTabColumnSort\"\n\t\t\t\t\t\t gui-structure-column-config-sort>\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<div (columnHidden)=\"hideColumn()\"\n\t\t\t\t\t\t [column]=\"column\"\n\t\t\t\t\t\t gui-structure-column-config-column-hide>\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<div (click)=\"highlightColumn()\"\n\t\t\t\t\t\t class=\"gui-header-menu-item\">\n\t\t\t\t\t\t{{'headerMenuMainTabHighlightColumn' | guiTranslate}}\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<div (movedLeft)=\"moveLeft()\"\n\t\t\t\t\t\t (movedRight)=\"moveRight()\"\n\t\t\t\t\t\t [column]=\"column\"\n\t\t\t\t\t\t gui-structure-column-config-column-move>\n\t\t\t\t\t</div>\n\n\t\t\t\t</gui-tab-item>\n\n\t\t\t</ng-container>\n\n\t\t\t<ng-container *ngIf=\"localState.config.isFilteringEnabled()\">\n\n\t\t\t\t<gui-tab-item [tab]=\"localState.translations.headerMenuFilterTab\">\n\n\t\t\t\t\t<!--\t\t\t\t\t\t<div class=\"gui-header-menu-item\">{{config.getFilterMenu()}}</div>-->\n\n\t\t\t\t\t<div [fieldId]=\"column.getFieldId()\"\n\t\t\t\t\t\t gui-unique-value-list>\n\t\t\t\t\t</div>\n\n\t\t\t\t</gui-tab-item>\n\n\t\t\t</ng-container>\n\n\t\t\t<ng-container *ngIf=\"localState.config.isColumnManagerEnabled()\">\n\n\t\t\t\t<gui-tab-item [tab]=\"localState.translations.headerMenuColumnsTab\">\n\n\t\t\t\t\t<div gui-structure-menu-column-manager>\n\t\t\t\t\t</div>\n\n\t\t\t\t</gui-tab-item>\n\n\t\t\t</ng-container>\n\n\t\t</gui-tab>\n\t</div>\n\n</ng-container>\n","import { ElementRef, Injectable, Injector } from '@angular/core';\n\nimport { FabricInlineDialogService, FabricPlacement } from '@generic-ui/fabric';\n\nimport { StructureColumnConfigComponent } from './config/structure.column-config.component';\nimport { CellTemplateWithContext } from '../../../../../core/composition/src/core-read/definition/cell-template-with-context';\nimport { StructureThemeConverter } from '../../schema/structure.theme.converter';\nimport { SchemaTheme } from '../../../../../core/schema/src/api/theme/schema-theme';\nimport { SchemaWarehouse } from '../../../../../core/schema/src/api/schema.warehouse';\nimport { Reactive } from '@generic-ui/hermes';\nimport { SchemaReadModelRootId } from '../../../../../core/schema/src/api/global/schema.read-model-root-id';\n\n@Injectable()\nexport class StructureColumnConfigService extends Reactive {\n\n\tconstructor(private readonly injector: Injector,\n\t\t\t\tprivate readonly schemaReadModelRootId: SchemaReadModelRootId,\n\t\t\t\tprivate readonly schemaWarehouse: SchemaWarehouse,\n\t\t\t\tprivate readonly structureThemeConverter: StructureThemeConverter,\n\t\t\t\tprivate readonly inlineDialogService: FabricInlineDialogService) {\n\t\tsuper();\n\t}\n\n\topen(elementRef: ElementRef, column: CellTemplateWithContext): void {\n\t\tthis.close();\n\t\tconst injector = Injector.create({\n\t\t\tproviders: [{\n\t\t\t\tprovide: 'column', // TODO\n\t\t\t\tuseValue: column\n\t\t\t}],\n\t\t\tparent: this.injector\n\t\t});\n\n\t\tthis.schemaWarehouse\n\t\t\t.onceTheme(this.schemaReadModelRootId)\n\t\t\t.pipe(\n\t\t\t\tthis.hermesTakeUntil()\n\t\t\t)\n\t\t\t.subscribe((theme: SchemaTheme) => {\n\t\t\t\tthis.inlineDialogService.open(elementRef, StructureColumnConfigComponent, {\n\t\t\t\t\tinjector: injector,\n\t\t\t\t\tplacement: FabricPlacement.BOTTOM,\n\t\t\t\t\toffset: -34,\n\t\t\t\t\ttheme: this.structureThemeConverter.convertTheme(theme),\n\t\t\t\t\tcustomClass: 'gui-inline-dialog-header-menu'\n\t\t\t\t});\n\t\t\t});\n\t}\n\n\tclose(): void {\n\t\tthis.inlineDialogService.close();\n\t}\n}\n","import { ChangeDetectionStrategy, Component, ElementRef, ViewEncapsulation, inject } from '@angular/core';\nimport { FormationWarehouse } from '../../../../../../core/structure/formation/src/api/formation.warehouse';\nimport { DynamicallyCreatedComponent } from '../../../../../common/component';\nimport { StructureId } from '../../../../../../core/structure/structure-core/src/api/global/structure.id';\nimport { FormationPublisher } from '../../../../../../core/structure/formation/src/api/formation.publisher';\nimport { FormationCustomSelectId } from '../../../../../../core/structure/formation/src/api/custom/formation.custom-select.id';\n\n@Component({\n\tselector: 'div[gui-select-custom-modal]',\n\ttemplateUrl: `select-custom-modal.component.html`,\n\tstyleUrls: [`select-custom-modal.component.scss`],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tencapsulation: ViewEncapsulation.None\n})\nexport class SelectCustomModalComponent extends DynamicallyCreatedComponent {\n\n\tprivate readonly structureId = inject(StructureId);\n\n\tprivate readonly formationWarehouse = inject(FormationWarehouse);\n\n\tselection$ = this.formationWarehouse.onCustomSelections(this.structureId);\n\n\tconstructor(\n\t\telRef: ElementRef,\n\t\tprivate readonly formationPublisher: FormationPublisher\n\t) {\n\t\tsuper(elRef);\n\t}\n\n\tselectCustom(id: FormationCustomSelectId): void {\n\t\tthis.formationPublisher.selectCustom(id, this.structureId);\n\t}\n\n\tprotected getSelectorName(): string {\n\t\treturn 'gui-select-custom-modal';\n\t}\n}\n","<ul *guiLet=\"selection$; let selection\">\n\t<li (click)=\"selectCustom(sel.getCustomSelectId())\"\n\t\t*ngFor=\"let sel of selection.getSelections()\"\n\t\t[attr.id]=\"sel.key\">\n\t\t{{sel.text}}\n\t</li>\n</ul>\n","import { ElementRef, Injectable, Injector } from '@angular/core';\n\nimport { FabricInlineDialogService, FabricPlacement } from '@generic-ui/fabric';\n\nimport { Reactive } from '@generic-ui/hermes';\nimport { SelectCustomModalComponent } from './modal/select-custom-modal.component';\nimport { SchemaTheme } from '../../../../../core/schema/src/api/theme/schema-theme';\nimport { SchemaReadModelRootId } from '../../../../../core/schema/src/api/global/schema.read-model-root-id';\nimport { SchemaWarehouse } from '../../../../../core/schema/src/api/schema.warehouse';\nimport { StructureThemeConverter } from '../../../../../feature-view/grid-view/src/schema/structure.theme.converter';\n\n@Injectable()\nexport class StructureSelectCustomService extends Reactive {\n\n\tconstructor(private readonly injector: Injector,\n\t\t\t\tprivate readonly schemaReadModelRootId: SchemaReadModelRootId,\n\t\t\t\tprivate readonly schemaWarehouse: SchemaWarehouse,\n\t\t\t\tprivate readonly structureThemeConverter: StructureThemeConverter,\n\t\t\t\tprivate readonly inlineDialogService: FabricInlineDialogService) {\n\t\tsuper();\n\t}\n\n\topen(elementRef: ElementRef): void {\n\t\tthis.close();\n\n\t\tthis.schemaWarehouse\n\t\t\t.findTheme(this.schemaReadModelRootId)\n\t\t\t.ifPresent((theme: SchemaTheme) => {\n\t\t\t\tthis.inlineDialogService.open(elementRef, SelectCustomModalComponent, {\n\t\t\t\t\tinjector: this.injector,\n\t\t\t\t\tplacement: FabricPlacement.BOTTOM,\n\t\t\t\t\toffset: 0,\n\t\t\t\t\ttheme: this.structureThemeConverter.convertTheme(theme),\n\t\t\t\t\tcustomClass: 'gui-inline-dialog-header-menu'\n\t\t\t\t});\n\t\t\t});\n\t}\n\n\tclose(): void {\n\t\tthis.inlineDialogService.close();\n\t}\n}\n","import { ChangeDetectionStrategy, Component, ElementRef, inject, ViewEncapsulation } from '@angular/core';\n\nimport { StructureId } from '../../../../../core/structure/structure-core/src/api/global/structure.id';\nimport { FormationPublisher } from '../../../../../core/structure/formation/src/api/formation.publisher';\nimport { FormationWarehouse } from '../../../../../core/structure/formation/src/api/formation.warehouse';\nimport { RowSelectedReadModel } from '../../../../../core/structure/formation/src/api/row-selected/row-selected.read-model';\nimport { RowSelectionMode } from '../../../../../core/structure/formation/src/api/row-selected/row-selection';\nimport { GuiComponent } from '../../../../common/component';\nimport { GuiState } from '../../../../gui-angular/state/gui.state';\nimport { hermesMap, HermesObservable } from '@generic-ui/hermes';\n\nexport interface SelectAllComponentState {\n\n\tisAllChecked: boolean;\n\n\tisAllIndeterminate: boolean;\n\n\tmodeMulti: boolean;\n\n}\n\n@Component({\n\tselector: 'div[gui-select-all]',\n\ttemplateUrl: './select-all.component.html',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tencapsulation: ViewEncapsulation.None,\n\tproviders: [\n\t\tGuiState\n\t]\n})\nexport class SelectAllComponent extends GuiComponent {\n\n\tprivate readonly state = inject(GuiState<SelectAllComponentState>);\n\n\treadonly state$ = this.state.select();\n\n\tconstructor(elementRef: ElementRef,\n\t\t\t\tprivate readonly structureId: StructureId,\n\t\t\t\tprivate readonly formationCommandDispatcher: FormationPublisher,\n\t\t\t\tprivate readonly formationWarehouse: FormationWarehouse) {\n\t\tsuper(elementRef);\n\n\t\tthis.state.setValue({\n\t\t\tmodeMulti: false\n\t\t});\n\n\t\tthis.state.connect('modeMulti', this.selectModeMulti());\n\t\tthis.state.connect('isAllChecked', this.selectAllChecked());\n\t\tthis.state.connect('isAllIndeterminate', this.selectAllIndeterminate());\n\t}\n\n\ttoggleSelectAll(isAllIndeterminate: boolean, isAllChecked: boolean): void {\n\n\t\tif (isAllIndeterminate) {\n\t\t\tthis.formationCommandDispatcher.unselectAll(this.structureId);\n\t\t} else {\n\n\t\t\tif (isAllChecked) {\n\t\t\t\tthis.formationCommandDispatcher.unselectAll(this.structureId);\n\t\t\t} else {\n\t\t\t\tthis.formationCommandDispatcher.selectAll(this.structureId);\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected getSelectorName(): string {\n\t\treturn 'gui-select-all';\n\t}\n\n\tprivate selectModeMulti(): HermesObservable<boolean> {\n\t\treturn this.formationWarehouse\n\t\t\t\t   .onMode(this.structureId)\n\t\t\t\t   .pipe(\n\t\t\t\t\t   hermesMap((mode: RowSelectionMode) => {\n\t\t\t\t\t\t   return mode === RowSelectionMode.MULTIPLE;\n\t\t\t\t\t   })\n\t\t\t\t   );\n\t}\n\n\tprivate selectAllChecked(): HermesObservable<boolean> {\n\t\treturn this.formationWarehouse\n\t\t\t\t   .onRowSelectedReadModel(this.structureId)\n\t\t\t\t   .pipe(\n\t\t\t\t\t   hermesMap((rowSelectedReadModel: RowSelectedReadModel) => {\n\t\t\t\t\t\t   return rowSelectedReadModel.isAllSelected();\n\t\t\t\t\t   })\n\t\t\t\t   );\n\t}\n\n\tprivate selectAllIndeterminate(): HermesObservable<boolean> {\n\t\treturn this.formationWarehouse\n\t\t\t\t   .onRowSelectedReadModel(this.structureId)\n\t\t\t\t   .pipe(\n\t\t\t\t\t   hermesMap((rowSelectedReadModel: RowSelectedReadModel) => {\n\t\t\t\t\t\t   return rowSelectedReadModel.isIndeterminate();\n\t\t\t\t\t   })\n\t\t\t\t   );\n\t}\n\n}\n","<ng-container *guiLet=\"state$; let localState\">\n\t<gui-checkbox (changed)=\"toggleSelectAll(localState.isAllIndeterminate, localState.isAllChecked)\"\n\t\t\t\t  *ngIf=\"localState.modeMulti\"\n\t\t\t\t  [checked]=\"localState.isAllChecked\"\n\t\t\t\t  [gui-tooltip]=\"'Select'\"\n\t\t\t\t  [indeterminate]=\"localState.isAllIndeterminate\">\n\t</gui-checkbox>\n</ng-container>\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, ViewEncapsulation } from '@angular/core';\nimport { IconComponent } from '../../component/src/icon-component';\n\n\n@Component({\n\tselector: 'div[gui-structure-menu-icon]',\n\ttemplate: `\n\t\t<svg data-name=\"Layer 1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 10.32 7.46\">\n\t\t\t<line class=\"cls-1\" x1=\"9.57\" y1=\"3.73\" x2=\"0.75\" y2=\"3.73\"/>\n\t\t\t<line class=\"cls-1\" x1=\"9.57\" y1=\"0.75\" x2=\"0.75\" y2=\"0.75\"/>\n\t\t\t<line class=\"cls-1\" x1=\"9.57\" y1=\"6.71\" x2=\"0.75\" y2=\"6.71\"/>\n\t\t</svg>\n\t`,\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tencapsulation: ViewEncapsulation.None\n})\nexport class StructureColumnMenuIconComponent extends IconComponent {\n\n\tconstructor(elementRef: ElementRef,\n\t\t\t\tchangeDetectorRef: ChangeDetectorRef) {\n\t\tsuper(elementRef, changeDetectorRef);\n\t}\n\n\tprotected getSelectorName(): string {\n\t\treturn 'gui-structure-column-menu-icon';\n\t}\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, inject, Input, ViewChild, ViewEncapsulation } from '@angular/core';\n\nimport { CellTemplateWithContext } from '../../../../../../core/composition/src/core-read/definition/cell-template-with-context';\nimport { StructureColumnConfigService } from '../structure.column-config.service';\nimport { StructureColumnMenuConfig } from '../config/structure.column-menu-config';\nimport { SmartComponent } from '../../../../../../feature/common/component/src/smart-component';\nimport { StructureColumnMenuConfigArchive } from '../config/structure.column-menu-config.archive';\nimport { hermesMap, HermesObservable } from '@generic-ui/hermes';\n\n\n@Component({\n\tselector: 'div[gui-structure-column-config-trigger]',\n\ttemplateUrl: './structure.column-config-trigger.component.html',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tencapsulation: ViewEncapsulation.None\n})\nexport class StructureColumnConfigTriggerComponent extends SmartComponent {\n\n\t@ViewChild('headerDialogContainer', { read: ElementRef, static: false })\n\treadonly headerDialogContainer?: ElementRef;\n\n\t@Input()\n\tcolumn: CellTemplateWithContext;\n\n\tprivate readonly structureColumnMenuConfigArchive = inject(StructureColumnMenuConfigArchive);\n\n\treadonly isEnabled$ = this.selectIsEnabled();\n\n\tconstructor(\n\t\telementRef: ElementRef,\n\t\tchangeDetectorRef: ChangeDetectorRef,\n\t\tprivate readonly structureColumnConfigService: StructureColumnConfigService\n\t) {\n\t\tsuper(changeDetectorRef, elementRef);\n\t}\n\n\topenConfigDialog(): void {\n\t\tthis.structureColumnConfigService.open(this.headerDialogContainer, this.column);\n\t}\n\n\tprotected getSelectorName(): string {\n\t\treturn 'gui-structure-column-config-trigger';\n\t}\n\n\tprivate selectIsEnabled(): HermesObservable<boolean> {\n\t\treturn this.structureColumnMenuConfigArchive\n\t\t\t\t   .on()\n\t\t\t\t   .pipe(\n\t\t\t\t\t   hermesMap((config: StructureColumnMenuConfig) => {\n\t\t\t\t\t\t   return config.isEnabled();\n\t\t\t\t\t   })\n\t\t\t\t   );\n\t}\n\n}\n","<div #headerDialogContainer\n\t (click)=\"openConfigDialog()\"\n\t *guiIf=\"isEnabled$\"\n\t class=\"gui-header-menu-icon-wrapper\">\n\n\t<div [ngClass]=\"'gui-header-menu-icon'\" gui-structure-menu-icon></div>\n\n</div>\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, Injector, Input, ViewChild, ViewEncapsulation } from '@angular/core';\n\nimport { CellTemplateWithContext } from '../../../../../core/composition/src/core-read/definition/cell-template-with-context';\nimport { StructureColumnConfigService } from '../menu/structure.column-config.service';\nimport { SmartComponent } from '../../../../../feature/common/component/src/smart-component';\nimport { SortingPublisher } from '../../../../../core/structure/sorting/src/api/sorting.publisher';\nimport { CompositionId } from '../../../../../core/composition/src/api/global/composition.id';\nimport { StructureId } from '../../../../../core/structure/structure-core/src/api/global/structure.id';\nimport { FormationPublisher } from '../../../../../core/structure/formation/src/api/formation.publisher';\nimport { StructureSelectCustomService } from '../../../../../feature/structure/formation/src/select-custom/structure.select-custom.service';\n\n\n@Component({\n\tselector: 'div[gui-structure-header-columns][columns]',\n\ttemplateUrl: './structure-header-columns.component.html',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tencapsulation: ViewEncapsulation.None,\n\tproviders: [\n\t\tStructureColumnConfigService,\n\t\tStructureSelectCustomService\n\t]\n})\nexport class StructureHeaderColumnsComponent extends SmartComponent {\n\n\t@ViewChild('selectCustomContainer', { read: ElementRef, static: false })\n\treadonly selectCustomContainer?: ElementRef;\n\n\t@Input()\n\tcolumns: Array<CellTemplateWithContext>;\n\n\t@Input()\n\tshowSelection: boolean = false;\n\n\tshowCustom: boolean = true;\n\n\tconstructor(private readonly elementRef: ElementRef,\n\t\t\t\tprivate readonly injector: Injector,\n\t\t\t\tprivate readonly changeDetectorRef: ChangeDetectorRef,\n\t\t\t\tprivate readonly compositionId: CompositionId,\n\t\t\t\tprivate readonly structureId: StructureId,\n\t\t\t\tprivate readonly structureSelectCustomService: StructureSelectCustomService,\n\t\t\t\tprivate readonly formationCommandDispatcher: FormationPublisher,\n\t\t\t\tprivate readonly sortingCommandDispatcher: SortingPublisher) {\n\t\tsuper(changeDetectorRef, elementRef);\n\t}\n\n\ttoggleSort(column: CellTemplateWithContext): void {\n\n\t\tif (column.isSortEnabled()) {\n\t\t\tthis.sortingCommandDispatcher.toggleSort(column.getFieldId(), this.compositionId, this.structureId);\n\t\t}\n\t}\n\n\topenConfigDialog(): void {\n\t\tthis.structureSelectCustomService.open(this.selectCustomContainer);\n\t}\n\n\tprotected getSelectorName(): string {\n\t\treturn 'gui-structure-header-columns';\n\t}\n}\n","<div *ngIf=\"showSelection\"\n\t 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\">\n\t<div gui-select-all></div>\n</div>\n\n<!--<div *ngIf=\"showCustom\"-->\n<!--\t 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\">-->\n<!--\t<div #selectCustomContainer-->\n<!--\t\t (click)=\"openConfigDialog()\">-->\n<!--\t\t<div gui-structure-menu-icon></div>-->\n<!--\t</div>-->\n<!--</div>-->\n\n<div (click)=\"toggleSort(column)\"\n\t *ngFor=\"let column of columns\"\n\t [class]=\"column.getCssClasses()\"\n\t [ngClass]=\"{'gui-header-sortable': column.isSortEnabled()}\"\n\t [style.width.px]=\"column.width\"\n\t [style]=\"column.getStyles()\"\n\t 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\">\n\n\t<div class=\"gui-header-title\">\n\t\t<ng-container\n\t\t\t*ngTemplateOutlet=\"column.viewTemplate;\n\t\t\t\t\t\t\t\t   context: column.context\">\n\t\t</ng-container>\n\n\t\t<div *ngIf=\"!column.isNoSort()\"\n\t\t\t [position]=\"column.getSortStatus()\"\n\t\t\t [sort]=\"true\"\n\t\t\t class=\"gui-ml-6\"\n\t\t\t gui-structure-arrow-icon>\n\t\t</div>\n\n\t</div>\n\n\t<div class=\"gui-header-menu\">\n\t\t<div [column]=\"column\"\n\t\t\t gui-structure-column-config-trigger>\n\t\t</div>\n\t</div>\n</div>\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, Injector, Input, ViewEncapsulation } from '@angular/core';\n\nimport { CellTemplateWithContext } from '../../../../../core/composition/src/core-read/definition/cell-template-with-context';\nimport { StructureColumnConfigService } from '../menu/structure.column-config.service';\nimport { SortOrder } from '../../../../../core/composition/src/domain/column/sort/sort-order';\nimport { SortingPublisher } from '../../../../../core/structure/sorting/src/api/sorting.publisher';\nimport { CompositionId } from '../../../../../core/composition/src/api/global/composition.id';\nimport { StructureId } from '../../../../../core/structure/structure-core/src/api/global/structure.id';\nimport { FormationPublisher } from '../../../../../core/structure/formation/src/api/formation.publisher';\nimport { Group } from '../../../../../core/composition/src/api/group/group';\nimport { PureComponent } from '../../../../../feature/common/component/src/pure-component';\n\n\n@Component({\n\tselector: 'div[gui-structure-header-groups][groups][checkboxSelection]',\n\ttemplateUrl: './structure-header-groups.component.html',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tencapsulation: ViewEncapsulation.None,\n\tproviders: [\n\t\tStructureColumnConfigService\n\t]\n})\nexport class StructureHeaderGroupsComponent extends PureComponent {\n\n\t@Input()\n\tgroups: Array<Group>;\n\n\t@Input()\n\tshowGroups: boolean;\n\n\t@Input()\n\tcheckboxSelection: boolean = false;\n\n\tglobalSearching = false;\n\n\tconstructor(private readonly elementRef: ElementRef,\n\t\t\t\tprivate readonly injector: Injector,\n\t\t\t\tprivate readonly changeDetectorRef: ChangeDetectorRef,\n\t\t\t\tprivate readonly compositionId: CompositionId,\n\t\t\t\tprivate readonly structureId: StructureId,\n\t\t\t\tprivate readonly formationCommandDispatcher: FormationPublisher,\n\t\t\t\tprivate readonly sortingCommandDispatcher: SortingPublisher) {\n\t\tsuper(elementRef);\n\t}\n\n\ttoggleSort(column: CellTemplateWithContext): void {\n\n\t\tif (column.isSortEnabled()) {\n\t\t\tthis.sortingCommandDispatcher.toggleSort(column.getFieldId(), this.compositionId, this.structureId);\n\t\t}\n\t}\n\n\tisSortAsc(column: CellTemplateWithContext): boolean {\n\t\treturn column.getSortStatus() === SortOrder.ASC;\n\t}\n\n\tisSortDesc(column: CellTemplateWithContext): boolean {\n\t\treturn column.getSortStatus() === SortOrder.DESC;\n\t}\n\n\tisGlobalSortEnabled(): boolean {\n\t\treturn this.globalSearching;\n\t}\n\n\tprotected getSelectorName(): string {\n\t\treturn 'gui-structure-header-groups';\n\t}\n\n}\n","<div *ngIf=\"checkboxSelection\"\n\t 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\">\n\t<div gui-select-all></div>\n</div>\n\n<div *ngFor=\"let group of groups\"\n\t [style.width.px]=\"group.width\"\n\t 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\">\n\n\t<div class=\"gui-header-title\">\n\t\t{{group.header}}\n\t</div>\n</div>\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, EventEmitter, Input, OnInit, Output, ViewEncapsulation } from '@angular/core';\nimport { FormBuilder, FormGroup } from '@angular/forms';\n\nimport { FilterPublisher } from '../../../../../core/structure/filter/src/api/filter.publisher';\nimport { StructureId } from '../../../../../core/structure/structure-core/src/api/global/structure.id';\nimport { CellTemplateWithContext } from '../../../../../core/composition/src/core-read/definition/cell-template-with-context';\nimport { PureComponent } from '../../../../../feature/common/component/src/pure-component';\nimport { GuiEffects } from '../../../../../feature/gui-angular/effect/gui.effects';\nimport { fromRxJsObservable, HermesObservable } from '@generic-ui/hermes';\n\n\n@Component({\n\tselector: 'div[gui-structure-header-filters][columns]',\n\ttemplateUrl: `./structure-header-filters.component.html`,\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tencapsulation: ViewEncapsulation.None,\n\tproviders: [\n\t\tGuiEffects\n\t]\n})\nexport class StructureHeaderFiltersComponent extends PureComponent implements OnInit {\n\n\t@Input()\n\tcolumns: Array<CellTemplateWithContext>;\n\n\t@Output()\n\tclosed = new EventEmitter<void>();\n\n\treadonly filterFieldName = 'phrase';\n\n\tfilterForm: FormGroup;\n\n\tfilterMode: boolean = false;\n\n\tconstructor(private readonly structureFilterCommandService: FilterPublisher,\n\t\t\t\tprivate readonly formBuilder: FormBuilder,\n\t\t\t\tprivate readonly cd: ChangeDetectorRef,\n\t\t\t\tprivate readonly effects: GuiEffects,\n\t\t\t\telementRef: ElementRef,\n\t\t\t\tprivate readonly structureId: StructureId) {\n\t\tsuper(elementRef);\n\t\tthis.filterForm = this.formBuilder.group({\n\t\t\t[this.filterFieldName]: ['']\n\t\t});\n\n\t}\n\n\tngOnInit() {\n\t\tthis.effects\n\t\t\t.register(\n\t\t\t\tthis.selectFilterFormChanges(),\n\t\t\t\t(f) => {\n\t\t\t\t\tthis.filter(f[this.filterFieldName]);\n\t\t\t\t}\n\t\t\t)\n\t}\n\n\tfilter(phrase: string): void {\n\n\t\tif (phrase === undefined || phrase === null) {\n\t\t\tphrase = '';\n\t\t}\n\n\t\t// this.structureFilterCommandService.addFilter(this.columns[0].getFieldId(), '1', phrase, this.structureId);\n\t}\n\n\tclearFilters(): void {\n\t\tthis.filterForm.reset();\n\t}\n\n\tturnOnFilterMode(): void {\n\t\tthis.filterMode = true;\n\t\tthis.cd.detectChanges();\n\t}\n\n\tturnOffFilterMode(): void {\n\t\tthis.filterMode = false;\n\t\tthis.cd.detectChanges();\n\t}\n\n\tprotected getSelectorName(): string {\n\t\treturn '';\n\t}\n\n\tprivate selectFilterFormChanges(): HermesObservable<any> {\n\t\treturn fromRxJsObservable(this.filterForm.valueChanges as any);\n\t}\n\n}\n","<ng-container *ngIf=\"!filterMode\">\n\n\t<div *ngFor=\"let cell of columns\"\n\t\t [style.width.px]=\"cell.width\"\n\t\t 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\">\n\n\t\t<!--\t\t\t\t<gui-structure-header-filter [column]=\"cell\">-->\n\t\t<!--\t\t\t\t</gui-structure-header-filter>-->\n\n\t\t<button (click)=\"turnOnFilterMode()\">Add Filter</button>\n\n\t</div>\n\n</ng-container>\n\n<ng-container *ngIf=\"filterMode\">\n\n\t<gui-select [options]=\"['has value', 'is the same as', 'starts with', 'ends with']\" [selected]=\"'has value'\">\n\n\t</gui-select>\n\n\t<form [formGroup]=\"filterForm\">\n\t\t<input type=\"text\" [formControlName]=\"filterFieldName\" gui-input/>\n\t</form>\n\n\t<button gui-button (click)=\"clearFilters()\">Clear All</button>\n\t<button gui-button (click)=\"turnOffFilterMode()\">Close</button>\n\n</ng-container>\n\n","import { ChangeDetectionStrategy, Component, ElementRef, ViewEncapsulation, inject } from '@angular/core';\nimport { StructureId } from '../../../../core/structure/structure-core/src/api/global/structure.id';\nimport { FilterWarehouse } from '../../../../core/structure/filter/src/api/filter.warehouse';\nimport { CompositionWarehouse } from '../../../../core/composition/src/api/composition.warehouse';\nimport { VerticalFormationWarehouse } from '../../../../core/structure/vertical-formation/src/api/vertical-formation.warehouse';\nimport { RowSelectionType } from '../../../../core/structure/formation/src/api/row-selected/row-selection';\nimport { Group } from '../../../../core/composition/src/api/group/group';\nimport { CompositionId } from '../../../../core/composition/src/api/global/composition.id';\nimport { GroupCollection } from '../../../../core/composition/src/api/group/group.collection';\nimport { CompositionTemplateWarehouse } from '../../../../feature/composition/src/column/composition.template-warehouse';\nimport { CompositionTemplateModel } from '../../../../feature/composition/src/column/composition.template.model';\nimport { FormationWarehouse } from '../../../../core/structure/formation/src/api/formation.warehouse';\nimport { GuiState } from '../../../../feature/gui-angular/state/gui.state';\nimport { hermesMap, HermesObservable } from '@generic-ui/hermes';\nimport { GuiComponent } from '../../../../feature/common/component';\n\nexport interface StructureHeaderComponentState {\n\n\theaderColumns: ReadonlyArray<CompositionTemplateModel>;\n\n\tfilterRowEnabled: boolean;\n\n\tgroups: Array<Group>;\n\n\tshowGroups: boolean;\n\n\tshowSelection: boolean;\n\n}\n\n@Component({\n\tselector: 'div[gui-structure-header]',\n\ttemplateUrl: './structure-header.component.html',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tencapsulation: ViewEncapsulation.None,\n\tproviders: [\n\t\tGuiState\n\t]\n})\nexport class StructureHeaderComponent extends GuiComponent {\n\n\tprivate readonly state = inject(GuiState<StructureHeaderComponentState>);\n\tprivate readonly compositionWarehouse = inject(CompositionWarehouse);\n\tprivate readonly structureId = inject(StructureId);\n\tprivate readonly compositionId = inject(CompositionId);\n\tprivate readonly verticalFormationWarehouse = inject(VerticalFormationWarehouse);\n\n\treadonly state$ = this.state.select();\n\n\treadonly width$ = this.compositionWarehouse.onContainerWidth(this.compositionId)\n\t\t\t\t\t\t  .pipe(\n\t\t\t\t\t\t\t  hermesMap(width => {\n\t\t\t\t\t\t\t\t  return {\n\t\t\t\t\t\t\t\t\t  width\n\t\t\t\t\t\t\t\t  };\n\t\t\t\t\t\t\t  })\n\t\t\t\t\t\t  );\n\n\n\treadonly filterHeaderHeight$ = this.verticalFormationWarehouse.onRowHeight(this.structureId)\n\t\t\t\t\t\t\t\t\t   .pipe(\n\t\t\t\t\t\t\t\t\t\t   hermesMap((rowHeight: number) => {\n\n\t\t\t\t\t\t\t\t\t\t\t   const headerHeight = +(rowHeight) + 2;\n\n\t\t\t\t\t\t\t\t\t\t\t   return {\n\t\t\t\t\t\t\t\t\t\t\t\t   height: headerHeight\n\t\t\t\t\t\t\t\t\t\t\t   };\n\t\t\t\t\t\t\t\t\t\t   })\n\t\t\t\t\t\t\t\t\t   );\n\n\tconstructor(\n\t\telementRef: ElementRef,\n\t\tprivate readonly filterWarehouse: FilterWarehouse,\n\t\tprivate readonly formationWarehouse: FormationWarehouse,\n\t\tprivate readonly compositionTemplateWarehouse: CompositionTemplateWarehouse\n\t) {\n\t\tsuper(elementRef);\n\n\t\tthis.state.setValue({\n\t\t\theaderColumns: [],\n\t\t\tfilterRowEnabled: false,\n\t\t\tshowGroups: false\n\t\t});\n\n\t\tthis.state.connect('showSelection', this.selectShowSelection());\n\t\tthis.state.connect('headerColumns', this.compositionTemplateWarehouse.onHeaderCols(this.compositionId));\n\t\tthis.state.connect('filterRowEnabled', this.filterWarehouse.onFilteringEnabled(this.structureId));\n\t\tthis.state.connect('showGroups', this.selectShowGroups());\n\t\tthis.state.connect('groups', this.selectGroups());\n\t}\n\n\tprotected getSelectorName(): string {\n\t\treturn 'gui-structure-header';\n\t}\n\n\tprivate selectGroups(): HermesObservable<Array<Group>> {\n\t\treturn this.compositionWarehouse\n\t\t\t\t   .onGroups(this.compositionId)\n\t\t\t\t   .pipe(\n\t\t\t\t\t   hermesMap((collection: GroupCollection) => collection.getGroups())\n\t\t\t\t   );\n\t}\n\n\tprivate selectShowGroups() {\n\t\treturn this.compositionWarehouse\n\t\t\t\t   .onGroups(this.compositionId)\n\t\t\t\t   .pipe(\n\t\t\t\t\t   hermesMap((collection: GroupCollection) => collection.isVisible())\n\t\t\t\t   );\n\t}\n\n\tprivate selectShowSelection(): HermesObservable<boolean> {\n\t\treturn this.formationWarehouse\n\t\t\t\t   .onType(this.structureId)\n\t\t\t\t   .pipe(\n\t\t\t\t\t   hermesMap((type: RowSelectionType) => {\n\t\t\t\t\t\t   return type === RowSelectionType.CHECKBOX || type === RowSelectionType.RADIO;\n\t\t\t\t\t   })\n\t\t\t\t   );\n\t}\n\n}\n","<ng-container *guiLet=\"state$; let localState\">\n\t<div *ngIf=\"localState.showGroups\"\n\t\t [checkboxSelection]=\"localState.showSelection\"\n\t\t [groups]=\"localState.groups\"\n\t\t class=\"gui-header\"\n\t\t gui-structure-header-groups>\n\t</div>\n</ng-container>\n\n<div *guiLet=\"state$; let localState\"\n\t [columns]=\"localState.headerColumns\"\n\t [guiStyle]=\"width$\"\n\t [showSelection]=\"localState.showSelection\"\n\t class=\"gui-header\"\n\t gui-structure-header-columns>\n</div>\n\n<ng-container *guiLet=\"state$; let localState\">\n\t<div *ngIf=\"localState.filterRowEnabled\"\n\t\t [columns]=\"localState.headerColumns\"\n\t\t [guiStyle]=\"filterHeaderHeight$\"\n\t\t class=\"gui-header\"\n\t\t gui-structure-header-filters>\n\t</div>\n</ng-container>\n","import { Inject, Injectable, PLATFORM_ID } from '@angular/core';\nimport { isPlatformBrowser } from '@angular/common';\nimport { fromRxJsObservable, hermesEmpty, HermesObservable } from '@generic-ui/hermes';\nimport { Observable, Observer } from 'rxjs';\nimport { throttleTime } from 'rxjs/operators';\n\ndeclare const ResizeObserver: any;\n\nexport type ObservedSize = {\n\tbottom: number;\n\theight: number;\n\tleft: number;\n\tright: number;\n\ttop: number;\n\twidth: number;\n\tx: number;\n\ty: number;\n};\n\n@Injectable()\nexport class ResizeDetector {\n\n\tconstructor(@Inject(PLATFORM_ID) private platformId: any) {\n\t}\n\n\ton(element: HTMLElement): HermesObservable<ObservedSize> {\n\n\t\tif (isPlatformBrowser(this.platformId)) {\n\n\t\t\treturn fromRxJsObservable(\n\t\t\t\t(\n\t\t\t\t\tnew Observable((observer: Observer<any>) => {\n\n\t\t\t\t\t\tconst resizeObserver = new ResizeObserver((entries: any) => {\n\n\t\t\t\t\t\t\tif (entries && entries.length > 0) {\n\t\t\t\t\t\t\t\tobserver.next(entries[0].contentRect);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\tresizeObserver.observe(element);\n\n\t\t\t\t\t\treturn () => resizeObserver.disconnect();\n\t\t\t\t\t})\n\t\t\t\t)\n\t\t\t\t\t.pipe(\n\t\t\t\t\t\tthrottleTime(25)\n\t\t\t\t\t)\n\t\t\t);\n\n\t\t}\n\n\t\treturn hermesEmpty();\n\t}\n\n\tdestroy(element: HTMLElement) {\n\t}\n\n}\n","export enum RowSelectToggleType {\n\tNONE,\n\tADD,\n\tRANGE\n}\n","import { HermesObservable, HermesReplaySubject } from '@generic-ui/hermes';\n\nexport class ChangedValueEmitter<T> {\n\n\tprivate subject$ = new HermesReplaySubject<T>(1);\n\n\tconstructor() {\n\t}\n\n\temit(value: T): void {\n\t\tthis.subject$.next(value);\n\t}\n\n\ton(): HermesObservable<T> {\n\t\treturn this.subject$.toObservable();\n\t}\n}\n","import { ColumnFieldId } from '../../../../../../composition/src/domain/column/field/column-field.id';\n\nexport class StructureEditSourceItemParams {\n\n\tconstructor(private readonly itemId: string,\n\t\t\t\tprivate readonly columnFieldId: ColumnFieldId, // TODO Rethink\n\t\t\t\tprivate readonly value: any) {\n\t}\n\n\tgetItemId(): string {\n\t\treturn this.itemId;\n\t}\n\n\tgetColumnFieldId(): ColumnFieldId {\n\t\treturn this.columnFieldId;\n\t}\n\n\tgetValue(): any {\n\t\treturn this.value;\n\t}\n\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, Input, OnChanges, ViewChild, ViewEncapsulation } from '@angular/core';\nimport { ChangedValueEmitter } from '../../../../../../feature/composition/src/column/edit/changed-value.emitter';\nimport { EditEventType } from '../../../../../../feature/composition/src/column/edit/state/edit.event-type';\nimport { Item } from '../../../../../../core/structure/source/src/api/item/item';\nimport { SmartComponent } from '../../../../../../feature/common/component/src/smart-component';\nimport { StructureEditSourceItemParams } from '../../../../../../core/structure/source/src/core/origin/edit/structure.edit-source-item.params';\nimport { SourcePublisher } from '../../../../../../core/structure/source/src/api/source.publisher';\nimport { NgChanges } from '../../../../../../feature/common/component/src/ng-changes';\nimport { StructureId } from '../../../../../../core/structure/structure-core/src/api/global/structure.id';\nimport { ifChanged } from '../../../../../../feature/common/component/src/check.input';\nimport { CompositionAccessorModel } from '../../../../../../feature/composition/src/column/composition.accessor.model';\n\n@Component({\n\tselector: 'div[gui-structure-cell-edit-boolean][entity][cell]',\n\ttemplateUrl: `./structure.cell-edit-boolean.component.html`,\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tencapsulation: ViewEncapsulation.None\n})\nexport class StructureCellEditBooleanComponent extends SmartComponent implements OnChanges {\n\n\t@ViewChild('cellContainer', { static: true })\n\tcellContainerRef?: ElementRef;\n\n\t@Input()\n\tentity: Item;\n\n\t@Input()\n\tcell: CompositionAccessorModel;\n\n\teditContext: any;\n\n\tvalueChanges$: ChangedValueEmitter<any>;\n\n\tstatus$: ChangedValueEmitter<any>;\n\n\tactualValue: any;\n\n\tconstructor(private readonly changeDetectorRef: ChangeDetectorRef,\n\t\t\t\telementRef: ElementRef,\n\t\t\t\tprivate readonly structureId: StructureId,\n\t\t\t\tprivate readonly sourceCommandService: SourcePublisher) {\n\t\tsuper(changeDetectorRef, elementRef);\n\t}\n\n\tngOnChanges(changes: NgChanges<StructureCellEditBooleanComponent>) {\n\n\t\tifChanged(changes.entity, () => {\n\t\t\tthis.initEditContext();\n\t\t});\n\n\t\tifChanged(changes.cell, () => {\n\t\t\tthis.initEditContext();\n\t\t});\n\n\t}\n\n\tngOnInit() {\n\t\tthis.initEditContext();\n\t}\n\n\tprotected getSelectorName(): string {\n\t\treturn 'gui-structure-cell-edit-boolean';\n\t}\n\n\tprivate submitChanges(): void {\n\t\tconst itemId = this.entity.getId(),\n\t\t\tupdatedValue = this.actualValue,\n\t\t\tfieldId = this.cell.columnFieldId;\n\n\t\tthis.sourceCommandService.editItem(\n\t\t\tnew StructureEditSourceItemParams(itemId, fieldId, updatedValue),\n\t\t\tthis.structureId\n\t\t);\n\t}\n\n\tprivate initEditContext(): void {\n\t\tthis.valueChanges$ = new ChangedValueEmitter();\n\t\tthis.status$ = new ChangedValueEmitter<EditEventType>();\n\n\t\tthis.editContext = {\n\t\t\tstatus: this.status$,\n\t\t\tvalueChanges: this.valueChanges$,\n\t\t\tvalue: this.cell.getValue(this.entity).value,\n\t\t\tfocus: false,\n\t\t\tparent: this.cellContainerRef\n\t\t};\n\n\t\tthis.observeValueChanges();\n\n\t\tthis.status$\n\t\t\t.on()\n\t\t\t.pipe(\n\t\t\t\tthis.takeUntil()\n\t\t\t)\n\t\t\t.subscribe((status: EditEventType) => {\n\n\t\t\t\tswitch (status) {\n\t\t\t\t\tcase EditEventType.SUBMIT:\n\t\t\t\t\t\tthis.submitChanges();\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t});\n\t}\n\n\tprivate observeValueChanges(): void {\n\n\t\tthis.valueChanges$\n\t\t\t.on()\n\t\t\t.pipe(\n\t\t\t\tthis.takeUntil()\n\t\t\t)\n\t\t\t.subscribe((value: any) => {\n\t\t\t\tthis.actualValue = value;\n\t\t\t});\n\t}\n\n}\n","<span #cellContainer>\n\t\t\t<ng-container\n\t\t\t\t*ngTemplateOutlet=\"cell.editTemplate;\n\t\t\t\t\t\t\t\t\tcontext: editContext\">\n\t\t\t</ng-container>\n\t\t</span>\n","import { AfterViewInit, ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, Input, ViewEncapsulation } from '@angular/core';\n\nimport { SmartComponent } from '../../../../../feature/common/component/src/smart-component';\nimport { StructureCellEditStore } from '../../edit/structure.cell-edit.store';\nimport { SourcePublisher } from '../../../../../core/structure/source/src/api/source.publisher';\nimport { ChangedValueEmitter } from '../../../../../feature/composition/src/column/edit/changed-value.emitter';\nimport { EditEventType } from '../../../../../feature/composition/src/column/edit/state/edit.event-type';\nimport { StructureEditSourceItemParams } from '../../../../../core/structure/source/src/core/origin/edit/structure.edit-source-item.params';\nimport { StructureCellEditState } from '../../edit/structure.cell-edit.state';\nimport { Item } from '../../../../../core/structure/source/src/api/item/item';\nimport { StructureCellEditCloseAllService } from '../../edit/structure.cell-edit-close-all.service';\nimport { hermesTimer } from '@generic-ui/hermes';\nimport { StructureId } from '../../../../../core/structure/structure-core/src/api/global/structure.id';\nimport { CompositionWarehouse } from '../../../../../core/composition/src/api/composition.warehouse';\nimport { CompositionId } from '../../../../../core/composition/src/api/global/composition.id';\nimport { ColumnId } from '../../../../../core/composition/src/api/column/column.id';\nimport { CellEditorManager } from '../../../../../core/structure/structure-core/src/domain/edit/cell-editor.manager';\nimport { CompositionAccessorModel } from '../../../../../feature/composition/src/column/composition.accessor.model';\n\n\n@Component({\n\tselector: 'div[gui-structure-cell][entity][cell]',\n\ttemplateUrl: './structure.cell.component.html',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tencapsulation: ViewEncapsulation.None\n})\nexport class StructureCellComponent extends SmartComponent implements AfterViewInit {\n\n\t@Input()\n\tentity!: Item;\n\n\t@Input()\n\tcell!: CompositionAccessorModel;\n\n\t@Input()\n\teditMode: boolean;\n\n\t@Input()\n\tcellEditorManager: CellEditorManager;\n\n\t@Input()\n\tsearchPhrase: string;\n\n\t@Input()\n\trowIndex: number;\n\n\t@Input()\n\tcolumnIndex: number;\n\n\tinEditMode: boolean = false;\n\n\teditContext: any;\n\n\tvalueChanges$: ChangedValueEmitter<any>;\n\n\tstatus$: ChangedValueEmitter<any>;\n\n\tactualValue: any;\n\n\tisHighlighted: boolean;\n\n\tconstructor(private readonly changeDetectorRef: ChangeDetectorRef,\n\t\t\t\tprivate readonly elementRef: ElementRef,\n\t\t\t\tprivate readonly structureId: StructureId,\n\t\t\t\tprivate readonly compositionId: CompositionId,\n\t\t\t\tprivate readonly structureCellEditStore: StructureCellEditStore,\n\t\t\t\tprivate readonly cellEditCloseAllService: StructureCellEditCloseAllService,\n\t\t\t\tprivate readonly sourceCommandService: SourcePublisher,\n\t\t\t\tprivate readonly compositionWarehouse: CompositionWarehouse) {\n\t\tsuper(changeDetectorRef, elementRef);\n\t}\n\n\tngOnInit() {\n\t\tthis.subscribe(\n\t\t\tthis.compositionWarehouse.onHighlightedColumn(new ColumnId(this.cell.columnDefinitionId.toString()), this.compositionId),\n\t\t\t(value: boolean) => {\n\t\t\t\tthis.isHighlighted = value;\n\t\t\t}\n\t\t);\n\t}\n\n\tngAfterViewInit() {\n\t\tsuper.ngAfterViewInit();\n\n\t\tthis.subscribeWithoutRender(\n\t\t\tthis.cellEditCloseAllService.onCloseAll(),\n\t\t\t() => {\n\t\t\t\tthis.exitEditMode();\n\t\t\t}\n\t\t);\n\t}\n\n\tisCellEditingEnabled(): boolean {\n\t\treturn this.cellEditorManager.isEnabled(\n\t\t\t\tthis.cell.getValue(this.entity),\n\t\t\t\tthis.entity.getSourceItem(),\n\t\t\t\tthis.rowIndex\n\t\t\t) &&\n\t\t\tthis.cell.isCellEditingEnabled();\n\t}\n\n\tenterEditMode(forceCheck: boolean = true): void {\n\n\t\tif (!this.isCellEditingEnabled()) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.cellEditCloseAllService.closeAll();\n\n\t\thermesTimer(0)\n\t\t\t.pipe(\n\t\t\t\tthis.takeUntil()\n\t\t\t)\n\t\t\t.subscribe(() => {\n\t\t\t\tthis.inEditMode = true;\n\n\t\t\t\tthis.valueChanges$ = new ChangedValueEmitter();\n\t\t\t\tthis.status$ = new ChangedValueEmitter<EditEventType>();\n\n\t\t\t\tthis.editContext = {\n\t\t\t\t\tstatus: this.status$,\n\t\t\t\t\tvalueChanges: this.valueChanges$,\n\t\t\t\t\tvalue: this.cell.getValue(this.entity).value,\n\t\t\t\t\tfocus: forceCheck,\n\t\t\t\t\tparent: this.elementRef\n\t\t\t\t};\n\n\t\t\t\tthis.observeFieldStatus();\n\t\t\t\tthis.observeValueChanges();\n\n\t\t\t\tthis.publishEditEnter();\n\n\t\t\t\tif (!forceCheck) {\n\t\t\t\t\tthis.changeDetectorRef.markForCheck();\n\t\t\t\t} else {\n\t\t\t\t\tthis.changeDetectorRef.detectChanges();\n\t\t\t\t}\n\t\t\t});\n\n\t}\n\n\texitEditMode(): void {\n\t\tthis.inEditMode = false;\n\t\tthis.changeDetectorRef.detectChanges();\n\t}\n\n\tsubmitChangesAndExit(): void {\n\n\t\tconst itemId = this.entity.getId(),\n\t\t\tupdatedValue = this.actualValue,\n\t\t\tfieldId = this.cell.columnFieldId;\n\n\t\tthis.sourceCommandService.editItem(\n\t\t\tnew StructureEditSourceItemParams(itemId, fieldId, updatedValue),\n\t\t\tthis.structureId\n\t\t);\n\n\t\tthis.exitEditMode();\n\t}\n\n\tprotected getSelectorName(): string {\n\t\treturn 'gui-structure-cell';\n\t}\n\n\tprivate observeFieldStatus(): void {\n\n\t\tthis.status$\n\t\t\t.on()\n\t\t\t.pipe(\n\t\t\t\tthis.takeUntil()\n\t\t\t)\n\t\t\t.subscribe((status: EditEventType) => {\n\n\t\t\t\tswitch (status) {\n\t\t\t\t\tcase EditEventType.SUBMIT:\n\t\t\t\t\t\tthis.submitChangesAndExit();\n\t\t\t\t\t\tthis.publishEditSubmit();\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase EditEventType.CANCEL:\n\t\t\t\t\t\tthis.exitEditMode();\n\t\t\t\t\t\tthis.publishEditCancel();\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t});\n\t}\n\n\tprivate observeValueChanges(): void {\n\n\t\tthis.valueChanges$\n\t\t\t.on()\n\t\t\t.pipe(\n\t\t\t\tthis.takeUntil()\n\t\t\t)\n\t\t\t.subscribe((value: any) => {\n\t\t\t\tthis.actualValue = value;\n\t\t\t});\n\t}\n\n\tprivate publishEditState(state: StructureCellEditState): void {\n\t\tthis.structureCellEditStore.next(state);\n\t}\n\n\tprivate publishEditEnter(): void {\n\t\tthis.publishEditState(StructureCellEditState.ENTER);\n\t}\n\n\tprivate publishEditCancel(): void {\n\t\tthis.publishEditState(StructureCellEditState.CANCEL);\n\t}\n\n\tprivate publishEditSubmit(): void {\n\t\tthis.publishEditState(StructureCellEditState.SUBMIT);\n\t}\n}\n","<ng-container *ngIf=\"!cell.isBooleanDataType() || (cell.isBooleanDataType() && !this.isCellEditingEnabled())\">\n\n\t<span (click)=\"enterEditMode()\"\n\t\t  *ngIf=\"!inEditMode\"\n\t\t  [ngClass]=\"{'gui-cell-view': true,'gui-align-left': cell.isAlignLeft(),'gui-align-center': cell.isAlignCenter(),'gui-align-right': cell.isAlignRight(),'gui-column-highlighted': isHighlighted}\">\n\t\t<ng-container\n\t\t\t*ngTemplateOutlet=\"cell.template;\n\t\t\t\tcontext: {\n\t\t\t\telement: cell.getValue(entity, searchPhrase),\n\t\t\t\t index: entity.getPosition(),\n\t\t\t\t value: cell.getValue(entity, searchPhrase).value,\n\t\t\t\t item: entity.getSourceItem()\n\t\t\t  }\">\n\t\t</ng-container>\n\t</span>\n\n\t<span *ngIf=\"inEditMode\"\n\t\t  class=\"gui-cell-edit-mode\">\n\t\t<ng-container\n\t\t\t*ngTemplateOutlet=\"cell.editTemplate;\n\t\t\t\tcontext: editContext\">\n\t\t</ng-container>\n\t</span>\n\n\n\t<!--\t<span *ngIf=\"inEditMode\"-->\n\t<!--\t\t  class=\"gui-cell-edit-mode\">-->\n\n\t<!--\t\t<gui-structure-cell-edit [cell]=\"cell\"-->\n\t<!--\t\t\t\t\t\t\t\t [entity]=\"entity\">-->\n\t<!--\t\t</gui-structure-cell-edit>-->\n\t<!--\t</span>-->\n\n\n</ng-container>\n\n<ng-container *ngIf=\"cell.isBooleanDataType() && this.isCellEditingEnabled()\">\n\t<div [cell]=\"cell\" [entity]=\"entity\"\n\t\t gui-structure-cell-edit-boolean>\n\t</div>\n</ng-container>\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, Input, OnChanges, OnInit, ViewEncapsulation } from '@angular/core';\nimport { Item } from '../../../../../core/structure/source/src/api/item/item';\nimport { FormationPublisher } from '../../../../../core/structure/formation/src/api/formation.publisher';\nimport { StructureId } from '../../../../../core/structure/structure-core/src/api/global/structure.id';\nimport { RowSelectToggleType } from '../../../../../core/structure/formation/src/domain/row-select-toggle-type';\nimport { FormationWarehouse } from '../../../../../core/structure/formation/src/api/formation.warehouse';\nimport { SmartComponent } from '../../../../../feature/common/component/src/smart-component';\nimport { RowSelectedReadModel } from '../../../../../core/structure/formation/src/api/row-selected/row-selected.read-model';\nimport { GuiRowClass, GuiRowStyle } from '../../../../../gui/grid/src/core/api/gui.grid.public-api';\nimport { StyleModifier } from '../../../../../feature/common/component/src/dom/style/style-modifier';\nimport { ClassModifier } from '../../../../../feature/common/component/src/dom/class/class-modifier';\nimport { CssClassModifier } from '../../../../../feature/structure/common/src/css-class/css-class.modifier';\nimport { NgChanges } from '../../../../../feature/common/component/src/ng-changes';\nimport { CellEditorManager } from '../../../../../core/structure/structure-core/src/domain/edit/cell-editor.manager';\nimport { ifChanged } from '../../../../../feature/common/component/src/check.input';\nimport { CompositionAccessorModel } from '../../../../../feature/composition/src/column/composition.accessor.model';\n\n\n@Component({\n\tselector: 'div[gui-structure-row]',\n\ttemplateUrl: './structure-row.component.html',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tencapsulation: ViewEncapsulation.None\n})\nexport class StructureRowComponent extends SmartComponent implements OnChanges, OnInit {\n\n\t@Input()\n\tentity: Item;\n\n\t@Input()\n\tcolumns: Array<CompositionAccessorModel>;\n\n\t@Input()\n\teditMode: boolean;\n\n\t@Input()\n\tcellEditing: CellEditorManager;\n\n\t@Input()\n\tsearchPhrase: string;\n\n\t@Input()\n\tindex: number;\n\n\t@Input()\n\trowStyle: GuiRowStyle;\n\n\t@Input()\n\trowClass: GuiRowClass;\n\n\t@Input()\n\tcheckboxSelection: boolean = false;\n\n\t@Input()\n\tradioSelection: boolean = false;\n\n\tselectedItem: boolean = false;\n\n\tprivate row: RowSelectedReadModel;\n\n\tprivate readonly styleModifier: StyleModifier;\n\n\tprivate readonly classModifier: ClassModifier;\n\n\tconstructor(private readonly changeDetectorRef: ChangeDetectorRef,\n\t\t\t\tprivate readonly elRef: ElementRef,\n\t\t\t\tprivate readonly structureId: StructureId,\n\t\t\t\tprivate readonly formationWarehouse: FormationWarehouse,\n\t\t\t\tprivate readonly formationCommandDispatcher: FormationPublisher,\n\t\t\t\tprivate readonly cssClassModifier: CssClassModifier) {\n\t\tsuper(changeDetectorRef, elRef);\n\t\tthis.styleModifier = new StyleModifier(this.elRef.nativeElement);\n\t\tthis.classModifier = new ClassModifier(this.elRef.nativeElement);\n\t}\n\n\tngOnChanges(changes: NgChanges<StructureRowComponent>) {\n\n\t\tifChanged(changes.entity, () => {\n\t\t\tthis.checkSelectedItem();\n\t\t\tthis.updateRowClass(changes.entity.previousValue);\n\t\t\tthis.updateRowStyle(changes.entity.previousValue);\n\t\t});\n\n\t\tifChanged(changes.rowClass, () => {\n\t\t\tthis.updateRowClass();\n\t\t});\n\n\t\tifChanged(changes.rowStyle, () => {\n\t\t\tthis.updateRowStyle();\n\t\t});\n\t}\n\n\tngOnInit() {\n\n\t\tthis.subscribeWithoutRender(\n\t\t\tthis.formationWarehouse.onRowSelectedReadModel(this.structureId),\n\t\t\t(row: RowSelectedReadModel) => {\n\t\t\t\tthis.row = row;\n\t\t\t\tconst prevValue = this.selectedItem;\n\n\t\t\t\tthis.checkSelectedItem();\n\n\t\t\t\tif (prevValue !== this.selectedItem) {\n\n\t\t\t\t\tif (prevValue) {\n\t\t\t\t\t\tthis.cssClassModifier.unselect(this.elRef.nativeElement);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.cssClassModifier.select(this.elRef.nativeElement);\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.changeDetectorRef.detectChanges();\n\t\t\t\t}\n\t\t\t}\n\t\t);\n\t}\n\n\tngAfterViewInit() {\n\t\tsuper.ngAfterViewInit();\n\n\t\tthis.updateRowClass();\n\t\tthis.updateRowStyle();\n\t}\n\n\ttrackByFn(): number {\n\t\treturn 0;\n\t}\n\n\tselectCheckbox(): void {\n\t\tevent.stopPropagation();\n\t\tthis.formationCommandDispatcher.toggleSelectedRow(this.entity.getId(), RowSelectToggleType.ADD, this.structureId);\n\t}\n\n\tselectRadio(): void {\n\t\tevent.stopPropagation();\n\t\tthis.formationCommandDispatcher.toggleSelectedRow(this.entity.getId(), RowSelectToggleType.NONE, this.structureId);\n\t}\n\n\tcheckSelectedItem(): void {\n\t\tif (this.row) {\n\n\t\t\tconst prevValue = this.selectedItem;\n\n\t\t\tthis.selectedItem = this.row.isSelected(this.entity.getId());\n\n\t\t\tif (prevValue !== this.selectedItem) {\n\n\t\t\t\tif (prevValue) {\n\t\t\t\t\tthis.cssClassModifier.unselect(this.elRef.nativeElement);\n\t\t\t\t} else {\n\t\t\t\t\tthis.cssClassModifier.select(this.elRef.nativeElement);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected getSelectorName(): string {\n\t\treturn 'gui-structure-row';\n\t}\n\n\tprivate calculateRowStyle(entity: Item): string {\n\n\t\tif (!this.rowStyle) {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (typeof this.rowStyle.style === 'string') {\n\t\t\treturn this.rowStyle.style || '';\n\t\t}\n\n\t\tif (typeof this.rowStyle.styleFunction === 'function') {\n\t\t\treturn this.rowStyle.styleFunction(entity.getSourceItem(), entity.getPosition());\n\t\t}\n\n\t\treturn '';\n\t}\n\n\tprivate updateRowStyle(prevEntity?: Item): void {\n\n\t\tif (prevEntity) {\n\t\t\tconst rowStylesToRemove = this.calculateRowStyle(prevEntity);\n\n\t\t\tthis.removeRowStyles(rowStylesToRemove);\n\t\t}\n\n\t\tconst rowStylesToAdd = this.calculateRowStyle(this.entity);\n\n\t\tthis.renderRowStyles(rowStylesToAdd);\n\t}\n\n\tprivate removeRowStyles(rowStyle: string): void {\n\n\t\tif (!rowStyle) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst styles = rowStyle.split(';');\n\n\t\tfor (let i = 0; i < styles.length; i += 1) {\n\n\t\t\tconst separatedStyles = styles[i].split(':');\n\n\t\t\tif (separatedStyles[0] && separatedStyles[1]) {\n\t\t\t\tthis.styleModifier.getHost().removeStyleByName(separatedStyles[0].trim());\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate renderRowStyles(rowStyle: string): void {\n\n\t\tif (!rowStyle) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst styles = rowStyle.split(';');\n\n\t\tfor (let i = 0; i < styles.length; i += 1) {\n\n\t\t\tconst separatedStyles = styles[i].split(':');\n\n\t\t\tif (separatedStyles[0] && separatedStyles[1]) {\n\t\t\t\tthis.styleModifier.getHost().setStyleByName(separatedStyles[0].trim(), separatedStyles[1].trim());\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate updateRowClass(prevEntity?: Item): void {\n\n\t\tif (prevEntity) {\n\t\t\tconst toRemoveClass = this.calculateRowClass(prevEntity);\n\n\t\t\tif (toRemoveClass) {\n\t\t\t\tthis.classModifier.getHost().remove(toRemoveClass);\n\t\t\t}\n\t\t}\n\n\t\tconst toAddClass = this.calculateRowClass(this.entity);\n\n\t\tif (toAddClass) {\n\t\t\tthis.classModifier.getHost().add(toAddClass);\n\t\t}\n\t}\n\n\tprivate calculateRowClass(entity: Item): string {\n\n\t\tif (!this.rowClass) {\n\t\t\treturn '';\n\t\t}\n\n\t\tlet clazz: string;\n\n\t\tif (typeof this.rowClass.class === 'string') {\n\t\t\tclazz = this.rowClass.class || '';\n\t\t}\n\n\t\tif (typeof this.rowClass.classFunction === 'function') {\n\t\t\tif (entity) {\n\t\t\t\tclazz = this.rowClass.classFunction(entity.getSourceItem(), entity.getPosition()) || '';\n\t\t\t}\n\t\t}\n\n\t\treturn clazz;\n\t}\n\n}\n","<div *ngIf=\"checkboxSelection\"\n\t class=\"gui-cell gui-row-checkbox\">\n\t<gui-checkbox (changed)=\"selectCheckbox()\" [checked]=\"selectedItem\"></gui-checkbox>\n</div>\n\n<div *ngIf=\"radioSelection\"\n\t class=\"gui-cell gui-row-radio\">\n\t<gui-radio-button (changed)=\"selectRadio()\" [checked]=\"selectedItem\"></gui-radio-button>\n</div>\n\n<div *ngFor=\"let column of columns; trackBy: trackByFn; let i = index\" [cellEditorManager]=\"cellEditing\"\n\t [cell]=\"column\"\n\t [columnIndex]=\"i\"\n\t [editMode]=\"editMode\"\n\t [entity]=\"entity\"\n\t [rowIndex]=\"index\"\n\t [searchPhrase]=\"searchPhrase\"\n\t [style.width.px]=\"column.width\"\n\t class=\"gui-cell\"\n\t gui-structure-cell>\n</div>\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, inject, Input, ViewEncapsulation } from '@angular/core';\nimport { combineLatest } from 'rxjs';\n\nimport { SmartComponent } from '../../../../feature/common/component/src/smart-component';\nimport { FormationPublisher } from '../../../../core/structure/formation/src/api/formation.publisher';\nimport { StructureEditModeArchive } from '../edit/structure.edit-mode.archive';\nimport { FormationWarehouse } from '../../../../core/structure/formation/src/api/formation.warehouse';\nimport { Item } from '../../../../core/structure/source/src/api/item/item';\nimport { StructureWarehouse } from '../../../../core/structure/structure-core/src/api/structure.warehouse';\nimport { StructureId } from '../../../../core/structure/structure-core/src/api/global/structure.id';\nimport { VerticalFormationWarehouse } from '../../../../core/structure/vertical-formation/src/api/vertical-formation.warehouse';\nimport { RowSelectionType } from '../../../../core/structure/formation/src/api/row-selected/row-selection';\nimport { RowSelectToggleType } from '../../../../core/structure/formation/src/domain/row-select-toggle-type';\nimport { SchemaRowClass } from '../../../../core/schema/src/api/styling/schema.row-class';\nimport { SchemaRowStyle } from '../../../../core/schema/src/api/styling/schema.row-style';\nimport { fromRxJsObservable, hermesMap, HermesObservable, toRxJsObservable } from '@generic-ui/hermes';\nimport { SearchWarehouse } from '../../../../core/structure/search/src/api/search.warehouse';\nimport { CellEditorManager } from '../../../../core/structure/structure-core/src/domain/edit/cell-editor.manager';\nimport { SchemaWarehouse } from '../../../../core/schema/src/api/schema.warehouse';\nimport { SchemaReadModelRootId } from '../../../../core/schema/src/api/global/schema.read-model-root-id';\nimport { CompositionAccessorModel } from '../../../../feature/composition/src/column/composition.accessor.model';\nimport { GuiState } from '../../../../feature/gui-angular/state/gui.state';\n\nexport interface StructureContentComponentState {\n\n\teditMode: boolean;\n\n\tselectionEnabled: boolean;\n\n\trowHeight: number;\n\n\tcellEditing: CellEditorManager;\n\n\tschemaRowClass: SchemaRowClass;\n\n\tschemaRowStyle: SchemaRowStyle;\n\n\tcheckboxSelection: boolean;\n\n\tradioSelection: boolean;\n\n\tsearchPhrase: string;\n\n}\n\n@Component({\n\tselector: 'div[gui-structure-content]',\n\ttemplateUrl: './structure-content.component.html',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tencapsulation: ViewEncapsulation.None,\n\tproviders: [\n\t\tGuiState\n\t]\n})\nexport class StructureContentComponent extends SmartComponent {\n\n\t@Input()\n\tsource: Array<Item>;\n\n\t@Input()\n\tcolumns: Array<CompositionAccessorModel>;\n\n\tprivate readonly state = inject(GuiState<StructureContentComponentState>);\n\n\treadonly state$ = this.state.select();\n\n\tconstructor(\n\t\telementRef: ElementRef,\n\t\tchangeDetectorRef: ChangeDetectorRef,\n\t\tprivate readonly formationPublisher: FormationPublisher,\n\t\tprivate readonly structureEditModeArchive: StructureEditModeArchive,\n\t\tprivate readonly formationWarehouse: FormationWarehouse,\n\t\tprivate readonly structureWarehouse: StructureWarehouse,\n\t\tprivate readonly verticalFormationWarehouse: VerticalFormationWarehouse,\n\t\tprivate readonly structureId: StructureId,\n\t\tprivate readonly schemaReadModelRootId: SchemaReadModelRootId,\n\t\tprivate readonly searchWarehouse: SearchWarehouse,\n\t\tprivate readonly schemaWarehouse: SchemaWarehouse\n\t) {\n\t\tsuper(changeDetectorRef, elementRef);\n\n\t\tthis.state.setValue({\n\t\t\tcheckboxSelection: false,\n\t\t\tradioSelection: false,\n\t\t\tsearchPhrase: ''\n\t\t});\n\n\t\tthis.state.connect('editMode', this.structureEditModeArchive.on());\n\t\tthis.state.connect('selectionEnabled', this.formationWarehouse.onSelectionEnabled(this.structureId));\n\t\tthis.state.connect('rowHeight', this.verticalFormationWarehouse.onRowHeight(this.structureId));\n\t\tthis.state.connect('cellEditing', this.structureWarehouse.onEditManager(this.structureId));\n\t\tthis.state.connect('schemaRowClass', this.schemaWarehouse.onRowClass(this.schemaReadModelRootId));\n\t\tthis.state.connect('schemaRowStyle', this.schemaWarehouse.onRowStyle(this.schemaReadModelRootId));\n\t\tthis.state.connect('checkboxSelection', this.selectCheckboxSelection());\n\t\tthis.state.connect('radioSelection', this.selectRadioSelection());\n\t\tthis.state.connect('searchPhrase', this.selectSearchPhrase());\n\t}\n\n\ttrackByFn() {\n\t\treturn 0;\n\t}\n\n\ttranslateY(index: number, rowHeight: number): string {\n\n\t\tconst height = index * rowHeight;\n\n\t\treturn `translateY(${height}px)`;\n\t}\n\n\ttoggleSelectedRow(\n\t\tentity: Item,\n\t\tselectionEnabled: boolean,\n\t\tcheckboxSelection: boolean,\n\t\tradioSelection: boolean\n\t): void {\n\n\t\tif (!selectionEnabled) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (!checkboxSelection && !radioSelection) {\n\t\t\tthis.formationPublisher.toggleSelectedRow(entity.getId(), RowSelectToggleType.NONE, this.structureId);\n\t\t}\n\t}\n\n\tprotected getSelectorName(): string {\n\t\treturn 'gui-structure-content';\n\t}\n\n\tprivate selectCheckboxSelection(): HermesObservable<boolean> {\n\t\treturn this.formationWarehouse\n\t\t\t\t   .onType(this.structureId)\n\t\t\t\t   .pipe(\n\t\t\t\t\t   hermesMap((type: RowSelectionType) => {\n\t\t\t\t\t\t   return type === RowSelectionType.CHECKBOX;\n\t\t\t\t\t   })\n\t\t\t\t   );\n\t}\n\n\tprivate selectRadioSelection(): HermesObservable<boolean> {\n\t\treturn this.formationWarehouse\n\t\t\t\t   .onType(this.structureId)\n\t\t\t\t   .pipe(\n\t\t\t\t\t   hermesMap((type: RowSelectionType) => {\n\t\t\t\t\t\t   return type === RowSelectionType.RADIO;\n\t\t\t\t\t   })\n\t\t\t\t   );\n\t}\n\n\tprivate selectSearchPhrase(): HermesObservable<string> {\n\t\treturn fromRxJsObservable(\n\t\t\tcombineLatest(\n\t\t\t\ttoRxJsObservable(this.searchWarehouse.onPhrase(this.structureId)),\n\t\t\t\ttoRxJsObservable(this.searchWarehouse.onHighlight(this.structureId))\n\t\t\t)\n\t\t)\n\t\t\t.pipe(\n\t\t\t\thermesMap(([phrase, highlighting]) => {\n\t\t\t\t\tif (!highlighting) {\n\t\t\t\t\t\treturn '';\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn phrase;\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t);\n\t}\n\n}\n","<div *guiLet=\"state$; let localState\"\n\t class=\"gui-content\">\n\n\t<div (click)=\"toggleSelectedRow(entity, localState.selectionEnabled, localState.checkboxSelection, localState.radioSelection)\"\n\t\t *ngFor=\"let entity of source; let index = index; trackBy: trackByFn\"\n\t\t [cellEditing]=\"localState.cellEditing\"\n\t\t [checkboxSelection]=\"localState.checkboxSelection\"\n\t\t [columns]=\"columns\"\n\t\t [editMode]=\"localState.editMode\"\n\t\t [entity]=\"entity\"\n\t\t [id]=\"entity.getUiId()\"\n\t\t [index]=\"entity.getPosition()\"\n\t\t [ngClass]=\"{'even': entity.isEven(), 'odd': entity.isOdd()}\"\n\t\t [ngStyle]=\"{'transform': translateY(index, localState.rowHeight)}\"\n\t\t [radioSelection]=\"localState.radioSelection\"\n\t\t [rowClass]=\"localState.schemaRowClass\"\n\t\t [rowStyle]=\"localState.schemaRowStyle\"\n\t\t [searchPhrase]=\"localState.searchPhrase\"\n\t\t [style.height.px]=\"localState.rowHeight\"\n\t\t class=\"gui-row\"\n\t\t gui-structure-row>\n\t</div>\n\n</div>\n","import {\n\tAfterViewInit,\n\tChangeDetectionStrategy,\n\tChangeDetectorRef,\n\tComponent,\n\tElementRef,\n\tInject,\n\tNgZone,\n\tOnDestroy,\n\tOnInit,\n\tOptional,\n\tViewChild,\n\tViewEncapsulation\n} from '@angular/core';\nimport { combineLatest } from 'rxjs';\nimport { flatMap } from 'rxjs/operators';\n\nimport { SmartComponent } from '../../../../../feature/common/component/src/smart-component';\nimport { SchemaRowColoring } from '../../../../../core/schema/src/api/row-coloring/schema-row-coloring';\nimport { StructureId } from '../../../../../core/structure/structure-core/src/api/global/structure.id';\nimport { StructurePublisher } from '../../../../../core/structure/structure-core/src/api/structure.publisher';\nimport { StructureWarehouse } from '../../../../../core/structure/structure-core/src/api/structure.warehouse';\nimport { SourceWarehouse } from '../../../../../core/structure/source/src/api/source.warehouse';\nimport { CompositionPublisher } from '../../../../../core/composition/src/api/composition.publisher';\nimport { CompositionWarehouse } from '../../../../../core/composition/src/api/composition.warehouse';\nimport { FormationWarehouse } from '../../../../../core/structure/formation/src/api/formation.warehouse';\nimport { structureParentComponent } from '../../structure/parent/structure-parent-component';\nimport { StructureReadModelRoot } from '../../../../../core/structure/structure-core/src/api/read/structure.read-model-root';\nimport { Item } from '../../../../../core/structure/source/src/api/item/item';\nimport { VerticalFormationWarehouse } from '../../../../../core/structure/vertical-formation/src/api/vertical-formation.warehouse';\nimport { StyleModifier } from '../../../../../feature/common/component/src/dom/style/style-modifier';\nimport {\n\tfromRxJsObservable,\n\thermesDistinctUntilChanged,\n\thermesFilter,\n\thermesFromEvent,\n\thermesMap,\n\tHermesSubject,\n\thermesTakeUntil,\n\ttoRxJsObservable\n} from '@generic-ui/hermes';\nimport { StructureInitialValuesReadyArchive } from '../../../../../core/structure/structure-core/src/api/ready/structure.initial-values-ready.archive';\nimport { ObservedSize, ResizeDetector } from '../../../../../feature/common/cdk/src/resize-detector/resize.detector';\nimport { CompositionId } from '../../../../../core/composition/src/api/global/composition.id';\nimport { CompositionAccessorModel } from '../../../../../feature/composition/src/column/composition.accessor.model';\nimport { CompositionTemplateWarehouse } from '../../../../../feature/composition/src/column/composition.template-warehouse';\n\n\n@Component({\n\tselector: 'div[gui-structure-container]',\n\ttemplateUrl: './structure-container.component.html',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tencapsulation: ViewEncapsulation.None\n})\nexport class StructureContainerComponent extends SmartComponent implements OnInit, AfterViewInit, OnDestroy {\n\n\t@ViewChild('sourceCollection', { read: ElementRef, static: false })\n\treadonly sourceCollectionRef?: ElementRef;\n\n\tcolumns: Array<CompositionAccessorModel> = [];\n\n\tsource: Array<Item> = [];\n\n\theight: number;\n\n\trowColoring: SchemaRowColoring;\n\n\tprivate autoResizeWidthEnabled: boolean = false;\n\n\tprivate scrollObservation$ = new HermesSubject<void>();\n\n\tprivate readonly styleModifier: StyleModifier;\n\n\tconstructor(changeDetectorRef: ChangeDetectorRef,\n\t\t\t\tprivate readonly elRef: ElementRef,\n\t\t\t\tprivate readonly ngZone: NgZone,\n\t\t\t\tprivate readonly structureId: StructureId,\n\t\t\t\tprivate readonly compositionId: CompositionId,\n\t\t\t\tprivate readonly structureCommandService: StructurePublisher,\n\t\t\t\tprivate readonly structureWarehouse: StructureWarehouse,\n\t\t\t\tprivate readonly verticalFormationWarehouse: VerticalFormationWarehouse,\n\t\t\t\tprivate readonly sourceWarehouse: SourceWarehouse,\n\t\t\t\tprivate readonly compositionCommandInvoker: CompositionPublisher,\n\t\t\t\tprivate readonly compositionWarehouse: CompositionWarehouse,\n\t\t\t\tprivate readonly compositionTemplateWarehouse: CompositionTemplateWarehouse,\n\t\t\t\tprivate readonly formationWarehouse: FormationWarehouse,\n\t\t\t\tprivate readonly resizeDetector: ResizeDetector,\n\t\t\t\tprivate readonly structureInitialValuesReadyArchive: StructureInitialValuesReadyArchive,\n\t\t\t\t@Optional() @Inject(structureParentComponent) private readonly structureParent: any) {\n\t\tsuper(changeDetectorRef, elRef);\n\t\tthis.styleModifier = new StyleModifier(this.elRef.nativeElement);\n\t}\n\n\tngOnInit() {\n\n\t\tthis.subscribeWithoutRender(\n\t\t\tthis.verticalFormationWarehouse.onContainerHeight(this.structureId),\n\t\t\t(containerHeight: number) => {\n\t\t\t\tthis.setContainerHeight(containerHeight);\n\t\t\t}\n\t\t);\n\n\t\tthis.subscribe(\n\t\t\tfromRxJsObservable(\n\t\t\t\ttoRxJsObservable(this.structureInitialValuesReadyArchive.once(this.structureId))\n\t\t\t\t\t.pipe(\n\t\t\t\t\t\tflatMap(() => {\n\t\t\t\t\t\t\treturn combineLatest(\n\t\t\t\t\t\t\t\ttoRxJsObservable(this.sourceWarehouse.onItems(this.structureId)),\n\t\t\t\t\t\t\t\ttoRxJsObservable(this.compositionTemplateWarehouse.onTemplateCols(this.compositionId))\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t})\n\t\t\t\t\t)\n\t\t\t),\n\t\t\t(arr: Array<any>) => {\n\n\t\t\t\tthis.source = arr[0] as Array<Item>;\n\t\t\t\tthis.columns = arr[1] as Array<CompositionAccessorModel>;\n\t\t\t}\n\t\t);\n\n\t\tthis.subscribeWithoutRender(\n\t\t\tthis.compositionWarehouse.onResizeWidth(this.compositionId),\n\t\t\t(enabled: boolean) => {\n\t\t\t\tthis.autoResizeWidthEnabled = enabled;\n\t\t\t}\n\t\t);\n\n\t}\n\n\tngAfterViewInit() {\n\t\tsuper.ngAfterViewInit();\n\n\t\t// turn on when structure is ready\n\t\tif (this.structureParent) {\n\n\t\t\tthis.subscribeWithoutRender(\n\t\t\t\tthis.resizeDetector\n\t\t\t\t\t.on(this.structureParent.getElementRef().nativeElement)\n\t\t\t\t\t.pipe(\n\t\t\t\t\t\thermesFilter(() => this.autoResizeWidthEnabled),\n\t\t\t\t\t\thermesMap((size: ObservedSize) => size.width),\n\t\t\t\t\t\thermesDistinctUntilChanged()\n\t\t\t\t\t),\n\t\t\t\t(width: number) => {\n\t\t\t\t\tthis.recalculateContainer(width);\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\n\t\tthis.subscribeWithoutRender(\n\t\t\tthis.compositionWarehouse.onContainerWidth(this.compositionId),\n\t\t\t(width: number) => {\n\t\t\t\tthis.styleModifier.getElement(this.sourceCollectionRef.nativeElement).setWidth(width);\n\t\t\t}\n\t\t);\n\n\t\tthis.subscribeWithoutRender(\n\t\t\tthis.verticalFormationWarehouse.onEnabled(this.structureId),\n\t\t\t(enabled: boolean) => {\n\t\t\t\tif (enabled) {\n\t\t\t\t\tthis.enableScrollObservation();\n\t\t\t\t} else {\n\t\t\t\t\tthis.disableScrollObservation();\n\t\t\t\t}\n\t\t\t}\n\t\t);\n\n\t\tthis.subscribeWithoutRender(\n\t\t\tthis.structureWarehouse\n\t\t\t\t.on(this.structureId)\n\t\t\t\t.pipe(\n\t\t\t\t\thermesFilter((str: StructureReadModelRoot) => {\n\t\t\t\t\t\treturn str.isVerticalScrollEnabled();\n\t\t\t\t\t})\n\t\t\t\t),\n\t\t\t(structure: StructureReadModelRoot) => {\n\n\t\t\t\tconst topMargin = structure.getTopMargin(),\n\t\t\t\t\tsourceHeight = structure.getSourceHeight();\n\n\t\t\t\tthis.setSourceHeight(topMargin, sourceHeight);\n\t\t\t}\n\t\t);\n\n\t\tthis.subscribeWithoutRender(\n\t\t\tthis.verticalFormationWarehouse.onScrollBarPosition(this.structureId),\n\t\t\t(scrollPosition: number) => {\n\n\t\t\t\tthis.elRef.nativeElement.scrollTop = scrollPosition;\n\t\t\t}\n\t\t);\n\t}\n\n\tngOnDestroy() {\n\t\tsuper.ngOnDestroy();\n\t\tthis.resizeDetector.destroy(this.elRef.nativeElement);\n\t}\n\n\tprotected getSelectorName(): string {\n\t\treturn 'gui-structure-container';\n\t}\n\n\tprivate setContainerHeight(height: number): void {\n\t\tthis.height = height;\n\t\tthis.styleModifier.getHost().setHeight(height);\n\t}\n\n\tprivate setSourceHeight(topMargin: number, sourceHeight: number): void {\n\t\tthis.styleModifier.getElement(this.sourceCollectionRef.nativeElement).setPaddingTop(topMargin);\n\t\tthis.styleModifier.getElement(this.sourceCollectionRef.nativeElement).setHeight(sourceHeight);\n\t}\n\n\tprivate recalculateContainer(width: number): void {\n\t\tif (this.autoResizeWidthEnabled) {\n\t\t\tthis.compositionCommandInvoker.setContainerWidth(width, this.compositionId);\n\t\t}\n\t}\n\n\tprivate enableScrollObservation(): void {\n\t\tthis.ngZone\n\t\t\t.runOutsideAngular(() => {\n\n\t\t\t\thermesFromEvent(this.elRef.nativeElement, 'scroll')\n\t\t\t\t\t.pipe(\n\t\t\t\t\t\thermesTakeUntil(this.scrollObservation$)\n\t\t\t\t\t)\n\t\t\t\t\t.subscribe((event: any) => {\n\n\t\t\t\t\t\tconst scrollTop = event.target.scrollTop;\n\n\t\t\t\t\t\tthis.structureCommandService.setScrollPosition(scrollTop, this.structureId);\n\t\t\t\t\t});\n\t\t\t});\n\t}\n\n\tprivate disableScrollObservation(): void {\n\t\tthis.scrollObservation$.next();\n\t\tthis.scrollObservation$.complete();\n\t}\n\n}\n","<div #sourceCollection\n\t class=\"gui-h-full gui-w-full gui-absolute gui-structure-container-element\">\n\n\t<div [columns]=\"columns\" [source]=\"source\"\n\t\t gui-structure-content>\n\t</div>\n\n</div>\n","import { SmartComponent } from '../../../../../feature/common/component/src/smart-component';\nimport { ChangeDetectorRef, Directive, ElementRef, OnInit } from '@angular/core';\nimport { StructureBannerPanelConfig } from './structure-banner-panel.config';\nimport { hermesMap, HermesObservable } from '@generic-ui/hermes';\n\n@Directive()\nexport abstract class StructureBannerPanel extends SmartComponent {\n\n\tbannerPanel$: HermesObservable<string>;\n\n\tprotected constructor(changeDetectorRef: ChangeDetectorRef,\n\t\t\t\t\t\t  elementRef: ElementRef) {\n\t\tsuper(changeDetectorRef, elementRef);\n\t}\n\n\tabstract onBannerPanelConfig(): HermesObservable<StructureBannerPanelConfig>;\n\n\tprotected abstract getSelectorName(): string;\n\n\tinitObservables(): void {\n\t\tthis.bannerPanel$ = this.selectBannerPanelTemplate();\n\t}\n\n\tprivate selectBannerPanelTemplate(): HermesObservable<string> {\n\t\treturn this.onBannerPanelConfig()\n\t\t\t\t   .pipe(\n\t\t\t\t\t   hermesMap((config: StructureBannerPanelConfig) => {\n\n\t\t\t\t\t\t   if (typeof config.template === 'function') {\n\t\t\t\t\t\t\t   return config.template();\n\t\t\t\t\t\t   }\n\n\t\t\t\t\t\t   return config.template;\n\t\t\t\t\t   })\n\t\t\t\t   );\n\t}\n\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, ViewEncapsulation } from '@angular/core';\n\nimport { StructureTitlePanelConfigArchive } from './structure.title-panel.config-archive';\nimport { StructureBannerPanel } from '../structure-banner-panel';\nimport { StructureBannerPanelConfig } from '../structure-banner-panel.config';\nimport { HermesObservable } from '@generic-ui/hermes';\n\n\n@Component({\n\tselector: 'div[gui-structure-title-panel]',\n\ttemplateUrl: './structure.title-panel.component.html',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tencapsulation: ViewEncapsulation.None\n})\nexport class StructureTitlePanelComponent extends StructureBannerPanel {\n\n\tconstructor(\n\t\tprivate readonly structureTitlePanelConfigArchive: StructureTitlePanelConfigArchive,\n\t\tchangeDetectorRef: ChangeDetectorRef,\n\t\telementRef: ElementRef\n\t) {\n\t\tsuper(changeDetectorRef, elementRef);\n\t\tthis.initObservables();\n\t}\n\n\tonBannerPanelConfig(): HermesObservable<StructureBannerPanelConfig> {\n\t\treturn this.structureTitlePanelConfigArchive.on();\n\t}\n\n\tprotected getSelectorName(): string {\n\t\treturn 'gui-structure-title-panel';\n\t}\n\n}\n","<div [innerHTML]=\"bannerPanel$ | guiPush | guiSafe: 'html'\"\n\t class=\"gui-title-panel gui-p-6 gui-border-b gui-border-b-solid\">\n</div>\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, ViewEncapsulation } from '@angular/core';\n\nimport { StructureFooterPanelConfigArchive } from './structure.footer-panel.config-archive';\nimport { StructureBannerPanel } from '../structure-banner-panel';\nimport { StructureBannerPanelConfig } from '../structure-banner-panel.config';\nimport { HermesObservable } from '@generic-ui/hermes';\n\n\n@Component({\n\tselector: 'div[gui-structure-footer-panel]',\n\ttemplateUrl: './structure.footer-panel.component.html',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tencapsulation: ViewEncapsulation.None\n})\nexport class StructureFooterPanelComponent extends StructureBannerPanel {\n\n\tconstructor(\n\t\tprivate readonly structureFooterPanelConfigArchive: StructureFooterPanelConfigArchive,\n\t\tchangeDetectorRef: ChangeDetectorRef,\n\t\telementRef: ElementRef\n\t) {\n\t\tsuper(changeDetectorRef, elementRef);\n\t\tthis.initObservables();\n\t}\n\n\tonBannerPanelConfig(): HermesObservable<StructureBannerPanelConfig> {\n\t\treturn this.structureFooterPanelConfigArchive\n\t\t\t\t   .on();\n\t}\n\n\tprotected getSelectorName(): string {\n\t\treturn 'gui-structure-footer-panel';\n\t}\n}\n","<div [innerHTML]=\"bannerPanel$ | guiPush | guiSafe: 'html'\"\n\t class=\"gui-footer-panel gui-p-6 gui-border-t gui-border-t-solid\">\n</div>\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, inject, Inject, ViewEncapsulation } from '@angular/core';\n\nimport { SmartComponent } from '../../../../feature/common/component/src/smart-component';\nimport { StructureReadModelRoot } from '../../../../core/structure/structure-core/src/api/read/structure.read-model-root';\nimport { PagingModel } from '../../../../core/structure/paging/src/api/model/paging.model';\nimport { StructureDefinition } from '../structure/structure-definition';\nimport { StructureId } from '../../../../core/structure/structure-core/src/api/global/structure.id';\nimport { StructureWarehouse } from '../../../../core/structure/structure-core/src/api/structure.warehouse';\nimport { PagingWarehouse } from '../../../../core/structure/paging/src/api/paging.warehouse';\nimport { StructureInfoPanelArchive } from '../../../../core/structure/structure-core/src/api/panel/info/structure.info-panel.archive';\nimport { FilterWarehouse } from '../../../../core/structure/filter/src/api/filter.warehouse';\nimport { SearchWarehouse } from '../../../../core/structure/search/src/api/search.warehouse';\nimport { STRUCTURE_CSS_CLASS_NAME } from './structure-tokens';\nimport { StructureHeaderTopEnabledArchive } from '../header/structure-header-top-enabled.archive';\nimport { StructureHeaderBottomEnabledArchive } from '../header/structure-header-bottom-enabled.archive';\nimport { StructureTitlePanelConfigArchive } from '../panel/banner-panels/title-panel/structure.title-panel.config-archive';\nimport { StructureFooterPanelConfigArchive } from '../panel/banner-panels/footer-panel/structure.footer-panel.config-archive';\n\nimport { StructureInfoPanelConfig } from '../../../../core/structure/structure-core/src/api/panel/info/structure.info-panel.config';\nimport { StructureBannerPanelConfig } from '../panel/banner-panels/structure-banner-panel.config';\nimport { SummariesWarehouse } from '../../../../core/structure/summaries/src/api/summaries.warehouse';\nimport { hermesMap, HermesObservable } from '@generic-ui/hermes';\n\n\n@Component({\n\tselector: 'div[gui-structure-blueprint]',\n\ttemplateUrl: './structure.blueprint.component.html',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tencapsulation: ViewEncapsulation.None\n})\nexport class StructureBlueprintComponent extends SmartComponent {\n\n\tprivate readonly structureId = inject(StructureId);\n\tprivate readonly summariesWarehouse = inject(SummariesWarehouse);\n\tprivate readonly structureHeaderTopEnabledArchive = inject(StructureHeaderTopEnabledArchive);\n\tprivate readonly structureHeaderBottomEnabledArchive = inject(StructureHeaderBottomEnabledArchive);\n\tprivate readonly searchWarehouse = inject(SearchWarehouse);\n\tprivate readonly pagingWarehouse = inject(PagingWarehouse);\n\tprivate readonly structureWarehouse = inject(StructureWarehouse);\n\tprivate readonly structureInfoPanelArchive = inject(StructureInfoPanelArchive);\n\tprivate readonly structureTitlePanelConfigArchive = inject(StructureTitlePanelConfigArchive);\n\tprivate readonly structureFooterPanelConfigArchive = inject(StructureFooterPanelConfigArchive);\n\n\treadonly bottomSummariesPanelEnabled$ = this.summariesWarehouse.onBottomEnabled(this.structureId);\n\n\treadonly contentCssClass: string;\n\n\treadonly headerCssClass: string;\n\n\treadonly headerTopClasses: string;\n\n\treadonly headerBottomClasses: string;\n\n\treadonly topHeaderEnabled$ = this.structureHeaderTopEnabledArchive.on();\n\n\treadonly bottomHeaderEnabled$ = this.structureHeaderBottomEnabledArchive.on();\n\n\treadonly footerPanelEnabled$ = this.selectFooterPanelEnabled();\n\n\treadonly items$ = this.selectItems();\n\n\treadonly topSummariesPanelEnabled$ = this.summariesWarehouse.onTopEnabled(this.structureId);\n\n\treadonly searchEnabled$ = this.searchWarehouse.onSearchEnabled(this.structureId);\n\n\treadonly titlePanelEnabled$ = this.selectTitlePanelEnabled();\n\n\treadonly infoPanelEnabled$ = this.selectInfoPanelEnabled();\n\n\treadonly pagingModel$ = this.pagingWarehouse.onPaging(this.structureId);\n\n\tconstructor(\n\t\tchangeDetectorRef: ChangeDetectorRef,\n\t\telementRef: ElementRef,\n\t\tprivate readonly structureDefinition: StructureDefinition,\n\t\t@Inject(STRUCTURE_CSS_CLASS_NAME) private className: string\n\t) {\n\t\tsuper(changeDetectorRef, elementRef);\n\n\t\tthis.headerCssClass = `gui-${this.className}-header`;\n\t\tthis.contentCssClass = `gui-${this.className}-content`;\n\n\t\tthis.headerTopClasses = this.headerCssClass + ' gui-header-top';\n\t\tthis.headerBottomClasses = this.headerCssClass + ' gui-header-bottom';\n\t}\n\n\tisColumnHeaderTopEnabled(topHeaderEnabled: boolean): boolean {\n\t\treturn this.structureDefinition.isHeaderEnabled() && topHeaderEnabled;\n\t}\n\n\tisColumnHeaderBottomEnabled(bottomHeaderEnabled: boolean): boolean {\n\t\treturn this.structureDefinition.isHeaderEnabled() && bottomHeaderEnabled;\n\t}\n\n\tisPagingTopEnabled(pagingModel: PagingModel): boolean {\n\t\treturn this.structureDefinition.getTopPaging().isEnabled() && pagingModel.isPagerTop();\n\t}\n\n\tisPagingBottomEnabled(pagingModel: PagingModel): boolean {\n\t\treturn this.structureDefinition.getBottomPaging().isEnabled() && pagingModel.isPagerBottom();\n\t}\n\n\tprotected getSelectorName(): string {\n\t\treturn 'gui-structure-blueprint';\n\t}\n\n\tprivate selectTitlePanelEnabled(): HermesObservable<boolean> {\n\t\treturn this.structureTitlePanelConfigArchive\n\t\t\t\t   .on()\n\t\t\t\t   .pipe(\n\t\t\t\t\t   hermesMap((titlePanel: StructureBannerPanelConfig) => {\n\t\t\t\t\t\t   return titlePanel.enabled;\n\t\t\t\t\t   })\n\t\t\t\t   );\n\t}\n\n\tprivate selectInfoPanelEnabled(): HermesObservable<boolean> {\n\t\treturn this.structureInfoPanelArchive\n\t\t\t\t   .on()\n\t\t\t\t   .pipe(\n\t\t\t\t\t   hermesMap((infoPanel: StructureInfoPanelConfig) => {\n\t\t\t\t\t\t   return infoPanel.isEnabled();\n\t\t\t\t\t   })\n\t\t\t\t   );\n\t}\n\n\tprivate selectFooterPanelEnabled(): HermesObservable<boolean> {\n\t\treturn this.structureFooterPanelConfigArchive\n\t\t\t\t   .on()\n\t\t\t\t   .pipe(\n\t\t\t\t\t   hermesMap((footerPanel: StructureBannerPanelConfig) => {\n\t\t\t\t\t\t   return footerPanel.enabled;\n\t\t\t\t\t   })\n\t\t\t\t   );\n\t}\n\n\tprivate selectItems() {\n\t\treturn this.structureWarehouse.on(this.structureId)\n\t\t\t\t   .pipe(\n\t\t\t\t\t   hermesMap((structure: StructureReadModelRoot) => {\n\t\t\t\t\t\t   return structure.getEntities();\n\t\t\t\t\t   })\n\t\t\t\t   );\n\t}\n\n}\n","<!---------- TOP ---------->\n<div *guiIf=\"titlePanelEnabled$\" gui-structure-title-panel></div>\n\n<div *guiIf=\"searchEnabled$\" gui-structure-top-panel></div>\n\n<ng-container *guiLet=\"pagingModel$; let pagingModel\">\n\t<div *ngIf=\"isPagingTopEnabled(pagingModel)\" [position]=\"0\"\n\t\t gui-paging>\n\t</div>\n</ng-container>\n\n<div [enabled]=\"topSummariesPanelEnabled$ | guiPush\" class=\"gui-structure-summaries-panel-top\"\n\t gui-structure-summaries-panel>\n</div>\n\n<ng-container *guiLet=\"topHeaderEnabled$; let topHeaderEnabled\">\n\t<div *ngIf=\"isColumnHeaderTopEnabled(topHeaderEnabled)\" [ngClass]=\"headerTopClasses\"\n\t\t gui-structure-header>\n\t</div>\n</ng-container>\n\n\n<!---------- MAIN ---------->\n<div [ngClass]=\"contentCssClass\" gui-structure-container>\n</div>\n\n<div [items]=\"items$ | guiPush\" gui-empty-source>\n</div>\n\n\n<!---------- BOTTOM ---------->\n<ng-container *guiLet=\"bottomHeaderEnabled$; let bottomHeaderEnabled\">\n\t<div *ngIf=\"isColumnHeaderBottomEnabled(bottomHeaderEnabled)\" [ngClass]=\"headerBottomClasses\"\n\t\t gui-structure-header>\n\t</div>\n</ng-container>\n\n<div [enabled]=\"bottomSummariesPanelEnabled$ | guiPush\" class=\"gui-structure-summaries-panel-bottom\"\n\t gui-structure-summaries-panel>\n</div>\n\n<ng-container *guiLet=\"footerPanelEnabled$; let footerPanelEnabled\">\n\t<div *ngIf=\"footerPanelEnabled\" gui-structure-footer-panel></div>\n</ng-container>\n\n<ng-container *guiLet=\"pagingModel$; let pagingModel\">\n\t<div *ngIf=\"isPagingBottomEnabled(pagingModel)\" [position]=\"1\"\n\t\t gui-paging>\n\t</div>\n</ng-container>\n\n<div *guiIf=\"infoPanelEnabled$\" gui-structure-info-panel></div>\n","import {\n\tAfterViewInit,\n\tChangeDetectionStrategy,\n\tChangeDetectorRef,\n\tComponent,\n\tElementRef,\n\tInjector,\n\tOnDestroy,\n\tOnInit,\n\tViewEncapsulation\n} from '@angular/core';\n\nimport { StructureDefinition } from './structure-definition';\nimport { StructureIdGenerator } from './structure-id.generator';\nimport { StructureId } from '../../../../core/structure/structure-core/src/api/global/structure.id';\nimport { CompositionId } from '../../../../core/composition/src/api/global/composition.id';\nimport { SchemaCssClassManager } from '../schema/schema-css-class.manager';\nimport { StructureCellEditArchive } from '../edit/structure.cell-edit.archive';\nimport { StructureCellEditStore } from '../edit/structure.cell-edit.store';\nimport { StructureEditModeArchive } from '../edit/structure.edit-mode.archive';\nimport { StructureInfoPanelArchive } from '../../../../core/structure/structure-core/src/api/panel/info/structure.info-panel.archive';\nimport { structureComponentToken } from './structure-component-token';\nimport { StructureGateway } from './gate/structure.gateway';\nimport { StructureReadModelRoot } from '../../../../core/structure/structure-core/src/api/read/structure.read-model-root';\nimport { PagingPublisher } from '../../../../core/structure/paging/src/api/paging.publisher';\nimport { PagingEventRepository } from '../../../../core/structure/paging/src/api/paging.event-repository';\nimport { SourcePublisher } from '../../../../core/structure/source/src/api/source.publisher';\nimport { SourceEventService } from '../../../../core/structure/source/src/api/edit/source-event.service';\nimport { CompositionPublisher } from '../../../../core/composition/src/api/composition.publisher';\nimport { CompositionEventRepository } from '../../../../core/composition/src/api/composition.event-repository';\nimport { FormationEventRepository } from '../../../../core/structure/formation/src/api/formation.event-repository';\nimport { StructurePublisher } from '../../../../core/structure/structure-core/src/api/structure.publisher';\nimport { StructureWarehouse } from '../../../../core/structure/structure-core/src/api/structure.warehouse';\nimport { CompositionWarehouse } from '../../../../core/composition/src/api/composition.warehouse';\nimport { StructureColumnMenuConfigArchive } from '../header/menu/config/structure.column-menu-config.archive';\nimport { PagingDisplayModeArchive } from '../../../../feature/structure/paging/src/mode/paging-display-mode.archive';\nimport { SearchEventRepository } from '../../../../core/structure/search/src/api/search.event-repository';\nimport { StructureCellEditCloseAllService } from '../edit/structure.cell-edit-close-all.service';\nimport { SchemaReadModelRootId } from '../../../../core/schema/src/api/global/schema.read-model-root-id';\nimport { SchemaPublisher } from '../../../../core/schema/src/api/schema.publisher';\nimport { StructureHeaderBottomEnabledArchive } from '../header/structure-header-bottom-enabled.archive';\nimport { StructureHeaderTopEnabledArchive } from '../header/structure-header-top-enabled.archive';\nimport { SchemaEventRepository } from '../../../../core/schema/src/api/schema.event-repository';\nimport { StructureRowDetailConfigArchive } from '../row-detail/structure.row-detail.config-archive';\nimport { StructureRowDetailService } from '../row-detail/structure.row-detail.service';\nimport { PagingFeatureModule } from '../../../../feature/structure/paging/src/paging.feature-module';\nimport { StructureTitlePanelConfigArchive } from '../panel/banner-panels/title-panel/structure.title-panel.config-archive';\nimport { StructureFooterPanelConfigArchive } from '../panel/banner-panels/footer-panel/structure.footer-panel.config-archive';\nimport { StructureInfoPanelConfigService } from './gate/panel/info/structure.info-panel-config.service';\nimport { SortingPublisher } from '../../../../core/structure/sorting/src/api/sorting.publisher';\nimport { SearchPublisher } from '../../../../core/structure/search/src/api/search.publisher';\nimport { FieldPublisher } from '../../../../core/structure/field/src/api/field.publisher';\nimport { hermesTimer } from '@generic-ui/hermes';\nimport { ColumnFieldFactory } from '../../../../core/composition/src/domain/column/field/colum-field.factory';\nimport { FilterContainerRef } from '../../../../feature/structure/filter/src/filter-container-ref';\nimport { filterContainerToken } from '../../../../core/structure/filter/src/api/config/filter-container-token';\nimport { FormationPublisher } from '../../../../core/structure/formation/src/api/formation.publisher';\nimport { TranslationFacade } from '../../../../core/l10n/src/api/translation.facade';\nimport { TranslationFeatureModule } from '../../../../feature/l10n/src/translation.feature-module';\nimport { StyleModifier } from '../../../../feature/common/component/src/dom/style/style-modifier';\nimport { StructureInitialValuesReadyArchive } from '../../../../core/structure/structure-core/src/api/ready/structure.initial-values-ready.archive';\nimport { ColumnAutoConfigurator } from '../../../../core/composition/src/api/column/auto/column-auto.configurator';\n\n\n/** @internal */\nexport function structureIdFactoryForGrid(generator: StructureIdGenerator): StructureId {\n\treturn new StructureId('gui-grid-' + generator.generateId());\n}\n\n/** @internal */\nexport function compositionIdFactoryForGrid(generator: StructureIdGenerator): CompositionId {\n\treturn new CompositionId('gui-grid-' + generator.generateId());\n}\n\n/** @internal */\nexport function schemaIdFactoryForGrid(generator: StructureIdGenerator): SchemaReadModelRootId {\n\treturn new SchemaReadModelRootId('gui-grid-' + generator.generateId());\n}\n\n/** @internal */\n@Component({\n\tselector: 'gui-structure',\n\ttemplateUrl: './structure.component.html',\n\tstyleUrls: [\n\t\t'./style/styles.ngx.scss',\n\t\t'./style/structure.ngx.scss',\n\t\t'./style/structure-column-manager.ngx.scss',\n\t\t'./style/structure-summaries.ngx.scss',\n\t\t'./style/structure-info-modal.ngx.scss',\n\t\t'./style/structure-responsive.ngx.scss',\n\t\t'./style/structure-flex.ngx.scss',\n\t\t'./style/structure-header-menu.ngx.scss',\n\t\t'./style/structure-modal.ngx.scss',\n\t\t'../../../../feature/composition/src/style/composition.ngx.scss',\n\t\t'./style/themes/fabric.structure.ngx.scss',\n\t\t'./style/themes/material.structure.ngx.scss',\n\t\t'./style/themes/dark.structure.ngx.scss',\n\t\t'./style/themes/light.structure.ngx.scss',\n\t\t'./style/themes/generic.structure.ngx.scss'\n\t],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tencapsulation: ViewEncapsulation.None,\n\thost: {\n\t\t'[class.gui-structure-border]': 'isBorderEnabled()',\n\t\t'[id]': 'structureId.toString()'\n\t},\n\tproviders: [\n\t\t{\n\t\t\tprovide: StructureId,\n\t\t\tuseFactory: structureIdFactoryForGrid,\n\t\t\tdeps: [\n\t\t\t\tStructureIdGenerator\n\t\t\t]\n\t\t},\n\t\t{\n\t\t\tprovide: CompositionId,\n\t\t\tuseFactory: compositionIdFactoryForGrid,\n\t\t\tdeps: [\n\t\t\t\tStructureIdGenerator\n\t\t\t]\n\t\t},\n\t\t{\n\t\t\tprovide: SchemaReadModelRootId,\n\t\t\tuseFactory: schemaIdFactoryForGrid,\n\t\t\tdeps: [\n\t\t\t\tStructureIdGenerator\n\t\t\t]\n\t\t},\n\n\t\tSchemaCssClassManager,\n\t\tStructureCellEditCloseAllService,\n\t\tStructureCellEditStore,\n\t\tStructureEditModeArchive,\n\t\tStructureInfoPanelArchive,\n\t\tStructureInfoPanelConfigService,\n\n\t\tStructureColumnMenuConfigArchive,\n\n\t\tPagingFeatureModule.forComponent(),\n\t\tTranslationFeatureModule.forComponent(),\n\n\t\tStructureHeaderTopEnabledArchive,\n\t\tStructureHeaderBottomEnabledArchive,\n\t\tStructureRowDetailConfigArchive,\n\t\tStructureRowDetailService,\n\t\tStructureTitlePanelConfigArchive,\n\t\tStructureFooterPanelConfigArchive,\n\t\t{\n\t\t\tprovide: structureComponentToken,\n\t\t\tuseExisting: StructureComponent\n\t\t},\n\t\t{\n\t\t\tprovide: filterContainerToken,\n\t\t\tuseExisting: StructureComponent\n\t\t}\n\t]\n})\nexport class StructureComponent  extends StructureGateway implements OnInit, AfterViewInit, OnDestroy, FilterContainerRef {\n\n\tloaderEnabled: boolean = false;\n\n\tcircleLoaderEnabled: boolean = true;\n\n\tinitialLoaderAnimation: boolean = false;\n\n\tprivate readonly styleModifier: StyleModifier;\n\n\tconstructor(structureId: StructureId,\n\t\t\t\tcompositionId: CompositionId,\n\t\t\t\tpagingCommandService: PagingPublisher,\n\t\t\t\tpagingEventRepository: PagingEventRepository,\n\t\t\t\tsourceCommandDispatcher: SourcePublisher,\n\t\t\t\tsourceEventService: SourceEventService,\n\t\t\t\tsortingCommandDispatcher: SortingPublisher,\n\t\t\t\tsearchCommandDispatcher: SearchPublisher,\n\t\t\t\tfieldCommandDispatcher: FieldPublisher,\n\t\t\t\tschemaCommandInvoker: SchemaPublisher,\n\t\t\t\tcompositionCommandDispatcher: CompositionPublisher,\n\t\t\t\tcompositionEventRepository: CompositionEventRepository,\n\t\t\t\tformationEventService: FormationEventRepository,\n\t\t\t\tstructureCommandService: StructurePublisher,\n\t\t\t\tstructureEditModeArchive: StructureEditModeArchive,\n\t\t\t\tstructureCellEditArchive: StructureCellEditArchive,\n\t\t\t\tstructureInfoPanelArchive: StructureInfoPanelArchive,\n\t\t\t\tstructureInfoPanelConfigService: StructureInfoPanelConfigService,\n\t\t\t\tstructureCellEditStore: StructureCellEditStore,\n\t\t\t\tcolumnFieldFactory: ColumnFieldFactory,\n\t\t\t\tstructureColumnMenuConfigArchive: StructureColumnMenuConfigArchive,\n\t\t\t\tpagingDisplayModeArchive: PagingDisplayModeArchive,\n\t\t\t\tformationCommandDispatcher: FormationPublisher,\n\t\t\t\tsearchEventRepository: SearchEventRepository,\n\t\t\t\tstructureHeaderBottomEnabledArchive: StructureHeaderBottomEnabledArchive,\n\t\t\t\tstructureDetailViewConfigArchive: StructureRowDetailConfigArchive,\n\t\t\t\tstructureTitlePanelConfigArchive: StructureTitlePanelConfigArchive,\n\t\t\t\tstructureFooterPanelConfigArchive: StructureFooterPanelConfigArchive,\n\t\t\t\tschemaEventRepository: SchemaEventRepository,\n\t\t\t\ttranslationService: TranslationFacade,\n\t\t\t\tstructureInitialValuesReadyArchive: StructureInitialValuesReadyArchive,\n\t\t\t\tcolumnAutoConfigurator: ColumnAutoConfigurator,\n\t\t\t\tprivate readonly elementRef: ElementRef,\n\t\t\t\tprivate readonly detectorRef: ChangeDetectorRef,\n\t\t\t\tpublic readonly injector: Injector,\n\t\t\t\tprivate readonly structureDefinition: StructureDefinition,\n\t\t\t\tprivate readonly structureWarehouse: StructureWarehouse,\n\t\t\t\tprivate readonly compositionWarehouse: CompositionWarehouse,\n\t\t\t\tprivate readonly schemaStylesManager: SchemaCssClassManager,\n\t\t\t\tprivate readonly schemaReadModelRootId: SchemaReadModelRootId,\n\t\t\t\tprivate readonly structureDetailViewService: StructureRowDetailService) {\n\n\t\tsuper(\n\t\t\tdetectorRef,\n\t\t\telementRef,\n\t\t\tcolumnAutoConfigurator,\n\t\t\tstructureId,\n\t\t\tcompositionId,\n\t\t\tschemaReadModelRootId,\n\t\t\tstructureCommandService,\n\t\t\tpagingCommandService,\n\t\t\tpagingEventRepository,\n\t\t\tsortingCommandDispatcher,\n\t\t\tsearchCommandDispatcher,\n\t\t\tsourceCommandDispatcher,\n\t\t\tsourceEventService,\n\t\t\tschemaCommandInvoker,\n\t\t\tcompositionCommandDispatcher,\n\t\t\tcompositionEventRepository,\n\t\t\tformationEventService,\n\t\t\tstructureEditModeArchive,\n\t\t\tstructureCellEditArchive,\n\t\t\tstructureInfoPanelConfigService,\n\t\t\tstructureCellEditStore,\n\t\t\tcolumnFieldFactory,\n\t\t\tformationCommandDispatcher,\n\t\t\tsearchEventRepository,\n\t\t\tstructureHeaderBottomEnabledArchive,\n\t\t\tschemaEventRepository,\n\t\t\ttranslationService,\n\t\t\tstructureInitialValuesReadyArchive\n\t\t);\n\t\tthis.styleModifier = new StyleModifier(this.elementRef.nativeElement);\n\t\tstructureCommandService.create(this.structureId);\n\t\tcompositionCommandDispatcher.create(this.compositionId);\n\t\tschemaCommandInvoker.create(this.schemaId);\n\t}\n\n\tngOnInit() {\n\t\tsuper.ngOnInit();\n\n\t\tthis.subscribe(\n\t\t\tthis.structureWarehouse.on(this.structureId),\n\t\t\t(structureReadModelRoot: StructureReadModelRoot) => {\n\n\t\t\t\tthis.loaderEnabled = structureReadModelRoot.getSource().isLoading();\n\t\t\t\tthis.circleLoaderEnabled = structureReadModelRoot.isLoaderVisible();\n\n\t\t\t\tif (this.loaderEnabled && !this.initialLoaderAnimation) {\n\t\t\t\t\tthis.initialLoaderAnimation = true;\n\t\t\t\t}\n\n\t\t\t\tthis.detectorRef.detectChanges();\n\t\t\t}\n\t\t);\n\n\t\tthis.structureDetailViewService.init(this.elementRef);\n\t}\n\n\tngAfterViewInit() {\n\n\t\tthis.structureInitialValuesReadyArchive\n\t\t\t.next(this.structureId, true);\n\n\t\tlet width = this.elementRef.nativeElement.offsetWidth;\n\n\t\tif (width > 0) {\n\t\t\tthis.compositionCommandDispatcher.setContainerWidth(width, this.compositionId);\n\t\t} else {\n\n\t\t\t/**\n\t\t\t * When gui-grid is in dynamic container which is created later then grid.\n\t\t\t */\n\t\t\thermesTimer(0)\n\t\t\t\t.pipe(\n\t\t\t\t\tthis.takeUntil()\n\t\t\t\t)\n\t\t\t\t.subscribe(() => {\n\n\t\t\t\t\twidth = this.elementRef.nativeElement.offsetWidth;\n\n\t\t\t\t\tif (width > 0) {\n\t\t\t\t\t\tthis.compositionCommandDispatcher.setContainerWidth(width, this.compositionId);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t}\n\n\t\tthis.schemaStylesManager\n\t\t\t.init(this.elementRef, this.schemaReadModelRootId);\n\n\t\tthis.subscribeWithoutRender(\n\t\t\tthis.compositionWarehouse.onWidth(this.compositionId),\n\t\t\t(width: number) => {\n\t\t\t\tthis.styleModifier.getHost().setWidth(width);\n\t\t\t}\n\t\t);\n\n\t}\n\n\tisBorderEnabled(): boolean {\n\t\treturn this.structureDefinition.isBorderEnabled();\n\t}\n\n\tgetStructureId(): StructureId {\n\t\treturn this.structureId;\n\t}\n\n\tgetElementRef(): ElementRef {\n\t\treturn this.elementRef;\n\t}\n\n\tprotected getSelectorName(): string {\n\t\treturn 'gui-structure';\n\t}\n\n}\n","<div gui-structure-blueprint></div>\n\n<!---------- LOADING ---------->\n<div [ngClass]=\"{'gui-loader-visible': loaderEnabled, 'gui-loader-hidden': !loaderEnabled && initialLoaderAnimation}\"\n\t class=\"gui-loading\">\n\t<gui-spinner *ngIf=\"circleLoaderEnabled\"\n\t\t\t\t [diameter]=\"120\"\n\t\t\t\t [primary]=\"true\">\n\t</gui-spinner>\n</div>\n","import { Directive, Input, OnChanges } from '@angular/core';\n\nimport { Gate } from '../../../../../../../feature/common/component/src/gate';\nimport { StructureHeaderTopEnabledArchive } from '../../../../header/structure-header-top-enabled.archive';\nimport { StructureHeaderBottomEnabledArchive } from '../../../../header/structure-header-bottom-enabled.archive';\nimport { NgChanges } from '../../../../../../../feature/common/component/src/ng-changes';\n\n@Directive({\n\tselector: 'gui-structure[columnHeaderTop][columnHeaderBottom], gui-structure[columnHeaderTop], gui-structure[columnHeaderBottom]'\n})\nexport class StructureColumnHeaderGate extends Gate implements OnChanges {\n\n\t@Input()\n\tcolumnHeaderTop: boolean;\n\n\t@Input()\n\tcolumnHeaderBottom: boolean;\n\n\tconstructor(private readonly structureHeaderTopEnabledArchive: StructureHeaderTopEnabledArchive,\n\t\t\t\tprivate readonly structureHeaderBottomEnabledArchive: StructureHeaderBottomEnabledArchive) {\n\t\tsuper();\n\t}\n\n\tngOnChanges(changes: NgChanges<StructureColumnHeaderGate>) {\n\n\t\tif (this.isDefined('columnHeaderTop', changes)) {\n\t\t\tthis.structureHeaderTopEnabledArchive.next(this.columnHeaderTop);\n\t\t}\n\n\t\tif (this.isDefined('columnHeaderBottom', changes)) {\n\t\t\tthis.structureHeaderBottomEnabledArchive.next(this.columnHeaderBottom);\n\t\t}\n\t}\n\n}\n","import { Directive, EventEmitter, Input, OnChanges, OnInit, Output } from '@angular/core';\n\nimport { Gate } from '../../../../common/component/src/gate';\nimport { PagingConfig } from '../../../../../core/structure/paging/src/api/config/paging-config';\nimport { StructureId } from '../../../../../core/structure/structure-core/src/api/global/structure.id';\nimport { PagingPublisher } from '../../../../../core/structure/paging/src/api/paging.publisher';\nimport { PagingEventRepository } from '../../../../../core/structure/paging/src/api/paging.event-repository';\nimport { NgChanges } from '../../../../common/component/src/ng-changes';\nimport { CompositionId } from '../../../../../core/composition/src/api/global/composition.id';\n\n@Directive()\nexport abstract class PagingGate extends Gate implements OnChanges, OnInit {\n\n\t@Input()\n\tpaging: boolean | PagingConfig;\n\n\t@Output()\n\tpageChanged: EventEmitter<number> = new EventEmitter<number>();\n\n\t@Output()\n\tpageSizeChanged: EventEmitter<number> = new EventEmitter<number>();\n\n\tprotected constructor(protected readonly structureId: StructureId,\n\t\t\t\t\t\t  protected readonly compositionId: CompositionId,\n\t\t\t\t\t\t  protected readonly pagingCommandInvoker: PagingPublisher,\n\t\t\t\t\t\t  protected readonly pagingEventRepository: PagingEventRepository) {\n\t\tsuper();\n\t}\n\n\tngOnChanges(changes: NgChanges<PagingGate>) {\n\n\t\tif (this.isDefined('paging', changes)) {\n\n\t\t\tlet pagingConfig: PagingConfig;\n\n\t\t\tif (typeof this.paging === 'boolean') {\n\t\t\t\tpagingConfig = {\n\t\t\t\t\tenabled: this.paging\n\t\t\t\t};\n\t\t\t} else {\n\t\t\t\tpagingConfig = this.paging;\n\t\t\t}\n\n\t\t\tthis.pagingCommandInvoker.setPaging(pagingConfig, this.compositionId);\n\t\t}\n\t}\n\n\tngOnInit() {\n\n\t\tthis.subscribeAndEmit(\n\t\t\tthis.pagingEventRepository.onPageChange(this.structureId.toReadModelRootId()),\n\t\t\tthis.pageChanged\n\t\t);\n\n\t\tthis.subscribeAndEmit(\n\t\t\tthis.pagingEventRepository.onPageSizeChange(this.structureId.toReadModelRootId()),\n\t\t\tthis.pageSizeChanged\n\t\t);\n\t}\n\n\tonPageChange(page: number): void {\n\t\tthis.pageChanged.emit(page);\n\t}\n\n}\n","import { Directive } from '@angular/core';\n\nimport { PagingPublisher } from '../../../../../../core/structure/paging/src/api/paging.publisher';\nimport { PagingEventRepository } from '../../../../../../core/structure/paging/src/api/paging.event-repository';\nimport { StructureId } from '../../../../../../core/structure/structure-core/src/api/global/structure.id';\nimport { PagingGate } from '../../../../../../feature/structure/paging/src/gate/paging.gate';\nimport { PagingConfig } from '../../../../../../core/structure/paging/src/api/config/paging-config';\nimport { PagingDisplayModeArchive } from '../../../../../../feature/structure/paging/src/mode/paging-display-mode.archive';\nimport { NgChanges } from '../../../../../../feature/common/component/src/ng-changes';\nimport { CompositionId } from '../../../../../../core/composition/src/api/global/composition.id';\n\n\n@Directive({\n\tselector: 'gui-structure[paging]'\n})\nexport class StructurePagingGate extends PagingGate {\n\n\tconstructor(structureId: StructureId,\n\t\t\t\tcompositionId: CompositionId,\n\t\t\t\tpagingPublisher: PagingPublisher,\n\t\t\t\tpagingEventRepository: PagingEventRepository,\n\t\t\t\tprivate readonly pagingDisplayModeArchive: PagingDisplayModeArchive) {\n\t\tsuper(structureId, compositionId, pagingPublisher, pagingEventRepository);\n\t}\n\n\toverride ngOnChanges(changes: NgChanges<StructurePagingGate>) {\n\n\t\tif (this.isDefined('paging', changes)) {\n\n\t\t\tlet pagingConfig: PagingConfig;\n\n\t\t\tif (typeof this.paging === 'boolean') {\n\t\t\t\tpagingConfig = {\n\t\t\t\t\tenabled: this.paging\n\t\t\t\t};\n\t\t\t} else {\n\t\t\t\tpagingConfig = this.paging;\n\n\t\t\t\tif (this.paging.displayMode !== undefined) {\n\t\t\t\t\tthis.pagingDisplayModeArchive.next(this.paging.displayMode);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthis.pagingCommandInvoker.setPaging(pagingConfig, this.structureId);\n\t\t}\n\t}\n\n}\n","import { Directive, EventEmitter, Input, OnChanges, OnInit, Output } from '@angular/core';\n\nimport { Gate } from '../../../../common/component/src/gate';\nimport { StructureId } from '../../../../../core/structure/structure-core/src/api/global/structure.id';\nimport { SearchConfig } from '../../../../../core/structure/search/src/api/config/search-config';\nimport { SearchEventRepository } from '../../../../../core/structure/search/src/api/search.event-repository';\nimport { SearchPublisher } from '../../../../../core/structure/search/src/api/search.publisher';\nimport { NgChanges } from '../../../../common/component/src/ng-changes';\n\n@Directive()\nexport abstract class SearchingGate extends Gate implements OnChanges, OnInit {\n\n\t@Input()\n\tsearching: boolean | SearchConfig;\n\n\t@Output()\n\tsearchPhraseChanged: EventEmitter<string> = new EventEmitter();\n\n\tprotected constructor(protected readonly structureId: StructureId,\n\t\t\t\t\t\t  protected readonly searchEventRepository: SearchEventRepository,\n\t\t\t\t\t\t  protected readonly searchCommandInvoker: SearchPublisher) {\n\t\tsuper();\n\t}\n\n\tngOnChanges(changes: NgChanges<SearchingGate>) {\n\n\t\tif (this.isDefined('searching', changes)) {\n\n\t\t\tlet searching: SearchConfig;\n\n\t\t\tif (typeof this.searching === 'boolean') {\n\t\t\t\tsearching = {\n\t\t\t\t\tenabled: this.searching\n\t\t\t\t};\n\t\t\t} else {\n\t\t\t\tsearching = this.searching;\n\t\t\t}\n\n\t\t\tthis.searchCommandInvoker.setSearchingConfig(searching, this.structureId);\n\t\t}\n\t}\n\n\tngOnInit() {\n\n\t\tthis.subscribeAndEmit(\n\t\t\tthis.searchEventRepository.onSearchPhrase(this.structureId.toReadModelRootId()),\n\t\t\tthis.searchPhraseChanged\n\t\t);\n\t}\n\n}\n","import { Directive } from '@angular/core';\n\nimport { StructureId } from '../../../../../../core/structure/structure-core/src/api/global/structure.id';\nimport { SearchingGate } from '../../../../../../feature/structure/search/src/gate/searching.gate';\nimport { SearchEventRepository } from '../../../../../../core/structure/search/src/api/search.event-repository';\nimport { SearchPublisher } from '../../../../../../core/structure/search/src/api/search.publisher';\n\n\n@Directive({\n\tselector: 'gui-structure[searching]'\n})\nexport class StructureSearchingGate extends SearchingGate {\n\n\tconstructor(structureId: StructureId,\n\t\t\t\tsearchEventRepository: SearchEventRepository,\n\t\t\t\tsearchCommandInvoker: SearchPublisher) {\n\t\tsuper(structureId, searchEventRepository, searchCommandInvoker);\n\t}\n\n}\n","import { Directive, EventEmitter, Input, OnChanges, OnDestroy, OnInit, Output } from '@angular/core';\n\nimport { Gate } from '../../../../common/component/src/gate';\nimport { StructureId } from '../../../../../core/structure/structure-core/src/api/global/structure.id';\nimport { RowSelection } from '../../../../../core/structure/formation/src/api/row-selected/row-selection';\nimport { SelectedRow } from '../../../../../core/structure/formation/src/api/row-selected/selected-row';\nimport { FormationEventRepository } from '../../../../../core/structure/formation/src/api/formation.event-repository';\nimport { FormationPublisher } from '../../../../../core/structure/formation/src/api/formation.publisher';\nimport { NgChanges } from '../../../../common/component/src/ng-changes';\nimport { hermesMap } from '@generic-ui/hermes';\n\n\n@Directive()\nexport abstract class SelectionGate extends Gate implements OnChanges, OnInit {\n\n\t@Input()\n\trowSelection: RowSelection;\n\n\t@Output()\n\titemsSelected: EventEmitter<any> = new EventEmitter();\n\n\t@Output()\n\tselectedRows: EventEmitter<Array<SelectedRow>> = new EventEmitter();\n\n\tprotected constructor(protected readonly structureId: StructureId,\n\t\t\t\t\t\t  protected readonly formationEventRepository: FormationEventRepository,\n\t\t\t\t\t\t  protected readonly formationPublisher: FormationPublisher) {\n\t\tsuper();\n\t}\n\n\tngOnChanges(changes: NgChanges<SelectionGate>) {\n\n\t\tif (this.isDefined('rowSelection', changes)) {\n\n\t\t\tif (this.rowSelection.isEnabledDefined()) {\n\t\t\t\tthis.formationPublisher.setSelection(this.rowSelection.isEnabled(), this.structureId);\n\t\t\t}\n\n\t\t\tif (this.rowSelection.isTypeDefined()) {\n\t\t\t\tthis.formationPublisher.changeType(this.rowSelection.getType(), this.structureId);\n\t\t\t}\n\n\t\t\tif (this.rowSelection.isModeDefined()) {\n\t\t\t\tthis.formationPublisher.changeMode(this.rowSelection.getMode(), this.structureId);\n\t\t\t}\n\n\t\t\tif (this.rowSelection.isMatcherDefined()) {\n\t\t\t\tthis.formationPublisher.setMatcher(this.rowSelection.getMatcher(), this.structureId);\n\t\t\t}\n\n\t\t\tif (this.rowSelection.isSelectedRowIndexesDefined()) {\n\t\t\t\tthis.formationPublisher.selectByIndex(this.rowSelection.getSelectedRowIndexes(), this.structureId);\n\t\t\t}\n\n\t\t\tif (this.rowSelection.isSelectedRowIdsDefined()) {\n\t\t\t\tthis.formationPublisher.selectByIds(this.rowSelection.getSelectedRowIds(), this.structureId);\n\t\t\t}\n\n\t\t\tif (this.rowSelection.isCustomSelectConfig()) {\n\t\t\t\tthis.formationPublisher.setCustomSelection(this.rowSelection.getCustomSelectConfig(), this.structureId);\n\t\t\t}\n\t\t}\n\t}\n\n\tngOnInit() {\n\n\t\tthis.subscribeAndEmit(\n\t\t\tthis.formationEventRepository.onItemSelected(this.structureId),\n\t\t\tthis.selectedRows\n\t\t);\n\n\t\tthis.subscribeAndEmit(\n\t\t\tthis.selectItemsSelected(),\n\t\t\tthis.itemsSelected\n\t\t);\n\t}\n\n\tprivate selectItemsSelected() {\n\t\treturn this.formationEventRepository\n\t\t\t\t   .onItemSelected(this.structureId)\n\t\t\t\t   .pipe(\n\t\t\t\t\t   hermesMap((items: Array<SelectedRow>) => {\n\t\t\t\t\t\t   return items.map(i => i.getItem());\n\t\t\t\t\t   })\n\t\t\t\t   );\n\t}\n\n}\n","import { Directive, Input } from '@angular/core';\n\nimport { StructureId } from '../../../../../../core/structure/structure-core/src/api/global/structure.id';\nimport { SelectionGate } from '../../../../../../feature/structure/formation/src/gate/selection.gate';\nimport { FormationEventRepository } from '../../../../../../core/structure/formation/src/api/formation.event-repository';\nimport { FormationPublisher } from '../../../../../../core/structure/formation/src/api/formation.publisher';\n\n\n@Directive({\n\tselector: 'gui-structure[rowSelection], gui-structure[selectionGate]'\n})\nexport class StructureSelectionGate extends SelectionGate {\n\n\t@Input()\n\tselectionGate: void;\n\n\tconstructor(structureId: StructureId,\n\t\t\t\tformationEventService: FormationEventRepository,\n\t\t\t\tformationCommandDispatcher: FormationPublisher) {\n\t\tsuper(structureId, formationEventService, formationCommandDispatcher);\n\t}\n\n}\n","import { Directive, Input, OnChanges } from '@angular/core';\n\nimport { Gate } from '../../../../../../feature/common/component/src/gate';\nimport { GuiLocalization } from '../../../../../../gui/grid/src/core/api/gui.grid.public-api';\nimport { TranslationFacade } from '../../../../../../core/l10n/src/api/translation.facade';\nimport { NgChanges } from '../../../../../../feature/common/component/src/ng-changes';\n\n@Directive({\n\tselector: 'gui-structure[localization]'\n})\nexport class StructureL10nGate extends Gate implements OnChanges {\n\n\t@Input()\n\tlocalization: GuiLocalization;\n\n\tconstructor(private readonly translationService: TranslationFacade) {\n\t\tsuper();\n\t}\n\n\tngOnChanges(changes: NgChanges<StructureL10nGate>) {\n\n\t\tif (this.isDefined('localization', changes)) {\n\t\t\tif (this.localization.translationResolver) {\n\t\t\t\tthis.translationService.setResolver(this.localization.translationResolver);\n\t\t\t}\n\n\t\t\tif (this.localization.translation) {\n\t\t\t\tthis.translationService.changeTranslation(this.localization.translation);\n\t\t\t}\n\t\t}\n\t}\n\n}\n","import { Directive, Input, OnChanges } from '@angular/core';\n\nimport { Gate } from '../../../../../../feature/common/component/src/gate';\nimport { StructureTitlePanelConfigArchive } from '../../../panel/banner-panels/title-panel/structure.title-panel.config-archive';\nimport { StructureFooterPanelConfigArchive } from '../../../panel/banner-panels/footer-panel/structure.footer-panel.config-archive';\nimport { NgChanges } from '../../../../../../feature/common/component/src/ng-changes';\nimport { StructureBannerPanelConfig } from '../../../panel/banner-panels/structure-banner-panel.config';\n\n@Directive({\n\tselector: 'gui-structure[titlePanel][footerPanel]'\n})\nexport class StructurePanelGate extends Gate implements OnChanges {\n\n\t@Input()\n\ttitlePanel: StructureBannerPanelConfig;\n\n\t@Input()\n\tfooterPanel: StructureBannerPanelConfig;\n\n\tconstructor(private readonly structureTitlePanelConfigArchive: StructureTitlePanelConfigArchive,\n\t\t\t\tprivate readonly structureFooterPanelConfigArchive: StructureFooterPanelConfigArchive) {\n\t\tsuper();\n\t}\n\n\tngOnChanges(changes: NgChanges<StructurePanelGate>) {\n\n\t\tif (this.isDefined('titlePanel', changes)) {\n\t\t\tthis.structureTitlePanelConfigArchive.next(this.titlePanel);\n\t\t}\n\n\t\tif (this.isDefined('footerPanel', changes)) {\n\t\t\tthis.structureFooterPanelConfigArchive.next(this.footerPanel);\n\t\t}\n\t}\n\n}\n","import { Directive, Input, OnChanges } from '@angular/core';\n\nimport { RowDetailConfig } from '../../../../row-detail/row-detail.config';\nimport { Gate } from '../../../../../../../feature/common/component/src/gate';\nimport { StructureRowDetailConfigArchive } from '../../../../row-detail/structure.row-detail.config-archive';\nimport { NgChanges } from '../../../../../../../feature/common/component/src/ng-changes';\n\n@Directive({\n\tselector: 'gui-structure[rowDetail]'\n})\nexport class StructureRowDetailGate extends Gate implements OnChanges {\n\n\t@Input()\n\trowDetail: RowDetailConfig;\n\n\tconstructor(private readonly structureDetailViewConfigArchive: StructureRowDetailConfigArchive) {\n\t\tsuper();\n\t}\n\n\tngOnChanges(changes: NgChanges<StructureRowDetailGate>) {\n\n\t\tif (this.isDefined('rowDetail', changes)) {\n\t\t\tthis.structureDetailViewConfigArchive.next(this.rowDetail);\n\t\t}\n\t}\n\n}\n","import { Directive, Input, OnChanges } from '@angular/core';\n\nimport { ColumnMenuConfig } from '../../../../../../../core/structure/structure-core/src/api/config/column-menu-config';\nimport { StructureColumnMenuConfigArchive } from '../../../../header/menu/config/structure.column-menu-config.archive';\nimport { Gate } from '../../../../../../../feature/common/component/src/gate';\nimport { NgChanges } from '../../../../../../../feature/common/component/src/ng-changes';\n\n@Directive({\n\tselector: 'gui-structure[columnMenu]'\n})\nexport class StructureColumnMenuGate extends Gate implements OnChanges {\n\n\t@Input()\n\tcolumnMenu: ColumnMenuConfig;\n\n\tconstructor(private readonly structureColumnMenuConfigArchive: StructureColumnMenuConfigArchive) {\n\t\tsuper();\n\t}\n\n\tngOnChanges(changes: NgChanges<StructureColumnMenuGate>) {\n\n\t\tif (this.isDefined('columnMenu', changes)) {\n\t\t\tthis.structureColumnMenuConfigArchive.nextConfig(this.columnMenu);\n\t\t}\n\t}\n\n}\n","import { Directive, Input, OnChanges } from '@angular/core';\n\nimport { Gate } from '../../../../common/component/src/gate';\nimport { SummariesConfig } from '../../../../../core/structure/summaries/src/api/config/summaries-config';\nimport { NgChanges } from '../../../../common/component/src/ng-changes';\nimport { SummariesPublisher } from '../../../../../core/structure/summaries/src/api/summaries.publisher';\nimport { StructureId } from '../../../../../core/structure/structure-core/src/api/global/structure.id';\nimport { ifChanged } from '../../../../common/component/src/check.input';\n\n\n@Directive({\n\tselector: 'gui-structure[summaries]'\n})\nexport class StructureSummariesGate extends Gate implements OnChanges {\n\n\t@Input()\n\tsummaries: SummariesConfig;\n\n\tconstructor(private readonly structureId: StructureId,\n\t\t\t\tprivate readonly summariesCommandInvoker: SummariesPublisher) {\n\t\tsuper();\n\t}\n\n\tngOnChanges(changes: NgChanges<StructureSummariesGate>) {\n\n\t\tifChanged(changes.summaries, () => {\n\t\t\tthis.summariesCommandInvoker.setConfig(this.summaries, this.structureId);\n\t\t});\n\t}\n\n}\n","import { Directive, Input, OnChanges } from '@angular/core';\n\nimport { InfoPanelConfig } from '../../../../../../../core/structure/structure-core/src/api/panel/info/info-panel.config';\nimport { Gate } from '../../../../../../../feature/common/component/src/gate';\nimport { StructureInfoPanelConfigService } from './structure.info-panel-config.service';\nimport { NgChanges } from '../../../../../../../feature/common/component/src/ng-changes';\n\n\n@Directive({\n\tselector: 'gui-structure[infoPanel]'\n})\nexport class StructureInfoPanelGate extends Gate implements OnChanges {\n\n\t@Input()\n\tinfoPanel: boolean | InfoPanelConfig;\n\n\tconstructor(protected readonly structureInfoPanelConfigService: StructureInfoPanelConfigService) {\n\t\tsuper();\n\t}\n\n\tngOnChanges(changes: NgChanges<StructureInfoPanelGate>) {\n\n\t\tif (this.isDefined('infoPanel', changes)) {\n\t\t\tif (typeof this.infoPanel === 'boolean') {\n\t\t\t\tthis.infoPanel = {\n\t\t\t\t\tenabled: this.infoPanel\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tthis.structureInfoPanelConfigService.set(this.infoPanel);\n\t\t}\n\n\t}\n\n}\n","import { Directive, Input, OnChanges } from '@angular/core';\nimport { Gate } from '../../../../../../../feature/common/component/src/gate';\nimport { GuiRowClass } from '../../../../../../../gui/grid/src/core/api/gui.grid.public-api';\nimport { SchemaRowClass } from '../../../../../../../core/schema/src/api/styling/schema.row-class';\nimport { NgChanges } from '../../../../../../../feature/common/component/src/ng-changes';\nimport { SchemaPublisher } from '../../../../../../../core/schema/src/api/schema.publisher';\nimport { SchemaReadModelRootId } from '../../../../../../../core/schema/src/api/global/schema.read-model-root-id';\n\n@Directive({\n\tselector: 'gui-structure[rowClass]'\n})\nexport class StructureRowClassGate extends Gate implements OnChanges {\n\n\t@Input()\n\trowClass: GuiRowClass;\n\n\tconstructor(private readonly schemaReadModelRootId: SchemaReadModelRootId,\n\t\t\t\tprivate readonly schemaPublisher: SchemaPublisher) {\n\t\tsuper();\n\t}\n\n\tngOnChanges(changes: NgChanges<StructureRowClassGate>) {\n\n\t\tif (this.isDefined('rowClass', changes)) {\n\t\t\tthis.schemaPublisher.setRowClass(this.rowClass as SchemaRowClass, this.schemaReadModelRootId);\n\t\t}\n\t}\n\n}\n","import { Directive, Input, OnChanges } from '@angular/core';\nimport { Gate } from '../../../../../../../feature/common/component/src/gate';\nimport { GuiRowStyle } from '../../../../../../../gui/grid/src/core/api/gui.grid.public-api';\nimport { SchemaRowStyle } from '../../../../../../../core/schema/src/api/styling/schema.row-style';\nimport { NgChanges } from '../../../../../../../feature/common/component/src/ng-changes';\nimport { SchemaReadModelRootId } from '../../../../../../../core/schema/src/api/global/schema.read-model-root-id';\nimport { SchemaPublisher } from '../../../../../../../core/schema/src/api/schema.publisher';\n\n@Directive({\n\tselector: 'gui-structure[rowStyle]'\n})\nexport class StructureRowStyleGate extends Gate implements OnChanges {\n\n\t@Input()\n\trowStyle: GuiRowStyle;\n\n\tconstructor(private readonly schemaReadModelRootId: SchemaReadModelRootId,\n\t\t\t\tprivate readonly schemaPublisher: SchemaPublisher) {\n\t\tsuper();\n\t}\n\n\tngOnChanges(changes: NgChanges<StructureRowStyleGate>) {\n\n\t\tif (this.isDefined('rowStyle', changes)) {\n\t\t\tthis.schemaPublisher.setRowStyle(this.rowStyle as SchemaRowStyle, this.schemaReadModelRootId);\n\t\t}\n\t}\n\n}\n","import { Directive, EventEmitter, Input, OnChanges, OnDestroy, OnInit, Output } from '@angular/core';\n\nimport { Gate } from '../../../../../../../feature/common/component/src/gate';\nimport { RowColoring } from '../../../../../../../core/schema/src/api/row-coloring/row-coloring';\nimport { SchemaRowColoring } from '../../../../../../../core/schema/src/api/row-coloring/schema-row-coloring';\nimport { SchemaPublisher } from '../../../../../../../core/schema/src/api/schema.publisher';\nimport { SchemaEventRepository } from '../../../../../../../core/schema/src/api/schema.event-repository';\nimport { SchemaReadModelRootId } from '../../../../../../../core/schema/src/api/global/schema.read-model-root-id';\nimport { NgChanges } from '../../../../../../../feature/common/component/src/ng-changes';\n\n@Directive({\n\tselector: 'gui-structure[rowColoring]'\n})\nexport class StructureRowColoringGate extends Gate implements OnChanges, OnInit, OnDestroy {\n\n\t@Input()\n\trowColoring: RowColoring;\n\n\t@Output()\n\trowColoringChanged: EventEmitter<SchemaRowColoring> = new EventEmitter();\n\n\tconstructor(private readonly schemaId: SchemaReadModelRootId,\n\t\t\t\tprivate readonly schemaCommandInvoker: SchemaPublisher,\n\t\t\t\tprivate readonly schemaEventRepository: SchemaEventRepository) {\n\t\tsuper();\n\t}\n\n\tngOnChanges(changes: NgChanges<StructureRowColoringGate>) {\n\n\t\tif (this.isDefined('rowColoring', changes)) {\n\t\t\tthis.schemaCommandInvoker.setRowColoring(this.rowColoring, this.schemaId);\n\t\t}\n\t}\n\n\tngOnInit() {\n\n\t\tthis.subscribeAndEmit(\n\t\t\tthis.schemaEventRepository.onRowColoring(this.schemaId),\n\t\t\tthis.rowColoringChanged\n\t\t);\n\t}\n\n\tngOnDestroy() {\n\t\tsuper.ngOnDestroy();\n\t}\n}\n","import { Gate } from '../../../../common/component/src/gate';\nimport { SchemaPublisher } from '../../../../../core/schema/src/api/schema.publisher';\nimport { SchemaEventRepository } from '../../../../../core/schema/src/api/schema.event-repository';\nimport { SchemaReadModelRootId } from '../../../../../core/schema/src/api/global/schema.read-model-root-id';\nimport { NgChanges } from '../../../../common/component/src/ng-changes';\nimport { Directive, EventEmitter, Input, OnChanges, Output } from '@angular/core';\n\n\n@Directive({\n\tselector: 'gui-structure[verticalGrid][horizontalGrid]'\n})\nexport class ThemeGridGate extends Gate implements OnChanges {\n\n\t@Input()\n\tverticalGrid?: boolean;\n\n\t@Input()\n\thorizontalGrid?: boolean;\n\n\t@Output()\n\thorizontalGridChanged: EventEmitter<boolean> = new EventEmitter();\n\n\t@Output()\n\tverticalGridChanged: EventEmitter<boolean> = new EventEmitter();\n\n\tconstructor(private readonly schemaId: SchemaReadModelRootId,\n\t\t\t\tprivate readonly schemaCommandInvoker: SchemaPublisher,\n\t\t\t\tprivate readonly schemaEventRepository: SchemaEventRepository) {\n\t\tsuper();\n\n\t\tthis.subscribeAndEmit(\n\t\t\tthis.schemaEventRepository.onHorizontalGridChanged(this.schemaId),\n\t\t\tthis.horizontalGridChanged\n\t\t);\n\n\t\tthis.subscribeAndEmit(\n\t\t\tthis.schemaEventRepository.onVerticalGridChanged(this.schemaId),\n\t\t\tthis.verticalGridChanged\n\t\t);\n\t}\n\n\tngOnChanges(changes: NgChanges<ThemeGridGate>): void {\n\n\t\tif (this.isDefined('verticalGrid', changes)) {\n\t\t\tthis.schemaCommandInvoker.setVerticalGrid(this.verticalGrid, this.schemaId);\n\t\t}\n\n\t\tif (this.isDefined('horizontalGrid', changes)) {\n\t\t\tthis.schemaCommandInvoker.setHorizontalGrid(this.horizontalGrid, this.schemaId);\n\t\t}\n\t}\n\n}\n","import { Directive, Input, OnChanges } from '@angular/core';\n\nimport { StructureId } from '../../../../../core/structure/structure-core/src/api/global/structure.id';\nimport { Gate } from '../../../../common/component/src/gate';\nimport { SortingConfig } from '../../../../../core/structure/sorting/src/api/config/sorting-config';\nimport { NgChanges } from '../../../../common/component/src/ng-changes';\nimport { SortingPublisher } from '../../../../../core/structure/sorting/src/api/sorting.publisher';\nimport { ifChanged } from '../../../../common/component/src/check.input';\n\n\n@Directive({\n\tselector: 'gui-structure[sorting]'\n})\nexport class StructureSortingGate extends Gate implements OnChanges {\n\n\t@Input()\n\tsorting: boolean | SortingConfig;\n\n\tconstructor(private readonly structureId: StructureId,\n\t\t\t\tprivate readonly sortingCommandInvoker: SortingPublisher) {\n\t\tsuper();\n\t}\n\n\tngOnChanges(changes: NgChanges<StructureSortingGate>) {\n\n\t\tifChanged(changes.sorting, () => {\n\n\t\t\tlet sorting: SortingConfig;\n\n\t\t\tif (typeof this.sorting === 'boolean') {\n\t\t\t\tsorting = {\n\t\t\t\t\tenabled: this.sorting\n\t\t\t\t};\n\t\t\t} else {\n\t\t\t\tsorting = this.sorting;\n\t\t\t}\n\n\t\t\tthis.sortingCommandInvoker.setSortingConfig(sorting, this.structureId);\n\t\t});\n\t}\n}\n","import { Directive, Input, OnChanges, OnInit } from '@angular/core';\nimport { Gate } from '../../../../../../feature/common/component/src/gate';\nimport { SourcePublisher } from '../../../../../../core/structure/source/src/api/source.publisher';\nimport { NgChanges } from '../../../../../../feature/common/component/src/ng-changes';\nimport { StructureId } from '../../../../../../core/structure/structure-core/src/api/global/structure.id';\n\n\n@Directive({\n\tselector: 'gui-structure[loading]'\n})\nexport class SourceLoadingGate extends Gate implements OnChanges, OnInit {\n\n\t@Input()\n\tloading: boolean;\n\n\tconstructor(private readonly structureId: StructureId,\n\t\t\t\tprivate readonly sourceCommandInvoker: SourcePublisher) {\n\t\tsuper();\n\t}\n\n\tngOnChanges(changes: NgChanges<SourceLoadingGate>): void {\n\n\n\t\tif (this.isDefined('loading', changes)) {\n\t\t\tthis.sourceCommandInvoker.setLoading(this.loading, this.structureId);\n\t\t}\n\t}\n\n\tngOnInit() {\n\t}\n}\n","import { Directive, Input, OnChanges } from '@angular/core';\n\nimport { Gate } from '../../../../common/component/src/gate';\nimport { NgChanges } from '../../../../common/component/src/ng-changes';\nimport { FilterConfig } from '../../../../../core/structure/filter/src/api/config/filter.config';\nimport { StructurePublisher } from '../../../../../core/structure/structure-core/src/api/structure.publisher';\nimport { StructureId } from '../../../../../core/structure/structure-core/src/api/global/structure.id';\nimport { ifChanged } from '../../../../common/component/src/check.input';\n\n@Directive({\n\tselector: 'gui-structure[filtering]'\n})\nexport class StructureFilterGate extends Gate implements OnChanges {\n\n\t@Input()\n\tfiltering: boolean | FilterConfig;\n\n\tconstructor(private readonly structureId: StructureId,\n\t\t\t\tprivate readonly structureCommandInvoker: StructurePublisher) {\n\t\tsuper();\n\t}\n\n\tngOnChanges(changes: NgChanges<StructureFilterGate>) {\n\n\t\tifChanged(changes.filtering, () => {\n\n\t\t\tlet filtering: FilterConfig;\n\n\t\t\tif (typeof this.filtering === 'boolean') {\n\t\t\t\tfiltering = {\n\t\t\t\t\tenabled: this.filtering\n\t\t\t\t};\n\t\t\t} else {\n\t\t\t\tfiltering = this.filtering;\n\t\t\t}\n\n\t\t\tthis.structureCommandInvoker.setFilterConfig(filtering, this.structureId);\n\t\t});\n\t}\n\n}\n","import { Directive, Input, OnChanges } from '@angular/core';\n\nimport { Gate } from '../../../../common/component/src/gate';\nimport { NgChanges } from '../../../../common/component/src/ng-changes';\nimport { StructurePublisher } from '../../../../../core/structure/structure-core/src/api/structure.publisher';\nimport { QuickFiltersConfig } from '../../../../../core/structure/filter/src/api/quick-filter/quick-filters.config';\nimport { StructureId } from '../../../../../core/structure/structure-core/src/api/global/structure.id';\nimport { ifChanged } from '../../../../common/component/src/check.input';\n\n@Directive({\n\tselector: 'gui-structure[quickFilters]'\n})\nexport class StructureQuickFiltersGate extends Gate implements OnChanges {\n\n\t@Input()\n\tquickFilters: boolean | QuickFiltersConfig;\n\n\tconstructor(private readonly structureId: StructureId,\n\t\t\t\tprivate readonly structureCommandInvoker: StructurePublisher) {\n\t\tsuper();\n\t}\n\n\tngOnChanges(changes: NgChanges<StructureQuickFiltersGate>) {\n\n\t\tifChanged(changes.quickFilters, () => {\n\n\t\t\tlet quickFilters: QuickFiltersConfig;\n\n\t\t\tif (typeof this.quickFilters === 'boolean') {\n\t\t\t\tquickFilters = {\n\t\t\t\t\tenabled: this.quickFilters\n\t\t\t\t};\n\t\t\t} else {\n\t\t\t\tquickFilters = this.quickFilters;\n\t\t\t}\n\n\t\t\tthis.structureCommandInvoker.setQuickFiltersConfig(quickFilters, this.structureId);\n\t\t});\n\n\t}\n\n}\n","import { Gate } from '../../../../common/component/src/gate';\nimport { NgChanges } from '../../../../common/component/src/ng-changes';\nimport { StructurePublisher } from '../../../../../core/structure/structure-core/src/api/structure.publisher';\nimport { Directive, Input, OnChanges } from '@angular/core';\nimport { StructureId } from '../../../../../core/structure/structure-core/src/api/global/structure.id';\n\n@Directive({\n\tselector: 'gui-structure[virtualScroll]'\n})\nexport class VerticalFormationGate extends Gate implements OnChanges {\n\n\t@Input()\n\tvirtualScroll: boolean;\n\n\tconstructor(private readonly structureId: StructureId,\n\t\t\t\tprivate readonly structureCommandInvoker: StructurePublisher) {\n\t\tsuper();\n\t}\n\n\tngOnChanges(changes: NgChanges<VerticalFormationGate>): void {\n\n\t\tif (this.isDefined('virtualScroll', changes)) {\n\t\t\tif (this.virtualScroll) {\n\t\t\t\tthis.structureCommandInvoker.enableVirtualScroll(this.structureId);\n\t\t\t} else {\n\t\t\t\tthis.structureCommandInvoker.disableVirtualScroll(this.structureId);\n\t\t\t}\n\t\t}\n\t}\n\n}\n","import { ChangeDetectorRef, Component, ElementRef, Inject, Input, OnDestroy, OnInit, PLATFORM_ID, ViewChild, ViewEncapsulation } from '@angular/core';\nimport { isPlatformBrowser } from '@angular/common';\n\nimport { GuiGridGateway } from './gui.grid-gateway';\n\nimport { structureParentComponent } from '../../../../feature-view/grid-view/src/structure/parent/structure-parent-component';\nimport { GuiGridRegister } from './register/gui.grid.register';\nimport { GuiGridApi, GuiGridApiProvider } from './api/gui.grid.api-provider';\nimport { FormationPublisher } from '../../../../core/structure/formation/src/api/formation.publisher';\nimport { SourcePublisher } from '../../../../core/structure/source/src/api/source.publisher';\nimport { FormationWarehouse } from '../../../../core/structure/formation/src/api/formation.warehouse';\nimport { SearchPublisher } from '../../../../core/structure/search/src/api/search.publisher';\nimport { GuiGridThemeCommandInvoker } from './theme/gui.grid.theme.command-invoker';\nimport { SchemaPublisher } from '../../../../core/schema/src/api/schema.publisher';\nimport { StructurePublisher } from '../../../../core/structure/structure-core/src/api/structure.publisher';\nimport { ClassModifier } from '../../../../feature/common/component/src/dom/class/class-modifier';\nimport { AttributeModifier } from '../../../../feature/common/component/src/dom/attribute/attribute-modifier';\nimport { PagingPublisher } from '../../../../core/structure/paging/src/api/paging.publisher';\nimport { SummariesPublisher } from '../../../../core/structure/summaries/src/api/summaries.publisher';\nimport { SortingPublisher } from '../../../../core/structure/sorting/src/api/sorting.publisher';\nimport { StructureDefinition } from '../../../../feature-view/grid-view/src/structure/structure-definition';\nimport { guiGridStructureDefinition } from './gui.grid-structure-definition';\nimport { CompositionPublisher } from '../../../../core/composition/src/api/composition.publisher';\nimport { CompositionWarehouse } from '../../../../core/composition/src/api/composition.warehouse';\nimport { FilterIntegration } from '../../../../core/structure/filter/src/api-integration/filter.integration';\nimport { StructureIdGenerator } from '../../../../feature-view/grid-view/src/structure/structure-id.generator';\n\n@Component({\n\tselector: 'gui-grid',\n\ttemplateUrl: './gui.grid.component.html',\n\tstyleUrls: [\n\t\t'./gui.grid.ngx.scss'\n\t],\n\tproviders: [\n\t\t{\n\t\t\tprovide: StructureDefinition,\n\t\t\tuseValue: guiGridStructureDefinition\n\t\t},\n\t\t{\n\t\t\tprovide: structureParentComponent,\n\t\t\tuseExisting: GuiGridComponent\n\t\t}\n\t],\n\tencapsulation: ViewEncapsulation.None\n})\nexport class GuiGridComponent extends GuiGridGateway implements OnInit, OnDestroy {\n\n\tprivate static readonly GUI_GRID_ID = 'gui-grid-id';\n\n\t@ViewChild('structure', { static: true })\n\tstructureRef: any;\n\n\t@Input()\n\tgridId: string; // can be set once\n\n\tpublic api: GuiGridApi;\n\n\tprivate localGridId: string;\n\n\tprivate readonly gridThemeCommandInvoker: GuiGridThemeCommandInvoker;\n\n\tprivate readonly classModifier: ClassModifier;\n\n\tprivate readonly attributeModifier: AttributeModifier;\n\n\tconstructor(@Inject(PLATFORM_ID) private readonly platformId: any,\n\t\t\t\tprivate readonly elementRef: ElementRef,\n\t\t\t\tprivate readonly changeDetectorRef: ChangeDetectorRef,\n\t\t\t\tprivate readonly gridRegister: GuiGridRegister,\n\t\t\t\tprivate readonly structureIdGenerator: StructureIdGenerator,\n\t\t\t\t// delegate\n\t\t\t\tprivate readonly formationCommandDispatcher: FormationPublisher,\n\t\t\t\tprivate readonly formationWarehouse: FormationWarehouse,\n\t\t\t\tprivate readonly compositionCommandInvoker: CompositionPublisher,\n\t\t\t\tprivate readonly compositionWarehouse: CompositionWarehouse,\n\t\t\t\tprivate readonly filterIntegration: FilterIntegration,\n\t\t\t\tprivate readonly sourceCommandDispatcher: SourcePublisher,\n\t\t\t\tprivate readonly searchCommandInvoker: SearchPublisher,\n\t\t\t\tprivate readonly schemaCommandInvoker: SchemaPublisher,\n\t\t\t\tprivate readonly structureCommandDispatcher: StructurePublisher,\n\t\t\t\tprivate readonly summariesCommandInvoker: SummariesPublisher,\n\t\t\t\tprivate readonly sortingCommandInvoker: SortingPublisher,\n\t\t\t\tprivate readonly pagingCommandInvoker: PagingPublisher\n\t) {\n\t\tsuper();\n\n\t\tthis.gridThemeCommandInvoker = new GuiGridThemeCommandInvoker(\n\t\t\tthis.schemaCommandInvoker,\n\t\t\tthis.gridThemeConverter,\n\t\t\tthis.gridRowColoringConverter\n\t\t);\n\n\t\tthis.classModifier = new ClassModifier(this.elementRef.nativeElement);\n\t\tthis.attributeModifier = new AttributeModifier(this.elementRef.nativeElement);\n\t}\n\n\tngOnInit() {\n\n\t\tthis.classModifier.getHost().add('gui-grid');\n\n\t\tthis.initApi();\n\n\t\tlet gridId = this.gridId;\n\n\t\tif (gridId === undefined) {\n\t\t\t// gridId = this.gridIdGenerator.generateId();\n\t\t\tgridId = 'gui-grid-' + this.structureIdGenerator.generateId();\n\t\t}\n\n\t\tthis.localGridId = gridId;\n\n\t\tthis.exposeGridId();\n\n\t\t// register\n\t\tthis.gridRegister.register(gridId, this, this.structureRef.getStructureId());\n\n\t\tif (isPlatformBrowser(this.platformId)) {\n\t\t\twindow['getGuiGrid'] = (gridId: string) => {\n\n\t\t\t\tconst gridConsoleConfig = this.gridRegister.getValues(gridId);\n\n\t\t\t\tif (gridConsoleConfig) {\n\t\t\t\t\treturn this.api;\n\t\t\t\t} else {\n\t\t\t\t\treturn undefined;\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t}\n\n\tngOnDestroy() {\n\t\tthis.gridRegister.unregister(this.localGridId);\n\t}\n\n\tgetElementRef(): ElementRef {\n\t\treturn this.elementRef;\n\t}\n\n\tdetectChanges(): void {\n\t\tthis.changeDetectorRef.detectChanges();\n\t}\n\n\tprivate exposeGridId(): void {\n\t\tthis.attributeModifier.getHost().setAttribute(GuiGridComponent.GUI_GRID_ID, this.localGridId);\n\t}\n\n\tprivate initApi(): void {\n\t\tthis.api = new GuiGridApiProvider(\n\t\t\tthis.structureRef.structureId,\n\t\t\tthis.structureRef.compositionId,\n\t\t\tthis.structureRef.schemaReadModelRootId,\n\t\t\tthis.formationCommandDispatcher,\n\t\t\tthis.formationWarehouse,\n\t\t\tthis.compositionCommandInvoker,\n\t\t\tthis.compositionWarehouse,\n\t\t\tthis.filterIntegration,\n\t\t\tthis.sourceCommandDispatcher,\n\t\t\tthis.searchCommandInvoker,\n\t\t\tthis.gridThemeCommandInvoker,\n\t\t\tthis.structureCommandDispatcher,\n\t\t\tthis.summariesCommandInvoker,\n\t\t\tthis.sortingCommandInvoker,\n\t\t\tthis.pagingCommandInvoker\n\t\t).provide();\n\t}\n\n}\n","<gui-structure\n\t#structure\n\t(cellEditCanceled)=\"onCellEditCancel()\"\n\t(cellEditEntered)=\"onCellEditEnter()\"\n\t(cellEditSubmitted)=\"onCellEditSubmit()\"\n\t(columnsChanged)=\"onColumnsChange()\"\n\t(containerWidthChanged)=\"onContainerWidthChange($event)\"\n\t(horizontalGridChanged)=\"onHorizontalGrid($event)\"\n\t(itemsSelected)=\"onItemSelect($event)\"\n\t(pageChanged)=\"onPageChange($event)\"\n\t(pageSizeChanged)=\"onPageSizeChange($event)\"\n\t(rowColoringChanged)=\"onRowColoring($event)\"\n\t(searchPhraseChanged)=\"onSearchPhrase($event)\"\n\t(selectedRows)=\"onRowsSelect($event)\"\n\n\t(sourceEdited)=\"onSourceEdit($event)\"\n\t(themeChanged)=\"onTheme($event)\"\n\t(verticalGridChanged)=\"onVerticalGrid($event)\"\n\t[autoResizeWidth]=\"autoResizeWidth\"\n\t[cellEditing]=\"cellEditingConfig\"\n\t[columnHeaderBottom]=\"columnHeaderBottom\"\n\t[columnHeaderTop]=\"columnHeaderTop\"\n\t[columnMenu]=\"columnMenuConfig\"\n\t[columns]=\"columnsConfig\"\n\t[editMode]=\"editMode\"\n\t[filtering]=\"filtering\"\n\t[footerPanel]=\"footerPanel\"\n\t[horizontalGrid]=\"horizontalGrid\"\n\t[infoPanel]=\"infoPanel\"\n\t[loading]=\"loading\"\n\t[localization]=\"localization\"\n\t[maxHeight]=\"maxHeight\"\n\t[paging]=\"paging\"\n\t[quickFilters]=\"quickFilters\"\n\t[rowClass]=\"rowClass\"\n\t[rowColoring]=\"rowColoringConfig\"\n\t[rowDetail]=\"rowDetail\"\n\t[rowHeight]=\"rowHeight\"\n\t[rowSelection]=\"rowSelectionConfig\"\n\t[rowStyle]=\"rowStyle\"\n\t[searching]=\"searching\"\n\t[sorting]=\"sorting\"\n\t[source]=\"source\"\n\t[summaries]=\"summaries\"\n\t[theme]=\"themeConfig\"\n\t[titlePanel]=\"titlePanel\"\n\t[verticalGrid]=\"verticalGrid\"\n\t[virtualScroll]=\"virtualScroll\"\n\t[width]=\"width\"\n>\n</gui-structure>\n\n","import {\n\tFabricBadgeModule,\n\tFabricButtonGroupModule,\n\tFabricButtonModule,\n\tFabricCheckboxModule,\n\tFabricChipModule,\n\tFabricDialogModule,\n\tFabricDrawerModule,\n\tFabricDropdownModule,\n\tFabricInlineDialogModule,\n\tFabricInputModule,\n\tFabricProgressBarModule,\n\tFabricProgressSpinnerModule,\n\tFabricRadioButtonModule,\n\tFabricRadioGroupModule,\n\tFabricSelectModule,\n\tFabricSpinnerModule,\n\tFabricTabModule,\n\tFabricToggleButtonModule,\n\tFabricTooltipModule\n} from '@generic-ui/fabric';\n\n\nexport const fabricImports = [\n\tFabricBadgeModule,\n\tFabricButtonModule,\n\tFabricButtonGroupModule,\n\tFabricCheckboxModule,\n\tFabricChipModule,\n\tFabricDrawerModule,\n\tFabricDropdownModule,\n\tFabricRadioButtonModule,\n\tFabricRadioGroupModule,\n\tFabricProgressBarModule,\n\tFabricProgressSpinnerModule,\n\tFabricSelectModule,\n\tFabricSpinnerModule,\n\tFabricTabModule,\n\tFabricTooltipModule,\n\tFabricToggleButtonModule,\n\tFabricInputModule,\n\tFabricDialogModule,\n\tFabricInlineDialogModule,\n\tFabricTabModule\n];\n","import { NgModule } from '@angular/core';\n\nimport { NumberFormatterPipe } from './number-formatter.pipe';\n\n@NgModule({\n\tdeclarations: [\n\t\tNumberFormatterPipe\n\t],\n\texports: [\n\t\tNumberFormatterPipe\n\t]\n})\nexport class NumberFormatterModule {\n\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { StructureColumnManagerComponent } from './manager/structure.column-manager.component';\nimport { fabricImports } from '../structure-fabric.imports';\nimport { StructureDialogColumnManagerService } from './dialog/structure.dialog-column-manager.service';\nimport { StructureDialogColumnManagerComponent } from './dialog/structure.dialog-column-manager.component';\nimport { StructureMenuColumnManagerComponent } from './menu/structure.menu-column-manager.component';\nimport { StructureColumnManagerIconComponent } from './icon/structure.column-manager-icon.component';\nimport { TranslationFeatureModule } from '../../../../feature/l10n/src/translation.feature-module';\nimport { GuiTemplateModule } from '../../../../feature/gui-angular/template/gui.template.module';\n\n\nconst declarations = [\n\tStructureColumnManagerComponent,\n\tStructureDialogColumnManagerComponent,\n\tStructureMenuColumnManagerComponent,\n\tStructureColumnManagerIconComponent\n];\n\n@NgModule({\n\timports: [\n\t\tCommonModule,\n\t\tfabricImports,\n\t\tGuiTemplateModule,\n\t\tTranslationFeatureModule\n\t],\n\tdeclarations: declarations,\n\texports: declarations,\n\tproviders: [\n\t\tStructureDialogColumnManagerService\n\t]\n})\nexport class StructureColumnManagerModule {\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { StructureSchemaMangerComponent } from './structure.schema-manger.component';\nimport { StructureDialogSchemaManagerComponent } from './dialog/structure.dialog-schema-manager.component';\nimport { StructureDialogSchemaManagerService } from './dialog/structure.dialog-schema-manager.service';\nimport { fabricImports } from '../../../../feature-view/grid-view/src/structure-fabric.imports';\nimport { StructureSchemaManagerIconComponent } from './manager-icon/structure.schema-manager-icon.component';\nimport { TranslationFeatureModule } from '../../../l10n/src/translation.feature-module';\nimport { GuiTemplateModule } from '../../../gui-angular/template/gui.template.module';\n\n@NgModule({\n\timports: [\n\t\tCommonModule,\n\t\tfabricImports,\n\t\tTranslationFeatureModule,\n\t\tGuiTemplateModule\n\t],\n\tdeclarations: [\n\t\tStructureSchemaMangerComponent,\n\t\tStructureDialogSchemaManagerComponent,\n\t\tStructureSchemaManagerIconComponent\n\t],\n\texports: [\n\t\tStructureSchemaManagerIconComponent\n\t],\n\tproviders: [\n\t\tStructureDialogSchemaManagerService\n\t]\n})\nexport class SchemaManagerModule {\n\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, ViewEncapsulation } from '@angular/core';\nimport { IconComponent } from '../../../../../common/component/src/icon-component';\n\n@Component({\n\tselector: 'div[gui-filter-icon]',\n\ttemplate: `\n\t\t<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 10.32 7.23\">\n\t\t\t<line class=\"cls-1\" x1=\"9.57\" y1=\"0.75\" x2=\"0.75\" y2=\"0.75\"/>\n\t\t\t<line class=\"cls-1\" x1=\"8.14\" y1=\"3.62\" x2=\"2.18\" y2=\"3.62\"/>\n\t\t\t<line class=\"cls-1\" x1=\"6.71\" y1=\"6.48\" x2=\"3.62\" y2=\"6.48\"/>\n\t\t</svg>\n\t`,\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tencapsulation: ViewEncapsulation.None\n})\nexport class FilterIconComponent extends IconComponent {\n\n\tconstructor(elementRef: ElementRef,\n\t\t\t\tchangeDetectorRef: ChangeDetectorRef) {\n\t\tsuper(elementRef, changeDetectorRef);\n\t}\n\n\tprotected getSelectorName(): string {\n\t\treturn 'gui-filter-icon';\n\t}\n}\n","import { HermesObservable, Optional, Warehouse } from '@generic-ui/hermes';\nimport { StructureId } from '../../../structure-core/src/api/global/structure.id';\nimport { FieldModel } from './model/field.model';\n\n\nexport abstract class FieldWarehouse implements Warehouse {\n\n\tprotected constructor() {\n\t}\n\n\tabstract onFields(structureId: StructureId): HermesObservable<ReadonlyArray<FieldModel>>;\n\n\tabstract findFields(structureId: StructureId): Optional<ReadonlyArray<FieldModel>>;\n\n}\n","import { ChangeDetectionStrategy, Component, ElementRef, EventEmitter, Input, OnChanges, Output, ViewEncapsulation } from '@angular/core';\nimport { FilterTypeModel } from '../../../../../../core/structure/filter/src/api/type/filter-type.model';\nimport { FilterTypeId } from '../../../../../../core/structure/filter/src/domain/type/filter-type.id';\nimport { PureComponent } from '../../../../../common/component/src/pure-component';\n\nimport { GuiSelectOption } from '@generic-ui/fabric';\nimport { NgChanges } from '../../../../../common/component/src/ng-changes';\n\n\n@Component({\n\tselector: 'div[gui-filter-type-selector][filterTypes]',\n\ttemplateUrl: './filter-type-selector.component.html',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tencapsulation: ViewEncapsulation.None\n})\nexport class FilterTypeSelectorComponent extends PureComponent implements OnChanges {\n\n\t@Input()\n\tfilterTypes: ReadonlyArray<FilterTypeModel>;\n\n\t@Output()\n\tfilterTypeSelected = new EventEmitter<FilterTypeId>();\n\n\tfilterTypesAsOptions: Array<GuiSelectOption> = [];\n\n\tdisabled = true;\n\n\tconstructor(elementRef: ElementRef) {\n\t\tsuper(elementRef);\n\t}\n\n\tngOnChanges(changes: NgChanges<FilterTypeSelectorComponent>) {\n\n\t\tthis.ifChanged(changes.filterTypes, () => {\n\n\t\t\tthis.filterTypesAsOptions = this.filterTypes.map((filter) => {\n\t\t\t\treturn {\n\t\t\t\t\tname: filter.getId().toString(),\n\t\t\t\t\tvalue: filter.getName()\n\t\t\t\t};\n\t\t\t});\n\n\t\t\tthis.disabled = this.filterTypesAsOptions.length === 0;\n\t\t});\n\t}\n\n\tonSelectChange(option: GuiSelectOption): void {\n\n\t\tconst filterType = this.filterTypes.find((filterType: FilterTypeModel) => {\n\t\t\treturn filterType.getId().toString() === option.name;\n\t\t});\n\n\t\tthis.filterTypeSelected.emit(filterType.getId());\n\t}\n\n\tprotected getSelectorName(): string {\n\t\treturn 'gui-filter-type-selector';\n\t}\n\n}\n","<gui-select (optionChanged)=\"onSelectChange($event)\"\n\t\t\t[disabled]=\"disabled\"\n\t\t\t[options]=\"filterTypesAsOptions\"\n\t\t\t[placeholder]=\"'Select filter type'\">\n</gui-select>\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, EventEmitter, Output, ViewChild, ViewEncapsulation } from '@angular/core';\nimport { FormBuilder, FormGroup } from '@angular/forms';\n\nimport { SmartComponent } from '../../../../../common/component/src/smart-component';\nimport { fromRxJsObservable, HermesObservable } from '@generic-ui/hermes';\nimport { GuiEffects } from '../../../../../gui-angular/effect/gui.effects';\nimport { Observable } from 'rxjs';\n\n\n@Component({\n\tselector: 'div[gui-filter-value]',\n\ttemplateUrl: './filter-value.component.html',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tencapsulation: ViewEncapsulation.None,\n\tproviders: [\n\t\tGuiEffects\n\t]\n})\nexport class FilterValueComponent extends SmartComponent {\n\n\tprivate static readonly FORM_FILTER_VALUE = 'filterValue';\n\n\t@ViewChild('formRef', { read: ElementRef, static: false })\n\treadonly formRef?: ElementRef;\n\n\t@Output()\n\tvalueChanged = new EventEmitter();\n\n\tfilterForm: FormGroup;\n\n\tconstructor(detector: ChangeDetectorRef,\n\t\t\t\telementRef: ElementRef,\n\t\t\t\tprivate readonly effects: GuiEffects,\n\t\t\t\tprivate readonly formBuilder: FormBuilder) {\n\t\tsuper(detector, elementRef);\n\n\t\tconst controlsConfig = {};\n\t\tcontrolsConfig[FilterValueComponent.FORM_FILTER_VALUE] = '';\n\n\t\tthis.filterForm = this.formBuilder.group(controlsConfig);\n\t}\n\n\tngOnInit() {\n\t\tthis.effects\n\t\t\t.register(\n\t\t\t\tthis.selectFilterFormValue(),\n\t\t\t\t(value: string) => {\n\t\t\t\t\tthis.valueChanged.emit(value);\n\t\t\t\t}\n\t\t\t);\n\t}\n\n\tprotected getSelectorName(): string {\n\t\treturn 'gui-filter-value';\n\t}\n\n\tprivate selectFilterFormValue(): HermesObservable<string> {\n\n\t\tconst value$ = this.filterForm\n\t\t\t.controls[FilterValueComponent.FORM_FILTER_VALUE]\n\t\t\t.valueChanges;\n\n\t\treturn fromRxJsObservable(\n\t\t\tvalue$ as any\n\t\t);\n\t}\n\n}\n","<form #formRef\n\t  [formGroup]=\"filterForm\">\n\n\t<input formControlName=\"filterValue\"/>\n</form>\n","import { ChangeDetectionStrategy, Component, ElementRef, EventEmitter, Input, OnChanges, Output, ViewEncapsulation } from '@angular/core';\nimport { FieldModel } from '../../../../../../core/structure/field/src/api/model/field.model';\nimport { PureComponent } from '../../../../../common/component/src/pure-component';\nimport { NgChanges } from '../../../../../common/component/src/ng-changes';\n\nimport { GuiSelectOption } from '@generic-ui/fabric';\nimport { ifChanged } from '../../../../../common/component/src/check.input';\n\n@Component({\n\tselector: 'div[gui-field-selector][fields]',\n\ttemplate: `./field-selector.component.html`,\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tencapsulation: ViewEncapsulation.None\n})\nexport class FieldSelectorComponent extends PureComponent implements OnChanges {\n\n\t@Input()\n\tfields!: ReadonlyArray<FieldModel>;\n\n\t@Output()\n\tfieldSelected = new EventEmitter<FieldModel>();\n\n\tfieldsAsOptions: Array<GuiSelectOption>;\n\n\tconstructor(elementRef: ElementRef) {\n\t\tsuper(elementRef);\n\t}\n\n\tngOnChanges(changes: NgChanges<FieldSelectorComponent>) {\n\n\t\tifChanged(changes.fields, () => {\n\t\t\tthis.fieldsAsOptions = this.fields.map((field) => {\n\t\t\t\treturn {\n\t\t\t\t\tname: field.getFieldId().toString(),\n\t\t\t\t\tvalue: field.getName()\n\t\t\t\t};\n\t\t\t});\n\t\t});\n\t}\n\n\tonFieldSelected(fieldId: GuiSelectOption): void {\n\t\tconst field = this.fields.find((field: FieldModel) => field.getFieldId().toString() === fieldId.name);\n\n\t\tthis.fieldSelected.emit(field);\n\t}\n\n\tprotected getSelectorName(): string {\n\t\treturn 'gui-field-selector';\n\t}\n}\n","import { ChangeDetectionStrategy, Component, ElementRef, EventEmitter, Input, Output, ViewEncapsulation } from '@angular/core';\nimport { PureComponent } from '../../../../../common/component/src/pure-component';\nimport { ActiveFilterModel } from '../../../../../../core/structure/filter/src/api/active/active-filter.model';\nimport { FilterId } from '../../../../../../core/structure/filter/src/api/id/filter.id';\n\n@Component({\n\tselector: 'div[gui-filter-menu-active-filters][activeFilters]',\n\ttemplate: `./filter-menu-active-filters.component.html`,\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tencapsulation: ViewEncapsulation.None\n})\nexport class FilterMenuActiveFiltersComponent extends PureComponent {\n\n\t@Input()\n\tactiveFilters!: Array<ActiveFilterModel>;\n\n\t@Output()\n\tremovedFilter = new EventEmitter<FilterId>();\n\n\tconstructor(elementRef: ElementRef) {\n\t\tsuper(elementRef);\n\t\tthis.addClassToHost('gui-py-8');\n\t}\n\n\tremove(filter: ActiveFilterModel): void {\n\t\tthis.removedFilter.emit(filter.getFilterId());\n\t}\n\n\tprotected getSelectorName(): string {\n\t\treturn 'gui-filter-menu-active-filters';\n\t}\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, OnInit, ViewEncapsulation, inject } from '@angular/core';\nimport { SmartComponent } from '../../../../common/component/src/smart-component';\nimport { FieldWarehouse } from '../../../../../core/structure/field/src/api/field.warehouse';\nimport { StructureId } from '../../../../../core/structure/structure-core/src/api/global/structure.id';\nimport { FieldModel } from '../../../../../core/structure/field/src/api/model/field.model';\nimport { FilterWarehouse } from '../../../../../core/structure/filter/src/api/filter.warehouse';\nimport { FilterTypeCollectionModel } from '../../../../../core/structure/filter/src/api/type/filter-type-collection.model';\nimport { FilterTypeModel } from '../../../../../core/structure/filter/src/api/type/filter-type.model';\nimport { FilterTypeId } from '../../../../../core/structure/filter/src/domain/type/filter-type.id';\nimport { FilterPublisher } from '../../../../../core/structure/filter/src/api/filter.publisher';\nimport { FieldId } from '../../../../../core/structure/field/src/domain/field/field.id';\nimport { ActiveFilterModel } from '../../../../../core/structure/filter/src/api/active/active-filter.model';\nimport { CompositionId } from '../../../../../core/composition/src/api/global/composition.id';\nimport { FilterId } from '../../../../../core/structure/filter/src/api/id/filter.id';\nimport { CompositionTemplateModel } from '../../../../composition/src/column/composition.template.model';\nimport { CompositionTemplateWarehouse } from '../../../../composition/src/column/composition.template-warehouse';\n\n\n@Component({\n\tselector: 'div[gui-filter-menu]',\n\ttemplateUrl: './filter-menu.component.html',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tencapsulation: ViewEncapsulation.None\n})\nexport class FilterMenuComponent extends SmartComponent {\n\n\tprivate readonly structureId = inject(StructureId);\n\tprivate readonly fieldWarehouse = inject(FieldWarehouse);\n\tprivate readonly filterWarehouse = inject(FilterWarehouse);\n\n\tselectedColumn: CompositionTemplateModel;\n\n\tselectedField: FieldModel;\n\n\tfilterTypes: Array<FilterTypeModel>;\n\n\tselectedFilterTypeId: FilterTypeId;\n\n\tselectedValue: string;\n\n\treadonly fields$ = this.fieldWarehouse.onFields(this.structureId);\n\n\treadonly activeFilters$ = this.filterWarehouse.onActiveFilters(this.structureId);\n\n\tconstructor(changeDetectorRef: ChangeDetectorRef,\n\t\t\t\telementRef: ElementRef,\n\t\t\t\tprivate readonly filterCommandInvoker: FilterPublisher) {\n\t\tsuper(changeDetectorRef, elementRef);\n\t\tthis.addClassToHost('gui-block');\n\t}\n\n\tonFieldSelect(field: FieldModel): void {\n\t\tthis.selectedField = field;\n\n\t\tconst filterTypeMapOpt = this.filterWarehouse.findFilterTypes(this.structureId);\n\n\t\tfilterTypeMapOpt.ifPresent(filterTypeMap => {\n\t\t\tthis.filterTypes = filterTypeMap.getFilterTypes(this.selectedField.getFieldId());\n\n\t\t\tthis.reRender();\n\t\t});\n\t}\n\n\tonFilterTypeSelect(filterTypeId: FilterTypeId): void {\n\n\t\tthis.selectedFilterTypeId = filterTypeId;\n\n\t\tthis.reRender();\n\t}\n\n\tremoveAllFilters(): void {\n\t\tthis.filterCommandInvoker.removeAll(this.structureId);\n\t}\n\n\tonValueChanged(value: string): void {\n\t\tthis.selectedValue = value;\n\t}\n\n\taddFilter(): void {\n\n\t\tconst fieldId: FieldId = this.selectedField.getFieldId(),\n\t\t\tfilterTypeId: FilterTypeId = this.selectedFilterTypeId,\n\t\t\tvalue: any = this.selectedValue;\n\n\t\tthis.filterCommandInvoker.add(fieldId, filterTypeId, value, this.structureId);\n\n\t\tthis.clearAddFilterForm();\n\t}\n\n\tonRemovedFilter(filterId: FilterId): void {\n\t\tevent.preventDefault();\n\t\tthis.filterCommandInvoker.remove(filterId, this.structureId);\n\t}\n\n\tremoveFilter(): void {\n\t}\n\n\tclearAddFilterForm(): void {\n\t\tthis.selectedColumn = null;\n\t\tthis.selectedField = null;\n\t\tthis.selectedFilterTypeId = null;\n\t\tthis.selectedValue = null;\n\t\tthis.reRender();\n\t}\n\n\tprotected getSelectorName(): string {\n\t\treturn 'gui-filter-menu';\n\t}\n}\n","<!--<div>-->\n<!--\t<div gui-active-filter-list></div>-->\n<!--</div>-->\n\n<!--\t\t<div>--><!--\t\t\t<div gui-column-selector--><!--\t\t\t\t\t[columns]=\"columns\"--><!--\t\t\t\t\t(columnSelected)\n=\"onColumnSelect($event)\">--><!--\t\t\t</div>-->\n\n<!--\t\t\t<ng-container *ngIf=\"selectedColumn\">--><!--\t\t\t\t{{selectedColumn.getFieldId()}}--><!--\t\t\t</ng-container>--><!--\t\t</div>-->\n\n<!--<div>-->\n<!--\t<div (fieldSelected)=\"onFieldSelect($event)\"-->\n<!--\t\t [fields]=\"fields\" gui-field-selector></div>-->\n\n<!--\t<ng-container *ngIf=\"selectedColumn\">-->\n<!--\t\t{{selectedColumn.getFieldId()}}-->\n<!--\t</ng-container>-->\n<!--</div>-->\n\n<!--<div>-->\n<!--\t<div (filterTypeSelected)=\"onFilterTypeSelect($event)\"-->\n<!--\t\t [filterTypes]=\"filterTypes\" gui-filter-type-selector></div>-->\n\n<!--\t<ng-container *ngIf=\"selectedFilterTypeId\">-->\n<!--\t\t{{selectedFilterTypeId.toString()}}-->\n<!--\t</ng-container>-->\n<!--</div>-->\n\n<!--<div>-->\n\n<!--\t<div (valueChanged)=\"onValueChanged($event)\" *ngIf=\"selectedFilterTypeId\" gui-filter-value></div>-->\n\n<!--</div>-->\n\n<h1>Filter menu</h1>\n\n\n<div (removedFilter)=\"onRemovedFilter($event)\"\n\t [activeFilters]=\"activeFilters$ | guiPush\"\n\t gui-filter-menu-active-filters>\n</div>\n\n<div class=\"gui-flex gui-flex-row gui-pb-12\">\n\n\t<div (fieldSelected)=\"onFieldSelect($event)\"\n\t\t [fields]=\"fields$ | guiPush\"\n\t\t gui-field-selector>\n\t</div>\n\n\t<div (filterTypeSelected)=\"onFilterTypeSelect($event)\"\n\t\t [filterTypes]=\"filterTypes\"\n\t\t gui-filter-type-selector>\n\t</div>\n\n\t<div (valueChanged)=\"onValueChanged($event)\"\n\t\t *ngIf=\"selectedFilterTypeId\"\n\t\t gui-filter-value>\n\t</div>\n\n\t<button (click)=\"addFilter()\">Filter</button>\n\t<button (click)=\"removeFilter()\">Remove</button>\n\n</div>\n\n<br/>\n<br/>\n<br/>\n\n<button\n\t[primary]=\"true\" gui-button>\n\tAdd filter\n</button>\n\n<br/>\n<br/>\n<br/>\n\n<div class=\"gui-flex gui-flex-row gui-justify-between gui-pt-12\">\n\n\t<button (click)=\"removeAllFilters()\"\n\t\t\t[outline]=\"false\"\n\t\t\tgui-button>\n\t\tClear filters\n\t</button>\n\n\t<!--\t<div>-->\n\t<!--\t\t<button (click)=\"close()\"-->\n\t<!--\t\t\t\t[outline]=\"false\" gui-button>-->\n\t<!--\t\t\tCancel-->\n\t<!--\t\t</button>-->\n\t<!--\t</div>-->\n</div>\n\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, Injector, OnInit, ViewEncapsulation } from '@angular/core';\n\nimport { FabricDialogService } from '@generic-ui/fabric';\n\nimport { FilterMenuComponent } from '../filter-menu.component';\nimport { SmartComponent } from '../../../../../common/component/src/smart-component';\nimport { FilterWarehouse } from '../../../../../../core/structure/filter/src/api/filter.warehouse';\nimport { StructureId } from '../../../../../../core/structure/structure-core/src/api/global/structure.id';\nimport { ActiveFilterModel } from '../../../../../../core/structure/filter/src/api/active/active-filter.model';\nimport { hermesMap } from '@generic-ui/hermes';\n\n@Component({\n\tselector: 'div[gui-filter-menu-trigger]',\n\ttemplateUrl: './filter-menu-trigger.component.html',\n\tstyleUrls: [\n\t\t'../../style/filter.scss'\n\t],\n\tencapsulation: ViewEncapsulation.None,\n\tchangeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class FilterMenuTriggerComponent extends SmartComponent {\n\n\tactiveFiltersExist$ = this.selectActiveFiltersExist();\n\n\tconstructor(detector: ChangeDetectorRef,\n\t\t\t\telementRef: ElementRef,\n\t\t\t\tprivate readonly injector: Injector,\n\t\t\t\tprivate readonly fabricDialogService: FabricDialogService,\n\t\t\t\tprivate readonly structureId: StructureId,\n\t\t\t\tprivate readonly filterWarehouse: FilterWarehouse) {\n\t\tsuper(detector, elementRef);\n\t}\n\n\topenDrawer(): void {\n\t\tthis.fabricDialogService.open({ component: FilterMenuComponent, injector: this.injector });\n\t}\n\n\tprotected getSelectorName(): string {\n\t\treturn 'gui-filter-menu-trigger';\n\t}\n\n\tprivate selectActiveFiltersExist() {\n\t\treturn this.filterWarehouse\n\t\t\t\t   .onActiveFilters(this.structureId)\n\t\t\t\t   .pipe(\n\t\t\t\t\t   hermesMap((activeFilters: ReadonlyArray<ActiveFilterModel>) => {\n\t\t\t\t\t\t   return activeFilters.length > 0;\n\t\t\t\t\t   })\n\t\t\t\t   );\n\t}\n}\n","<div (click)=\"openDrawer()\"\n\t [gui-tooltip]=\"'Filters'\"\n\t class=\"gui-filter-icon-wrapper\">\n\n\t<ng-container *guiLet=\"activeFiltersExist$; let activeFiltersExist\">\n\t\t<div *ngIf=\"activeFiltersExist\" class=\"gui-filter-active\"></div>\n\t</ng-container>\n\n\t<div gui-filter-icon></div>\n</div>\n","import { ChangeDetectionStrategy, Component, ElementRef, EventEmitter, Input, Output, ViewEncapsulation } from '@angular/core';\nimport { CellTemplateWithContext } from '../../../../../../core/composition/src/core-read/definition/cell-template-with-context';\nimport { PureComponent } from '../../../../../common/component/src/pure-component';\n\n@Component({\n\tselector: 'div[gui-column-selector][columns]',\n\ttemplate: `./column-selector.component.html`,\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tencapsulation: ViewEncapsulation.None\n})\nexport class ColumnSelectorComponent extends PureComponent {\n\n\t@Input()\n\tcolumns!: Array<CellTemplateWithContext>;\n\n\t@Output()\n\tcolumnSelected = new EventEmitter<CellTemplateWithContext>();\n\n\tconstructor(elementRef: ElementRef) {\n\t\tsuper(elementRef);\n\t}\n\n\tonSelectChange(column: CellTemplateWithContext): void {\n\t\tthis.columnSelected.emit(column);\n\t}\n\n\tprotected getSelectorName(): string {\n\t\treturn 'gui-column-selector';\n\t}\n}\n","import { FieldId } from '../../../../field/src/domain/field/field.id';\n\nimport { StructureId } from '../../../../structure-core/src/api/global/structure.id';\nimport { StructureCommand } from '../../../../structure-core/src/core/structure.command';\n\n\nexport class ToggleFilterCommand extends StructureCommand {\n\n\tconstructor(structureId: StructureId,\n\t\t\t\tprivate readonly fieldId: FieldId,\n\t\t\t\tprivate readonly externalFilterId: string,\n\t\t\t\tprivate readonly filterValue: string) {\n\t\tsuper(structureId, 'ToggleFilterCommand');\n\t}\n\n\tgetFieldId(): FieldId {\n\t\treturn this.fieldId;\n\t}\n\n\tgetExternalFilterId(): string {\n\t\treturn this.externalFilterId;\n\t}\n\n\tgetFilterValue(): string {\n\t\treturn this.filterValue;\n\t}\n\n}\n","import { StructureId } from '../../../../structure-core/src/api/global/structure.id';\nimport { StructureDomainEvent } from '../../../../structure-core/src/core/structure.domain-event';\n\nexport class FilterToggledEvent extends StructureDomainEvent {\n\n\tconstructor(aggregateId: StructureId) {\n\t\tsuper(aggregateId, null, 'FilterToggledEvent');\n\t}\n\n}\n","import { CommandHandler, CommandType, CoreContainer, DomainEventPublisher } from '@generic-ui/hermes';\nimport { ToggleFilterCommand } from './toggle-filter.command';\nimport { FieldId } from '../../../../field/src/domain/field/field.id';\nimport { FilterToggledEvent } from './filter-toggled.event';\nimport { StructureAggregate } from '../../../../structure-core/src/domain/structure.aggregate';\n\n\nexport class ToggleFilterCommandHandler implements CommandHandler<StructureAggregate, ToggleFilterCommand> {\n\n\tprivate readonly domainEventPublisher: DomainEventPublisher = CoreContainer.resolve(DomainEventPublisher);\n\n\tforCommand(): CommandType<ToggleFilterCommand> {\n\t\treturn ToggleFilterCommand;\n\t}\n\n\thandle(aggregate: StructureAggregate, command: ToggleFilterCommand): void {\n\n\t\tconst fieldId: FieldId = command.getFieldId(),\n\t\t\texternalFieldId: string = command.getExternalFilterId(),\n\t\t\tfilterValue = command.getFilterValue();\n\n\t\taggregate.toggleFilter(fieldId, externalFieldId, filterValue);\n\t}\n\n\tpublish(aggregate: StructureAggregate, command: ToggleFilterCommand): void {\n\t\tthis.domainEventPublisher.publish(new FilterToggledEvent(command.getAggregateId()));\n\t}\n\n}\n","import { StructureId } from '../../../../structure-core/src/api/global/structure.id';\nimport { FieldId } from '../../../../field/src/domain/field/field.id';\nimport { FilterTypeId } from '../../domain/type/filter-type.id';\nimport { StructureCommand } from '../../../../structure-core/src/core/structure.command';\n\n\nexport class AddFilterCommand extends StructureCommand {\n\n\tconstructor(structureId: StructureId,\n\t\t\t\tprivate readonly fieldId: FieldId,\n\t\t\t\tprivate readonly filterTypeId: FilterTypeId,\n\t\t\t\tprivate readonly value: any) {\n\t\tsuper(structureId, 'AddFilterCommand');\n\t}\n\n\tgetFieldId(): FieldId {\n\t\treturn this.fieldId;\n\t}\n\n\tgetFilterTypeId(): FilterTypeId {\n\t\treturn this.filterTypeId;\n\t}\n\n\tgetValue(): any {\n\t\treturn this.value;\n\t}\n\n}\n","import { CommandHandler, CommandType } from '@generic-ui/hermes';\n\nimport { AddFilterCommand } from './add-filter.command';\nimport { StructureAggregate } from '../../../../structure-core/src/domain/structure.aggregate';\nimport { FieldId } from '../../../../field/src/domain/field/field.id';\nimport { FilterTypeId } from '../../domain/type/filter-type.id';\n\n\nexport class AddFilterCommandHandler implements CommandHandler<StructureAggregate, AddFilterCommand> {\n\n\tforCommand(): CommandType<AddFilterCommand> {\n\t\treturn AddFilterCommand;\n\t}\n\n\thandle(structure: StructureAggregate, command: AddFilterCommand): void {\n\n\t\tconst fieldId: FieldId = command.getFieldId(),\n\t\t\tfilterTypeId: FilterTypeId = command.getFilterTypeId(),\n\t\t\tvalue: any = command.getValue();\n\t\tstructure.addFilter(fieldId, filterTypeId, value);\n\t}\n\n}\n","import { StructureId } from '../../../../structure-core/src/api/global/structure.id';\nimport { StructureCommand } from '../../../../structure-core/src/core/structure.command';\n\n\nexport class RemoveAllFiltersCommand extends StructureCommand {\n\n\tconstructor(structureId: StructureId) {\n\t\tsuper(structureId, 'RemoveAllFiltersCommand');\n\t}\n\n\n}\n","import { CommandHandler, CommandType } from '@generic-ui/hermes';\n\nimport { RemoveAllFiltersCommand } from './remove-all-filters.command';\nimport { StructureAggregate } from '../../../../structure-core/src/domain/structure.aggregate';\n\n\nexport class RemoveAllFiltersCommandHandler implements CommandHandler<StructureAggregate, RemoveAllFiltersCommand> {\n\n\tforCommand(): CommandType<RemoveAllFiltersCommand> {\n\t\treturn RemoveAllFiltersCommand;\n\t}\n\n\thandle(structure: StructureAggregate, command: RemoveAllFiltersCommand): void {\n\t\tstructure.removeAllFilters();\n\t}\n\n}\n","import { StructureId } from '../../../../structure-core/src/api/global/structure.id';\nimport { FilterId } from '../../api/id/filter.id';\nimport { StructureCommand } from '../../../../structure-core/src/core/structure.command';\n\n\nexport class RemoveFilterCommand extends StructureCommand {\n\n\tconstructor(structureId: StructureId,\n\t\t\t\tprivate readonly filterId: FilterId) {\n\t\tsuper(structureId, 'RemoveFilterCommand');\n\t}\n\n\tgetFilterId(): FilterId {\n\t\treturn this.filterId;\n\t}\n\n}\n","import { CommandHandler, CommandType } from '@generic-ui/hermes';\n\nimport { RemoveFilterCommand } from './remove-filter.command';\nimport { StructureAggregate } from '../../../../structure-core/src/domain/structure.aggregate';\n\n\nexport class RemoveFilterCommandHandler implements CommandHandler<StructureAggregate, RemoveFilterCommand> {\n\n\tforCommand(): CommandType<RemoveFilterCommand> {\n\t\treturn RemoveFilterCommand;\n\t}\n\n\thandle(structure: StructureAggregate, command: RemoveFilterCommand): void {\n\n\t\tconst filterId = command.getFilterId();\n\n\t\tstructure.removeFilter(filterId);\n\t}\n\n}\n","import { StructureId } from '../../../../structure-core/src/api/global/structure.id';\nimport { FilterConfig } from '../../api/config/filter.config';\nimport { StructureCommand } from '../../../../structure-core/src/core/structure.command';\n\nexport class SetConfigFilterCommand extends StructureCommand {\n\n\tconstructor(structureId: StructureId,\n\t\t\t\tprivate readonly filterConfig: FilterConfig) {\n\t\tsuper(structureId, 'SetConfigFilterCommand');\n\t}\n\n\tgetConfig(): FilterConfig {\n\t\treturn this.filterConfig;\n\t}\n\n}\n","import { StructureId } from '../../../../structure-core/src/api/global/structure.id';\nimport { StructureDomainEvent } from '../../../../structure-core/src/core/structure.domain-event';\n\nexport class ConfigFilterSetEvent extends StructureDomainEvent {\n\n\tconstructor(aggregateId: StructureId,\n\t\t\t\tprivate readonly enabled: boolean) {\n\t\tsuper(aggregateId, enabled, 'ConfigFilterSetEvent');\n\t}\n\n\tgetEnabled(): boolean {\n\t\treturn this.enabled;\n\t}\n\n}\n","import { CommandHandler, CommandType, CoreContainer, DomainEventPublisher } from '@generic-ui/hermes';\nimport { SetConfigFilterCommand } from './set-config-filter.command';\nimport { ConfigFilterSetEvent } from './config-filter-set.event';\nimport { StructureAggregate } from '../../../../structure-core/src/domain/structure.aggregate';\n\n\nexport class SetConfigFilterCommandHandler implements CommandHandler<StructureAggregate, SetConfigFilterCommand> {\n\n\tprivate readonly domainEventPublisher: DomainEventPublisher = CoreContainer.resolve(DomainEventPublisher);\n\n\tforCommand(): CommandType<SetConfigFilterCommand> {\n\t\treturn SetConfigFilterCommand;\n\t}\n\n\thandle(aggregate: StructureAggregate, command: SetConfigFilterCommand): void {\n\n\t\tconst filterConfig = command.getConfig();\n\n\t\taggregate.setFilterConfig(filterConfig);\n\t}\n\n\tpublish(aggregate: StructureAggregate, command: SetConfigFilterCommand): void {\n\n\t\tconst filterConfig = command.getConfig();\n\n\t\tthis.domainEventPublisher.publish(new ConfigFilterSetEvent(command.getAggregateId(), filterConfig.enabled));\n\t}\n\n}\n","import { QuickFiltersConfig } from '../../api/quick-filter/quick-filters.config';\n\nimport { StructureId } from '../../../../structure-core/src/api/global/structure.id';\nimport { StructureCommand } from '../../../../structure-core/src/core/structure.command';\n\n\nexport class SetConfigQuickFilterCommand extends StructureCommand {\n\n\tconstructor(structureId: StructureId,\n\t\t\t\tprivate readonly quickFiltersConfig: QuickFiltersConfig) {\n\t\tsuper(structureId, 'SetConfigQuickFilterCommand');\n\t}\n\n\tgetConfig(): QuickFiltersConfig {\n\t\treturn this.quickFiltersConfig;\n\t}\n\n}\n","import { StructureId } from '../../../../structure-core/src/api/global/structure.id';\nimport { StructureDomainEvent } from '../../../../structure-core/src/core/structure.domain-event';\n\n\nexport class ConfigQuickFilterSetEvent extends StructureDomainEvent {\n\n\tconstructor(aggregateId: StructureId,\n\t\t\t\tprivate readonly enabled: boolean) {\n\t\tsuper(aggregateId, enabled, 'ConfigQuickFilterSetEvent');\n\t}\n\n\tgetEnabled(): boolean {\n\t\treturn this.enabled;\n\t}\n\n}\n","import { CommandHandler, CommandType, CoreContainer, DomainEventPublisher } from '@generic-ui/hermes';\n\nimport { SetConfigQuickFilterCommand } from './set-config-quick-filter.command';\nimport { ConfigQuickFilterSetEvent } from './config-quick-filter-set.event';\nimport { StructureAggregate } from '../../../../structure-core/src/domain/structure.aggregate';\n\n\nexport class SetConfigQuickFilterCommandHandler implements CommandHandler<StructureAggregate, SetConfigQuickFilterCommand> {\n\n\tprivate readonly domainEventPublisher: DomainEventPublisher = CoreContainer.resolve(DomainEventPublisher);\n\n\n\tforCommand(): CommandType<SetConfigQuickFilterCommand> {\n\t\treturn SetConfigQuickFilterCommand;\n\t}\n\n\thandle(aggregate: StructureAggregate, command: SetConfigQuickFilterCommand): void {\n\n\t\tconst quickFiltersConfig = command.getConfig();\n\n\t\taggregate.setQuickFiltersConfig(quickFiltersConfig);\n\t}\n\n\tpublish(aggregate: StructureAggregate, command: SetConfigQuickFilterCommand): void {\n\n\t\tconst structureId = command.getAggregateId(),\n\t\t\tquickFiltersConfig = command.getConfig();\n\n\t\tthis.domainEventPublisher.publish(new ConfigQuickFilterSetEvent(structureId, quickFiltersConfig.enabled));\n\t}\n\n}\n","import { FilterId } from '../api/id/filter.id';\nimport { FieldId } from '../../../field/src/domain/field/field.id';\nimport { FilterTypeId } from './type/filter-type.id';\nimport { Entity } from '@generic-ui/hermes';\n\nexport class Filter extends Entity<FilterId> {\n\n\tprivate readonly filterId: FilterId;\n\n\tprivate readonly fieldId: FieldId;\n\n\tprivate readonly filterTypeId: FilterTypeId;\n\n\tprivate readonly filterValue: any;\n\n\tconstructor(filterId: FilterId,\n\t\t\t\tfieldId: FieldId,\n\t\t\t\tfilterTypeId: FilterTypeId,\n\t\t\t\tfilterValue: any) { // TODO not any\n\t\tsuper(filterId);\n\t\tthis.filterId = filterId;\n\t\tthis.fieldId = fieldId;\n\t\tthis.filterTypeId = filterTypeId;\n\t\tthis.filterValue = filterValue;\n\t}\n\n\tgetFilterId(): FilterId {\n\t\treturn this.filterId;\n\t}\n\n\tgetFilterTypeId(): FilterTypeId {\n\t\treturn this.filterTypeId;\n\t}\n\n\tgetFieldId(): FieldId {\n\t\treturn this.fieldId;\n\t}\n\n\tgetFilterValue(): any {\n\t\treturn this.filterValue;\n\t}\n\n}\n","import { FilterConfig } from '../api/config/filter.config';\nimport { SearchConfig } from '../../../search/src/api/config/search-config';\nimport { QuickFiltersConfig } from '../api/quick-filter/quick-filters.config';\n\nexport class FilterSettings {\n\n\tprivate filteringEnabled: boolean = false;\n\n\tprivate searchEnabled: boolean = false;\n\n\tprivate quickFiltersEnabled: boolean = false;\n\n\tconstructor(filteringEnabled: boolean = false,\n\t\t\t\tsearchEnabled: boolean = false,\n\t\t\t\tquickFiltersEnabled: boolean = false) {\n\t\tthis.filteringEnabled = filteringEnabled;\n\t\tthis.searchEnabled = searchEnabled;\n\t\tthis.quickFiltersEnabled = quickFiltersEnabled;\n\t}\n\n\tisFilteringEnabled(): boolean {\n\t\treturn this.filteringEnabled;\n\t}\n\n\tisQuickFilteringEnabled(): boolean {\n\t\treturn this.quickFiltersEnabled;\n\t}\n\n\tisSearchingEnabled(): boolean {\n\t\treturn this.searchEnabled;\n\t}\n\n\tsetFilterConfig(config: FilterConfig): void {\n\t\tif (config && config.enabled !== undefined && config.enabled !== null) {\n\t\t\tthis.filteringEnabled = config.enabled;\n\t\t}\n\t}\n\n\tsetSearchingConfig(config: SearchConfig): void {\n\t\tif (config && config.enabled !== undefined && config.enabled !== null) {\n\t\t\tthis.searchEnabled = config.enabled;\n\t\t}\n\t}\n\n\tsetQuickFiltersConfig(config: QuickFiltersConfig): void {\n\t\tif (config && config.enabled !== undefined && config.enabled !== null) {\n\t\t\tthis.quickFiltersEnabled = config.enabled;\n\t\t}\n\t}\n\n}\n","import { ItemEntity } from '../../../../source/src/domain/item/item.entity';\nimport { FieldEntity } from '../../../../field/src/domain/field/field.entity';\nimport { FilterTypeId } from './filter-type.id';\nimport { EntityId } from '@generic-ui/hermes';\n\nexport abstract class BaseFilterType<T> extends EntityId<FilterTypeId> {\n\n\t// private readonly filterTypeId: FilterTypeId;\n\n\tprotected constructor(filterTypeId: FilterTypeId) {\n\t\tsuper(filterTypeId);\n\t\t// this.filterTypeId = filterTypeId;\n\t}\n\n\tabstract getName(): string;\n\n\tprotected abstract filterEntity(entity: ItemEntity, field: FieldEntity, value: T): boolean;\n\n\t// getId(): FilterTypeId {\n\t// \treturn this.filterTypeId;\n\t// }\n\n\ttoString(): string {\n\t\treturn this.getId().toString();\n\t}\n\n\tfilterMany(entities: Array<ItemEntity>, field: FieldEntity, value: T): Array<ItemEntity> {\n\n\t\tif (entities.length === 0) {\n\t\t\treturn entities;\n\t\t}\n\n\t\treturn entities.filter((item: ItemEntity) => {\n\t\t\treturn this.filterEntity(item, field, value);\n\t\t});\n\t}\n\n\tfilterOne(entity: ItemEntity, field: FieldEntity, value: T): boolean {\n\t\treturn this.filterEntity(entity, field, value);\n\t}\n}\n","import { BaseFilterType } from '../base-filter-type';\nimport { ItemEntity } from '../../../../../source/src/domain/item/item.entity';\nimport { FieldEntity } from '../../../../../field/src/domain/field/field.entity';\nimport { FilterTypeId } from '../filter-type.id';\n\nexport class ContainsFilterType extends BaseFilterType<string> {\n\n\tconstructor(filterTypeId: FilterTypeId) {\n\t\tsuper(filterTypeId);\n\t}\n\n\tgetName(): string {\n\t\treturn 'Contains';\n\t}\n\n\tprotected filterEntity(entity: ItemEntity, field: FieldEntity, value: string): boolean {\n\n\t\tconst fieldValue: string = field.getValue(entity);\n\n\t\treturn !!fieldValue.includes(value);\n\t}\n}\n","import { EntityId } from '@generic-ui/hermes';\n\nexport class FilterTypeId extends EntityId {\n\n\tprivate readonly id: string;\n\n\tconstructor(id: string) {\n\t\tsuper(id);\n\t\tthis.id = id;\n\t}\n\n\ttoString(): string {\n\t\treturn this.id;\n\t}\n\n}\n","import { FilterTypeId } from './filter-type.id';\n\nexport class FilterTypeIdGenerator {\n\n\tstatic index = 0;\n\n\tgenerate(): FilterTypeId {\n\t\tFilterTypeIdGenerator.index += 1;\n\n\t\treturn new FilterTypeId(`${FilterTypeIdGenerator.index}`);\n\t}\n\n}\n","import { FilterTypeId } from '../../domain/type/filter-type.id';\n\nexport class FilterTypeModel {\n\n\tprivate readonly filterTypeId: FilterTypeId;\n\n\tprivate readonly name: string;\n\n\tconstructor(id: FilterTypeId,\n\t\t\t\tname: string) {\n\t\tthis.filterTypeId = id;\n\t\tthis.name = name;\n\t}\n\n\tgetId(): FilterTypeId {\n\t\treturn this.filterTypeId;\n\t}\n\n\tgetName(): string {\n\t\treturn this.name;\n\t}\n\n}\n","import { FieldId } from '../../../../field/src/domain/field/field.id';\nimport { FieldEntity } from '../../../../field/src/domain/field/field.entity';\nimport { FilterTypeId } from './filter-type.id';\nimport { DataType } from '../../../../field/src/domain/field/data/data-type';\nimport { ContainsFilterType } from './filter-types/contains-filter-type';\nimport { FilterTypeIdGenerator } from './filter-type.id-generator';\nimport { BaseFilterType } from './base-filter-type';\nimport { FilterTypeModel } from '../../api/type/filter-type.model';\n\n\nexport class FilterTypeManager {\n\n\tprivate readonly fieldIds: Array<FieldId> = [];\n\n\tprivate readonly map = new WeakMap<FieldId, Array<BaseFilterType<any>>>();\n\n\tprivate readonly filterTypeMap = new WeakMap<FilterTypeId, BaseFilterType<any>>();\n\n\tprivate readonly dataTypeToFilterType = new Map<DataType, Array<BaseFilterType<any>>>();\n\n\tprivate readonly filterTypeIdGenerator: FilterTypeIdGenerator = new FilterTypeIdGenerator();\n\n\tconstructor(fields: Array<FieldEntity>) {\n\t\tthis.assignFilterTypes();\n\n\t\tthis.addFields(fields);\n\t}\n\n\tgetFilterType(filterTypeId: FilterTypeId): BaseFilterType<any> {\n\t\treturn this.filterTypeMap.get(filterTypeId);\n\t}\n\n\tgetFieldIdsToFilterTypes(): Map<string, Array<FilterTypeModel>> {\n\t\tconst map = new Map();\n\n\t\tfor (const fieldId of this.fieldIds) {\n\t\t\tconst filterTypes = this.map.get(fieldId),\n\t\t\t\treadModels = filterTypes.map(f => {\n\t\t\t\t\treturn new FilterTypeModel(f.getId(), f.getName());\n\t\t\t\t});\n\n\t\t\tmap.set(fieldId.toString(), readModels);\n\t\t}\n\n\t\treturn map;\n\t}\n\n\tprivate addFields(fields: Array<FieldEntity>): void {\n\t\tfor (const field of fields) {\n\t\t\tthis.addField(field);\n\t\t}\n\t}\n\n\tprivate addField(field: FieldEntity): void {\n\n\t\tconst fieldId = field.getId(),\n\t\t\tdataType = field.getDataType();\n\n\t\tconst filterTypesFromDataType = this.dataTypeToFilterType.get(dataType);\n\n\t\tthis.fieldIds.push(fieldId);\n\t\tthis.map.set(fieldId, Array.from(filterTypesFromDataType));\n\t}\n\n\tprivate assignFilterTypes(): void {\n\t\tthis.assignFilterTypesForDataTypeUnknown();\n\t\tthis.assignFilterTypesForDataTypeNumber();\n\t\tthis.assignFilterTypesForDataTypeString();\n\t\tthis.assignFilterTypesForDataTypeBoolean();\n\t\tthis.assignFilterTypesForDataTypeDate();\n\t\tthis.assignFilterTypesForDataTypeCustom();\n\t}\n\n\tprivate assignFilterTypesForDataTypeUnknown(): void {\n\t\tthis.dataTypeToFilterType.set(DataType.UNKNOWN, []);\n\t}\n\n\tprivate assignFilterTypesForDataTypeNumber(): void {\n\t\tthis.dataTypeToFilterType.set(DataType.NUMBER, []);\n\t}\n\n\tprivate assignFilterTypesForDataTypeString(): void {\n\n\t\tconst filterTypes = [\n\t\t\tnew ContainsFilterType(this.generateId())\n\t\t];\n\n\t\tthis.dataTypeToFilterType.set(DataType.STRING, filterTypes);\n\n\t\tthis.addFilterTypes(filterTypes);\n\t}\n\n\tprivate assignFilterTypesForDataTypeBoolean(): void {\n\t\tthis.dataTypeToFilterType.set(DataType.BOOLEAN, []);\n\t}\n\n\tprivate assignFilterTypesForDataTypeDate(): void {\n\t\tthis.dataTypeToFilterType.set(DataType.DATE, []);\n\t}\n\n\tprivate assignFilterTypesForDataTypeCustom(): void {\n\t\tthis.dataTypeToFilterType.set(DataType.CUSTOM, []);\n\t}\n\n\tprivate generateId(): FilterTypeId {\n\t\treturn this.filterTypeIdGenerator.generate();\n\t}\n\n\tprivate addFilterTypes(filterTypes: Array<BaseFilterType<any>>): void {\n\t\tfor (const filterType of filterTypes) {\n\t\t\tthis.filterTypeMap.set(filterType.getId(), filterType);\n\t\t}\n\t}\n\n}\n","import { EntityId } from '@generic-ui/hermes';\n\nexport class FilterId extends EntityId<string> {\n\n\tconstructor(filterId: string) {\n\t\tsuper(filterId);\n\t}\n\n\ttoString(): string {\n\t\treturn this.getId();\n\t}\n\n}\n","import { FilterId } from '../api/id/filter.id';\n\nexport class FilterIdGenerator {\n\n\tstatic index = 0;\n\n\tstatic generateId(): FilterId {\n\t\treturn new FilterId(`${FilterIdGenerator.index}`);\n\t}\n\n}\n","import { FilterId } from '../id/filter.id';\n\nexport class ActiveFilterModel {\n\n\tconstructor(private readonly filterId: FilterId,\n\t\t\t\tprivate readonly fieldName: string,\n\t\t\t\tprivate readonly filterTypeName: string,\n\t\t\t\tprivate readonly value: any) {\n\t}\n\n\tgetText(): string {\n\t\treturn `${this.fieldName}: ${this.filterTypeName}: ${this.value}`;\n\t}\n\n\tgetFilterId(): FilterId {\n\t\treturn this.filterId;\n\t}\n\n\tgetFieldName(): string {\n\t\treturn this.fieldName;\n\t}\n\n\tgetFilterTypeName(): string {\n\t\treturn this.filterTypeName;\n\t}\n\n\tgetValue(): any {\n\t\treturn this.value;\n\t}\n\n}\n","import { Filter } from './filter';\nimport { ItemEntity } from '../../../source/src/domain/item/item.entity';\nimport { FilterSettings } from './filter.settings';\nimport { FieldEntity } from '../../../field/src/domain/field/field.entity';\nimport { FilterTypeId } from './type/filter-type.id';\nimport { FieldId } from '../../../field/src/domain/field/field.id';\nimport { FilterTypeManager } from './type/filter-type.manager';\nimport { FilterTypeModel } from '../api/type/filter-type.model';\nimport { BaseFilterType } from './type/base-filter-type';\nimport { FilterIdGenerator } from '../core/filter.id-generator';\nimport { ActiveFilterModel } from '../api/active/active-filter.model';\nimport { FilterId } from '../api/id/filter.id';\n\n\nexport class FilterManager {\n\n\tprivate readonly filterSettings = new FilterSettings();\n\n\t// string -> FilterId\n\tprivate readonly filters = new Map<string, Filter>();\n\n\tprivate activeFilters: Array<Filter> = [];\n\n\tprivate filterTypeManager: FilterTypeManager;\n\n\tconstructor() {\n\t}\n\n\tgetSettings(): FilterSettings {\n\t\treturn this.filterSettings;\n\t}\n\n\tgetAll(): Array<Filter> {\n\t\treturn Array.from(this.filters)\n\t\t\t\t\t.map((arr) => arr[1]);\n\t}\n\n\tgetAllActiveFilters(fields: Map<string, FieldEntity>): ReadonlyArray<ActiveFilterModel> {\n\t\treturn this.activeFilters\n\t\t\t\t   .map((af: Filter) => {\n\t\t\t\t\t   return new ActiveFilterModel(\n\t\t\t\t\t\t   af.getFilterId(),\n\t\t\t\t\t\t   (fields.get(af.getFieldId().toString())).getName(),\n\t\t\t\t\t\t   this.filterTypeManager.getFilterType(af.getFilterTypeId()).getName(),\n\t\t\t\t\t\t   af.getFilterValue()\n\t\t\t\t\t   );\n\t\t\t\t   });\n\t}\n\n\tgetFilterTypes(): Map<string, Array<FilterTypeModel>> {\n\t\treturn this.filterTypeManager.getFieldIdsToFilterTypes();\n\t}\n\n\tassignFilterTypes(fields: Array<FieldEntity>) {\n\t\tthis.filterTypeManager = new FilterTypeManager(fields);\n\t}\n\n\tadd(fieldId: FieldId, filterTypeId: FilterTypeId, value: any): void {\n\n\t\tconst filter = new Filter(FilterIdGenerator.generateId(), fieldId, filterTypeId, value);\n\n\t\tthis.activeFilters.push(filter);\n\t}\n\n\tfilter(entities: Array<ItemEntity>, fields: Map<string, FieldEntity>): Array<ItemEntity> {\n\n\t\tlet filteredEntities: Array<ItemEntity> = Array.from(entities);\n\n\t\tfor (const filter of this.activeFilters) {\n\n\t\t\tconst filterTypeId = filter.getFilterTypeId(),\n\t\t\t\tfilterType = this.getFilterType(filterTypeId),\n\t\t\t\tvalue = filter.getFilterValue();\n\n\t\t\tfilteredEntities = filterType.filterMany(filteredEntities, fields.get(filter.getFieldId().toString()), value);\n\t\t}\n\n\t\treturn filteredEntities;\n\t}\n\n\tremoveAll(): void {\n\t\tthis.activeFilters.length = 0;\n\t}\n\n\tremove(filterId: FilterId): void {\n\n\t\tthis.activeFilters =\n\t\t\tthis.activeFilters.filter((filter: Filter) => {\n\t\t\t\treturn filter.getFilterId() !== filterId;\n\t\t\t});\n\t}\n\n\tprivate getFilterType(filterTypeId: FilterTypeId): BaseFilterType<any> {\n\t\treturn this.filterTypeManager.getFilterType(filterTypeId);\n\t}\n\n\n}\n","import { FilterManager } from './filter.manager';\n\n\nexport class FilterManagerFactory {\n\n\tcreate(enabled: boolean = false): FilterManager {\n\t\treturn new FilterManager();\n\t}\n}\n","import { AggregateArchive } from '@generic-ui/hermes';\n\n\nexport class QuickFilterEnabledArchive extends AggregateArchive<boolean> {\n\n\tstatic readonly default = false;\n\n\tconstructor() {\n\t\tsuper(QuickFilterEnabledArchive.default);\n\t}\n\n}\n","import { DomainEventHandler, DomainEventType } from '@generic-ui/hermes';\n\nimport { QuickFilterEnabledArchive } from './quick-filter-enabled.archive';\nimport { ConfigQuickFilterSetEvent } from '../../core/quick/config-quick-filter-set.event';\nimport { StructureId } from '../../../../structure-core/src/api/global/structure.id';\n\n\nexport class ConfigQuickFilterSetEventHandler implements DomainEventHandler<StructureId, ConfigQuickFilterSetEvent> {\n\n\tconstructor(private readonly quickFilterEnabledArchive: QuickFilterEnabledArchive) {\n\t}\n\n\tstatic readonly services = [QuickFilterEnabledArchive];\n\n\tforEvent(): DomainEventType<ConfigQuickFilterSetEvent> {\n\t\treturn ConfigQuickFilterSetEvent;\n\t}\n\n\thandle(event: ConfigQuickFilterSetEvent): void {\n\n\t\tif (event.ofMessageType('ConfigQuickFilterSetEvent')) {\n\t\t\tthis.quickFilterEnabledArchive.next(event.getAggregateId(), event.getEnabled());\n\t\t}\n\n\t}\n\n}\n","import { AggregateArchive } from '@generic-ui/hermes';\n\n\nexport class FilterEnabledArchive extends AggregateArchive<boolean> {\n\n\tstatic readonly default = false;\n\n\tconstructor() {\n\t\tsuper(FilterEnabledArchive.default);\n\t}\n\n}\n","import { DomainEventHandler, DomainEventType } from '@generic-ui/hermes';\n\nimport { FilterEnabledArchive } from './filter-enabled.archive';\nimport { ConfigFilterSetEvent } from '../../core/config/config-filter-set.event';\nimport { StructureId } from '../../../../structure-core/src/api/global/structure.id';\n\n\nexport class ConfigFilterSetEventHandler implements DomainEventHandler<StructureId, ConfigFilterSetEvent> {\n\n\tconstructor(private readonly filterEnabledArchive: FilterEnabledArchive) {\n\t}\n\n\tstatic readonly services = [FilterEnabledArchive];\n\n\tforEvent(): DomainEventType<ConfigFilterSetEvent> {\n\t\treturn ConfigFilterSetEvent;\n\t}\n\n\thandle(event: ConfigFilterSetEvent): void {\n\n\t\tif (event.ofMessageType('ConfigFilterSetEvent')) {\n\t\t\tthis.filterEnabledArchive.next(event.getAggregateId(), event.getEnabled());\n\t\t}\n\n\t}\n\n}\n","import { FilterTypeModel } from './filter-type.model';\nimport { FieldId } from '../../../../field/src/domain/field/field.id';\n\nexport class FilterTypeCollectionModel {\n\n\tprivate readonly map: Map<string, Array<FilterTypeModel>>; // = new WeakMap<FieldId, Array<FilterTypeReadModel>>();\n\n\tconstructor(map: Map<string, Array<FilterTypeModel>>) {\n\t\tthis.map = map;\n\t}\n\n\tgetFilterTypes(fieldId: FieldId): Array<FilterTypeModel> {\n\t\tconst result = this.map.get(fieldId.toString());\n\n\t\tif (result === undefined) {\n\t\t\treturn [];\n\t\t} else {\n\t\t\treturn result;\n\t\t}\n\t}\n\n}\n","import { AggregateArchive } from '@generic-ui/hermes';\n\nimport { FilterTypeCollectionModel } from '../../api/type/filter-type-collection.model';\n\n\nexport class FilterTypeArchive extends AggregateArchive<FilterTypeCollectionModel> {\n\n\tstatic readonly default = new FilterTypeCollectionModel(new Map());\n\n\tconstructor() {\n\t\tsuper(FilterTypeArchive.default);\n\t}\n\n}\n","import { StructureId } from '../../../../../structure-core/src/api/global/structure.id';\nimport { FilterTypeModel } from '../../../api/type/filter-type.model';\nimport { StructureDomainEvent } from '../../../../../structure-core/src/core/structure.domain-event';\n\nexport class FilterTypesInitedEvent extends StructureDomainEvent {\n\n\tconstructor(aggregateId: StructureId,\n\t\t\t\tprivate readonly map: Map<string, Array<FilterTypeModel>>) {\n\t\tsuper(aggregateId, map, 'FilterTypesInitedEvent');\n\t}\n\n\tgetMap(): Map<string, Array<FilterTypeModel>> {\n\t\treturn this.map;\n\t}\n\n}\n","import { AggregateArchive } from '@generic-ui/hermes';\n\nimport { ActiveFilterModel } from '../../api/active/active-filter.model';\n\n\nexport class ActiveFilterArchive extends AggregateArchive<ReadonlyArray<ActiveFilterModel>> {\n\n\tstatic readonly default: ReadonlyArray<ActiveFilterModel> = [];\n\n\tconstructor() {\n\t\tsuper(ActiveFilterArchive.default);\n\t}\n\n}\n","import { createContainer } from '@generic-ui/hermes';\nimport { ActiveFilterArchive } from '../../core-read/active/active-filter.archive';\nimport { FilterTypeArchive } from '../../core-read/type/filter-type.archive';\n\nconst filterDiContainer = createContainer();\n\nfilterDiContainer.provide(ActiveFilterArchive);\nfilterDiContainer.provide(FilterTypeArchive);\n\nexport const FilterDiContainer = filterDiContainer;\n","import { DomainEventHandler, DomainEventType } from '@generic-ui/hermes';\n\nimport { StructureId } from '../../../../structure-core/src/api/global/structure.id';\nimport { FilterTypeArchive } from './filter-type.archive';\nimport { FilterTypeCollectionModel } from '../../api/type/filter-type-collection.model';\nimport { FilterTypesInitedEvent } from '../../core/type/init/filter-types-inited.event';\nimport { FilterTypeModel } from '../../api/type/filter-type.model';\nimport { FilterDiContainer } from '../../api/di/filter.di-container';\n\n\nexport class FilterTypeConfigFilterSetEventHandler implements DomainEventHandler<StructureId, FilterTypesInitedEvent> {\n\n\tprivate readonly filterTypeArchive: FilterTypeArchive = FilterDiContainer.resolve(FilterTypeArchive);\n\n\tforEvent(): DomainEventType<FilterTypesInitedEvent> {\n\t\treturn FilterTypesInitedEvent;\n\t}\n\n\thandle(filterTypesInitedEvent: FilterTypesInitedEvent): void {\n\n\t\tif (filterTypesInitedEvent.ofMessageType('FilterTypesInitedEvent')) {\n\n\t\t\tconst map: Map<string, Array<FilterTypeModel>> = filterTypesInitedEvent.getMap();\n\n\t\t\tthis.filterTypeArchive.next(filterTypesInitedEvent.getAggregateId(), new FilterTypeCollectionModel(map));\n\t\t}\n\t}\n\n}\n","import { StructureId } from '../../../structure-core/src/api/global/structure.id';\nimport { ActiveFilterModel } from '../api/active/active-filter.model';\nimport { StructureDomainEvent } from '../../../structure-core/src/core/structure.domain-event';\n\nexport class ActiveFiltersSetEvent extends StructureDomainEvent {\n\n\tconstructor(structureId: StructureId,\n\t\t\t\tprivate readonly filters: ReadonlyArray<ActiveFilterModel>) {\n\t\tsuper(structureId, filters, 'ActiveFiltersSetEvent');\n\t}\n\n\tgetFilters(): ReadonlyArray<any> {\n\t\treturn this.filters;\n\t}\n\n}\n","import { DomainEventHandler, DomainEventType } from '@generic-ui/hermes';\n\nimport { StructureId } from '../../../../structure-core/src/api/global/structure.id';\nimport { ActiveFiltersSetEvent } from '../../core/active-filters-set.event';\nimport { ActiveFilterArchive } from './active-filter.archive';\nimport { ActiveFilterModel } from '../../api/active/active-filter.model';\nimport { FilterDiContainer } from '../../api/di/filter.di-container';\n\n\nexport class ActiveFiltersSetEventHandler implements DomainEventHandler<StructureId, ActiveFiltersSetEvent> {\n\n\tprivate readonly activeFilterRepository: ActiveFilterArchive = FilterDiContainer.resolve(ActiveFilterArchive);\n\n\tforEvent(): DomainEventType<ActiveFiltersSetEvent> {\n\t\treturn ActiveFiltersSetEvent;\n\t}\n\n\thandle(activeFiltersSetEvent: ActiveFiltersSetEvent): void {\n\n\t\tif (activeFiltersSetEvent.ofMessageType('ActiveFiltersSetEvent')) {\n\n\t\t\tconst activeFilters: ReadonlyArray<ActiveFilterModel> = activeFiltersSetEvent.getFilters();\n\n\t\t\tthis.activeFilterRepository.next(activeFiltersSetEvent.getAggregateId(), activeFilters);\n\t\t}\n\t}\n\n}\n","import { StructureId } from '../../../../../structure-core/src/api/global/structure.id';\nimport { UniqueValue } from '../../../domain/unique/unique-value';\nimport { StructureDomainEvent } from '../../../../../structure-core/src/core/structure.domain-event';\n\nexport class UniqueFilterCalculatedEvent extends StructureDomainEvent {\n\n\tconstructor(aggregateId: StructureId,\n\t\t\t\tprivate readonly map: Map<string, Array<UniqueValue>>) {\n\t\tsuper(aggregateId, map, 'UniqueFilterCalculatedEvent');\n\t}\n\n\tgetUniqueValues(): Map<string, Array<UniqueValue>> {\n\t\treturn this.map;\n\t}\n\n}\n","import { FieldId } from '../../../../field/src/domain/field/field.id';\nimport { UniqueValueModel } from './unique-value.model';\n\nexport class UniqueValueCollectionModel {\n\n\tprivate readonly map = new Map<string, Array<UniqueValueModel>>();\n\n\tprivate readonly allSelected: Map<string, boolean> = new Map<string, boolean>();\n\n\tprivate readonly allDisabled: Map<string, boolean> = new Map<string, boolean>();\n\n\tconstructor(map: Map<string, Array<UniqueValueModel>>) {\n\t\tthis.map = map;\n\t\tthis.calculateSelection();\n\t}\n\n\tgetValues(fieldId: FieldId): Array<UniqueValueModel> {\n\t\treturn this.map.get(fieldId.toString());\n\t}\n\n\tareAllSelected(fieldId: FieldId): boolean {\n\t\treturn this.allSelected.get(fieldId.toString());\n\t}\n\n\tareAllDisabled(fieldId: FieldId): boolean {\n\t\treturn this.allDisabled.get(fieldId.toString());\n\t}\n\n\tisSelectAllChecked(fieldId: FieldId): boolean {\n\t\treturn this.areAllSelected(fieldId);\n\t}\n\n\tisIndeterminate(fieldId: FieldId): boolean {\n\t\treturn !(this.areAllSelected(fieldId) || this.areAllDisabled(fieldId));\n\t}\n\n\tprivate calculateSelection(): void {\n\n\t\tfor (const key of Array.from(this.map.keys())) {\n\n\t\t\tconst values = this.map.get(key);\n\n\t\t\tthis.allSelected.set(\n\t\t\t\tkey,\n\t\t\t\t!values.some((r) => !r.isEnabled())\n\t\t\t);\n\n\t\t\tthis.allDisabled.set(\n\t\t\t\tkey,\n\t\t\t\t!values.some((r) => r.isEnabled())\n\t\t\t);\n\t\t}\n\t}\n}\n","import { AggregateArchive } from '@generic-ui/hermes';\nimport { UniqueValueCollectionModel } from '../../api/unique/unique-value-collection.model';\n\n\nexport class UniqueValueCollectionArchive extends AggregateArchive<UniqueValueCollectionModel> {\n\n\tstatic readonly default = new UniqueValueCollectionModel(new Map());\n\n\tconstructor() {\n\t\tsuper(UniqueValueCollectionArchive.default);\n\t}\n\n}\n","import { UniqueValueId } from '../../domain/unique/unique-value-id';\n\nexport class UniqueValueModel {\n\n\tprivate readonly id: UniqueValueId;\n\n\tprivate readonly value: any;\n\n\tprivate readonly displayValue: string;\n\n\tprivate readonly enabled: boolean;\n\n\tconstructor(\n\t\tid: UniqueValueId,\n\t\tvalue: any,\n\t\tenabled: boolean\n\t) {\n\t\tthis.id = id;\n\t\tthis.value = value;\n\t\tthis.enabled = enabled;\n\t}\n\n\tgetId(): UniqueValueId {\n\t\treturn this.id;\n\t}\n\n\tgetValue(): any {\n\t\treturn this.value;\n\t}\n\n\tgeDisplayValue(): string {\n\t\treturn this.displayValue;\n\t}\n\n\tisEnabled(): boolean {\n\t\treturn this.enabled;\n\t}\n\n}\n","import { DomainEventHandler, DomainEventType } from '@generic-ui/hermes';\n\nimport { StructureId } from '../../../../structure-core/src/api/global/structure.id';\nimport { UniqueFilterCalculatedEvent } from '../../core/unique/calculate/unique-filter-calculated.event';\nimport { UniqueValueCollectionArchive } from './unique-value-collection.archive';\nimport { UniqueValueCollectionModel } from '../../api/unique/unique-value-collection.model';\nimport { UniqueValue } from '../../domain/unique/unique-value';\nimport { UniqueValueModel } from '../../api/unique/unique-value.model';\n\n\nexport class UniqueFilterCalculatedEventHandler implements DomainEventHandler<StructureId, UniqueFilterCalculatedEvent> {\n\n\tconstructor(private readonly uniqueValuesRepository: UniqueValueCollectionArchive) {\n\t}\n\n\tstatic readonly services = [UniqueValueCollectionArchive];\n\n\tforEvent(): DomainEventType<UniqueFilterCalculatedEvent> {\n\t\treturn UniqueFilterCalculatedEvent;\n\t}\n\n\thandle(calculatedEvent: UniqueFilterCalculatedEvent): void {\n\n\t\tif (calculatedEvent.ofMessageType('UniqueFilterCalculatedEvent')) {\n\n\t\t\tconst uvRM = new Map();\n\n\t\t\tcalculatedEvent.getUniqueValues()\n\t\t\t\t\t\t   .forEach((values: Array<UniqueValue>, key: string) => {\n\n\t\t\t\t\t\t\t   const valuesRM = values.map((uv: UniqueValue) => {\n\t\t\t\t\t\t\t\t   return new UniqueValueModel(uv.getId(), uv.getDisplayValue(), uv.isEnabled());\n\t\t\t\t\t\t\t   });\n\n\t\t\t\t\t\t\t   uvRM.set(key, valuesRM);\n\t\t\t\t\t\t   });\n\n\n\t\t\tconst uniqueValues = new UniqueValueCollectionModel(\n\t\t\t\tuvRM\n\t\t\t);\n\n\t\t\tthis.uniqueValuesRepository.next(calculatedEvent.getAggregateId(), uniqueValues);\n\t\t}\n\t}\n\n}\n","import { DomainEventHandler, DomainEventType } from '@generic-ui/hermes';\n\nimport { StructureId } from '../../../../../structure-core/src/api/global/structure.id';\nimport { FieldsInitedEvent } from '../../../../../field/src/core/init/fields-inited.event';\n\n// TODO Remove\n\n\nexport class FilterTypeFieldsInitedEventHandler implements DomainEventHandler<StructureId, FieldsInitedEvent> {\n\n\t// constructor(private readonly filterTypeManagerRepository: FilterTypeManagerRepository,\n\t// \t\t\tprivate readonly domainEventPublisher: DomainEventPublisher) {\n\t// }\n\n\tforEvent(): DomainEventType<FieldsInitedEvent> {\n\t\treturn FieldsInitedEvent;\n\t}\n\n\thandle(fieldsInitedEvent: FieldsInitedEvent): void {\n\n\t\t// if (fieldsInitedEvent.ofMessageType('FieldsInitedEvent')) {\n\t\t//\n\t\t// \tconst fields = fieldsInitedEvent.getFields();\n\t\t//\n\t\t// \tconst manager = new FilterTypeManager(fields);\n\t\t//\n\t\t// \tthis.filterTypeManagerRepository.next(fieldsInitedEvent.getAggregateId(), manager);\n\t\t//\n\t\t// \tthis.domainEventPublisher.publish(new FilterTypesInitedEvent(fieldsInitedEvent.getAggregateId(), manager.getFieldIdsToFieldTypes()));\n\t\t// }\n\t}\n\n}\n","import { StructureId } from '../../../../../structure-core/src/api/global/structure.id';\nimport { FieldId } from '../../../../../field/src/domain/field/field.id';\nimport { StructureCommand } from '../../../../../structure-core/src/core/structure.command';\n\n\nexport class UnselectAllUniqueFilterCommand extends StructureCommand {\n\n\tconstructor(structureId: StructureId,\n\t\t\t\tprivate readonly fieldId: FieldId) {\n\t\tsuper(structureId, 'UnselectAllUniqueFilterCommand');\n\t}\n\n\tgetFieldId(): FieldId {\n\t\treturn this.fieldId;\n\t}\n\n}\n","import { CommandHandler, CommandType } from '@generic-ui/hermes';\n\nimport { UnselectAllUniqueFilterCommand } from './unselect-all-unique-filter.command';\nimport { StructureAggregate } from '../../../../../structure-core/src/domain/structure.aggregate';\nimport { FieldId } from '../../../../../field/src/domain/field/field.id';\n\n\nexport class UnselectAllUniqueFilterCommandHandler implements CommandHandler<StructureAggregate, UnselectAllUniqueFilterCommand> {\n\n\tforCommand(): CommandType<UnselectAllUniqueFilterCommand> {\n\t\treturn UnselectAllUniqueFilterCommand;\n\t}\n\n\thandle(structure: StructureAggregate, command: UnselectAllUniqueFilterCommand): void {\n\n\t\tconst fieldId: FieldId = command.getFieldId();\n\n\t\tstructure.unselectAllUniqueFilter(fieldId);\n\t}\n\n}\n","import { StructureId } from '../../../../../structure-core/src/api/global/structure.id';\nimport { FieldId } from '../../../../../field/src/domain/field/field.id';\nimport { UniqueValueId } from '../../../domain/unique/unique-value-id';\nimport { StructureCommand } from '../../../../../structure-core/src/core/structure.command';\n\n\nexport class UnselectUniqueFilterCommand extends StructureCommand {\n\n\tconstructor(structureId: StructureId,\n\t\t\t\tprivate readonly fieldId: FieldId,\n\t\t\t\tprivate readonly uniqueValueId: UniqueValueId) {\n\t\tsuper(structureId, 'UnselectUniqueFilterCommand');\n\t}\n\n\tgetFieldId(): FieldId {\n\t\treturn this.fieldId;\n\t}\n\n\tgetUniqueValueId(): UniqueValueId {\n\t\treturn this.uniqueValueId;\n\t}\n\n}\n","import { CommandHandler, CommandType } from '@generic-ui/hermes';\n\nimport { UnselectUniqueFilterCommand } from './unselect-unique-filter.command';\nimport { StructureAggregate } from '../../../../../structure-core/src/domain/structure.aggregate';\nimport { FieldId } from '../../../../../field/src/domain/field/field.id';\n\n\nexport class UnselectUniqueFilterCommandHandler implements CommandHandler<StructureAggregate, UnselectUniqueFilterCommand> {\n\n\tforCommand(): CommandType<UnselectUniqueFilterCommand> {\n\t\treturn UnselectUniqueFilterCommand;\n\t}\n\n\thandle(structure: StructureAggregate, command: UnselectUniqueFilterCommand): void {\n\n\t\tconst fieldId: FieldId = command.getFieldId(),\n\t\t\tuniqueValueId = command.getUniqueValueId();\n\n\t\tstructure.unselectUniqueFilter(fieldId, uniqueValueId);\n\t}\n\n}\n","import { StructureId } from '../../../../../structure-core/src/api/global/structure.id';\nimport { FieldId } from '../../../../../field/src/domain/field/field.id';\nimport { StructureCommand } from '../../../../../structure-core/src/core/structure.command';\n\n\nexport class SelectAllUniqueFilterCommand extends StructureCommand {\n\n\tconstructor(structureId: StructureId,\n\t\t\t\tprivate readonly fieldId: FieldId) {\n\t\tsuper(structureId, 'SelectAllUniqueFilterCommand');\n\t}\n\n\tgetFieldId(): FieldId {\n\t\treturn this.fieldId;\n\t}\n\n}\n","import { CommandHandler, CommandType } from '@generic-ui/hermes';\n\nimport { SelectAllUniqueFilterCommand } from './select-all-unique-filter.command';\nimport { StructureAggregate } from '../../../../../structure-core/src/domain/structure.aggregate';\nimport { FieldId } from '../../../../../field/src/domain/field/field.id';\n\n\nexport class SelectAllUniqueFilterCommandHandler implements CommandHandler<StructureAggregate, SelectAllUniqueFilterCommand> {\n\n\tforCommand(): CommandType<SelectAllUniqueFilterCommand> {\n\t\treturn SelectAllUniqueFilterCommand;\n\t}\n\n\thandle(structure: StructureAggregate, command: SelectAllUniqueFilterCommand): void {\n\n\t\tconst fieldId: FieldId = command.getFieldId();\n\n\t\tstructure.selectAllUniqueFilter(fieldId);\n\t}\n\n}\n","import { StructureId } from '../../../../../structure-core/src/api/global/structure.id';\nimport { FieldId } from '../../../../../field/src/domain/field/field.id';\nimport { UniqueValueId } from '../../../domain/unique/unique-value-id';\nimport { StructureCommand } from '../../../../../structure-core/src/core/structure.command';\n\n\nexport class SelectUniqueFilterCommand extends StructureCommand {\n\n\tconstructor(structureId: StructureId,\n\t\t\t\tprivate readonly fieldId: FieldId,\n\t\t\t\tprivate readonly uniqueValueId: UniqueValueId) {\n\t\tsuper(structureId, 'SelectUniqueFilterCommand');\n\t}\n\n\tgetFieldId(): FieldId {\n\t\treturn this.fieldId;\n\t}\n\n\tgetUniqueValueId(): UniqueValueId {\n\t\treturn this.uniqueValueId;\n\t}\n\n}\n","import { CommandHandler, CommandType } from '@generic-ui/hermes';\n\nimport { SelectUniqueFilterCommand } from './select-unique-filter.command';\nimport { StructureAggregate } from '../../../../../structure-core/src/domain/structure.aggregate';\nimport { FieldId } from '../../../../../field/src/domain/field/field.id';\n\n\nexport class SelectUniqueFilterCommandHandler implements CommandHandler<StructureAggregate, SelectUniqueFilterCommand> {\n\n\tforCommand(): CommandType<SelectUniqueFilterCommand> {\n\t\treturn SelectUniqueFilterCommand;\n\t}\n\n\thandle(structure: StructureAggregate, command: SelectUniqueFilterCommand): void {\n\n\t\tconst fieldId: FieldId = command.getFieldId(),\n\t\t\tuniqueValueId = command.getUniqueValueId();\n\n\t\tstructure.selectUniqueFilter(fieldId, uniqueValueId);\n\t}\n\n}\n","import { AggregateDefinition, AggregateId, AggregateRoot, Command, Container, DomainEvent, DomainProviders } from '@generic-ui/hermes';\n\nimport { ToggleFilterCommandHandler } from './toggle/toggle-filter.command-handler';\nimport { AddFilterCommandHandler } from './add/add-filter.command-handler';\nimport { RemoveAllFiltersCommandHandler } from './remove-all/remove-all-filters.command-handler';\nimport { RemoveFilterCommandHandler } from './remove/remove-filter.command-handler';\nimport { SetConfigFilterCommandHandler } from './config/set-config-filter.command-handler';\nimport { SetConfigQuickFilterCommandHandler } from './quick/set-config-quick-filter.command-handler';\nimport { FilterManagerFactory } from '../domain/filter.manager-factory';\nimport { ConfigQuickFilterSetEventHandler } from '../core-read/quick-filter/config-quick-filter-set.event-handler';\nimport { ConfigFilterSetEventHandler } from '../core-read/config/config-filter-set.event-handler';\nimport { FilterTypeConfigFilterSetEventHandler } from '../core-read/type/filter-type.config-filter-set.event-handler';\nimport { ActiveFiltersSetEventHandler } from '../core-read/active/active-filters-set.event-handler';\nimport { UniqueFilterCalculatedEventHandler } from '../core-read/unique/unique-filter-calculated.event-handler';\nimport { FilterTypeFieldsInitedEventHandler } from './type/init/filter-type.fields-inited.event-handler';\nimport { UnselectAllUniqueFilterCommandHandler } from './unique/unselect-all/unselect-all-unique-filter.command-handler';\nimport { UnselectUniqueFilterCommandHandler } from './unique/unselect/unselect-unique-filter.command-handler';\nimport { SelectAllUniqueFilterCommandHandler } from './unique/select-all/select-all-unique-filter.command-handler';\nimport { SelectUniqueFilterCommandHandler } from './unique/select/select-unique-filter.command-handler';\nimport { structureKey } from '../../../structure-core/src/api/global/structre.key';\n\n\nexport class FilterDomainModule implements DomainProviders {\n\n\tdefineAggregate(): AggregateDefinition<any, any, any> | null {\n\t\treturn null;\n\t}\n\n\tregisterKey(): string {\n\t\treturn structureKey;\n\t}\n\n\tregisterProviders(container: Container): void {\n\t\tcontainer.provide(FilterManagerFactory);\n\t}\n\n\tregisterCommandHandlers<I extends AggregateId, A extends AggregateRoot<I>, C extends Command<I>>(): Array<any> {\n\t\treturn [\n\t\t\tSetConfigFilterCommandHandler,\n\t\t\tSetConfigQuickFilterCommandHandler,\n\t\t\tToggleFilterCommandHandler,\n\t\t\tAddFilterCommandHandler,\n\t\t\tRemoveAllFiltersCommandHandler,\n\t\t\tRemoveFilterCommandHandler,\n\t\t\tSelectUniqueFilterCommandHandler,\n\t\t\tSelectAllUniqueFilterCommandHandler,\n\t\t\tUnselectUniqueFilterCommandHandler,\n\t\t\tUnselectAllUniqueFilterCommandHandler\n\t\t];\n\t}\n\n\tregisterDomainEventHandler<I extends AggregateId, E extends DomainEvent<I>>(): Array<any> {\n\t\treturn [\n\t\t\tConfigQuickFilterSetEventHandler,\n\t\t\tConfigFilterSetEventHandler,\n\t\t\tFilterTypeConfigFilterSetEventHandler,\n\t\t\tActiveFiltersSetEventHandler,\n\t\t\tUniqueFilterCalculatedEventHandler,\n\t\t\tFilterTypeFieldsInitedEventHandler\n\t\t];\n\t}\n\n\tregisterMultiDomainEventHandler<I extends AggregateId, E extends DomainEvent<I>>(): Array<any> {\n\t\treturn [];\n\t}\n\n}\n","import { FilterWarehouse } from '../api/filter.warehouse';\nimport { FilterEnabledArchive } from './config/filter-enabled.archive';\nimport { QuickFilterEnabledArchive } from './quick-filter/quick-filter-enabled.archive';\nimport { FilterTypeArchive } from './type/filter-type.archive';\nimport { UniqueValueCollectionArchive } from './unique/unique-value-collection.archive';\nimport { ActiveFilterArchive } from './active/active-filter.archive';\nimport { StructureId } from '../../../structure-core/src/api/global/structure.id';\nimport { hermesMap, HermesObservable, HermesSingle, Optional, singleFromObservable } from '@generic-ui/hermes';\nimport { FilterTypeCollectionModel } from '../api/type/filter-type-collection.model';\nimport { ActiveFilterModel } from '../api/active/active-filter.model';\nimport { UniqueValueCollectionModel } from '../api/unique/unique-value-collection.model';\nimport { FieldId } from '../../../field/src/domain/field/field.id';\nimport { FilterTypeModel } from '../api/type/filter-type.model';\nimport { FilterTypeId } from '../domain/type/filter-type.id';\nimport { FilterDiContainer } from '../api/di/filter.di-container';\n\n\nexport class FilterDomainWarehouse extends FilterWarehouse {\n\n\tprivate readonly activeFilterArchive: ActiveFilterArchive = FilterDiContainer.resolve(ActiveFilterArchive);\n\n\tprivate readonly filterTypeArchive: FilterTypeArchive = FilterDiContainer.resolve(FilterTypeArchive);\n\n\tconstructor(private readonly filterEnabledArchive: FilterEnabledArchive,\n\t\t\t\tprivate readonly structureQuickFilterRepository: QuickFilterEnabledArchive,\n\t\t\t\tprivate readonly uniqueValuesArchive: UniqueValueCollectionArchive) {\n\t\tsuper();\n\t}\n\n\tstatic readonly services = [FilterEnabledArchive, QuickFilterEnabledArchive, UniqueValueCollectionArchive];\n\n\tonFilteringEnabled(structureId: StructureId): HermesObservable<boolean> {\n\t\treturn this.filterEnabledArchive.on(structureId);\n\t}\n\n\tonQuickFiltersEnabled(structureId: StructureId): HermesObservable<boolean> {\n\t\treturn this.structureQuickFilterRepository.on(structureId);\n\t}\n\n\tonFilterTypes(structureId: StructureId): HermesObservable<FilterTypeCollectionModel> {\n\t\treturn this.filterTypeArchive.on(structureId);\n\t}\n\n\tfindFilterTypes(structureId: StructureId): Optional<FilterTypeCollectionModel> {\n\t\treturn this.filterTypeArchive.find(structureId);\n\t}\n\n\tonFilterTypesForFieldId(fieldId: FieldId, structureId: StructureId): HermesObservable<ReadonlyArray<FilterTypeModel>> {\n\t\treturn this.onFilterTypes(structureId)\n\t\t\t\t   .pipe(\n\t\t\t\t\t   hermesMap((map: FilterTypeCollectionModel) => {\n\t\t\t\t\t\t   return map.getFilterTypes(fieldId);\n\t\t\t\t\t   })\n\t\t\t\t   );\n\t}\n\n\tonActiveFilters(structureId: StructureId): HermesObservable<ReadonlyArray<ActiveFilterModel>> {\n\t\treturn this.activeFilterArchive.on(structureId);\n\t}\n\n\tfindFilters(structureId: StructureId): Optional<ReadonlyArray<ActiveFilterModel>> {\n\t\treturn this.activeFilterArchive.find(structureId);\n\t}\n\n\tonUniqueValues(structureId: StructureId): HermesObservable<UniqueValueCollectionModel> {\n\t\treturn this.uniqueValuesArchive.on(structureId);\n\t}\n\n\tonceFilterTypeId(fieldId: FieldId, filterTypeName: string, structureId: StructureId): HermesSingle<Optional<FilterTypeId>> {\n\t\treturn singleFromObservable(\n\t\t\tthis.onFilterTypes(structureId)\n\t\t\t\t.pipe(\n\t\t\t\t\thermesMap((map: FilterTypeCollectionModel) => {\n\t\t\t\t\t\tconst filterTypes = map.getFilterTypes(fieldId);\n\n\t\t\t\t\t\tconst filterType = filterTypes.find((fieldType) => fieldType.getName() === filterTypeName);\n\n\t\t\t\t\t\tif (filterType === undefined) {\n\t\t\t\t\t\t\treturn Optional.empty();\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn Optional.of(filterType.getId());\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t)\n\t\t);\n\n\t}\n\n}\n","import { FilterPublisher } from '../api/filter.publisher';\nimport { FilterConfig } from '../api/config/filter.config';\nimport { StructureId } from '../../../structure-core/src/api/global/structure.id';\nimport { FieldId } from '../../../field/src/domain/field/field.id';\nimport { FilterTypeId } from '../domain/type/filter-type.id';\nimport { FilterId } from '../api/id/filter.id';\nimport { UniqueValueId } from '../domain/unique/unique-value-id';\nimport { SetConfigFilterCommand } from './config/set-config-filter.command';\nimport { AddFilterCommand } from './add/add-filter.command';\nimport { RemoveAllFiltersCommand } from './remove-all/remove-all-filters.command';\nimport { RemoveFilterCommand } from './remove/remove-filter.command';\nimport { SelectAllUniqueFilterCommand } from './unique/select-all/select-all-unique-filter.command';\nimport { UnselectAllUniqueFilterCommand } from './unique/unselect-all/unselect-all-unique-filter.command';\nimport { SelectUniqueFilterCommand } from './unique/select/select-unique-filter.command';\nimport { UnselectUniqueFilterCommand } from './unique/unselect/unselect-unique-filter.command';\nimport { CommandDispatcher } from '@generic-ui/hermes';\n\n\nexport class FilterDomainPublisher extends FilterPublisher {\n\n\tconstructor(private readonly commandDispatcher: CommandDispatcher) {\n\t\tsuper();\n\t}\n\n\tstatic readonly services = [CommandDispatcher];\n\n\tsetConfig(config: FilterConfig, structureId: StructureId): void {\n\t\tthis.commandDispatcher.dispatch(new SetConfigFilterCommand(structureId, config));\n\t}\n\n\tadd(fieldId: FieldId, filterTypeId: FilterTypeId, value: any, structureId: StructureId): void {\n\t\tthis.commandDispatcher.dispatch(new AddFilterCommand(structureId, fieldId, filterTypeId, value));\n\t}\n\n\tremoveAll(structureId: StructureId): void {\n\t\tthis.commandDispatcher.dispatch(new RemoveAllFiltersCommand(structureId));\n\t}\n\n\tremove(filterId: FilterId, structureId: StructureId): void {\n\t\tthis.commandDispatcher.dispatch(new RemoveFilterCommand(structureId, filterId));\n\t}\n\n\tselectAllUniqueFilter(fieldId: FieldId, structureId: StructureId): void {\n\t\tthis.commandDispatcher.dispatch(new SelectAllUniqueFilterCommand(structureId, fieldId));\n\t}\n\n\tunselectAllUniqueFilter(fieldId: FieldId, structureId: StructureId): void {\n\t\tthis.commandDispatcher.dispatch(new UnselectAllUniqueFilterCommand(structureId, fieldId));\n\t}\n\n\tselectUniqueFilter(fieldId: FieldId, uniqueValueId: UniqueValueId, structureId: StructureId): void {\n\t\tthis.commandDispatcher.dispatch(new SelectUniqueFilterCommand(structureId, fieldId, uniqueValueId));\n\t}\n\n\tunselectUniqueFilter(fieldId: FieldId, uniqueValueId: UniqueValueId, structureId: StructureId): void {\n\t\tthis.commandDispatcher.dispatch(new UnselectUniqueFilterCommand(structureId, fieldId, uniqueValueId));\n\t}\n}\n","import { ApiProviders, Container, DomainInitializer } from '@generic-ui/hermes';\n\nimport { FilterPublisher } from './filter.publisher';\nimport { FilterDomainModule } from '../core/filter.domain-module';\nimport { FilterWarehouse } from './filter.warehouse';\nimport { UniqueValueCollectionArchive } from '../core-read/unique/unique-value-collection.archive';\nimport { FilterEnabledArchive } from '../core-read/config/filter-enabled.archive';\nimport { QuickFilterEnabledArchive } from '../core-read/quick-filter/quick-filter-enabled.archive';\nimport { FilterDomainWarehouse } from '../core-read/filter.domain-warehouse';\nimport { FilterDomainPublisher } from '../core/filter.domain-publisher';\nimport { FilterIntegration } from '../api-integration/filter.integration';\n\n\nexport class FilterApiModule implements ApiProviders {\n\n\tregisterProviders(container: Container): void {\n\t\tcontainer.provide(FilterPublisher, FilterDomainPublisher);\n\t\tcontainer.provide(FilterWarehouse, FilterDomainWarehouse);\n\t\tcontainer.provide(UniqueValueCollectionArchive);\n\t\tcontainer.provide(FilterEnabledArchive);\n\t\tcontainer.provide(QuickFilterEnabledArchive);\n\t\tcontainer.provide(FilterIntegration);\n\t}\n}\n\nexport function initializeFilter(): void {\n\tnew DomainInitializer(new FilterApiModule(), new FilterDomainModule()).init();\n}\n","import { FilterPublisher } from '../../../../core/structure/filter/src/api/filter.publisher';\nimport { FilterWarehouse } from '../../../../core/structure/filter/src/api/filter.warehouse';\nimport { FilterIntegration } from '../../../../core/structure/filter/src/api-integration/filter.integration';\nimport { NgModule } from '@angular/core';\nimport { initializeFilter } from '../../../../core/structure/filter/src/api/filter.api-module';\nimport { CoreContainer } from '@generic-ui/hermes';\n\ninitializeFilter();\n\nexport function provideFilterCommandInvoker() {\n\treturn CoreContainer.resolve(FilterPublisher);\n}\n\nexport function provideFilterWarehouse() {\n\treturn CoreContainer.resolve(FilterWarehouse);\n}\n\nexport function provideFilterIntegration() {\n\treturn CoreContainer.resolve(FilterIntegration);\n}\n\n\n@NgModule({\n\tproviders: [\n\t\t{ provide: FilterPublisher, useFactory: provideFilterCommandInvoker },\n\t\t{ provide: FilterWarehouse, useFactory: provideFilterWarehouse },\n\t\t{ provide: FilterIntegration, useFactory: provideFilterIntegration }\n\t]\n})\nexport class FilterFeatureModule {\n\n}\n","import { NgModule, Provider } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { FeatureModule } from '@generic-ui/hermes';\nimport { fabricImports } from '../../../../../feature-view/grid-view/src/structure-fabric.imports';\nimport { ActiveFilterListComponent } from './active-filter-list.component';\nimport { ActiveSearchComponent } from './search/active-search.component';\nimport { FilterFeatureModule } from '../filter.feature-module';\nimport { GuiTemplateModule } from '../../../../../feature/gui-angular/template/gui.template.module';\n\n\n@NgModule({\n\timports: [\n\t\tCommonModule,\n\t\tfabricImports,\n\t\tGuiTemplateModule,\n\t\tFilterFeatureModule\n\t],\n\tdeclarations: [\n\t\tActiveFilterListComponent,\n\t\tActiveSearchComponent\n\t],\n\texports: [\n\t\tActiveFilterListComponent\n\t]\n})\nexport class ActiveFilterListModule extends FeatureModule {\n\n\tstatic forComponent(): Array<Provider> {\n\t\treturn [];\n\t}\n\n\t// constructor(@Optional() filterApiModule: FilterApiModule) {\n\t// \tsuper();\n\t// \tif (filterApiModule === null) {\n\t// \t\tthrow new Error('FilterApiModule is required.');\n\t// \t}\n\t// }\n\n}\n","import { NgModule, Provider } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ReactiveFormsModule } from '@angular/forms';\n\nimport { FeatureModule } from '@generic-ui/hermes';\nimport { FabricModule } from '@generic-ui/fabric';\n\nimport { FilterIconComponent } from './icon/filter-icon.component';\nimport { FilterMenuTriggerComponent } from './trigger/filter-menu-trigger.component';\nimport { FilterMenuComponent } from './filter-menu.component';\nimport { ColumnSelectorComponent } from './column-selector/column-selector.component';\nimport { FilterTypeSelectorComponent } from './filter-selector/filter-type-selector.component';\nimport { FilterValueComponent } from './value/filter-value.component';\nimport { FieldSelectorComponent } from './field-selector/field-selector.component';\nimport { ActiveFilterListModule } from '../active-filters/active-filter-list.module';\nimport { FilterMenuActiveFiltersComponent } from './active-filters/filter-menu-active-filters.component';\nimport { FilterFeatureModule } from '../filter.feature-module';\nimport { GuiTemplateModule } from '../../../../gui-angular/template/gui.template.module';\n\n\n@NgModule({\n\timports: [\n\t\tCommonModule,\n\t\tFabricModule,\n\t\tReactiveFormsModule,\n\t\tGuiTemplateModule,\n\t\tFilterFeatureModule,\n\t\tActiveFilterListModule\n\t],\n\tdeclarations: [\n\t\tFilterIconComponent,\n\t\tFilterMenuComponent,\n\t\tFilterMenuTriggerComponent,\n\t\tColumnSelectorComponent,\n\t\tFilterTypeSelectorComponent,\n\t\tFilterValueComponent,\n\t\tFieldSelectorComponent,\n\t\tFilterMenuActiveFiltersComponent\n\t],\n\texports: [\n\t\tFilterMenuTriggerComponent\n\t]\n})\nexport class FilterMenuFeatureModule extends FeatureModule {\n\n\tstatic forComponent(): Array<Provider> {\n\t\treturn [];\n\t}\n}\n","import { NgModule, Provider } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { FeatureModule } from '@generic-ui/hermes';\nimport { FabricButtonModule } from '@generic-ui/fabric';\n\nimport { ActiveFilterMenuTriggerDirective } from './filter/active-filter-menu-trigger.directive';\nimport { ActiveFilterMenuComponent } from './filter/active-filter-menu.component';\nimport { ActiveFilterService } from './filter/active-filter.service';\nimport { FilterMenuFeatureModule } from '../../../filter/src/menu/filter-menu.feature-module';\nimport { ActiveFilterListModule } from '../../../filter/src/active-filters/active-filter-list.module';\n\n\n@NgModule({\n\timports: [\n\t\tCommonModule,\n\n\t\tFilterMenuFeatureModule,\n\t\tActiveFilterListModule,\n\n\t\tFabricButtonModule\n\n\t],\n\tdeclarations: [\n\t\tActiveFilterMenuTriggerDirective,\n\t\tActiveFilterMenuComponent\n\t],\n\texports: [\n\t\tActiveFilterMenuTriggerDirective\n\t],\n\tproviders: [\n\t\tActiveFilterService\n\t]\n})\nexport class SourceCounterFeatureModule extends FeatureModule {\n\n\tstatic forComponent(): Array<Provider> {\n\t\treturn [];\n\t}\n\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { FabricModule } from '@generic-ui/fabric';\n\nimport { NumberFormatterModule } from '../../../../../feature/common/cdk/src/number-formatter/number-formatter.module';\nimport { StructureInfoPanelComponent } from './structure.info-panel.component';\nimport { StructureInfoModalComponent } from './info-modal/structure-info-modal.component';\nimport { StructureColumnManagerModule } from '../../column-manager/structure.column-manager.module';\nimport { StructureInfoIconComponent } from './icon/structure.info-icon.component';\nimport { StructureInfoPanelConfigConverter } from '../../../../../core/structure/structure-core/src/api/panel/info/structure.info-panel.config-converter';\nimport { SchemaManagerModule } from '../../../../../feature/schema/src/manager/schema-manager.module';\nimport { SourceCounterFeatureModule } from '../../../../../feature/structure/source/src/counter/source-counter.feature-module';\nimport { TranslationFeatureModule } from '../../../../../feature/l10n/src/translation.feature-module';\nimport { GuiTemplateModule } from '../../../../../feature/gui-angular/template/gui.template.module';\n\n\n@NgModule({\n\timports: [\n\t\tCommonModule,\n\t\tNumberFormatterModule,\n\t\tFabricModule,\n\t\tStructureColumnManagerModule,\n\t\tSchemaManagerModule,\n\t\tSourceCounterFeatureModule,\n\t\tTranslationFeatureModule,\n\t\tGuiTemplateModule\n\t],\n\tdeclarations: [\n\t\tStructureInfoPanelComponent,\n\t\tStructureInfoModalComponent,\n\t\tStructureInfoIconComponent\n\t],\n\texports: [\n\t\tStructureInfoModalComponent,\n\t\tStructureInfoPanelComponent\n\t],\n\tproviders: [\n\t\tStructureInfoPanelConfigConverter\n\t]\n})\nexport class StructureInfoPanelModule {\n\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, Input, OnInit, ViewEncapsulation } from '@angular/core';\n\nimport { SmartComponent } from '../../../../../feature/common/component/src/smart-component';\n\nimport { CellTemplateWithContext } from '../../../../../core/composition/src/core-read/definition/cell-template-with-context';\nimport { ChangedValueEmitter } from '../../../../../feature/composition/src/column/edit/changed-value.emitter';\nimport { FilterPublisher } from '../../../../../core/structure/filter/src/api/filter.publisher';\nimport { StructureId } from '../../../../../core/structure/structure-core/src/api/global/structure.id';\n\n\n@Component({\n\tselector: 'gui-structure-header-filter',\n\ttemplateUrl: `./structure.header-filter.component.html`,\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tencapsulation: ViewEncapsulation.None\n})\nexport class StructureHeaderFilterComponent extends SmartComponent implements OnInit {\n\n\t@Input()\n\tcolumn: CellTemplateWithContext;\n\n\tsub = new ChangedValueEmitter();\n\n\teditContext: any;\n\n\tconstructor(private readonly changeDetectorRef: ChangeDetectorRef,\n\t\t\t\telementRef: ElementRef,\n\t\t\t\tprivate readonly structureFilterCommandService: FilterPublisher,\n\t\t\t\tprivate readonly structureId: StructureId) {\n\t\tsuper(changeDetectorRef, elementRef);\n\n\t\tthis.editContext = {\n\t\t\tchanges: this.sub\n\t\t};\n\t}\n\n\tngOnInit() {\n\t\tthis.sub\n\t\t\t.on()\n\t\t\t.subscribe((phrase: string) => this.filter(phrase));\n\t}\n\n\tfilter(phrase: string): void {\n\t\t// this.structureFilterCommandService.addFilter(this.column.getFieldId(), '1', phrase, this.structureId);\n\t}\n\n\tprotected getSelectorName(): string {\n\t\treturn 'gui-structure-header-filter';\n\t}\n\n}\n","\n\n<!--\t\t<ng-container-->\n<!--\t\t\t\t*ngTemplateOutlet=\"column.editTemplate; context: editContext\">-->\n<!--\t\t</ng-container>-->\n\n<button gui-button [primary]=\"true\">Add Filter</button>\n\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\n\n@Component({\n\tselector: 'div[gui-structure-quick-filters]',\n\ttemplate: `\n\n\t\tQuickFilters\n\n\t`,\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tencapsulation: ViewEncapsulation.None\n})\nexport class StructureQuickFiltersComponent {\n}\n","import { Logger } from './logger';\n\nexport class ConsoleLogger extends Logger {\n\n\twarn(text: string): void {\n\t\t// eslint-disable-next-line no-console\n\t\tconsole.warn(text);\n\t}\n\n\terror(text: string): void {\n\t\t// eslint-disable-next-line no-console\n\t\tconsole.error(text);\n\t}\n\n}\n","import { NgModule } from '@angular/core';\nimport { Logger } from './logger';\nimport { ConsoleLogger } from './console.logger';\nimport { CoreContainer } from '@generic-ui/hermes';\n\n\nexport function initializeLogger(): void {\n\tCoreContainer.provide(Logger, ConsoleLogger);\n}\n\ninitializeLogger();\n\nexport function provideLogger() {\n\treturn CoreContainer.resolve(Logger);\n}\n\n@NgModule({\n\tproviders: [\n\t\t{ provide: Logger, useFactory: provideLogger }\n\t]\n})\nexport class LoggerModule {\n}\n","import { RandomStringGenerator } from '@generic-ui/hermes';\n\n\nexport class Item {\n\n\tprivate readonly id: string;\n\n\tprivate readonly source: any;\n\n\tprivate readonly position: number;\n\n\tprivate readonly version: number = 0;\n\n\tconstructor(source: any,\n\t\t\t\tposition: number,\n\t\t\t\tid?: string,\n\t\t\t\tversion: number = 0) {\n\t\tthis.source = source;\n\t\tthis.position = position;\n\t\tthis.version = version;\n\t\tif (!id) {\n\t\t\tthis.id = RandomStringGenerator.generate();\n\t\t} else {\n\t\t\tthis.id = id;\n\t\t}\n\t}\n\n\tgetSourceItem(): any {\n\t\treturn this.source;\n\t}\n\n\tgetUiId(): string {\n\t\treturn 'gui' + this.id.replace(/-/g, '');\n\t}\n\n\tgetId(): string {\n\t\treturn this.id;\n\t}\n\n\tgetVersion(): number {\n\t\treturn this.version;\n\t}\n\n\tgetPosition(): number {\n\t\treturn this.position;\n\t}\n\n\tisSelected(): boolean {\n\t\treturn false;\n\t}\n\n\tisEven(): boolean {\n\t\treturn this.position % 2 === 0;\n\t}\n\n\tisOdd(): boolean {\n\t\treturn this.position % 2 === 1;\n\t}\n\n\tequals(entity: Item): boolean {\n\t\treturn this.id === entity.id && this.getVersion() === entity.getVersion();\n\t}\n\n\tequalsById(id: string): boolean {\n\t\treturn this.id === id;\n\t}\n\n}\n","import { Entity } from '@generic-ui/hermes';\n\nimport { ItemEntityId } from './item.entity-id';\n\n\nexport class ItemEntity extends Entity<ItemEntityId> {\n\n\tsourceItem: any; // tODO\n\n\tprivate version: number;\n\n\tprivate position: number;\n\n\tconstructor(id: ItemEntityId,\n\t\t\t\tsourceItem: any,\n\t\t\t\tposition: number,\n\t\t\t\tversion: number = 0) {\n\t\tsuper(id);\n\t\tthis.sourceItem = sourceItem;\n\t\tthis.position = position;\n\t\tthis.version = version;\n\t}\n\n\tgetSourceItem(): any {\n\t\treturn this.sourceItem;\n\t}\n\n\tgetVersion(): number {\n\t\treturn this.version;\n\t}\n\n\tgetPosition(): number {\n\t\treturn this.position;\n\t}\n\n\tbumpVersion(): void {\n\t\tthis.version += 1;\n\t}\n\n\tsetPosition(position: number): void {\n\t\tthis.position = position;\n\t}\n\n\tclone(): ItemEntity {\n\n\t\tconst rawData = { ...this.sourceItem };\n\n\t\treturn new ItemEntity(this.getId(), rawData, this.version);\n\t}\n\n}\n","import { Item } from '../../api/item/item';\nimport { ItemEntity } from '../../domain/item/item.entity';\n\n\nexport class ItemFactory {\n\n\tcreate(source: any): Item;\n\tcreate(source: Array<any>): Array<Item>;\n\tcreate(source: any): any {\n\n\t\tif (Array.isArray(source)) {\n\t\t\treturn this.createItems(source);\n\t\t} else {\n\t\t\treturn this.createItem(source);\n\t\t}\n\t}\n\n\tcreateItems(source: Array<any>): Array<Item> {\n\t\treturn source.map((source: any) => this.createItem(source));\n\t}\n\n\tprivate createItem(originItem: ItemEntity | any): Item {\n\n\t\tif (originItem instanceof ItemEntity) {\n\t\t\treturn new Item(originItem.sourceItem, originItem.getPosition(), originItem.getId().toString(), originItem.getVersion());\n\t\t} else {\n\t\t\treturn new Item(originItem, 0);\n\t\t}\n\t}\n}\n","import { StructureId } from '../../../../structure-core/src/api/global/structure.id';\nimport { SearchConfig } from '../../api/config/search-config';\nimport { StructureCommand } from '../../../../structure-core/src/core/structure.command';\n\n\nexport class SetConfigSearchingCommand extends StructureCommand {\n\n\tconstructor(structureId: StructureId,\n\t\t\t\tprivate readonly searchConfig: SearchConfig) {\n\t\tsuper(structureId, 'SetConfigSearchingCommand');\n\t}\n\n\tgetConfig(): SearchConfig {\n\t\treturn this.searchConfig;\n\t}\n\n}\n","import { StructureId } from '../../../../structure-core/src/api/global/structure.id';\nimport { StructureDomainEvent } from '../../../../structure-core/src/core/structure.domain-event';\n\nexport class ConfigSearchingSetEvent extends StructureDomainEvent {\n\n\tconstructor(aggregateId: StructureId,\n\t\t\t\tprivate readonly enabled: boolean) {\n\t\tsuper(aggregateId, enabled, 'ConfigSearchingSetEvent');\n\t}\n\n\tisEnabled(): boolean {\n\t\treturn this.enabled;\n\t}\n\n}\n","import { CommandHandler, CommandType, CoreContainer, DomainEventPublisher } from '@generic-ui/hermes';\n\nimport { SetConfigSearchingCommand } from './set-config-searching.command';\nimport { ConfigSearchingSetEvent } from './config-searching-set.event';\nimport { StructureAggregate } from '../../../../structure-core/src/domain/structure.aggregate';\n\n\nexport class SetConfigSearchingCommandHandler implements CommandHandler<StructureAggregate, SetConfigSearchingCommand> {\n\n\tprivate readonly domainEventPublisher: DomainEventPublisher = CoreContainer.resolve(DomainEventPublisher);\n\n\tforCommand(): CommandType<SetConfigSearchingCommand> {\n\t\treturn SetConfigSearchingCommand;\n\t}\n\n\thandle(aggregate: StructureAggregate, command: SetConfigSearchingCommand): void {\n\n\t\tconst searchingConfig = command.getConfig();\n\n\t\taggregate.setSearchingConfig(searchingConfig);\n\t}\n\n\tpublish(aggregate: StructureAggregate, command: SetConfigSearchingCommand): void {\n\n\t\tconst searchingConfig = command.getConfig();\n\n\t\tthis.domainEventPublisher.publish(new ConfigSearchingSetEvent(command.getAggregateId(), searchingConfig.enabled));\n\t}\n\n}\n","import { StructureId } from '../../../../../structure-core/src/api/global/structure.id';\nimport { StructureCommand } from '../../../../../structure-core/src/core/structure.command';\n\nexport class SetSearchPhraseCommand extends StructureCommand {\n\n\tconstructor(structureId: StructureId,\n\t\t\t\tprivate readonly phrase: string,\n\t\t\t\tprivate readonly initial: boolean) {\n\t\tsuper(structureId, 'SetSearchPhraseCommand');\n\t}\n\n\tgetPhrase(): string {\n\t\treturn this.phrase;\n\t}\n\n\tisInitial(): boolean {\n\t\treturn this.initial;\n\t}\n\n}\n","import { StructureId } from '../../../../../structure-core/src/api/global/structure.id';\nimport { StructureDomainEvent } from '../../../../../structure-core/src/core/structure.domain-event';\n\nexport class SearchPhraseSetDomainEvent extends StructureDomainEvent {\n\n\tconstructor(aggregateId: StructureId,\n\t\t\t\tprivate readonly phrase: string,\n\t\t\t\tprivate readonly initial: boolean) {\n\t\tsuper(aggregateId, { phrase, initial }, 'SearchPhraseSetDomainEvent');\n\t}\n\n\tgetPhrase(): string {\n\t\treturn this.phrase;\n\t}\n\n\tisInitial(): boolean {\n\t\treturn this.initial;\n\t}\n\n}\n","import { ItemEntity } from '../../../domain/item/item.entity';\nimport { StructureId } from '../../../../../structure-core/src/api/global/structure.id';\nimport { StructureDomainEvent } from '../../../../../structure-core/src/core/structure.domain-event';\n\n\nexport class OriginSetEvent extends StructureDomainEvent {\n\n\tconstructor(aggregateId: StructureId,\n\t\t\t\tprivate readonly origin: Array<ItemEntity>) {\n\t\tsuper(aggregateId, origin, 'OriginSetEvent');\n\t}\n\n\tgetOrigin(): Array<ItemEntity> {\n\t\treturn this.origin;\n\t}\n}\n","import { StructureId } from '../../../structure-core/src/api/global/structure.id';\nimport { SummariesValues } from '../domain/calculation/summaries.values';\nimport { StructureDomainEvent } from '../../../structure-core/src/core/structure.domain-event';\n\n\nexport class StructureSummariesChangedEvent extends StructureDomainEvent {\n\n\tconstructor(structureId: StructureId,\n\t\t\t\tprivate readonly values: Map<string, SummariesValues>) {\n\t\tsuper(structureId, values, 'StructureSummariesChangedEvent');\n\t}\n\n\tgetSummaries() {\n\t\treturn this.values;\n\t}\n\n}\n","import { ItemEntity } from '../../domain/item/item.entity';\nimport { StructureId } from '../../../../structure-core/src/api/global/structure.id';\nimport { StructureDomainEvent } from '../../../../structure-core/src/core/structure.domain-event';\n\nexport class StructurePreparedEntitiesSetEvent extends StructureDomainEvent {\n\n\tconstructor(aggregateId: StructureId,\n\t\t\t\tprivate readonly preparedItems: Array<ItemEntity>) {\n\t\tsuper(aggregateId, preparedItems, 'StructurePreparedEntitiesSetEvent');\n\t}\n\n\tgetPreparedItems(): Array<ItemEntity> {\n\t\treturn this.preparedItems;\n\t}\n}\n","import { AggregateEvent, CoreContainer, DomainEventPublisher } from '@generic-ui/hermes';\n\nimport { StructureOriginChangedAggregateEvent } from './origin/structure.origin-changed.aggregate-event';\nimport { OriginSetEvent } from './origin/set/origin-set.event';\nimport { StructureSourceItemEditedAggregateEvent } from './origin/edit/structure.source-item-edited.aggregate-event';\nimport { StructureSourceItemEditedEvent } from './origin/edit/structure.source-item-edited.event';\nimport { StructureSummariesChangedAggregateEvent } from '../../../summaries/src/core/structure.summaries-changed.aggregate-event';\nimport { StructureSummariesChangedEvent } from '../../../summaries/src/core/structure.summaries-changed.event';\nimport { StructurePreparedEntitiesSetAggregateEvent } from './prepared/structure.prepared-entities-set.aggregate-event';\nimport { StructurePreparedEntitiesSetEvent } from './prepared/structure.prepared-entities-set.event';\nimport { StructureId } from '../../../structure-core/src/api/global/structure.id';\nimport { UniqueFilterCalculatedAggregateEvent } from '../../../filter/src/core/unique/calculate/unique-filter-calculated.aggregate-event';\n\n\nexport class SourceDomainEventPublisher {\n\n\tprivate readonly domainEventPublisher: DomainEventPublisher = CoreContainer.resolve(DomainEventPublisher);\n\n\tpublish(events: ReadonlyArray<AggregateEvent<StructureId>>): void {\n\n\t\tevents.forEach((event) => {\n\t\t\tthis.publishEvent(event);\n\t\t});\n\t}\n\n\tprivate publishEvent(event: AggregateEvent<StructureId>): void {\n\n\t\tif (event.getType() === 'StructureOriginChangedAggregateEvent') {\n\n\t\t\tconst structureOriginChangedAggregateEvent = (event as StructureOriginChangedAggregateEvent);\n\n\t\t\tconst domainEvent = new OriginSetEvent(structureOriginChangedAggregateEvent.getAggregateId(), structureOriginChangedAggregateEvent.getOrigin());\n\n\t\t\tthis.domainEventPublisher.publish(domainEvent);\n\t\t}\n\n\t\tif (event.getType() === 'StructureSourceItemEditedAggregateEvent') {\n\n\t\t\tconst structureSourceItemEditedAggregateEvent = (event as StructureSourceItemEditedAggregateEvent);\n\n\t\t\tconst domainEvent = new StructureSourceItemEditedEvent(\n\t\t\t\tstructureSourceItemEditedAggregateEvent.getAggregateId(),\n\t\t\t\tstructureSourceItemEditedAggregateEvent.getBeforeItem(),\n\t\t\t\tstructureSourceItemEditedAggregateEvent.getAfterItem()\n\t\t\t);\n\n\t\t\tthis.domainEventPublisher.publish(domainEvent);\n\t\t}\n\n\t\tif (event.getType() === 'StructureSummariesChangedAggregateEvent') {\n\n\t\t\tconst structureSummariesChangedAggregateEvent = (event as StructureSummariesChangedAggregateEvent);\n\n\t\t\tconst domainEvent = new StructureSummariesChangedEvent(\n\t\t\t\tstructureSummariesChangedAggregateEvent.getAggregateId(),\n\t\t\t\tstructureSummariesChangedAggregateEvent.getSummaries()\n\t\t\t);\n\n\t\t\tthis.domainEventPublisher.publish(domainEvent);\n\n\t\t}\n\n\t\tif (event.getType() === 'StructurePreparedEntitiesSetAggregateEvent') {\n\n\t\t\tconst structurePreparedEntitiesSetAggregateEvent = (event as StructurePreparedEntitiesSetAggregateEvent);\n\n\t\t\tconst domainEvent = new StructurePreparedEntitiesSetEvent(\n\t\t\t\tstructurePreparedEntitiesSetAggregateEvent.getAggregateId(),\n\t\t\t\tstructurePreparedEntitiesSetAggregateEvent.getPreparedItems()\n\t\t\t);\n\n\t\t\tthis.domainEventPublisher.publish(domainEvent);\n\t\t}\n\n\t\tif (event.getType() === 'UniqueFilterCalculatedAggregateEvent') {\n\n\t\t\tconst uniqueFilterCalculatedAggregateEvent = (event as UniqueFilterCalculatedAggregateEvent);\n\n\t\t\tconst domainEvent = uniqueFilterCalculatedAggregateEvent.toDomainEvent();\n\n\t\t\tthis.domainEventPublisher.publish(domainEvent);\n\t\t}\n\t}\n\n}\n","import { CommandHandler, CommandType, CoreContainer, DomainEventPublisher } from '@generic-ui/hermes';\n\nimport { SetSearchPhraseCommand } from './set-search-phrase.command';\nimport { SearchPhraseSetDomainEvent } from './search-phrase-set.domain-event';\nimport { SourceDomainEventPublisher } from '../../../../../source/src/core/source.domain-event.publisher';\nimport { StructureAggregate } from '../../../../../structure-core/src/domain/structure.aggregate';\n\n\nexport class StructureSetSearchPhraseCommandHandler implements CommandHandler<StructureAggregate, SetSearchPhraseCommand> {\n\n\tprivate readonly domainEventPublisher: DomainEventPublisher = CoreContainer.resolve(DomainEventPublisher);\n\n\tconstructor(private readonly structureSourceDomainEventPublisher: SourceDomainEventPublisher) {\n\t}\n\n\tstatic readonly services = [SourceDomainEventPublisher];\n\n\tforCommand(): CommandType<SetSearchPhraseCommand> {\n\t\treturn SetSearchPhraseCommand;\n\t}\n\n\thandle(aggregate: StructureAggregate, command: SetSearchPhraseCommand): void {\n\n\t\tconst phrase = command.getPhrase();\n\n\t\taggregate.addSearchPhrase(phrase);\n\t}\n\n\tpublish(aggregate: StructureAggregate, command: SetSearchPhraseCommand): void {\n\n\t\tconst phrase = command.getPhrase(),\n\t\t\tinitial = command.isInitial();\n\n\t\tthis.domainEventPublisher.publish(new SearchPhraseSetDomainEvent(command.getAggregateId(), phrase, initial));\n\t\tthis.structureSourceDomainEventPublisher.publish(aggregate.getEvents());\n\t}\n\n}\n","import { ItemEntity } from '../../../source/src/domain/item/item.entity';\nimport { DataType } from '../../../field/src/domain/field/data/data-type';\nimport { FieldEntity } from '../../../field/src/domain/field/field.entity';\n\n\nexport class SearchManager {\n\n\tprivate searchFields: Array<FieldEntity> = [];\n\n\tprivate searchPhrase: string;\n\n\tprivate enabledDataTypes: Array<DataType> = [\n\t\tDataType.STRING\n\t];\n\n\taddSearchPhrase(fields: Array<FieldEntity>, searchPhrase: string): void {\n\n\t\tif (!searchPhrase) {\n\t\t\tthis.searchFields = [];\n\t\t\treturn;\n\t\t}\n\n\t\tconst searchableFields =\n\t\t\tfields.filter((field: FieldEntity) => {\n\t\t\t\treturn this.enabledDataTypes.some((dt: DataType) => dt === field.getDataType());\n\t\t\t});\n\n\t\tif (searchableFields.length === 0) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.searchFields = searchableFields;\n\n\t\tthis.searchPhrase = searchPhrase;\n\t}\n\n\tremoveSearchFilters(): void {\n\t\tthis.searchFields = [];\n\t}\n\n\tsearch(entities: Array<ItemEntity>): Array<ItemEntity> {\n\n\t\tif (entities.length === 0 || this.searchFields.length === 0) {\n\t\t\treturn entities;\n\t\t}\n\n\t\tconst searchedItems = new Set<ItemEntity>();\n\n\t\tfor (let i = 0; i < entities.length; i += 1) {\n\n\t\t\tthis.searchFields\n\t\t\t\t.filter((field: FieldEntity) => field.search(entities[i], this.searchPhrase))\n\t\t\t\t.forEach(() => {\n\t\t\t\t\tsearchedItems.add(entities[i]);\n\t\t\t\t});\n\t\t}\n\n\t\treturn Array.from(searchedItems);\n\t}\n\n}\n","import { SearchManager } from './search.manager';\n\n\nexport class SearchManagerFactory {\n\n\tcreate(): SearchManager {\n\t\treturn new SearchManager();\n\t}\n\n}\n","import { AggregateArchive } from '@generic-ui/hermes';\n\n\nexport class SearchHighlightArchive extends AggregateArchive<boolean> {\n\n\tstatic readonly HIGHLIGHTING = true;\n\n\tconstructor() {\n\t\tsuper(SearchHighlightArchive.HIGHLIGHTING);\n\t}\n\n}\n","import { AggregateArchive } from '@generic-ui/hermes';\n\n\nexport class SearchPlaceholderArchive extends AggregateArchive<string> {\n\n\tstatic readonly PLACEHOLDER = 'Search...';\n\n\tconstructor() {\n\t\tsuper(SearchPlaceholderArchive.PLACEHOLDER);\n\t}\n\n}\n","import { CommandDispatcher } from '@generic-ui/hermes';\n\nimport { SearchConfig } from '../api/config/search-config';\nimport { StructureId } from '../../../structure-core/src/api/global/structure.id';\nimport { SetConfigSearchingCommand } from './config/set-config-searching.command';\nimport { SetSearchPhraseCommand } from './phrase/set-phrase/set-search-phrase.command';\nimport { SearchHighlightArchive } from './highlight/search-highlight.archive';\nimport { SearchPlaceholderArchive } from './placeholder/search-placeholder.archive';\n\n\nexport class SearchDispatcher {\n\n\tconstructor(private readonly commandDispatcher: CommandDispatcher,\n\t\t\t\tprivate readonly searchHighlightArchive: SearchHighlightArchive,\n\t\t\t\tprivate readonly searchPlaceholderArchive: SearchPlaceholderArchive) {\n\t}\n\n\tstatic readonly services = [CommandDispatcher, SearchHighlightArchive, SearchPlaceholderArchive];\n\n\tsetSearchingConfig(config: SearchConfig, structureId: StructureId): void {\n\n\t\tif (config.highlighting !== undefined && config.highlighting !== null) {\n\t\t\tthis.searchHighlightArchive.next(structureId, config.highlighting);\n\t\t}\n\n\t\tif (config.placeholder !== undefined && config.placeholder !== null) {\n\t\t\tthis.searchPlaceholderArchive.next(structureId, config.placeholder);\n\t\t}\n\n\t\tif (config.phrase !== undefined && config.phrase !== null) {\n\t\t\tthis.searchOnInit(config.phrase, structureId);\n\t\t}\n\n\t\tthis.commandDispatcher.dispatch(new SetConfigSearchingCommand(structureId, config));\n\t}\n\n\tsearch(phrase: string, structureId: StructureId): void {\n\t\tthis.commandDispatcher.dispatch(new SetSearchPhraseCommand(structureId, phrase, false));\n\t}\n\n\tprivate searchOnInit(phrase: string, structureId: StructureId): void {\n\t\tthis.commandDispatcher.dispatch(new SetSearchPhraseCommand(structureId, phrase, true));\n\t}\n\n}\n","import { AggregateArchive } from '@generic-ui/hermes';\n\n\nexport class SearchPhraseArchive extends AggregateArchive<string> {\n\n\tstatic readonly SEARCH_PHRASE = '';\n\n\tconstructor() {\n\t\tsuper(SearchPhraseArchive.SEARCH_PHRASE);\n\t}\n\n}\n","import { DomainEventHandler, DomainEventType } from '@generic-ui/hermes';\n\nimport { SearchPhraseArchive } from './search-phrase.archive';\nimport { SearchPhraseSetDomainEvent } from './set-phrase/search-phrase-set.domain-event';\nimport { StructureId } from '../../../../structure-core/src/api/global/structure.id';\n\n\nexport class SearchPhraseSetEventHandler implements DomainEventHandler<StructureId, SearchPhraseSetDomainEvent> {\n\n\tconstructor(private readonly searchPhraseRepository: SearchPhraseArchive) {\n\t}\n\n\tstatic readonly services = [SearchPhraseArchive];\n\n\tforEvent(): DomainEventType<SearchPhraseSetDomainEvent> {\n\t\treturn SearchPhraseSetDomainEvent;\n\t}\n\n\thandle(event: SearchPhraseSetDomainEvent): void {\n\n\t\tif (event.ofMessageType('SearchPhraseSetDomainEvent')) {\n\t\t\tthis.searchPhraseRepository.next(event.getAggregateId(), event.getPhrase());\n\t\t}\n\t}\n\n}\n","import { AggregateArchive } from '@generic-ui/hermes';\n\n\nexport class SearchingEnabledArchive extends AggregateArchive<boolean> {\n\n\tstatic readonly ENABLED = false;\n\n\tconstructor() {\n\t\tsuper(SearchingEnabledArchive.ENABLED);\n\t}\n}\n","import { DomainEventHandler, DomainEventType } from '@generic-ui/hermes';\n\nimport { SearchingEnabledArchive } from './searching-enabled.archive';\n\nimport { ConfigSearchingSetEvent } from '../config/config-searching-set.event';\nimport { StructureId } from '../../../../structure-core/src/api/global/structure.id';\n\n\nexport class ConfigSearchingSetEventHandler implements DomainEventHandler<StructureId, ConfigSearchingSetEvent> {\n\n\tconstructor(private readonly searchingEnabledArchive: SearchingEnabledArchive) {\n\t}\n\n\tstatic readonly services = [SearchingEnabledArchive];\n\n\tforEvent(): DomainEventType<ConfigSearchingSetEvent> {\n\t\treturn ConfigSearchingSetEvent;\n\t}\n\n\thandle(event: ConfigSearchingSetEvent): void {\n\n\t\tif (event.ofMessageType('ConfigSearchingSetEvent')) {\n\t\t\tthis.searchingEnabledArchive.next(event.getAggregateId(), event.isEnabled());\n\t\t}\n\n\t}\n\n}\n","import { StructureId } from '../../../../../structure-core/src/api/global/structure.id';\nimport { StructureCommand } from '../../../../../structure-core/src/core/structure.command';\n\n\nexport class RemoveSearchPhraseCommand extends StructureCommand {\n\n\tconstructor(structureId: StructureId) {\n\t\tsuper(structureId, 'RemoveSearchPhraseCommand');\n\t}\n\n}\n","import { CommandHandler, CommandType, CoreContainer, DomainEventPublisher } from '@generic-ui/hermes';\nimport { FilterToggledEvent } from '../../../../../filter/src/core/toggle/filter-toggled.event';\nimport { RemoveSearchPhraseCommand } from './remove-search-phrase.command';\nimport { StructureAggregate } from '../../../../../structure-core/src/domain/structure.aggregate';\n\n\nexport class RemoveSearchPhraseCommandHandler implements CommandHandler<StructureAggregate, RemoveSearchPhraseCommand> {\n\n\tprivate readonly domainEventPublisher: DomainEventPublisher = CoreContainer.resolve(DomainEventPublisher);\n\n\tforCommand(): CommandType<RemoveSearchPhraseCommand> {\n\t\treturn RemoveSearchPhraseCommand;\n\t}\n\n\thandle(aggregate: StructureAggregate, command: RemoveSearchPhraseCommand): void {\n\n\t\taggregate.removeSearchPhrase();\n\t}\n\n\tpublish(aggregate: StructureAggregate, command: RemoveSearchPhraseCommand): void {\n\t\tthis.domainEventPublisher.publish(new FilterToggledEvent(command.getAggregateId()));\n\t}\n\n}\n","import { AggregateDefinition, AggregateId, AggregateRoot, Command, Container, DomainEvent, DomainProviders } from '@generic-ui/hermes';\n\nimport { SetConfigSearchingCommandHandler } from './config/set-config-searching.command-handler';\nimport { StructureSetSearchPhraseCommandHandler } from './phrase/set-phrase/structure.set-search-phrase.command-handler';\nimport { SearchManagerFactory } from '../domain/search.manager-factory';\nimport { SearchDispatcher } from './search.dispatcher';\nimport { SearchPhraseSetEventHandler } from './phrase/search-phrase-set.event-handler';\nimport { ConfigSearchingSetEventHandler } from './enabled/config-searching-set.event-handler';\nimport { RemoveSearchPhraseCommandHandler } from './phrase/remove/remove-search-phrase.command-handler';\nimport { structureKey } from '../../../structure-core/src/api/global/structre.key';\n\n\nexport class SearchDomainModule implements DomainProviders {\n\n\tdefineAggregate(): AggregateDefinition<any, any, any> | null {\n\t\treturn null;\n\t}\n\n\tregisterKey(): string {\n\t\treturn structureKey;\n\t}\n\n\tregisterProviders(container: Container): void {\n\t\tcontainer.provide(SearchManagerFactory);\n\t\tcontainer.provide(SearchDispatcher);\n\t}\n\n\tregisterCommandHandlers<I extends AggregateId, A extends AggregateRoot<I>, C extends Command<I>>(): Array<any> {\n\t\treturn [\n\t\t\tSetConfigSearchingCommandHandler,\n\t\t\tStructureSetSearchPhraseCommandHandler,\n\t\t\tRemoveSearchPhraseCommandHandler\n\t\t];\n\t}\n\n\tregisterDomainEventHandler<I extends AggregateId, E extends DomainEvent<I>>(): Array<any> {\n\t\treturn [\n\t\t\tSearchPhraseSetEventHandler,\n\t\t\tConfigSearchingSetEventHandler\n\t\t];\n\t}\n\n\tregisterMultiDomainEventHandler<I extends AggregateId, E extends DomainEvent<I>>(): Array<any> {\n\t\treturn [];\n\t}\n\n}\n","import { SearchingEnabledArchive } from '../core/enabled/searching-enabled.archive';\nimport { SearchPhraseArchive } from '../core/phrase/search-phrase.archive';\nimport { StructureId } from '../../../structure-core/src/api/global/structure.id';\nimport { SearchWarehouse } from '../api/search.warehouse';\nimport { HermesObservable } from '@generic-ui/hermes';\nimport { SearchHighlightArchive } from '../core/highlight/search-highlight.archive';\nimport { SearchPlaceholderArchive } from '../core/placeholder/search-placeholder.archive';\n\n\nexport class SearchDomainWarehouse extends SearchWarehouse {\n\n\tconstructor(private readonly searchingEnabledArchive: SearchingEnabledArchive,\n\t\t\t\tprivate readonly searchPhraseArchive: SearchPhraseArchive,\n\t\t\t\tprivate readonly searchHighlightArchive: SearchHighlightArchive,\n\t\t\t\tprivate readonly searchPlaceholderArchive: SearchPlaceholderArchive) {\n\t\tsuper();\n\t}\n\n\tstatic readonly services = [\n\t\tSearchingEnabledArchive,\n\t\tSearchPhraseArchive,\n\t\tSearchHighlightArchive,\n\t\tSearchPlaceholderArchive\n\t];\n\n\tonSearchEnabled(structureId: StructureId): HermesObservable<boolean> {\n\t\treturn this.searchingEnabledArchive.on(structureId);\n\t}\n\n\tonPhrase(structureId: StructureId): HermesObservable<string> {\n\t\treturn this.searchPhraseArchive.on(structureId);\n\t}\n\n\tonHighlight(structureId: StructureId): HermesObservable<boolean> {\n\t\treturn this.searchHighlightArchive.on(structureId);\n\t}\n\n\tonPlaceholder(structureId: StructureId): HermesObservable<string> {\n\t\treturn this.searchPlaceholderArchive.on(structureId);\n\t}\n\n}\n","import { hermesFilter, hermesMap, HermesObservable } from '@generic-ui/hermes';\nimport { StructureReadModelRootId } from '../../../structure-core/src/api/read/structure.read-model-root-id';\nimport { SearchPhraseSetDomainEvent } from '../core/phrase/set-phrase/search-phrase-set.domain-event';\nimport { SearchEventRepository } from '../api/search.event-repository';\n\n\nexport class SearchDomainEventRepository extends SearchEventRepository {\n\n\tconstructor() {\n\t\tsuper();\n\t}\n\n\tonSearchPhrase(structureId: StructureReadModelRootId): HermesObservable<string> {\n\t\treturn this.onEvent(structureId, SearchPhraseSetDomainEvent)\n\t\t\t\t   .pipe(\n\t\t\t\t\t   hermesFilter((event: SearchPhraseSetDomainEvent) => event.isInitial() === false),\n\t\t\t\t\t   hermesMap((event: SearchPhraseSetDomainEvent) => event.getPhrase()),\n\t\t\t\t\t   hermesFilter((phrase: string) => phrase !== null)\n\t\t\t\t   );\n\t}\n}\n","import { SearchDispatcher } from './search.dispatcher';\nimport { SearchConfig } from '../api/config/search-config';\nimport { StructureId } from '../../../structure-core/src/api/global/structure.id';\nimport { SearchPublisher } from '../api/search.publisher';\n\n\nexport class SearchDomainPublisher extends SearchPublisher {\n\n\tconstructor(private readonly searchDispatcher: SearchDispatcher) {\n\t\tsuper();\n\t}\n\n\tstatic readonly services = [SearchDispatcher];\n\n\tsetSearchingConfig(config: SearchConfig, structureId: StructureId): void {\n\t\tthis.searchDispatcher.setSearchingConfig(config, structureId);\n\t}\n\n\tsearch(phrase: string, structureId: StructureId): void {\n\t\tthis.searchDispatcher.search(phrase, structureId);\n\t}\n}\n","import { ApiProviders, Container, DomainInitializer } from '@generic-ui/hermes';\n\nimport { SearchDomainModule } from '../core/search.domain-module';\nimport { SearchPublisher } from './search.publisher';\nimport { SearchWarehouse } from './search.warehouse';\nimport { SearchEventRepository } from './search.event-repository';\nimport { SearchPhraseArchive } from '../core/phrase/search-phrase.archive';\nimport { SearchHighlightArchive } from '../core/highlight/search-highlight.archive';\nimport { SearchPlaceholderArchive } from '../core/placeholder/search-placeholder.archive';\nimport { SearchingEnabledArchive } from '../core/enabled/searching-enabled.archive';\nimport { SearchDomainWarehouse } from '../core-read/search.domain-warehouse';\nimport { SearchDomainEventRepository } from '../core-read/search.domain-event-repository';\nimport { SearchDomainPublisher } from '../core/search.domain-publisher';\n\n\nexport class SearchApiModule implements ApiProviders {\n\n\tregisterProviders(container: Container): void {\n\t\tcontainer.provide(SearchPublisher, SearchDomainPublisher);\n\t\tcontainer.provide(SearchWarehouse, SearchDomainWarehouse);\n\t\tcontainer.provide(SearchEventRepository, SearchDomainEventRepository);\n\n\t\tcontainer.provide(SearchPhraseArchive);\n\t\tcontainer.provide(SearchHighlightArchive);\n\t\tcontainer.provide(SearchPlaceholderArchive);\n\t\tcontainer.provide(SearchingEnabledArchive);\n\t}\n}\n\nexport function initializeSearch(): void {\n\tnew DomainInitializer(new SearchApiModule(), new SearchDomainModule()).init();\n}\n","import { NgModule, Provider } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ReactiveFormsModule } from '@angular/forms';\n\nimport { FabricModule } from '@generic-ui/fabric';\nimport { CoreContainer, FeatureModule } from '@generic-ui/hermes';\n\nimport { initializeSearch } from '../../../../core/structure/search/src/api/search.api-module';\nimport { SearchIconComponent } from './icon/search-icon.component';\nimport { SearchComponent } from './search.component';\nimport { SearchPublisher } from '../../../../core/structure/search/src/api/search.publisher';\nimport { SearchWarehouse } from '../../../../core/structure/search/src/api/search.warehouse';\nimport { SearchEventRepository } from '../../../../core/structure/search/src/api/search.event-repository';\nimport { GuiTemplateModule } from '../../../gui-angular/template/gui.template.module';\n\ninitializeSearch();\n\nexport function provideSearchCommandInvoker() {\n\treturn CoreContainer.resolve(SearchPublisher);\n}\n\nexport function provideSearchWarehouse() {\n\treturn CoreContainer.resolve(SearchWarehouse);\n}\n\nexport function provideSearchEventRepository() {\n\treturn CoreContainer.resolve(SearchEventRepository);\n}\n\n@NgModule({\n\timports: [\n\t\tCommonModule,\n\t\tFabricModule,\n\t\tReactiveFormsModule,\n\t\tGuiTemplateModule\n\t],\n\tdeclarations: [\n\t\tSearchIconComponent,\n\t\tSearchComponent\n\t],\n\texports: [\n\t\tSearchIconComponent,\n\t\tSearchComponent\n\t],\n\tproviders: [\n\t\t{ provide: SearchPublisher, useFactory: provideSearchCommandInvoker },\n\t\t{ provide: SearchWarehouse, useFactory: provideSearchWarehouse },\n\t\t{ provide: SearchEventRepository, useFactory: provideSearchEventRepository }\n\t]\n})\nexport class SearchFeatureModule extends FeatureModule {\n\n\tstatic forComponent(): Array<Provider> {\n\t\treturn [];\n\t}\n\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ReactiveFormsModule } from '@angular/forms';\n\nimport { StructureTopPanelComponent } from './structure.top-panel.component';\nimport { FilterMenuFeatureModule } from '../../../../../feature/structure/filter/src/menu/filter-menu.feature-module';\n\nimport { SearchFeatureModule } from '../../../../../feature/structure/search/src/search.feature-module';\n\n\n@NgModule({\n\timports: [\n\t\tCommonModule,\n\t\tReactiveFormsModule,\n\t\tFilterMenuFeatureModule,\n\t\tSearchFeatureModule\n\t],\n\tdeclarations: [\n\t\tStructureTopPanelComponent\n\t],\n\texports: [\n\t\tStructureTopPanelComponent\n\t]\n})\nexport class StructureTopPanelModule {\n}\n","import { NgModule, Provider } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { FeatureModule } from '@generic-ui/hermes';\n\nimport { UniqueValueListComponent } from './unique-value-list.component';\nimport { fabricImports } from '../../../../../feature-view/grid-view/src/structure-fabric.imports';\nimport { FilterFeatureModule } from '../filter.feature-module';\nimport { GuiTemplateModule } from '../../../../../feature/gui-angular/template/gui.template.module';\n\n\n@NgModule({\n\timports: [\n\t\tCommonModule,\n\t\tfabricImports,\n\t\tGuiTemplateModule,\n\t\tFilterFeatureModule\n\t],\n\tdeclarations: [\n\t\tUniqueValueListComponent\n\t],\n\texports: [\n\t\tUniqueValueListComponent\n\t]\n})\nexport class UniqueValueListModule extends FeatureModule {\n\n\tstatic forComponent(): Array<Provider> {\n\t\treturn [];\n\t}\n\n}\n","import { NgModule } from '@angular/core';\nimport { StructureColumnMenuIconComponent } from './structure.column-menu-icon.component';\n\nconst icon = [\n\tStructureColumnMenuIconComponent\n];\n\n@NgModule({\n\tdeclarations: icon,\n\texports: icon\n})\nexport class StructureMenuIconModule {\n\n}\n","import { NgModule } from '@angular/core';\nimport { StructureArrowIconComponent } from './structure.arrow-icon.component';\n\nconst icon = [\n\tStructureArrowIconComponent\n];\n\n@NgModule({\n\tdeclarations: icon,\n\texports: icon\n})\nexport class StructureArrowIconModule {\n\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { StructureColumnConfigComponent } from './config/structure.column-config.component';\nimport { StructureColumnConfigTriggerComponent } from './trigger/structure.column-config-trigger.component';\nimport { StructureColumnConfigSortComponent } from './main/sort/structure.column-config-sort.component';\nimport { StructureColumnConfigColumnHideComponent } from './main/hide/structure.column-config-column-hide.component';\nimport { StructureColumnConfigColumnMoveComponent } from './main/move/structure.column-config-column-move.component';\nimport { fabricImports } from '../../structure-fabric.imports';\nimport { StructureColumnManagerModule } from '../../column-manager/structure.column-manager.module';\nimport { UniqueValueListModule } from '../../../../../feature/structure/filter/src/unique/unique-value-list.module';\nimport { TranslationFeatureModule } from '../../../../../feature/l10n/src/translation.feature-module';\nimport { StructureMenuIconModule } from '../../../../../feature/common/icons/menu/structure.menu-icon.module';\nimport { StructureArrowIconModule } from '../../../../../feature/common/icons/arrow/structure.arrow-icon.module';\nimport { GuiTemplateModule } from '../../../../../feature/gui-angular/template/gui.template.module';\n\nconst declarations = [\n\tStructureColumnConfigComponent,\n\tStructureColumnConfigTriggerComponent,\n\tStructureColumnConfigSortComponent,\n\tStructureColumnConfigColumnHideComponent,\n\tStructureColumnConfigColumnMoveComponent\n];\n\nconst icons = [\n\tStructureMenuIconModule,\n\tStructureArrowIconModule\n];\n\n@NgModule({\n\timports: [\n\t\tCommonModule,\n\t\tfabricImports,\n\t\tGuiTemplateModule,\n\t\tStructureColumnManagerModule,\n\t\tUniqueValueListModule,\n\t\tTranslationFeatureModule,\n\t\ticons\n\t],\n\tdeclarations: declarations,\n\texports: declarations\n})\nexport class StructureColumnMenuModule {\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, Input, OnChanges, ViewChild, ViewEncapsulation } from '@angular/core';\nimport { ChangedValueEmitter } from '../../../../../../feature/composition/src/column/edit/changed-value.emitter';\nimport { EditEventType } from '../../../../../../feature/composition/src/column/edit/state/edit.event-type';\nimport { Item } from '../../../../../../core/structure/source/src/api/item/item';\nimport { SmartComponent } from '../../../../../../feature/common/component/src/smart-component';\nimport { StructureEditSourceItemParams } from '../../../../../../core/structure/source/src/core/origin/edit/structure.edit-source-item.params';\nimport { SourcePublisher } from '../../../../../../core/structure/source/src/api/source.publisher';\nimport { StructureCellEditState } from '../../../edit/structure.cell-edit.state';\nimport { NgChanges } from '../../../../../../feature/common/component/src/ng-changes';\nimport { StructureId } from '../../../../../../core/structure/structure-core/src/api/global/structure.id';\nimport { ifChanged } from '../../../../../../feature/common/component/src/check.input';\nimport { CompositionAccessorModel } from '../../../../../../feature/composition/src/column/composition.accessor.model';\n\n@Component({\n\tselector: 'div[gui-structure-cell-edit][entity][cell]',\n\ttemplateUrl: `./structure.cell-edit.component.html`,\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tencapsulation: ViewEncapsulation.None\n})\nexport class StructureCellEditComponent extends SmartComponent implements OnChanges {\n\n\t@ViewChild('cellContainer', { read: ElementRef, static: true })\n\treadonly cellContainerRef?: ElementRef;\n\n\t@Input()\n\tentity: Item;\n\n\t@Input()\n\tcell: CompositionAccessorModel;\n\n\teditContext: any;\n\n\tvalueChanges$: ChangedValueEmitter<any>;\n\n\tstatus$: ChangedValueEmitter<any>;\n\n\tactualValue: any;\n\n\tconstructor(private readonly changeDetectorRef: ChangeDetectorRef,\n\t\t\t\telementRef: ElementRef,\n\t\t\t\tprivate readonly structureId: StructureId,\n\t\t\t\tprivate readonly sourceCommandService: SourcePublisher) {\n\t\tsuper(changeDetectorRef, elementRef);\n\t}\n\n\tngOnChanges(changes: NgChanges<StructureCellEditComponent>) {\n\n\t\tifChanged(changes.entity, () => {\n\t\t\tthis.initEditContext();\n\t\t});\n\n\t\tifChanged(changes.cell, () => {\n\t\t\tthis.initEditContext();\n\t\t});\n\n\t}\n\n\tngOnInit() {\n\t\tthis.initEditContext();\n\t}\n\n\tsubmitChangesAndExit(): void {\n\n\t\tconst itemId = this.entity.getId(),\n\t\t\tupdatedValue = this.actualValue,\n\t\t\tfieldId = this.cell.columnFieldId;\n\n\t\tthis.sourceCommandService.editItem(\n\t\t\tnew StructureEditSourceItemParams(itemId, fieldId, updatedValue),\n\t\t\tthis.structureId\n\t\t);\n\t}\n\n\tprotected getSelectorName(): string {\n\t\treturn 'gui-structure-cell-edit';\n\t}\n\n\tprivate initEditContext(): void {\n\t\tthis.valueChanges$ = new ChangedValueEmitter();\n\t\tthis.status$ = new ChangedValueEmitter<EditEventType>();\n\n\t\tthis.editContext = {\n\t\t\tstatus: this.status$,\n\t\t\tvalueChanges: this.valueChanges$,\n\t\t\tvalue: this.cell.getValue(this.entity),\n\t\t\tfocus: false,\n\t\t\tparent: this.cellContainerRef\n\t\t};\n\n\t\tthis.status$\n\t\t\t.on()\n\t\t\t.pipe(\n\t\t\t\tthis.takeUntil()\n\t\t\t)\n\t\t\t.subscribe((status: EditEventType) => {\n\n\t\t\t\tswitch (status) {\n\t\t\t\t\tcase EditEventType.SUBMIT:\n\t\t\t\t\t\tthis.submitChangesAndExit();\n\t\t\t\t\t\tthis.publishEditSubmit();\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase EditEventType.CANCEL:\n\t\t\t\t\t\t// this.exitEditMode();\n\t\t\t\t\t\tthis.publishEditCancel();\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t});\n\t}\n\n\tprivate observeValueChanges(): void {\n\n\t\tthis.valueChanges$\n\t\t\t.on()\n\t\t\t.pipe(\n\t\t\t\tthis.takeUntil()\n\t\t\t)\n\t\t\t.subscribe((value: any) => {\n\t\t\t\tthis.actualValue = value;\n\t\t\t});\n\t}\n\n\tprivate publishEditState(state: StructureCellEditState): void {\n\t\t// this.structureCellEditStore.next(state);\n\t}\n\n\tprivate publishEditEnter(): void {\n\t\tthis.publishEditState(StructureCellEditState.ENTER);\n\t}\n\n\tprivate publishEditCancel(): void {\n\t\tthis.publishEditState(StructureCellEditState.CANCEL);\n\t}\n\n\tprivate publishEditSubmit(): void {\n\t\tthis.publishEditState(StructureCellEditState.SUBMIT);\n\t}\n\n}\n","<span #cellContainer>\n\t<ng-container\n\t\t*ngTemplateOutlet=\"cell.editTemplate;\n\t\t\t\t\t\t\tcontext: editContext\">\n\t</ng-container>\n</span>\n","import { NgModule, Provider } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { EmptySourceComponent } from './empty-source.component';\nimport { TranslationFeatureModule } from '../../../../l10n/src/translation.feature-module';\nimport { FeatureModule } from '@generic-ui/hermes';\n\n@NgModule({\n\timports: [\n\t\tCommonModule,\n\t\tTranslationFeatureModule\n\t],\n\tdeclarations: [\n\t\tEmptySourceComponent\n\t],\n\texports: [\n\t\tEmptySourceComponent\n\t]\n})\nexport class EmptySourceFeatureModule extends FeatureModule {\n\n\tstatic forComponent(): Array<Provider> {\n\t\treturn [];\n\t}\n\n}\n","import { StructureId } from '../../../../structure-core/src/api/global/structure.id';\nimport { CompositionId } from '../../../../../composition/src/api/global/composition.id';\nimport { FieldId } from '../../../../field/src/domain/field/field.id';\nimport { StructureCommand } from '../../../../structure-core/src/core/structure.command';\n\n\nexport class ToggleSortCommand extends StructureCommand {\n\n\tconstructor(structureId: StructureId,\n\t\t\t\tprivate readonly compositionId: CompositionId,\n\t\t\t\tprivate readonly fieldId: FieldId) {\n\t\tsuper(structureId, 'ToggleSortCommand');\n\t}\n\n\tgetCompositionId(): CompositionId {\n\t\treturn this.compositionId;\n\t}\n\n\tgetFieldId(): FieldId {\n\t\treturn this.fieldId;\n\t}\n\n}\n","import { AggregateId, CommandHandler, CommandType, CoreContainer, DomainEventPublisher } from '@generic-ui/hermes';\nimport { ToggleSortCommand } from './toggle-sort.command';\nimport { FieldId } from '../../../../field/src/domain/field/field.id';\nimport { Sorter } from '../../domain/sorter';\nimport { SortToggledEvent } from './sort-toggled.event';\nimport { StructureAggregate } from '../../../../structure-core/src/domain/structure.aggregate';\nimport { CompositionId } from '../../../../../composition/src/api/global/composition.id';\n\n\nexport class ToggleSortCommandHandler implements CommandHandler<StructureAggregate, ToggleSortCommand> {\n\n\tprivate readonly domainEventPublisher: DomainEventPublisher = CoreContainer.resolve(DomainEventPublisher);\n\n\n\tforCommand(): CommandType<ToggleSortCommand> {\n\t\treturn ToggleSortCommand;\n\t}\n\n\thandle(structure: StructureAggregate, command: ToggleSortCommand): void {\n\n\t\tconst aggregateId = command.getAggregateId(),\n\t\t\tcompositionId = command.getCompositionId(),\n\t\t\tfieldId = command.getFieldId();\n\n\t\tconst sorters = structure.toggleSort(fieldId);\n\n\t\tthis.publishSortEvent(aggregateId, compositionId, fieldId, sorters);\n\t}\n\n\tpublish(aggregate: StructureAggregate, command: ToggleSortCommand): void {\n\t}\n\n\tprivate publishSortEvent(aggregateId: AggregateId, compositionId: CompositionId, fieldId: FieldId, sorters: Array<Sorter>): void {\n\n\t\tconst directions = sorters.map((sorter: Sorter) => {\n\t\t\treturn {\n\t\t\t\tdirection: sorter.hasDirection(),\n\t\t\t\tfieldId: sorter.getField().getId()\n\t\t\t};\n\t\t});\n\n\t\tthis.domainEventPublisher.publish(new SortToggledEvent(aggregateId, compositionId, directions));\n\t}\n\n}\n","import { StructureId } from '../../../../structure-core/src/api/global/structure.id';\nimport { SortingConfig } from '../../api/config/sorting-config';\nimport { StructureCommand } from '../../../../structure-core/src/core/structure.command';\n\n\nexport class SetSortingCommand extends StructureCommand {\n\n\tconstructor(structureId: StructureId,\n\t\t\t\tprivate readonly sortingConfig: SortingConfig) {\n\t\tsuper(structureId, 'SetSortingCommand');\n\t}\n\n\tgetSortingConfig(): SortingConfig {\n\t\treturn this.sortingConfig;\n\t}\n\n}\n","import { StructureId } from '../../../../structure-core/src/api/global/structure.id';\nimport { StructureDomainEvent } from '../../../../structure-core/src/core/structure.domain-event';\n\nexport class SortingSetEvent extends StructureDomainEvent {\n\n\tconstructor(aggregateId: StructureId) {\n\t\tsuper(aggregateId, null, 'SortingSetEvent');\n\t}\n\n}\n","import { CommandHandler, CommandType, CoreContainer, DomainEventPublisher } from '@generic-ui/hermes';\nimport { SetSortingCommand } from './set-sorting.command';\nimport { SortingSetEvent } from './sorting-set.event';\nimport { StructureAggregate } from '../../../../structure-core/src/domain/structure.aggregate';\n\n\nexport class SetSortingCommandHandler implements CommandHandler<StructureAggregate, SetSortingCommand> {\n\n\tprivate readonly domainEventPublisher: DomainEventPublisher = CoreContainer.resolve(DomainEventPublisher);\n\n\tforCommand(): CommandType<SetSortingCommand> {\n\t\treturn SetSortingCommand;\n\t}\n\n\thandle(aggregate: StructureAggregate, command: SetSortingCommand): void {\n\n\t\tconst sortingConfig = command.getSortingConfig();\n\n\t\taggregate.setSortingConfig(sortingConfig);\n\t}\n\n\tpublish(aggregate: StructureAggregate, command: SetSortingCommand): void {\n\t\tthis.domainEventPublisher.publish(new SortingSetEvent(command.getAggregateId()));\n\t}\n\n}\n","import { StructureId } from '../../../../structure-core/src/api/global/structure.id';\nimport { SortOrder } from '../../../../../composition/src/domain/column/sort/sort-order';\nimport { FieldId } from '../../../../field/src/domain/field/field.id';\nimport { CompositionId } from '../../../../../composition/src/api/global/composition.id';\nimport { StructureCommand } from '../../../../structure-core/src/core/structure.command';\n\n\nexport class SetSortOrderCommand extends StructureCommand {\n\n\tconstructor(structureId: StructureId,\n\t\t\t\tprivate readonly compositionId: CompositionId,\n\t\t\t\tprivate readonly fieldId: FieldId,\n\t\t\t\tprivate readonly sortOrder: SortOrder) {\n\t\tsuper(structureId, 'SetSortOrderCommand');\n\t}\n\n\tgetCompositionId(): CompositionId {\n\t\treturn this.compositionId;\n\t}\n\n\tgetFieldId(): FieldId {\n\t\treturn this.fieldId;\n\t}\n\n\tgetSortOrder(): SortOrder {\n\t\treturn this.sortOrder;\n\t}\n}\n","import { AggregateId, CommandHandler, CommandType, CoreContainer, DomainEventPublisher } from '@generic-ui/hermes';\nimport { SetSortOrderCommand } from './set-sort-order.command';\nimport { SortOrderSetEvent } from './sort-order-set.event';\nimport { CompositionId } from '../../../../../composition/src/api/global/composition.id';\nimport { FieldId } from '../../../../field/src/domain/field/field.id';\nimport { Sorter } from '../../domain/sorter';\nimport { StructureAggregate } from '../../../../structure-core/src/domain/structure.aggregate';\n\n\nexport class SetSortOrderCommandHandler implements CommandHandler<StructureAggregate, SetSortOrderCommand> {\n\n\tprivate readonly domainEventPublisher: DomainEventPublisher = CoreContainer.resolve(DomainEventPublisher);\n\n\tforCommand(): CommandType<SetSortOrderCommand> {\n\t\treturn SetSortOrderCommand;\n\t}\n\n\thandle(structure: StructureAggregate, command: SetSortOrderCommand): void {\n\n\t\tconst structureId = command.getAggregateId(),\n\t\t\tcompositionId = command.getCompositionId(),\n\t\t\tfieldId = command.getFieldId(),\n\t\t\tsortOrder = command.getSortOrder();\n\n\t\tconst sorters = structure.setSortOrder(fieldId, sortOrder);\n\n\t\tthis.publishSortEvent(structureId, compositionId, fieldId, sorters);\n\t}\n\n\tpublish(aggregate: StructureAggregate, command: SetSortOrderCommand): void {\n\t}\n\n\tprivate publishSortEvent(aggregateId: AggregateId, compositionId: CompositionId, fieldId: FieldId, sorters: Array<Sorter>): void {\n\n\t\tconst directions = sorters.map((sorter: Sorter) => {\n\t\t\treturn {\n\t\t\t\tdirection: sorter.hasDirection(),\n\t\t\t\tfieldId: sorter.getField().getId()\n\t\t\t};\n\t\t});\n\n\t\tthis.domainEventPublisher.publish(new SortOrderSetEvent(aggregateId, compositionId, directions));\n\t}\n\n}\n","import { CommandDispatcher, CoreContainer } from '@generic-ui/hermes';\n\nimport { SortingConfig } from '../api/config/sorting-config';\nimport { StructureId } from '../../../structure-core/src/api/global/structure.id';\nimport { SetSortingCommand } from './set-config/set-sorting.command';\nimport { FieldId } from '../../../field/src/domain/field/field.id';\nimport { CompositionId } from '../../../../composition/src/api/global/composition.id';\nimport { ToggleSortCommand } from './toggle/toggle-sort.command';\nimport { SortOrder } from '../../../../composition/src/domain/column/sort/sort-order';\nimport { SetSortOrderCommand } from './order/set-sort-order.command';\n\n\nexport class SortingDispatcher {\n\n\tprivate readonly commandDispatcher: CommandDispatcher = CoreContainer.resolve(CommandDispatcher);\n\n\n\tsetSortingConfig(config: SortingConfig, structureId: StructureId): void {\n\t\tthis.commandDispatcher.dispatch(new SetSortingCommand(structureId, config));\n\t}\n\n\ttoggleSort(fieldId: FieldId, compositionId: CompositionId, structureId: StructureId): void {\n\t\tthis.commandDispatcher.dispatch(new ToggleSortCommand(structureId, compositionId, fieldId));\n\t}\n\n\tsetSortOrder(fieldId: FieldId, sortOrder: SortOrder, compositionId: CompositionId, structureId: StructureId): void {\n\t\tthis.commandDispatcher.dispatch(new SetSortOrderCommand(structureId, compositionId, fieldId, sortOrder));\n\t}\n}\n","import { AggregateDefinition, AggregateId, AggregateRoot, Command, Container, DomainEvent, DomainProviders } from '@generic-ui/hermes';\n\nimport { ToggleSortCommandHandler } from './toggle/toggle-sort.command-handler';\nimport { SetSortingCommandHandler } from './set-config/set-sorting.command-handler';\nimport { SetSortOrderCommandHandler } from './order/set-sort-order.command-handler';\nimport { structureKey } from '../../../structure-core/src/api/global/structre.key';\nimport { SortingDispatcher } from './sorting.dispatcher';\n\n\nexport class SortingDomainModule implements DomainProviders {\n\n\tdefineAggregate(): AggregateDefinition<any, any, any> | null {\n\t\treturn null;\n\t}\n\n\tregisterKey(): string {\n\t\treturn structureKey;\n\t}\n\n\tregisterProviders(container: Container): void {\n\t\tcontainer.provide(SortingDispatcher);\n\t}\n\n\tregisterCommandHandlers<I extends AggregateId, A extends AggregateRoot<I>, C extends Command<I>>(): Array<any> {\n\t\treturn [\n\t\t\tToggleSortCommandHandler,\n\t\t\tSetSortingCommandHandler,\n\t\t\tSetSortOrderCommandHandler\n\t\t];\n\t}\n\n\tregisterDomainEventHandler<I extends AggregateId, E extends DomainEvent<I>>(): Array<any> {\n\t\treturn [];\n\t}\n\n\tregisterMultiDomainEventHandler<I extends AggregateId, E extends DomainEvent<I>>(): Array<any> {\n\t\treturn [];\n\t}\n\n}\n","import { SortingConfig } from '../api/config/sorting-config';\nimport { StructureId } from '../../../structure-core/src/api/global/structure.id';\nimport { FieldId } from '../../../field/src/domain/field/field.id';\nimport { CompositionId } from '../../../../composition/src/api/global/composition.id';\nimport { SortOrder } from '../../../../composition/src/domain/column/sort/sort-order';\nimport { SortingPublisher } from '../api/sorting.publisher';\nimport { SortingDispatcher } from './sorting.dispatcher';\n\n\nexport class SortingDomainPublisher extends SortingPublisher {\n\n\tconstructor(private readonly sortingDispatcher: SortingDispatcher) {\n\t\tsuper();\n\t}\n\n\tstatic readonly services = [SortingDispatcher];\n\n\tsetSortingConfig(config: SortingConfig, structureId: StructureId): void {\n\t\tthis.sortingDispatcher.setSortingConfig(config, structureId);\n\t}\n\n\ttoggleSort(fieldId: FieldId, compositionId: CompositionId, structureId: StructureId): void {\n\t\tthis.sortingDispatcher.toggleSort(fieldId, compositionId, structureId);\n\t}\n\n\tsetSortOrder(fieldId: FieldId, sortOrder: SortOrder, compositionId: CompositionId, structureId: StructureId): void {\n\t\tthis.sortingDispatcher.setSortOrder(fieldId, sortOrder, compositionId, structureId);\n\t}\n\n}\n","import { ApiProviders, Container, DomainInitializer } from '@generic-ui/hermes';\n\nimport { SortingPublisher } from './sorting.publisher';\nimport { SortingDomainModule } from '../core/sorting.domain-module';\nimport { SortingDomainPublisher } from '../core/sorting.domain-publisher';\n\n\nexport class SortingApiModule implements ApiProviders {\n\n\tregisterProviders(container: Container): void {\n\t\tcontainer.provide(SortingPublisher, SortingDomainPublisher);\n\t}\n}\n\nexport function initializeSorting(): void {\n\tnew DomainInitializer(new SortingApiModule(), new SortingDomainModule()).init();\n}\n\n","import { NgModule, Provider } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { CoreContainer, FeatureModule } from '@generic-ui/hermes';\n\nimport { initializeSorting } from '../../../../core/structure/sorting/src/api/sorting.api-module';\nimport { SortingPublisher } from '../../../../core/structure/sorting/src/api/sorting.publisher';\n\ninitializeSorting();\n\nexport function provideSortingCommandInvoker() {\n\treturn CoreContainer.resolve(SortingPublisher);\n}\n\n@NgModule({\n\timports: [\n\t\tCommonModule\n\t],\n\tdeclarations: [],\n\texports: [],\n\tproviders: [\n\t\t{ provide: SortingPublisher, useFactory: provideSortingCommandInvoker }\n\t]\n})\nexport class SortingFeatureModule extends FeatureModule {\n\n\tstatic forComponent(): Array<Provider> {\n\t\treturn [];\n\t}\n\n}\n","import { AggregateArchive } from '@generic-ui/hermes';\n\nimport { FieldModel } from '../api/model/field.model';\n\n\nexport class FieldArchive extends AggregateArchive<ReadonlyArray<FieldModel>> {\n\n\tstatic readonly default: ReadonlyArray<FieldModel> = [];\n\n\tconstructor() {\n\t\tsuper(FieldArchive.default);\n\t}\n\n}\n","import { FieldId } from '../../domain/field/field.id';\nimport { DataType } from '../../domain/field/data/data-type';\n\n\nexport class FieldModel {\n\n\tconstructor(private readonly id: FieldId,\n\t\t\t\tprivate readonly dataType: DataType,\n\t\t\t\tprivate readonly name: string) {\n\t}\n\n\tgetFieldId(): FieldId {\n\t\treturn this.id;\n\t}\n\n\tgetId(): string {\n\t\treturn this.id.getId();\n\t}\n\n\tgetDataType(): DataType {\n\t\treturn this.dataType;\n\t}\n\n\tgetName(): string {\n\t\treturn this.name;\n\t}\n\n}\n","import { FieldModel } from '../../api/model/field.model';\nimport { FieldEntity } from '../../domain/field/field.entity';\n\n\nexport class FieldConverter {\n\n\tconvert(fields: Array<FieldEntity>): Array<FieldModel> {\n\t\treturn fields.map((field: FieldEntity) => {\n\t\t\treturn this.convertOne(field);\n\t\t});\n\t}\n\n\tprivate convertOne(field: FieldEntity): FieldModel {\n\n\t\treturn new FieldModel(field.getId(), field.getDataType(), field.getName());\n\t}\n}\n","import { FieldId } from './field/field.id';\nimport { FieldEntity } from './field/field.entity';\nimport { FieldConfig } from '../api/config/field.config';\nimport { FieldEntityFactory } from './field/field.entity-factory';\n\n\nexport class FieldCollection {\n\n\tprivate readonly fields = new Map<string, FieldEntity>();\n\n\tconstructor(private readonly fieldFactory: FieldEntityFactory) {\n\t}\n\n\tgetField(fieldId: FieldId): FieldEntity {\n\n\t\tif (fieldId === null) {\n\t\t\treturn this.getAllFields()[0];\n\t\t}\n\n\t\treturn this.fields.get(fieldId.getId());\n\t}\n\n\tgetAllFieldIds(): Array<string> {\n\t\treturn Array.from(this.fields.keys());\n\t}\n\n\tgetAllFields(): Array<FieldEntity> {\n\t\treturn Array.from(this.fields.values());\n\t}\n\n\tgetFieldsAsMap(): Map<string, FieldEntity> {\n\t\treturn this.fields;\n\t}\n\n\tinitFields(fieldConfigs: Array<FieldConfig>): void {\n\n\t\tconst fields: Array<FieldEntity> = this.fieldFactory.create(fieldConfigs);\n\n\t\tthis.clear();\n\t\tthis.addFields(fields);\n\t}\n\n\taddFields(fields: Array<FieldEntity>): void {\n\t\tfor (const field of fields) {\n\t\t\tthis.addField(field);\n\t\t}\n\t}\n\n\tprivate addField(field: FieldEntity): void {\n\t\tthis.fields.set(field.getId().toString(), field);\n\t}\n\n\tprivate clear(): void {\n\t\tthis.fields.clear();\n\t}\n}\n","import { DataFieldTypes } from './data/data-field-types';\nimport { DataType } from './data/data-type';\nimport { NumberDataField } from './data/type/number-data-field';\nimport { BooleanDataField } from './data/type/boolean-data-field';\nimport { StringDataField } from './data/type/string-data-field';\nimport { DateDataField } from './data/type/date-data-field';\nimport { FieldId } from './field.id';\n\nimport { ItemEntity } from '../../../../source/src/domain/item/item.entity';\nimport { SummariesType } from '../../../../summaries/src/domain/summaries.type';\nimport { Entity } from '@generic-ui/hermes';\n\n\nexport class FieldEntity extends Entity<FieldId> {\n\n\tprivate readonly id: FieldId;\n\n\tprivate readonly field: DataFieldTypes;\n\n\tprivate readonly name: string;\n\n\tconstructor(id: FieldId,\n\t\t\t\tfield: DataFieldTypes,\n\t\t\t\tname: string) {\n\t\tsuper(id);\n\t\tthis.id = id;\n\t\tthis.field = field;\n\t\tthis.name = name;\n\t}\n\n\tstatic of(id: FieldId, dataField: DataFieldTypes, name: string): FieldEntity {\n\t\treturn new FieldEntity(id, dataField, name);\n\t}\n\n\tgetId(): FieldId {\n\t\treturn this.id;\n\t}\n\n\tgetKey(): string {\n\t\treturn this.getId().toString();\n\t}\n\n\tgetDataType(): DataType {\n\t\treturn this.field.getDataType();\n\t}\n\n\tgetName(): string {\n\t\treturn this.name;\n\t}\n\n\t/**\n\t * @deprecated\n\t */\n\tgetField(): DataFieldTypes {\n\t\treturn this.field;\n\t}\n\n\t/**\n\t * Probably should not be used.\n\t *\n\t * @deprecated\n\t */\n\tgetAccessor(): string {\n\t\treturn this.field.getAccessor();\n\t}\n\n\t/**\n\t * Probably should not be used.\n\t *\n\t * @deprecated\n\t */\n\tgetAccessorMethod(): (entity: ItemEntity) => any {\n\t\treturn this.field.getAccessorMethod();\n\t}\n\n\t/**\n\t * Probably should not be used.\n\t *\n\t * @deprecated\n\t */\n\tgetSearchAccessorMethod(): (entity: ItemEntity) => any {\n\t\treturn this.field.getSearchAccessorMethod();\n\t}\n\n\tgetValue(entity: ItemEntity): any {\n\t\treturn this.field.getValue(entity);\n\t}\n\n\tgetDisplayValue(value: any): any {\n\t\treturn (this.field as any).getDisplayValue(value);\n\t}\n\n\t/**\n\t * Probably should not be used.\n\t *\n\t * @deprecated\n\t */\n\tisSummaries(type: SummariesType): boolean {\n\t\treturn this.field.isSummaries(type);\n\t}\n\n\t/**\n\t * Probably should not be used.\n\t *\n\t * @deprecated\n\t */\n\tisSummariesEnabled(): boolean {\n\t\treturn this.field.isSummariesEnabled();\n\t}\n\n\tsearch(item: ItemEntity, searchPhrase: string): boolean {\n\t\treturn this.field.search(item, searchPhrase);\n\t}\n\n\tfilter(item: ItemEntity, filterPhrase: any): boolean {\n\n\t\tconst value = this.field.getValue(item);\n\n\t\tif (this.field.getDataType() === DataType.NUMBER) {\n\t\t\treturn (this.field as NumberDataField).filter(value, filterPhrase);\n\t\t} else if (this.field.getDataType() === DataType.BOOLEAN) {\n\t\t\treturn (this.field as BooleanDataField).filter(value, filterPhrase);\n\t\t} else if (this.field.getDataType() === DataType.STRING) {\n\t\t\treturn (this.field as StringDataField).filter(value, filterPhrase);\n\t\t} else if (this.field.getDataType() === DataType.DATE) {\n\t\t\treturn (this.field as DateDataField).filter(value, filterPhrase);\n\t\t} else {\n\t\t\treturn true;\n\t\t}\n\t}\n\n\tsort(entityOne: ItemEntity, entityTwo: ItemEntity, direction: boolean): number {\n\n\t\tconst valueOne = direction ? this.field.getSortValue(entityOne) : this.field.getSortValue(entityTwo),\n\t\t\tvalueTwo = direction ? this.field.getSortValue(entityTwo) : this.field.getSortValue(entityOne);\n\n\t\tif (this.field.getDataType() === DataType.NUMBER) {\n\t\t\treturn (this.field as NumberDataField).sort(valueOne, valueTwo);\n\t\t} else if (this.field.getDataType() === DataType.BOOLEAN) {\n\t\t\treturn (this.field as BooleanDataField).sort(valueOne, valueTwo);\n\t\t} else if (this.field.getDataType() === DataType.STRING) {\n\t\t\treturn (this.field as StringDataField).sort(valueOne, valueTwo);\n\t\t} else if (this.field.getDataType() === DataType.DATE) {\n\t\t\treturn (this.field as DateDataField).sort(valueOne, valueTwo);\n\t\t} else {\n\t\t\treturn 0;\n\t\t}\n\t}\n\n}\n","import { DataType } from './data-type';\nimport { FieldMatcherType } from '../../matcher/field.matcher.type';\nimport { FieldMatchers } from '../../matcher/field.matchers';\n\nimport { ItemEntity } from '../../../../../source/src/domain/item/item.entity';\n\nexport abstract class BaseDataField {\n\n\t// TODO\n\tprivate readonly accessor: string | any; // (rawData: any) => any;\n\n\tprivate readonly dataType: DataType;\n\n\tprivate readonly accessorMethod: (entity: ItemEntity) => any;\n\n\tprivate readonly matchers: FieldMatchers;\n\n\tprotected constructor(accessor: any,\n\t\t\t\t\t\t  dataType: DataType,\n\t\t\t\t\t\t  matchers: FieldMatchers) {\n\t\tthis.accessor = accessor;\n\t\tthis.dataType = dataType;\n\t\tthis.matchers = matchers;\n\n\t\tif (typeof accessor === 'string') {\n\t\t\tthis.accessorMethod = (entity: ItemEntity) => entity.getSourceItem()[accessor];\n\t\t} else if (typeof accessor === 'function') {\n\t\t\tthis.accessorMethod = (entity: ItemEntity) => accessor(entity.getSourceItem());\n\t\t} else {\n\t\t\tthis.accessorMethod = (entity: ItemEntity) => entity;\n\t\t}\n\n\t}\n\n\tgetDataType(): DataType {\n\t\treturn this.dataType;\n\t}\n\n\tgetAccessor(): string {\n\t\treturn this.accessor;\n\t}\n\n\tgetAccessorMethod(): (entity: ItemEntity) => any {\n\t\treturn this.accessorMethod;\n\t}\n\n\tgetMatchers(): FieldMatchers {\n\t\treturn this.matchers;\n\t}\n\n\tgetSearchAccessorMethod(): (entity: ItemEntity) => any {\n\n\t\tlet matcher: (i: any) => any;\n\n\t\tthis.matchers\n\t\t\t.getSearchMatcher()\n\t\t\t.ifPresent((m: FieldMatcherType) => {\n\t\t\t\tmatcher = m;\n\t\t\t});\n\n\t\tif (matcher) {\n\t\t\treturn (entity) => {\n\t\t\t\tconst val = this.accessorMethod(entity);\n\t\t\t\treturn matcher(val);\n\t\t\t};\n\t\t} else {\n\t\t\treturn (entity) => {\n\t\t\t\treturn this.accessorMethod(entity);\n\t\t\t};\n\t\t}\n\t}\n\n\tgetValue(entity: ItemEntity): any {\n\t\treturn this.accessorMethod(entity);\n\t}\n\n\tgetSortValue(entity: ItemEntity): any {\n\t\tlet value = this.accessorMethod(entity);\n\n\t\tthis.matchers\n\t\t\t.getSortMatcher()\n\t\t\t.ifPresent((matcher: FieldMatcherType) => {\n\t\t\t\tvalue = matcher(value);\n\t\t\t});\n\n\t\treturn value;\n\t}\n\n\tgetSearchValue(entity: ItemEntity): any {\n\t\tlet value = this.accessorMethod(entity);\n\n\t\tthis.matchers\n\t\t\t.getSearchMatcher()\n\t\t\t.ifPresent((matcher: FieldMatcherType) => {\n\t\t\t\tvalue = matcher(value);\n\t\t\t});\n\n\t\treturn value;\n\t}\n\n\n}\n","import { DataType } from './data-type';\nimport { FieldMatchers } from '../../matcher/field.matchers';\nimport { BaseDataField } from './base-data-field';\n\nimport { ItemEntity } from '../../../../../source/src/domain/item/item.entity';\nimport { SummariesType } from '../../../../../summaries/src/domain/summaries.type';\nimport { ColumnSummariesConfig } from '../../../../../../composition/src/api/column/column-summaries.config';\n\n\nexport abstract class DataField<T> extends BaseDataField {\n\n\tprivate summariesEnabled: boolean = true;\n\n\tprivate summariesTypes: SummariesType;\n\n\tprivate readonly possibleSummaries: SummariesType;\n\n\tprotected constructor(accessor: any,\n\t\t\t\t\t\t  dataType: DataType,\n\t\t\t\t\t\t  matchers: FieldMatchers,\n\t\t\t\t\t\t  summariesConfig?: ColumnSummariesConfig) {\n\t\tsuper(accessor,\n\t\t\tdataType,\n\t\t\tmatchers\n\t\t);\n\n\t\tthis.possibleSummaries = this.assignPossibleSummaries();\n\n\t\tthis.assignSummaries(summariesConfig);\n\t}\n\n\tabstract assignDefaultSummaries(): SummariesType;\n\n\tabstract assignPossibleSummaries(): SummariesType;\n\n\tabstract search(item: ItemEntity, searchPhrase: string): boolean;\n\n\tabstract sort(one: T, two: T): number;\n\n\tabstract filter(value: T, filterPhrase: T): boolean;\n\n\tabstract equals(item: ItemEntity, value: T): boolean;\n\n\tabstract getDisplayValue(item: T): string;\n\n\tisSummaries(type: SummariesType): boolean {\n\n\t\tif (!this.isSummariesEnabled()) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn !!(this.summariesTypes & type);\n\t}\n\n\tisSummariesEnabled(): boolean {\n\t\treturn this.summariesEnabled;\n\t}\n\n\tsetSummariesEnabled(enabled: boolean): void {\n\t\tthis.summariesEnabled = enabled;\n\t}\n\n\tprivate assignSummaries(summariesConfig: ColumnSummariesConfig): void {\n\n\t\tif (!!summariesConfig && Object.keys(summariesConfig).length !== 0) {\n\n\t\t\tif (summariesConfig.enabled) {\n\t\t\t\tthis.summariesEnabled = !!summariesConfig.enabled;\n\t\t\t}\n\n\t\t\tif (summariesConfig.summariesTypes) {\n\n\t\t\t\tthis.summariesTypes = SummariesType.DISTINCT;\n\n\t\t\t\tsummariesConfig.summariesTypes.forEach((t: any) => {\n\t\t\t\t\tthis.summariesTypes |= t;\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tthis.summariesTypes = this.assignDefaultSummaries();\n\t\t\t}\n\t\t} else {\n\t\t\tthis.summariesTypes = this.assignDefaultSummaries();\n\t\t}\n\t}\n}\n","import { DataField } from '../data-field';\nimport { ColumnSummariesConfig } from '../../../../../../../composition/src/api/column/column-summaries.config';\nimport { DataType } from '../data-type';\nimport { SummariesType } from '../../../../../../summaries/src/domain/summaries.type';\nimport { FieldMatchers } from '../../../matcher/field.matchers';\nimport { ItemEntity } from '../../../../../../source/src/domain/item/item.entity';\n\n\nexport class UnknownDataField extends DataField<any> {\n\n\tconstructor(accessor: any,\n\t\t\t\tmatchers: FieldMatchers,\n\t\t\t\tsummariesConfig?: ColumnSummariesConfig) {\n\t\tsuper(\n\t\t\taccessor,\n\t\t\tDataType.UNKNOWN,\n\t\t\tmatchers,\n\t\t\tsummariesConfig);\n\t}\n\n\tassignDefaultSummaries(): SummariesType {\n\t\treturn SummariesType.DISTINCT;\n\t\t// return SummariesType.COUNT |\n\t\t// \tSummariesType.DISTINCT;\n\t}\n\n\tassignPossibleSummaries(): SummariesType {\n\t\treturn SummariesType.COUNT |\n\t\t\tSummariesType.DISTINCT;\n\t}\n\n\tsearch(item: ItemEntity, searchPhrase: string): boolean {\n\t\treturn false;\n\t}\n\n\tsort(one: any, two: any): number {\n\t\treturn 0;\n\t}\n\n\tfilter(value: any, filterPhrase: any): boolean {\n\t\treturn false;\n\t}\n\n\tequals(item: ItemEntity, value: any): boolean {\n\t\treturn false;\n\t}\n\n\tgetDisplayValue(item: any): string {\n\t\treturn item;\n\t}\n\n}\n","import { DataField } from '../data-field';\nimport { ColumnSummariesConfig } from '../../../../../../../composition/src/api/column/column-summaries.config';\nimport { DataType } from '../data-type';\nimport { SummariesType } from '../../../../../../summaries/src/domain/summaries.type';\nimport { FieldMatchers } from '../../../matcher/field.matchers';\nimport { ItemEntity } from '../../../../../../source/src/domain/item/item.entity';\n\n\nexport class NumberDataField extends DataField<number> {\n\n\tconstructor(accessor: any,\n\t\t\t\tmatchers: FieldMatchers,\n\t\t\t\tsummariesConfig?: ColumnSummariesConfig) {\n\t\tsuper(\n\t\t\taccessor,\n\t\t\tDataType.NUMBER,\n\t\t\tmatchers,\n\t\t\tsummariesConfig);\n\t}\n\n\tgetField(): NumberDataField {\n\t\treturn this;\n\t}\n\n\tassignDefaultSummaries(): SummariesType {\n\t\treturn SummariesType.DISTINCT;\n\t\t// return SummariesType.COUNT |\n\t\t// \tSummariesType.DISTINCT |\n\t\t// \tSummariesType.SUM |\n\t\t// \tSummariesType.MIN |\n\t\t// \tSummariesType.MAX |\n\t\t// \tSummariesType.AVERAGE |\n\t\t// \tSummariesType.MEDIAN;\n\t}\n\n\tassignPossibleSummaries(): SummariesType {\n\t\treturn SummariesType.COUNT |\n\t\t\tSummariesType.DISTINCT |\n\t\t\tSummariesType.SUM |\n\t\t\tSummariesType.MIN |\n\t\t\tSummariesType.MAX |\n\t\t\tSummariesType.AVERAGE |\n\t\t\tSummariesType.MEDIAN;\n\t}\n\n\tsearch(item: ItemEntity, searchPhrase: string): boolean {\n\t\treturn false;\n\t}\n\n\tsort(numOne: number, numTwo: number): number {\n\n\t\tconst sureNumOne = +numOne,\n\t\t\tsureNumTwo = +numTwo;\n\n\t\treturn sureNumOne - sureNumTwo;\n\t}\n\n\tfilter(value: number, filterPhrase: number): boolean {\n\t\treturn value > filterPhrase;\n\t}\n\n\tequals(item: ItemEntity, value: number): boolean {\n\t\treturn this.getValue(item) === value;\n\t}\n\n\tgetDisplayValue(item: number): string {\n\t\treturn `${item}`;\n\t}\n\n}\n","import { DataField } from '../data-field';\nimport { DataType } from '../data-type';\nimport { FieldMatchers } from '../../../matcher/field.matchers';\n\nimport { SummariesType } from '../../../../../../summaries/src/domain/summaries.type';\nimport { ColumnSummariesConfig } from '../../../../../../../composition/src/api/column/column-summaries.config';\nimport { ItemEntity } from '../../../../../../source/src/domain/item/item.entity';\n\n\nexport class StringDataField extends DataField<string> {\n\n\tconstructor(accessor: any,\n\t\t\t\tmatchers: FieldMatchers,\n\t\t\t\tsummariesConfig?: ColumnSummariesConfig) {\n\t\tsuper(\n\t\t\taccessor,\n\t\t\tDataType.STRING,\n\t\t\tmatchers,\n\t\t\tsummariesConfig);\n\t}\n\n\tassignDefaultSummaries(): SummariesType {\n\t\treturn SummariesType.DISTINCT;\n\t\t// return SummariesType.COUNT |\n\t\t// \tSummariesType.DISTINCT;\n\t}\n\n\tassignPossibleSummaries(): SummariesType {\n\t\treturn SummariesType.COUNT |\n\t\t\tSummariesType.DISTINCT;\n\t}\n\n\tsearch(item: ItemEntity, searchPhrase: string): boolean {\n\t\tconst value = this.getSearchValue(item);\n\n\t\tif (typeof value === 'string') {\n\t\t\treturn value.toLowerCase().indexOf(searchPhrase.toLowerCase()) > -1;\n\t\t} else {\n\t\t\treturn false;\n\t\t}\n\t}\n\n\tsort(strOne: string, strTwo: string): number {\n\t\tconst sureStrOne = '' + strOne,\n\t\t\tsureStrTwo = '' + strTwo;\n\n\t\treturn sureStrOne.localeCompare(sureStrTwo);\n\t}\n\n\tfilter(value: string, filterPhrase: string): boolean {\n\t\treturn value.toLowerCase().indexOf(filterPhrase.toLowerCase()) > -1;\n\t}\n\n\tequals(item: ItemEntity, value: string): boolean {\n\t\treturn this.getValue(item) === value;\n\t}\n\n\tgetDisplayValue(item: string): string {\n\t\treturn item;\n\t}\n\n}\n","import { DataField } from '../data-field';\nimport { ColumnSummariesConfig } from '../../../../../../../composition/src/api/column/column-summaries.config';\nimport { DataType } from '../data-type';\nimport { SummariesType } from '../../../../../../summaries/src/domain/summaries.type';\nimport { FieldMatchers } from '../../../matcher/field.matchers';\nimport { ItemEntity } from '../../../../../../source/src/domain/item/item.entity';\n\n\nexport class BooleanDataField extends DataField<boolean> {\n\n\tconstructor(accessor: any,\n\t\t\t\tmatchers: FieldMatchers,\n\t\t\t\tsummariesConfig?: ColumnSummariesConfig) {\n\t\tsuper(\n\t\t\taccessor,\n\t\t\tDataType.BOOLEAN,\n\t\t\tmatchers,\n\t\t\tsummariesConfig);\n\t}\n\n\tassignDefaultSummaries(): SummariesType {\n\t\treturn SummariesType.DISTINCT;\n\t\t// return SummariesType.COUNT |\n\t\t// \tSummariesType.DISTINCT |\n\t\t// \tSummariesType.TRUTHY |\n\t\t// \tSummariesType.FALSY;\n\t}\n\n\tassignPossibleSummaries(): SummariesType {\n\t\treturn SummariesType.COUNT |\n\t\t\tSummariesType.DISTINCT |\n\t\t\tSummariesType.TRUTHY |\n\t\t\tSummariesType.FALSY;\n\t}\n\n\tsearch(item: ItemEntity, searchPhrase: string): boolean {\n\t\treturn false;\n\t}\n\n\tsort(booleanOne: boolean, booleanTwo: boolean): number {\n\n\t\tconst sureBoolOne = !!booleanOne,\n\t\t\tsureBoolTwo = !!booleanTwo;\n\n\t\treturn (sureBoolOne === sureBoolTwo) ? 0 : sureBoolTwo ? -1 : 1;\n\t}\n\n\tfilter(value: boolean, filterPhrase: boolean): boolean {\n\t\treturn value === filterPhrase;\n\t}\n\n\tequals(item: ItemEntity, value: boolean): boolean {\n\t\treturn this.getValue(item) === value;\n\t}\n\n\tgetDisplayValue(item: boolean): string {\n\t\treturn item ? 'True' : 'False';\n\t}\n\n}\n","import { DataField } from '../data-field';\nimport { ColumnSummariesConfig } from '../../../../../../../composition/src/api/column/column-summaries.config';\nimport { DataType } from '../data-type';\nimport { SummariesType } from '../../../../../../summaries/src/domain/summaries.type';\nimport { FieldMatchers } from '../../../matcher/field.matchers';\nimport { ItemEntity } from '../../../../../../source/src/domain/item/item.entity';\n\n\nexport class DateDataField extends DataField<Date> {\n\n\tconstructor(accessor: any,\n\t\t\t\tmatchers: FieldMatchers,\n\t\t\t\tsummariesConfig?: ColumnSummariesConfig) {\n\t\tsuper(\n\t\t\taccessor,\n\t\t\tDataType.DATE,\n\t\t\tmatchers,\n\t\t\tsummariesConfig);\n\t}\n\n\tassignDefaultSummaries(): SummariesType {\n\t\treturn SummariesType.DISTINCT;\n\t\t// return SummariesType.COUNT |\n\t\t// \tSummariesType.DISTINCT;\n\t}\n\n\tassignPossibleSummaries(): SummariesType {\n\t\treturn SummariesType.COUNT |\n\t\t\tSummariesType.DISTINCT;\n\t}\n\n\tsearch(item: ItemEntity, searchPhrase: string): boolean {\n\t\treturn false;\n\t}\n\n\tsort(dateOne: Date, dateTwo: Date): number {\n\t\treturn dateOne as any - (dateTwo as any);\n\t}\n\n\tfilter(value: Date, filterPhrase: Date): boolean {\n\t\treturn false;\n\t}\n\n\tequals(item: ItemEntity, value: Date): boolean {\n\t\treturn this.getValue(item).getTime() === value.getTime();\n\t}\n\n\tgetDisplayValue(item: Date): string {\n\t\treturn item.toDateString();\n\t}\n\n}\n","import { Optional } from '@generic-ui/hermes';\n\nimport { FieldMatcherType } from './field.matcher.type';\n\nexport class FieldMatchers {\n\n\tconstructor(private readonly matcher?: FieldMatcherType,\n\t\t\t\tprivate readonly sortMatcher?: FieldMatcherType,\n\t\t\t\tprivate readonly searchMatcher?: FieldMatcherType) { // TODO\n\t}\n\n\tgetMatcher(): Optional<FieldMatcherType> {\n\t\treturn Optional.of(this.matcher);\n\t}\n\n\tgetSortMatcher(): Optional<FieldMatcherType> {\n\n\t\tlet matcher;\n\n\t\tif (this.sortMatcher) {\n\t\t\tmatcher = this.sortMatcher;\n\t\t}\n\n\t\tif (this.matcher) {\n\t\t\tmatcher = this.matcher;\n\t\t}\n\n\t\treturn Optional.of(matcher);\n\t}\n\n\tgetSearchMatcher(): Optional<FieldMatcherType> {\n\n\t\tlet matcher;\n\n\t\tif (this.searchMatcher) {\n\t\t\tmatcher = this.searchMatcher;\n\t\t}\n\n\t\tif (this.matcher) {\n\t\t\tmatcher = this.matcher;\n\t\t}\n\n\t\treturn Optional.of(matcher);\n\t}\n}\n","import { DataType } from './data-type';\nimport { UnknownDataField } from './type/unknown-data-field';\nimport { NumberDataField } from './type/number-data-field';\nimport { StringDataField } from './type/string-data-field';\nimport { BooleanDataField } from './type/boolean-data-field';\nimport { DateDataField } from './type/date-data-field';\nimport { FieldMatchers } from '../../matcher/field.matchers';\nimport { DataFieldTypes } from './data-field-types';\nimport { FieldConfig } from '../../../api/config/field.config';\n\n\nexport class DataFieldFactory {\n\n\tcreate(fieldConfig: FieldConfig): DataFieldTypes {\n\n\t\tconst fieldMatchers = this.createMatchers(fieldConfig);\n\n\t\tlet columnType = fieldConfig.type;\n\n\t\tif (columnType === undefined) {\n\t\t\tcolumnType = DataType.STRING;\n\t\t}\n\n\t\tif (columnType === DataType.UNKNOWN) {\n\t\t\treturn new UnknownDataField(fieldConfig.field as string, fieldMatchers, fieldConfig.summaries);\n\t\t}\n\n\t\tif (columnType === DataType.NUMBER) {\n\t\t\treturn new NumberDataField(fieldConfig.field as string, fieldMatchers, fieldConfig.summaries);\n\t\t}\n\n\t\tif (columnType === DataType.STRING) {\n\t\t\treturn new StringDataField(fieldConfig.field as string, fieldMatchers);\n\t\t}\n\n\t\tif (columnType === DataType.BOOLEAN) {\n\t\t\treturn new BooleanDataField(fieldConfig.field as string, fieldMatchers);\n\t\t}\n\n\t\tif (columnType === DataType.DATE) {\n\t\t\treturn new DateDataField(fieldConfig.field as string, fieldMatchers);\n\t\t}\n\n\t\treturn new UnknownDataField(fieldConfig.field as string, fieldMatchers, fieldConfig.summaries);\n\t}\n\n\tprivate createMatchers(fieldConfig: FieldConfig): FieldMatchers {\n\n\t\tconst matcher = fieldConfig.matcher;\n\t\tlet sortMatcher;\n\n\t\tif (fieldConfig.sorting) {\n\t\t\tsortMatcher = fieldConfig.sorting.matcher;\n\t\t}\n\n\t\treturn new FieldMatchers(matcher, sortMatcher);\n\t}\n\n}\n","import { RandomStringGenerator } from '@generic-ui/hermes';\n\nimport { FieldId } from './field.id';\n\nexport class FieldEntityIdGenerator {\n\n\tgenerateId(): FieldId {\n\n\t\tconst id = RandomStringGenerator.generate();\n\t\treturn new FieldId(id);\n\t}\n\n}\n","import { FieldConfig } from '../../api/config/field.config';\nimport { FieldEntity } from './field.entity';\nimport { DataFieldFactory } from './data/data-field.factory';\nimport { FieldEntityIdGenerator } from './field-entity-id.generator';\n\n\nexport class FieldEntityFactory {\n\n\tconstructor(private readonly fieldIdGenerator: FieldEntityIdGenerator,\n\t\t\t\tprivate readonly dataFieldFactory: DataFieldFactory) {\n\t}\n\n\tstatic readonly services = [\n\t\tFieldEntityIdGenerator,\n\t\tDataFieldFactory\n\t];\n\n\tcreate(configs: Array<FieldConfig>): Array<FieldEntity> {\n\n\t\tif (!configs) {\n\t\t\treturn [];\n\t\t}\n\n\t\treturn configs.map((fieldConfig: FieldConfig, index: number) => {\n\n\t\t\tconst fieldId = this.fieldIdGenerator.generateId(),\n\t\t\t\tdataField = this.dataFieldFactory.create(fieldConfig);\n\n\t\t\treturn new FieldEntity(fieldId, dataField, this.getFieldName(fieldConfig, index));\n\t\t});\n\t}\n\n\tprivate getFieldName(fieldConfig: FieldConfig, index: number): string {\n\n\t\tif (typeof fieldConfig.field === 'string') {\n\t\t\treturn fieldConfig.field.toLowerCase();\n\t\t} else {\n\t\t\treturn 'Field #' + index;\n\t\t}\n\t}\n\n}\n","import { FieldCollection } from '../domain/field-collection';\nimport { FieldEntityFactory } from '../domain/field/field.entity-factory';\n\n\nexport class FieldCollectionFactory {\n\n\tconstructor(private readonly fieldFactory: FieldEntityFactory) {\n\t}\n\n\tstatic readonly services = [FieldEntityFactory] as const;\n\n\tcreate(): FieldCollection {\n\t\treturn new FieldCollection(this.fieldFactory);\n\t}\n\n}\n","import { CommandHandler, CommandType } from '@generic-ui/hermes';\n\nimport { InitFieldsCommand } from './init-fields.command';\nimport { StructureAggregate } from '../../../../structure-core/src/domain/structure.aggregate';\nimport { FieldConfig } from '../../api/config/field.config';\n\n\nexport class InitFieldsCommandHandler implements CommandHandler<StructureAggregate, InitFieldsCommand> {\n\n\tforCommand(): CommandType<InitFieldsCommand> {\n\t\treturn InitFieldsCommand;\n\t}\n\n\thandle(structure: StructureAggregate, command: InitFieldsCommand): void {\n\n\t\tconst fieldConfigs: Array<FieldConfig> = command.getFieldConfigs();\n\n\t\tstructure.createFields(fieldConfigs);\n\t}\n\n}\n","import { DomainEventHandler, DomainEventType } from '@generic-ui/hermes';\n\nimport { FieldArchive } from '../field.archive';\nimport { FieldConverter } from './field.converter';\nimport { FieldsInitedEvent } from '../../core/init/fields-inited.event';\nimport { StructureId } from '../../../../structure-core/src/api/global/structure.id';\n\n\nexport class FieldsInitedEventHandler implements DomainEventHandler<StructureId, FieldsInitedEvent> {\n\n\tconstructor(private readonly fieldArchive: FieldArchive,\n\t\t\t\tprivate readonly fieldConverter: FieldConverter) {\n\t}\n\n\tstatic readonly services = [\n\t\tFieldArchive,\n\t\tFieldConverter\n\t] as const;\n\n\tforEvent(): DomainEventType<FieldsInitedEvent> {\n\t\treturn FieldsInitedEvent;\n\t}\n\n\thandle(event: FieldsInitedEvent): void {\n\n\t\tif (event.ofMessageType('FieldsInitedEvent')) {\n\n\t\t\tconst fields = this.fieldConverter.convert(event.getFields());\n\n\t\t\tthis.fieldArchive.next(event.getAggregateId(), fields);\n\t\t}\n\n\t}\n\n}\n","import { AggregateDefinition, AggregateId, AggregateRoot, Command, Container, DomainEvent, DomainProviders } from '@generic-ui/hermes';\n\nimport { FieldCollectionFactory } from './field-collection.factory';\nimport { DataFieldFactory } from '../domain/field/data/data-field.factory';\nimport { FieldEntityIdGenerator } from '../domain/field/field-entity-id.generator';\nimport { InitFieldsCommandHandler } from './init/init-fields.command-handler';\nimport { FieldEntityFactory } from '../domain/field/field.entity-factory';\nimport { structureKey } from '../../../structure-core/src/api/global/structre.key';\nimport { FieldsInitedEventHandler } from '../core-read/init/fields-inited.event-handler';\n\n\nexport class FieldDomainModule implements DomainProviders {\n\n\tdefineAggregate(): AggregateDefinition<any, any, any> | null {\n\t\treturn null;\n\t}\n\n\tregisterKey(): string {\n\t\treturn structureKey;\n\t}\n\n\tregisterProviders(container: Container): void {\n\t\tcontainer.provide(FieldCollectionFactory);\n\t\tcontainer.provide(FieldEntityFactory);\n\t\tcontainer.provide(FieldEntityIdGenerator);\n\t\tcontainer.provide(DataFieldFactory);\n\t}\n\n\tregisterCommandHandlers<I extends AggregateId, A extends AggregateRoot<I>, C extends Command<I>>(): Array<any> {\n\t\treturn [\n\t\t\tInitFieldsCommandHandler\n\t\t];\n\t}\n\n\tregisterDomainEventHandler<I extends AggregateId, E extends DomainEvent<I>>(): Array<any> {\n\t\treturn [\n\t\t\tFieldsInitedEventHandler\n\t\t];\n\t}\n\n\tregisterMultiDomainEventHandler<I extends AggregateId, E extends DomainEvent<I>>(): Array<any> {\n\t\treturn [];\n\t}\n\n}\n\n","import { HermesObservable, Optional } from '@generic-ui/hermes';\n\nimport { FieldArchive } from './field.archive';\nimport { StructureId } from '../../../structure-core/src/api/global/structure.id';\nimport { FieldModel } from '../api/model/field.model';\nimport { FieldWarehouse } from '../api/field.warehouse';\n\n\nexport class FieldDomainWarehouse extends FieldWarehouse {\n\n\tconstructor(private readonly fieldReadModelArchive: FieldArchive) {\n\t\tsuper();\n\t}\n\n\tstatic readonly services = [FieldArchive] as const;\n\n\tonFields(structureId: StructureId): HermesObservable<ReadonlyArray<FieldModel>> {\n\t\treturn this.fieldReadModelArchive.on(structureId);\n\t}\n\n\tfindFields(structureId: StructureId): Optional<ReadonlyArray<FieldModel>> {\n\t\treturn this.fieldReadModelArchive.find(structureId);\n\t}\n\n}\n","import { CommandDispatcher } from '@generic-ui/hermes';\n\nimport { StructureId } from '../../../structure-core/src/api/global/structure.id';\nimport { FieldPublisher } from '../api/field.publisher';\nimport { FieldConfig } from '../api/config/field.config';\nimport { InitFieldsCommand } from './init/init-fields.command';\n\n\nexport class FieldDomainPublisher extends FieldPublisher {\n\n\tconstructor(private readonly commandDispatcher: CommandDispatcher) {\n\t\tsuper();\n\t}\n\n\tstatic readonly services = [CommandDispatcher] as const;\n\n\tinitFields(fieldConfigs: Array<FieldConfig>, structureId: StructureId): void {\n\t\tthis.commandDispatcher.dispatch(new InitFieldsCommand(structureId, fieldConfigs));\n\t}\n\n}\n","import { ApiProviders, Container, DomainInitializer } from '@generic-ui/hermes';\n\nimport { FieldArchive } from '../core-read/field.archive';\nimport { FieldConverter } from '../core-read/init/field.converter';\nimport { FieldDomainModule } from '../core/field.domain-module';\nimport { FieldPublisher } from './field.publisher';\nimport { FieldWarehouse } from './field.warehouse';\nimport { FieldDomainWarehouse } from '../core-read/field.domain-warehouse';\nimport { FieldDomainPublisher } from '../core/field.domain-publisher';\n\n\nexport class FieldApiModule implements ApiProviders {\n\n\tregisterProviders(container: Container): void {\n\t\tcontainer.provide(FieldPublisher, FieldDomainPublisher);\n\t\tcontainer.provide(FieldArchive);\n\t\tcontainer.provide(FieldConverter);\n\t\tcontainer.provide(FieldWarehouse, FieldDomainWarehouse);\n\t}\n}\n\nexport function initializeField(): void {\n\tnew DomainInitializer(new FieldApiModule(), new FieldDomainModule()).init();\n}\n","import { NgModule, Provider } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { CoreContainer, FeatureModule } from '@generic-ui/hermes';\nimport { initializeField } from '../../../../core/structure/field/src/api/field.api-module';\nimport { FieldPublisher } from '../../../../core/structure/field/src/api/field.publisher';\nimport { FieldWarehouse } from '../../../../core/structure/field/src/api/field.warehouse';\n\ninitializeField();\n\nexport function provideFieldCommandInvoker() {\n\treturn CoreContainer.resolve(FieldPublisher);\n}\n\nexport function provideFieldWarehouse() {\n\treturn CoreContainer.resolve(FieldWarehouse);\n}\n\n\n@NgModule({\n\timports: [\n\t\tCommonModule\n\t],\n\tdeclarations: [],\n\texports: [],\n\tproviders: [\n\t\t{ provide: FieldPublisher, useFactory: provideFieldCommandInvoker },\n\t\t{ provide: FieldWarehouse, useFactory: provideFieldWarehouse }\n\t]\n})\nexport class FieldFeatureModule extends FeatureModule {\n\n\tstatic forComponent(): Array<Provider> {\n\t\treturn [];\n\t}\n\n}\n","import { StructureId } from '../../../../structure-core/src/api/global/structure.id';\nimport { StructureCommand } from '../../../../structure-core/src/core/structure.command';\n\n\nexport class StructureSetSummariesEnabledCommand extends StructureCommand {\n\n\tconstructor(structureId: StructureId,\n\t\t\t\tprivate readonly enabled: boolean) {\n\t\tsuper(structureId, 'StructureSetSummariesEnabledCommand');\n\t}\n\n\tisEnabled(): boolean {\n\t\treturn this.enabled;\n\t}\n\n}\n","import { StructureId } from '../../../../structure-core/src/api/global/structure.id';\nimport { StructureDomainEvent } from '../../../../structure-core/src/core/structure.domain-event';\n\nexport const StructureSummariesEnabledSetEventName = 'StructureSummariesEnabledSetEvent';\n\nexport class StructureSummariesEnabledSetEvent extends StructureDomainEvent {\n\n\tconstructor(aggregateId: StructureId,\n\t\t\t\tprivate readonly enabled: boolean) {\n\t\tsuper(aggregateId, enabled, StructureSummariesEnabledSetEventName);\n\t}\n\n\tisEnabled(): boolean {\n\t\treturn this.enabled;\n\t}\n\n}\n","import { CommandHandler, CommandType, CoreContainer, DomainEventPublisher } from '@generic-ui/hermes';\n\nimport { SourceDomainEventPublisher } from '../../../../source/src/core/source.domain-event.publisher';\nimport { StructureSetSummariesEnabledCommand } from './structure.set-summaries-enabled.command';\nimport { StructureSummariesEnabledSetEvent } from './structure.summaries-enabled-set.event';\nimport { StructureAggregate } from '../../../../structure-core/src/domain/structure.aggregate';\n\n\nexport class StructureSetSummariesEnabledCommandHandler implements CommandHandler<StructureAggregate, StructureSetSummariesEnabledCommand> {\n\n\tprivate readonly domainEventPublisher: DomainEventPublisher = CoreContainer.resolve(DomainEventPublisher);\n\n\tconstructor(private readonly structureSourceDomainEventPublisher: SourceDomainEventPublisher) {\n\t}\n\n\tstatic readonly services = [SourceDomainEventPublisher];\n\n\tforCommand(): CommandType<StructureSetSummariesEnabledCommand> {\n\t\treturn StructureSetSummariesEnabledCommand;\n\t}\n\n\thandle(structure: StructureAggregate, command: StructureSetSummariesEnabledCommand): void {\n\n\t\tconst enabled = command.isEnabled();\n\n\t\tstructure.setSummariesEnabled(enabled);\n\t}\n\n\tpublish(aggregate: StructureAggregate, command: StructureSetSummariesEnabledCommand): void {\n\n\t\tconst enabled = command.isEnabled(),\n\t\t\taggregateEvents = aggregate.getEvents();\n\n\t\tthis.domainEventPublisher.publish(new StructureSummariesEnabledSetEvent(command.getAggregateId(), enabled));\n\t\tthis.structureSourceDomainEventPublisher.publish(aggregateEvents);\n\t}\n\n}\n","import { AggregateId, DomainEvent } from '@generic-ui/hermes';\n\nimport { SummariesValues } from '../domain/calculation/summaries.values';\nimport { StructureId } from '../../../structure-core/src/api/global/structure.id';\nimport { StructureSummariesChangedEvent } from './structure.summaries-changed.event';\nimport { StructureAggregateEvent } from '../../../structure-core/src/core/structure.aggregate-event';\n\n\nexport class StructureSummariesChangedAggregateEvent extends StructureAggregateEvent {\n\n\tconstructor(aggregateId: AggregateId,\n\t\t\t\tprivate readonly summarizedValues: Map<string, SummariesValues>) {\n\t\tsuper(aggregateId, 'StructureSummariesChangedAggregateEvent');\n\t}\n\n\ttoDomainEvent(): DomainEvent<StructureId> {\n\t\treturn new StructureSummariesChangedEvent(this.getAggregateId(), this.summarizedValues);\n\t}\n\n\tgetSummaries(): Map<string, SummariesValues> {\n\t\treturn this.summarizedValues;\n\t}\n}\n","import { AggregateEvent } from '@generic-ui/hermes';\n\nimport { StructureId } from '../../../structure-core/src/api/global/structure.id';\nimport { FieldId } from '../../../field/src/domain/field/field.id';\nimport { SummariesCalculator } from './calculation/summaries.calculator';\nimport { ItemEntity } from '../../../source/src/domain/item/item.entity';\nimport { StructureSummariesChangedAggregateEvent } from '../core/structure.summaries-changed.aggregate-event';\nimport { FieldEntity } from '../../../field/src/domain/field/field.entity';\n\n\nexport class SummariesManager {\n\n\tstatic readonly DEFAULT_ENABLED = false;\n\n\tprivate readonly structureId: StructureId;\n\n\tprivate enabled: boolean;\n\n\tprivate readonly values = new Map<FieldId, any>();\n\n\tconstructor(structureId: StructureId,\n\t\t\t\tprivate readonly calculators: Array<SummariesCalculator<any, any>>) {\n\t\tthis.structureId = structureId;\n\t\tthis.enabled = SummariesManager.DEFAULT_ENABLED;\n\t}\n\n\tcalculate(fields: Array<FieldEntity>, entities: Array<ItemEntity>): Array<AggregateEvent<StructureId>> {\n\n\t\tif (!this.enabled) {\n\t\t\treturn [];\n\t\t}\n\n\t\tconst calculations = new Map();\n\n\t\tthis.calculators.forEach((calc: SummariesCalculator<any, any>) => {\n\n\t\t\tconst aggregatedValues = calc.calculate(fields, entities);\n\n\t\t\tif (aggregatedValues) {\n\t\t\t\tArray.from(aggregatedValues.keys())\n\t\t\t\t\t .forEach((key: any) => {\n\t\t\t\t\t\t calculations.set(key, aggregatedValues.get(key));\n\t\t\t\t\t });\n\t\t\t}\n\t\t});\n\n\t\tif (calculations.size > 0) {\n\t\t\treturn [\n\t\t\t\tnew StructureSummariesChangedAggregateEvent(this.structureId, calculations)\n\t\t\t];\n\t\t} else {\n\t\t\treturn [];\n\t\t}\n\n\t}\n\n\tsetEnabled(enabled: boolean): void {\n\t\tthis.enabled = enabled;\n\t}\n\n\tadd() {\n\t}\n\n\tremove() {\n\t}\n\n\tupdate() {\n\t}\n\n}\n","import { SummariesManager } from '../../domain/summaries.manager';\nimport { AggregateArchive } from '@generic-ui/hermes';\nimport { StructureId } from '../../../../structure-core/src/api/global/structure.id';\n\n\nexport class SummariesEnabledArchive extends AggregateArchive<boolean> {\n\n\tconstructor() {\n\t\tsuper(SummariesManager.DEFAULT_ENABLED);\n\t}\n\n\tinit(structureId: StructureId): void {\n\t\tthis.next(structureId, SummariesManager.DEFAULT_ENABLED);\n\t}\n\n}\n","import { DomainEventHandler, DomainEventType } from '@generic-ui/hermes';\n\nimport { SummariesEnabledArchive } from './summaries-enabled-archive.service';\nimport { StructureSummariesEnabledSetEvent } from '../../core/set/structure.summaries-enabled-set.event';\nimport { StructureId } from '../../../../structure-core/src/api/global/structure.id';\n\n\nexport class StructureSummariesEnabledSetEventHandler implements DomainEventHandler<StructureId, StructureSummariesEnabledSetEvent> {\n\n\tconstructor(private readonly summariesEnabledArchive: SummariesEnabledArchive) {\n\t}\n\n\tstatic readonly services = [SummariesEnabledArchive];\n\n\tforEvent(): DomainEventType<StructureSummariesEnabledSetEvent> {\n\t\treturn StructureSummariesEnabledSetEvent;\n\t}\n\n\thandle(event: StructureSummariesEnabledSetEvent): void {\n\n\t\tif (event.ofMessageType('StructureSummariesEnabledSetEvent')) {\n\t\t\tthis.summariesEnabledArchive.next(event.getAggregateId(), event.isEnabled());\n\t\t}\n\t}\n\n}\n","import { SummariesValues } from './summaries.values';\nimport { DataType } from '../../../../field/src/domain/field/data/data-type';\nimport { ItemEntity } from '../../../../source/src/domain/item/item.entity';\nimport { SummariesType } from '../summaries.type';\nimport { FieldEntity } from '../../../../field/src/domain/field/field.entity';\n\n\nexport abstract class SummariesCalculator<T, A extends SummariesValues> {\n\n\tabstract forDataType(dataType: DataType): boolean;\n\n\tabstract prepare(field: FieldEntity): void;\n\n\tabstract postCalculate(field: FieldEntity, items: Array<ItemEntity>): void;\n\n\tabstract aggregate(field: FieldEntity, value: T): void;\n\n\tabstract generateAggregatedValues(field: FieldEntity): A;\n\n\tcalculate(fields: Array<FieldEntity>, items: Array<ItemEntity>): Map<string, A> {\n\n\t\tconst filteredFields = fields.filter((field: FieldEntity) => this.forDataType(field.getDataType()));\n\n\t\tif (!filteredFields || filteredFields.length === 0 || items.length === 0) {\n\t\t\treturn null;\n\t\t}\n\n\t\tconst count = new Map<string, number>(),\n\t\t\tdistinct = new Map<string, Set<string>>();\n\n\t\t// init\n\t\tfilteredFields.forEach((field: FieldEntity) => {\n\n\t\t\tconst key = field.getKey();\n\n\t\t\tcount.set(key, 0);\n\t\t\tdistinct.set(key, new Set());\n\n\t\t\tthis.prepare(field);\n\t\t});\n\n\t\t// calculate\n\t\titems.forEach((item: ItemEntity) => {\n\n\t\t\tfilteredFields.forEach((field: FieldEntity) => {\n\n\t\t\t\tconst key = field.getKey(),\n\t\t\t\t\tvalue = field.getValue(item);\n\n\t\t\t\tif (value !== null || value !== undefined || value !== '') {\n\n\t\t\t\t\tif (field.isSummaries(SummariesType.COUNT)) {\n\t\t\t\t\t\tconst countForField = count.get(key);\n\t\t\t\t\t\tcount.set(key, countForField + 1);\n\t\t\t\t\t}\n\n\t\t\t\t\tif (field.isSummaries(SummariesType.DISTINCT)) {\n\t\t\t\t\t\tconst distinctSet = distinct.get(key);\n\t\t\t\t\t\tdistinctSet.add(value);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tthis.aggregate(field, value);\n\t\t\t});\n\t\t});\n\n\t\tfilteredFields.forEach((field: FieldEntity) => {\n\n\t\t\tthis.postCalculate(field, items);\n\n\t\t});\n\n\t\tconst summaries = new Map();\n\n\t\tfilteredFields.forEach((field: FieldEntity) => {\n\n\t\t\tconst key = field.getKey();\n\n\t\t\tconst aggregatedValues = this.generateAggregatedValues(field);\n\n\t\t\tif (field.isSummaries(SummariesType.COUNT)) {\n\t\t\t\taggregatedValues.setCount(count.get(key));\n\t\t\t}\n\n\t\t\tif (field.isSummaries(SummariesType.DISTINCT)) {\n\t\t\t\taggregatedValues.setDistinct((distinct.get(key)).size);\n\t\t\t}\n\n\t\t\tsummaries.set(key, aggregatedValues);\n\t\t});\n\n\t\treturn summaries;\n\t}\n\n}\n","export abstract class SummariesValues {\n\n\tpublic count: number;\n\n\tpublic distinct: number;\n\n\tsetCount(value: number): void {\n\t\tthis.count = value;\n\t}\n\n\tsetDistinct(value: number): void {\n\t\tthis.distinct = value;\n\t}\n\n}\n","import { SummariesValues } from '../summaries.values';\n\nexport class BooleanSummarizedValues extends SummariesValues {\n\n\tpublic readonly truthy: number;\n\n\tpublic readonly falsy: number;\n\n\tconstructor(truthy: number,\n\t\t\t\tfalsy: number) {\n\t\tsuper();\n\t\tthis.truthy = truthy;\n\t\tthis.falsy = falsy;\n\t}\n\n}\n","import { SummariesCalculator } from '../summaries.calculator';\nimport { BooleanSummarizedValues } from './boolean-summarized.values';\n\nimport { DataType } from '../../../../../field/src/domain/field/data/data-type';\nimport { SummariesType } from '../../summaries.type';\nimport { ItemEntity } from '../../../../../source/src/domain/item/item.entity';\nimport { FieldEntity } from '../../../../../field/src/domain/field/field.entity';\n\n\nexport class BooleanSummariesCalculator extends SummariesCalculator<boolean, BooleanSummarizedValues> {\n\n\tprivate readonly truthy = new Map<string, number>();\n\tprivate readonly falsy = new Map<string, number>();\n\n\tconstructor() {\n\t\tsuper();\n\t}\n\n\tforDataType(dataType: DataType): boolean {\n\t\treturn dataType === DataType.BOOLEAN;\n\t}\n\n\tprepare(field: FieldEntity): void {\n\n\t\tconst key = field.getKey();\n\n\t\tif (field.isSummaries(SummariesType.TRUTHY)) {\n\t\t\tthis.truthy.set(key, 0);\n\t\t}\n\n\t\tif (field.isSummaries(SummariesType.FALSY)) {\n\t\t\tthis.falsy.set(key, 0);\n\t\t}\n\t}\n\n\tpostCalculate(field: FieldEntity, items: Array<ItemEntity>): void {\n\t}\n\n\taggregate(field: FieldEntity, value: boolean): void {\n\n\t\tconst booleanValue = value, // (value as any === 'true'),\n\t\t\tkey = field.getKey(),\n\t\t\ttruthyForField = this.truthy.get(key),\n\t\t\tfalsyForField = this.falsy.get(key);\n\n\t\tif (booleanValue) {\n\t\t\tif (field.isSummaries(SummariesType.TRUTHY)) {\n\t\t\t\tthis.truthy.set(key, truthyForField + 1);\n\t\t\t}\n\t\t} else {\n\t\t\tif (field.isSummaries(SummariesType.FALSY)) {\n\t\t\t\tthis.falsy.set(key, falsyForField + 1);\n\t\t\t}\n\t\t}\n\n\t}\n\n\tgenerateAggregatedValues(field: FieldEntity): BooleanSummarizedValues {\n\n\t\tconst key = field.getKey();\n\n\t\treturn new BooleanSummarizedValues(\n\t\t\tthis.truthy.get(key),\n\t\t\tthis.falsy.get(key)\n\t\t);\n\t}\n\n}\n","import { SummariesValues } from '../summaries.values';\n\nexport class DateSummarizedValues extends SummariesValues {\n\n\tconstructor() {\n\t\tsuper();\n\t}\n\n}\n","import { SummariesCalculator } from '../summaries.calculator';\nimport { DateSummarizedValues } from './date-summarized.values';\n\nimport { DataType } from '../../../../../field/src/domain/field/data/data-type';\nimport { ItemEntity } from '../../../../../source/src/domain/item/item.entity';\nimport { FieldEntity } from '../../../../../field/src/domain/field/field.entity';\n\n\nexport class DateSummariesCalculator extends SummariesCalculator<Date, DateSummarizedValues> {\n\n\tconstructor() {\n\t\tsuper();\n\t}\n\n\tforDataType(dataType: DataType): boolean {\n\t\treturn dataType === DataType.DATE;\n\t}\n\n\tprepare(field: FieldEntity): void {\n\t}\n\n\tpostCalculate(field: FieldEntity, items: Array<ItemEntity>): void {\n\t}\n\n\taggregate(field: FieldEntity, value: Date): void {\n\t}\n\n\tgenerateAggregatedValues(field: FieldEntity): DateSummarizedValues {\n\t\treturn new DateSummarizedValues();\n\t}\n\n}\n","import { SummariesValues } from '../summaries.values';\n\nexport class NumberSummarizedValues extends SummariesValues {\n\n\tpublic readonly sum: number;\n\tpublic readonly min: number;\n\tpublic readonly max: number;\n\tpublic readonly average: number;\n\tpublic readonly median: number;\n\n\tconstructor(sum: number,\n\t\t\t\tmin: number,\n\t\t\t\tmax: number,\n\t\t\t\taverage: number,\n\t\t\t\tmedian: number) {\n\t\tsuper();\n\t\tthis.sum = this.setValueWithPrecision(sum);\n\t\tthis.min = this.setValueWithPrecision(min);\n\t\tthis.max = this.setValueWithPrecision(max);\n\t\tthis.average = this.setValueWithPrecision(average);\n\t\tthis.median = this.setValueWithPrecision(median);\n\t}\n\n\tprivate setValueWithPrecision(value: number): number {\n\t\tif (!value && value !== 0) {\n\t\t\treturn null;\n\t\t}\n\n\t\tif (value === 0) {\n\t\t\treturn 0;\n\t\t}\n\n\t\treturn +((value).toFixed(2));\n\t}\n\n}\n","import { SummariesCalculator } from '../summaries.calculator';\nimport { NumberSummarizedValues } from './number-summarized.values';\nimport { DataType } from '../../../../../field/src/domain/field/data/data-type';\nimport { SummariesType } from '../../summaries.type';\nimport { ItemEntity } from '../../../../../source/src/domain/item/item.entity';\nimport { FieldEntity } from '../../../../../field/src/domain/field/field.entity';\n\n\nexport class NumberSummariesCalculator extends SummariesCalculator<number, NumberSummarizedValues> {\n\n\tprivate readonly sum = new Map<string, number>();\n\tprivate readonly min = new Map<string, number>();\n\tprivate readonly max = new Map<string, number>();\n\tprivate readonly average = new Map<string, number>();\n\tprivate readonly median = new Map<string, number>();\n\n\tconstructor() {\n\t\tsuper();\n\t}\n\n\tforDataType(dataType: DataType): boolean {\n\t\treturn dataType === DataType.NUMBER;\n\t}\n\n\tprepare(field: FieldEntity): void {\n\n\t\tconst key = field.getKey();\n\n\t\tthis.sum.set(key, 0);\n\t\tthis.min.set(key, Number.MAX_SAFE_INTEGER);\n\t\tthis.max.set(key, 0);\n\t}\n\n\tpostCalculate(field: FieldEntity, items: Array<ItemEntity>): void {\n\n\t\tconst key = field.getKey();\n\n\t\tif (field.isSummaries(SummariesType.AVERAGE)) {\n\t\t\tthis.average.set(key, this.sum.get(key) / items.length);\n\t\t}\n\n\t\tif (field.isSummaries(SummariesType.MEDIAN)) {\n\t\t\tthis.median.set(key, field.getValue(items[Math.floor(items.length / 2)]));\n\t\t}\n\t}\n\n\taggregate(field: FieldEntity, value: number): void {\n\n\t\tconst numberValue = +value,\n\t\t\tkey = field.getKey(),\n\t\t\tsumForField = this.sum.get(key),\n\t\t\tminForField = this.min.get(key),\n\t\t\tmaxForField = this.max.get(key);\n\n\t\tif (field.isSummaries(SummariesType.SUM) || field.isSummaries(SummariesType.AVERAGE)) {\n\t\t\tthis.sum.set(key, sumForField + numberValue);\n\t\t}\n\n\t\tif (field.isSummaries(SummariesType.MIN)) {\n\t\t\tif (minForField > numberValue) {\n\t\t\t\tthis.min.set(key, numberValue);\n\t\t\t}\n\t\t}\n\n\t\tif (field.isSummaries(SummariesType.MAX)) {\n\t\t\tif (maxForField < numberValue) {\n\t\t\t\tthis.max.set(key, numberValue);\n\t\t\t}\n\t\t}\n\n\t}\n\n\tgenerateAggregatedValues(field: FieldEntity): NumberSummarizedValues {\n\n\t\tconst key = field.getKey(),\n\t\t\tsum = field.isSummaries(SummariesType.SUM) ? this.sum.get(key) : undefined,\n\t\t\tmin = field.isSummaries(SummariesType.MIN) ? this.min.get(key) : undefined,\n\t\t\tmax = field.isSummaries(SummariesType.MAX) ? this.max.get(key) : undefined,\n\t\t\taverage = field.isSummaries(SummariesType.AVERAGE) ? this.average.get(key) : undefined,\n\t\t\tmedian = field.isSummaries(SummariesType.MEDIAN) ? this.median.get(key) : undefined;\n\n\t\treturn new NumberSummarizedValues(\n\t\t\tsum,\n\t\t\tmin,\n\t\t\tmax,\n\t\t\taverage,\n\t\t\tmedian\n\t\t);\n\t}\n\n}\n","import { SummariesValues } from '../summaries.values';\n\nexport class StringSummarizedValues extends SummariesValues {\n\n\tconstructor() {\n\t\tsuper();\n\t}\n\n}\n","import { SummariesCalculator } from '../summaries.calculator';\nimport { StringSummarizedValues } from './string-summarized.values';\nimport { DataType } from '../../../../../field/src/domain/field/data/data-type';\nimport { ItemEntity } from '../../../../../source/src/domain/item/item.entity';\nimport { FieldEntity } from '../../../../../field/src/domain/field/field.entity';\n\n\nexport class StringSummariesCalculator extends SummariesCalculator<string, StringSummarizedValues> {\n\n\tconstructor() {\n\t\tsuper();\n\t}\n\n\tforDataType(dataType: DataType): boolean {\n\t\treturn dataType === DataType.STRING;\n\t}\n\n\tprepare(field: FieldEntity): void {\n\t}\n\n\tpostCalculate(field: FieldEntity, items: Array<ItemEntity>): void {\n\t}\n\n\taggregate(field: FieldEntity, value: string): void {\n\t}\n\n\tgenerateAggregatedValues(field: FieldEntity): StringSummarizedValues {\n\t\treturn new StringSummarizedValues();\n\t}\n\n}\n","import { SummariesValues } from '../summaries.values';\n\nexport class UnknownSummarizedValues extends SummariesValues {\n\n\tconstructor() {\n\t\tsuper();\n\t}\n\n}\n","import { SummariesCalculator } from '../summaries.calculator';\nimport { UnknownSummarizedValues } from './unknown-summarized.values';\nimport { DataType } from '../../../../../field/src/domain/field/data/data-type';\nimport { ItemEntity } from '../../../../../source/src/domain/item/item.entity';\nimport { FieldEntity } from '../../../../../field/src/domain/field/field.entity';\n\n\nexport class UnknownSummariesCalculator extends SummariesCalculator<any, UnknownSummarizedValues> {\n\n\tconstructor() {\n\t\tsuper();\n\t}\n\n\tforDataType(dataType: DataType): boolean {\n\t\treturn dataType === DataType.UNKNOWN;\n\t}\n\n\tprepare(field: FieldEntity): void {\n\t}\n\n\tpostCalculate(field: FieldEntity, items: Array<ItemEntity>): void {\n\t}\n\n\taggregate(field: FieldEntity, value: any): void {\n\t}\n\n\tgenerateAggregatedValues(field: FieldEntity): UnknownSummarizedValues {\n\t\treturn new UnknownSummarizedValues();\n\t}\n\n}\n","export const SUMMARIES_CALCULATORS = 'GUI - Summaries Calculators';\n","import { SUMMARIES_CALCULATORS } from './calculation/summaries.calculators.token';\nimport { SummariesCalculator } from './calculation/summaries.calculator';\nimport { StructureId } from '../../../structure-core/src/api/global/structure.id';\nimport { SummariesManager } from './summaries.manager';\n\n\nexport class SummariesManagerFactory {\n\n\tconstructor(private readonly calculators: Array<SummariesCalculator<any, any>>) {\n\t}\n\n\tstatic readonly services = [{ inject: SUMMARIES_CALCULATORS, collection: true }];\n\n\tcreate(structureId: StructureId): SummariesManager {\n\t\treturn new SummariesManager(structureId, this.calculators);\n\t}\n\n}\n","import { CommandDispatcher, CoreContainer } from '@generic-ui/hermes';\n\nimport { StructureId } from '../../../structure-core/src/api/global/structure.id';\nimport { StructureSetSummariesEnabledCommand } from './set/structure.set-summaries-enabled.command';\n\n\nexport class SummariesDispatcher {\n\n\tprivate readonly commandDispatcher: CommandDispatcher = CoreContainer.resolve(CommandDispatcher);\n\n\n\tsetSummariesEnabled(enabled: boolean, structureId: StructureId): void {\n\t\tthis.commandDispatcher.dispatch(new StructureSetSummariesEnabledCommand(structureId, enabled));\n\t}\n\n}\n","export class StructureSummariesPanelConfig {\n\n\tstatic readonly defaultTop = false;\n\n\tstatic readonly defaultBottom = true;\n\n\tprivate top: boolean = StructureSummariesPanelConfig.defaultTop;\n\n\tprivate bottom: boolean = StructureSummariesPanelConfig.defaultBottom;\n\n\tsetTop(top: boolean): void {\n\t\tthis.top = top;\n\t}\n\n\tsetBottom(bottom: boolean): void {\n\t\tthis.bottom = bottom;\n\t}\n\n\tisTopEnabled(): boolean {\n\t\treturn this.top;\n\t}\n\n\tisBottomEnabled(): boolean {\n\t\treturn this.bottom;\n\t}\n\n}\n","import { AggregateArchive } from '@generic-ui/hermes';\n\nimport { StructureSummariesPanelConfig } from '../../core/config/structure.summaries-panel.config';\n\n\nexport class StructureSummariesConfigArchive extends AggregateArchive<StructureSummariesPanelConfig> {\n\n\tstatic readonly default = new StructureSummariesPanelConfig();\n\n\tconstructor() {\n\t\tsuper(StructureSummariesConfigArchive.default);\n\t}\n\n}\n","import { StructureSummariesPanelConfig } from '../../core/config/structure.summaries-panel.config';\n\nimport { SummariesConfig } from '../../api/config/summaries-config';\n\n\nexport class StructureSummariesPanelConfigConverter {\n\n\tconvert(config: SummariesConfig): StructureSummariesPanelConfig {\n\n\t\tconst panelConfig = new StructureSummariesPanelConfig();\n\n\t\tif (config.top !== undefined && config.top !== null) {\n\t\t\tpanelConfig.setTop(config.top);\n\t\t}\n\n\t\tif (config.bottom !== undefined && config.bottom !== null) {\n\t\t\tpanelConfig.setBottom(config.bottom);\n\t\t}\n\n\t\treturn panelConfig;\n\t}\n}\n","import { AggregateDefinition, AggregateId, AggregateRoot, Command, Container, DomainEvent, DomainProviders } from '@generic-ui/hermes';\n\nimport { structureKey } from '../../../structure-core/src/api/global/structre.key';\nimport { StructureSetSummariesEnabledCommandHandler } from './set/structure.set-summaries-enabled.command-handler';\nimport { StructureSummariesEnabledSetEventHandler } from '../core-read/enabled/structure.summaries-enabled-set.event-handler';\nimport { BooleanSummariesCalculator } from '../domain/calculation/boolean/boolean-summaries.calculator';\nimport { DateSummariesCalculator } from '../domain/calculation/date/date-summaries.calculator';\nimport { NumberSummariesCalculator } from '../domain/calculation/number/number-summaries.calculator';\nimport { StringSummariesCalculator } from '../domain/calculation/string/string-summaries.calculator';\nimport { UnknownSummariesCalculator } from '../domain/calculation/unknown/unknown-summaries.calculator';\nimport { SummariesManagerFactory } from '../domain/summaries.manager.factory';\nimport { SummariesDispatcher } from './summaries.dispatcher';\nimport { SUMMARIES_CALCULATORS } from '../domain/calculation/summaries.calculators.token';\nimport { StructureSummariesConfigArchive } from '../core-read/config/structure.summaries-config.archive';\nimport { StructureSummariesPanelConfigConverter } from '../core-read/config/structure.summaries-panel.config-converter';\n\n\nexport class SummariesDomainModule implements DomainProviders {\n\n\tdefineAggregate(): AggregateDefinition<any, any, any> | null {\n\t\treturn null;\n\t}\n\n\tregisterKey(): string {\n\t\treturn structureKey;\n\t}\n\n\tregisterProviders(container: Container): void {\n\t\tcontainer.provide(SummariesManagerFactory);\n\t\tcontainer.provide(SummariesDispatcher);\n\t\tcontainer.provide(StructureSummariesConfigArchive);\n\t\tcontainer.provide(StructureSummariesPanelConfigConverter);\n\t\tcontainer.provideCollection(SUMMARIES_CALCULATORS, BooleanSummariesCalculator);\n\t\tcontainer.provideCollection(SUMMARIES_CALCULATORS, DateSummariesCalculator);\n\t\tcontainer.provideCollection(SUMMARIES_CALCULATORS, NumberSummariesCalculator);\n\t\tcontainer.provideCollection(SUMMARIES_CALCULATORS, StringSummariesCalculator);\n\t\tcontainer.provideCollection(SUMMARIES_CALCULATORS, UnknownSummariesCalculator);\n\t}\n\n\tregisterCommandHandlers<I extends AggregateId, A extends AggregateRoot<I>, C extends Command<I>>(): Array<any> {\n\t\treturn [\n\t\t\tStructureSetSummariesEnabledCommandHandler\n\t\t];\n\t}\n\n\tregisterDomainEventHandler<I extends AggregateId, E extends DomainEvent<I>>(): Array<any> {\n\t\treturn [\n\t\t\tStructureSummariesEnabledSetEventHandler\n\t\t];\n\t}\n\n\tregisterMultiDomainEventHandler<I extends AggregateId, E extends DomainEvent<I>>(): Array<any> {\n\t\treturn [];\n\t}\n\n}\n","import { hermesMap, HermesObservable, hermesSwitchMap } from '@generic-ui/hermes';\n\nimport { SummariesEnabledArchive } from './enabled/summaries-enabled-archive.service';\nimport { StructureId } from '../../../structure-core/src/api/global/structure.id';\nimport { SummariesWarehouse } from '../api/summaries.warehouse';\nimport { StructureSummariesConfigArchive } from './config/structure.summaries-config.archive';\nimport { StructureSummariesPanelConfig } from '../core/config/structure.summaries-panel.config';\n\n\nexport class SummariesDomainWarehouse extends SummariesWarehouse {\n\n\tconstructor(private readonly summariesEnabledArchive: SummariesEnabledArchive,\n\t\t\t\tprivate readonly structureSummariesArchive: StructureSummariesConfigArchive) {\n\t\tsuper();\n\t}\n\n\tstatic readonly services = [SummariesEnabledArchive, StructureSummariesConfigArchive];\n\n\tonEnabled(structureId: StructureId): HermesObservable<boolean> {\n\t\treturn this.summariesEnabledArchive.on(structureId);\n\t}\n\n\tonTopEnabled(structureId: StructureId): HermesObservable<boolean> {\n\t\treturn this.onEnabled(structureId)\n\t\t\t\t   .pipe(\n\t\t\t\t\t   hermesSwitchMap((enabled) => {\n\t\t\t\t\t\t   return this.structureSummariesArchive\n\t\t\t\t\t\t\t\t\t  .on(structureId)\n\t\t\t\t\t\t\t\t\t  .pipe(\n\t\t\t\t\t\t\t\t\t\t  hermesMap((config: StructureSummariesPanelConfig) => enabled && config.isTopEnabled())\n\t\t\t\t\t\t\t\t\t  );\n\t\t\t\t\t   })\n\t\t\t\t   );\n\t}\n\n\tonBottomEnabled(structureId: StructureId): HermesObservable<boolean> {\n\t\treturn this.onEnabled(structureId)\n\t\t\t\t   .pipe(\n\t\t\t\t\t   hermesSwitchMap((enabled) => {\n\t\t\t\t\t\t   return this.structureSummariesArchive\n\t\t\t\t\t\t\t\t\t  .on(structureId)\n\t\t\t\t\t\t\t\t\t  .pipe(\n\t\t\t\t\t\t\t\t\t\t  hermesMap((config: StructureSummariesPanelConfig) => enabled && config.isBottomEnabled())\n\t\t\t\t\t\t\t\t\t  );\n\t\t\t\t\t   })\n\t\t\t\t   );\n\n\t}\n\n}\n","import { StructureId } from '../../../structure-core/src/api/global/structure.id';\nimport { SummariesPublisher } from '../api/summaries.publisher';\nimport { SummariesConfig } from '../api/config/summaries-config';\nimport { StructureSummariesPanelConfigConverter } from '../core-read/config/structure.summaries-panel.config-converter';\nimport { StructureSummariesConfigArchive } from '../core-read/config/structure.summaries-config.archive';\nimport { SummariesDispatcher } from './summaries.dispatcher';\n\n\nexport class SummariesDomainPublisher extends SummariesPublisher {\n\n\tconstructor(private readonly summariesDispatcher: SummariesDispatcher,\n\t\t\t\tprivate readonly configConverter: StructureSummariesPanelConfigConverter,\n\t\t\t\tprivate readonly structureSummariesConfigArchive: StructureSummariesConfigArchive) {\n\t\tsuper();\n\t}\n\n\tstatic readonly services = [SummariesDispatcher, StructureSummariesPanelConfigConverter, StructureSummariesConfigArchive];\n\n\tsetSummariesEnabled(enabled: boolean, structureId: StructureId): void {\n\t\tthis.summariesDispatcher.setSummariesEnabled(enabled, structureId);\n\t}\n\n\tsetConfig(config: SummariesConfig, structureId: StructureId): void {\n\n\t\tconst summariesPanelConfig = this.configConverter.convert(config);\n\n\t\tthis.setSummariesEnabled(config.enabled, structureId);\n\t\tthis.structureSummariesConfigArchive.next(structureId, summariesPanelConfig);\n\t}\n\n}\n","import { DomainEvent, HermesObservable } from '@generic-ui/hermes';\nimport { StructureReadModelRootId } from '../../../structure-core/src/api/read/structure.read-model-root-id';\nimport { StructureId } from '../../../structure-core/src/api/global/structure.id';\nimport { StructureSummariesChangedEvent } from '../core/structure.summaries-changed.event';\nimport { SummariesEventRepository } from '../api/summaries.event-repository';\n\n\nexport class SummariesDomainEventRepository extends SummariesEventRepository {\n\n\tconstructor() {\n\t\tsuper();\n\t}\n\n\tonSummariesChanged(structureId: StructureReadModelRootId): HermesObservable<DomainEvent<StructureId>> {\n\t\treturn this.onEvent(structureId, StructureSummariesChangedEvent);\n\t}\n}\n","import { ApiProviders, Container, DomainInitializer } from '@generic-ui/hermes';\n\nimport { SummariesPublisher } from './summaries.publisher';\nimport { SummariesEventRepository } from './summaries.event-repository';\nimport { SummariesDomainModule } from '../core/summaries.domain-module';\nimport { SummariesEnabledArchive } from '../core-read/enabled/summaries-enabled-archive.service';\nimport { SummariesWarehouse } from './summaries.warehouse';\nimport { SummariesDomainWarehouse } from '../core-read/summaries.domain-warehouse';\nimport { SummariesDomainPublisher } from '../core/summaries.domain-publisher';\nimport { SummariesDomainEventRepository } from '../core-read/summaries.domain-event-repository';\n\n\nexport class SummariesApiModule implements ApiProviders {\n\n\tregisterProviders(container: Container): void {\n\t\tcontainer.provide(SummariesPublisher, SummariesDomainPublisher);\n\t\tcontainer.provide(SummariesEventRepository, SummariesDomainEventRepository);\n\t\tcontainer.provide(SummariesWarehouse, SummariesDomainWarehouse);\n\t\tcontainer.provide(SummariesEnabledArchive);\n\t}\n}\n\nexport function initializeSummaries(): void {\n\tnew DomainInitializer(new SummariesApiModule(), new SummariesDomainModule()).init();\n}\n","import { Provider, Type } from '@angular/core';\nimport { SUMMARIES_CALCULATORS } from '../../../../core/structure/summaries/src/domain/calculation/summaries.calculators.token';\n\n\nexport function provideSummariesCalculator(clazz: Type<any>): Provider {\n\treturn {\n\t\tprovide: SUMMARIES_CALCULATORS,\n\t\tuseClass: clazz,\n\t\tmulti: true\n\t};\n}\n","import { NgModule, Provider } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { CoreContainer, FeatureModule } from '@generic-ui/hermes';\n\nimport { initializeSummaries } from '../../../../core/structure/summaries/src/api/summaries.api-module';\nimport { StructureSummariesPanelComponent } from './panel/structure.summaries-panel.component';\nimport { FabricModule } from '@generic-ui/fabric';\nimport { TranslationFeatureModule } from '../../../l10n/src/translation.feature-module';\nimport { provideSummariesCalculator } from './summaries.providers';\nimport { BooleanSummariesCalculator } from '../../../../core/structure/summaries/src/domain/calculation/boolean/boolean-summaries.calculator';\nimport { DateSummariesCalculator } from '../../../../core/structure/summaries/src/domain/calculation/date/date-summaries.calculator';\nimport { NumberSummariesCalculator } from '../../../../core/structure/summaries/src/domain/calculation/number/number-summaries.calculator';\nimport { StringSummariesCalculator } from '../../../../core/structure/summaries/src/domain/calculation/string/string-summaries.calculator';\nimport { UnknownSummariesCalculator } from '../../../../core/structure/summaries/src/domain/calculation/unknown/unknown-summaries.calculator';\nimport { SummariesPublisher } from '../../../../core/structure/summaries/src/api/summaries.publisher';\nimport { SummariesEventRepository } from '../../../../core/structure/summaries/src/api/summaries.event-repository';\nimport { SummariesWarehouse } from '../../../../core/structure/summaries/src/api/summaries.warehouse';\nimport { GuiTemplateModule } from '../../../gui-angular/template/gui.template.module';\n\n\ninitializeSummaries();\n\nexport function provideSummariesCommandInvoker() {\n\treturn CoreContainer.resolve(SummariesPublisher);\n}\n\nexport function provideSummariesWarehouse() {\n\treturn CoreContainer.resolve(SummariesWarehouse);\n}\n\nexport function provideSummariesEventRepository() {\n\treturn CoreContainer.resolve(SummariesEventRepository);\n}\n\n@NgModule({\n\timports: [\n\t\tCommonModule,\n\t\tFabricModule,\n\t\tTranslationFeatureModule,\n\t\tGuiTemplateModule\n\t],\n\tdeclarations: [\n\t\tStructureSummariesPanelComponent\n\t],\n\texports: [\n\t\tStructureSummariesPanelComponent\n\t],\n\tproviders: [\n\t\t{ provide: SummariesPublisher, useFactory: provideSummariesCommandInvoker },\n\t\t{ provide: SummariesWarehouse, useFactory: provideSummariesWarehouse },\n\t\t{ provide: SummariesEventRepository, useFactory: provideSummariesEventRepository },\n\n\t\tprovideSummariesCalculator(BooleanSummariesCalculator),\n\t\tprovideSummariesCalculator(DateSummariesCalculator),\n\t\tprovideSummariesCalculator(NumberSummariesCalculator),\n\t\tprovideSummariesCalculator(StringSummariesCalculator),\n\t\tprovideSummariesCalculator(UnknownSummariesCalculator)\n\t]\n})\nexport class SummariesFeatureModule extends FeatureModule {\n\n\tstatic forComponent(): Array<Provider> {\n\t\treturn [];\n\t}\n}\n","export class VerticalRange {\n\n\tconstructor(private readonly start: number,\n\t\t\t\tprivate readonly end: number,\n\t\t\t\tprivate readonly margin: number) {\n\t}\n\n\tgetStart(): number {\n\t\treturn this.start;\n\t}\n\n\tgetEnd(): number {\n\t\treturn this.end;\n\t}\n\n\tgetMargin(): number {\n\t\treturn this.margin;\n\t}\n\n}\n","import { DomainObject, Optional } from '@generic-ui/hermes';\n\n@DomainObject\nexport class VerticalFormationContainerHeight {\n\n\tprivate containerHeight: Optional<number> = Optional.empty();\n\n\tprivate sourceHeight: number;\n\n\tisContainerHeightProperForVirtualScroll(): boolean {\n\t\tif (this.containerHeight.isPresent()) {\n\t\t\treturn this.containerHeight.getValueOrNullOrThrowError() > 0;\n\t\t} else {\n\t\t\treturn false;\n\t\t}\n\t}\n\n\tgetVisibleContainerHeight(): number {\n\t\treturn this.getHeight();\n\t}\n\n\tgetHeight(): number {\n\n\t\tif (this.containerHeight.isPresent()) {\n\t\t\treturn this.getContainerHeight();\n\t\t}\n\n\t\treturn this.sourceHeight;\n\t}\n\n\tgetSourceHeight(): number {\n\t\treturn this.sourceHeight;\n\t}\n\n\tsetContainerHeight(height: number): void {\n\n\t\tif (height >= 0) {\n\t\t\tthis.containerHeight = Optional.of(height);\n\t\t}\n\t}\n\n\tsetSourceSize(height: number): void {\n\t\tthis.sourceHeight = height;\n\t}\n\n\tprivate getContainerHeight(): number {\n\n\t\tif (this.containerHeight.getValueOrNullOrThrowError() > this.sourceHeight) {\n\t\t\treturn this.sourceHeight;\n\t\t} else {\n\t\t\treturn this.containerHeight.getValueOrNullOrThrowError();\n\t\t}\n\t}\n}\n","import { StructureId } from '../../../../structure-core/src/api/global/structure.id';\nimport { StructureDomainEvent } from '../../../../structure-core/src/core/structure.domain-event';\n\nexport class ScrollBarPositionSetEvent extends StructureDomainEvent {\n\n\tconstructor(aggregateId: StructureId,\n\t\t\t\tprivate readonly position: number) {\n\t\tsuper(aggregateId, position, 'ScrollBarPositionSetEvent');\n\t}\n\n\tgetPosition(): number {\n\t\treturn this.position;\n\t}\n}\n","import { DomainEvent } from '@generic-ui/hermes';\n\nimport { StructureAggregateEvent } from '../../../../structure-core/src/core/structure.aggregate-event';\nimport { StructureId } from '../../../../structure-core/src/api/global/structure.id';\nimport { ScrollBarPositionSetEvent } from './scroll-bar-position-set.event';\n\n\nexport class ScrollBarPositionSetAggregateEvent extends StructureAggregateEvent {\n\n\tconstructor(schemaId: StructureId,\n\t\t\t\tprivate readonly position: number) {\n\t\tsuper(schemaId, 'ScrollBarPositionSetAggregateEvent');\n\t}\n\n\ttoDomainEvent(): DomainEvent<StructureId> {\n\t\treturn new ScrollBarPositionSetEvent(this.getAggregateId(), this.position);\n\t}\n}\n","import { DomainObject } from '@generic-ui/hermes';\n\nimport { VerticalRange } from './vertical-range';\nimport { VerticalFormationContainerHeight } from './container/vertical-formation.container-height';\n\nimport { Logger } from '../../../../../feature/common/cdk/src/logger/logger';\nimport { StructureAggregateEvent } from '../../../structure-core/src/core/structure.aggregate-event';\nimport { StructureId } from '../../../structure-core/src/api/global/structure.id';\nimport { ScrollBarPositionSetAggregateEvent } from '../core/scroll-bar/scroll-bar-position-set.aggregate-event';\n\n\n@DomainObject\nexport class VerticalFormation {\n\n\tstatic readonly ROW_HEIGHT = 42;\n\n\tstatic readonly HIDDEN_ITEMS_TOP = 5;\n\n\tstatic readonly HIDDEN_ITEMS_BOTTOM = 2;\n\n\n\tprivate rowHeight: number = VerticalFormation.ROW_HEIGHT;\n\n\tprivate hiddenItemsTop: number = VerticalFormation.HIDDEN_ITEMS_TOP;\n\n\tprivate hiddenItemsBottom: number = VerticalFormation.HIDDEN_ITEMS_BOTTOM;\n\n\tprivate container: VerticalFormationContainerHeight = new VerticalFormationContainerHeight();\n\n\tprivate scrollPosition: number;\n\n\tprivate range: VerticalRange;\n\n\tprivate sourceSize: number;\n\n\tprivate logger: Logger;\n\n\tconstructor(private structureId: StructureId,\n\t\t\t\tprivate enabled: boolean = false,\n\t\t\t\tviewportHeight: number = 0,\n\t\t\t\tsourceSize: number = 0,\n\t\t\t\tscrollPosition: number = 0,\n\t\t\t\trowHeight?: number,\n\t\t\t\thiddenItemsTop?: number,\n\t\t\t\thiddenItemsBottom?: number) {\n\t\tthis.sourceSize = sourceSize;\n\t\tthis.container.setSourceSize(this.sourceSize * this.rowHeight);\n\t\tthis.container.setContainerHeight(viewportHeight);\n\n\t\tthis.scrollPosition = scrollPosition;\n\n\t\tif (Number.isInteger(rowHeight)) {\n\t\t\tthis.rowHeight = rowHeight;\n\t\t}\n\n\t\tif (Number.isInteger(hiddenItemsTop)) {\n\t\t\tthis.hiddenItemsTop = hiddenItemsTop;\n\t\t}\n\n\t\tif (Number.isInteger(hiddenItemsBottom)) {\n\t\t\tthis.hiddenItemsBottom = hiddenItemsBottom;\n\t\t}\n\n\t\tthis.calculateRange();\n\t}\n\n\tisEnabled(): boolean {\n\t\treturn this.enabled &&\n\t\t\tthis.container.getHeight() > 0 &&\n\t\t\tthis.sourceSize > 0;\n\t}\n\n\tgetViewPortHeight(): number {\n\t\treturn this.container.getVisibleContainerHeight();\n\t}\n\n\tgetSourceHeight(): number {\n\t\treturn this.container.getSourceHeight();\n\t}\n\n\tgetRowHeight(): number {\n\t\treturn this.rowHeight;\n\t}\n\n\tgetRange(): VerticalRange {\n\t\treturn this.range;\n\t}\n\n\tgetTopMargin(): number {\n\t\treturn this.range.getStart() * this.rowHeight;\n\t}\n\n\tcalculateRange(): any {\n\n\t\tif (this.calcFullHeight() <= this.container.getHeight()) {\n\t\t\tthis.range = new VerticalRange(0, this.sourceSize, 0);\n\t\t\treturn;\n\t\t}\n\n\t\tconst itemsInViewport = Math.ceil(this.container.getHeight() / this.rowHeight),\n\t\t\tviewportPositionIndex = Math.floor(this.scrollPosition / this.rowHeight);\n\n\t\tlet end = (viewportPositionIndex + itemsInViewport + this.hiddenItemsBottom);\n\n\t\tlet topMargin = viewportPositionIndex;\n\n\t\tif (topMargin + itemsInViewport >= this.sourceSize) {\n\t\t\ttopMargin = this.sourceSize - itemsInViewport;\n\t\t}\n\n\t\tlet start = Math.max(viewportPositionIndex - this.hiddenItemsTop, 0);\n\n\t\tif (end > this.sourceSize) {\n\t\t\tend = this.sourceSize;\n\t\t\tstart = end - itemsInViewport;\n\t\t}\n\n\t\t// end - itemsInViewport;\n\n\t\tthis.range = new VerticalRange(start, end, topMargin);\n\n\t\treturn {\n\t\t\tstart,\n\t\t\tend,\n\t\t\ttopMargin\n\t\t};\n\t}\n\n\tsetEnabled(enabled: boolean): void {\n\t\tthis.enabled = enabled;\n\n\t\t// TODO dispatch aggregate event\n\t\tif (this.enabled && !this.container.isContainerHeightProperForVirtualScroll()) {\n\t\t\tthis.logger.warn('Height needs to be specified in order for virtual scroll to work.');\n\t\t}\n\n\t\tthis.calculateRange();\n\t}\n\n\tsetSourceSize(sourceSize: number = 0): void {\n\t\tthis.sourceSize = sourceSize;\n\n\t\tthis.container.setSourceSize(this.sourceSize * this.rowHeight);\n\n\t\tthis.calculateRange();\n\t}\n\n\tsetTopHiddenItemsCount(count: number): void {\n\t\tthis.hiddenItemsTop = count;\n\t\tthis.calculateRange();\n\t}\n\n\tsetBottomHiddenItemsCount(count: number): void {\n\t\tthis.hiddenItemsBottom = count;\n\t\tthis.calculateRange();\n\t}\n\n\tsetScrollPosition(scrollPosition: number): void {\n\t\tthis.scrollPosition = scrollPosition;\n\t\tthis.calculateRange();\n\t}\n\n\tscrollToIndex(index: number): StructureAggregateEvent {\n\n\t\tif (index >= this.sourceSize) {\n\t\t\tindex = this.sourceSize;\n\t\t}\n\n\t\tif (index < -1) {\n\t\t\tindex = 0;\n\t\t}\n\n\t\tconst position = index * this.rowHeight;\n\n\t\treturn new ScrollBarPositionSetAggregateEvent(this.structureId, position);\n\t}\n\n\tsetViewportHeight(height: number): void {\n\t\tthis.container.setContainerHeight(height);\n\t\tthis.calculateRange();\n\t}\n\n\tsetRowHeight(rowHeight: number): void {\n\t\tthis.rowHeight = rowHeight;\n\t\tthis.container.setSourceSize(this.sourceSize * this.rowHeight);\n\t\tthis.calculateRange();\n\t}\n\n\tsetLogger(logger: Logger): void {\n\t\tthis.logger = logger;\n\t}\n\n\t// TODO REMOVE\n\tcalcFullHeight(): number {\n\t\treturn this.sourceSize * this.rowHeight;\n\t}\n\n}\n","import { Logger } from '../../../../../feature/common/cdk/src/logger/logger';\n\nimport { VerticalFormation } from './vertical-formation';\nimport { StructureId } from '../../../structure-core/src/api/global/structure.id';\n\n\nexport class VerticalFormationFactory {\n\n\tconstructor(private readonly logger: Logger) {\n\t}\n\n\tstatic readonly services = [Logger];\n\n\tcreate(structureId: StructureId,\n\t\t   enabled: boolean = false,\n\t\t   viewportHeight: number = -1,\n\t\t   sourceSize: number = 0,\n\t\t   scrollPosition: number = 0,\n\t\t   rowHeight?: number,\n\t\t   hiddenItemsTop?: number,\n\t\t   hiddenItemsBottom?: number): VerticalFormation {\n\n\t\tconst vf = new VerticalFormation(\n\t\t\tstructureId,\n\t\t\tenabled,\n\t\t\tviewportHeight,\n\t\t\tsourceSize,\n\t\t\tscrollPosition,\n\t\t\trowHeight,\n\t\t\thiddenItemsTop,\n\t\t\thiddenItemsBottom\n\t\t);\n\n\t\tvf.setLogger(this.logger);\n\n\t\treturn vf;\n\t}\n\n}\n","import { StructureId } from '../../../../structure-core/src/api/global/structure.id';\nimport { StructureCommand } from '../../../../structure-core/src/core/structure.command';\n\n\nexport class SetScrollPositionCommand extends StructureCommand {\n\n\tconstructor(structureId: StructureId,\n\t\t\t\tprivate readonly position: number) {\n\t\tsuper(structureId, 'SetScrollPositionCommand');\n\t}\n\n\tgetPosition(): number {\n\t\treturn this.position;\n\t}\n\n}\n","import { StructureId } from '../../../../structure-core/src/api/global/structure.id';\nimport { StructureDomainEvent } from '../../../../structure-core/src/core/structure.domain-event';\n\nexport class ScrollPositionSetEvent extends StructureDomainEvent {\n\n\tconstructor(aggregateId: StructureId) {\n\t\tsuper(aggregateId, null, 'ScrollPositionSetEvent');\n\t}\n}\n","import { CommandHandler, CommandType, CoreContainer, DomainEventPublisher } from '@generic-ui/hermes';\nimport { SetScrollPositionCommand } from './set-scroll-position.command';\nimport { ScrollPositionSetEvent } from './scroll-position-set.event';\nimport { StructureAggregate } from '../../../../structure-core/src/domain/structure.aggregate';\n\n\nexport class SetScrollPositionCommandHandler implements CommandHandler<StructureAggregate, SetScrollPositionCommand> {\n\n\tprivate readonly domainEventPublisher: DomainEventPublisher = CoreContainer.resolve(DomainEventPublisher);\n\n\tforCommand(): CommandType<SetScrollPositionCommand> {\n\t\treturn SetScrollPositionCommand;\n\t}\n\n\thandle(structure: StructureAggregate, command: SetScrollPositionCommand): void {\n\n\t\tconst position = command.getPosition();\n\n\t\tstructure.setScrollPosition(position);\n\t}\n\n\tpublish(aggregate: StructureAggregate, command: SetScrollPositionCommand): void {\n\t\tthis.domainEventPublisher.publish(new ScrollPositionSetEvent(command.getAggregateId()));\n\t}\n\n}\n","import { StructureId } from '../../../../structure-core/src/api/global/structure.id';\nimport { StructureCommand } from '../../../../structure-core/src/core/structure.command';\n\nexport class SetVerticalScrollEnabledCommand extends StructureCommand {\n\n\tconstructor(structureId: StructureId,\n\t\t\t\tprivate readonly enabled: boolean) {\n\t\tsuper(structureId, 'SetVerticalScrollEnabledCommand');\n\t}\n\n\tisEnabled(): boolean {\n\t\treturn this.enabled;\n\t}\n\n}\n","import { StructureId } from '../../../../structure-core/src/api/global/structure.id';\nimport { StructureDomainEvent } from '../../../../structure-core/src/core/structure.domain-event';\n\nexport class VerticalScrollEnabledSetEvent extends StructureDomainEvent {\n\n\tconstructor(aggregateId: StructureId) {\n\t\tsuper(aggregateId, null, 'VerticalScrollEnabledSetEvent');\n\t}\n}\n","import { CommandHandler, CommandType, CoreContainer, DomainEventPublisher } from '@generic-ui/hermes';\n\nimport { SetVerticalScrollEnabledCommand } from './set-vertical-scroll-enabled.command';\nimport { VerticalScrollEnabledSetEvent } from './vertical-scroll-enabled-set.event';\nimport { StructureAggregate } from '../../../../structure-core/src/domain/structure.aggregate';\n\n\nexport class SetVerticalScrollEnabledCommandHandler implements CommandHandler<StructureAggregate, SetVerticalScrollEnabledCommand> {\n\n\tprivate readonly domainEventPublisher: DomainEventPublisher = CoreContainer.resolve(DomainEventPublisher);\n\n\tforCommand(): CommandType<SetVerticalScrollEnabledCommand> {\n\t\treturn SetVerticalScrollEnabledCommand;\n\t}\n\n\thandle(structure: StructureAggregate, command: SetVerticalScrollEnabledCommand): void {\n\n\t\tconst enabled = command.isEnabled();\n\n\t\tstructure.setVerticalFormationEnabled(enabled);\n\t}\n\n\tpublish(aggregate: StructureAggregate, command: SetVerticalScrollEnabledCommand): void {\n\t\tthis.domainEventPublisher.publish(new VerticalScrollEnabledSetEvent(command.getAggregateId()));\n\t}\n\n}\n","import { StructureId } from '../../../../structure-core/src/api/global/structure.id';\nimport { SchemaTheme } from '../../../../../schema/src/api/theme/schema-theme';\nimport { StructureCommand } from '../../../../structure-core/src/core/structure.command';\n\nexport class SetRowHeightBasedOnThemeCommand extends StructureCommand {\n\n\tconstructor(structureId: StructureId,\n\t\t\t\tprivate readonly theme: SchemaTheme) {\n\t\tsuper(structureId, 'SetRowHeightBasedOnThemeCommand');\n\t}\n\n\tgetTheme(): number {\n\t\treturn this.theme;\n\t}\n\n}\n","import { StructureId } from '../../../../structure-core/src/api/global/structure.id';\nimport { StructureDomainEvent } from '../../../../structure-core/src/core/structure.domain-event';\n\n\nexport class RowHeightSetBasedOnThemeEvent extends StructureDomainEvent {\n\n\tconstructor(structureId: StructureId) {\n\t\tsuper(structureId, null, 'RowHeightSetBasedOnThemeEvent');\n\t}\n}\n","import { CommandHandler, CommandType, CoreContainer, DomainEventPublisher } from '@generic-ui/hermes';\n\nimport { SetRowHeightBasedOnThemeCommand } from './set-row-height-based-on-theme.command';\nimport { StructureAggregate } from '../../../../structure-core/src/domain/structure.aggregate';\nimport { RowHeightSetBasedOnThemeEvent } from './row-height-set-based-on-theme.event';\n\n\nexport class SetRowHeightBasedOnThemeCommandHandler implements CommandHandler<StructureAggregate, SetRowHeightBasedOnThemeCommand> {\n\n\tprivate readonly domainEventPublisher: DomainEventPublisher = CoreContainer.resolve(DomainEventPublisher);\n\n\tforCommand(): CommandType<SetRowHeightBasedOnThemeCommand> {\n\t\treturn SetRowHeightBasedOnThemeCommand;\n\t}\n\n\thandle(structure: StructureAggregate, command: SetRowHeightBasedOnThemeCommand): void {\n\n\t\tconst theme = command.getTheme();\n\n\t\tstructure.setTheme(theme);\n\t}\n\n\tpublish(aggregate: StructureAggregate, command: SetRowHeightBasedOnThemeCommand): void {\n\t\tthis.domainEventPublisher.publish(new RowHeightSetBasedOnThemeEvent(command.getAggregateId()));\n\t}\n\n}\n","import { StructureId } from '../../../../structure-core/src/api/global/structure.id';\nimport { StructureCommand } from '../../../../structure-core/src/core/structure.command';\n\nexport class SetRowHeightCommand extends StructureCommand {\n\n\tconstructor(structureId: StructureId,\n\t\t\t\tprivate readonly rowHeight: number) {\n\t\tsuper(structureId, 'SetRowHeightCommand');\n\t}\n\n\tgetRowHeight(): number {\n\t\treturn this.rowHeight;\n\t}\n\n}\n","import { StructureId } from '../../../../structure-core/src/api/global/structure.id';\nimport { StructureDomainEvent } from '../../../../structure-core/src/core/structure.domain-event';\n\nexport class RowHeightSetEvent extends StructureDomainEvent {\n\n\tconstructor(aggregateId: StructureId) {\n\t\tsuper(aggregateId, null, 'RowHeightSetEvent');\n\t}\n}\n","import { CommandHandler, CommandType, CoreContainer, DomainEventPublisher } from '@generic-ui/hermes';\n\nimport { SetRowHeightCommand } from './set-row-height.command';\nimport { StructureAggregate } from '../../../../structure-core/src/domain/structure.aggregate';\nimport { RowHeightSetEvent } from './row-height-set.event';\n\n\nexport class SetRowHeightCommandHandler implements CommandHandler<StructureAggregate, SetRowHeightCommand> {\n\n\tprivate readonly domainEventPublisher: DomainEventPublisher = CoreContainer.resolve(DomainEventPublisher);\n\n\tforCommand(): CommandType<SetRowHeightCommand> {\n\t\treturn SetRowHeightCommand;\n\t}\n\n\thandle(structure: StructureAggregate, command: SetRowHeightCommand): void {\n\n\t\tconst rowHeight = command.getRowHeight();\n\n\t\tconst formation = structure.getVerticalFormation();\n\n\t\tformation.setRowHeight(rowHeight);\n\t}\n\n\tpublish(aggregate: StructureAggregate, command: SetRowHeightCommand): void {\n\t\tthis.domainEventPublisher.publish(new RowHeightSetEvent(command.getAggregateId()));\n\t}\n\n}\n","import { StructureId } from '../../../../../structure-core/src/api/global/structure.id';\nimport { StructureCommand } from '../../../../../structure-core/src/core/structure.command';\n\n\nexport class StructureSetHeightCommand extends StructureCommand {\n\n\tconstructor(structureId: StructureId,\n\t\t\t\tprivate readonly height: number) {\n\t\tsuper(structureId, 'StructureSetHeightCommand');\n\t}\n\n\tgetHeight(): number {\n\t\treturn this.height;\n\t}\n\n}\n","import { StructureId } from '../../../../../structure-core/src/api/global/structure.id';\nimport { StructureDomainEvent } from '../../../../../structure-core/src/core/structure.domain-event';\n\n\nexport class StructureHeightSetEvent extends StructureDomainEvent {\n\n\tconstructor(aggregateId: StructureId) {\n\t\tsuper(aggregateId, null, 'StructureHeightSetEvent');\n\t}\n}\n","import { CommandHandler, CommandType, CoreContainer, DomainEventPublisher } from '@generic-ui/hermes';\n\nimport { StructureSetHeightCommand } from './structure-set-height.command';\nimport { StructureHeightSetEvent } from './structure-height-set.event';\nimport { StructureAggregate } from '../../../../../structure-core/src/domain/structure.aggregate';\n\n\nexport class StructureSetHeightCommandHandler implements CommandHandler<StructureAggregate, StructureSetHeightCommand> {\n\n\tprivate readonly domainEventPublisher: DomainEventPublisher = CoreContainer.resolve(DomainEventPublisher);\n\n\tforCommand(): CommandType<StructureSetHeightCommand> {\n\t\treturn StructureSetHeightCommand;\n\t}\n\n\thandle(aggregate: StructureAggregate, command: StructureSetHeightCommand): void {\n\n\t\tconst height = command.getHeight();\n\n\t\taggregate.setHeight(height);\n\t}\n\n\tpublish(aggregate: StructureAggregate, command: StructureSetHeightCommand): void {\n\t\tthis.domainEventPublisher.publish(new StructureHeightSetEvent(command.getAggregateId()));\n\t}\n\n}\n","import { AggregateArchive } from '@generic-ui/hermes';\n\n\nexport class VerticalFormationScrollBarPositionArchive extends AggregateArchive<number> {\n\n\tstatic readonly DEFAULT_POSITION = 0;\n\n\tconstructor() {\n\t\tsuper(VerticalFormationScrollBarPositionArchive.DEFAULT_POSITION);\n\t}\n\n}\n","import { DomainEventHandler, DomainEventType } from '@generic-ui/hermes';\n\nimport { VerticalFormationScrollBarPositionArchive } from './vertical-formation.scroll-bar-position.archive';\nimport { ScrollBarPositionSetEvent } from '../../core/scroll-bar/scroll-bar-position-set.event';\nimport { StructureId } from '../../../../structure-core/src/api/global/structure.id';\n\n\nexport class ScrollBarPositionSetEventHandler implements DomainEventHandler<StructureId, ScrollBarPositionSetEvent> {\n\n\tconstructor(private readonly positionRepository: VerticalFormationScrollBarPositionArchive) {\n\t}\n\n\tstatic readonly services = [VerticalFormationScrollBarPositionArchive] as const;\n\n\tforEvent(): DomainEventType<ScrollBarPositionSetEvent> {\n\t\treturn ScrollBarPositionSetEvent;\n\t}\n\n\thandle(event: ScrollBarPositionSetEvent): void {\n\n\t\tif (event.ofMessageType('ScrollBarPositionSetEvent')) {\n\t\t\tthis.positionRepository.next(event.getAggregateId(), event.getPosition());\n\t\t}\n\n\t}\n\n}\n","import { StructureId } from '../../../../structure-core/src/api/global/structure.id';\nimport { StructureCommand } from '../../../../structure-core/src/core/structure.command';\n\n\nexport class SetScrollBarPositionCommand extends StructureCommand {\n\n\tconstructor(structureId: StructureId,\n\t\t\t\tprivate readonly position: number) {\n\t\tsuper(structureId, 'SetScrollBarPositionCommand');\n\t}\n\n\tgetPosition(): number {\n\t\treturn this.position;\n\t}\n\n}\n","import { CommandHandler, CommandType } from '@generic-ui/hermes';\nimport { SetScrollBarPositionCommand } from './set-scroll-bar-position.command';\nimport { StructureAggregate } from '../../../../structure-core/src/domain/structure.aggregate';\n\n\nexport class SetScrollBarPositionCommandHandler implements CommandHandler<StructureAggregate, SetScrollBarPositionCommand> {\n\n\tforCommand(): CommandType<SetScrollBarPositionCommand> {\n\t\treturn SetScrollBarPositionCommand;\n\t}\n\n\thandle(structure: StructureAggregate, command: SetScrollBarPositionCommand): void {\n\n\t\tconst index = command.getPosition();\n\n\t\tstructure.scrollToIndex(index);\n\t}\n\n}\n","import { StructureId } from '../../../structure-core/src/api/global/structure.id';\nimport { SetVerticalScrollEnabledCommand } from './set-enabled/set-vertical-scroll-enabled.command';\nimport { SetScrollBarPositionCommand } from './scroll-bar/set-scroll-bar-position.command';\nimport { SetScrollPositionCommand } from './scroll-position/set-scroll-position.command';\nimport { CommandDispatcher, CoreContainer } from '@generic-ui/hermes';\n\n\nexport class VerticalFormationDispatcher {\n\n\tprivate readonly commandDispatcher: CommandDispatcher = CoreContainer.resolve(CommandDispatcher);\n\n\n\tsetVirtualScrollEnabled(enabled: boolean, structureId: StructureId): void {\n\t\tthis.commandDispatcher.dispatch(new SetVerticalScrollEnabledCommand(structureId, enabled));\n\t}\n\n\tscrollTo(position: number, structureId: StructureId): void {\n\t\tthis.commandDispatcher.dispatch(new SetScrollBarPositionCommand(structureId, position));\n\t}\n\n\tsetScrollPosition(position: number, structureId: StructureId): void {\n\t\tthis.commandDispatcher.dispatch(new SetScrollPositionCommand(structureId, position));\n\t}\n\n}\n","import {\n\tAggregateDefinition,\n\tAggregateId,\n\tAggregateRoot,\n\tCommand,\n\tContainer,\n\tDomainEvent,\n\tDomainProviders,\n\tMultiDomainEventHandler,\n\tType\n} from '@generic-ui/hermes';\n\nimport { structureKey } from '../../../structure-core/src/api/global/structre.key';\nimport { VerticalFormationFactory } from '../domain/vertical-formation.factory';\nimport { SetScrollPositionCommandHandler } from './scroll-position/set-scroll-position.command-handler';\nimport { SetVerticalScrollEnabledCommandHandler } from './set-enabled/set-vertical-scroll-enabled.command-handler';\nimport { SetRowHeightBasedOnThemeCommandHandler } from './set-row-height-theme/set-row-height-based-on-theme.command-handler';\nimport { SetRowHeightCommandHandler } from './set-row-height/set-row-height.command-handler';\nimport { StructureSetHeightCommandHandler } from './container/set-height/structure-set-height.command-handler';\nimport { ScrollBarPositionSetEventHandler } from '../core-read/scroll-bar/scroll-bar-position-set.event-handler';\nimport { SetScrollBarPositionCommandHandler } from './scroll-bar/set-scroll-bar-position.command-handler';\nimport { VerticalFormationDispatcher } from './vertical-formation.dispatcher';\n\nexport class VerticalFormationDomainModule implements DomainProviders {\n\n\tdefineAggregate(): AggregateDefinition<any, any, any> | null {\n\t\treturn null;\n\t}\n\n\tregisterKey(): string {\n\t\treturn structureKey;\n\t}\n\n\tregisterProviders(container: Container): void {\n\t\tcontainer.provide(VerticalFormationFactory);\n\t\tcontainer.provide(VerticalFormationDispatcher);\n\t}\n\n\tregisterCommandHandlers<I extends AggregateId, A extends AggregateRoot<I>, C extends Command<I>>(): Array<any> {\n\t\treturn [\n\t\t\tSetScrollPositionCommandHandler,\n\t\t\tSetVerticalScrollEnabledCommandHandler,\n\t\t\tSetRowHeightBasedOnThemeCommandHandler,\n\t\t\tSetRowHeightCommandHandler,\n\t\t\tStructureSetHeightCommandHandler,\n\t\t\tSetScrollBarPositionCommandHandler\n\t\t];\n\t}\n\n\tregisterDomainEventHandler<I extends AggregateId, E extends DomainEvent<I>>(): Array<any> {\n\t\treturn [\n\t\t\tScrollBarPositionSetEventHandler\n\t\t];\n\t}\n\n\tregisterMultiDomainEventHandler<I extends AggregateId, E extends DomainEvent<I>>(): Array<Type<MultiDomainEventHandler<I, E>>> {\n\t\treturn [];\n\t}\n\n}\n\n","import { ReadModelObject } from '@generic-ui/hermes';\n\n\n@ReadModelObject\nexport class VerticalFormationModel {\n\n\tconstructor(private readonly enabled: boolean,\n\t\t\t\tprivate readonly topMargin: number,\n\t\t\t\tprivate readonly sourceHeight: number,\n\t\t\t\tprivate readonly viewportHeight: number,\n\t\t\t\tprivate readonly rowHeight: number) {\n\t}\n\n\tisEnabled(): boolean {\n\t\treturn this.enabled;\n\t}\n\n\tgetTopMargin(): number {\n\t\treturn this.topMargin; //  * this.rowHeight;\n\t}\n\n\tgetSourceHeight(): number {\n\t\treturn this.sourceHeight;\n\t}\n\n\tgetViewPortHeight(): number {\n\t\treturn this.viewportHeight;\n\t}\n\n\tgetRowHeight(): number {\n\t\treturn this.rowHeight;\n\t}\n\n}\n","import { VerticalFormation } from '../domain/vertical-formation';\nimport { VerticalFormationModel } from '../core-read/vertical-formation.model';\n\n\nexport class VerticalFormationConverter {\n\n\tconvert(verticalFormation: VerticalFormation): VerticalFormationModel {\n\n\t\tconst enabled = verticalFormation.isEnabled(),\n\t\t\ttopMargin = verticalFormation.getTopMargin(),\n\t\t\tsourceHeight = verticalFormation.getSourceHeight(),\n\t\t\tviewportHeight = verticalFormation.getViewPortHeight(),\n\t\t\trowHeight = verticalFormation.getRowHeight();\n\n\t\treturn new VerticalFormationModel(enabled, topMargin, sourceHeight, viewportHeight, rowHeight);\n\t}\n\n}\n","import { StructureId } from '../../api/global/structure.id';\nimport { StructureDomainEvent } from '../structure.domain-event';\n\nexport class StructureCreatedEvent extends StructureDomainEvent {\n\n\tconstructor(aggregateId: StructureId) {\n\t\tsuper(aggregateId, null, 'StructureCreatedEvent');\n\t}\n}\n","import { InMemoryStore } from '@generic-ui/hermes';\n\nimport { StructureAggregate } from '../domain/structure.aggregate';\nimport { StructureId } from '../api/global/structure.id';\n\n\nexport class InMemoryStructureStore extends InMemoryStore<StructureId, StructureAggregate> {\n}\n","import { ReadModelObject } from '@generic-ui/hermes';\n\n@ReadModelObject\nexport class SourceIsLoadingModel {\n\n\tconstructor(private readonly loading: boolean) {\n\t}\n\n\tisLoading(): boolean {\n\t\treturn this.loading;\n\t}\n\n}\n","import { SourceIsLoadingModel } from '../core-read/source-is-loading.model';\nimport { SourceManager } from '../domain/source.manager';\n\n\nexport class SourceConverter {\n\n\tconvert(aggregate: SourceManager): SourceIsLoadingModel {\n\t\treturn new SourceIsLoadingModel(aggregate.isLoading());\n\t}\n\n}\n","import { ReadModelRoot } from '@generic-ui/hermes';\n\nimport { PagingModel } from '../../../../paging/src/api/model/paging.model';\nimport { SourceIsLoadingModel } from '../../../../source/src/core-read/source-is-loading.model';\nimport { Item } from '../../../../source/src/api/item/item';\nimport { VerticalFormationModel } from '../../../../vertical-formation/src/core-read/vertical-formation.model';\nimport { StructureReadModelRootId } from './structure.read-model-root-id';\n\n\nexport class StructureReadModelRoot extends ReadModelRoot<StructureReadModelRootId> {\n\n\tprivate readonly paging: PagingModel;\n\n\tprivate readonly entities: Array<Item>;\n\n\tprivate readonly source: SourceIsLoadingModel;\n\n\tprivate readonly verticalFormation: VerticalFormationModel;\n\n\tconstructor(uid: StructureReadModelRootId,\n\t\t\t\tpaging: PagingModel,\n\t\t\t\tentities: Array<Item>,\n\t\t\t\tsource: SourceIsLoadingModel,\n\t\t\t\tverticalFormation: VerticalFormationModel) {\n\t\tsuper(uid);\n\t\tthis.paging = paging;\n\t\tthis.entities = entities;\n\t\tthis.source = source;\n\t\tthis.verticalFormation = verticalFormation;\n\t}\n\n\tgetPaging(): PagingModel {\n\t\treturn this.paging;\n\t}\n\n\tgetEntities(): Array<Item> {\n\t\treturn this.entities;\n\t}\n\n\tgetSource(): SourceIsLoadingModel {\n\t\treturn this.source;\n\t}\n\n\tgetVerticalFormation(): VerticalFormationModel {\n\t\treturn this.verticalFormation;\n\t}\n\n\t// TODO Remove\n\tgetTopMargin(): number {\n\t\treturn this.verticalFormation.getTopMargin();\n\t}\n\n\tisLoaderVisible(): boolean {\n\t\treturn this.getSource().isLoading();\n\t}\n\n\tgetSourceHeight(): number {\n\t\treturn this.verticalFormation.getSourceHeight();\n\t}\n\n\tisReadyToDisplay(): boolean {\n\t\treturn this.entities.length > 0;\n\t\t// this.presentation.getColumns().length > 0; // TODO presentation getColumns\n\t}\n\n\tisVerticalScrollEnabled(): boolean {\n\t\treturn this.verticalFormation.isEnabled();\n\t}\n\n}\n\n","import { PagingConverter } from '../../../../paging/src/core-read/paging.converter';\nimport { SourceConverter } from '../../../../source/src/core/source.converter';\nimport { VerticalFormationConverter } from '../../../../vertical-formation/src/core/vertical-formation.converter';\nimport { StructureAggregate } from '../../domain/structure.aggregate';\nimport { StructureReadModelRoot } from './structure.read-model-root';\nimport { ItemEntity } from '../../../../source/src/domain/item/item.entity';\nimport { Item } from '../../../../source/src/api/item/item';\n\n\nexport class StructureReadModelRootConverter {\n\n\tconstructor(private pagingConverter: PagingConverter,\n\t\t\t\tprivate sourceConverter: SourceConverter,\n\t\t\t\tprivate verticalFormationConverter: VerticalFormationConverter) {\n\t}\n\n\tstatic readonly services = [PagingConverter, SourceConverter, VerticalFormationConverter];\n\n\tconvert(aggregate: StructureAggregate): StructureReadModelRoot {\n\n\t\tconst pagingAggregate = aggregate.getPaging(),\n\t\t\toriginItemEntities = aggregate.getEntities(),\n\t\t\tsourceCoordinator = aggregate.getSource(),\n\t\t\tverticalFormation = aggregate.getVerticalFormation();\n\n\t\treturn new StructureReadModelRoot(\n\t\t\taggregate.getId().toReadModelRootId(),\n\t\t\tthis.pagingConverter.convert(pagingAggregate),\n\t\t\tthis.convertSource(originItemEntities),\n\t\t\tthis.sourceConverter.convert(sourceCoordinator),\n\t\t\tthis.verticalFormationConverter.convert(verticalFormation)\n\t\t);\n\t}\n\n\tprivate convertSource(source: Array<ItemEntity>): Array<Item> {\n\t\treturn source.map((originItem: ItemEntity) => {\n\t\t\treturn new Item(originItem.sourceItem, originItem.getPosition(), originItem.getId().toString(), originItem.getVersion());\n\t\t});\n\t}\n}\n","import { InMemoryReadModelStore } from '@generic-ui/hermes';\n\nimport { StructureReadModelRoot } from '../../api/read/structure.read-model-root';\nimport { StructureAggregate } from '../../domain/structure.aggregate';\nimport { InMemoryStructureStore } from '../in-memory.structure.store';\nimport { StructureReadModelRootConverter } from '../../api/read/structure.read-model-root-converter';\nimport { StructureReadModelRootId } from '../../api/read/structure.read-model-root-id';\nimport { StructureId } from '../../api/global/structure.id';\n\n\nexport class InMemoryStructureReadStore extends InMemoryReadModelStore<StructureReadModelRootId,\n\tStructureReadModelRoot,\n\tStructureId,\n\tStructureAggregate> {\n\n\tconstructor(private inMemoryProjectStore: InMemoryStructureStore,\n\t\t\t\tprivate structureConverter: StructureReadModelRootConverter) {\n\t\tsuper(inMemoryProjectStore);\n\t}\n\n\tstatic readonly services = [InMemoryStructureStore, StructureReadModelRootConverter];\n\n\ttoReadModel(aggregate: StructureAggregate): StructureReadModelRoot {\n\t\treturn this.structureConverter.convert(aggregate);\n\t}\n\n}\n","import { DomainEvent } from '@generic-ui/hermes';\nimport { SchemaId } from './schema.id';\n\nexport abstract class SchemaDomainEvent extends DomainEvent<SchemaId> {\n}\n","import { SchemaId } from '../schema.id';\nimport { SchemaTheme } from '../../api/theme/schema-theme';\nimport { SchemaDomainEvent } from '../schema.domain-event';\n\nexport class SchemaThemeSetEvent extends SchemaDomainEvent {\n\n\tconstructor(schemaId: SchemaId,\n\t\t\t\tprivate readonly theme: SchemaTheme) {\n\t\tsuper(schemaId, theme, 'SchemaThemeSetEvent');\n\t}\n\n\tgetTheme(): SchemaTheme {\n\t\treturn this.theme;\n\t}\n}\n","import { StructureId } from '../../../../../structure-core/src/api/global/structure.id';\nimport { StructureDomainEvent } from '../../../../../structure-core/src/core/structure.domain-event';\n\n\nexport class UniqueFilterUnselectedEvent extends StructureDomainEvent {\n\n\tconstructor(aggregateId: StructureId) {\n\t\tsuper(aggregateId, null, 'UniqueFilterUnselectedEvent');\n\t}\n\n}\n","import { StructureId } from '../../../../../structure-core/src/api/global/structure.id';\nimport { StructureDomainEvent } from '../../../../../structure-core/src/core/structure.domain-event';\n\n\nexport class AllUniqueFilterUnselectedEvent extends StructureDomainEvent {\n\n\tconstructor(aggregateId: StructureId) {\n\t\tsuper(aggregateId, null, 'AllUniqueFilterUnselectedEvent');\n\t}\n\n}\n","import { StructureId } from '../../../../../structure-core/src/api/global/structure.id';\nimport { StructureDomainEvent } from '../../../../../structure-core/src/core/structure.domain-event';\n\n\nexport class AllUniqueFilterSelectedEvent extends StructureDomainEvent {\n\n\tconstructor(aggregateId: StructureId) {\n\t\tsuper(aggregateId, null, 'AllUniqueFilterSelectedEvent');\n\t}\n\n}\n","import { StructureId } from '../../../../../structure-core/src/api/global/structure.id';\nimport { StructureDomainEvent } from '../../../../../structure-core/src/core/structure.domain-event';\n\n\nexport class UniqueFilterSelectedEvent extends StructureDomainEvent {\n\n\tconstructor(aggregateId: StructureId) {\n\t\tsuper(aggregateId, null, 'UniqueFilterSelectedEvent');\n\t}\n\n}\n","import {\n\tCoreContainer,\n\tDomainEvent,\n\tDomainEventBus,\n\thermesDistinctUntilChanged,\n\thermesFilter,\n\thermesMap,\n\tHermesObservable,\n\tHermesReplaySubject,\n\tReactive\n} from '@generic-ui/hermes';\n\nimport { StructureId } from '../../../structure-core/src/api/global/structure.id';\nimport { VerticalFormationModel } from './vertical-formation.model';\nimport { StructureCreatedEvent } from '../../../structure-core/src/core/create/structure-created.event';\nimport { VerticalScrollEnabledSetEvent } from '../core/set-enabled/vertical-scroll-enabled-set.event';\nimport { InMemoryStructureReadStore } from '../../../structure-core/src/persist/api/in-memory-structure.read-store';\nimport { RowHeightSetEvent } from '../core/set-row-height/row-height-set.event';\nimport { StructureReadModelRoot } from '../../../structure-core/src/api/read/structure.read-model-root';\nimport { SchemaThemeSetEvent } from '../../../../schema/src/core/theme/schema-theme-set.event';\nimport { StructureHeightSetEvent } from '../core/container/set-height/structure-height-set.event';\nimport { OriginSetEvent } from '../../../source/src/core/origin/set/origin-set.event';\nimport { ScrollPositionSetEvent } from '../core/scroll-position/scroll-position-set.event';\nimport { RowHeightSetBasedOnThemeEvent } from '../core/set-row-height-theme/row-height-set-based-on-theme.event';\nimport { SearchPhraseSetDomainEvent } from '../../../search/src/core/phrase/set-phrase/search-phrase-set.domain-event';\nimport { PageChangedEvent } from '../../../paging/src/core/page/page-changed.event';\nimport { PagingSetEvent } from '../../../paging/src/core/set/paging-set.event';\nimport { UniqueFilterUnselectedEvent } from '../../../filter/src/core/unique/unselect/unique-filter-unselected.event';\nimport { AllUniqueFilterUnselectedEvent } from '../../../filter/src/core/unique/unselect-all/all-unique-filter-unselected.event';\nimport { AllUniqueFilterSelectedEvent } from '../../../filter/src/core/unique/select-all/all-unique-filter-selected.event';\nimport { UniqueFilterSelectedEvent } from '../../../filter/src/core/unique/select/unique-filter-selected.event';\nimport { ActiveFiltersSetEvent } from '../../../filter/src/core/active-filters-set.event';\n\n\nexport class VerticalFormationRepository extends Reactive {\n\n\tprivate readonly verticalFormation = new Map<string, VerticalFormationModel>();\n\n\tprivate readonly verticalFormation$ = new HermesReplaySubject<Map<string, VerticalFormationModel>>(1);\n\n\tprivate readonly domainEventBus: DomainEventBus = CoreContainer.resolve(DomainEventBus);\n\n\tconstructor(private readonly inMemoryStructureReadStore: InMemoryStructureReadStore) {\n\t\tsuper();\n\n\t\tthis.domainEventBus\n\t\t\t.ofEvents([\n\t\t\t\t\tStructureCreatedEvent,\n\t\t\t\t\tVerticalScrollEnabledSetEvent,\n\t\t\t\t\tOriginSetEvent,\n\t\t\t\t\tStructureHeightSetEvent,\n\t\t\t\t\tRowHeightSetEvent,\n\t\t\t\t\tSchemaThemeSetEvent, // TODO\n\t\t\t\t\tRowHeightSetBasedOnThemeEvent,\n\t\t\t\t\tScrollPositionSetEvent,\n\t\t\t\t\tSearchPhraseSetDomainEvent as any,\n\t\t\t\t\tUniqueFilterUnselectedEvent,\n\t\t\t\t\tAllUniqueFilterUnselectedEvent,\n\t\t\t\t\tAllUniqueFilterSelectedEvent,\n\t\t\t\t\tUniqueFilterSelectedEvent,\n\t\t\t\t\tPageChangedEvent,\n\t\t\t\t\tPagingSetEvent,\n\t\t\t\t\tActiveFiltersSetEvent\n\t\t\t\t]\n\t\t\t)\n\t\t\t.pipe(\n\t\t\t\tthis.hermesTakeUntil()\n\t\t\t)\n\t\t\t.subscribe((event: DomainEvent<StructureId>) => {\n\n\t\t\t\tconst aggregateId = event.getAggregateId();\n\n\t\t\t\tconst optStructure = this.inMemoryStructureReadStore.getById(aggregateId);\n\n\t\t\t\toptStructure.ifPresent((structureReadModelRoot: StructureReadModelRoot) => {\n\n\t\t\t\t\tconst verticalFormation = structureReadModelRoot.getVerticalFormation();\n\n\t\t\t\t\tthis.next(aggregateId, verticalFormation);\n\t\t\t\t});\n\n\t\t\t});\n\t}\n\n\tstatic readonly services = [InMemoryStructureReadStore];\n\n\tonVerticalScrollEnabled(structureId: StructureId): HermesObservable<boolean> {\n\n\t\treturn this.onVerticalFormation(structureId)\n\t\t\t\t   .pipe(\n\t\t\t\t\t   hermesMap((v: VerticalFormationModel) => v.isEnabled()),\n\t\t\t\t\t   hermesDistinctUntilChanged()\n\t\t\t\t   );\n\t}\n\n\tonRowHeight(structureId: StructureId): HermesObservable<number> {\n\n\t\treturn this.onVerticalFormation(structureId)\n\t\t\t\t   .pipe(\n\t\t\t\t\t   hermesMap((v: VerticalFormationModel) => v.getRowHeight()),\n\t\t\t\t\t   hermesDistinctUntilChanged()\n\t\t\t\t   );\n\t}\n\n\tonContainerHeight(structureId: StructureId): HermesObservable<number> {\n\n\t\treturn this.onVerticalFormation(structureId)\n\t\t\t\t   .pipe(\n\t\t\t\t\t   hermesMap((v: VerticalFormationModel) => v.getViewPortHeight()),\n\t\t\t\t\t   hermesDistinctUntilChanged()\n\t\t\t\t   );\n\t}\n\n\tonTopMargin(structureId: StructureId): HermesObservable<number> {\n\n\t\treturn this.onVerticalFormation(structureId)\n\t\t\t\t   .pipe(\n\t\t\t\t\t   hermesMap((v: VerticalFormationModel) => v.getTopMargin()),\n\t\t\t\t\t   hermesDistinctUntilChanged()\n\t\t\t\t   );\n\t}\n\n\tprivate onVerticalFormation(structureId: StructureId): HermesObservable<VerticalFormationModel> {\n\n\t\treturn this.verticalFormation$\n\t\t\t\t   .toObservable()\n\t\t\t\t   .pipe(\n\t\t\t\t\t   hermesFilter((idToVerticalFormation: Map<string, VerticalFormationModel>) => {\n\n\t\t\t\t\t\t   const key = structureId.getId();\n\n\t\t\t\t\t\t   return idToVerticalFormation.has(key);\n\t\t\t\t\t   }),\n\t\t\t\t\t   hermesMap((idToVerticalFormation: Map<string, VerticalFormationModel>) => idToVerticalFormation.get(structureId.getId()))\n\t\t\t\t   );\n\t}\n\n\tprivate next(structureId: StructureId, verticalFormation: VerticalFormationModel): void {\n\t\tthis.verticalFormation.set(structureId.toString(), verticalFormation);\n\t\tthis.verticalFormation$.next(this.verticalFormation);\n\t}\n\n\n}\n","import { VerticalFormationRepository } from './vertical-formation.repository';\nimport { VerticalFormationScrollBarPositionArchive } from './scroll-bar/vertical-formation.scroll-bar-position.archive';\nimport { StructureId } from '../../../structure-core/src/api/global/structure.id';\nimport { HermesObservable } from '@generic-ui/hermes';\nimport { VerticalFormationWarehouse } from '../api/vertical-formation.warehouse';\n\n\nexport class VerticalFormationDomainWarehouse extends VerticalFormationWarehouse {\n\n\tconstructor(private readonly verticalFormationRepository: VerticalFormationRepository,\n\t\t\t\tprivate readonly positionRepository: VerticalFormationScrollBarPositionArchive) {\n\t\tsuper();\n\t}\n\n\tstatic readonly services = [\n\t\tVerticalFormationRepository,\n\t\tVerticalFormationScrollBarPositionArchive\n\t];\n\n\tonEnabled(structureId: StructureId): HermesObservable<boolean> {\n\t\treturn this.verticalFormationRepository.onVerticalScrollEnabled(structureId);\n\t}\n\n\tonRowHeight(structureId: StructureId): HermesObservable<number> {\n\t\treturn this.verticalFormationRepository.onRowHeight(structureId);\n\t}\n\n\tonContainerHeight(structureId: StructureId): HermesObservable<number> {\n\t\treturn this.verticalFormationRepository.onContainerHeight(structureId);\n\t}\n\n\tonTopMargin(structureId: StructureId): HermesObservable<number> {\n\t\treturn this.verticalFormationRepository.onTopMargin(structureId);\n\t}\n\n\tonScrollBarPosition(structureId: StructureId): HermesObservable<number> {\n\t\treturn this.positionRepository.on(structureId);\n\t}\n\n}\n","import { StructureId } from '../../../structure-core/src/api/global/structure.id';\n\n\nexport abstract class VerticalFormationPublisher {\n\n\tprotected constructor() {\n\t}\n\n\tabstract enableVirtualScroll(structureId: StructureId): void;\n\n\tabstract disableVirtualScroll(structureId: StructureId): void;\n\n\tabstract scrollToTop(structureId: StructureId): void;\n\n\tabstract scrollToBottom(structureId: StructureId): void;\n\n\tabstract scrollToIndex(index: number, structureId: StructureId): void;\n\n\tabstract setScrollPosition(position: number, structureId: StructureId): void;\n\n}\n","import { VerticalFormationPublisher } from '../api/vertical-formation.publisher';\nimport { StructureId } from '../../../structure-core/src/api/global/structure.id';\nimport { VerticalFormationDispatcher } from './vertical-formation.dispatcher';\n\n\nexport class VerticalFormationDomainPublisher extends VerticalFormationPublisher {\n\n\tconstructor(private readonly verticalFormationDispatcher: VerticalFormationDispatcher) {\n\t\tsuper();\n\t}\n\n\tstatic readonly services = [VerticalFormationDispatcher];\n\n\tenableVirtualScroll(structureId: StructureId): void {\n\t\tthis.verticalFormationDispatcher.setVirtualScrollEnabled(true, structureId);\n\t}\n\n\tdisableVirtualScroll(structureId: StructureId): void {\n\t\tthis.verticalFormationDispatcher.setVirtualScrollEnabled(false, structureId);\n\t}\n\n\tscrollToTop(structureId: StructureId): void {\n\t\tthis.verticalFormationDispatcher.scrollTo(0, structureId);\n\t}\n\n\tscrollToBottom(structureId: StructureId): void {\n\t\tthis.verticalFormationDispatcher.scrollTo(Number.MAX_SAFE_INTEGER, structureId);\n\t}\n\n\tscrollToIndex(index: number, structureId: StructureId): void {\n\t\tthis.verticalFormationDispatcher.scrollTo(index, structureId);\n\t}\n\n\tsetScrollPosition(position: number, structureId: StructureId): void {\n\t\tthis.verticalFormationDispatcher.setScrollPosition(position, structureId);\n\t}\n\n}\n","import { ApiProviders, Container, DomainInitializer } from '@generic-ui/hermes';\n\nimport { VerticalFormationDomainModule } from '../core/vertical-formation.domain-module';\nimport { VerticalFormationConverter } from '../core/vertical-formation.converter';\nimport { VerticalFormationRepository } from '../core-read/vertical-formation.repository';\nimport { VerticalFormationWarehouse } from './vertical-formation.warehouse';\nimport { VerticalFormationScrollBarPositionArchive } from '../core-read/scroll-bar/vertical-formation.scroll-bar-position.archive';\nimport { VerticalFormationDomainWarehouse } from '../core-read/vertical-formation.domain-warehouse';\nimport { VerticalFormationPublisher } from './vertical-formation.publisher';\nimport { VerticalFormationDomainPublisher } from '../core/vertical-formation.domain-publisher';\n\n\nexport class VerticalFormationApiModule implements ApiProviders {\n\n\tregisterProviders(container: Container): void {\n\t\tcontainer.provide(VerticalFormationConverter);\n\t\tcontainer.provide(VerticalFormationRepository);\n\t\tcontainer.provide(VerticalFormationWarehouse, VerticalFormationDomainWarehouse);\n\t\tcontainer.provide(VerticalFormationPublisher, VerticalFormationDomainPublisher);\n\t\tcontainer.provide(VerticalFormationScrollBarPositionArchive);\n\t}\n}\n\nexport function initializeVerticalFormation(): void {\n\tnew DomainInitializer(new VerticalFormationApiModule(), new VerticalFormationDomainModule()).init();\n}\n","import { NgModule, Provider } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { CoreContainer, FeatureModule } from '@generic-ui/hermes';\n\nimport { initializeVerticalFormation } from '../../../../core/structure/vertical-formation/src/api/vertical-formation.api-module';\nimport { VerticalFormationPublisher } from '../../../../core/structure/vertical-formation/src/api/vertical-formation.publisher';\nimport { VerticalFormationWarehouse } from '../../../../core/structure/vertical-formation/src/api/vertical-formation.warehouse';\n\n\ninitializeVerticalFormation();\n\nexport function provideVerticalFormationCommandInvoker() {\n\treturn CoreContainer.resolve(VerticalFormationPublisher);\n}\n\nexport function provideVerticalFormationWarehouse() {\n\treturn CoreContainer.resolve(VerticalFormationWarehouse);\n}\n\n\n@NgModule({\n\timports: [\n\t\tCommonModule\n\t],\n\tdeclarations: [],\n\texports: [],\n\tproviders: [\n\t\t{ provide: VerticalFormationPublisher, useFactory: provideVerticalFormationCommandInvoker },\n\t\t{ provide: VerticalFormationWarehouse, useFactory: provideVerticalFormationWarehouse }\n\t]\n})\nexport class VerticalFormationFeatureModule extends FeatureModule {\n\n\tstatic forComponent(): Array<Provider> {\n\t\treturn [];\n\t}\n\n}\n","import { AggregateRepository, Optional } from '@generic-ui/hermes';\n\nimport { SchemaAggregate } from '../domain/schema.aggregate';\nimport { SchemaId } from './schema.id';\n\n\nexport abstract class SchemaAggregateRepository extends AggregateRepository<SchemaId, SchemaAggregate> {\n\n\tabstract findById(schemaId: SchemaId): Optional<SchemaAggregate>;\n\n\tabstract save(aggregate: SchemaAggregate): void;\n\n}\n","import { InMemoryStore } from '@generic-ui/hermes';\n\nimport { SchemaAggregate } from '../domain/schema.aggregate';\nimport { SchemaId } from '../core/schema.id';\n\n\nexport class InMemorySchemaStore extends InMemoryStore<SchemaId, SchemaAggregate> {\n}\n","import { InMemoryAggregateStore } from '@generic-ui/hermes';\n\nimport { SchemaAggregate } from '../domain/schema.aggregate';\nimport { InMemorySchemaStore } from './in-memory.schema.store';\nimport { SchemaId } from '../core/schema.id';\n\n\nexport class InMemorySchemaAggregateStore extends InMemoryAggregateStore<SchemaId, SchemaAggregate> {\n\n\tconstructor(inMemorySchemaStore: InMemorySchemaStore) {\n\t\tsuper(inMemorySchemaStore);\n\t}\n\n\tstatic readonly services = [InMemorySchemaStore];\n\n}\n","import { Optional } from '@generic-ui/hermes';\n\nimport { SchemaAggregateRepository } from '../core/schema.aggregate-repository';\nimport { SchemaAggregate } from '../domain/schema.aggregate';\nimport { SchemaId } from '../core/schema.id';\nimport { InMemorySchemaAggregateStore } from './in-memory.schema.aggregate-store';\n\n\nexport class InMemorySchemaAggregateRepository extends SchemaAggregateRepository {\n\n\tconstructor(private readonly inMemorySchemaAggregateStore: InMemorySchemaAggregateStore) {\n\t\tsuper();\n\t}\n\n\tstatic readonly services = [InMemorySchemaAggregateStore];\n\n\tfindById(schemaId: SchemaId): Optional<SchemaAggregate> {\n\t\treturn this.inMemorySchemaAggregateStore.findById(schemaId);\n\t}\n\n\tsave(schemaAggregate: SchemaAggregate): void {\n\t\tthis.inMemorySchemaAggregateStore.save(schemaAggregate);\n\t}\n\n}\n","import { Command } from '@generic-ui/hermes';\nimport { SchemaId } from './schema.id';\n\nexport abstract class SchemaCommand extends Command<SchemaId> {\n}\n","import { SchemaId } from '../schema.id';\nimport { SchemaTheme } from '../../api/theme/schema-theme';\nimport { SchemaCommand } from '../schema.command';\n\n\nexport class SetSchemaThemeCommand extends SchemaCommand {\n\n\tconstructor(schemaId: SchemaId,\n\t\t\t\tprivate readonly theme: SchemaTheme) {\n\t\tsuper(schemaId, 'SetSchemaThemeCommand');\n\t}\n\n\tgetTheme(): SchemaTheme {\n\t\treturn this.theme;\n\t}\n\n}\n","import { CommandHandler, CommandType } from '@generic-ui/hermes';\n\nimport { SetSchemaThemeCommand } from './set-schema-theme.command';\nimport { SchemaAggregate } from '../../domain/schema.aggregate';\n\n\nexport class SetSchemaThemeCommandHandler implements CommandHandler<SchemaAggregate, SetSchemaThemeCommand> {\n\n\tforCommand(): CommandType<SetSchemaThemeCommand> {\n\t\treturn SetSchemaThemeCommand;\n\t}\n\n\thandle(schemaAggregate: SchemaAggregate, command: SetSchemaThemeCommand): void {\n\n\t\tconst theme = command.getTheme();\n\n\t\tschemaAggregate.changeTheme(theme);\n\t}\n\n}\n","import { SchemaRowColoring } from '../../api/row-coloring/schema-row-coloring';\nimport { SchemaId } from '../schema.id';\nimport { SchemaCommand } from '../schema.command';\n\n\nexport class SetRowColoringCommand extends SchemaCommand {\n\n\tconstructor(schemaId: SchemaId,\n\t\t\t\tprivate readonly coloring: SchemaRowColoring) {\n\t\tsuper(schemaId, 'SetRowColoringCommand');\n\t}\n\n\tgetColoring(): SchemaRowColoring {\n\t\treturn this.coloring;\n\t}\n\n}\n","import { CommandHandler, CommandType } from '@generic-ui/hermes';\n\nimport { SetRowColoringCommand } from './set-row-coloring.command';\nimport { SchemaAggregate } from '../../domain/schema.aggregate';\n\n\nexport class SetRowColoringCommandHandler implements CommandHandler<SchemaAggregate, SetRowColoringCommand> {\n\n\tforCommand(): CommandType<SetRowColoringCommand> {\n\t\treturn SetRowColoringCommand;\n\t}\n\n\thandle(schemaAggregate: SchemaAggregate, command: SetRowColoringCommand): void {\n\n\t\tconst coloring = command.getColoring();\n\t\tschemaAggregate.setRowColoring(coloring);\n\t}\n\n}\n","import { SchemaId } from '../../schema.id';\nimport { SchemaCommand } from '../../schema.command';\n\n\nexport class SetSchemaHorizontalGridCommand extends SchemaCommand {\n\n\tconstructor(schemaId: SchemaId,\n\t\t\t\tprivate readonly enabled: boolean) {\n\t\tsuper(schemaId, 'SetSchemaHorizontalGridCommand');\n\t}\n\n\tisEnabled(): boolean {\n\t\treturn this.enabled;\n\t}\n\n}\n","import { CommandHandler, CommandType, CoreContainer, DomainEventPublisher } from '@generic-ui/hermes';\n\nimport { SetSchemaHorizontalGridCommand } from './set-schema-horizontal-grid.command';\nimport { SchemaAggregate } from '../../../domain/schema.aggregate';\n\n\nexport class SetSchemaHorizontalGridCommandHandler implements CommandHandler<SchemaAggregate, SetSchemaHorizontalGridCommand> {\n\n\tprivate readonly domainEventPublisher: DomainEventPublisher = CoreContainer.resolve(DomainEventPublisher);\n\n\tforCommand(): CommandType<SetSchemaHorizontalGridCommand> {\n\t\treturn SetSchemaHorizontalGridCommand;\n\t}\n\n\thandle(schemaAggregate: SchemaAggregate, command: SetSchemaHorizontalGridCommand): void {\n\n\t\tconst enabled = command.isEnabled();\n\n\t\tschemaAggregate.setHorizontalGrid(enabled);\n\t}\n\n\tpublish(schemaAggregate: SchemaAggregate, command: SetSchemaHorizontalGridCommand): void {\n\t\tthis.domainEventPublisher.publishFromAggregate(schemaAggregate);\n\t}\n}\n","import { SchemaId } from '../../schema.id';\nimport { SchemaCommand } from '../../schema.command';\n\n\nexport class SetSchemaVerticalGridCommand extends SchemaCommand {\n\n\tconstructor(schemaId: SchemaId,\n\t\t\t\tprivate readonly enabled: boolean) {\n\t\tsuper(schemaId, 'SetSchemaVerticalGridCommand');\n\t}\n\n\tisEnabled(): boolean {\n\t\treturn this.enabled;\n\t}\n\n}\n","import { CommandHandler, CommandType, CoreContainer, DomainEventPublisher } from '@generic-ui/hermes';\n\nimport { SetSchemaVerticalGridCommand } from './set-schema-vertical-grid.command';\nimport { SchemaAggregate } from '../../../domain/schema.aggregate';\n\n\nexport class SetSchemaVerticalGridCommandHandler implements CommandHandler<SchemaAggregate, SetSchemaVerticalGridCommand> {\n\n\tprivate readonly domainEventPublisher: DomainEventPublisher = CoreContainer.resolve(DomainEventPublisher);\n\n\tforCommand(): CommandType<SetSchemaVerticalGridCommand> {\n\t\treturn SetSchemaVerticalGridCommand;\n\t}\n\n\thandle(schemaAggregate: SchemaAggregate, command: SetSchemaVerticalGridCommand): void {\n\n\t\tconst enabled = command.isEnabled();\n\n\t\tschemaAggregate.setVerticalGrid(enabled);\n\t}\n\n\tpublish(schemaAggregate: SchemaAggregate, command: SetSchemaVerticalGridCommand): void {\n\t\tthis.domainEventPublisher.publishFromAggregate(schemaAggregate);\n\t}\n\n}\n","import { SchemaCssClass } from '../../api/css-classes/schema-css-class';\nimport { AggregateArchive } from '@generic-ui/hermes';\n\n\nexport class SchemaCssClassesRepository extends AggregateArchive<SchemaCssClass> {\n\n\tconstructor() {\n\t\tsuper();\n\t}\n\n}\n","import { SchemaId } from '../schema.id';\nimport { SchemaRowColoring } from '../../api/row-coloring/schema-row-coloring';\nimport { SchemaDomainEvent } from '../schema.domain-event';\n\n\nexport class RowColoringSetEvent extends SchemaDomainEvent {\n\n\tconstructor(schemaId: SchemaId,\n\t\t\t\tprivate readonly rowColoring: SchemaRowColoring) {\n\t\tsuper(schemaId, rowColoring, 'RowColoringSetEvent');\n\t}\n\n\tgetRowColoring(): SchemaRowColoring {\n\t\treturn this.rowColoring;\n\t}\n}\n","import { SchemaId } from '../../schema.id';\nimport { SchemaDomainEvent } from '../../schema.domain-event';\n\n\nexport class SchemaHorizontalGridSetEvent extends SchemaDomainEvent {\n\n\tconstructor(schemaId: SchemaId,\n\t\t\t\tprivate readonly horizontalGrid: boolean) {\n\t\tsuper(schemaId, horizontalGrid, 'SchemaHorizontalGridSetEvent');\n\t}\n\n\tgetHorizontalGrid(): boolean {\n\t\treturn this.horizontalGrid;\n\t}\n}\n","import { SchemaId } from '../../schema.id';\nimport { SchemaDomainEvent } from '../../schema.domain-event';\n\nexport class SchemaVerticalGridSetEvent extends SchemaDomainEvent {\n\n\tconstructor(schemaId: SchemaId,\n\t\t\t\tprivate readonly verticalGrid: boolean) {\n\t\tsuper(schemaId, verticalGrid, 'SchemaVerticalGridSetEvent');\n\t}\n\n\tgetVerticalGrid(): boolean {\n\t\treturn this.verticalGrid;\n\t}\n}\n","import { SchemaTheme } from '../theme/schema-theme';\nimport { SchemaRowColoring } from '../row-coloring/schema-row-coloring';\n\nexport class SchemaCssClass {\n\n\tconstructor(public readonly verticalGrid: boolean,\n\t\t\t\tpublic readonly horizontalGrid: boolean,\n\t\t\t\tpublic readonly theme: SchemaTheme,\n\t\t\t\tpublic readonly rowColoring: SchemaRowColoring) {\n\t}\n\n\tgetRowColoring(): SchemaRowColoring {\n\t\treturn this.rowColoring;\n\t}\n}\n","import { DomainEventType, MultiDomainEventHandler } from '@generic-ui/hermes';\n\nimport { SchemaCssClassesRepository } from './schema.css-classes.repository';\nimport { SchemaId } from '../../core/schema.id';\nimport { SchemaThemeSetEvent } from '../../core/theme/schema-theme-set.event';\nimport { RowColoringSetEvent } from '../../core/row-coloring/row-coloring-set.event';\nimport { SchemaHorizontalGridSetEvent } from '../../core/grid/horizontal/schema-horizontal-grid-set.event';\nimport { SchemaVerticalGridSetEvent } from '../../core/grid/vertical/schema-vertical-grid-set.event';\nimport { SchemaCssClass } from '../../api/css-classes/schema-css-class';\nimport { SchemaRowColoring } from '../../api/row-coloring/schema-row-coloring';\nimport { SchemaTheme } from '../../api/theme/schema-theme';\n\nexport type SchemaCssClassesEventType =\n\tSchemaThemeSetEvent\n\t| RowColoringSetEvent\n\t| SchemaHorizontalGridSetEvent\n\t| SchemaVerticalGridSetEvent;\n\n\nexport class SchemaCssClassesEventHandler implements MultiDomainEventHandler<SchemaId, SchemaCssClassesEventType> {\n\n\trowColoring: SchemaRowColoring;\n\n\thorizontalGrid: boolean;\n\n\tverticalGrid: boolean;\n\n\tschemaTheme: SchemaTheme;\n\n\tconstructor(private readonly schemaCssClassesRepository: SchemaCssClassesRepository) {\n\t}\n\n\tstatic readonly services = [SchemaCssClassesRepository];\n\n\tforEvents(): Array<DomainEventType<SchemaCssClassesEventType>> {\n\t\treturn [\n\t\t\tSchemaThemeSetEvent,\n\t\t\tRowColoringSetEvent,\n\t\t\tSchemaHorizontalGridSetEvent,\n\t\t\tSchemaVerticalGridSetEvent\n\t\t];\n\t}\n\n\thandle(event: SchemaCssClassesEventType): void {\n\n\t\tif (event.ofMessageType('RowColoringSetEvent')) {\n\t\t\tthis.rowColoring = (event as RowColoringSetEvent).getRowColoring();\n\t\t}\n\n\t\tif (event.ofMessageType('SchemaHorizontalGridSetEvent')) {\n\t\t\tthis.horizontalGrid = (event as SchemaHorizontalGridSetEvent).getHorizontalGrid();\n\t\t}\n\n\t\tif (event.ofMessageType('SchemaVerticalGridSetEvent')) {\n\t\t\tthis.verticalGrid = (event as SchemaVerticalGridSetEvent).getVerticalGrid();\n\t\t}\n\n\t\tif (event.ofMessageType('SchemaThemeSetEvent')) {\n\t\t\tthis.schemaTheme = (event as SchemaThemeSetEvent).getTheme();\n\t\t}\n\n\t\tthis.publish(event.getAggregateId());\n\n\t}\n\n\tprivate publish(aggregateId: SchemaId): void {\n\t\tif (this.rowColoring !== undefined && this.horizontalGrid !== undefined && this.verticalGrid !== undefined && this.schemaTheme !== undefined) {\n\t\t\tthis.schemaCssClassesRepository.next(\n\t\t\t\taggregateId,\n\t\t\t\tnew SchemaCssClass(this.verticalGrid, this.horizontalGrid, this.schemaTheme, this.rowColoring)\n\t\t\t);\n\t\t}\n\t}\n\n}\n","export const schemaKey = 'SchemaAggregate';\n","import { DomainEventType, EventDrivenRepository } from '@generic-ui/hermes';\nimport { SchemaId } from '../../core/schema.id';\nimport { SchemaVerticalGridSetEvent } from '../../core/grid/vertical/schema-vertical-grid-set.event';\n\n\nexport class SchemaVerticalGridRepository extends EventDrivenRepository<SchemaId, SchemaVerticalGridSetEvent, boolean> {\n\n\tconstructor() {\n\t\tsuper();\n\t}\n\n\tforEvent(): DomainEventType<SchemaVerticalGridSetEvent> {\n\t\treturn SchemaVerticalGridSetEvent;\n\t}\n\n}\n","import { DomainEventType, EventDrivenRepository } from '@generic-ui/hermes';\nimport { SchemaTheme } from '../../api/theme/schema-theme';\nimport { SchemaId } from '../../core/schema.id';\nimport { SchemaThemeSetEvent } from '../../core/theme/schema-theme-set.event';\n\n\nexport class SchemaThemeRepository extends EventDrivenRepository<SchemaId, SchemaThemeSetEvent, SchemaTheme> {\n\n\tconstructor() {\n\t\tsuper();\n\t}\n\n\tforEvent(): DomainEventType<SchemaThemeSetEvent> {\n\t\treturn SchemaThemeSetEvent;\n\t}\n\n}\n","import { DomainEventType, EventDrivenRepository } from '@generic-ui/hermes';\nimport { SchemaRowColoring } from '../../api/row-coloring/schema-row-coloring';\nimport { SchemaId } from '../../core/schema.id';\nimport { RowColoringSetEvent } from '../../core/row-coloring/row-coloring-set.event';\n\n\nexport class SchemaRowColoringRepository extends EventDrivenRepository<SchemaId, RowColoringSetEvent, SchemaRowColoring> {\n\n\tconstructor() {\n\t\tsuper();\n\t}\n\n\tforEvent(): DomainEventType<RowColoringSetEvent> {\n\t\treturn RowColoringSetEvent;\n\t}\n\n}\n","import { DomainEventType, EventDrivenRepository } from '@generic-ui/hermes';\nimport { SchemaId } from '../../core/schema.id';\nimport { SchemaHorizontalGridSetEvent } from '../../core/grid/horizontal/schema-horizontal-grid-set.event';\n\n\nexport class SchemaHorizontalGridRepository extends EventDrivenRepository<SchemaId, SchemaHorizontalGridSetEvent, boolean> {\n\n\tconstructor() {\n\t\tsuper();\n\t}\n\n\tforEvent(): DomainEventType<SchemaHorizontalGridSetEvent> {\n\t\treturn SchemaHorizontalGridSetEvent;\n\t}\n\n}\n","import { CreateAggregateCommand } from '@generic-ui/hermes';\nimport { SchemaId } from '../schema.id';\n\n\nexport class CreateSchemaCommand extends CreateAggregateCommand {\n\n\tconstructor(schemaId: SchemaId) {\n\t\tsuper(schemaId, 'CreateSchemaCommand');\n\t}\n\n}\n","import { CommandType, CreateAggregateCommandHandler } from '@generic-ui/hermes';\n\nimport { CreateSchemaCommand } from './create-schema.command';\n\n\nexport class CreateSchemaCommandHandler implements CreateAggregateCommandHandler<CreateSchemaCommand> {\n\n\tforCommand(): CommandType<CreateSchemaCommand> {\n\t\treturn CreateSchemaCommand;\n\t}\n\n}\n","import { AggregateEvent } from '@generic-ui/hermes';\nimport { SchemaId } from './schema.id';\n\nexport abstract class SchemaAggregateEvent extends AggregateEvent<SchemaId> {\n}\n","import { DomainEvent } from '@generic-ui/hermes';\n\nimport { SchemaId } from '../schema.id';\nimport { SchemaTheme } from '../../api/theme/schema-theme';\nimport { SchemaThemeSetEvent } from './schema-theme-set.event';\nimport { SchemaAggregateEvent } from '../schema.aggregate-event';\n\nexport class SchemaThemeSetAggregateEvent extends SchemaAggregateEvent {\n\n\tconstructor(schemaId: SchemaId,\n\t\t\t\tprivate readonly theme: SchemaTheme) {\n\t\tsuper(schemaId, 'SchemaThemeSetAggregateEvent');\n\t}\n\n\ttoDomainEvent(): DomainEvent<SchemaId> {\n\t\treturn new SchemaThemeSetEvent(this.getAggregateId(), this.theme);\n\t}\n}\n","import { DomainEvent } from '@generic-ui/hermes';\n\nimport { SchemaId } from '../schema.id';\nimport { SchemaRowColoring } from '../../api/row-coloring/schema-row-coloring';\nimport { RowColoringSetEvent } from './row-coloring-set.event';\nimport { SchemaAggregateEvent } from '../schema.aggregate-event';\n\n\nexport class RowColoringSetAggregateEvent extends SchemaAggregateEvent {\n\n\tconstructor(schemaId: SchemaId,\n\t\t\t\tprivate readonly rowColoring: SchemaRowColoring) {\n\t\tsuper(schemaId, 'RowColoringSetEvent');\n\t}\n\n\ttoDomainEvent(): DomainEvent<SchemaId> {\n\t\treturn new RowColoringSetEvent(this.getAggregateId(), this.rowColoring);\n\t}\n\n}\n","import { DomainEvent } from '@generic-ui/hermes';\n\nimport { SchemaId } from '../../schema.id';\nimport { SchemaHorizontalGridSetEvent } from '../horizontal/schema-horizontal-grid-set.event';\nimport { SchemaVerticalGridSetEvent } from './schema-vertical-grid-set.event';\nimport { SchemaAggregateEvent } from '../../schema.aggregate-event';\n\nexport class SchemaVerticalGridSetAggregateEvent extends SchemaAggregateEvent {\n\n\tconstructor(schemaId: SchemaId,\n\t\t\t\tprivate readonly verticalGrid: boolean) {\n\t\tsuper(schemaId, 'SchemaHorizontalGridSetEvent');\n\t}\n\n\ttoDomainEvent(): DomainEvent<SchemaId> {\n\t\treturn new SchemaVerticalGridSetEvent(this.getAggregateId(), this.verticalGrid);\n\t}\n}\n","import { DomainEvent } from '@generic-ui/hermes';\n\nimport { SchemaId } from '../../schema.id';\nimport { SchemaHorizontalGridSetEvent } from './schema-horizontal-grid-set.event';\nimport { SchemaAggregateEvent } from '../../schema.aggregate-event';\n\n\nexport class SchemaHorizontalGridSetAggregateEvent extends SchemaAggregateEvent {\n\n\tconstructor(schemaId: SchemaId,\n\t\t\t\tprivate readonly horizontalGrid: boolean) {\n\t\tsuper(schemaId, 'SchemaHorizontalGridSetEvent');\n\t}\n\n\ttoDomainEvent(): DomainEvent<SchemaId> {\n\t\treturn new SchemaHorizontalGridSetEvent(this.getAggregateId(), this.horizontalGrid);\n\t}\n}\n","import { SchemaDomainEvent } from '../schema.domain-event';\nimport { SchemaId } from '../schema.id';\n\n\nexport class SchemaCreatedEvent extends SchemaDomainEvent {\n\n\tconstructor(aggregateId: SchemaId) {\n\t\tsuper(aggregateId, null, 'SchemaCreatedEvent');\n\t}\n}\n","import { DomainEvent } from '@generic-ui/hermes';\n\nimport { SchemaId } from '../schema.id';\nimport { SchemaCreatedEvent } from './schema-created.event';\nimport { SchemaAggregateEvent } from '../schema.aggregate-event';\n\nexport class SchemaCreatedAggregateEvent extends SchemaAggregateEvent {\n\n\tconstructor(aggregateId: SchemaId) {\n\t\tsuper(aggregateId, 'SchemaCreatedAggregateEvent');\n\t}\n\n\ttoDomainEvent(): DomainEvent<SchemaId> {\n\t\treturn new SchemaCreatedEvent(this.getAggregateId());\n\t}\n}\n","import { AggregateEvent, AggregateEventType, AggregateRoot } from '@generic-ui/hermes';\n\nimport { SchemaId } from '../core/schema.id';\nimport { SchemaTheme } from '../api/theme/schema-theme';\nimport { SchemaRowColoring } from '../api/row-coloring/schema-row-coloring';\nimport { SchemaThemeSetAggregateEvent } from '../core/theme/schema-theme-set.aggregate-event';\nimport { RowColoringSetAggregateEvent } from '../core/row-coloring/row-coloring-set.aggregate-event';\nimport { SchemaVerticalGridSetAggregateEvent } from '../core/grid/vertical/schema-vertical-grid-set.aggregate-event';\nimport { SchemaHorizontalGridSetAggregateEvent } from '../core/grid/horizontal/schema-horizontal-grid-set.aggregate-event';\nimport { SchemaCreatedAggregateEvent } from '../core/create/schema-created.aggregate-event';\n\n\nexport class SchemaAggregate extends AggregateRoot<SchemaId> {\n\n\tstatic readonly DEFAULT_THEME = SchemaTheme.GENERIC;\n\n\tstatic readonly DEFAULT_ROW_COLORING = SchemaRowColoring.ODD;\n\n\tstatic readonly DEFAULT_VERTICAL_GRID = true;\n\n\tstatic readonly DEFAULT_HORIZONTAL_GRID = true;\n\n\tprivate horizontalGrid: boolean;\n\n\tprivate verticalGrid: boolean;\n\n\tprivate theme: SchemaTheme;\n\n\tprivate rowColoring: SchemaRowColoring;\n\n\tconstructor(id: SchemaId) {\n\t\tsuper(id, 'SchemaAggregate');\n\t\tthis.setTheme(SchemaAggregate.DEFAULT_THEME);\n\t\tthis.setHorizontalGrid(SchemaAggregate.DEFAULT_HORIZONTAL_GRID);\n\t\tthis.setVerticalGrid(SchemaAggregate.DEFAULT_VERTICAL_GRID);\n\t\tthis.setRowColoring(SchemaAggregate.DEFAULT_ROW_COLORING);\n\t}\n\n\tcreateEvent(): AggregateEventType<AggregateEvent<SchemaId>> {\n\t\treturn SchemaCreatedAggregateEvent;\n\t}\n\n\tchangeTheme(theme: SchemaTheme): void {\n\t\tthis.setTheme(theme);\n\n\t\tif (theme === SchemaTheme.MATERIAL) {\n\t\t\tthis.setRowColoring(SchemaRowColoring.NONE);\n\t\t\tthis.setVerticalGrid(false);\n\t\t}\n\n\t\tif (theme === SchemaTheme.LIGHT) {\n\t\t\tthis.setRowColoring(SchemaRowColoring.NONE);\n\t\t\tthis.setVerticalGrid(false);\n\t\t}\n\n\t\tif (theme === SchemaTheme.DARK) {\n\t\t\tthis.setRowColoring(SchemaRowColoring.NONE);\n\t\t\tthis.setVerticalGrid(false);\n\t\t}\n\n\t\tif (theme === SchemaTheme.GENERIC) {\n\t\t\tthis.setRowColoring(SchemaRowColoring.ODD);\n\t\t}\n\t}\n\n\tsetRowColoring(coloring: SchemaRowColoring): void {\n\t\tthis.rowColoring = coloring;\n\t\tthis.addEvent(new RowColoringSetAggregateEvent(this.getId(), this.rowColoring));\n\t}\n\n\tsetVerticalGrid(enabled: boolean): void {\n\t\tthis.verticalGrid = enabled;\n\t\tthis.addEvent(new SchemaVerticalGridSetAggregateEvent(this.getId(), this.verticalGrid));\n\t}\n\n\tsetHorizontalGrid(enabled: boolean): void {\n\t\tthis.horizontalGrid = enabled;\n\t\tthis.addEvent(new SchemaHorizontalGridSetAggregateEvent(this.getId(), this.horizontalGrid));\n\t}\n\n\tprivate setTheme(theme: SchemaTheme): void {\n\t\tthis.theme = theme;\n\t\tthis.addEvent(new SchemaThemeSetAggregateEvent(this.getId(), this.theme));\n\t}\n}\n","import { AggregateFactory } from '@generic-ui/hermes';\n\nimport { SchemaAggregate } from '../../domain/schema.aggregate';\nimport { SchemaId } from '../schema.id';\n\n\nexport class SchemaAggregateFactory extends AggregateFactory<SchemaId, SchemaAggregate> {\n\n\tconstructor() {\n\t\tsuper();\n\t}\n\n\tcreate(aggregateId: SchemaId): SchemaAggregate {\n\t\treturn new SchemaAggregate(aggregateId);\n\t}\n}\n","import { AggregateArchive } from '@generic-ui/hermes';\n\nimport { SchemaRowClass } from '../../api/styling/schema.row-class';\n\n\nexport class SchemaRowClassArchive extends AggregateArchive<SchemaRowClass> {\n\n\tconstructor() {\n\t\tsuper();\n\t}\n}\n","import { AggregateArchive } from '@generic-ui/hermes';\n\nimport { SchemaRowStyle } from '../../api/styling/schema.row-style';\n\n\nexport class SchemaRowStyleArchive extends AggregateArchive<SchemaRowStyle> {\n\n\tconstructor() {\n\t\tsuper();\n\t}\n}\n","import { AggregateDefinition, AggregateId, AggregateRoot, Command, Container, DomainEvent, DomainProviders } from '@generic-ui/hermes';\n\nimport { SetSchemaThemeCommandHandler } from './theme/set-schema-theme.command-handler';\nimport { SetRowColoringCommandHandler } from './row-coloring/set-row-coloring.command-handler';\nimport { SetSchemaHorizontalGridCommandHandler } from './grid/horizontal/set-schema-horizontal-grid.command-handler';\nimport { SetSchemaVerticalGridCommandHandler } from './grid/vertical/set-schema-vertical-grid.command-handler';\nimport { SchemaCssClassesEventHandler } from '../core-read/css-classes/schema-css-classes.event-handler';\nimport { schemaKey } from './schema.key';\nimport { SchemaVerticalGridRepository } from '../core-read/vertical-grid/schema.vertical-grid.repository';\nimport { SchemaThemeRepository } from '../core-read/theme/schema.theme.repository';\nimport { SchemaRowColoringRepository } from '../core-read/row-coloring/schema.row-coloring.repository';\nimport { SchemaHorizontalGridRepository } from '../core-read/horizontal-grid/schema.horizontal-grid.repository';\nimport { CreateSchemaCommandHandler } from './create/create-schema.command-handler';\nimport { SchemaAggregateFactory } from './create/schema.aggregate-factory';\nimport { InMemorySchemaAggregateRepository } from '../persist/in-memory.schema.aggregate-repository';\nimport { SchemaRowClassArchive } from './styling/schema.row-class.archive';\nimport { SchemaRowStyleArchive } from './styling/schema.row-style.archive';\n\n\nexport class SchemaDomainModule implements DomainProviders {\n\n\tdefineAggregate(): AggregateDefinition<any, any, any> | null {\n\t\treturn {\n\t\t\taggregateKey: schemaKey,\n\t\t\tcreateCommandHandler: CreateSchemaCommandHandler,\n\t\t\tfactory: SchemaAggregateFactory,\n\t\t\trepository: InMemorySchemaAggregateRepository\n\t\t};\n\t}\n\n\tregisterKey(): string {\n\t\treturn schemaKey;\n\t}\n\n\tregisterProviders(container: Container): void {\n\t\tcontainer.provide(SchemaRowClassArchive);\n\t\tcontainer.provide(SchemaRowStyleArchive);\n\t}\n\n\tregisterCommandHandlers<I extends AggregateId, A extends AggregateRoot<I>, C extends Command<I>>(): Array<any> {\n\t\treturn [\n\t\t\tSetSchemaThemeCommandHandler,\n\t\t\tSetRowColoringCommandHandler,\n\t\t\tSetSchemaHorizontalGridCommandHandler,\n\t\t\tSetSchemaVerticalGridCommandHandler\n\t\t];\n\t}\n\n\tregisterDomainEventHandler<I extends AggregateId, E extends DomainEvent<I>>(): Array<any> {\n\t\treturn [\n\t\t\tSchemaThemeRepository,\n\t\t\tSchemaHorizontalGridRepository,\n\t\t\tSchemaRowColoringRepository,\n\t\t\tSchemaVerticalGridRepository\n\t\t];\n\t}\n\n\tregisterMultiDomainEventHandler<I extends AggregateId, E extends DomainEvent<I>>(): Array<any> {\n\t\treturn [\n\t\t\tSchemaCssClassesEventHandler\n\t\t];\n\t}\n\n}\n\n","import { CommandDispatcher, CoreContainer } from '@generic-ui/hermes';\n\nimport { SchemaTheme } from '../api/theme/schema-theme';\nimport { SchemaId } from './schema.id';\nimport { SetSchemaThemeCommand } from './theme/set-schema-theme.command';\nimport { CreateSchemaCommand } from './create/create-schema.command';\nimport { SetRowColoringCommand } from './row-coloring/set-row-coloring.command';\nimport { SchemaRowColoring } from '../api/row-coloring/schema-row-coloring';\nimport { SetSchemaVerticalGridCommand } from './grid/vertical/set-schema-vertical-grid.command';\nimport { SetSchemaHorizontalGridCommand } from './grid/horizontal/set-schema-horizontal-grid.command';\n\n\nexport class SchemaDispatcher {\n\n\tprivate readonly commandDispatcher: CommandDispatcher = CoreContainer.resolve(CommandDispatcher);\n\n\tcreate(schemaId: SchemaId): void {\n\t\tthis.commandDispatcher.dispatch(new CreateSchemaCommand(schemaId));\n\t}\n\n\tsetTheme(theme: SchemaTheme, schemaId: SchemaId): void {\n\t\tthis.commandDispatcher.dispatch(new SetSchemaThemeCommand(schemaId, theme));\n\t}\n\n\tsetRowColoring(rowColoring: SchemaRowColoring, schemaId: SchemaId): void {\n\t\tthis.commandDispatcher.dispatch(new SetRowColoringCommand(schemaId, rowColoring));\n\t}\n\n\tsetVerticalGrid(verticalGrid: boolean, schemaId: SchemaId): void {\n\t\tthis.commandDispatcher.dispatch(new SetSchemaVerticalGridCommand(schemaId, verticalGrid));\n\t}\n\n\tsetHorizontalGrid(horizontalGrid: boolean, schemaId: SchemaId): void {\n\t\tthis.commandDispatcher.dispatch(new SetSchemaHorizontalGridCommand(schemaId, horizontalGrid));\n\t}\n\n}\n","import { SchemaDispatcher } from './schema.dispatcher';\nimport { StructurePublisher } from '../../../structure/structure-core/src/api/structure.publisher';\nimport { FabricModalThemeService, Theme } from '@generic-ui/fabric';\nimport { SchemaReadModelRootId } from '../api/global/schema.read-model-root-id';\nimport { SchemaTheme } from '../api/theme/schema-theme';\nimport { StructureId } from '../../../structure/structure-core/src/api/global/structure.id';\nimport { RowColoring } from '../api/row-coloring/row-coloring';\nimport { SchemaRowColoring } from '../api/row-coloring/schema-row-coloring';\nimport { SchemaPublisher } from '../api/schema.publisher';\nimport { SchemaRowClass } from '../api/styling/schema.row-class';\nimport { SchemaRowStyle } from '../api/styling/schema.row-style';\nimport { SchemaRowClassArchive } from './styling/schema.row-class.archive';\nimport { SchemaRowStyleArchive } from './styling/schema.row-style.archive';\n\n\nexport class SchemaDomainPublisher extends SchemaPublisher {\n\n\tconstructor(private readonly schemaDispatcher: SchemaDispatcher,\n\t\t\t\tprivate readonly structurePublisher: StructurePublisher,\n\t\t\t\tprivate readonly fabricModalThemeService: FabricModalThemeService,\n\t\t\t\tprivate readonly schemaRowClassArchive: SchemaRowClassArchive,\n\t\t\t\tprivate readonly schemaRowStyleArchive: SchemaRowStyleArchive) {\n\t\tsuper();\n\t}\n\n\tstatic readonly services = [\n\t\tSchemaDispatcher,\n\t\tStructurePublisher,\n\t\tFabricModalThemeService,\n\t\tSchemaRowClassArchive,\n\t\tSchemaRowStyleArchive\n\t] as const;\n\n\tcreate(schemaId: SchemaReadModelRootId): void {\n\t\tthis.schemaDispatcher.create(schemaId.toAggregateId());\n\t}\n\n\tsetTheme(theme: SchemaTheme,\n\t\t\t schemaId: SchemaReadModelRootId,\n\t\t\t structureId: StructureId\n\t): void {\n\t\tthis.schemaDispatcher.setTheme(theme, schemaId.toAggregateId());\n\t\tthis.fabricModalThemeService.changeTheme(this.toFabricTheme(theme)); // TODO github #2162\n\t\tthis.structurePublisher.setRowHeightBasedOnTheme(theme, structureId);\n\t}\n\n\tsetRowColoring(rowColoring: RowColoring, schemaId: SchemaReadModelRootId): void {\n\n\t\tconst schemaRowColoring: SchemaRowColoring = this.toSchemaRowColoring(rowColoring);\n\n\t\tthis.schemaDispatcher.setRowColoring(schemaRowColoring, schemaId.toAggregateId());\n\t}\n\n\tsetVerticalGrid(verticalGrid: boolean, schemaId: SchemaReadModelRootId): void {\n\t\tthis.schemaDispatcher.setVerticalGrid(verticalGrid, schemaId.toAggregateId());\n\t}\n\n\tsetHorizontalGrid(horizontalGrid: boolean, schemaId: SchemaReadModelRootId): void {\n\t\tthis.schemaDispatcher.setHorizontalGrid(horizontalGrid, schemaId.toAggregateId());\n\t}\n\n\tsetRowClass(schemaRowClass: SchemaRowClass, schemaId: SchemaReadModelRootId): void {\n\t\treturn this.schemaRowClassArchive.next(schemaId.toAggregateId(), schemaRowClass);\n\t}\n\n\tsetRowStyle(rowStyle: SchemaRowStyle, schemaId: SchemaReadModelRootId): void {\n\t\treturn this.schemaRowStyleArchive.next(schemaId.toAggregateId(), rowStyle);\n\t}\n\n\t// move to function\n\tprivate toSchemaRowColoring(coloring: RowColoring): SchemaRowColoring {\n\t\tswitch (coloring) {\n\n\t\t\tcase RowColoring.NONE:\n\t\t\t\treturn SchemaRowColoring.NONE;\n\n\t\t\tcase RowColoring.ODD:\n\t\t\t\treturn SchemaRowColoring.ODD;\n\n\t\t\tcase RowColoring.EVEN:\n\t\t\t\treturn SchemaRowColoring.EVEN;\n\n\t\t\tdefault:\n\t\t\t\treturn SchemaRowColoring.NONE;\n\t\t}\n\t}\n\n\t// move to function\n\tprivate toFabricTheme(schemaTheme: SchemaTheme): Theme {\n\n\t\tswitch (schemaTheme) {\n\t\t\tcase SchemaTheme.DARK: {\n\t\t\t\treturn Theme.DARK;\n\t\t\t}\n\n\t\t\tcase SchemaTheme.FABRIC: {\n\t\t\t\treturn Theme.FABRIC;\n\t\t\t}\n\n\t\t\tcase SchemaTheme.GENERIC: {\n\t\t\t\treturn Theme.GENERIC;\n\t\t\t}\n\n\t\t\tcase SchemaTheme.LIGHT: {\n\t\t\t\treturn Theme.LIGHT;\n\t\t\t}\n\n\t\t\tcase SchemaTheme.MATERIAL: {\n\t\t\t\treturn Theme.MATERIAL;\n\t\t\t}\n\n\t\t\tdefault:\n\t\t\t\treturn Theme.FABRIC;\n\n\t\t}\n\t}\n}\n","import { SchemaCssClassesRepository } from './css-classes/schema.css-classes.repository';\nimport { SchemaThemeRepository } from './theme/schema.theme.repository';\nimport { SchemaHorizontalGridRepository } from './horizontal-grid/schema.horizontal-grid.repository';\nimport { SchemaRowColoringRepository } from './row-coloring/schema.row-coloring.repository';\nimport { SchemaVerticalGridRepository } from './vertical-grid/schema.vertical-grid.repository';\nimport { SchemaReadModelRootId } from '../api/global/schema.read-model-root-id';\nimport { SchemaTheme } from '../api/theme/schema-theme';\nimport { SchemaRowColoring } from '../api/row-coloring/schema-row-coloring';\nimport { SchemaCssClass } from '../api/css-classes/schema-css-class';\nimport { SchemaWarehouse } from '../api/schema.warehouse';\nimport { HermesObservable, HermesSingle, Optional, singleFromObservable } from '@generic-ui/hermes';\nimport { SchemaRowClassArchive } from '../core/styling/schema.row-class.archive';\nimport { SchemaRowStyleArchive } from '../core/styling/schema.row-style.archive';\nimport { SchemaRowClass } from '../api/styling/schema.row-class';\nimport { SchemaRowStyle } from '../api/styling/schema.row-style';\n\n\nexport class SchemaDomainWarehouse extends SchemaWarehouse {\n\n\tconstructor(private readonly schemaCssClassesRepository: SchemaCssClassesRepository,\n\t\t\t\tprivate readonly schemaThemeRepository: SchemaThemeRepository,\n\t\t\t\tprivate readonly schemaHorizontalGridRepository: SchemaHorizontalGridRepository,\n\t\t\t\tprivate readonly schemaRowColoringRepository: SchemaRowColoringRepository,\n\t\t\t\tprivate readonly schemaVerticalGridRepository: SchemaVerticalGridRepository,\n\t\t\t\tprivate readonly schemaRowClassArchive: SchemaRowClassArchive,\n\t\t\t\tprivate readonly schemaRowStyleArchive: SchemaRowStyleArchive\n\t) {\n\t\tsuper();\n\t}\n\n\tstatic readonly services = [\n\t\tSchemaCssClassesRepository,\n\t\tSchemaThemeRepository,\n\t\tSchemaHorizontalGridRepository,\n\t\tSchemaRowColoringRepository,\n\t\tSchemaVerticalGridRepository,\n\t\tSchemaRowClassArchive,\n\t\tSchemaRowStyleArchive\n\t] as const;\n\n\tonTheme(schemaId: SchemaReadModelRootId): HermesObservable<SchemaTheme> {\n\t\treturn this.schemaThemeRepository\n\t\t\t\t   .on(schemaId.toAggregateId());\n\t}\n\n\tonceTheme(schemaId: SchemaReadModelRootId): HermesSingle<SchemaTheme> {\n\t\treturn singleFromObservable(this.onTheme(schemaId));\n\t}\n\n\tfindTheme(schemaId: SchemaReadModelRootId): Optional<SchemaTheme> {\n\t\treturn this.schemaThemeRepository.find(schemaId.toAggregateId());\n\t}\n\n\tonHorizontalGrid(schemaId: SchemaReadModelRootId): HermesObservable<boolean> {\n\t\treturn this.schemaHorizontalGridRepository\n\t\t\t\t   .on(schemaId.toAggregateId());\n\t}\n\n\tonVerticalGrid(schemaId: SchemaReadModelRootId): HermesObservable<boolean> {\n\t\treturn this.schemaVerticalGridRepository\n\t\t\t\t   .on(schemaId.toAggregateId());\n\t}\n\n\tonRowColoring(schemaId: SchemaReadModelRootId): HermesObservable<SchemaRowColoring> {\n\t\treturn this.schemaRowColoringRepository\n\t\t\t\t   .on(schemaId.toAggregateId());\n\t}\n\n\tonCssClasses(schemaId: SchemaReadModelRootId): HermesObservable<SchemaCssClass> {\n\t\treturn this.schemaCssClassesRepository\n\t\t\t\t   .on(schemaId.toAggregateId());\n\t}\n\n\tonRowClass(schemaId: SchemaReadModelRootId): HermesObservable<SchemaRowClass> {\n\t\treturn this.schemaRowClassArchive.on(schemaId.toAggregateId());\n\t}\n\n\tonRowStyle(schemaId: SchemaReadModelRootId): HermesObservable<SchemaRowStyle> {\n\t\treturn this.schemaRowStyleArchive.on(schemaId.toAggregateId());\n\t}\n\n}\n","import { hermesMap, HermesObservable } from '@generic-ui/hermes';\nimport { SchemaReadModelRootId } from '../api/global/schema.read-model-root-id';\nimport { SchemaTheme } from '../api/theme/schema-theme';\nimport { SchemaThemeSetEvent } from './theme/schema-theme-set.event';\nimport { SchemaHorizontalGridSetEvent } from './grid/horizontal/schema-horizontal-grid-set.event';\nimport { SchemaVerticalGridSetEvent } from './grid/vertical/schema-vertical-grid-set.event';\nimport { SchemaRowColoring } from '../api/row-coloring/schema-row-coloring';\nimport { RowColoringSetEvent } from './row-coloring/row-coloring-set.event';\nimport { SchemaEventRepository } from '../api/schema.event-repository';\n\n\nexport class SchemaDomainEventRepository extends SchemaEventRepository {\n\n\tconstructor() {\n\t\tsuper();\n\t}\n\n\tonThemeChanged(schemaId: SchemaReadModelRootId): HermesObservable<SchemaTheme> {\n\n\t\treturn this.onEvent(schemaId, SchemaThemeSetEvent)\n\t\t\t\t   .pipe(\n\t\t\t\t\t   hermesMap((event: SchemaThemeSetEvent) => {\n\t\t\t\t\t\t   return event.getTheme();\n\t\t\t\t\t   })\n\t\t\t\t   );\n\t}\n\n\tonHorizontalGridChanged(schemaId: SchemaReadModelRootId): HermesObservable<boolean> {\n\n\t\treturn this.onEvent(schemaId, SchemaHorizontalGridSetEvent)\n\t\t\t\t   .pipe(\n\t\t\t\t\t   hermesMap((event: SchemaHorizontalGridSetEvent) => event.getHorizontalGrid())\n\t\t\t\t   );\n\t}\n\n\tonVerticalGridChanged(schemaId: SchemaReadModelRootId): HermesObservable<boolean> {\n\n\t\treturn this.onEvent(schemaId, SchemaVerticalGridSetEvent)\n\t\t\t\t   .pipe(\n\t\t\t\t\t   hermesMap((event: SchemaVerticalGridSetEvent) => event.getVerticalGrid())\n\t\t\t\t   );\n\t}\n\n\tonRowColoring(schemaId: SchemaReadModelRootId): HermesObservable<SchemaRowColoring> {\n\n\t\treturn this.onEvent(schemaId, RowColoringSetEvent)\n\t\t\t\t   .pipe(\n\t\t\t\t\t   hermesMap((event: RowColoringSetEvent) => event.getRowColoring())\n\t\t\t\t   );\n\t}\n\n}\n","import { ApiProviders, Container, DomainInitializer } from '@generic-ui/hermes';\nimport { InMemorySchemaAggregateRepository } from '../persist/in-memory.schema.aggregate-repository';\nimport { SchemaDomainModule } from '../core/schema.domain-module';\nimport { SchemaDispatcher } from '../core/schema.dispatcher';\nimport { SchemaAggregateRepository } from '../core/schema.aggregate-repository';\nimport { InMemorySchemaAggregateStore } from '../persist/in-memory.schema.aggregate-store';\nimport { InMemorySchemaStore } from '../persist/in-memory.schema.store';\nimport { SchemaPublisher } from './schema.publisher';\nimport { SchemaWarehouse } from './schema.warehouse';\nimport { SchemaEventRepository } from './schema.event-repository';\nimport { SchemaCssClassesRepository } from '../core-read/css-classes/schema.css-classes.repository';\nimport { SchemaDomainPublisher } from '../core/schema.domain-publisher';\nimport { SchemaDomainWarehouse } from '../core-read/schema.domain-warehouse';\nimport { SchemaDomainEventRepository } from '../core/schema.domain-event-repository';\n\n\nexport class SchemaApiModule implements ApiProviders {\n\n\tregisterProviders(container: Container): void {\n\t\tcontainer.provide(SchemaDispatcher);\n\t\tcontainer.provide(SchemaAggregateRepository, InMemorySchemaAggregateRepository);\n\t\tcontainer.provide(InMemorySchemaAggregateStore);\n\t\tcontainer.provide(InMemorySchemaStore);\n\t\tcontainer.provide(SchemaPublisher, SchemaDomainPublisher);\n\t\tcontainer.provide(SchemaWarehouse, SchemaDomainWarehouse);\n\t\tcontainer.provide(SchemaEventRepository, SchemaDomainEventRepository);\n\t\tcontainer.provide(SchemaCssClassesRepository);\n\t}\n}\n\nexport const initSchema = () => {\n\tnew DomainInitializer(\n\t\tnew SchemaApiModule(),\n\t\tnew SchemaDomainModule()\n\t).init();\n};\n","import { NgModule, Provider } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { CoreContainer, FeatureModule } from '@generic-ui/hermes';\nimport { SchemaPublisher } from '../../../core/schema/src/api/schema.publisher';\nimport { SchemaWarehouse } from '../../../core/schema/src/api/schema.warehouse';\nimport { SchemaEventRepository } from '../../../core/schema/src/api/schema.event-repository';\nimport { initSchema } from '../../../core/schema/src/api/schema.api-module';\n\nexport function useFactorySchemaCommandInvoker() {\n\treturn CoreContainer.resolve(SchemaPublisher);\n}\n\nexport function useFactorySchemaWarehouse() {\n\treturn CoreContainer.resolve(SchemaWarehouse);\n}\n\nexport function useFactorySchemaEventRepository() {\n\treturn CoreContainer.resolve(SchemaEventRepository);\n}\n\n\ninitSchema();\n\n@NgModule({\n\timports: [\n\t\tCommonModule\n\t],\n\tproviders: [\n\t\t{ provide: SchemaPublisher, useFactory: useFactorySchemaCommandInvoker },\n\t\t{ provide: SchemaWarehouse, useFactory: useFactorySchemaWarehouse },\n\t\t{ provide: SchemaEventRepository, useFactory: useFactorySchemaEventRepository }\n\t],\n\tdeclarations: [],\n\texports: []\n})\nexport class SchemaFeatureModule extends FeatureModule {\n\n\tconstructor() {\n\t\tsuper();\n\t}\n\n\tstatic forComponent(): Array<Provider> {\n\t\treturn [];\n\t}\n\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { SafePipe } from './safe.pipe';\n\n@NgModule({\n\timports: [\n\t\tCommonModule\n\t],\n\tdeclarations: [\n\t\tSafePipe\n\t],\n\texports: [\n\t\tSafePipe\n\t]\n})\nexport class SanitizeModule {\n}\n","import { Component, ContentChild, Input, TemplateRef } from '@angular/core';\n\n\n@Component({\n\tselector: 'gui-column[header]',\n\ttemplate: ''\n})\nexport class ColumnQueryComponent {\n\n\t@ContentChild(TemplateRef, { read: TemplateRef, static: false })\n\treadonly cellTemplate?: TemplateRef<any>;\n\n\t@Input()\n\theader: string;\n\n\theaderTemplate: TemplateRef<any>;\n\n}\n","import { ComponentFactoryResolver, NgModule, Provider } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ReactiveFormsModule } from '@angular/forms';\n\nimport { CoreContainer, FeatureModule } from '@generic-ui/hermes';\n\nimport {\n\tFabricButtonComponent,\n\tFabricButtonModule,\n\tFabricCheckboxComponent,\n\tFabricCheckboxModule,\n\tFabricChipComponent,\n\tFabricChipModule,\n\tFabricDatePickerModule,\n\tFabricInputComponent,\n\tFabricInputModule\n} from '@generic-ui/fabric';\n\nimport { initializeComposition } from '../../../core/composition/src/api/composition.api-module';\nimport { ViewTemplatesComponent } from './column/view/view-templates.component';\nimport { EditTemplatesComponent } from './column/edit/edit-templates.component';\n\nimport { SanitizeModule } from '../../common/cdk/src/sanitize/sanitize.module';\nimport { StringEditTemplateComponent } from './column/edit/template/string-edit-template.component';\nimport { NumberEditTemplateComponent } from './column/edit/template/number-edit-template.component';\nimport { BooleanEditTemplateComponent } from './column/edit/template/boolean-edit-template.component';\nimport { DateEditTemplateComponent } from './column/edit/template/date-edit-template.component';\nimport { ColumnQueryComponent } from './column/column-query.component';\nimport { FunctionViewComponent } from './column/view/function/function-view.component';\nimport { BarViewComponent } from './column/view/bar/bar-view.component';\nimport { PercentageViewComponent } from './column/view/percentage/percentage-view.component';\nimport { TextViewComponent } from './column/view/text/text-view.component';\nimport { HtmlViewComponent } from './column/view/html/html-view.component';\nimport { CompositionPublisher } from '../../../core/composition/src/api/composition.publisher';\nimport { ColumnFieldFactory } from '../../../core/composition/src/domain/column/field/colum-field.factory';\nimport { CompositionEventRepository } from '../../../core/composition/src/api/composition.event-repository';\nimport { CompositionWarehouse } from '../../../core/composition/src/api/composition.warehouse';\nimport { ColumnAutoConfigurator } from '../../../core/composition/src/api/column/auto/column-auto.configurator';\nimport { CompositionTemplateWarehouse } from './column/composition.template-warehouse';\nimport { ViewTemplateRepository } from './column/view/view-template.repository';\nimport { EditTemplateRepository } from './column/edit/edit-template.repository';\nimport { ViewTemplateFactory } from './column/view/view-template.factory';\nimport { EditTemplateFactory } from './column/edit/edit-template.factory';\n\n\nconst components = [\n\tViewTemplatesComponent,\n\tEditTemplatesComponent,\n\tStringEditTemplateComponent,\n\tNumberEditTemplateComponent,\n\tBooleanEditTemplateComponent,\n\tDateEditTemplateComponent,\n\tColumnQueryComponent,\n\n\tFunctionViewComponent,\n\tBarViewComponent,\n\tPercentageViewComponent,\n\tTextViewComponent,\n\tHtmlViewComponent\n];\n\nconst exportDeclarations = [\n\tViewTemplatesComponent,\n\tEditTemplatesComponent,\n\tColumnQueryComponent,\n\n\tFabricChipModule,\n\tFabricCheckboxModule,\n\tFabricButtonModule,\n\tFabricInputModule,\n\n\tFunctionViewComponent,\n\tBarViewComponent,\n\tPercentageViewComponent,\n\tHtmlViewComponent\n];\n\ninitializeComposition();\n\nexport function provideCompositionCommandPublisher() {\n\treturn CoreContainer.resolve(CompositionPublisher);\n}\n\nexport function provideCompositionWarehouse() {\n\treturn CoreContainer.resolve(CompositionWarehouse);\n}\n\nexport function provideCompositionEventRepository() {\n\treturn CoreContainer.resolve(CompositionEventRepository);\n}\n\nexport function provideColumnAutoConfigurator() {\n\treturn CoreContainer.resolve(ColumnAutoConfigurator);\n}\n\nexport function provideColumnFieldFactory() {\n\treturn CoreContainer.resolve(ColumnFieldFactory);\n}\n\n\n@NgModule({\n\timports: [\n\t\tCommonModule,\n\n\t\tReactiveFormsModule,\n\n\t\tSanitizeModule,\n\n\t\tFabricChipModule,\n\t\tFabricCheckboxModule,\n\t\tFabricButtonModule,\n\t\tFabricInputModule,\n\t\tFabricDatePickerModule\n\t],\n\tdeclarations: [\n\t\tcomponents\n\t],\n\texports: [\n\t\texportDeclarations\n\t],\n\tproviders: [\n\t\t{ provide: CompositionPublisher, useFactory: provideCompositionCommandPublisher },\n\t\t{ provide: CompositionWarehouse, useFactory: provideCompositionWarehouse },\n\t\t{ provide: CompositionEventRepository, useFactory: provideCompositionEventRepository },\n\t\tCompositionTemplateWarehouse,\n\t\tViewTemplateRepository,\n\t\tViewTemplateFactory,\n\t\tEditTemplateRepository,\n\t\tEditTemplateFactory,\n\n\t\t{ provide: ColumnAutoConfigurator, useFactory: provideColumnAutoConfigurator },\n\t\t{ provide: ColumnFieldFactory, useFactory: provideColumnFieldFactory }\n\t]\n})\nexport class CompositionFeatureModule extends FeatureModule {\n\n\tconstructor(cfr: ComponentFactoryResolver) {\n\t\tsuper();\n\t\tCoreContainer.provideValue(ComponentFactoryResolver, cfr);\n\t}\n\n\tstatic forComponent(): Array<Provider> {\n\t\treturn [];\n\t}\n\n}\n","import { StructureSearchingGate } from './searching/structure-searching.gate';\nimport { StructureColumnHeaderGate } from './column/header/structure-column-header.gate';\nimport { StructurePagingGate } from './paging/structure-paging.gate';\nimport { StructureSelectionGate } from './source/structure-selection.gate';\nimport { StructureL10nGate } from './l10n/structure-l10n.gate';\nimport { StructurePanelGate } from './panel/structure-panel.gate';\nimport { StructureRowDetailGate } from './row/detail/structure-row-detail.gate';\nimport { StructureColumnMenuGate } from './column/menu/structure-column-menu.gate';\nimport { StructureSummariesGate } from '../../../../../feature/structure/summaries/src/gate/structure-summaries.gate';\nimport { StructureInfoPanelGate } from './panel/info/structure-info-panel.gate';\nimport { StructureRowClassGate } from './row/class/structure-row-class.gate';\nimport { StructureRowColoringGate } from './row/coloring/structure-row-coloring.gate';\nimport { StructureRowStyleGate } from './row/style/structure-row-style.gate';\nimport { ThemeGridGate } from '../../../../../feature/schema/src/gate/grid/theme-grid.gate';\nimport { SourceLoadingGate } from './source/source-loading.gate';\nimport { VerticalFormationGate } from '../../../../../feature/structure/vertical-formation/src/gate/vertical-formation.gate';\nimport { StructureSortingGate } from '../../../../../feature/structure/sorting/src/gate/structure-sorting.gate';\nimport { StructureFilterGate } from '../../../../../feature/structure/filter/src/gate/structure-filter.gate';\nimport { StructureQuickFiltersGate } from '../../../../../feature/structure/filter/src/gate/structure-quick-filters.gate';\n\nexport const structureGates = [\n\tStructureColumnHeaderGate,\n\tStructurePagingGate,\n\tStructureSearchingGate,\n\t// StructureSourceGate,\n\tStructureSelectionGate,\n\tStructureL10nGate,\n\tStructurePanelGate,\n\tStructureRowDetailGate,\n\tStructureColumnMenuGate,\n\tStructureSummariesGate,\n\tStructureInfoPanelGate,\n\tStructureRowClassGate,\n\tStructureRowStyleGate,\n\tStructureRowColoringGate,\n\tThemeGridGate,\n\tStructureSortingGate,\n\tSourceLoadingGate,\n\tStructureFilterGate,\n\tStructureQuickFiltersGate,\n\tVerticalFormationGate\n];\n","import { StructureId } from '../../../../structure-core/src/api/global/structure.id';\nimport { StructureDomainEvent } from '../../../../structure-core/src/core/structure.domain-event';\n\nexport class SetSourceLoadingEvent extends StructureDomainEvent {\n\n\tconstructor(aggregateId: StructureId) {\n\t\tsuper(aggregateId, null, 'SetSourceLoadingEvent');\n\t}\n}\n","import { StructureId } from '../../../../structure-core/src/api/global/structure.id';\nimport { StructureCommand } from '../../../../structure-core/src/core/structure.command';\n\n\nexport class SourceSetLoadingCommand extends StructureCommand {\n\n\tconstructor(structureId: StructureId,\n\t\t\t\tprivate readonly enabled: boolean) {\n\t\tsuper(structureId, 'SourceSetLoadingCommand');\n\t}\n\n\tisEnabled(): boolean {\n\t\treturn this.enabled;\n\t}\n\n}\n","import { CommandHandler, CommandType, CoreContainer, DomainEventPublisher } from '@generic-ui/hermes';\n\nimport { SetSourceLoadingEvent } from './set-source-loading.event';\nimport { SourceSetLoadingCommand } from './source-set-loading.command';\nimport { StructureAggregate } from '../../../../structure-core/src/domain/structure.aggregate';\n\n\nexport class SourceSetLoadingCommandHandler implements CommandHandler<StructureAggregate, SourceSetLoadingCommand> {\n\n\tprivate readonly domainEventPublisher: DomainEventPublisher = CoreContainer.resolve(DomainEventPublisher);\n\n\tforCommand(): CommandType<SourceSetLoadingCommand> {\n\t\treturn SourceSetLoadingCommand;\n\t}\n\n\thandle(aggregate: StructureAggregate, command: SourceSetLoadingCommand): void {\n\n\t\tconst enabled = command.isEnabled(),\n\t\t\tsource = aggregate.getSource();\n\n\t\tsource.setLoading(enabled);\n\t}\n\n\tpublish(aggregate: StructureAggregate, command: SourceSetLoadingCommand): void {\n\t\tthis.domainEventPublisher.publish(new SetSourceLoadingEvent(command.getAggregateId()));\n\t}\n\n}\n","import { StructureId } from '../../../../../structure-core/src/api/global/structure.id';\nimport { StructureCommand } from '../../../../../structure-core/src/core/structure.command';\n\nexport class SetOriginCommand extends StructureCommand {\n\n\tconstructor(structureId: StructureId,\n\t\t\t\tprivate readonly items: Array<any> = []) {\n\t\tsuper(structureId, 'SetOriginCommand');\n\t}\n\n\tgetItems(): Array<any> {\n\t\treturn this.items;\n\t}\n\n}\n","import { CommandHandler, CommandType } from '@generic-ui/hermes';\nimport { SourceDomainEventPublisher } from '../../source.domain-event.publisher';\nimport { StructureAggregate } from '../../../../../structure-core/src/domain/structure.aggregate';\n\nimport { SetOriginCommand } from './set-origin.command';\n\n\nexport class SetOriginCommandHandler implements CommandHandler<StructureAggregate, SetOriginCommand> {\n\n\tconstructor(private structureSourceDomainEventPublisher: SourceDomainEventPublisher) {\n\t}\n\n\tstatic readonly services = [SourceDomainEventPublisher];\n\n\tforCommand(): CommandType<SetOriginCommand> {\n\t\treturn SetOriginCommand;\n\t}\n\n\thandle(structure: StructureAggregate, command: SetOriginCommand): void {\n\n\t\tconst items = command.getItems();\n\n\t\tstructure.setOrigin(items);\n\t}\n\n\tpublish(aggregate: StructureAggregate, command: SetOriginCommand): void {\n\n\t\tconst aggregateEvents = aggregate.getEvents();\n\n\t\tthis.structureSourceDomainEventPublisher.publish(aggregateEvents);\n\t}\n\n}\n","import { StructureEditSourceItemParams } from './structure.edit-source-item.params';\nimport { StructureId } from '../../../../../structure-core/src/api/global/structure.id';\nimport { StructureCommand } from '../../../../../structure-core/src/core/structure.command';\n\nexport class StructureEditSourceItemCommand extends StructureCommand {\n\n\tconstructor(structureId: StructureId,\n\t\t\t\tprivate readonly params: StructureEditSourceItemParams) {\n\t\tsuper(structureId, 'StructureEditSourceItemCommand');\n\t}\n\n\tgetParams(): StructureEditSourceItemParams {\n\t\treturn this.params;\n\t}\n\n}\n","import { CommandHandler, CommandType } from '@generic-ui/hermes';\n\nimport { StructureEditSourceItemCommand } from './structure.edit-source-item.command';\nimport { SourceDomainEventPublisher } from '../../source.domain-event.publisher';\nimport { StructureAggregate } from '../../../../../structure-core/src/domain/structure.aggregate';\n\n\nexport class StructureEditSourceItemCommandHandler implements CommandHandler<StructureAggregate, StructureEditSourceItemCommand> {\n\n\tconstructor(private structureSourceDomainEventPublisher: SourceDomainEventPublisher) {\n\t}\n\n\tstatic readonly services = [SourceDomainEventPublisher] as const;\n\n\tforCommand(): CommandType<StructureEditSourceItemCommand> {\n\t\treturn StructureEditSourceItemCommand;\n\t}\n\n\thandle(structure: StructureAggregate, command: StructureEditSourceItemCommand): void {\n\n\t\tconst params = command.getParams();\n\n\t\tstructure.editItem(params);\n\t}\n\n\tpublish(aggregate: StructureAggregate, command: StructureEditSourceItemCommand): void {\n\n\t\tconst aggregateEvents = aggregate.getEvents();\n\n\t\tthis.structureSourceDomainEventPublisher.publish(aggregateEvents);\n\t}\n\n}\n","import { AggregateId, DomainEvent } from '@generic-ui/hermes';\n\nimport { ItemEntity } from '../../../domain/item/item.entity';\nimport { StructureId } from '../../../../../structure-core/src/api/global/structure.id';\nimport { StructureSourceItemEditedEvent } from './structure.source-item-edited.event';\nimport { StructureAggregateEvent } from '../../../../../structure-core/src/core/structure.aggregate-event';\n\n\nexport class StructureSourceItemEditedAggregateEvent extends StructureAggregateEvent {\n\n\tconstructor(aggregateId: AggregateId,\n\t\t\t\tprivate readonly beforeItem: ItemEntity,\n\t\t\t\tprivate readonly afterItem: ItemEntity) {\n\t\tsuper(aggregateId, 'StructureSourceItemEditedAggregateEvent');\n\t}\n\n\ttoDomainEvent(): DomainEvent<StructureId> {\n\t\treturn new StructureSourceItemEditedEvent(this.getAggregateId(), this.beforeItem, this.afterItem);\n\t}\n\n\tgetBeforeItem(): ItemEntity {\n\t\treturn this.beforeItem;\n\t}\n\n\tgetAfterItem(): ItemEntity {\n\t\treturn this.afterItem;\n\t}\n}\n","import { AggregateId, DomainEvent } from '@generic-ui/hermes';\n\nimport { ItemEntity } from '../../domain/item/item.entity';\nimport { StructureId } from '../../../../structure-core/src/api/global/structure.id';\nimport { OriginSetEvent } from './set/origin-set.event';\nimport { StructureAggregateEvent } from '../../../../structure-core/src/core/structure.aggregate-event';\n\n\nexport class StructureOriginChangedAggregateEvent extends StructureAggregateEvent {\n\n\tconstructor(aggregateId: AggregateId,\n\t\t\t\tprivate readonly origin: Array<ItemEntity>) {\n\t\tsuper(aggregateId, 'StructureOriginChangedAggregateEvent');\n\t}\n\n\ttoDomainEvent(): DomainEvent<StructureId> {\n\t\treturn new OriginSetEvent(this.getAggregateId(), this.origin);\n\t}\n\n\tgetOrigin(): Array<ItemEntity> {\n\t\treturn this.origin;\n\t}\n}\n","import { EntityId } from '@generic-ui/hermes';\n\nexport class ItemEntityId extends EntityId {\n\n\tconstructor(id: string) {\n\t\tsuper(id);\n\t}\n\n\ttoString(): string {\n\t\treturn this.getId();\n\t}\n}\n","import { AggregateEvent, RandomStringGenerator } from '@generic-ui/hermes';\n\nimport { ItemEntity } from './item/item.entity';\nimport { StructureId } from '../../../structure-core/src/api/global/structure.id';\nimport { StructureSourceItemEditedAggregateEvent } from '../core/origin/edit/structure.source-item-edited.aggregate-event';\nimport { StructureOriginChangedAggregateEvent } from '../core/origin/structure.origin-changed.aggregate-event';\nimport { FieldEntity } from '../../../field/src/domain/field/field.entity';\nimport { ItemEntityId } from './item/item.entity-id';\nimport { FormationManager } from '../../../formation/src/domain/formation.manager';\nimport { RowSelectToggleType } from '../../../formation/src/domain/row-select-toggle-type';\nimport { RowSelectionMode, RowSelectionType } from '../../../formation/src/api/row-selected/row-selection';\nimport { FormationCustomSelectId } from '../../../formation/src/api/custom/formation.custom-select.id';\nimport { FormationCustomSelectionConfig } from '../../../formation/src/api/custom/formation.custom-selection.config';\nimport { StructureAggregateEvent } from '../../../structure-core/src/core/structure.aggregate-event';\n\n\nexport class SourceManager {\n\n\tevents: Array<any> = [];\n\n\tprivate loading: boolean = false;\n\n\tprivate fetched: boolean = false;\n\n\tprivate origin: Array<ItemEntity>;\n\n\tprivate entities: Array<ItemEntity> = [];\n\n\t// Entities after filtering, searching\n\tprivate preparedEntities: Array<ItemEntity> = [];\n\n\tprivate slicedEntities: Array<ItemEntity> = [];\n\n\tprivate readonly formationManager: FormationManager;\n\n\tconstructor(formationManager: FormationManager) {\n\t\tthis.formationManager = formationManager;\n\t\tthis.events.push(\n\t\t\t...this.formationManager.init(true, RowSelectionMode.SINGLE, RowSelectionType.ROW)\n\t\t);\n\t}\n\n\tisLoading(): boolean {\n\t\treturn this.loading;\n\t}\n\n\tsetLoading(enabled: boolean): void {\n\t\tthis.loading = enabled;\n\t}\n\n\tsetEntities(ent: Array<ItemEntity>): void {\n\t\tthis.entities = ent;\n\t\tthis.recalculatePositions();\n\t}\n\n\tgetEntities(): Array<ItemEntity> {\n\t\treturn this.entities;\n\t}\n\n\tsetPreparedEntities(): void {\n\t\tthis.preparedEntities = Array.from(this.entities);\n\t}\n\n\tgetPreparedEntities(): Array<ItemEntity> {\n\t\treturn this.preparedEntities;\n\t}\n\n\tsetSlicedEntities(ent: Array<ItemEntity>) {\n\t\tthis.slicedEntities = ent;\n\t}\n\n\tgetSlicedEntities(): Array<ItemEntity> {\n\t\treturn this.slicedEntities;\n\t}\n\n\tsetOrigin(items: Array<any> = [], structureId: StructureId): AggregateEvent<StructureId> {\n\t\tthis.origin = this.convertItems(items);\n\n\t\treturn this.createOriginChangedEvent(structureId);\n\t}\n\n\tsetConvertedOrigin(items: Array<ItemEntity> = [], structureId: StructureId): AggregateEvent<StructureId> {\n\t\tthis.origin = Array.from(items);\n\n\t\treturn this.createOriginChangedEvent(structureId);\n\t}\n\n\tgetOrigin(): Array<ItemEntity> {\n\t\treturn this.origin;\n\t}\n\n\teditOriginItem(itemId: string, value: any, field: FieldEntity, structureId: StructureId): ReadonlyArray<AggregateEvent<StructureId>> {\n\n\t\tconst item: ItemEntity = this.findOriginItem(itemId),\n\t\t\titemBeforeChange = item.clone();\n\n\t\tif (item) {\n\t\t\titem.sourceItem[field.getAccessor()] = value;\n\t\t\titem.bumpVersion();\n\t\t}\n\n\t\treturn [\n\t\t\tnew StructureSourceItemEditedAggregateEvent(structureId, itemBeforeChange, item.clone()),\n\t\t\tthis.createOriginChangedEvent(structureId)\n\t\t];\n\t}\n\n\tdeleteAllSelected(structureId: StructureId): Array<AggregateEvent<StructureId>> {\n\t\tlet events: Array<AggregateEvent<StructureId>> = [];\n\n\t\tconst itemEntityIds = this.formationManager.getSelectedItemIds();\n\n\t\titemEntityIds.forEach((itemEntityId: ItemEntityId) => {\n\t\t\tevents = events.concat(this.deleteOriginItemByItemId(itemEntityId, structureId));\n\t\t});\n\n\t\treturn events;\n\t}\n\n\tdeleteOriginItem(payload: number | ItemEntityId | Array<number> | Array<ItemEntityId>, structureId: StructureId): Array<AggregateEvent<StructureId>> {\n\n\t\tif (payload instanceof ItemEntityId) {\n\t\t\treturn this.deleteOriginItemByItemId(payload, structureId);\n\t\t} else if (Array.isArray(payload)) {\n\n\t\t\tlet events: Array<AggregateEvent<StructureId>> = [];\n\n\t\t\tpayload.forEach((item: number | ItemEntityId) => {\n\t\t\t\tevents = events.concat(this.deleteOneOriginItem(item, structureId));\n\t\t\t});\n\n\t\t\treturn events;\n\n\t\t} else if (Number.isInteger(payload)) {\n\t\t\treturn this.deleteOriginItemByIndex(payload, structureId);\n\t\t} else {\n\t\t\treturn [];\n\t\t}\n\t}\n\n\taddOriginItem(item: any, structureId: StructureId): ReadonlyArray<StructureAggregateEvent> {\n\t\tthis.origin.push(item);\n\t\treturn [this.createOriginChangedEvent(structureId)];\n\t}\n\n\tsetCustomConfig(config: FormationCustomSelectionConfig): Array<StructureAggregateEvent> {\n\t\treturn this.formationManager.setCustomConfig(config);\n\t}\n\n\tselectCustom(id: FormationCustomSelectId): void {\n\t\tthis.formationManager.selectCustom(id, this.getEntities());\n\t}\n\n\tselectAll(): void {\n\t\tthis.formationManager.selectAll(this.getEntities().map(entity => entity.getId()));\n\t}\n\n\tunselectAll(): void {\n\t\tthis.formationManager.unselectAll();\n\t}\n\n\tselectByIndex(indexes: Array<number>): void {\n\t\tthis.formationManager.selectByIndex(indexes, this.getEntities().map(e => e.getId()));\n\t}\n\n\tselectByIds(ids: Array<string>): void {\n\t\tthis.formationManager.selectByIds(ids, this.getEntities());\n\t}\n\n\treSelect(): void {\n\t\tthis.formationManager.reSelectByIds(this.getEntities());\n\t}\n\n\tsetSelectedRows(selectedRows: Array<string>): void {\n\t\tthis.formationManager.selectRows(selectedRows, this.getEntities().map(e => e.getId()));\n\t}\n\n\ttoggleRow(itemId: string, type: RowSelectToggleType): void {\n\t\tthis.formationManager.toggleRow(itemId, type, this.getEntities().map(e => e.getId()));\n\t}\n\n\tgetFormation(): FormationManager {\n\t\treturn this.formationManager;\n\t}\n\n\tprivate convertItems(items: Array<any>): Array<ItemEntity> {\n\t\treturn items.map((item: any, index: number) => {\n\t\t\treturn new ItemEntity(new ItemEntityId(RandomStringGenerator.generate()), item, index);\n\t\t});\n\t}\n\n\tprivate createOriginChangedEvent(structureId: StructureId): AggregateEvent<StructureId> {\n\t\treturn new StructureOriginChangedAggregateEvent(structureId, this.origin);\n\t}\n\n\tprivate findOriginItem(itemId: string): ItemEntity {\n\t\treturn this.origin.find((item: ItemEntity) => item.getId().toString() === itemId);\n\t}\n\n\tprivate findOriginItemIndex(itemId: string): number {\n\t\treturn this.origin.findIndex((item: ItemEntity) => item.getId().toString() === itemId);\n\t}\n\n\tprivate recalculatePositions(): void {\n\t\tthis.entities.forEach((ent: ItemEntity, index: number) => {\n\t\t\tent.setPosition(index);\n\t\t});\n\t}\n\n\tprivate deleteOneOriginItem(item: number | ItemEntityId, structureId: StructureId): Array<AggregateEvent<StructureId>> {\n\n\t\tif (item instanceof ItemEntityId) {\n\t\t\treturn this.deleteOriginItemByItemId(item, structureId);\n\t\t} else if (Number.isInteger(item)) {\n\t\t\treturn this.deleteOriginItemByIndex(item, structureId);\n\t\t} else {\n\t\t\treturn [];\n\t\t}\n\t}\n\n\tprivate deleteOriginItemByItemId(itemId: ItemEntityId, structureId: StructureId): Array<AggregateEvent<StructureId>> {\n\n\t\tconst index = this.findOriginItemIndex(itemId.toString());\n\n\t\treturn this.deleteOriginItemByIndex(index, structureId);\n\t}\n\n\tprivate deleteOriginItemByIndex(index: number, structureId: StructureId): Array<AggregateEvent<StructureId>> {\n\n\t\tif (index > -1) {\n\t\t\tconst removedItems: Array<ItemEntity> = this.origin.splice(index, 1);\n\n\t\t\tif (removedItems.length > 0) {\n\t\t\t\tfor (const element of removedItems) {\n\t\t\t\t\tthis.formationManager.unselectRow(element.getId());\n\t\t\t\t}\n\t\t\t\tthis.formationManager.calculateAllSelected(removedItems.map((f) => f.getId()));\n\t\t\t\tthis.formationManager.calculateAllUnselected();\n\t\t\t}\n\n\t\t\treturn [\n\t\t\t\tthis.createOriginChangedEvent(structureId)\n\t\t\t];\n\t\t}\n\n\t\treturn [];\n\t}\n\n\tprivate deleteManyOriginItemByIndex(indexes: Array<number>, structureId: StructureId): Array<AggregateEvent<StructureId>> {\n\n\t\tlet events: Array<AggregateEvent<StructureId>> = [];\n\n\t\tindexes.forEach((index: number) => {\n\t\t\tevents = events.concat(this.deleteOriginItemByIndex(index, structureId));\n\t\t});\n\n\t\treturn events;\n\t}\n\n\tprivate deleteManyOriginItemByItemID(itemIds: Array<ItemEntityId>, structureId: StructureId): Array<AggregateEvent<StructureId>> {\n\n\t\tlet events: Array<AggregateEvent<StructureId>> = [];\n\n\t\titemIds.forEach((itemId: ItemEntityId) => {\n\t\t\tevents = events.concat(this.deleteOriginItemByItemId(itemId, structureId));\n\t\t});\n\n\t\treturn events;\n\t}\n\n}\n","import { RowSelectionMode, RowSelectionType } from '../../api/row-selected/row-selection';\n\nexport class FormationSelection {\n\n\tconstructor(private mode: RowSelectionMode,\n\t\t\t\tprivate type: RowSelectionType) {\n\t}\n\n\tsetMode(mode: RowSelectionMode): void {\n\t\tthis.mode = mode;\n\t}\n\n\tgetMode(): RowSelectionMode {\n\t\tif (this.type === RowSelectionType.RADIO) {\n\t\t\treturn RowSelectionMode.SINGLE;\n\t\t} else {\n\t\t\treturn this.mode;\n\t\t}\n\t}\n\n\tisSingle(): boolean {\n\t\treturn this.getMode() === RowSelectionMode.SINGLE;\n\t}\n\n\tsetType(type: RowSelectionType): void {\n\t\tthis.type = type;\n\t}\n\n\tgetType(): RowSelectionType {\n\t\treturn this.type;\n\t}\n}\n","import { StructureId } from '../../../../structure-core/src/api/global/structure.id';\nimport { RowSelectionMode } from '../../api/row-selected/row-selection';\nimport { StructureDomainEvent } from '../../../../structure-core/src/core/structure.domain-event';\n\nexport class SelectionModeSetEvent extends StructureDomainEvent {\n\n\tconstructor(aggregateId: StructureId,\n\t\t\t\tprivate readonly mode: RowSelectionMode) {\n\t\tsuper(aggregateId, mode, 'SelectionModeSetEvent');\n\t}\n\n\tgetMode(): RowSelectionMode {\n\t\treturn this.mode;\n\t}\n\n}\n","import { DomainEvent } from '@generic-ui/hermes';\n\nimport { StructureId } from '../../../../structure-core/src/api/global/structure.id';\nimport { SelectionModeSetEvent } from './selection-mode-set.event';\nimport { RowSelectionMode } from '../../api/row-selected/row-selection';\nimport { StructureAggregateEvent } from '../../../../structure-core/src/core/structure.aggregate-event';\n\nexport class SelectionModeSetAggregateEvent extends StructureAggregateEvent {\n\n\tconstructor(structureId: StructureId,\n\t\t\t\tprivate readonly mode: RowSelectionMode) {\n\t\tsuper(structureId, 'SelectionModeSetAggregateEvent');\n\t}\n\n\ttoDomainEvent(): DomainEvent<StructureId> {\n\t\treturn new SelectionModeSetEvent(this.getAggregateId(), this.mode);\n\t}\n}\n","import { StructureId } from '../../../../structure-core/src/api/global/structure.id';\nimport { RowSelectionType } from '../../api/row-selected/row-selection';\nimport { StructureDomainEvent } from '../../../../structure-core/src/core/structure.domain-event';\n\nexport class SelectionTypeSetEvent extends StructureDomainEvent {\n\n\tconstructor(aggregateId: StructureId,\n\t\t\t\tprivate readonly selectionType: RowSelectionType) {\n\t\tsuper(aggregateId, selectionType, 'SelectionTypeSetEvent');\n\t}\n\n\tgetType(): RowSelectionType {\n\t\treturn this.selectionType;\n\t}\n\n}\n","import { DomainEvent } from '@generic-ui/hermes';\n\nimport { StructureId } from '../../../../structure-core/src/api/global/structure.id';\nimport { SelectionTypeSetEvent } from './selection-type-set.event';\nimport { RowSelectionType } from '../../api/row-selected/row-selection';\nimport { StructureAggregateEvent } from '../../../../structure-core/src/core/structure.aggregate-event';\n\nexport class SelectionTypeSetAggregateEvent extends StructureAggregateEvent {\n\n\tconstructor(structureId: StructureId,\n\t\t\t\tprivate readonly selectionType: RowSelectionType) {\n\t\tsuper(structureId, 'SelectionTypeSetAggregateEvent');\n\t}\n\n\ttoDomainEvent(): DomainEvent<StructureId> {\n\t\treturn new SelectionTypeSetEvent(this.getAggregateId(), this.selectionType);\n\t}\n}\n","import { StructureId } from '../../../../structure-core/src/api/global/structure.id';\nimport { StructureDomainEvent } from '../../../../structure-core/src/core/structure.domain-event';\n\nexport class SelectionEnabledSetEvent extends StructureDomainEvent {\n\n\tconstructor(aggregateId: StructureId,\n\t\t\t\tprivate readonly enabled: boolean) {\n\t\tsuper(aggregateId, enabled, 'SelectionEnabledSetEvent');\n\t}\n\n\tisEnabled(): boolean {\n\t\treturn this.enabled;\n\t}\n\n}\n","import { DomainEvent } from '@generic-ui/hermes';\n\nimport { StructureId } from '../../../../structure-core/src/api/global/structure.id';\nimport { SelectionEnabledSetEvent } from './selection-enabled-set.event';\nimport { StructureAggregateEvent } from '../../../../structure-core/src/core/structure.aggregate-event';\n\nexport class SelectionEnabledSetAggregateEvent extends StructureAggregateEvent {\n\n\tconstructor(structureId: StructureId,\n\t\t\t\tprivate readonly enabled: boolean) {\n\t\tsuper(structureId, 'SelectionEnabledSetAggregateEvent');\n\t}\n\n\ttoDomainEvent(): DomainEvent<StructureId> {\n\t\treturn new SelectionEnabledSetEvent(this.getAggregateId(), this.enabled);\n\t}\n}\n","import { HermesId } from '@generic-ui/hermes';\n\nexport class FormationCustomSelectId extends HermesId<string> {\n\n\tconstructor(uid: string) {\n\t\tsuper(uid);\n\t}\n\n\ttoString(): string {\n\t\treturn super.getId();\n\t}\n\n}\n","import { FormationCustomSelectId } from './formation.custom-select.id';\nimport { ItemEntity } from '../../../../source/src/domain/item/item.entity';\n\nexport class FormationCustomSelectionFunctionModel {\n\n\tconstructor(private readonly key: string,\n\t\t\t\tprivate readonly text: string,\n\t\t\t\tprivate readonly customSelectId: FormationCustomSelectId,\n\t\t\t\tprivate readonly builtIn: boolean,\n\t\t\t\tprivate readonly method?: (items: Array<ItemEntity>) => Array<ItemEntity>\n\t) {\n\t}\n\n\tgetKey(): string {\n\t\treturn this.key;\n\t}\n\n\tgetText(): string {\n\t\treturn this.text;\n\t}\n\n\tgetCustomSelectId(): FormationCustomSelectId {\n\t\treturn this.customSelectId;\n\t}\n\n\tisBuiltIn(): boolean {\n\t\treturn this.builtIn;\n\t}\n\n\tcustomSelect(items: Array<ItemEntity>): Array<ItemEntity> {\n\t\treturn this.method(items);\n\t}\n\n}\n\nexport class FormationCustomSelection {\n\n\tconstructor(private readonly enabled: boolean,\n\t\t\t\tprivate readonly selections: Array<FormationCustomSelectionFunctionModel>) {\n\t}\n\n\tisEnabled(): boolean {\n\t\treturn this.enabled;\n\t}\n\n\tgetSelections(): Array<any> {\n\t\treturn this.selections;\n\t}\n\n}\n","import { StructureAggregateEvent } from '../../../../structure-core/src/core/structure.aggregate-event';\nimport { FormationCustomSelectionFunctionModel } from '../../api/custom/formation.custom-selection';\nimport { Optional } from '@generic-ui/hermes';\nimport { FormationCustomSelectId } from '../../api/custom/formation.custom-select.id';\nimport { FormationCustomSelectType } from '../../api/custom/formation.custom-select-type';\nimport { FormationCustomSelectionFunction } from '../../api/custom/formation.custom-selection.config';\n\nexport class FormationCustomManager {\n\n\tstatic id = 0;\n\n\tconstructor(private enabled: boolean,\n\t\t\t\tprivate selections: Array<FormationCustomSelectionFunctionModel>) {\n\t}\n\n\tinit(): Array<StructureAggregateEvent> {\n\t\treturn [];\n\t}\n\n\tisEnabled(): boolean {\n\t\treturn this.enabled;\n\t}\n\n\tsetEnabled(enabled: boolean): void {\n\t\tthis.enabled = enabled;\n\t}\n\n\tgetSelections(): Array<FormationCustomSelectionFunctionModel> {\n\t\treturn this.selections;\n\t}\n\n\tsetSelections(selections: Array<FormationCustomSelectType | FormationCustomSelectionFunction>): void {\n\n\t\tthis.selections = selections.map((sel) => {\n\n\t\t\tif (typeof sel === 'string') {\n\t\t\t\treturn new FormationCustomSelectionFunctionModel('', sel, new FormationCustomSelectId(sel), true);\n\t\t\t} else {\n\t\t\t\tFormationCustomManager.id++;\n\t\t\t\treturn new FormationCustomSelectionFunctionModel(sel.key, sel.text, new FormationCustomSelectId(`${FormationCustomManager.id}`), false, sel.select);\n\t\t\t}\n\t\t});\n\t}\n\n\tfindSelection(id: FormationCustomSelectId): Optional<FormationCustomSelectionFunctionModel> {\n\t\treturn Optional.of(\n\t\t\tthis.selections.find((s) => s.getCustomSelectId().equals(id))\n\t\t);\n\t}\n\n}\n","import { StructureId } from '../../../../structure-core/src/api/global/structure.id';\nimport { StructureDomainEvent } from '../../../../structure-core/src/core/structure.domain-event';\nimport { FormationCustomSelection } from '../../api/custom/formation.custom-selection';\n\nexport class FormationCustomSelectionChangeEvent extends StructureDomainEvent {\n\n\tconstructor(aggregateId: StructureId,\n\t\t\t\tprivate readonly customSelection: FormationCustomSelection) {\n\t\tsuper(aggregateId, customSelection, 'FormationCustomSelectionChangeEvent');\n\t}\n\n\tgetCustomSelection(): FormationCustomSelection {\n\t\treturn this.customSelection;\n\t}\n\n}\n","import { DomainEvent } from '@generic-ui/hermes';\n\nimport { StructureId } from '../../../../structure-core/src/api/global/structure.id';\nimport { FormationCustomSelectionChangeEvent } from './formation.custom-selection-change.event';\nimport { StructureAggregateEvent } from '../../../../structure-core/src/core/structure.aggregate-event';\nimport { FormationCustomSelection } from '../../api/custom/formation.custom-selection';\n\nexport class FormationCustomSelectionChangeAggregateEvent extends StructureAggregateEvent {\n\n\tconstructor(structureId: StructureId,\n\t\t\t\tprivate readonly customSelection: FormationCustomSelection) {\n\t\tsuper(structureId, 'FormationCustomSelectionChangeAggregateEvent');\n\t}\n\n\ttoDomainEvent(): DomainEvent<StructureId> {\n\t\treturn new FormationCustomSelectionChangeEvent(this.getAggregateId(), this.customSelection);\n\t}\n}\n","import { RowSelectToggleType } from './row-select-toggle-type';\nimport { RowSelectionMode, RowSelectionType } from '../api/row-selected/row-selection';\nimport { FormationSelection } from './selection/formation.selection';\nimport { StructureAggregateEvent } from '../../../structure-core/src/core/structure.aggregate-event';\nimport { SelectionModeSetAggregateEvent } from '../core/mode/selection-mode-set.aggregate-event';\nimport { StructureId } from '../../../structure-core/src/api/global/structure.id';\nimport { SelectionTypeSetAggregateEvent } from '../core/type/selection-type-set.aggregate-event';\nimport { SelectionEnabledSetAggregateEvent } from '../core/set-enabled/selection-enabled-set.aggregate-event';\nimport { ItemEntityId } from '../../../source/src/domain/item/item.entity-id';\nimport { ItemEntity } from '../../../source/src/domain/item/item.entity';\nimport { FormationCustomSelectId } from '../api/custom/formation.custom-select.id';\nimport { FormationCustomManager } from './custom/formation.custom.manager';\nimport { FormationCustomSelectionChangeAggregateEvent } from '../core/custom/formation.custom-selection-change.aggregate-event';\nimport { FormationCustomSelection, FormationCustomSelectionFunctionModel } from '../api/custom/formation.custom-selection';\nimport { FormationCustomSelectionConfig } from '../api/custom/formation.custom-selection.config';\n\nexport class FormationManager {\n\n\tprivate enabled: boolean;\n\n\tprivate selection = new FormationSelection(RowSelectionMode.SINGLE, RowSelectionType.ROW);\n\n\tprivate allSelected: boolean;\n\n\tprivate allUnselected: boolean;\n\n\tprivate customSelection: FormationCustomManager;\n\n\tprivate matcher: (item: any) => any = (item: any) => item.id;\n\n\tconstructor(private id: StructureId,\n\t\t\t\tprivate selectedItemIds: Set<string>) {\n\t}\n\n\tinit(enabled: boolean, mode: RowSelectionMode, type: RowSelectionType): Array<StructureAggregateEvent> {\n\t\tthis.enabled = enabled;\n\t\tthis.selection.setMode(mode);\n\t\tthis.selection.setType(type);\n\t\tthis.customSelection = new FormationCustomManager(false, [\n\t\t\tnew FormationCustomSelectionFunctionModel(\n\t\t\t\t'select_all',\n\t\t\t\t'SELECT_ALL',\n\t\t\t\tnew FormationCustomSelectId('SELECT_ALL'),\n\t\t\t\ttrue\n\t\t\t),\n\t\t\tnew FormationCustomSelectionFunctionModel(\n\t\t\t\t'UNSELECT_ALL',\n\t\t\t\t'UNSELECT_ALL',\n\t\t\t\tnew FormationCustomSelectId('UNSELECT_ALL'),\n\t\t\t\ttrue\n\t\t\t),\n\t\t\tnew FormationCustomSelectionFunctionModel(\n\t\t\t\t'',\n\t\t\t\t'INVERT',\n\t\t\t\tnew FormationCustomSelectId('INVERT'),\n\t\t\t\ttrue\n\t\t\t)\n\t\t]);\n\n\t\treturn [\n\t\t\tnew SelectionEnabledSetAggregateEvent(this.getId(), this.enabled),\n\t\t\tnew SelectionModeSetAggregateEvent(this.getId(), this.selection.getMode()),\n\t\t\tnew SelectionTypeSetAggregateEvent(this.getId(), this.selection.getType()),\n\t\t\tnew FormationCustomSelectionChangeAggregateEvent(this.getId(), new FormationCustomSelection(this.customSelection.isEnabled(), this.customSelection.getSelections()))\n\t\t];\n\t}\n\n\tsetSelection(enabled: boolean): Array<StructureAggregateEvent> {\n\t\tthis.enabled = enabled;\n\n\t\treturn [\n\t\t\tnew SelectionEnabledSetAggregateEvent(this.getId(), this.enabled)\n\t\t];\n\t}\n\n\tsetMode(mode: RowSelectionMode): Array<StructureAggregateEvent> {\n\t\tthis.selection.setMode(mode);\n\n\t\treturn [\n\t\t\tnew SelectionModeSetAggregateEvent(this.getId(), this.selection.getMode()),\n\t\t\tnew SelectionTypeSetAggregateEvent(this.getId(), this.selection.getType())\n\t\t];\n\t}\n\n\tsetType(type: RowSelectionType): Array<StructureAggregateEvent> {\n\t\tthis.selection.setType(type);\n\n\t\treturn [\n\t\t\tnew SelectionModeSetAggregateEvent(this.getId(), this.selection.getMode()),\n\t\t\tnew SelectionTypeSetAggregateEvent(this.getId(), this.selection.getType())\n\t\t];\n\t}\n\n\tsetMatcher(matcher: (item: any) => any): void {\n\t\tthis.matcher = matcher;\n\t}\n\n\tsetCustomConfig(config: FormationCustomSelectionConfig): Array<StructureAggregateEvent> {\n\n\t\tif (config?.enabled) {\n\t\t\tthis.customSelection.setEnabled(config.enabled);\n\t\t}\n\n\t\tif (config?.selections) {\n\t\t\tthis.customSelection.setSelections(config.selections);\n\t\t}\n\n\t\treturn [\n\t\t\tnew FormationCustomSelectionChangeAggregateEvent(this.getId(), new FormationCustomSelection(this.customSelection.isEnabled(), this.customSelection.getSelections()))\n\t\t];\n\t}\n\n\tisAllSelected(): boolean {\n\t\treturn this.allSelected;\n\t}\n\n\tisAllUnselected(): boolean {\n\t\treturn this.allUnselected;\n\t}\n\n\tgetSelectedItemIds(): Array<ItemEntityId> {\n\t\treturn Array.from(this.selectedItemIds).map(id => new ItemEntityId(id));\n\t}\n\n\tselectCustom(id: FormationCustomSelectId, itemEntities: Array<ItemEntity>): void {\n\n\t\tthis.customSelection\n\t\t\t.findSelection(id)\n\t\t\t.ifPresent((s) => {\n\t\t\t\tif (s.isBuiltIn()) {\n\n\t\t\t\t\tswitch (s.getCustomSelectId().toString()) {\n\t\t\t\t\t\tcase 'SELECT_ALL':\n\t\t\t\t\t\t\tthis.selectAll(itemEntities.map(i => i.getId()));\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\tcase 'UNSELECT_ALL':\n\t\t\t\t\t\t\tthis.unselectAll();\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\tcase 'INVERT':\n\t\t\t\t\t\t\tthis.invertSelected(itemEntities.map(i => i.getId()));\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t} else {\n\n\t\t\t\t\tconst selectedItems = s.customSelect(itemEntities);\n\n\t\t\t\t\tthis.selectedItemIds = new Set<string>(selectedItems.map(item => item.getId().toString()));\n\t\t\t\t}\n\t\t\t});\n\t}\n\n\tselectAll(allEntityIds: Array<ItemEntityId>): void {\n\t\tthis.selectedItemIds = new Set<string>(allEntityIds.map(id => id.toString()));\n\t\tthis.allSelected = true;\n\t\tthis.allUnselected = false;\n\t}\n\n\tunselectAll(): void {\n\t\tthis.selectedItemIds.clear();\n\t\tthis.allSelected = false;\n\t\tthis.allUnselected = true;\n\t}\n\n\tinvertSelected(allEntityIds: Array<ItemEntityId>): void {\n\n\t\tconst selectedItemIds = this.getSelectedItemIds();\n\n\t\tconst a = allEntityIds.filter((id) => {\n\t\t\treturn !selectedItemIds.some((selId) => selId.equals(id));\n\t\t});\n\n\t\tthis.selectedItemIds = new Set<string>(a.map(id => id.toString()));\n\t\tthis.calculateAllSelected(allEntityIds);\n\t\tthis.calculateAllUnselected();\n\t}\n\n\treSelectByIds(itemEntities: Array<ItemEntity>): void {\n\t\tthis.selectByIds(this.getSelectedItemIds().map(i => i.getId()), itemEntities);\n\t\tthis.calculateAllSelected(itemEntities.map(i => i.getId()));\n\t\tthis.calculateAllUnselected();\n\t}\n\n\tselectByIds(ids: Array<string>, itemEntities: Array<ItemEntity>): void {\n\t\tif (!this.enabled) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst itemIds = [];\n\n\t\tfor (let i = 0; i < ids.length; i++) {\n\t\t\tconst items = itemEntities\n\t\t\t\t.filter((item: ItemEntity) => {\n\t\t\t\t\treturn this.matcher(item.getSourceItem()) === ids[i];\n\t\t\t\t})\n\t\t\t\t.map((item) => item.getId().toString());\n\n\t\t\titemIds.push(...items);\n\t\t}\n\n\t\tlet type = RowSelectToggleType.ADD;\n\n\t\tif (this.selection.isSingle()) {\n\t\t\ttype = RowSelectToggleType.NONE;\n\t\t}\n\n\t\titemIds.forEach((id) => {\n\t\t\tthis.toggleRowByType(type, id);\n\t\t});\n\n\t\tthis.calculateAllSelected(itemEntities.map(i => i.getId()));\n\t\tthis.calculateAllUnselected();\n\t}\n\n\tselectByIndex(indexes: Array<number>, allEntityIds: Array<ItemEntityId>): void {\n\t\tif (!this.enabled) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst itemIds = indexes.map((i) => {\n\t\t\tif (!allEntityIds[i]) {\n\t\t\t\tconsole.error('Item not found');\n\t\t\t}\n\t\t\treturn allEntityIds[i].toString();\n\t\t});\n\n\t\tlet type = RowSelectToggleType.ADD;\n\n\t\tif (this.selection.isSingle()) {\n\t\t\ttype = RowSelectToggleType.NONE;\n\t\t}\n\n\t\titemIds.forEach((id) => {\n\t\t\tthis.toggleRowByType(type, id);\n\t\t});\n\n\t\tthis.calculateAllSelected(allEntityIds);\n\t\tthis.calculateAllUnselected();\n\t}\n\n\tselectRows(itemIds: Array<string>, itemEntityIds: Array<ItemEntityId>): void {\n\n\t}\n\n\ttoggleRow(itemId: string, type: RowSelectToggleType, itemEntityIds: Array<ItemEntityId>): void {\n\n\t\tif (!this.enabled) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (type === RowSelectToggleType.ADD && this.selection.isSingle()) {\n\t\t\ttype = RowSelectToggleType.NONE;\n\t\t}\n\n\t\tthis.toggleRowByType(type, itemId);\n\n\t\tthis.calculateAllSelected(itemEntityIds);\n\t\tthis.calculateAllUnselected();\n\t}\n\n\tcalculateAllSelected(itemEntityIds: Array<ItemEntityId>): void {\n\n\t\tif (itemEntityIds.length !== this.selectedItemIds.size) {\n\t\t\tthis.allSelected = false;\n\t\t} else {\n\n\t\t\tconst rows = Array.from(this.selectedItemIds);\n\t\t\tlet equal = true;\n\n\t\t\trows.sort();\n\t\t\titemEntityIds.sort();\n\n\t\t\tfor (let i = 0; i < rows.length; i += 1) {\n\t\t\t\tif (rows[i] !== itemEntityIds[i].toString()) {\n\t\t\t\t\tequal = false;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthis.allSelected = equal;\n\t\t}\n\t}\n\n\tcalculateAllUnselected(): void {\n\t\tthis.allUnselected = this.selectedItemIds.size === 0;\n\t}\n\n\tunselectRow(itemEntityId: ItemEntityId): void {\n\t\tif (this.selectedItemIds.has(itemEntityId.toString())) {\n\t\t\tthis.selectedItemIds.delete(itemEntityId.toString());\n\t\t}\n\t}\n\n\tgetId(): StructureId {\n\t\treturn this.id;\n\t}\n\n\tgetType(): RowSelectionType {\n\t\treturn this.selection.getType();\n\t}\n\n\tprivate toggleRowByType(type: RowSelectToggleType, itemId: string) {\n\n\t\tswitch (type) {\n\t\t\tcase RowSelectToggleType.NONE:\n\n\t\t\t\tif (this.selectedItemIds.has(itemId)) {\n\t\t\t\t\tthis.selectedItemIds.delete(itemId);\n\t\t\t\t} else {\n\t\t\t\t\tthis.selectedItemIds.clear();\n\t\t\t\t\tthis.selectedItemIds.add(itemId);\n\t\t\t\t}\n\n\t\t\t\tbreak;\n\n\t\t\tcase RowSelectToggleType.ADD:\n\n\t\t\t\tif (this.selectedItemIds.has(itemId)) {\n\t\t\t\t\tthis.selectedItemIds.delete(itemId);\n\t\t\t\t} else {\n\t\t\t\t\tthis.selectedItemIds.add(itemId);\n\t\t\t\t}\n\n\t\t\t\tbreak;\n\n\t\t\tcase RowSelectToggleType.RANGE:\n\n\t\t\t\tbreak;\n\n\t\t\tdefault:\n\t\t\t\tbreak;\n\t\t}\n\t}\n}\n","import { FormationManager } from './formation.manager';\nimport { StructureId } from '../../../structure-core/src/api/global/structure.id';\n\n\nexport class FormationManagerFactory {\n\n\tcreate(id: StructureId): FormationManager {\n\t\treturn new FormationManager(id, new Set());\n\t}\n\n}\n","import { SourceManager } from './source.manager';\nimport { FormationManagerFactory } from '../../../formation/src/domain/formation.manager-factory';\nimport { StructureId } from '../../../structure-core/src/api/global/structure.id';\n\n\nexport class SourceManagerFactory {\n\n\tconstructor(private readonly formationManagerFactory: FormationManagerFactory) {\n\t}\n\n\tstatic readonly services = [FormationManagerFactory];\n\n\tcreateDefault(id: StructureId): SourceManager {\n\n\t\tconst fm = this.formationManagerFactory.create(id);\n\n\t\treturn new SourceManager(fm);\n\t}\n\n\tcreate(id: StructureId): SourceManager {\n\t\tconst fm = this.formationManagerFactory.create(id);\n\n\t\treturn new SourceManager(fm);\n\t}\n\n}\n","import { StructureId } from '../../../../../structure-core/src/api/global/structure.id';\nimport { ItemEntityId } from '../../../domain/item/item.entity-id';\nimport { StructureCommand } from '../../../../../structure-core/src/core/structure.command';\n\nexport enum DeleteCommandPayloadType {\n\tINDEX,\n\tITEM_ID,\n\tMANY_INDEX,\n\tMANY_ITEM_ID\n}\n\nexport type DeleteOriginItemPayload = {\n\n\tindex?: number;\n\n\titemId?: ItemEntityId;\n\n};\n\nexport class DeleteOriginItemCommand extends StructureCommand {\n\n\tconstructor(structureId: StructureId,\n\t\t\t\tprivate readonly payload: number | ItemEntityId | Array<number> | Array<ItemEntityId>,\n\t\t\t\tprivate readonly type: DeleteCommandPayloadType) {\n\t\tsuper(structureId, 'DeleteOriginItemCommand');\n\t}\n\n\tstatic byIndex(structureId: StructureId, index: number): DeleteOriginItemCommand {\n\t\treturn new DeleteOriginItemCommand(structureId, index, DeleteCommandPayloadType.INDEX);\n\t}\n\n\tstatic byManyIndex(structureId: StructureId, indexes: Array<number>): DeleteOriginItemCommand {\n\t\treturn new DeleteOriginItemCommand(structureId, indexes, DeleteCommandPayloadType.MANY_INDEX);\n\t}\n\n\tstatic byItemId(structureId: StructureId, itemId: ItemEntityId): DeleteOriginItemCommand {\n\t\treturn new DeleteOriginItemCommand(structureId, itemId, DeleteCommandPayloadType.ITEM_ID);\n\t}\n\n\tstatic byManyItemId(structureId: StructureId, itemIds: Array<ItemEntityId>): DeleteOriginItemCommand {\n\t\treturn new DeleteOriginItemCommand(structureId, itemIds, DeleteCommandPayloadType.MANY_ITEM_ID);\n\t}\n\n\tgetType(): DeleteCommandPayloadType {\n\t\treturn this.type;\n\t}\n\n\tgetPayload(): number | ItemEntityId | Array<number> | Array<ItemEntityId> {\n\t\treturn this.payload;\n\t}\n\n}\n","import { CommandHandler, CommandType } from '@generic-ui/hermes';\n\nimport { StructureAggregate } from '../../../../../structure-core/src/domain/structure.aggregate';\nimport { DeleteOriginItemCommand } from './delete-origin-item.command';\n\n\nexport class DeleteOriginItemCommandHandler implements CommandHandler<StructureAggregate, DeleteOriginItemCommand> {\n\n\tforCommand(): CommandType<DeleteOriginItemCommand> {\n\t\treturn DeleteOriginItemCommand;\n\t}\n\n\thandle(aggregate: StructureAggregate, command: DeleteOriginItemCommand): void {\n\t\taggregate.deleteItem(command.getPayload());\n\t}\n\n}\n","import { AggregateArchive } from '@generic-ui/hermes';\n\n\nexport class StructureSourceOriginArchive extends AggregateArchive<ReadonlyArray<any>> {\n\n\tstatic readonly default: ReadonlyArray<any> = [];\n\n\tconstructor() {\n\t\tsuper(StructureSourceOriginArchive.default);\n\t}\n}\n","import { DomainEventHandler, DomainEventType } from '@generic-ui/hermes';\n\nimport { StructureSourceOriginArchive } from './structure.source-origin.archive';\nimport { OriginSetEvent } from './set/origin-set.event';\nimport { StructureId } from '../../../../structure-core/src/api/global/structure.id';\n\n\nexport class StructureOriginChangedEventHandler implements DomainEventHandler<StructureId, OriginSetEvent> {\n\n\tconstructor(private readonly structureSourceOriginRepository: StructureSourceOriginArchive) {\n\t}\n\n\tstatic readonly services = [StructureSourceOriginArchive];\n\n\tforEvent(): DomainEventType<OriginSetEvent> {\n\t\treturn OriginSetEvent;\n\t}\n\n\thandle(event: OriginSetEvent): void {\n\n\t\tif (event.ofMessageType('OriginSetEvent')) {\n\t\t\tconst origin = event.getOrigin();\n\n\t\t\tthis.structureSourceOriginRepository.next(event.getAggregateId(), origin);\n\t\t}\n\t}\n}\n","import { ItemEntity } from '../../domain/item/item.entity';\nimport { StructureId } from '../../../../structure-core/src/api/global/structure.id';\nimport { AggregateArchive } from '@generic-ui/hermes';\n\n\nexport class StructurePreparedItemsArchive extends AggregateArchive<ReadonlyArray<ItemEntity>> {\n\n\tstatic readonly default: ReadonlyArray<ItemEntity> = [];\n\n\tconstructor() {\n\t\tsuper(StructurePreparedItemsArchive.default);\n\t}\n\n\t/**\n\t * @deprecated\n\t */\n\tgetPreparedItems(structureId: StructureId): ReadonlyArray<ItemEntity> {\n\t\treturn this.find(structureId).getValueOrNullOrThrowError();\n\t}\n\n}\n","import { DomainEventHandler, DomainEventType } from '@generic-ui/hermes';\n\nimport { StructurePreparedEntitiesSetEvent } from './structure.prepared-entities-set.event';\nimport { StructurePreparedItemsArchive } from './structure.prepared-items.archive';\nimport { StructureId } from '../../../../structure-core/src/api/global/structure.id';\n\n\nexport class StructurePreparedItemsEventHandler implements DomainEventHandler<StructureId, StructurePreparedEntitiesSetEvent> {\n\n\tconstructor(private readonly structurePreparedItemsRepository: StructurePreparedItemsArchive) {\n\t}\n\n\tstatic readonly services = [StructurePreparedItemsArchive];\n\n\tforEvent(): DomainEventType<StructurePreparedEntitiesSetEvent> {\n\t\treturn StructurePreparedEntitiesSetEvent;\n\t}\n\n\thandle(event: StructurePreparedEntitiesSetEvent): void {\n\n\t\tif (event.ofMessageType('StructurePreparedEntitiesSetEvent')) {\n\n\t\t\tconst preparedItems = event.getPreparedItems();\n\n\t\t\tthis.structurePreparedItemsRepository.next(event.getAggregateId(), preparedItems);\n\t\t}\n\n\t}\n}\n","import { AggregateDefinition, AggregateId, AggregateRoot, Command, Container, DomainEvent, DomainProviders } from '@generic-ui/hermes';\n\nimport { SourceSetLoadingCommandHandler } from './loading/source-set-loading.command-handler';\nimport { SetOriginCommandHandler } from './origin/set/set-origin.command-handler';\nimport { StructureEditSourceItemCommandHandler } from './origin/edit/structure.edit-source-item.command-handler';\nimport { SourceManagerFactory } from '../domain/source.manager-factory';\nimport { SourceDomainEventPublisher } from './source.domain-event.publisher';\nimport { DeleteOriginItemCommandHandler } from './origin/delete/delete-origin-item.command-handler';\nimport { structureKey } from '../../../structure-core/src/api/global/structre.key';\nimport { StructureOriginChangedEventHandler } from './origin/structure.origin-changed.event-handler';\nimport { StructurePreparedItemsEventHandler } from './prepared/structure.prepared-items.event-handler';\nimport { StructureSourceOriginArchive } from './origin/structure.source-origin.archive';\n\n\nexport class SourceDomainModule implements DomainProviders {\n\n\tdefineAggregate(): AggregateDefinition<any, any, any> | null {\n\t\treturn null;\n\t}\n\n\tregisterKey(): string {\n\t\treturn structureKey;\n\t}\n\n\tregisterProviders(container: Container): void {\n\t\tcontainer.provide(StructureSourceOriginArchive);\n\t\tcontainer.provide(SourceManagerFactory);\n\t\tcontainer.provide(SourceDomainEventPublisher);\n\t}\n\n\tregisterCommandHandlers<I extends AggregateId, A extends AggregateRoot<I>, C extends Command<I>>(): Array<any> {\n\t\treturn [\n\t\t\tSourceSetLoadingCommandHandler,\n\t\t\tSetOriginCommandHandler,\n\t\t\tStructureEditSourceItemCommandHandler,\n\t\t\tDeleteOriginItemCommandHandler\n\t\t];\n\t}\n\n\tregisterDomainEventHandler<I extends AggregateId, E extends DomainEvent<I>>(): Array<any> {\n\t\treturn [\n\t\t\tStructureOriginChangedEventHandler,\n\t\t\tStructurePreparedItemsEventHandler\n\t\t];\n\t}\n\n\tregisterMultiDomainEventHandler<I extends AggregateId, E extends DomainEvent<I>>(): Array<any> {\n\t\treturn [];\n\t}\n\n}\n","import { StructureReadModelRepository } from '../../../structure-core/src/api/read/structure.read-model-repository';\nimport { StructureId } from '../../../structure-core/src/api/global/structure.id';\nimport { StructureReadModelRoot } from '../../../structure-core/src/api/read/structure.read-model-root';\nimport { Item } from '../api/item/item';\nimport { ItemEntity } from '../domain/item/item.entity';\nimport { hermesDistinctUntilChanged, hermesMap, HermesObservable, HermesSingle, singleFromObservable } from '@generic-ui/hermes';\nimport { SourceWarehouse } from '../api/source.warehouse';\nimport { StructurePreparedItemsArchive } from '../core/prepared/structure.prepared-items.archive';\nimport { StructureSourceOriginArchive } from '../core/origin/structure.source-origin.archive';\n\n\nexport class SourceDomainWarehouse extends SourceWarehouse {\n\n\tconstructor(private readonly structureRepository: StructureReadModelRepository,\n\t\t\t\tprivate readonly structurePreparedItemsRepository: StructurePreparedItemsArchive,\n\t\t\t\tprivate readonly structureSourceOriginRepository: StructureSourceOriginArchive) {\n\t\tsuper();\n\t}\n\n\tstatic readonly services = [StructureReadModelRepository, StructurePreparedItemsArchive, StructureSourceOriginArchive];\n\n\tfindItems(structureId: StructureId): ReadonlyArray<Item> {\n\t\treturn this.structureRepository.getStructure(structureId).getEntities();\n\t}\n\n\tonItems(structureId: StructureId): HermesObservable<ReadonlyArray<Item>> {\n\n\t\treturn this.structureRepository\n\t\t\t\t   .on(structureId)\n\t\t\t\t   .pipe(\n\t\t\t\t\t   hermesMap((structure: StructureReadModelRoot) => structure.getEntities()),\n\t\t\t\t\t   hermesDistinctUntilChanged((ents1: ReadonlyArray<Item>, ents2: ReadonlyArray<Item>) => {\n\t\t\t\t\t\t   if (ents1.length !== ents2.length) {\n\t\t\t\t\t\t\t   return false;\n\t\t\t\t\t\t   }\n\n\t\t\t\t\t\t   let flag = true;\n\n\t\t\t\t\t\t   ents1.forEach((ent, index) => {\n\t\t\t\t\t\t\t   if (!ent.equals(ents2[index])) {\n\t\t\t\t\t\t\t\t   flag = false;\n\t\t\t\t\t\t\t\t   return;\n\t\t\t\t\t\t\t   }\n\t\t\t\t\t\t   });\n\n\t\t\t\t\t\t   return flag;\n\t\t\t\t\t   })\n\t\t\t\t   );\n\t}\n\n\tonItemsSize(structureId: StructureId): HermesObservable<number> {\n\n\t\treturn this.onItems(structureId)\n\t\t\t\t   .pipe(\n\t\t\t\t\t   hermesMap((entities: ReadonlyArray<Item>) => {\n\t\t\t\t\t\t   return entities.length;\n\t\t\t\t\t   })\n\t\t\t\t   );\n\t}\n\n\tonceItems(structureId: StructureId): HermesSingle<ReadonlyArray<Item>> {\n\t\treturn singleFromObservable(this.onItems(structureId));\n\t}\n\n\tonOriginSize(structureId: StructureId): HermesObservable<number> {\n\t\treturn this.structureSourceOriginRepository\n\t\t\t\t   .on(structureId)\n\t\t\t\t   .pipe(\n\t\t\t\t\t   hermesMap(origin => origin.length)\n\t\t\t\t   );\n\t}\n\n\tonLoading(structureId: StructureId): HermesObservable<boolean> {\n\t\treturn this.structureRepository\n\t\t\t\t   .on(structureId)\n\t\t\t\t   .pipe(\n\t\t\t\t\t   hermesMap((structure: StructureReadModelRoot) => structure.getSource().isLoading())\n\t\t\t\t   );\n\t}\n\n\tonPreparedItems(structureId: StructureId): HermesObservable<ReadonlyArray<ItemEntity>> {\n\t\treturn this.structurePreparedItemsRepository.on(structureId);\n\t}\n\n\tfindPreparedItems(structureId: StructureId): ReadonlyArray<ItemEntity> {\n\t\treturn this.structurePreparedItemsRepository.getPreparedItems(structureId);\n\t}\n\n}\n","import { zip } from 'rxjs';\nimport { StructureId } from '../../../structure-core/src/api/global/structure.id';\nimport { StructureEditSourceItemParams } from './origin/edit/structure.edit-source-item.params';\nimport { Item } from '../api/item/item';\nimport { FieldWarehouse } from '../../../field/src/api/field.warehouse';\nimport { ItemEntityId } from '../domain/item/item.entity-id';\nimport { CommandDispatcher, fromRxJsObservable, hermesMap, hermesTake, toRxJsObservable } from '@generic-ui/hermes';\nimport { DeleteOriginItemCommand } from './origin/delete/delete-origin-item.command';\nimport { SourceWarehouse } from '../api/source.warehouse';\nimport { SelectedRow } from '../../../formation/src/api/row-selected/selected-row';\nimport { SourcePublisher } from '../api/source.publisher';\nimport { SourceSetLoadingCommand } from './loading/source-set-loading.command';\nimport { SetOriginCommand } from './origin/set/set-origin.command';\nimport { StructureEditSourceItemCommand } from './origin/edit/structure.edit-source-item.command';\n\n\nexport class SourceDomainPublisher extends SourcePublisher {\n\n\tconstructor(private readonly commandDispatcher: CommandDispatcher,\n\t\t\t\tprivate readonly fieldWarehouse: FieldWarehouse,\n\t\t\t\tprivate readonly sourceReadModelService: SourceWarehouse) {\n\t\tsuper();\n\t}\n\n\tstatic readonly services = [CommandDispatcher, FieldWarehouse, SourceWarehouse] as const;\n\n\tsetOrigin(items: Array<any>, structureId: StructureId): void {\n\t\tthis.commandDispatcher.dispatch(new SetOriginCommand(structureId, items));\n\t}\n\n\tsetLoading(enabled: boolean, structureId: StructureId): void {\n\t\tthis.commandDispatcher.dispatch(new SourceSetLoadingCommand(structureId, enabled));\n\t}\n\n\teditItem(params: StructureEditSourceItemParams, structureId: StructureId): void {\n\t\tthis.commandDispatcher.dispatch(new StructureEditSourceItemCommand(structureId, params));\n\t}\n\n\teditItemByIndex(itemIndex: number, fieldIndex: number, value: any, structureId: StructureId): void {\n\n\t\tconst itemId$ =\n\t\t\ttoRxJsObservable(\n\t\t\t\tthis.sourceReadModelService\n\t\t\t\t\t.onceItems(structureId)\n\t\t\t\t\t.pipe(\n\t\t\t\t\t\thermesMap((entities: Array<Item>) => {\n\t\t\t\t\t\t\treturn entities[itemIndex].getId();\n\t\t\t\t\t\t})\n\t\t\t\t\t)\n\t\t\t);\n\n\t\tconst fieldId$ = toRxJsObservable(\n\t\t\tthis.fieldWarehouse.onFields(structureId)\n\t\t);\n\n\t\tfromRxJsObservable(\n\t\t\tzip(itemId$, fieldId$)\n\t\t)\n\t\t\t.pipe(\n\t\t\t\thermesTake(1)\n\t\t\t)\n\t\t\t.subscribe((array: Array<any>) => {\n\n\t\t\t\tconst itemId = array[0],\n\t\t\t\t\tfields = array[1];\n\n\t\t\t\tthis.editItem(\n\t\t\t\t\tnew StructureEditSourceItemParams(itemId, fields[fieldIndex], value),\n\t\t\t\t\tstructureId\n\t\t\t\t);\n\t\t\t});\n\t}\n\n\tdeleteRow(row: SelectedRow, structureId: StructureId): void {\n\n\t\tif (row.getItemId() !== undefined) {\n\t\t\tthis.deleteItemById(row.getItemId(), structureId);\n\t\t} else if (row.getIndex() !== undefined) {\n\t\t\tthis.deleteItemByIndex(row.getIndex(), structureId);\n\t\t}\n\t}\n\n\tdeleteRows(rows: Array<SelectedRow>, structureId: StructureId): void {\n\n\t\tif (rows.length > 0) {\n\t\t\tif (rows[0].getItemId() !== undefined) {\n\t\t\t\tthis.deleteManyItemsByItemIds(rows.map(r => r.getItemId()), structureId);\n\t\t\t} else if (rows[0].getIndex() !== undefined) {\n\t\t\t\tthis.deleteManyItemsByIndex(rows.map(r => r.getIndex()), structureId);\n\t\t\t}\n\t\t}\n\t}\n\n\tdeleteItemByIndex(index: number, structureId: StructureId): void {\n\t\tthis.commandDispatcher.dispatch(DeleteOriginItemCommand.byIndex(structureId, index));\n\t}\n\n\tdeleteItemById(itemId: ItemEntityId, structureId: StructureId): void {\n\t\tthis.commandDispatcher.dispatch(DeleteOriginItemCommand.byItemId(structureId, itemId));\n\t}\n\n\tdeleteManyItemsByIndex(indexes: Array<number>, structureId: StructureId): void {\n\t\tthis.commandDispatcher.dispatch(DeleteOriginItemCommand.byManyIndex(structureId, indexes));\n\t}\n\n\tdeleteManyItemsByItemIds(itemIds: Array<ItemEntityId>, structureId: StructureId): void {\n\t\tthis.commandDispatcher.dispatch(DeleteOriginItemCommand.byManyItemId(structureId, itemIds));\n\t}\n\n}\n","import { ApiProviders, Container, DomainInitializer } from '@generic-ui/hermes';\n\nimport { SourceConverter } from '../core/source.converter';\nimport { SourcePublisher } from './source.publisher';\nimport { SourceWarehouse } from './source.warehouse';\nimport { SourceEventService } from './edit/source-event.service';\nimport { SourceDomainModule } from '../core/source.domain-module';\nimport { SourceDomainWarehouse } from '../core-read/source.domain-warehouse';\nimport { SourceDomainPublisher } from '../core/source.domain-publisher';\nimport { StructurePreparedItemsArchive } from '../core/prepared/structure.prepared-items.archive';\n\n\nexport class SourceApiModule implements ApiProviders {\n\n\tregisterProviders(container: Container): void {\n\t\tcontainer.provide(SourcePublisher, SourceDomainPublisher);\n\t\tcontainer.provide(SourceWarehouse, SourceDomainWarehouse);\n\t\tcontainer.provide(SourceEventService);\n\n\n\t\tcontainer.provide(StructurePreparedItemsArchive);\n\t\tcontainer.provide(SourceConverter);\n\t}\n}\n\nexport function initializeSource(): void {\n\tnew DomainInitializer(new SourceApiModule(), new SourceDomainModule()).init();\n}\n","import { NgModule, Provider } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { CoreContainer, FeatureModule } from '@generic-ui/hermes';\nimport { initializeSource } from '../../../../core/structure/source/src/api/source.api-module';\nimport { SourcePublisher } from '../../../../core/structure/source/src/api/source.publisher';\nimport { SourceWarehouse } from '../../../../core/structure/source/src/api/source.warehouse';\nimport { SourceEventService } from '../../../../core/structure/source/src/api/edit/source-event.service';\n\n\ninitializeSource();\n\nexport function provideSourceCommandInvoker() {\n\treturn CoreContainer.resolve(SourcePublisher);\n}\n\nexport function provideSourceWarehouse() {\n\treturn CoreContainer.resolve(SourceWarehouse);\n}\n\nexport function provideSourceEventRepository() {\n\treturn CoreContainer.resolve(SourceEventService);\n}\n\n\n@NgModule({\n\timports: [\n\t\tCommonModule\n\t],\n\tdeclarations: [],\n\texports: [],\n\tproviders: [\n\t\t{ provide: SourcePublisher, useFactory: provideSourceCommandInvoker },\n\t\t{ provide: SourceWarehouse, useFactory: provideSourceWarehouse },\n\t\t{ provide: SourceEventService, useFactory: provideSourceEventRepository }\n\t]\n})\nexport class SourceFeatureModule extends FeatureModule {\n\n\tstatic forComponent(): Array<Provider> {\n\t\treturn [];\n\t}\n\n}\n","import { NgModule } from '@angular/core';\n\nimport { CssClassModifier } from './css-class.modifier';\nimport { CoreContainer } from '@generic-ui/hermes';\n\nCoreContainer.provide(CssClassModifier);\n\nexport function provideCssClassModifier() {\n\treturn CoreContainer.resolve(CssClassModifier);\n}\n\n@NgModule({\n\tproviders: [\n\t\t{ provide: CssClassModifier, useFactory: provideCssClassModifier }\n\t]\n})\nexport class CssClassModule {\n}\n","import { NgModule } from '@angular/core';\n\nimport { CssClassModule } from './css-class/css-class.module';\n\n\n@NgModule({\n\timports: [\n\t\tCssClassModule\n\t]\n})\nexport class StructureSharedModule {\n}\n","import { NgModule } from '@angular/core';\n\nimport { ResizeDetector } from './resize.detector';\n\n@NgModule({\n\tproviders: [\n\t\tResizeDetector\n\t]\n})\nexport class ResizeDetectorModule {\n}\n","export class RowSelectedReadModel {\n\n\tconstructor(private readonly itemIds: Array<string>,\n\t\t\t\tprivate readonly allSelected: boolean,\n\t\t\t\tprivate readonly allUnselected: boolean) {\n\t}\n\n\tgetAll(): Array<string> {\n\t\treturn this.itemIds;\n\t}\n\n\tisSelected(id: string): boolean {\n\t\treturn this.itemIds.some((itemId: string) => itemId === id);\n\t}\n\n\tisAllSelected(): boolean {\n\t\treturn this.allSelected;\n\t}\n\n\tisAllUnselected(): boolean {\n\t\treturn this.allUnselected;\n\t}\n\n\tisIndeterminate(): boolean {\n\t\treturn !(this.isAllSelected() || this.isAllUnselected());\n\t}\n\n}\n","import { AggregateArchive } from '@generic-ui/hermes';\n\nimport { RowSelectedReadModel } from '../../api/row-selected/row-selected.read-model';\n\n\nexport class RowSelectedArchive extends AggregateArchive<RowSelectedReadModel> {\n\n\tstatic default = new RowSelectedReadModel([], false, false);\n\n\tconstructor() {\n\t\tsuper(RowSelectedArchive.default);\n\t}\n}\n","import { StructureId } from '../../../../structure-core/src/api/global/structure.id';\nimport { StructureCommand } from '../../../../structure-core/src/core/structure.command';\n\nexport class SetEnabledSelectionCommand extends StructureCommand {\n\n\tconstructor(structureId: StructureId,\n\t\t\t\tprivate readonly enabled: boolean) {\n\t\tsuper(structureId, 'SetEnabledSelectionCommand');\n\t}\n\n\tisEnabled(): boolean {\n\t\treturn this.enabled;\n\t}\n\n}\n","import { CommandHandler, CommandType } from '@generic-ui/hermes';\n\nimport { SetEnabledSelectionCommand } from './set-enabled-selection.command';\nimport { StructureAggregate } from '../../../../structure-core/src/domain/structure.aggregate';\n\n\nexport class SetEnabledSelectionCommandHandler implements CommandHandler<StructureAggregate, SetEnabledSelectionCommand> {\n\n\tforCommand(): CommandType<SetEnabledSelectionCommand> {\n\t\treturn SetEnabledSelectionCommand;\n\t}\n\n\thandle(aggregate: StructureAggregate, command: SetEnabledSelectionCommand): void {\n\t\taggregate.setSelection(command.isEnabled());\n\t}\n\n}\n","import { StructureId } from '../../../../structure-core/src/api/global/structure.id';\nimport { RowSelectToggleType } from '../../domain/row-select-toggle-type';\nimport { StructureCommand } from '../../../../structure-core/src/core/structure.command';\n\nexport class ToggleSelectedRowCommand extends StructureCommand {\n\n\tconstructor(structureId: StructureId,\n\t\t\t\tprivate readonly selectedRow: string,\n\t\t\t\tprivate readonly type: RowSelectToggleType) {\n\t\tsuper(structureId, 'ToggleSelectedRowCommand');\n\t}\n\n\tgetSelectedRow(): string {\n\t\treturn this.selectedRow;\n\t}\n\n\tgetType(): RowSelectToggleType {\n\t\treturn this.type;\n\t}\n\n}\n","import { CommandHandler, CommandType } from '@generic-ui/hermes';\nimport { ToggleSelectedRowCommand } from './toggle-selected-row.command';\nimport { StructureAggregate } from '../../../../structure-core/src/domain/structure.aggregate';\n\n\nexport class ToggleSelectedRowCommandHandler implements CommandHandler<StructureAggregate, ToggleSelectedRowCommand> {\n\n\tforCommand(): CommandType<ToggleSelectedRowCommand> {\n\t\treturn ToggleSelectedRowCommand;\n\t}\n\n\thandle(aggregate: StructureAggregate, command: ToggleSelectedRowCommand): void {\n\n\t\tconst selectedRow = command.getSelectedRow(),\n\t\t\ttype = command.getType();\n\n\t\taggregate.toggleRow(selectedRow, type);\n\t}\n\n}\n","import { DomainEventHandler, DomainEventType } from '@generic-ui/hermes';\n\nimport { SelectedRowChangedEvent } from '../../core/selected-row-changed.event';\nimport { RowSelectedArchive } from './row-selected.archive';\nimport { StructureId } from '../../../../structure-core/src/api/global/structure.id';\nimport { RowSelectedReadModel } from '../../api/row-selected/row-selected.read-model';\n\n\nexport class SelectedRowChangedEventHandler implements DomainEventHandler<StructureId, SelectedRowChangedEvent> {\n\n\tconstructor(private readonly rowSelectedArchive: RowSelectedArchive) {\n\t}\n\n\tstatic readonly services = [RowSelectedArchive] as const;\n\n\tforEvent(): DomainEventType<SelectedRowChangedEvent> {\n\t\treturn SelectedRowChangedEvent;\n\t}\n\n\thandle(rowChangedEvent: SelectedRowChangedEvent): void {\n\n\t\tif (rowChangedEvent.ofMessageType('SelectedRowChangedEvent')) {\n\n\t\t\tconst rowSelectedRead = new RowSelectedReadModel(\n\t\t\t\trowChangedEvent.getSelectedRows(),\n\t\t\t\trowChangedEvent.isAllSelected(),\n\t\t\t\trowChangedEvent.isAllUnselected()\n\t\t\t);\n\n\t\t\tthis.rowSelectedArchive.next(rowChangedEvent.getAggregateId(), rowSelectedRead);\n\t\t}\n\t}\n\n}\n","import { StructureId } from '../../../../structure-core/src/api/global/structure.id';\nimport { RowSelectionMode } from '../../api/row-selected/row-selection';\nimport { StructureCommand } from '../../../../structure-core/src/core/structure.command';\n\nexport class SetSelectionModeCommand extends StructureCommand {\n\n\tconstructor(structureId: StructureId,\n\t\t\t\tprivate readonly mode: RowSelectionMode) {\n\t\tsuper(structureId, 'SetSelectionModeCommand');\n\t}\n\n\tgetMode(): RowSelectionMode {\n\t\treturn this.mode;\n\t}\n\n}\n","import { CommandHandler, CommandType } from '@generic-ui/hermes';\n\nimport { SetSelectionModeCommand } from './set-selection-mode.command';\nimport { StructureAggregate } from '../../../../structure-core/src/domain/structure.aggregate';\n\n\nexport class SetSelectionModeCommandHandler implements CommandHandler<StructureAggregate, SetSelectionModeCommand> {\n\n\tforCommand(): CommandType<SetSelectionModeCommand> {\n\t\treturn SetSelectionModeCommand;\n\t}\n\n\thandle(aggregate: StructureAggregate, command: SetSelectionModeCommand): void {\n\t\taggregate.setSelectionMode(command.getMode());\n\t}\n\n}\n","import { StructureId } from '../../../../structure-core/src/api/global/structure.id';\nimport { StructureCommand } from '../../../../structure-core/src/core/structure.command';\n\nexport class SelectAllRowsCommand extends StructureCommand {\n\n\tconstructor(structureId: StructureId) {\n\t\tsuper(structureId, 'SelectAllRowsCommand');\n\t}\n\n}\n","import { CommandHandler, CommandType } from '@generic-ui/hermes';\nimport { SelectAllRowsCommand } from './select-all-rows.command';\nimport { StructureAggregate } from '../../../../structure-core/src/domain/structure.aggregate';\n\n\nexport class SelectAllRowsCommandHandler implements CommandHandler<StructureAggregate, SelectAllRowsCommand> {\n\n\tforCommand(): CommandType<SelectAllRowsCommand> {\n\t\treturn SelectAllRowsCommand;\n\t}\n\n\thandle(aggregate: StructureAggregate, command: SelectAllRowsCommand): void {\n\t\taggregate.selectAll();\n\t}\n\n}\n","import { StructureId } from '../../../../structure-core/src/api/global/structure.id';\nimport { StructureCommand } from '../../../../structure-core/src/core/structure.command';\n\nexport class UnselectAllRowsCommand extends StructureCommand {\n\n\tconstructor(structureId: StructureId) {\n\t\tsuper(structureId, 'UnselectAllRowsCommand');\n\t}\n\n}\n","import { CommandHandler, CommandType } from '@generic-ui/hermes';\nimport { UnselectAllRowsCommand } from './unselect-all-rows.command';\nimport { StructureAggregate } from '../../../../structure-core/src/domain/structure.aggregate';\n\n\nexport class UnselectAllRowsCommandHandler implements CommandHandler<StructureAggregate, UnselectAllRowsCommand> {\n\n\tforCommand(): CommandType<UnselectAllRowsCommand> {\n\t\treturn UnselectAllRowsCommand;\n\t}\n\n\thandle(aggregate: StructureAggregate, command: UnselectAllRowsCommand): void {\n\t\taggregate.unselectAll();\n\t}\n\n}\n","import { StructureId } from '../../../../structure-core/src/api/global/structure.id';\nimport { RowSelectionType } from '../../api/row-selected/row-selection';\nimport { StructureCommand } from '../../../../structure-core/src/core/structure.command';\n\nexport class SetSelectionTypeCommand extends StructureCommand {\n\n\tconstructor(structureId: StructureId,\n\t\t\t\tprivate readonly type: RowSelectionType) {\n\t\tsuper(structureId, 'SetSelectionTypeCommand');\n\t}\n\n\tgetType(): RowSelectionType {\n\t\treturn this.type;\n\t}\n\n}\n","import { CommandHandler, CommandType } from '@generic-ui/hermes';\n\nimport { SetSelectionTypeCommand } from './set-selection-type.command';\nimport { StructureAggregate } from '../../../../structure-core/src/domain/structure.aggregate';\n\n\nexport class SetSelectionTypeCommandHandler implements CommandHandler<StructureAggregate, SetSelectionTypeCommand> {\n\n\tforCommand(): CommandType<SetSelectionTypeCommand> {\n\t\treturn SetSelectionTypeCommand;\n\t}\n\n\thandle(aggregate: StructureAggregate, command: SetSelectionTypeCommand): void {\n\t\taggregate.setSelectionType(command.getType());\n\t}\n\n}\n","import { DomainEventType, EventDrivenRepository } from '@generic-ui/hermes';\nimport { StructureId } from '../../../../structure-core/src/api/global/structure.id';\nimport { SelectionTypeSetEvent } from '../../core/type/selection-type-set.event';\nimport { RowSelectionType } from '../../api/row-selected/row-selection';\n\nexport class FormationTypeRepository extends EventDrivenRepository<StructureId, SelectionTypeSetEvent, RowSelectionType> {\n\n\tconstructor() {\n\t\tsuper();\n\t}\n\n\tforEvent(): DomainEventType<SelectionTypeSetEvent> {\n\t\treturn SelectionTypeSetEvent;\n\t}\n\n}\n","import { DomainEventType, EventDrivenRepository } from '@generic-ui/hermes';\nimport { StructureId } from '../../../../structure-core/src/api/global/structure.id';\nimport { RowSelectionMode } from '../../api/row-selected/row-selection';\nimport { SelectionModeSetEvent } from '../../core/mode/selection-mode-set.event';\n\nexport class FormationModeRepository extends EventDrivenRepository<StructureId, SelectionModeSetEvent, RowSelectionMode> {\n\n\tconstructor() {\n\t\tsuper();\n\t}\n\n\tforEvent(): DomainEventType<SelectionModeSetEvent> {\n\t\treturn SelectionModeSetEvent;\n\t}\n\n}\n","import { DomainEventType, EventDrivenRepository } from '@generic-ui/hermes';\nimport { StructureId } from '../../../../structure-core/src/api/global/structure.id';\nimport { SelectionEnabledSetEvent } from '../../core/set-enabled/selection-enabled-set.event';\n\nexport class FormationEnabledRepository extends EventDrivenRepository<StructureId, SelectionEnabledSetEvent, boolean> {\n\n\tconstructor() {\n\t\tsuper();\n\t}\n\n\tforEvent(): DomainEventType<SelectionEnabledSetEvent> {\n\t\treturn SelectionEnabledSetEvent;\n\t}\n\n}\n","import { StructureId } from '../../../../structure-core/src/api/global/structure.id';\nimport { StructureCommand } from '../../../../structure-core/src/core/structure.command';\n\nexport class SetSelectedRowCommand extends StructureCommand {\n\n\tconstructor(structureId: StructureId,\n\t\t\t\tprivate readonly selectedRows: Array<string>) {\n\t\tsuper(structureId, 'SetSelectedRowCommand');\n\t}\n\n\tgetSelectedRows(): Array<string> {\n\t\treturn this.selectedRows;\n\t}\n\n}\n","import { CommandHandler, CommandType } from '@generic-ui/hermes';\nimport { SetSelectedRowCommand } from './set-selected-row.command';\nimport { StructureAggregate } from '../../../../structure-core/src/domain/structure.aggregate';\n\n\nexport class SetSelectedRowCommandHandler implements CommandHandler<StructureAggregate, SetSelectedRowCommand> {\n\n\tforCommand(): CommandType<SetSelectedRowCommand> {\n\t\treturn SetSelectedRowCommand;\n\t}\n\n\thandle(aggregate: StructureAggregate, command: SetSelectedRowCommand): void {\n\n\t\tconst selectedRows = command.getSelectedRows();\n\n\t\taggregate.setSelectedRows(selectedRows);\n\t}\n\n}\n","import { StructureId } from '../../../../structure-core/src/api/global/structure.id';\nimport { StructureCommand } from '../../../../structure-core/src/core/structure.command';\n\nexport class SelectRowByIndexCommand extends StructureCommand {\n\n\tconstructor(structureId: StructureId,\n\t\t\t\tprivate readonly indexes: Array<number>) {\n\t\tsuper(structureId, 'SelectRowByIndexCommand');\n\t}\n\n\tgetIndexes(): Array<number> {\n\t\treturn this.indexes;\n\t}\n\n}\n","import { CommandHandler, CommandType } from '@generic-ui/hermes';\nimport { SelectRowByIndexCommand } from './select-row-by-index.command';\nimport { StructureAggregate } from '../../../../structure-core/src/domain/structure.aggregate';\n\n\nexport class SelectRowByIndexCommandHandler implements CommandHandler<StructureAggregate, SelectRowByIndexCommand> {\n\n\tforCommand(): CommandType<SelectRowByIndexCommand> {\n\t\treturn SelectRowByIndexCommand;\n\t}\n\n\thandle(aggregate: StructureAggregate, command: SelectRowByIndexCommand): void {\n\n\t\tconst selectedRowIndexes = command.getIndexes();\n\n\t\taggregate.selectByIndex(selectedRowIndexes);\n\t}\n\n}\n","import { StructureId } from '../../../../structure-core/src/api/global/structure.id';\nimport { StructureCommand } from '../../../../structure-core/src/core/structure.command';\n\nexport class SelectRowByIdCommand extends StructureCommand {\n\n\tconstructor(structureId: StructureId,\n\t\t\t\tprivate readonly ids: Array<string>) {\n\t\tsuper(structureId, 'SelectRowByIdCommand');\n\t}\n\n\tgetIds(): Array<string> {\n\t\treturn this.ids;\n\t}\n\n}\n","import { CommandHandler, CommandType } from '@generic-ui/hermes';\nimport { SelectRowByIdCommand } from './select-row-by-id.command';\nimport { StructureAggregate } from '../../../../structure-core/src/domain/structure.aggregate';\n\n\nexport class SelectRowByIdCommandHandler implements CommandHandler<StructureAggregate, SelectRowByIdCommand> {\n\n\tforCommand(): CommandType<SelectRowByIdCommand> {\n\t\treturn SelectRowByIdCommand;\n\t}\n\n\thandle(aggregate: StructureAggregate, command: SelectRowByIdCommand): void {\n\n\t\tconst selectedRowIds = command.getIds();\n\n\t\taggregate.selectByIds(selectedRowIds);\n\t}\n\n}\n","import { StructureId } from '../../../../structure-core/src/api/global/structure.id';\nimport { StructureCommand } from '../../../../structure-core/src/core/structure.command';\n\nexport class FormationSetMatcherCommand extends StructureCommand {\n\n\tconstructor(structureId: StructureId,\n\t\t\t\tprivate readonly matcher: (item: any) => any) {\n\t\tsuper(structureId, 'FormationSetMatcherCommand');\n\t}\n\n\tgetMatcher(): (item: any) => any {\n\t\treturn this.matcher;\n\t}\n\n}\n","import { CommandHandler, CommandType } from '@generic-ui/hermes';\nimport { FormationSetMatcherCommand } from './formation.set-matcher.command';\nimport { StructureAggregate } from '../../../../structure-core/src/domain/structure.aggregate';\n\n\nexport class FormationSetMatcherCommandHandler implements CommandHandler<StructureAggregate, FormationSetMatcherCommand> {\n\n\tforCommand(): CommandType<FormationSetMatcherCommand> {\n\t\treturn FormationSetMatcherCommand;\n\t}\n\n\thandle(aggregate: StructureAggregate, command: FormationSetMatcherCommand): void {\n\n\t\tconst matcher = command.getMatcher();\n\n\t\taggregate.setFormationMatcher(matcher);\n\t}\n\n}\n","import { DomainEventType, EventDrivenRepository } from '@generic-ui/hermes';\nimport { StructureId } from '../../../../structure-core/src/api/global/structure.id';\nimport { FormationCustomSelection } from '../../api/custom/formation.custom-selection';\nimport { FormationCustomSelectionChangeEvent } from '../../core/custom/formation.custom-selection-change.event';\n\nexport class FormationCustomRepository extends EventDrivenRepository<StructureId, FormationCustomSelectionChangeEvent, FormationCustomSelection> {\n\n\tconstructor() {\n\t\tsuper();\n\t}\n\n\tforEvent(): DomainEventType<FormationCustomSelectionChangeEvent> {\n\t\treturn FormationCustomSelectionChangeEvent;\n\t}\n\n}\n","import { StructureId } from '../../../../../structure-core/src/api/global/structure.id';\nimport { StructureCommand } from '../../../../../structure-core/src/core/structure.command';\nimport { FormationCustomSelectId } from '../../../api/custom/formation.custom-select.id';\n\nexport class FormationCustomSelectCommand extends StructureCommand {\n\n\tconstructor(structureId: StructureId,\n\t\t\t\tprivate readonly customSelectId: FormationCustomSelectId) {\n\t\tsuper(structureId, 'FormationCustomSelectCommand');\n\t}\n\n\tgetCustomSelectId(): FormationCustomSelectId {\n\t\treturn this.customSelectId;\n\t}\n\n}\n","import { CommandHandler, CommandType } from '@generic-ui/hermes';\n\nimport { FormationCustomSelectCommand } from './formation.custom-select.command';\nimport { StructureAggregate } from '../../../../../structure-core/src/domain/structure.aggregate';\n\n\nexport class FormationCustomSelectCommandHandler implements CommandHandler<StructureAggregate, FormationCustomSelectCommand> {\n\n\tforCommand(): CommandType<FormationCustomSelectCommand> {\n\t\treturn FormationCustomSelectCommand;\n\t}\n\n\thandle(aggregate: StructureAggregate, command: FormationCustomSelectCommand): void {\n\n\t\tconst customSelectId = command.getCustomSelectId();\n\n\t\taggregate.selectCustom(customSelectId);\n\t}\n\n}\n","import { StructureId } from '../../../../../structure-core/src/api/global/structure.id';\nimport { StructureCommand } from '../../../../../structure-core/src/core/structure.command';\nimport { FormationCustomSelectionConfig } from '../../../api/custom/formation.custom-selection.config';\n\nexport class FormationSetCustomSelectConfigCommand extends StructureCommand {\n\n\tconstructor(structureId: StructureId,\n\t\t\t\tprivate readonly config: FormationCustomSelectionConfig) {\n\t\tsuper(structureId, 'FormationSetCustomSelectConfigCommand');\n\t}\n\n\tgetConfig(): FormationCustomSelectionConfig {\n\t\treturn this.config;\n\t}\n\n}\n","import { CommandHandler, CommandType } from '@generic-ui/hermes';\n\nimport { FormationSetCustomSelectConfigCommand } from './formation.set-custom-select-config.command';\nimport { StructureAggregate } from '../../../../../structure-core/src/domain/structure.aggregate';\n\n\nexport class FormationSetCustomSelectConfigCommandHandler implements CommandHandler<StructureAggregate, FormationSetCustomSelectConfigCommand> {\n\n\tforCommand(): CommandType<FormationSetCustomSelectConfigCommand> {\n\t\treturn FormationSetCustomSelectConfigCommand;\n\t}\n\n\thandle(aggregate: StructureAggregate, command: FormationSetCustomSelectConfigCommand): void {\n\n\t\tconst config = command.getConfig();\n\n\t\taggregate.setSelectionCustomConfig(config);\n\t}\n\n}\n","import { AggregateDefinition, AggregateId, AggregateRoot, Command, Container, DomainEvent, DomainProviders } from '@generic-ui/hermes';\n\n\nimport { SetEnabledSelectionCommandHandler } from './set-enabled/set-enabled-selection.command-handler';\nimport { ToggleSelectedRowCommandHandler } from './toggle/toggle-selected-row.command-handler';\nimport { FormationManagerFactory } from '../domain/formation.manager-factory';\nimport { SelectedRowChangedEventHandler } from '../core-read/row-selected/selected-row-changed.event-handler';\nimport { SetSelectionModeCommandHandler } from './mode/set-selection-mode.command-handler';\nimport { SelectAllRowsCommandHandler } from './select-all/select-all-rows.command-handler';\nimport { UnselectAllRowsCommandHandler } from './unselect-all/unselect-all-rows.command-handler';\nimport { structureKey } from '../../../structure-core/src/api/global/structre.key';\nimport { SetSelectionTypeCommandHandler } from './type/set-selection-type.command-handler';\nimport { FormationTypeRepository } from '../core-read/type/formation.type.repository';\nimport { FormationModeRepository } from '../core-read/mode/formation.mode.repository';\nimport { FormationEnabledRepository } from '../core-read/enabled/formation.enabled.repository';\nimport { SetSelectedRowCommandHandler } from './set-selected/set-selected-row.command-handler';\nimport { SelectRowByIndexCommandHandler } from './select-by-index/select-row-by-index.command-handler';\nimport { SelectRowByIdCommandHandler } from './select-by-id/select-row-by-id.command-handler';\nimport { FormationSetMatcherCommandHandler } from './set-matcher/formation.set-matcher.command-handler';\nimport { FormationCustomRepository } from '../core-read/custom/formation.custom.repository';\nimport { FormationCustomSelectCommandHandler } from './custom/select/formation.custom-select.command-handler';\nimport { FormationSetCustomSelectConfigCommandHandler } from './custom/config/formation.set-custom-select-config.command-handler';\n\n\nexport class FormationDomainModule implements DomainProviders {\n\n\tdefineAggregate(): AggregateDefinition<any, any, any> | null {\n\t\treturn null;\n\t}\n\n\tregisterKey(): string {\n\t\treturn structureKey;\n\t}\n\n\tregisterProviders(container: Container): void {\n\t\tcontainer.provide(FormationManagerFactory);\n\t}\n\n\tregisterCommandHandlers<I extends AggregateId, A extends AggregateRoot<I>, C extends Command<I>>(): Array<any> {\n\t\treturn [\n\t\t\tSetEnabledSelectionCommandHandler,\n\t\t\tSetSelectionModeCommandHandler,\n\t\t\tSetSelectionTypeCommandHandler,\n\t\t\tSelectAllRowsCommandHandler,\n\t\t\tUnselectAllRowsCommandHandler,\n\t\t\tToggleSelectedRowCommandHandler,\n\t\t\tSetSelectedRowCommandHandler,\n\t\t\tSelectRowByIndexCommandHandler,\n\t\t\tSelectRowByIdCommandHandler,\n\t\t\tFormationSetMatcherCommandHandler,\n\t\t\tFormationCustomSelectCommandHandler,\n\t\t\tFormationSetCustomSelectConfigCommandHandler\n\t\t];\n\t}\n\n\tregisterDomainEventHandler<I extends AggregateId, E extends DomainEvent<I>>(): Array<any> {\n\t\treturn [\n\t\t\tSelectedRowChangedEventHandler,\n\t\t\tFormationTypeRepository,\n\t\t\tFormationModeRepository,\n\t\t\tFormationEnabledRepository,\n\t\t\tFormationCustomRepository\n\t\t];\n\t}\n\n\tregisterMultiDomainEventHandler<I extends AggregateId, E extends DomainEvent<I>>(): Array<any> {\n\t\treturn [];\n\t}\n\n}\n","import { hermesMap, HermesObservable, Optional } from '@generic-ui/hermes';\n\nimport { StructureId } from '../../../structure-core/src/api/global/structure.id';\nimport { SourceWarehouse } from '../../../source/src/api/source.warehouse';\nimport { FormationWarehouse } from '../api/formation.warehouse';\nimport { RowSelectedArchive } from './row-selected/row-selected.archive';\nimport { SelectedRow } from '../api/row-selected/selected-row';\nimport { RowSelectedReadModel } from '../api/row-selected/row-selected.read-model';\nimport { RowSelectionMode, RowSelectionType } from '../api/row-selected/row-selection';\nimport { FormationTypeRepository } from './type/formation.type.repository';\nimport { FormationModeRepository } from './mode/formation.mode.repository';\nimport { FormationEnabledRepository } from './enabled/formation.enabled.repository';\nimport { FormationCustomSelection } from '../api/custom/formation.custom-selection';\nimport { FormationCustomRepository } from './custom/formation.custom.repository';\n\n\nexport class FormationDomainWarehouse extends FormationWarehouse {\n\n\tconstructor(private readonly rowSelectedRepository: RowSelectedArchive,\n\t\t\t\tprivate readonly formationModeRepository: FormationModeRepository,\n\t\t\t\tprivate readonly formationTypeRepository: FormationTypeRepository,\n\t\t\t\tprivate readonly formationEnabledRepository: FormationEnabledRepository,\n\t\t\t\tprivate readonly formationCustomRepository: FormationCustomRepository,\n\t\t\t\tprivate readonly sourceWarehouse: SourceWarehouse) {\n\t\tsuper();\n\t}\n\n\tstatic readonly services = [\n\t\tRowSelectedArchive,\n\t\tFormationModeRepository,\n\t\tFormationTypeRepository,\n\t\tFormationEnabledRepository,\n\t\tFormationCustomRepository,\n\t\tSourceWarehouse\n\t] as const;\n\n\tfindSelectedRows(structureId: StructureId): Optional<ReadonlyArray<SelectedRow>> {\n\n\t\tconst items = this.sourceWarehouse.findPreparedItems(structureId),\n\t\t\tselectedItemIds = this.findSelectedItemIds(structureId).getValueOrNullOrThrowError();\n\n\t\tconst selectedItems = [],\n\t\t\tlength = items.length;\n\n\t\tfor (let i = 0; i < length; i += 1) {\n\n\t\t\tconst item = items[i];\n\n\t\t\tif (selectedItemIds.some((itemId: string) => itemId === item.getId().toString())) {\n\t\t\t\tselectedItems.push(new SelectedRow(item.getSourceItem(), i, item.getId()));\n\t\t\t}\n\t\t}\n\t\treturn Optional.of(selectedItems);\n\t}\n\n\tonRowSelectedReadModel(structureId: StructureId): HermesObservable<RowSelectedReadModel> {\n\t\treturn this.rowSelectedRepository\n\t\t\t\t   .on(structureId);\n\t}\n\n\tfindSelectedItemIds(structureId: StructureId): Optional<ReadonlyArray<string>> {\n\t\treturn this.rowSelectedRepository\n\t\t\t\t   .find(structureId)\n\t\t\t\t   .map((r: RowSelectedReadModel) => {\n\t\t\t\t\t   return r.getAll();\n\t\t\t\t   });\n\t}\n\n\tonSelectedRows(structureId: StructureId): HermesObservable<ReadonlyArray<string>> {\n\t\treturn this.rowSelectedRepository\n\t\t\t\t   .on(structureId)\n\t\t\t\t   .pipe(\n\t\t\t\t\t   hermesMap((rm: RowSelectedReadModel) => {\n\t\t\t\t\t\t   return rm.getAll();\n\t\t\t\t\t   })\n\t\t\t\t   );\n\t}\n\n\tonMode(structureId: StructureId): HermesObservable<RowSelectionMode> {\n\t\treturn this.formationModeRepository.on(structureId);\n\t}\n\n\tonType(structureId: StructureId): HermesObservable<RowSelectionType> {\n\t\treturn this.formationTypeRepository.on(structureId);\n\t}\n\n\tonSelectionEnabled(structureId: StructureId): HermesObservable<boolean> {\n\t\treturn this.formationEnabledRepository.on(structureId);\n\t}\n\n\tonCustomSelections(structureId: StructureId): HermesObservable<FormationCustomSelection> {\n\t\treturn this.formationCustomRepository.on(structureId);\n\t}\n\n}\n","import { StructureId } from '../../../structure-core/src/api/global/structure.id';\nimport { RowSelectToggleType } from '../domain/row-select-toggle-type';\nimport { FormationPublisher } from '../api/formation.publisher';\nimport { RowSelectionMode, RowSelectionType } from '../api/row-selected/row-selection';\nimport { CommandDispatcher } from '@generic-ui/hermes';\nimport { ToggleSelectedRowCommand } from './toggle/toggle-selected-row.command';\nimport { SetSelectionModeCommand } from './mode/set-selection-mode.command';\nimport { SetSelectionTypeCommand } from './type/set-selection-type.command';\nimport { SetEnabledSelectionCommand } from './set-enabled/set-enabled-selection.command';\nimport { SelectAllRowsCommand } from './select-all/select-all-rows.command';\nimport { UnselectAllRowsCommand } from './unselect-all/unselect-all-rows.command';\nimport { SelectRowByIndexCommand } from './select-by-index/select-row-by-index.command';\nimport { SetSelectedRowCommand } from './set-selected/set-selected-row.command';\nimport { SelectRowByIdCommand } from './select-by-id/select-row-by-id.command';\nimport { FormationSetMatcherCommand } from './set-matcher/formation.set-matcher.command';\nimport { FormationCustomSelectId } from '../api/custom/formation.custom-select.id';\nimport { FormationCustomSelectCommand } from './custom/select/formation.custom-select.command';\nimport { FormationCustomSelectionConfig } from '../api/custom/formation.custom-selection.config';\nimport { FormationSetCustomSelectConfigCommand } from './custom/config/formation.set-custom-select-config.command';\n\n\nexport class FormationDomainPublisher extends FormationPublisher {\n\n\tconstructor(private readonly commandDispatcher: CommandDispatcher) {\n\t\tsuper();\n\t}\n\n\tstatic readonly services = [CommandDispatcher] as const;\n\n\tsetSelection(enabled: boolean, structureId: StructureId): void {\n\t\tthis.commandDispatcher.dispatch(new SetEnabledSelectionCommand(structureId, enabled));\n\t}\n\n\tselectRows(selectedRow: Array<string>, structureId: StructureId): void {\n\t\tthis.commandDispatcher.dispatch(new SetSelectedRowCommand(structureId, selectedRow));\n\t}\n\n\tselectByIndex(indexes: Array<number>, structureId: StructureId): void {\n\t\tthis.commandDispatcher.dispatch(new SelectRowByIndexCommand(structureId, indexes));\n\t}\n\n\tselectByIds(ids: Array<string>, structureId: StructureId): void {\n\t\tthis.commandDispatcher.dispatch(new SelectRowByIdCommand(structureId, ids));\n\t}\n\n\ttoggleSelectedRow(selectedRow: string, type: RowSelectToggleType, structureId: StructureId): void {\n\t\tthis.commandDispatcher.dispatch(new ToggleSelectedRowCommand(structureId, selectedRow, type));\n\t}\n\n\tchangeMode(mode: RowSelectionMode, structureId: StructureId): void {\n\t\tthis.commandDispatcher.dispatch(new SetSelectionModeCommand(structureId, mode));\n\t}\n\n\tchangeType(type: RowSelectionType, structureId: StructureId): void {\n\t\tthis.commandDispatcher.dispatch(new SetSelectionTypeCommand(structureId, type));\n\t}\n\n\tsetMatcher(matcher: (item: any) => any, structureId: StructureId): void {\n\t\tthis.commandDispatcher.dispatch(new FormationSetMatcherCommand(structureId, matcher));\n\t}\n\n\tselectAll(structureId: StructureId): void {\n\t\tthis.commandDispatcher.dispatch(new SelectAllRowsCommand(structureId));\n\t}\n\n\tunselectAll(structureId: StructureId): void {\n\t\tthis.commandDispatcher.dispatch(new UnselectAllRowsCommand(structureId));\n\t}\n\n\tselectCustom(id: FormationCustomSelectId, structureId: StructureId): void {\n\t\tthis.commandDispatcher.dispatch(new FormationCustomSelectCommand(structureId, id));\n\t}\n\n\tsetCustomSelection(config: FormationCustomSelectionConfig, structureId: StructureId): void {\n\t\tthis.commandDispatcher.dispatch(new FormationSetCustomSelectConfigCommand(structureId, config));\n\t}\n\n}\n","import { ApiProviders, Container, DomainInitializer } from '@generic-ui/hermes';\n\nimport { FormationEventRepository } from './formation.event-repository';\nimport { FormationPublisher } from './formation.publisher';\nimport { FormationWarehouse } from './formation.warehouse';\nimport { RowSelectedArchive } from '../core-read/row-selected/row-selected.archive';\nimport { FormationDomainModule } from '../core/formation.domain-module';\nimport { FormationDomainWarehouse } from '../core-read/formation.domain-warehouse';\nimport { FormationDomainPublisher } from '../core/formation.domain-publisher';\n\n\nexport class FormationApiModule implements ApiProviders {\n\n\tregisterProviders(container: Container): void {\n\t\tcontainer.provide(RowSelectedArchive);\n\t\tcontainer.provide(FormationEventRepository);\n\t\tcontainer.provide(FormationPublisher, FormationDomainPublisher);\n\t\tcontainer.provide(FormationWarehouse, FormationDomainWarehouse);\n\t}\n}\n\nexport function initializeFormation(): void {\n\tnew DomainInitializer(\n\t\tnew FormationApiModule(),\n\t\tnew FormationDomainModule()\n\t)\n\t\t.init();\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, ViewEncapsulation } from '@angular/core';\n\nimport { StructureId } from '../../../../../core/structure/structure-core/src/api/global/structure.id';\nimport { FormationPublisher } from '../../../../../core/structure/formation/src/api/formation.publisher';\nimport { SmartComponent } from '../../../../common/component/src/smart-component';\nimport { FormationWarehouse } from '../../../../../core/structure/formation/src/api/formation.warehouse';\nimport { useReactiveContext } from '../../../../common/component';\nimport { StructureSelectCustomService } from './structure.select-custom.service';\n\n@Component({\n\tselector: 'gui-select-custom',\n\ttemplateUrl: './select-custom.component.html',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tencapsulation: ViewEncapsulation.None,\n\tproviders: [\n\t\tStructureSelectCustomService\n\t]\n})\nexport class SelectCustomComponent extends SmartComponent {\n\n\t// @ViewChild('selectCustomContainer', { static: true })\n\theaderDialogContainer: ElementRef;\n\n\toptions = ['a', 'b'];\n\n\tcontext = useReactiveContext();\n\n\tconstructor(private readonly changeDetectorRef: ChangeDetectorRef,\n\t\t\t\telementRef: ElementRef,\n\t\t\t\tprivate readonly structureSelectCustomService: StructureSelectCustomService,\n\t\t\t\tprivate readonly structureId: StructureId,\n\t\t\t\tprivate readonly formationCommandDispatcher: FormationPublisher,\n\t\t\t\tprivate readonly formationWarehouse: FormationWarehouse) {\n\t\tsuper(changeDetectorRef, elementRef);\n\t}\n\n\topenConfigDialog(): void {\n\t\tthis.structureSelectCustomService.open(this.headerDialogContainer);\n\t}\n\n\tprotected getSelectorName(): string {\n\t\treturn 'gui-select-custom';\n\t}\n\n}\n","<div #selectCustomContainer\n\t (click)=\"openConfigDialog()\"\n>\n\t<div gui-structure-menu-icon></div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { CoreContainer, FeatureModule } from '@generic-ui/hermes';\nimport { FabricCheckboxModule, FabricTooltipModule } from '@generic-ui/fabric';\n\nimport { initializeFormation } from '../../../../core/structure/formation/src/api/formation.api-module';\nimport { FormationEventRepository } from '../../../../core/structure/formation/src/api/formation.event-repository';\nimport { FormationPublisher } from '../../../../core/structure/formation/src/api/formation.publisher';\nimport { FormationWarehouse } from '../../../../core/structure/formation/src/api/formation.warehouse';\nimport { SelectAllComponent } from './select-all/select-all.component';\nimport { SelectCustomComponent } from './select-custom/select-custom.component';\nimport { SelectCustomModalComponent } from './select-custom/modal/select-custom-modal.component';\nimport { GuiTemplateModule } from '../../../gui-angular/template/gui.template.module';\n\ninitializeFormation();\n\nexport function provideFormationCommandInvoker() {\n\treturn CoreContainer.resolve(FormationPublisher);\n}\n\nexport function provideFormationWarehouse() {\n\treturn CoreContainer.resolve(FormationWarehouse);\n}\n\nexport function provideFormationEventRepository() {\n\treturn CoreContainer.resolve(FormationEventRepository);\n}\n\n\n@NgModule({\n\timports: [\n\t\tCommonModule,\n\t\tGuiTemplateModule,\n\t\tFabricCheckboxModule,\n\t\tFabricTooltipModule\n\t],\n\tdeclarations: [\n\t\tSelectAllComponent,\n\t\tSelectCustomComponent,\n\t\tSelectCustomModalComponent\n\t],\n\texports: [\n\t\tSelectAllComponent,\n\t\tSelectCustomComponent,\n\t\tSelectCustomModalComponent\n\t],\n\tproviders: [\n\t\t{ provide: FormationPublisher, useFactory: provideFormationCommandInvoker },\n\t\t{ provide: FormationWarehouse, useFactory: provideFormationWarehouse },\n\t\t{ provide: FormationEventRepository, useFactory: provideFormationEventRepository }\n\t]\n})\nexport class FormationFeatureModule extends FeatureModule {\n\n}\n","import { StructureId } from '../../api/global/structure.id';\nimport { StructureCommand } from '../structure.command';\n\nexport class CreateStructureCommand extends StructureCommand {\n\n\tconstructor(structureId: StructureId) {\n\t\tsuper(structureId, 'CreateStructureCommand');\n\t}\n\n}\n","import { CommandType, CreateAggregateCommandHandler } from '@generic-ui/hermes';\nimport { CreateStructureCommand } from './create-structure.command';\n\n\nexport class CreateStructureCommandHandler implements CreateAggregateCommandHandler<CreateStructureCommand> {\n\n\tforCommand(): CommandType<CreateStructureCommand> | any {\n\t\treturn CreateStructureCommand;\n\t}\n\n}\n","import { AggregateId, DomainEvent } from '@generic-ui/hermes';\n\nimport { ItemEntity } from '../../domain/item/item.entity';\nimport { StructureId } from '../../../../structure-core/src/api/global/structure.id';\nimport { StructurePreparedEntitiesSetEvent } from './structure.prepared-entities-set.event';\nimport { StructureAggregateEvent } from '../../../../structure-core/src/core/structure.aggregate-event';\n\n\nexport class StructurePreparedEntitiesSetAggregateEvent extends StructureAggregateEvent {\n\n\tconstructor(aggregateId: AggregateId,\n\t\t\t\tprivate readonly preparedItems: Array<ItemEntity>) {\n\t\tsuper(aggregateId, 'StructurePreparedEntitiesSetAggregateEvent');\n\t}\n\n\ttoDomainEvent(): DomainEvent<StructureId> {\n\t\treturn new StructurePreparedEntitiesSetEvent(this.getAggregateId(), this.preparedItems);\n\t}\n\n\tgetPreparedItems(): Array<ItemEntity> {\n\t\treturn this.preparedItems;\n\t}\n\n}\n","import { DomainEvent } from '@generic-ui/hermes';\n\nimport { StructureId } from '../../../../structure-core/src/api/global/structure.id';\nimport { FieldEntity } from '../../domain/field/field.entity';\nimport { FieldsInitedEvent } from './fields-inited.event';\nimport { FieldConfig } from '../../api/config/field.config';\nimport { StructureAggregateEvent } from '../../../../structure-core/src/core/structure.aggregate-event';\n\n\nexport class FieldsInitedAggregateEvent extends StructureAggregateEvent {\n\n\tconstructor(structureId: StructureId,\n\t\t\t\tprivate readonly fieldConfigs: Array<FieldConfig>, // TODO merge\n\t\t\t\tprivate readonly fields: Array<FieldEntity>) {\n\t\tsuper(structureId, 'FieldsInitedAggregateEvent');\n\t}\n\n\ttoDomainEvent(): DomainEvent<StructureId> {\n\n\t\treturn new FieldsInitedEvent(\n\t\t\tthis.getAggregateId(),\n\t\t\tthis.fieldConfigs,\n\t\t\tthis.fields\n\t\t);\n\t}\n\n\tgetFieldConfigs(): Array<FieldConfig> {\n\t\treturn this.fieldConfigs;\n\t}\n\n\tgetFields(): Array<FieldEntity> {\n\t\treturn this.fields;\n\t}\n}\n","import { DomainEvent } from '@generic-ui/hermes';\n\nimport { StructureId } from '../../api/global/structure.id';\nimport { StructureCreatedEvent } from './structure-created.event';\nimport { StructureAggregateEvent } from '../structure.aggregate-event';\n\n\nexport class StructureCreatedAggregateEvent extends StructureAggregateEvent {\n\n\tconstructor(aggregateId: StructureId) {\n\t\tsuper(aggregateId, 'StructureCreatedAggregateEvent');\n\t}\n\n\ttoDomainEvent(): DomainEvent<StructureId> {\n\t\treturn new StructureCreatedEvent(this.getAggregateId());\n\t}\n}\n","import { DomainEvent } from '@generic-ui/hermes';\n\nimport { StructureId } from '../../../../../structure-core/src/api/global/structure.id';\nimport { FilterTypeModel } from '../../../api/type/filter-type.model';\nimport { FilterTypesInitedEvent } from './filter-types-inited.event';\nimport { StructureAggregateEvent } from '../../../../../structure-core/src/core/structure.aggregate-event';\n\n\nexport class FilterTypesInitedAggregateEvent extends StructureAggregateEvent {\n\n\tconstructor(structureId: StructureId,\n\t\t\t\tprivate readonly filterTypes: Map<string, Array<FilterTypeModel>>) {\n\t\tsuper(structureId, 'FilterTypesInitedAggregateEvent');\n\t}\n\n\ttoDomainEvent(): DomainEvent<StructureId> {\n\n\t\treturn new FilterTypesInitedEvent(\n\t\t\tthis.getAggregateId(),\n\t\t\tthis.filterTypes\n\t\t);\n\t}\n\n\tgetFilterTypes(): Map<string, Array<FilterTypeModel>> {\n\t\treturn this.filterTypes;\n\t}\n}\n","import { DomainEvent } from '@generic-ui/hermes';\n\nimport { StructureId } from '../../../../structure-core/src/api/global/structure.id';\nimport { ActiveFiltersSetEvent } from '../active-filters-set.event';\nimport { StructureAggregateEvent } from '../../../../structure-core/src/core/structure.aggregate-event';\n\n\nexport class AllFiltersRemovedAggregateEvent extends StructureAggregateEvent {\n\n\tconstructor(aggregateId: StructureId) {\n\t\tsuper(aggregateId, 'FilterAddedEvent');\n\t}\n\n\ttoDomainEvent(): DomainEvent<StructureId> {\n\t\treturn new ActiveFiltersSetEvent(\n\t\t\tthis.getAggregateId(),\n\t\t\t[]\n\t\t);\n\t}\n\n}\n","import { DomainEvent } from '@generic-ui/hermes';\n\nimport { StructureId } from '../../../../structure-core/src/api/global/structure.id';\nimport { FilterAddedEvent } from './filter-added.event';\nimport { ActiveFilterModel } from '../../api/active/active-filter.model';\nimport { ActiveFiltersSetEvent } from '../active-filters-set.event';\nimport { StructureAggregateEvent } from '../../../../structure-core/src/core/structure.aggregate-event';\n\n\nexport class FilterAddedAggregateEvent extends StructureAggregateEvent {\n\n\tconstructor(aggregateId: StructureId,\n\t\t\t\tprivate readonly activeFilters: ReadonlyArray<ActiveFilterModel>) {\n\t\tsuper(aggregateId, 'FilterAddedEvent');\n\t}\n\n\ttoDomainEvent(): DomainEvent<StructureId> {\n\t\treturn new ActiveFiltersSetEvent(\n\t\t\tthis.getAggregateId(),\n\t\t\tthis.activeFilters\n\t\t);\n\t}\n\n}\n","import { DomainEvent } from '@generic-ui/hermes';\n\nimport { StructureId } from '../../../../structure-core/src/api/global/structure.id';\nimport { ActiveFiltersSetEvent } from '../active-filters-set.event';\nimport { ActiveFilterModel } from '../../api/active/active-filter.model';\nimport { StructureAggregateEvent } from '../../../../structure-core/src/core/structure.aggregate-event';\n\n\nexport class FilterRemovedAggregateEvent extends StructureAggregateEvent {\n\n\tconstructor(aggregateId: StructureId,\n\t\t\t\tprivate readonly activeFilters: ReadonlyArray<ActiveFilterModel>) {\n\t\tsuper(aggregateId, 'FilterRemovedAggregateEvent');\n\t}\n\n\ttoDomainEvent(): DomainEvent<StructureId> {\n\t\treturn new ActiveFiltersSetEvent(\n\t\t\tthis.getAggregateId(),\n\t\t\tthis.activeFilters\n\t\t);\n\t}\n\n}\n","import { DomainEvent } from '@generic-ui/hermes';\n\nimport { StructureId } from '../../../../../structure-core/src/api/global/structure.id';\nimport { UniqueFilterCalculatedEvent } from './unique-filter-calculated.event';\nimport { UniqueValue } from '../../../domain/unique/unique-value';\nimport { StructureAggregateEvent } from '../../../../../structure-core/src/core/structure.aggregate-event';\n\n\nexport class UniqueFilterCalculatedAggregateEvent extends StructureAggregateEvent {\n\n\tconstructor(aggregateId: StructureId,\n\t\t\t\tprivate readonly map: Map<string, Array<UniqueValue>>) {\n\t\tsuper(aggregateId, 'UniqueFilterCalculatedAggregateEvent');\n\t}\n\n\ttoDomainEvent(): DomainEvent<StructureId> {\n\t\treturn new UniqueFilterCalculatedEvent(\n\t\t\tthis.getAggregateId(),\n\t\t\tthis.map\n\t\t);\n\t}\n\n}\n","import { DomainEvent } from '@generic-ui/hermes';\n\nimport { StructureId } from '../../../../../structure-core/src/api/global/structure.id';\nimport { UniqueFilterSelectedEvent } from './unique-filter-selected.event';\nimport { StructureAggregateEvent } from '../../../../../structure-core/src/core/structure.aggregate-event';\n\n\nexport class UniqueFilterSelectedAggregateEvent extends StructureAggregateEvent {\n\n\tconstructor(aggregateId: StructureId) {\n\t\tsuper(aggregateId, 'UniqueFilterSelectedAggregateEvent');\n\t}\n\n\ttoDomainEvent(): DomainEvent<StructureId> {\n\t\treturn new UniqueFilterSelectedEvent(\n\t\t\tthis.getAggregateId()\n\t\t);\n\t}\n\n}\n","import { DomainEvent } from '@generic-ui/hermes';\n\nimport { StructureId } from '../../../../../structure-core/src/api/global/structure.id';\nimport { UniqueFilterUnselectedEvent } from './unique-filter-unselected.event';\nimport { StructureAggregateEvent } from '../../../../../structure-core/src/core/structure.aggregate-event';\n\n\nexport class UniqueFilterUnselectedAggregateEvent extends StructureAggregateEvent {\n\n\tconstructor(aggregateId: StructureId) {\n\t\tsuper(aggregateId, 'UniqueFilterUnselectedAggregateEvent');\n\t}\n\n\ttoDomainEvent(): DomainEvent<StructureId> {\n\t\treturn new UniqueFilterUnselectedEvent(\n\t\t\tthis.getAggregateId()\n\t\t);\n\t}\n\n}\n","import { DomainEvent } from '@generic-ui/hermes';\n\nimport { StructureId } from '../../../../../structure-core/src/api/global/structure.id';\nimport { AllUniqueFilterUnselectedEvent } from './all-unique-filter-unselected.event';\nimport { StructureAggregateEvent } from '../../../../../structure-core/src/core/structure.aggregate-event';\n\n\nexport class AllUniqueFilterUnselectedAggregateEvent extends StructureAggregateEvent {\n\n\tconstructor(aggregateId: StructureId) {\n\t\tsuper(aggregateId, 'AllUniqueFilterUnselectedAggregateEvent');\n\t}\n\n\ttoDomainEvent(): DomainEvent<StructureId> {\n\t\treturn new AllUniqueFilterUnselectedEvent(\n\t\t\tthis.getAggregateId()\n\t\t);\n\t}\n\n}\n","import { DomainEvent } from '@generic-ui/hermes';\n\nimport { StructureId } from '../../../../../structure-core/src/api/global/structure.id';\nimport { AllUniqueFilterSelectedEvent } from './all-unique-filter-selected.event';\nimport { StructureAggregateEvent } from '../../../../../structure-core/src/core/structure.aggregate-event';\n\n\nexport class AllUniqueFilterSelectedAggregateEvent extends StructureAggregateEvent {\n\n\tconstructor(aggregateId: StructureId) {\n\t\tsuper(aggregateId, 'AllUniqueFilterSelectedAggregateEvent');\n\t}\n\n\ttoDomainEvent(): DomainEvent<StructureId> {\n\t\treturn new AllUniqueFilterSelectedEvent(\n\t\t\tthis.getAggregateId()\n\t\t);\n\t}\n\n}\n","import { DomainEvent } from '@generic-ui/hermes';\n\nimport { StructureId } from '../../../structure-core/src/api/global/structure.id';\nimport { SelectedRowChangedEvent } from './selected-row-changed.event';\nimport { StructureAggregateEvent } from '../../../structure-core/src/core/structure.aggregate-event';\n\nexport class SelectedRowChangedAggregateEvent extends StructureAggregateEvent {\n\n\tconstructor(structureId: StructureId,\n\t\t\t\tprivate readonly selectedRows: Array<string>,\n\t\t\t\tprivate readonly allSelected: boolean,\n\t\t\t\tprivate readonly allUnselected: boolean) {\n\t\tsuper(structureId, 'SelectedRowChangedAggregateEvent');\n\t}\n\n\ttoDomainEvent(): DomainEvent<StructureId> {\n\t\treturn new SelectedRowChangedEvent(this.getAggregateId(), this.selectedRows, this.allSelected, this.allUnselected);\n\t}\n}\n","import { AggregateEvent, AggregateEventType, AggregateRoot } from '@generic-ui/hermes';\n\nimport { PagingManager } from '../../../paging/src/domain/paging.manager';\nimport { SourceManager } from '../../../source/src/domain/source.manager';\nimport { VerticalFormation } from '../../../vertical-formation/src/domain/vertical-formation';\nimport { SummariesManager } from '../../../summaries/src/domain/summaries.manager';\nimport { SorterManager } from '../../../sorting/src/domain/sorter.manager';\nimport { FilterManager } from '../../../filter/src/domain/filter.manager';\nimport { FieldCollection } from '../../../field/src/domain/field-collection';\nimport { FormationManager } from '../../../formation/src/domain/formation.manager';\nimport { StructureId } from '../api/global/structure.id';\nimport { StructureEditSourceItemParams } from '../../../source/src/core/origin/edit/structure.edit-source-item.params';\nimport { PagingConfig } from '../../../paging/src/api/config/paging-config';\nimport { ItemEntity } from '../../../source/src/domain/item/item.entity';\nimport { SortingConfig } from '../../../sorting/src/api/config/sorting-config';\nimport { FieldId } from '../../../field/src/domain/field/field.id';\nimport { Sorter } from '../../../sorting/src/domain/sorter';\nimport { FilterConfig } from '../../../filter/src/api/config/filter.config';\nimport { QuickFiltersConfig } from '../../../filter/src/api/quick-filter/quick-filters.config';\nimport { SearchConfig } from '../../../search/src/api/config/search-config';\nimport { SearchManager } from '../../../search/src/domain/search.manager';\nimport { StructurePreparedEntitiesSetAggregateEvent } from '../../../source/src/core/prepared/structure.prepared-entities-set.aggregate-event';\nimport { SortOrder } from '../../../../composition/src/domain/column/sort/sort-order';\nimport { FieldsInitedAggregateEvent } from '../../../field/src/core/init/fields-inited.aggregate-event';\nimport { SchemaTheme } from '../../../../schema/src/api/theme/schema-theme';\nimport { SchemaAggregate } from '../../../../schema/src/domain/schema.aggregate';\nimport { StructureCreatedAggregateEvent } from '../core/create/structure-created.aggregate-event';\nimport { FieldConfig } from '../../../field/src/api/config/field.config';\nimport { FilterTypesInitedAggregateEvent } from '../../../filter/src/core/type/init/filter-types-inited.aggregate-event';\nimport { AllFiltersRemovedAggregateEvent } from '../../../filter/src/core/remove-all/all-filters-removed.aggregate-event';\nimport { FilterTypeId } from '../../../filter/src/domain/type/filter-type.id';\nimport { FilterAddedAggregateEvent } from '../../../filter/src/core/add/filter-added.aggregate-event';\nimport { FilterId } from '../../../filter/src/api/id/filter.id';\nimport { FilterRemovedAggregateEvent } from '../../../filter/src/core/remove/filter-removed.aggregate-event';\nimport { UniqueFilterManager } from '../../../filter/src/domain/unique/unique-filter-manager';\nimport { UniqueFilterCalculatedAggregateEvent } from '../../../filter/src/core/unique/calculate/unique-filter-calculated.aggregate-event';\nimport { UniqueValueId } from '../../../filter/src/domain/unique/unique-value-id';\nimport { UniqueFilterSelectedAggregateEvent } from '../../../filter/src/core/unique/select/unique-filter-selected.aggregate-event';\nimport { UniqueFilterUnselectedAggregateEvent } from '../../../filter/src/core/unique/unselect/unique-filter-unselected.aggregate-event';\nimport { AllUniqueFilterUnselectedAggregateEvent } from '../../../filter/src/core/unique/unselect-all/all-unique-filter-unselected.aggregate-event';\nimport { AllUniqueFilterSelectedAggregateEvent } from '../../../filter/src/core/unique/select-all/all-unique-filter-selected.aggregate-event';\nimport { SelectedRowChangedAggregateEvent } from '../../../formation/src/core/selected-row-changed.aggregate-event';\nimport { RowSelectToggleType } from '../../../formation/src/domain/row-select-toggle-type';\nimport { SelectionEnabledSetAggregateEvent } from '../../../formation/src/core/set-enabled/selection-enabled-set.aggregate-event';\nimport { RowSelectionMode, RowSelectionType } from '../../../formation/src/api/row-selected/row-selection';\nimport { ItemEntityId } from '../../../source/src/domain/item/item.entity-id';\nimport { structureKey } from '../api/global/structre.key';\nimport { FormationCustomSelectId } from '../../../formation/src/api/custom/formation.custom-select.id';\nimport { FormationCustomSelectionConfig } from '../../../formation/src/api/custom/formation.custom-selection.config';\n\n\nexport class StructureAggregate extends AggregateRoot<StructureId> {\n\n\tprivate pagingManager: PagingManager;\n\n\tprivate readonly sourceManager: SourceManager;\n\n\tprivate sorterManager: SorterManager;\n\n\tprivate filterManager: FilterManager;\n\n\tprivate searchManager: SearchManager;\n\n\tprivate readonly verticalFormation: VerticalFormation;\n\n\tprivate fieldCollection: FieldCollection;\n\n\tprivate summariesManager: SummariesManager;\n\n\tprivate readonly uniqueFilterManager: UniqueFilterManager;\n\n\tconstructor(structureId: StructureId,\n\t\t\t\tpagingAggregate: PagingManager,\n\t\t\t\tsourceManager: SourceManager,\n\t\t\t\tverticalFormation: VerticalFormation,\n\t\t\t\tsummariesManager: SummariesManager,\n\t\t\t\tsorterCollection: SorterManager,\n\t\t\t\tfilterManager: FilterManager,\n\t\t\t\tuniqueFilterManager: UniqueFilterManager,\n\t\t\t\tsearchManager: SearchManager,\n\t\t\t\tfieldCollection: FieldCollection) {\n\t\tsuper(structureId, structureKey);\n\t\tthis.pagingManager = pagingAggregate;\n\t\tthis.sourceManager = sourceManager;\n\t\tthis.verticalFormation = verticalFormation;\n\t\tthis.summariesManager = summariesManager;\n\t\tthis.sorterManager = sorterCollection;\n\t\tthis.filterManager = filterManager;\n\t\tthis.uniqueFilterManager = uniqueFilterManager;\n\t\tthis.searchManager = searchManager;\n\t\tthis.fieldCollection = fieldCollection;\n\n\t\tthis.addEvent(\n\t\t\tthis.sourceManager.events\n\t\t);\n\t\tthis.sourceManager.events = [];\n\t}\n\n\tcreateEvent(): AggregateEventType<AggregateEvent<StructureId>> {\n\t\treturn StructureCreatedAggregateEvent;\n\t}\n\n\toverride clearEvents(): void {\n\t\tsuper.clearEvents();\n\t\tthis.pagingManager.clearEvents();\n\t}\n\n\tinit(): void {\n\t\tthis.initTheme();\n\t}\n\n\tsetVerticalFormationEnabled(enabled: boolean): void {\n\t\tthis.verticalFormation.setEnabled(enabled);\n\t\tthis.calculateSource();\n\t}\n\n\tgetVerticalFormation(): VerticalFormation {\n\t\treturn this.verticalFormation;\n\t}\n\n\tsetSummariesEnabled(enabled: boolean): ReadonlyArray<AggregateEvent<StructureId>> {\n\n\t\tthis.summariesManager.setEnabled(enabled);\n\n\t\tthis.calculateSource();\n\n\t\treturn this.getEvents();\n\t}\n\n\tsetOrigin(items: Array<any>): ReadonlyArray<AggregateEvent<StructureId>> {\n\n\t\tthis.addEvent(\n\t\t\tthis.sourceManager.setOrigin(items, this.getId())\n\t\t);\n\n\t\t// if (false) {\n\t\t\tthis.calculateUniqueValues();\n\t\t// }\n\n\t\tthis.calculateSource();\n\n\t\treturn this.getEvents();\n\t}\n\n\tdeleteItem(payload: number | ItemEntityId | Array<number> | Array<ItemEntityId>): void {\n\t\tthis.addEvent(\n\t\t\tthis.sourceManager.deleteOriginItem(payload, this.getId())\n\t\t);\n\t\tthis.generateSelectedRowChangedEvent();\n\t\tthis.calculateSource();\n\t}\n\n\teditItem(editParams: StructureEditSourceItemParams): ReadonlyArray<AggregateEvent<StructureId>> {\n\n\t\tconst itemId = editParams.getItemId(),\n\t\t\tfieldId = editParams.getColumnFieldId(),\n\t\t\tfield = this.fieldCollection.getField(fieldId as any), // as FieldId\n\t\t\tvalue = editParams.getValue();\n\n\t\tconst editItemEvents = this.sourceManager.editOriginItem(itemId, value, field, this.getId());\n\n\t\teditItemEvents.forEach((e) => this.addEvent(e));\n\n\t\t// TODO\n\t\tthis.calculateUniqueValues();\n\n\t\tthis.calculateSource();\n\n\t\treturn this.getEvents();\n\t}\n\n\tsetHeight(height: number): void {\n\n\t\tthis.verticalFormation.setViewportHeight(height);\n\n\t\tthis.calculateSourceBasedOnVirtualScroll();\n\t}\n\n\tsetTheme(theme: SchemaTheme): void {\n\n\t\t// #1707 Move to SchemeAggregate\n\t\tif (theme === SchemaTheme.MATERIAL) {\n\t\t\tthis.getVerticalFormation().setRowHeight(52);\n\t\t}\n\n\t\tif (theme === SchemaTheme.GENERIC) {\n\t\t\tthis.getVerticalFormation().setRowHeight(42);\n\t\t}\n\n\t\tif (theme === SchemaTheme.FABRIC) {\n\t\t\tthis.getVerticalFormation().setRowHeight(36);\n\t\t}\n\n\t\tif (theme === SchemaTheme.LIGHT) {\n\t\t\tthis.getVerticalFormation().setRowHeight(56);\n\t\t}\n\n\t\tif (theme === SchemaTheme.DARK) {\n\t\t\tthis.getVerticalFormation().setRowHeight(38);\n\t\t}\n\t}\n\n\tsetScrollPosition(position: number): void {\n\t\tthis.verticalFormation.setScrollPosition(position);\n\t\tthis.calculateSourceBasedOnVirtualScroll();\n\t}\n\n\tscrollToIndex(index: number): void {\n\t\tthis.addEvent(\n\t\t\tthis.verticalFormation.scrollToIndex(index)\n\t\t);\n\t}\n\n\tsetSelection(enabled: boolean): void {\n\n\t\tthis.sourceManager.getFormation().setSelection(enabled);\n\n\t\tthis.addEvent(\n\t\t\tnew SelectionEnabledSetAggregateEvent(this.getId(), enabled)\n\t\t);\n\t}\n\n\tsetSelectionMode(mode: RowSelectionMode): void {\n\t\tthis.addEvent(\n\t\t\tthis.sourceManager.getFormation().setMode(mode)\n\t\t);\n\t}\n\n\tsetSelectionType(type: RowSelectionType): void {\n\t\tthis.addEvent(\n\t\t\tthis.sourceManager.getFormation().setType(type)\n\t\t);\n\t}\n\n\tsetFormationMatcher(matcher: (item: any) => any): void {\n\t\tthis.getFormation().setMatcher(matcher);\n\t\tthis.sourceManager.reSelect();\n\t\tthis.generateSelectedRowChangedEvent();\n\t}\n\n\tselectByIndex(indexes: Array<number>): void {\n\t\tthis.sourceManager.selectByIndex(indexes);\n\t\tthis.generateSelectedRowChangedEvent();\n\t}\n\n\tselectByIds(ids: Array<string>): void {\n\t\tthis.sourceManager.selectByIds(ids);\n\t\tthis.generateSelectedRowChangedEvent();\n\t}\n\n\t/**\n\t *\n\t * Doesnt' work\n\t */\n\tsetSelectedRows(selectedRows: Array<string>): void {\n\t\tthis.sourceManager.setSelectedRows(selectedRows);\n\t\tthis.generateSelectedRowChangedEvent();\n\t}\n\n\tsetSelectionCustomConfig(config: FormationCustomSelectionConfig): void {\n\t\tthis.addEvent(\n\t\t\tthis.sourceManager.setCustomConfig(config)\n\t\t);\n\t}\n\n\ttoggleRow(selectedRow: string, type: RowSelectToggleType): void {\n\n\t\tthis.sourceManager.toggleRow(selectedRow, type);\n\n\t\tthis.generateSelectedRowChangedEvent();\n\t}\n\n\tselectCustom(id: FormationCustomSelectId): void {\n\t\tthis.sourceManager.selectCustom(id);\n\t\tthis.generateSelectedRowChangedEvent();\n\t}\n\n\tselectAll(): void {\n\t\tthis.sourceManager.selectAll();\n\t\tthis.generateSelectedRowChangedEvent();\n\t}\n\n\tunselectAll(): void {\n\t\tthis.sourceManager.unselectAll();\n\t\tthis.generateSelectedRowChangedEvent();\n\t}\n\n\tgetFormation(): FormationManager {\n\t\treturn this.sourceManager.getFormation();\n\t}\n\n\tgetPaging(): PagingManager {\n\t\treturn this.pagingManager;\n\t}\n\n\tchangePaging(config: PagingConfig) {\n\t\tthis.pagingManager.change(config);\n\t\tthis.calculateSource();\n\t}\n\n\tsetPaging(paging: PagingManager): void {\n\t\tthis.pagingManager = paging;\n\t\tthis.calculateSource();\n\t}\n\n\tnextPage(): void {\n\n\t\tthis.pagingManager.nextPage();\n\n\t\tthis.calculateSource();\n\t}\n\n\tprevPage(): void {\n\t\tthis.pagingManager.prevPage();\n\t\tthis.calculateSource();\n\t}\n\n\tchangePageSize(pageSize: number): ReadonlyArray<AggregateEvent<StructureId>> {\n\n\t\tconst pagingEvents = this.pagingManager.changePageSize(pageSize);\n\n\t\t// TODO\n\t\tpagingEvents.forEach((event) => {\n\t\t\tthis.addEvent(event);\n\t\t});\n\n\t\tthis.calculateSource();\n\n\t\treturn this.getEvents();\n\t}\n\n\tgetEntities(): Array<ItemEntity> {\n\t\treturn this.sourceManager.getSlicedEntities();\n\t}\n\n\tgetSource(): SourceManager {\n\t\treturn this.sourceManager;\n\t}\n\n\tcreateFields(fieldConfigs: Array<FieldConfig>): ReadonlyArray<AggregateEvent<StructureId>> {\n\n\t\tthis.fieldCollection.initFields(fieldConfigs);\n\n\t\tconst fields = this.fieldCollection.getAllFields();\n\n\t\tthis.addEvent(\n\t\t\tnew FieldsInitedAggregateEvent(this.getId(), fieldConfigs, fields)\n\t\t);\n\n\t\tthis.filterManager.assignFilterTypes(fields);\n\n\t\tthis.addEvent(\n\t\t\tnew FilterTypesInitedAggregateEvent(this.getId(), this.filterManager.getFilterTypes())\n\t\t);\n\n\t\treturn this.getEvents();\n\t}\n\n\tsetSortingConfig(config: SortingConfig): void {\n\t\tthis.sorterManager.setConfig(config);\n\t}\n\n\ttoggleSort(fieldId: FieldId): Array<Sorter> {\n\n\t\tconst field = this.fieldCollection.getField(fieldId);\n\n\t\tthis.sorterManager.toggle(field);\n\n\t\tthis.calculateSource();\n\n\t\treturn this.sorterManager.getAll();\n\t}\n\n\tsetSortOrder(fieldId: FieldId, sortOrder: SortOrder): Array<Sorter> {\n\n\t\tconst field = this.fieldCollection.getField(fieldId);\n\n\t\tthis.sorterManager.setSortOrder(field, sortOrder);\n\n\t\tthis.calculateSource();\n\n\t\treturn this.sorterManager.getAll();\n\t}\n\n\tsetFilterConfig(config: FilterConfig): void {\n\t\tthis.filterManager.getSettings().setFilterConfig(config);\n\t}\n\n\tsetQuickFiltersConfig(config: QuickFiltersConfig): void {\n\t\tthis.filterManager.getSettings().setQuickFiltersConfig(config);\n\t}\n\n\ttoggleFilter(fieldId: FieldId, externalFilterId: string, filterValue: string): Array<AggregateEvent<StructureId>> {\n\n\t\tconst field = this.fieldCollection.getField(fieldId);\n\n\t\t// Field not found\n\t\t// TODO throw aggregate event\n\t\tif (field === undefined) {\n\t\t\treturn [];\n\t\t}\n\n\t\t// this.filterManager.addFilter(field, externalFilterId, filterValue);\n\n\t\tthis.calculateSource();\n\n\t\treturn [];\n\t}\n\n\taddFilter(fieldId: FieldId, filterTypeId: FilterTypeId, value: any): void {\n\n\t\tthis.filterManager.add(fieldId, filterTypeId, value);\n\n\t\tconst fields = this.fieldCollection.getFieldsAsMap();\n\n\t\tconst activeFilters = this.filterManager.getAllActiveFilters(fields);\n\n\t\tthis.addEvent(\n\t\t\tnew FilterAddedAggregateEvent(\n\t\t\t\tthis.getId(),\n\t\t\t\tactiveFilters\n\t\t\t)\n\t\t);\n\n\t\tthis.calculateSource();\n\t}\n\n\tremoveAllFilters(): void {\n\t\tthis.filterManager.removeAll();\n\n\t\tthis.addEvent(\n\t\t\tnew AllFiltersRemovedAggregateEvent(this.getId())\n\t\t);\n\n\t\tthis.calculateSource();\n\t}\n\n\tremoveFilter(filterId: FilterId): void {\n\t\tthis.filterManager.remove(filterId);\n\n\t\tconst fields = this.fieldCollection.getFieldsAsMap();\n\t\tconst activeFilters = this.filterManager.getAllActiveFilters(fields);\n\n\t\tthis.addEvent(\n\t\t\tnew FilterRemovedAggregateEvent(this.getId(), activeFilters)\n\t\t);\n\n\t\tthis.calculateSource();\n\t}\n\n\tsetSearchingConfig(config: SearchConfig): void {\n\t\tthis.filterManager.getSettings().setSearchingConfig(config);\n\t}\n\n\taddSearchPhrase(phrase: string): Array<AggregateEvent<StructureId>> {\n\n\t\tconst fields = this.fieldCollection.getAllFields();\n\n\t\tthis.searchManager.addSearchPhrase(fields, phrase);\n\n\t\tthis.calculateSource();\n\n\t\treturn [];\n\t}\n\n\tremoveSearchPhrase(): Array<AggregateEvent<StructureId>> {\n\n\t\tthis.searchManager.removeSearchFilters();\n\n\t\tthis.calculateSource();\n\n\t\treturn [];\n\t}\n\n\tselectAllUniqueFilter(fieldId: FieldId): void {\n\n\t\tthis.uniqueFilterManager.selectAll(fieldId);\n\n\t\tthis.addEvent(\n\t\t\tnew AllUniqueFilterSelectedAggregateEvent(\n\t\t\t\tthis.getId()\n\t\t\t)\n\t\t);\n\n\t\tthis.generateCalculateUniqueValuesAggregateEvent();\n\n\t\tthis.calculateSource();\n\t}\n\n\tselectUniqueFilter(fieldId: FieldId, uniqueValueId: UniqueValueId): void {\n\n\t\tthis.uniqueFilterManager.select(fieldId, uniqueValueId);\n\n\t\tthis.addEvent(\n\t\t\tnew UniqueFilterSelectedAggregateEvent(\n\t\t\t\tthis.getId()\n\t\t\t)\n\t\t);\n\n\t\tthis.generateCalculateUniqueValuesAggregateEvent();\n\n\t\tthis.calculateSource();\n\t}\n\n\tunselectAllUniqueFilter(fieldId: FieldId): void {\n\n\t\tthis.uniqueFilterManager.unselectAll(fieldId);\n\n\t\tthis.addEvent(\n\t\t\tnew AllUniqueFilterUnselectedAggregateEvent(\n\t\t\t\tthis.getId()\n\t\t\t)\n\t\t);\n\n\t\tthis.generateCalculateUniqueValuesAggregateEvent();\n\n\t\tthis.calculateSource();\n\t}\n\n\tunselectUniqueFilter(fieldId: FieldId, uniqueValueId: UniqueValueId): void {\n\n\t\tthis.uniqueFilterManager.unselect(fieldId, uniqueValueId);\n\n\t\tthis.addEvent(\n\t\t\tnew UniqueFilterUnselectedAggregateEvent(\n\t\t\t\tthis.getId()\n\t\t\t)\n\t\t);\n\n\t\tthis.generateCalculateUniqueValuesAggregateEvent();\n\n\t\tthis.calculateSource();\n\t}\n\n\tprivate calculateSource(): void {\n\n\t\tif (!this.sourceManager.getOrigin() || !this.pagingManager) {\n\t\t\treturn;\n\t\t}\n\n\t\t// TODO Refactor\n\t\tthis.sourceManager.setEntities(this.sourceManager.getOrigin());\n\n\t\t// filtering\n\t\tthis.sourceManager.setEntities(\n\t\t\tthis.filterManager.filter(this.sourceManager.getEntities(), this.fieldCollection.getFieldsAsMap())\n\t\t);\n\n\t\t// search\n\t\tconst searchedEntities = this.searchManager.search(this.sourceManager.getEntities());\n\t\tthis.sourceManager.setEntities(searchedEntities);\n\n\t\t// unique filtering\n\t\tif (true) {\n\t\t\t// this.sourceManager.setEntities(\n\t\t\t// \tthis.uniqueFilterManager.filterAll(this.sourceManager.getEntities(), this.fieldCollection.getAllFields())\n\t\t\t// );\n\t\t}\n\n\t\t// sorting\n\t\tconst ents = this.sorterManager.sort(this.sourceManager.getEntities());\n\t\tthis.sourceManager.setEntities(ents);\n\n\t\t// calculate filteredEntities\n\t\tthis.sourceManager.setPreparedEntities();\n\n\t\tthis.pagingManager.setSourceSize(this.sourceManager.getPreparedEntities().length);\n\n\t\tthis.addEvent(new StructurePreparedEntitiesSetAggregateEvent(this.getId(), ents));\n\n\t\t// summaries\n\t\tconst summariesEvents = this.summariesManager.calculate(\n\t\t\tthis.fieldCollection.getAllFields(),\n\t\t\tthis.sourceManager.getEntities()\n\t\t);\n\n\t\tsummariesEvents.forEach((ae: AggregateEvent<StructureId>) => {\n\t\t\tthis.addEvent(ae);\n\t\t});\n\n\t\t// paging\n\t\tthis.sourceManager.setEntities(this.pagingManager.sample(this.sourceManager.getEntities()));\n\n\t\tthis.verticalFormation.setSourceSize(this.sourceManager.getEntities().length);\n\n\t\tthis.calculateSourceBasedOnVirtualScroll();\n\t}\n\n\tprivate calculateSourceBasedOnVirtualScroll(): void {\n\n\t\tif (this.verticalFormation.isEnabled()) {\n\n\t\t\tconst range = this.verticalFormation.getRange();\n\n\t\t\tthis.sourceManager.setSlicedEntities(\n\t\t\t\tthis.sourceManager.getEntities().slice(range.getStart(), range.getEnd())\n\t\t\t);\n\t\t} else {\n\t\t\tthis.sourceManager.setSlicedEntities(\n\t\t\t\tthis.sourceManager.getEntities()\n\t\t\t);\n\t\t}\n\t}\n\n\tprivate initTheme() {\n\n\t\t// TODO\n\t\tconst theme = SchemaAggregate.DEFAULT_THEME;\n\n\t\tthis.setTheme(theme);\n\t}\n\n\tprivate calculateUniqueValues(): void {\n\n\t\tconst fields = this.fieldCollection.getAllFields(),\n\t\t\titems = this.sourceManager.getOrigin();\n\n\t\tthis.uniqueFilterManager.calculateAll(items, fields);\n\n\t\tthis.generateCalculateUniqueValuesAggregateEvent();\n\t}\n\n\tprivate generateCalculateUniqueValuesAggregateEvent(): void {\n\t\tthis.addEvent(\n\t\t\tnew UniqueFilterCalculatedAggregateEvent(\n\t\t\t\tthis.getId(),\n\t\t\t\tthis.uniqueFilterManager.getAll(\n\t\t\t\t\tthis.fieldCollection.getAllFields()\n\t\t\t\t)\n\t\t\t)\n\t\t);\n\t}\n\n\tprivate generateSelectedRowChangedEvent() {\n\t\tthis.addEvent(\n\t\t\tnew SelectedRowChangedAggregateEvent(\n\t\t\t\tthis.getId(),\n\t\t\t\tthis.sourceManager.getFormation().getSelectedItemIds().map(i => i.toString()),\n\t\t\t\tthis.sourceManager.getFormation().isAllSelected(),\n\t\t\t\tthis.sourceManager.getFormation().isAllUnselected()\n\t\t\t)\n\t\t);\n\t}\n\n}\n","import { SorterId } from '../api/id/sorter.id';\nimport { ItemEntity } from '../../../source/src/domain/item/item.entity';\nimport { FieldEntity } from '../../../field/src/domain/field/field.entity';\n\nexport class Sorter {\n\n\tprivate readonly sorterId: SorterId;\n\n\tprivate columnId: string;\n\n\tprivate field: FieldEntity;\n\n\tprivate rank: number = 1;\n\n\tprivate direction: boolean;\n\n\tconstructor(id: SorterId,\n\t\t\t\tfield: FieldEntity,\n\t\t\t\tdirection: boolean = true) {\n\t\tthis.sorterId = id;\n\t\tthis.field = field;\n\t\tthis.direction = direction;\n\t}\n\n\tgetId(): SorterId {\n\t\treturn this.sorterId;\n\t}\n\n\tgetRank(): number {\n\t\treturn this.rank;\n\t}\n\n\tgetField(): FieldEntity {\n\t\treturn this.field;\n\t}\n\n\thasDirection(): boolean {\n\t\treturn this.direction;\n\t}\n\n\tchangeDirection(): void {\n\t\tthis.direction = !this.direction;\n\t}\n\n\tsetDirection(direction: boolean): void {\n\t\tthis.direction = direction;\n\t}\n\n\tsort(entities: Array<ItemEntity>): Array<ItemEntity> {\n\n\t\tif (entities.length === 0) {\n\t\t\treturn entities;\n\t\t}\n\n\t\treturn entities.sort((entityOne: ItemEntity, entityTwo: ItemEntity) => {\n\t\t\treturn this.field.sort(entityOne, entityTwo, this.direction);\n\t\t});\n\t}\n\n}\n","export class SorterId {\n\n\tprivate readonly sorterId: string;\n\n\tconstructor(id: string) {\n\t\tthis.sorterId = id;\n\t}\n\n\tgetId(): string {\n\t\treturn this.sorterId;\n\t}\n}\n","import { RandomStringGenerator } from '@generic-ui/hermes';\n\nimport { Sorter } from './sorter';\nimport { SortingConfig } from '../api/config/sorting-config';\nimport { SorterId } from '../api/id/sorter.id';\nimport { FieldId } from '../../../field/src/domain/field/field.id';\nimport { ItemEntity } from '../../../source/src/domain/item/item.entity';\nimport { SortOrder } from '../../../../composition/src/domain/column/sort/sort-order';\nimport { FieldEntity } from '../../../field/src/domain/field/field.entity';\n\n\nexport class SorterManager {\n\n\tprivate enabled: boolean;\n\n\tprivate multi: boolean;\n\n\tprivate readonly sorters = new Map<string, Sorter>();\n\n\tconstructor(enabled: boolean = false,\n\t\t\t\tmulti: boolean = false) {\n\t\tthis.enabled = enabled;\n\t\tthis.multi = multi;\n\t}\n\n\tsetConfig(config: SortingConfig): void {\n\n\t\tif (config && config.enabled !== undefined && config.enabled !== null) {\n\t\t\tthis.enabled = config.enabled;\n\t\t}\n\n\t\tif (config && config.multiSorting !== undefined && config.multiSorting !== null) {\n\t\t\tthis.multi = config.multiSorting;\n\t\t\tthis.sorters.clear();\n\t\t}\n\n\t}\n\n\ttoggle(field: FieldEntity): void {\n\n\t\tconst fieldId = field.getId(),\n\t\t\tsorter = this.sorters.get(fieldId.getId());\n\n\t\tif (sorter) {\n\t\t\tif (sorter.hasDirection()) {\n\t\t\t\tsorter.changeDirection();\n\t\t\t} else {\n\t\t\t\tthis.delete(fieldId);\n\t\t\t}\n\t\t} else {\n\t\t\tthis.add(field);\n\t\t}\n\n\t}\n\n\tsetSortOrder(field: FieldEntity, sortOrder: SortOrder): void {\n\n\t\tconst fieldId = field.getId(),\n\t\t\tsorter = this.sorters.get(fieldId.getId());\n\n\t\tif (sortOrder === SortOrder.NONE) {\n\t\t\tthis.delete(fieldId);\n\t\t} else if (sortOrder === SortOrder.ASC || sortOrder === SortOrder.DESC) {\n\n\t\t\tthis.delete(fieldId);\n\n\t\t\tconst direction = sortOrder === SortOrder.ASC;\n\n\t\t\tthis.add(field, direction);\n\t\t}\n\t}\n\n\tadd(field: FieldEntity, direction = true): void {\n\t\tthis.addSorter(field.getId(), new Sorter(new SorterId(RandomStringGenerator.generate()), field, direction));\n\t}\n\n\taddSorter(fieldId: FieldId, sorter: Sorter): void {\n\n\t\tif (!this.multi) {\n\t\t\tthis.sorters.clear();\n\t\t}\n\n\t\tthis.sorters.set(fieldId.getId(), sorter);\n\t}\n\n\tdelete(fieldId: FieldId): void {\n\t\tthis.sorters.delete(fieldId.getId());\n\t}\n\n\tupdate(): void {\n\t}\n\n\t// TODO Remove the loop from sorter.sort\n\tsort(entities: Array<ItemEntity>): Array<ItemEntity> {\n\t\tconst sorters = this.getAll();\n\n\t\tlet sortedEntities = Array.from(entities);\n\n\t\tfor (const sorter of sorters) {\n\t\t\tsortedEntities = sorter.sort(sortedEntities);\n\t\t}\n\n\t\treturn sortedEntities;\n\t}\n\n\tgetAll(): Array<Sorter> {\n\n\t\tif (!this.enabled) {\n\t\t\treturn [];\n\t\t}\n\n\t\treturn Array.from(this.sorters)\n\t\t\t\t\t.map((arr) => arr[1])\n\t\t\t\t\t.sort((sorterOne: Sorter, sorterTwo: Sorter) => {\n\t\t\t\t\t\treturn sorterOne.getRank() - sorterTwo.getRank();\n\t\t\t\t\t})\n\t\t\t\t\t.reverse();\n\t}\n}\n","import { UniqueValueId } from './unique-value-id';\n\nexport class UniqueValue {\n\n\tprivate readonly id: UniqueValueId;\n\n\tprivate value: any;\n\n\tprivate displayValue: string;\n\n\tprivate enabled: boolean;\n\n\tconstructor(\n\t\tid: UniqueValueId,\n\t\tvalue: any,\n\t\tdisplayValue: string,\n\t\tenabled: boolean\n\t) {\n\t\tthis.id = id;\n\t\tthis.value = value;\n\t\tthis.displayValue = displayValue;\n\t\tthis.enabled = enabled;\n\t}\n\n\tgetId(): UniqueValueId {\n\t\treturn this.id;\n\t}\n\n\tgetValue(): any {\n\t\treturn this.value;\n\t}\n\n\tgetDisplayValue(): string {\n\t\treturn this.displayValue;\n\t}\n\n\tisEnabled(): boolean {\n\t\treturn this.enabled;\n\t}\n\n\tisDisabled(): boolean {\n\t\treturn !this.enabled;\n\t}\n\n\tselect(): void {\n\t\tthis.enabled = true;\n\t}\n\n\tunselect(): void {\n\t\tthis.enabled = false;\n\t}\n}\n","export class UniqueValueId {\n\n\tprivate readonly id: string;\n\n\tconstructor(uniqueValueId: string) {\n\t\tthis.id = uniqueValueId;\n\t}\n\n\ttoString(): string {\n\t\treturn this.id;\n\t}\n\n\tequals(uniqueValueId: UniqueValueId): boolean {\n\t\treturn uniqueValueId.toString() === this.id;\n\t}\n\n}\n","import { UniqueValueId } from './unique-value-id';\n\nexport class UniqueValueIdGenerator {\n\n\tstatic index = 0;\n\n\tstatic generate(): UniqueValueId {\n\n\t\tUniqueValueIdGenerator.index += 1;\n\n\t\treturn new UniqueValueId(`${UniqueValueIdGenerator.index}`);\n\t}\n\n}\n","import { UniqueValue } from './unique-value';\nimport { UniqueValueIdGenerator } from './unique-value.id-generator';\nimport { UniqueValueId } from './unique-value-id';\nimport { FieldEntity } from '../../../../field/src/domain/field/field.entity';\n\nexport class UniqueValueCollection {\n\n\tprivate readonly values: Array<UniqueValue> = [];\n\n\tprivate allSelected: boolean;\n\n\tprivate allDisabled: boolean;\n\n\tconstructor(values: Array<any>,\n\t\t\t\tfield: FieldEntity) {\n\n\t\tfor (const value of values) {\n\n\t\t\tthis.values.push(\n\t\t\t\tnew UniqueValue(\n\t\t\t\t\tUniqueValueIdGenerator.generate(),\n\t\t\t\t\tvalue,\n\t\t\t\t\tfield.getDisplayValue(value),\n\t\t\t\t\ttrue\n\t\t\t\t)\n\t\t\t);\n\t\t}\n\n\t\tthis.calculateAllSelected();\n\t\tthis.calculateAllDisabled();\n\t}\n\n\tgetAll(): Array<UniqueValue> {\n\t\treturn this.values;\n\t}\n\n\tisAllSelected(): boolean {\n\t\treturn this.allSelected;\n\t}\n\n\tisAllDisabled(): boolean {\n\t\treturn this.allDisabled;\n\t}\n\n\tgetNotSelected(): Array<UniqueValue> {\n\t\treturn this.values.filter((uv: UniqueValue) => uv.isDisabled());\n\t}\n\n\tselectAll(): void {\n\t\tthis.values.forEach((uv: UniqueValue) => {\n\t\t\tuv.select();\n\t\t});\n\t\tthis.allSelected = true;\n\t\tthis.allDisabled = false;\n\t}\n\n\tselect(uniqueValueId: UniqueValueId): void {\n\n\t\tthis.values\n\t\t\t.filter((uv) => uv.getId().equals(uniqueValueId))\n\t\t\t.forEach((uv: UniqueValue) => {\n\t\t\t\tuv.select();\n\t\t\t});\n\n\t\tthis.calculateAllSelected();\n\t\tthis.calculateAllDisabled();\n\t}\n\n\tunselectAll(): void {\n\t\tthis.values.forEach((uv: UniqueValue) => {\n\t\t\tuv.unselect();\n\t\t});\n\t\tthis.allSelected = false;\n\t\tthis.allDisabled = true;\n\t}\n\n\tunselect(uniqueValueId: UniqueValueId): void {\n\n\t\tthis.values\n\t\t\t.filter((uv) => uv.getId().equals(uniqueValueId))\n\t\t\t.forEach((uv: UniqueValue) => {\n\t\t\t\tuv.unselect();\n\t\t\t});\n\n\t\tthis.calculateAllSelected();\n\t\tthis.calculateAllDisabled();\n\t}\n\n\tprivate calculateAllSelected(): void {\n\t\tthis.allSelected = !this.values.some((f: UniqueValue) => f.isDisabled());\n\t}\n\n\tprivate calculateAllDisabled(): void {\n\t\tthis.allDisabled = !this.values.some((f: UniqueValue) => f.isEnabled());\n\t}\n\n}\n","import { KeyMap, Optional } from '@generic-ui/hermes';\n\nimport { FieldId } from '../../../../field/src/domain/field/field.id';\nimport { ItemEntity } from '../../../../source/src/domain/item/item.entity';\nimport { FieldEntity } from '../../../../field/src/domain/field/field.entity';\nimport { UniqueValueCollection } from './unique-value-collection';\nimport { UniqueValue } from './unique-value';\nimport { UniqueValueId } from './unique-value-id';\n\n\nexport class UniqueFilterManager {\n\n\tprivate readonly uniqueValueMap = new KeyMap<FieldId, UniqueValueCollection>();\n\n\tcalculate(entities: Array<ItemEntity>, field: FieldEntity): void {\n\n\t\tconst fieldId = field.getId();\n\n\t\tconst optUVM = this.uniqueValueMap.find(fieldId);\n\n\t\toptUVM.ifEmpty(() => {\n\n\t\t\tconst set = new Set();\n\n\t\t\tfor (const entity of entities) {\n\t\t\t\tset.add(field.getValue(entity));\n\t\t\t}\n\n\t\t\t// sort\n\t\t\tconst sortedValues = Array.from(set.values()).sort((a: any, b: any) => {\n\t\t\t\treturn (field as any).getField().sort(a, b);\n\t\t\t});\n\n\t\t\tconst uvc = new UniqueValueCollection(sortedValues, field);\n\n\t\t\tthis.uniqueValueMap.set(field.getId(), uvc);\n\t\t});\n\n\t}\n\n\tcalculateAll(entities: Array<ItemEntity>, fields: Array<FieldEntity>): void {\n\t\tfor (const field of fields) {\n\t\t\tthis.calculate(entities, field);\n\t\t}\n\t}\n\n\tfilterAll(entities: Array<ItemEntity>, fields: Array<FieldEntity>): Array<ItemEntity> {\n\n\t\tlet values: Array<ItemEntity> = entities;\n\n\t\tfor (const field of fields) {\n\n\t\t\tvalues = this.filter(values, field);\n\t\t}\n\n\t\treturn values;\n\t}\n\n\tfilter(entities: Array<ItemEntity>, field: FieldEntity): Array<ItemEntity> {\n\n\t\tlet values: Array<ItemEntity> = [];\n\n\t\tthis.uniqueValueMap\n\t\t\t.find(field.getId())\n\t\t\t.ifPresent((uvc: UniqueValueCollection) => {\n\n\t\t\t\tif (uvc.isAllSelected()) {\n\t\t\t\t\tvalues = entities;\n\t\t\t\t} else if (uvc.isAllDisabled()) {\n\t\t\t\t\tvalues = [];\n\t\t\t\t} else {\n\n\t\t\t\t\tvalues = entities.filter((itemEntity: ItemEntity) => {\n\n\t\t\t\t\t\tfor (const notSelectedValue of uvc.getNotSelected()) {\n\n\t\t\t\t\t\t\tif ((field.getField() as any).equals(itemEntity, (notSelectedValue as any).getValue())) {\n\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t});\n\n\t\treturn values;\n\t}\n\n\tselectAll(fieldId: FieldId): void {\n\n\t\tthis.uniqueValueMap\n\t\t\t.find(fieldId)\n\t\t\t.ifPresent((uvc: UniqueValueCollection) => {\n\t\t\t\tuvc.selectAll();\n\t\t\t});\n\t}\n\n\tselect(fieldId: FieldId, uniqueValueId: UniqueValueId): void {\n\n\t\tthis.uniqueValueMap\n\t\t\t.find(fieldId)\n\t\t\t.ifPresent((uvc: UniqueValueCollection) => {\n\t\t\t\tuvc.select(uniqueValueId);\n\t\t\t});\n\t}\n\n\tunselectAll(fieldId: FieldId): void {\n\n\t\tthis.uniqueValueMap\n\t\t\t.find(fieldId)\n\t\t\t.ifPresent((uvc: UniqueValueCollection) => {\n\t\t\t\tuvc.unselectAll();\n\t\t\t});\n\t}\n\n\tunselect(fieldId: FieldId, uniqueValueId: UniqueValueId): void {\n\n\t\tthis.uniqueValueMap\n\t\t\t.find(fieldId)\n\t\t\t.ifPresent((uvc: UniqueValueCollection) => {\n\t\t\t\tuvc.unselect(uniqueValueId);\n\t\t\t});\n\t}\n\n\tgetAll(fields: Array<FieldEntity>): Map<string, Array<UniqueValue>> {\n\n\t\tconst map = new Map();\n\n\t\tfor (const field of fields) {\n\n\t\t\tthis.getValues(field)\n\t\t\t\t.ifPresent((v) => {\n\t\t\t\t\tmap.set(field.getId().toString(), v);\n\t\t\t\t});\n\t\t}\n\n\t\treturn map;\n\t}\n\n\tgetValues(field: FieldEntity): Optional<Array<UniqueValue>> {\n\n\t\treturn this.uniqueValueMap\n\t\t\t\t   .find(field.getId())\n\t\t\t\t   .map((uvc: UniqueValueCollection) => {\n\t\t\t\t\t   return uvc.getAll();\n\t\t\t\t   });\n\t}\n\n}\n","import { AggregateFactory } from '@generic-ui/hermes';\n\nimport { PagingManagerFactory } from '../../../paging/src/domain/paging.manager-factory';\nimport { SourceManagerFactory } from '../../../source/src/domain/source.manager-factory';\nimport { VerticalFormationFactory } from '../../../vertical-formation/src/domain/vertical-formation.factory';\nimport { SummariesManagerFactory } from '../../../summaries/src/domain/summaries.manager.factory';\nimport { FilterManagerFactory } from '../../../filter/src/domain/filter.manager-factory';\nimport { FieldCollectionFactory } from '../../../field/src/core/field-collection.factory';\nimport { StructureId } from '../api/global/structure.id';\nimport { StructureAggregate } from '../domain/structure.aggregate';\nimport { SorterManager } from '../../../sorting/src/domain/sorter.manager';\nimport { SearchManagerFactory } from '../../../search/src/domain/search.manager-factory';\nimport { UniqueFilterManager } from '../../../filter/src/domain/unique/unique-filter-manager';\n\n\nexport class StructureAggregateFactory extends AggregateFactory<StructureId, StructureAggregate> {\n\n\tconstructor(private readonly pagingAggregateFactory: PagingManagerFactory,\n\t\t\t\tprivate readonly sourceManagerFactory: SourceManagerFactory,\n\t\t\t\tprivate readonly verticalFormationFactory: VerticalFormationFactory,\n\t\t\t\tprivate readonly summariesManagerFactory: SummariesManagerFactory,\n\t\t\t\tprivate readonly filterManagerFactory: FilterManagerFactory,\n\t\t\t\tprivate readonly searchManagerFactory: SearchManagerFactory,\n\t\t\t\tprivate readonly fieldCollectionFactory: FieldCollectionFactory) {\n\t\tsuper();\n\t}\n\n\tstatic readonly services = [\n\t\tPagingManagerFactory, SourceManagerFactory, VerticalFormationFactory, SummariesManagerFactory,\n\t\tFilterManagerFactory, SearchManagerFactory, FieldCollectionFactory\n\t];\n\n\tcreate(structureId: StructureId): StructureAggregate {\n\n\t\tconst paging = this.pagingAggregateFactory.createDefault(),\n\t\t\tsource = this.sourceManagerFactory.createDefault(structureId),\n\t\t\tverticalFormation = this.verticalFormationFactory.create(structureId);\n\n\t\tconst sorterContainer: SorterManager = new SorterManager(),\n\t\t\tfilterContainer = this.filterManagerFactory.create(false),\n\t\t\tfieldContainer = this.fieldCollectionFactory.create(),\n\t\t\tsummariesManager = this.summariesManagerFactory.create(structureId),\n\t\t\tsearchManager = this.searchManagerFactory.create();\n\n\t\tconst structureAggregate = new StructureAggregate(structureId,\n\t\t\tpaging,\n\t\t\tsource,\n\t\t\tverticalFormation,\n\t\t\tsummariesManager,\n\t\t\tsorterContainer,\n\t\t\tfilterContainer,\n\t\t\tnew UniqueFilterManager(),\n\t\t\tsearchManager,\n\t\t\tfieldContainer\n\t\t);\n\n\t\tthis.init(structureAggregate);\n\n\t\treturn structureAggregate;\n\t}\n\n\tinit(structureAggregate: StructureAggregate): void {\n\t\tstructureAggregate.init();\n\t}\n\n}\n","import { AggregateRepository, Optional } from '@generic-ui/hermes';\n\nimport { StructureAggregate } from '../domain/structure.aggregate';\nimport { StructureId } from '../api/global/structure.id';\n\nexport abstract class StructureAggregateRepository extends AggregateRepository<StructureId, StructureAggregate> {\n\n\tabstract findById(aggregateId: StructureId): Optional<StructureAggregate>;\n\n\tabstract save(aggregate: StructureAggregate): void;\n\n}\n","import { InMemoryAggregateStore } from '@generic-ui/hermes';\n\nimport { StructureAggregate } from '../../domain/structure.aggregate';\nimport { InMemoryStructureStore } from '../in-memory.structure.store';\nimport { StructureId } from '../../api/global/structure.id';\n\n\nexport class InMemoryStructureAggregateStore extends InMemoryAggregateStore<StructureId, StructureAggregate> {\n\n\tconstructor(inMemoryStructureStore: InMemoryStructureStore) {\n\t\tsuper(inMemoryStructureStore);\n\t}\n\n\tstatic readonly services = [InMemoryStructureStore];\n}\n","import { Optional } from '@generic-ui/hermes';\n\nimport { StructureAggregateRepository } from '../../core/structure-aggregate.repository';\nimport { StructureAggregate } from '../../domain/structure.aggregate';\n\nimport { InMemoryStructureAggregateStore } from './in-memory.structure.aggregate-store';\nimport { StructureId } from '../../api/global/structure.id';\n\n\nexport class InMemoryStructureAggregateRepository extends StructureAggregateRepository {\n\n\tconstructor(private readonly inMemoryStructureAggregateStore: InMemoryStructureAggregateStore) {\n\t\tsuper();\n\t}\n\n\tstatic readonly services = [InMemoryStructureAggregateStore];\n\n\tfindById(aggregateId: StructureId): Optional<StructureAggregate> {\n\t\treturn this.inMemoryStructureAggregateStore.findById(aggregateId);\n\t}\n\n\tsave(aggregate: StructureAggregate): void {\n\t\tthis.inMemoryStructureAggregateStore.save(aggregate);\n\t}\n\n}\n","import { DomainEventHandler, DomainEventType } from '@generic-ui/hermes';\n\nimport { SummariesEnabledArchive } from '../../../../summaries/src/core-read/enabled/summaries-enabled-archive.service';\nimport { StructureCreatedEvent } from './structure-created.event';\nimport { StructureId } from '../../api/global/structure.id';\n\n\nexport class StructureCreatedEventHandler implements DomainEventHandler<StructureId, StructureCreatedEvent> {\n\n\tconstructor(private readonly summariesEnabledArchive: SummariesEnabledArchive) {\n\t}\n\n\tstatic readonly services = [SummariesEnabledArchive];\n\n\tforEvent(): DomainEventType<StructureCreatedEvent> {\n\t\treturn StructureCreatedEvent;\n\t}\n\n\thandle(event: StructureCreatedEvent): void {\n\n\t\tif (event.ofMessageType('StructureCreatedEvent')) {\n\n\t\t\tconst structureId = event.getAggregateId();\n\n\t\t\tthis.summariesEnabledArchive.init(structureId);\n\t\t}\n\t}\n\n}\n","import { AggregateDefinition, AggregateId, AggregateRoot, Command, Container, DomainEvent, DomainProviders } from '@generic-ui/hermes';\nimport { structureKey } from '../api/global/structre.key';\nimport { CreateStructureCommandHandler } from './create/create-structure.command-handler';\nimport { StructureAggregateFactory } from './structure.aggregate-factory';\nimport { InMemoryStructureAggregateRepository } from '../persist/domain/in-memory.structure-aggregate.repository';\nimport { StructureCreatedEventHandler } from './create/structure-created.event-handler';\n\n\nexport class StructureDomainModule implements DomainProviders {\n\n\tdefineAggregate(): AggregateDefinition<any, any, any> | null {\n\t\treturn {\n\t\t\taggregateKey: structureKey,\n\t\t\tcreateCommandHandler: CreateStructureCommandHandler,\n\t\t\tfactory: StructureAggregateFactory,\n\t\t\trepository: InMemoryStructureAggregateRepository\n\t\t};\n\t}\n\n\tregisterKey(): string {\n\t\treturn structureKey;\n\t}\n\n\tregisterProviders(container: Container): void {\n\t\t// container.provide(ListViewDispatcher);\n\t}\n\n\tregisterCommandHandlers<I extends AggregateId, A extends AggregateRoot<I>, C extends Command<I>>(): Array<any> {\n\t\treturn [\n\t\t\t// SetListViewModeCommandHandler,\n\t\t\t// ToggleListViewSelectorCommandHandler\n\t\t];\n\t}\n\n\tregisterDomainEventHandler<I extends AggregateId, E extends DomainEvent<I>>(): Array<any> {\n\t\treturn [\n\t\t\tStructureCreatedEventHandler\n\t\t];\n\t}\n\n\tregisterMultiDomainEventHandler<I extends AggregateId, E extends DomainEvent<I>>(): Array<any> {\n\t\treturn [];\n\t}\n\n}\n\n","import { StructureId } from '../../../../structure-core/src/api/global/structure.id';\nimport { FieldId } from '../../../../field/src/domain/field/field.id';\nimport { FilterTypeId } from '../../domain/type/filter-type.id';\nimport { StructureDomainEvent } from '../../../../structure-core/src/core/structure.domain-event';\n\n\nexport class FilterAddedEvent extends StructureDomainEvent {\n\n\tconstructor(aggregateId: StructureId,\n\t\t\t\tprivate readonly fieldId: FieldId,\n\t\t\t\tprivate readonly filterTypeId: FilterTypeId,\n\t\t\t\tprivate readonly value: any) {\n\t\tsuper(aggregateId, { fieldId, filterTypeId, value }, 'FilterAddedEvent');\n\t}\n\n}\n","import { DomainEvent, hermesFilter, hermesMap, HermesObservable, HermesReplaySubject } from '@generic-ui/hermes';\n\nimport { StructureReadModelRepository } from '../../api/read/structure.read-model-repository';\nimport { StructureReadModelRoot } from '../../api/read/structure.read-model-root';\nimport { InMemoryStructureReadStore } from './in-memory-structure.read-store';\nimport { StructureCreatedEvent } from '../../core/create/structure-created.event';\nimport { SetSourceLoadingEvent } from '../../../../source/src/core/loading/set-source-loading.event';\nimport { PagingSetEvent } from '../../../../paging/src/core/set/paging-set.event';\nimport { PrevPageEvent } from '../../../../paging/src/core/prev-page/prev-page.event';\nimport { NextPageEvent } from '../../../../paging/src/core/next-page/next-page.event';\nimport { PagesizeChangedEvent } from '../../../../paging/src/core/change-pagesize/pagesize-changed.event';\nimport { SelectionEnabledSetEvent } from '../../../../formation/src/core/set-enabled/selection-enabled-set.event';\nimport { VerticalScrollEnabledSetEvent } from '../../../../vertical-formation/src/core/set-enabled/vertical-scroll-enabled-set.event';\nimport { ScrollPositionSetEvent } from '../../../../vertical-formation/src/core/scroll-position/scroll-position-set.event';\nimport { SortToggledEvent } from '../../../../sorting/src/core/toggle/sort-toggled.event';\nimport { OriginSetEvent } from '../../../../source/src/core/origin/set/origin-set.event';\nimport { FilterToggledEvent } from '../../../../filter/src/core/toggle/filter-toggled.event';\nimport { SearchPhraseSetDomainEvent } from '../../../../search/src/core/phrase/set-phrase/search-phrase-set.domain-event';\nimport { SortOrderSetEvent } from '../../../../sorting/src/core/order/sort-order-set.event';\nimport { RowHeightSetEvent } from '../../../../vertical-formation/src/core/set-row-height/row-height-set.event';\nimport { StructureHeightSetEvent } from '../../../../vertical-formation/src/core/container/set-height/structure-height-set.event';\nimport { RowHeightSetBasedOnThemeEvent } from '../../../../vertical-formation/src/core/set-row-height-theme/row-height-set-based-on-theme.event';\nimport { StructureId } from '../../api/global/structure.id';\nimport { FilterAddedEvent } from '../../../../filter/src/core/add/filter-added.event';\nimport { ActiveFiltersSetEvent } from '../../../../filter/src/core/active-filters-set.event';\nimport { UniqueFilterSelectedEvent } from '../../../../filter/src/core/unique/select/unique-filter-selected.event';\nimport { AllUniqueFilterSelectedEvent } from '../../../../filter/src/core/unique/select-all/all-unique-filter-selected.event';\nimport { UniqueFilterUnselectedEvent } from '../../../../filter/src/core/unique/unselect/unique-filter-unselected.event';\nimport { AllUniqueFilterUnselectedEvent } from '../../../../filter/src/core/unique/unselect-all/all-unique-filter-unselected.event';\n\n\nexport class InMemoryStructureRepository extends StructureReadModelRepository {\n\n\tprivate readonly structureIdToStructure = new Map<string, StructureReadModelRoot>();\n\n\tprivate readonly hermesStructure$ = new HermesReplaySubject<Map<string, StructureReadModelRoot>>(1);\n\n\tconstructor(private readonly inMemoryStructureReadStore: InMemoryStructureReadStore) {\n\t\tsuper();\n\t}\n\n\tstatic readonly services = [InMemoryStructureReadStore];\n\n\tgetStructure(structureId: StructureId): StructureReadModelRoot {\n\t\treturn this.structureIdToStructure.get(structureId.getId());\n\t}\n\n\ton(structureId: StructureId): HermesObservable<StructureReadModelRoot> {\n\n\t\treturn this.hermesStructure$\n\t\t\t\t   .toObservable()\n\t\t\t\t   .pipe(\n\t\t\t\t\t   hermesFilter((structureIdToStructure: Map<string, StructureReadModelRoot>) => {\n\n\t\t\t\t\t\t   const key = structureId.getId();\n\n\t\t\t\t\t\t   return structureIdToStructure.has(key);\n\t\t\t\t\t   }),\n\t\t\t\t\t   hermesMap((structureIdToStructure: Map<string, StructureReadModelRoot>) => {\n\t\t\t\t\t\t   return structureIdToStructure.get(structureId.getId());\n\t\t\t\t\t   })\n\t\t\t\t   );\n\t}\n\n\tprotected forEvents(): Array<typeof DomainEvent> {\n\t\treturn [\n\t\t\tStructureCreatedEvent,\n\t\t\tSetSourceLoadingEvent,\n\t\t\tPagingSetEvent,\n\t\t\tPrevPageEvent,\n\t\t\tNextPageEvent,\n\t\t\tPagesizeChangedEvent,\n\t\t\tSelectionEnabledSetEvent,\n\t\t\tVerticalScrollEnabledSetEvent,\n\t\t\tScrollPositionSetEvent,\n\t\t\tSortToggledEvent as any,\n\t\t\tFilterToggledEvent,\n\t\t\tSearchPhraseSetDomainEvent,\n\t\t\tSortOrderSetEvent as any,\n\t\t\tOriginSetEvent as any,\n\t\t\tRowHeightSetEvent,\n\t\t\tStructureHeightSetEvent,\n\t\t\tRowHeightSetBasedOnThemeEvent,\n\t\t\tFilterAddedEvent,\n\t\t\tActiveFiltersSetEvent,\n\t\t\tUniqueFilterSelectedEvent,\n\t\t\tAllUniqueFilterSelectedEvent,\n\t\t\tUniqueFilterUnselectedEvent,\n\t\t\tAllUniqueFilterUnselectedEvent\n\t\t];\n\t}\n\n\tprotected subs(event: DomainEvent<StructureId>): void {\n\n\t\tconst aggregateId = event.getAggregateId();\n\n\t\tconst optStructure = this.inMemoryStructureReadStore.getById(aggregateId);\n\n\t\toptStructure.ifPresent((structureReadModelRoot: StructureReadModelRoot) => {\n\n\t\t\tconst key = structureReadModelRoot.getId().toString();\n\n\t\t\tthis.structureIdToStructure.set(key, structureReadModelRoot);\n\n\t\t\tthis.hermesStructure$.next(this.structureIdToStructure);\n\t\t});\n\t}\n\n}\n","import { CommandDispatcher, CoreContainer } from '@generic-ui/hermes';\n\nimport { FilterPublisher } from '../../../filter/src/api/filter.publisher';\nimport { CreateStructureCommand } from './create/create-structure.command';\nimport { FilterConfig } from '../../../filter/src/api/config/filter.config';\nimport { QuickFiltersConfig } from '../../../filter/src/api/quick-filter/quick-filters.config';\nimport { SetConfigQuickFilterCommand } from '../../../filter/src/core/quick/set-config-quick-filter.command';\nimport { SetRowHeightCommand } from '../../../vertical-formation/src/core/set-row-height/set-row-height.command';\nimport { StructureSetHeightCommand } from '../../../vertical-formation/src/core/container/set-height/structure-set-height.command';\nimport { SetRowHeightBasedOnThemeCommand } from '../../../vertical-formation/src/core/set-row-height-theme/set-row-height-based-on-theme.command';\nimport { StructurePublisher } from '../api/structure.publisher';\nimport { SchemaTheme } from '../../../../schema/src/api/theme/schema-theme';\nimport { CellEditConfig } from '../api/edit/cell-edit.config';\nimport { StructureCellEditArchive } from '../../../../../feature-view/grid-view/src/edit/structure.cell-edit.archive';\nimport { CellEditorManager } from '../domain/edit/cell-editor.manager';\nimport { VerticalFormationPublisher } from '../../../vertical-formation/src/api/vertical-formation.publisher';\nimport { StructureId } from '../api/global/structure.id';\nimport { SourcePublisher } from '../../../source/src/api/source.publisher';\n\n\nexport class StructureDomainPublisher extends StructurePublisher {\n\n\tprivate readonly commandDispatcher: CommandDispatcher = CoreContainer.resolve(CommandDispatcher);\n\n\tconstructor(private readonly filterCommandInvoker: FilterPublisher,\n\t\t\t\tprivate readonly sourcePublisher: SourcePublisher,\n\t\t\t\tprivate readonly verticalFormationCommandInvoker: VerticalFormationPublisher,\n\t\t\t\tprivate readonly structureCellEditArchive: StructureCellEditArchive) {\n\t\tsuper();\n\t}\n\n\tstatic readonly services = [\n\t\tFilterPublisher,\n\t\tSourcePublisher,\n\t\tVerticalFormationPublisher,\n\t\tStructureCellEditArchive\n\t] as const;\n\n\tcreate(structureId: StructureId): void {\n\t\tthis.commandDispatcher.dispatch(new CreateStructureCommand(structureId));\n\t}\n\n\t// REMOVE\n\tenableVirtualScroll(structureId: StructureId): void {\n\t\tthis.verticalFormationCommandInvoker.enableVirtualScroll(structureId);\n\t}\n\n\t// REMOVE\n\tdisableVirtualScroll(structureId: StructureId): void {\n\t\tthis.verticalFormationCommandInvoker.disableVirtualScroll(structureId);\n\t}\n\n\t// REMOVE\n\tscrollToTop(structureId: StructureId): void {\n\t\tthis.verticalFormationCommandInvoker.scrollToTop(structureId);\n\t}\n\n\t// REMOVE\n\tscrollToBottom(structureId: StructureId): void {\n\t\tthis.verticalFormationCommandInvoker.scrollToBottom(structureId);\n\t}\n\n\t// REMOVE\n\tscrollToIndex(index: number, structureId: StructureId): void {\n\t\tthis.verticalFormationCommandInvoker.scrollToIndex(index, structureId);\n\t}\n\n\t// REMOVE\n\tsetScrollPosition(position: number, structureId: StructureId): void {\n\t\tthis.verticalFormationCommandInvoker.setScrollPosition(position, structureId);\n\t}\n\n\tsetFilterConfig(config: FilterConfig, structureId: StructureId): void {\n\t\tthis.filterCommandInvoker.setConfig(config, structureId);\n\t}\n\n\tsetQuickFiltersConfig(config: QuickFiltersConfig, structureId: StructureId): void {\n\t\tthis.commandDispatcher.dispatch(new SetConfigQuickFilterCommand(structureId, config));\n\t}\n\n\tsetRowHeight(rowHeight: number, structureId: StructureId): void {\n\t\tthis.commandDispatcher.dispatch(new SetRowHeightCommand(structureId, +rowHeight));\n\t}\n\n\t// REMOVE\n\tsetContainerHeight(height: number, structureId: StructureId): void {\n\t\tthis.commandDispatcher.dispatch(new StructureSetHeightCommand(structureId, +height));\n\t}\n\n\t// REMOVE\n\tsetRowHeightBasedOnTheme(theme: SchemaTheme, structureId: StructureId): void {\n\t\tthis.commandDispatcher.dispatch(new SetRowHeightBasedOnThemeCommand(structureId, theme));\n\t}\n\n\tsetCellEdit(cellEdit: CellEditConfig, structureId: StructureId): void {\n\t\tthis.structureCellEditArchive.next(structureId, new CellEditorManager(cellEdit));\n\t}\n\n}\n","import { ApiProviders, Container, DomainInitializer } from '@generic-ui/hermes';\nimport { StructureDomainModule } from '../core/structure.domain-module';\nimport { InMemoryStructureAggregateStore } from '../persist/domain/in-memory.structure.aggregate-store';\nimport { InMemoryStructureStore } from '../persist/in-memory.structure.store';\nimport { StructureAggregateRepository } from '../core/structure-aggregate.repository';\nimport { InMemoryStructureAggregateRepository } from '../persist/domain/in-memory.structure-aggregate.repository';\nimport { FabricModalThemeService } from '@generic-ui/fabric';\nimport { StructureCellEditArchive } from '../../../../../feature-view/grid-view/src/edit/structure.cell-edit.archive';\nimport { InMemoryStructureReadStore } from '../persist/api/in-memory-structure.read-store';\nimport { StructureReadModelRepository } from './read/structure.read-model-repository';\nimport { InMemoryStructureRepository } from '../persist/api/in-memory.structure.repository';\nimport { StructureAggregateFactory } from '../core/structure.aggregate-factory';\nimport { StructureReadModelRootConverter } from './read/structure.read-model-root-converter';\nimport { StructureWarehouse } from './structure.warehouse';\nimport { StructurePublisher } from './structure.publisher';\nimport { StructureDomainPublisher } from '../core/structure.domain-publisher';\nimport { StructureInitialValuesReadyArchive } from './ready/structure.initial-values-ready.archive';\n\n\nexport class StructureApiModule implements ApiProviders {\n\n\tregisterProviders(container: Container): void {\n\n\t\tcontainer.provide(InMemoryStructureReadStore);\n\t\tcontainer.provide(StructureReadModelRepository, InMemoryStructureRepository);\n\t\tcontainer.provide(StructureAggregateFactory);\n\t\tcontainer.provide(StructureReadModelRootConverter);\n\t\tcontainer.provide(StructureWarehouse);\n\t\tcontainer.provide(StructurePublisher, StructureDomainPublisher);\n\t\tcontainer.provide(StructureInitialValuesReadyArchive);\n\n\t\tcontainer.provide(InMemoryStructureAggregateStore);\n\t\tcontainer.provide(InMemoryStructureStore);\n\t\tcontainer.provide(StructureAggregateRepository, InMemoryStructureAggregateRepository);\n\t\tcontainer.provide(FabricModalThemeService);\n\n\t\tcontainer.provide(StructureCellEditArchive);\n\t}\n}\n\nexport function initializeStructure(): void {\n\tnew DomainInitializer(new StructureApiModule(), new StructureDomainModule()).init();\n}\n","import { CreateAggregateCommand } from '@generic-ui/hermes';\n\nimport { ListViewId } from '../list-view.id';\n\n\nexport class CreateListViewCommand extends CreateAggregateCommand {\n\n\tconstructor(listViewId: ListViewId) {\n\t\tsuper(listViewId, 'CreateListViewCommand');\n\t}\n\n}\n","import { Command } from '@generic-ui/hermes';\nimport { ListViewId } from './list-view.id';\n\nexport abstract class ListViewCommand extends Command<ListViewId> {\n}\n","import { ListViewMode } from '../../domain/mode/list-view-mode';\nimport { ListViewId } from '../list-view.id';\nimport { ListViewCommand } from '../list-view.command';\n\n\nexport class SetListViewModeCommand extends ListViewCommand {\n\n\tconstructor(listViewId: ListViewId,\n\t\t\t\tprivate readonly mode: ListViewMode) {\n\t\tsuper(listViewId, 'SetListViewModeCommand');\n\t}\n\n\tgetMode(): ListViewMode {\n\t\treturn this.mode;\n\t}\n\n}\n","import { ListViewId } from '../../list-view.id';\nimport { ListViewCommand } from '../../list-view.command';\n\n\nexport class ToggleListViewSelectorCommand extends ListViewCommand {\n\n\tconstructor(listViewId: ListViewId,\n\t\t\t\tprivate readonly enabled: boolean) {\n\t\tsuper(listViewId, 'ToggleListViewSelectorCommand');\n\t}\n\n\tisEnabled(): boolean {\n\t\treturn this.enabled;\n\t}\n\n}\n","import { CommandDispatcher, CoreContainer } from '@generic-ui/hermes';\n\nimport { ListViewId } from './list-view.id';\nimport { CreateListViewCommand } from './create/create-list-view.command';\nimport { ListViewMode } from '../domain/mode/list-view-mode';\nimport { SetListViewModeCommand } from './mode/set-list-view-mode.command';\nimport { ToggleListViewSelectorCommand } from './mode/selector/toggle-list-view-selector.command';\n\n\nexport class ListViewDispatcher {\n\n\tprivate readonly commandDispatcher: CommandDispatcher = CoreContainer.resolve(CommandDispatcher);\n\n\tcreate(listViewId: ListViewId): void {\n\t\tthis.commandDispatcher.dispatch(new CreateListViewCommand(listViewId));\n\t}\n\n\tsetMode(mode: ListViewMode, listViewId: ListViewId): void {\n\t\tthis.commandDispatcher.dispatch(new SetListViewModeCommand(listViewId, mode));\n\t}\n\n\ttoggleSelector(enabled: boolean, listViewId: ListViewId): void {\n\t\tthis.commandDispatcher.dispatch(new ToggleListViewSelectorCommand(listViewId, enabled));\n\t}\n\n}\n","import { AggregateId, ReadModelRootId } from '@generic-ui/hermes';\nimport { ListViewReadModelRootId } from '../api/global/list-view.read-model-root-id';\n\nexport class ListViewId extends AggregateId {\n\n\tconstructor(id: string) {\n\t\tsuper(id);\n\t}\n\n\ttoReadModelRootId(): ReadModelRootId {\n\t\treturn new ListViewReadModelRootId(this.getId());\n\t}\n}\n","import { ReadModelRootId } from '@generic-ui/hermes';\n\nimport { ListViewId } from '../../core/list-view.id';\n\n\nexport class ListViewReadModelRootId extends ReadModelRootId {\n\n\tconstructor(id: string) {\n\t\tsuper(id);\n\t}\n\n\ttoAggregateId(): ListViewId {\n\t\treturn new ListViewId(this.getId());\n\t}\n}\n","import { ListViewReadModelRootId } from './list-view.read-model-root-id';\n\nexport const listViewGlobalId = new ListViewReadModelRootId('-1');\n","import { Publisher } from '@generic-ui/hermes';\n\nimport { ListViewDispatcher } from '../core/list-view.dispatcher';\nimport { listViewGlobalId } from './global/list-view.global-id';\nimport { ListViewReadModelRootId } from './global/list-view.read-model-root-id';\nimport { ListViewMode } from '../domain/mode/list-view-mode';\n\n\nexport class ListViewPublisher implements Publisher {\n\n\tconstructor(private readonly listViewDispatcher: ListViewDispatcher) {\n\t}\n\n\tstatic readonly services = [ListViewDispatcher] as const;\n\n\tcreate(listViewReadModelRootId: ListViewReadModelRootId = listViewGlobalId): void {\n\t\tthis.listViewDispatcher.create(listViewReadModelRootId.toAggregateId());\n\t}\n\n\tsetMode(mode: ListViewMode, listViewReadModelRootId: ListViewReadModelRootId = listViewGlobalId): void {\n\t\tthis.listViewDispatcher.setMode(mode, listViewReadModelRootId.toAggregateId());\n\t}\n\n\ttoggleSelector(enabled: boolean, listViewReadModelRootId: ListViewReadModelRootId = listViewGlobalId): void {\n\t\tthis.listViewDispatcher.toggleSelector(enabled, listViewReadModelRootId.toAggregateId());\n\t}\n\n}\n","import { DomainEvent } from '@generic-ui/hermes';\nimport { ListViewId } from './list-view.id';\n\nexport abstract class ListViewDomainEvent extends DomainEvent<ListViewId> {\n}\n","import { ListViewId } from '../list-view.id';\nimport { ListViewMode } from '../../domain/mode/list-view-mode';\nimport { ListViewDomainEvent } from '../list-view.domain-event';\n\n\nexport class ListViewModeSetEvent extends ListViewDomainEvent {\n\n\tconstructor(schemaId: ListViewId,\n\t\t\t\tprivate readonly mode: ListViewMode) {\n\t\tsuper(schemaId, mode, 'ListViewModeSetEvent');\n\t}\n\n\tgetTheme(): ListViewMode {\n\t\treturn this.mode;\n\t}\n}\n","import { EventRepository } from '@generic-ui/hermes';\nimport { ListViewReadModelRootId } from './global/list-view.read-model-root-id';\nimport { ListViewModeSetEvent } from '../core/mode/list-view-mode-set.event';\n\n\nexport class ListViewEventRepository extends EventRepository<ListViewReadModelRootId> {\n\n\tconstructor() {\n\t\tsuper();\n\t}\n\n\tonModeChange(listViewReadModelRootId: ListViewReadModelRootId) {\n\n\t\treturn this.onEvent(listViewReadModelRootId, ListViewModeSetEvent);\n\t}\n\n\n}\n","export enum ListViewMode {\n\tLIST = 'List',\n\tCARD = 'Card'\n}\n","import { ListViewMode } from '../../domain/mode/list-view-mode';\nimport { AggregateArchive } from '@generic-ui/hermes';\n\n\nexport class ListViewModeArchive extends AggregateArchive<ListViewMode> {\n\n\tstatic readonly default = ListViewMode.LIST;\n\n\tconstructor() {\n\t\tsuper(ListViewModeArchive.default);\n\t}\n\n}\n","import { AggregateArchive } from '@generic-ui/hermes';\n\n\nexport class ListViewSelectorArchive extends AggregateArchive<boolean> {\n\n\tstatic readonly default = false;\n\n\tconstructor() {\n\t\tsuper(ListViewSelectorArchive.default);\n\t}\n\n}\n","import { HermesObservable, Warehouse } from '@generic-ui/hermes';\nimport { ListViewMode } from '../domain/mode/list-view-mode';\nimport { ListViewModeArchive } from './mode/list-view.mode.archive';\nimport { ListViewId } from '../core/list-view.id';\nimport { ListViewSelectorArchive } from './mode/selector/list-view.selector.archive';\n\n\nexport class ListViewWarehouse implements Warehouse {\n\n\tconstructor(private readonly listViewModeArchive: ListViewModeArchive,\n\t\t\t\tprivate readonly listViewSelectorArchive: ListViewSelectorArchive) {\n\t}\n\n\tstatic readonly services = [ListViewModeArchive, ListViewSelectorArchive];\n\n\tonMode(id: ListViewId): HermesObservable<ListViewMode> {\n\t\treturn this.listViewModeArchive.on(id);\n\t}\n\n\tonSelector(id: ListViewId): HermesObservable<boolean> {\n\t\treturn this.listViewSelectorArchive.on(id);\n\t}\n\n}\n","import { InMemoryStore } from '@generic-ui/hermes';\n\nimport { ListViewId } from '../core/list-view.id';\nimport { ListViewAggregate } from '../domain/list-view.aggregate';\n\n\nexport class InMemoryListViewStore extends InMemoryStore<ListViewId, ListViewAggregate> {\n}\n","import { InMemoryAggregateStore } from '@generic-ui/hermes';\n\nimport { InMemoryListViewStore } from './in-memory.list-view.store';\nimport { ListViewId } from '../core/list-view.id';\nimport { ListViewAggregate } from '../domain/list-view.aggregate';\n\n\nexport class InMemoryListViewAggregateStore extends InMemoryAggregateStore<ListViewId, ListViewAggregate> {\n\n\tconstructor(inMemorySchemaStore: InMemoryListViewStore) {\n\t\tsuper(inMemorySchemaStore);\n\t}\n\n\tstatic readonly services = [InMemoryListViewStore];\n\n}\n","import { CommandHandler, CommandType } from '@generic-ui/hermes';\n\nimport { SetListViewModeCommand } from './set-list-view-mode.command';\nimport { ListViewAggregate } from '../../domain/list-view.aggregate';\n\n\nexport class SetListViewModeCommandHandler implements CommandHandler<ListViewAggregate, SetListViewModeCommand> {\n\n\tforCommand(): CommandType<SetListViewModeCommand> {\n\t\treturn SetListViewModeCommand;\n\t}\n\n\thandle(listViewAggregate: ListViewAggregate, command: SetListViewModeCommand): void {\n\n\t\tconst mode = command.getMode();\n\n\t\tlistViewAggregate.setMode(mode);\n\t}\n\n}\n","import { CommandHandler, CommandType } from '@generic-ui/hermes';\n\nimport { ToggleListViewSelectorCommand } from './toggle-list-view-selector.command';\nimport { ListViewAggregate } from '../../../domain/list-view.aggregate';\n\n\nexport class ToggleListViewSelectorCommandHandler implements CommandHandler<ListViewAggregate, ToggleListViewSelectorCommand> {\n\n\tforCommand(): CommandType<ToggleListViewSelectorCommand> {\n\t\treturn ToggleListViewSelectorCommand;\n\t}\n\n\thandle(listViewAggregate: ListViewAggregate, command: ToggleListViewSelectorCommand): void {\n\n\t\tconst enabled = command.isEnabled();\n\n\t\tlistViewAggregate.toggleModeSelector(enabled);\n\t}\n\n}\n","import { DomainEventHandler, DomainEventType } from '@generic-ui/hermes';\n\nimport { ListViewModeArchive } from './list-view.mode.archive';\nimport { ListViewId } from '../../core/list-view.id';\nimport { ListViewModeSetEvent } from '../../core/mode/list-view-mode-set.event';\n\n\nexport class ListViewModeSetEventHandler implements DomainEventHandler<ListViewId, ListViewModeSetEvent> {\n\n\tconstructor(private readonly listViewModeArchive: ListViewModeArchive) {\n\t}\n\n\tstatic readonly services = [ListViewModeArchive];\n\n\tforEvent(): DomainEventType<ListViewModeSetEvent> {\n\t\treturn ListViewModeSetEvent;\n\t}\n\n\thandle(event: ListViewModeSetEvent): void {\n\n\t\tif (event.ofMessageType('ListViewModeSetEvent')) {\n\t\t\tthis.listViewModeArchive.next(event.getAggregateId(), event.getTheme());\n\t\t}\n\n\t}\n\n}\n","import { ListViewId } from '../../list-view.id';\nimport { ListViewDomainEvent } from '../../list-view.domain-event';\n\n\nexport class ListViewSelectorToggledEvent extends ListViewDomainEvent {\n\n\tconstructor(schemaId: ListViewId,\n\t\t\t\tprivate readonly enabled: boolean) {\n\t\tsuper(schemaId, enabled, 'ListViewSelectorToggledEvent');\n\t}\n\n\tisEnabled(): boolean {\n\t\treturn this.enabled;\n\t}\n}\n","import { DomainEventHandler, DomainEventType } from '@generic-ui/hermes';\n\nimport { ListViewSelectorArchive } from './list-view.selector.archive';\n\nimport { ListViewId } from '../../../core/list-view.id';\nimport { ListViewSelectorToggledEvent } from '../../../core/mode/selector/list-view-selector-toggled.event';\n\n\nexport class ListViewSelectorToggledEventHandler implements DomainEventHandler<ListViewId, ListViewSelectorToggledEvent> {\n\n\tconstructor(private readonly listViewSelectorArchive: ListViewSelectorArchive) {\n\t}\n\n\tstatic readonly services = [ListViewSelectorArchive];\n\n\tforEvent(): DomainEventType<ListViewSelectorToggledEvent> {\n\t\treturn ListViewSelectorToggledEvent;\n\t}\n\n\thandle(event: ListViewSelectorToggledEvent): void {\n\n\t\tif (event.ofMessageType('ListViewSelectorToggledEvent')) {\n\t\t\tthis.listViewSelectorArchive.next(event.getAggregateId(), event.isEnabled());\n\t\t}\n\t}\n\n}\n","import { CommandType, CreateAggregateCommandHandler } from '@generic-ui/hermes';\n\nimport { CreateListViewCommand } from './create-list-view.command';\n\n\nexport class CreateListViewCommandHandler implements CreateAggregateCommandHandler<CreateListViewCommand> {\n\n\tforCommand(): CommandType<CreateListViewCommand> {\n\t\treturn CreateListViewCommand;\n\t}\n\n}\n","import { ListViewId } from '../list-view.id';\nimport { ListViewDomainEvent } from '../list-view.domain-event';\n\n\nexport class ListViewCreatedEvent extends ListViewDomainEvent {\n\n\tconstructor(aggregateId: ListViewId) {\n\t\tsuper(aggregateId, null, 'ListViewCreatedEvent');\n\t}\n}\n","import { AggregateEvent } from '@generic-ui/hermes';\nimport { ListViewId } from './list-view.id';\n\nexport abstract class ListViewAggregateEvent extends AggregateEvent<ListViewId> {\n}\n","import { DomainEvent } from '@generic-ui/hermes';\n\nimport { ListViewCreatedEvent } from './list-view-created.event';\nimport { ListViewId } from '../list-view.id';\nimport { ListViewAggregateEvent } from '../list-view.aggregate-event';\n\nexport class ListViewCreatedAggregateEvent extends ListViewAggregateEvent {\n\n\tconstructor(aggregateId: ListViewId) {\n\t\tsuper(aggregateId, 'ListViewCreatedAggregateEvent');\n\t}\n\n\ttoDomainEvent(): DomainEvent<ListViewId> {\n\t\treturn new ListViewCreatedEvent(this.getAggregateId());\n\t}\n}\n","import { DomainEvent } from '@generic-ui/hermes';\n\nimport { ListViewModeSetEvent } from './list-view-mode-set.event';\nimport { ListViewId } from '../list-view.id';\nimport { ListViewMode } from '../../domain/mode/list-view-mode';\nimport { ListViewAggregateEvent } from '../list-view.aggregate-event';\n\nexport class ListViewModeSetAggregateEvent extends ListViewAggregateEvent {\n\n\tconstructor(listViewId: ListViewId,\n\t\t\t\tprivate readonly mode: ListViewMode) {\n\t\tsuper(listViewId, 'ListViewModeSetAggregateEvent');\n\t}\n\n\ttoDomainEvent(): DomainEvent<ListViewId> {\n\t\treturn new ListViewModeSetEvent(this.getAggregateId(), this.mode);\n\t}\n}\n","export class SelectorVisibility {\n\n\tenabled: boolean = null;\n\n\tvisible: boolean = false;\n\n\tconstructor() {\n\t}\n\n\tisVisible(): boolean {\n\n\t\tif (this.enabled !== null) {\n\t\t\treturn this.enabled;\n\t\t}\n\n\t\treturn this.visible;\n\t}\n\n\tsetEnabled(enabled: boolean): void {\n\t\tthis.enabled = enabled;\n\t}\n\n\tsetVisible(visible: boolean): void {\n\t\tthis.visible = visible;\n\t}\n\n}\n","import { DomainEvent } from '@generic-ui/hermes';\n\nimport { ListViewSelectorToggledEvent } from './list-view-selector-toggled.event';\nimport { ListViewId } from '../../list-view.id';\nimport { ListViewAggregateEvent } from '../../list-view.aggregate-event';\n\n\nexport class ListViewSelectorToggledAggregateEvent extends ListViewAggregateEvent {\n\n\tconstructor(listViewId: ListViewId,\n\t\t\t\tprivate readonly enabled: boolean) {\n\t\tsuper(listViewId, 'ListViewSelectorToggledAggregateEvent');\n\t}\n\n\ttoDomainEvent(): DomainEvent<ListViewId> {\n\t\treturn new ListViewSelectorToggledEvent(this.getAggregateId(), this.enabled);\n\t}\n}\n","import { AggregateEvent, AggregateEventType, AggregateRoot } from '@generic-ui/hermes';\n\nimport { ListViewId } from '../core/list-view.id';\nimport { ListViewCreatedAggregateEvent } from '../core/create/list-view-created.aggregate-event';\nimport { ListViewModeSetAggregateEvent } from '../core/mode/list-view-mode-set.aggregate-event';\nimport { ListViewMode } from './mode/list-view-mode';\nimport { SelectorVisibility } from './mode/selector-visibility';\nimport { ListViewSelectorToggledAggregateEvent } from '../core/mode/selector/list-view-selector-toggled.aggregate-event';\n\n\nexport class ListViewAggregate extends AggregateRoot<ListViewId> {\n\n\tprivate mode: ListViewMode;\n\n\tprivate selectorVisibility: SelectorVisibility;\n\n\tconstructor(listViewId: ListViewId) {\n\t\tsuper(listViewId, 'ListViewAggregate');\n\t\tthis.setMode(ListViewMode.LIST);\n\t\tthis.initSelectorVisibility();\n\t}\n\n\tcreateEvent(): AggregateEventType<AggregateEvent<ListViewId>> {\n\t\treturn ListViewCreatedAggregateEvent;\n\t}\n\n\tsetMode(mode: ListViewMode): void {\n\t\tthis.mode = mode;\n\t\tthis.addEvent(new ListViewModeSetAggregateEvent(this.getId(), this.mode));\n\t}\n\n\ttoggleModeSelector(enabled: boolean): void {\n\t\tthis.selectorVisibility.setEnabled(enabled);\n\t\tthis.emitEventAfterSelectorVisibilityChange();\n\t}\n\n\tprivate initSelectorVisibility(): void {\n\t\tthis.selectorVisibility = new SelectorVisibility();\n\t\tthis.emitEventAfterSelectorVisibilityChange();\n\t}\n\n\tprivate emitEventAfterSelectorVisibilityChange(): void {\n\t\tthis.addEvent(new ListViewSelectorToggledAggregateEvent(this.getId(), this.selectorVisibility.isVisible()));\n\t}\n}\n","import { AggregateFactory } from '@generic-ui/hermes';\n\nimport { ListViewId } from './list-view.id';\nimport { ListViewAggregate } from '../domain/list-view.aggregate';\n\n\nexport class ListViewAggregateFactory extends AggregateFactory<ListViewId, ListViewAggregate> {\n\n\tconstructor() {\n\t\tsuper();\n\t}\n\n\tcreate(id: ListViewId): ListViewAggregate {\n\t\treturn new ListViewAggregate(id);\n\t}\n}\n","import { AggregateRepository, Optional } from '@generic-ui/hermes';\n\nimport { ListViewId } from './list-view.id';\nimport { ListViewAggregate } from '../domain/list-view.aggregate';\n\n\nexport abstract class ListViewAggregateRepository extends AggregateRepository<ListViewId, ListViewAggregate> {\n\n\tabstract findById(listViewId: ListViewId): Optional<ListViewAggregate>;\n\n\tabstract save(aggregate: ListViewAggregate): void;\n\n}\n","import { Optional } from '@generic-ui/hermes';\n\nimport { InMemoryListViewAggregateStore } from './in-memory.list-view.aggregate-store';\n\nimport { ListViewAggregateRepository } from '../core/list-view.aggregate-repository';\nimport { ListViewId } from '../core/list-view.id';\nimport { ListViewAggregate } from '../domain/list-view.aggregate';\n\n\nexport class InMemoryListViewAggregateRepository extends ListViewAggregateRepository {\n\n\tconstructor(private readonly inMemorySchemaAggregateStore: InMemoryListViewAggregateStore) {\n\t\tsuper();\n\t}\n\n\tstatic readonly services = [InMemoryListViewAggregateStore];\n\n\tfindById(listViewId: ListViewId): Optional<ListViewAggregate> {\n\t\treturn this.inMemorySchemaAggregateStore.findById(listViewId);\n\t}\n\n\tsave(listViewAggregate: ListViewAggregate): void {\n\t\tthis.inMemorySchemaAggregateStore.save(listViewAggregate);\n\t}\n\n}\n","import { AggregateDefinition, AggregateId, AggregateRoot, Command, Container, DomainEvent, DomainProviders } from '@generic-ui/hermes';\n\nimport { ListViewDispatcher } from './list-view.dispatcher';\nimport { listViewKey } from '../api/list-view.api-module';\nimport { SetListViewModeCommandHandler } from './mode/set-list-view-mode.command-handler';\nimport { ToggleListViewSelectorCommandHandler } from './mode/selector/toggle-list-view-selector.command-handler';\nimport { ListViewModeSetEventHandler } from '../api/mode/list-view-mode-set.event-handler';\nimport { ListViewSelectorToggledEventHandler } from '../api/mode/selector/list-view-selector-toggled.event-handler';\nimport { CreateListViewCommandHandler } from './create/create-list-view.command-handler';\nimport { ListViewAggregateFactory } from './list-view.aggregate-factory';\nimport { InMemoryListViewAggregateRepository } from '../persist/in-memory.list-view.aggregate-repository';\n\n\nexport class ListViewDomainModule implements DomainProviders {\n\n\tdefineAggregate(): AggregateDefinition<any, any, any> | null {\n\t\treturn {\n\t\t\taggregateKey: listViewKey,\n\t\t\tcreateCommandHandler: CreateListViewCommandHandler,\n\t\t\tfactory: ListViewAggregateFactory,\n\t\t\trepository: InMemoryListViewAggregateRepository\n\t\t};\n\t}\n\n\tregisterKey(): string {\n\t\treturn listViewKey;\n\t}\n\n\tregisterProviders(container: Container): void {\n\t\tcontainer.provide(ListViewDispatcher);\n\t}\n\n\tregisterCommandHandlers<I extends AggregateId, A extends AggregateRoot<I>, C extends Command<I>>(): Array<any> {\n\t\treturn [\n\t\t\tSetListViewModeCommandHandler,\n\t\t\tToggleListViewSelectorCommandHandler\n\t\t];\n\t}\n\n\tregisterDomainEventHandler<I extends AggregateId, E extends DomainEvent<I>>(): Array<any> {\n\t\treturn [\n\t\t\tListViewModeSetEventHandler,\n\t\t\tListViewSelectorToggledEventHandler\n\t\t];\n\t}\n\n\tregisterMultiDomainEventHandler<I extends AggregateId, E extends DomainEvent<I>>(): Array<any> {\n\t\treturn [];\n\t}\n\n}\n\n","import { ApiProviders, Container, DomainInitializer } from '@generic-ui/hermes';\nimport { ListViewPublisher } from './list-view.publisher';\nimport { ListViewEventRepository } from './list-view.event-repository';\nimport { ListViewWarehouse } from './list-view.warehouse';\nimport { InMemoryListViewAggregateStore } from '../persist/in-memory.list-view.aggregate-store';\nimport { InMemoryListViewStore } from '../persist/in-memory.list-view.store';\nimport { ListViewDomainModule } from '../core/list-view.domain-module';\nimport { ListViewModeArchive } from './mode/list-view.mode.archive';\nimport { ListViewSelectorArchive } from './mode/selector/list-view.selector.archive';\n\nexport const listViewKey = 'ListViewKey';\n\nexport class ListViewApiModule implements ApiProviders {\n\n\tregisterProviders(container: Container): void {\n\t\tcontainer.provide(ListViewPublisher);\n\t\tcontainer.provide(ListViewEventRepository);\n\t\tcontainer.provide(ListViewWarehouse);\n\t\tcontainer.provide(ListViewModeArchive);\n\t\tcontainer.provide(ListViewSelectorArchive);\n\t\tcontainer.provide(InMemoryListViewAggregateStore);\n\t\tcontainer.provide(InMemoryListViewStore);\n\t}\n}\n\nexport function initializeListView(): void {\n\tnew DomainInitializer(new ListViewApiModule(), new ListViewDomainModule()).init();\n}\n","import { Inject, ModuleWithProviders, NgModule, PLATFORM_ID } from '@angular/core';\nimport { CommonModule, isPlatformBrowser } from '@angular/common';\nimport { ReactiveFormsModule } from '@angular/forms';\n\nimport { FabricModalThemeService, FabricModule } from '@generic-ui/fabric';\n\nimport { COMMAND_LOGGER_ENABLED, CoreContainer, EVENT_LOGGER_ENABLED, initHermesApi, runHermes } from '@generic-ui/hermes';\n\nimport { fabricImports } from './structure-fabric.imports';\nimport { PagingFeatureModule } from '../../../feature/structure/paging/src/paging.feature-module';\nimport { StructureInfoPanelModule } from './panel/info/structure.info-panel.module';\nimport { StructureComponent } from './structure/structure.component';\nimport { StructureHeaderComponent } from './header/structure-header.component';\nimport { StructureHeaderColumnsComponent } from './header/column/structure-header-columns.component';\nimport { StructureHeaderFiltersComponent } from './header/filters/structure-header-filters.component';\nimport { StructureHeaderFilterComponent } from './header/filters/structure.header-filter.component';\nimport { StructureContentComponent } from './content/structure-content.component';\nimport { StructureRowComponent } from './content/row/structure-row.component';\nimport { StructureCellComponent } from './content/cell/structure.cell.component';\nimport { StructureContainerComponent } from './content/container/structure-container.component';\nimport { StructureQuickFiltersComponent } from './header/quick-filters/structure.quick-filters.component';\nimport { StructureBlueprintComponent } from './blueprint/structure.blueprint.component';\nimport { StructureColumnConfigComponent } from './header/menu/config/structure.column-config.component';\nimport { STRUCTURE_CSS_CLASS_NAME } from './blueprint/structure-tokens';\nimport { StructureDefinition } from './structure/structure-definition';\nimport { StructureIdGenerator } from './structure/structure-id.generator';\nimport { StructureModuleConfig } from './structure/structure-module-config';\nimport { LoggerModule } from '../../../feature/common/cdk/src/logger/logger.module';\nimport { ItemFactory } from '../../../core/structure/source/src/core-read/item/item.factory';\nimport { StructureTopPanelModule } from './panel/top/structure.top-panel.module';\nimport { StructureColumnMenuModule } from './header/menu/structure.column-menu.module';\nimport { StructureColumnManagerModule } from './column-manager/structure.column-manager.module';\nimport { StructureCellEditComponent } from './content/cell/edit/structure.cell-edit.component';\nimport { StructureThemeConverter } from './schema/structure.theme.converter';\nimport { StructureCellEditBooleanComponent } from './content/cell/boolean/structure.cell-edit-boolean.component';\nimport { StructureRowDetailViewComponent } from './row-detail/view/structure.row-detail-view.component';\nimport { StructureTitlePanelComponent } from './panel/banner-panels/title-panel/structure.title-panel.component';\nimport { StructureFooterPanelComponent } from './panel/banner-panels/footer-panel/structure.footer-panel.component';\nimport { EmptySourceFeatureModule } from '../../../feature/structure/source/src/empty/empty-source.feature-module';\nimport { SortingFeatureModule } from '../../../feature/structure/sorting/src/sorting.feature-module';\nimport { FieldFeatureModule } from '../../../feature/structure/field/src/field.feature-module';\nimport { SearchFeatureModule } from '../../../feature/structure/search/src/search.feature-module';\nimport { SchemaManagerModule } from '../../../feature/schema/src/manager/schema-manager.module';\nimport { SummariesFeatureModule } from '../../../feature/structure/summaries/src/summaries.feature-module';\nimport { VerticalFormationFeatureModule } from '../../../feature/structure/vertical-formation/src/vertical-formation.feature-module';\nimport { SchemaFeatureModule } from '../../../feature/schema/src/schema.feature-module';\nimport { CompositionFeatureModule } from '../../../feature/composition/src/composition.feature-module';\nimport { TranslationFeatureModule } from '../../../feature/l10n/src/translation.feature-module';\nimport { StructureHeaderGroupsComponent } from './header/group/structure-header-groups.component';\nimport { structureGates } from './structure/gate/structure.gates';\nimport { FilterMenuFeatureModule } from '../../../feature/structure/filter/src/menu/filter-menu.feature-module';\nimport { SourceFeatureModule } from '../../../feature/structure/source/src/source.feature-module';\nimport { StructureSharedModule } from '../../../feature/structure/common/src/structure-shared.module';\nimport { SanitizeModule } from '../../../feature/common/cdk/src/sanitize/sanitize.module';\nimport { ResizeDetectorModule } from '../../../feature/common/cdk/src/resize-detector/resize-detector.module';\nimport { StructureCellEditArchive } from './edit/structure.cell-edit.archive';\nimport { FormationFeatureModule } from '../../../feature/structure/formation/src/formation.feature-module';\nimport { StructureArrowIconModule } from '../../../feature/common/icons/arrow/structure.arrow-icon.module';\nimport { StructureMenuIconModule } from '../../../feature/common/icons/menu/structure.menu-icon.module';\nimport { initializeStructure } from '../../../core/structure/structure-core/src/api/structure.api-module';\nimport { StructurePublisher } from '../../../core/structure/structure-core/src/api/structure.publisher';\nimport { StructureWarehouse } from '../../../core/structure/structure-core/src/api/structure.warehouse';\nimport { StructureInitialValuesReadyArchive } from '../../../core/structure/structure-core/src/api/ready/structure.initial-values-ready.archive';\nimport { initializeListView } from '../../../core/list-view/src/api/list-view.api-module';\nimport { GuiTemplateModule } from '../../../feature/gui-angular/template/gui.template.module';\n\nexport function provideStructureCommandInvoker() {\n\treturn CoreContainer.resolve(StructurePublisher);\n}\n\nexport function provideStructureWarehouse() {\n\treturn CoreContainer.resolve(StructureWarehouse);\n}\n\nexport function provideStructureInitialValuesReadyArchive() {\n\treturn CoreContainer.resolve(StructureInitialValuesReadyArchive);\n}\n\nexport const structureProviders = [\n\t{ provide: StructurePublisher, useFactory: provideStructureCommandInvoker },\n\t{ provide: StructureWarehouse, useFactory: provideStructureWarehouse },\n\t{ provide: StructureInitialValuesReadyArchive, useFactory: provideStructureInitialValuesReadyArchive }\n];\n\n\nexport function createStructureDefinition() {\n\treturn new StructureDefinition.DefaultBuilder().build();\n}\n\nconst icons = [\n\tStructureArrowIconModule,\n\tStructureMenuIconModule\n];\n\nconst imports = [\n\tCommonModule,\n\tReactiveFormsModule,\n\tTranslationFeatureModule,\n\tGuiTemplateModule,\n\n\t// .withConfig({\n\t// \tloggers: false\n\t// }),\n\tfabricImports,\n\tResizeDetectorModule,\n\n\tPagingFeatureModule,\n\tSortingFeatureModule,\n\tFieldFeatureModule,\n\tFormationFeatureModule,\n\tSearchFeatureModule,\n\tFilterMenuFeatureModule,\n\tSourceFeatureModule,\n\tSummariesFeatureModule,\n\tVerticalFormationFeatureModule,\n\n\tSchemaFeatureModule,\n\n\tStructureSharedModule,\n\n\tStructureInfoPanelModule,\n\tStructureTopPanelModule,\n\tStructureColumnMenuModule,\n\tStructureColumnManagerModule,\n\tSchemaManagerModule,\n\n\tEmptySourceFeatureModule,\n\n\tCompositionFeatureModule,\n\n\tLoggerModule,\n\tSanitizeModule,\n\n\ticons\n\n];\n\nconst declarations = [\n\tStructureComponent,\n\tStructureHeaderComponent,\n\tStructureHeaderColumnsComponent,\n\tStructureHeaderGroupsComponent,\n\tStructureHeaderFiltersComponent,\n\tStructureHeaderFilterComponent,\n\tStructureContentComponent,\n\tStructureRowComponent,\n\tStructureCellComponent,\n\tStructureCellEditComponent,\n\tStructureCellEditBooleanComponent,\n\tStructureContainerComponent,\n\tStructureQuickFiltersComponent,\n\tStructureBlueprintComponent,\n\tStructureRowDetailViewComponent,\n\tStructureTitlePanelComponent,\n\tStructureFooterPanelComponent,\n\n\tstructureGates\n];\n\nconst exportDeclarations = [\n\tFabricModule,\n\tStructureComponent,\n\tStructureHeaderComponent,\n\tStructureContentComponent,\n\tStructureRowComponent,\n\tStructureContainerComponent,\n\n\tfabricImports,\n\tPagingFeatureModule,\n\tstructureGates\n];\n\n\nexport function provideStructureCellEditArchive() {\n\treturn CoreContainer.resolve(StructureCellEditArchive);\n}\n\nexport function provideFabricModalThemeService() {\n\treturn CoreContainer.resolve(FabricModalThemeService);\n}\n\ninitializeListView();\ninitializeStructure();\n\n@NgModule({\n\timports: [\n\t\timports\n\t],\n\tdeclarations,\n\texports: exportDeclarations\n})\nexport class GridViewFeatureModule {\n\n\tprivate static readonly HERMES_API = 'hermesApi';\n\n\tstatic exportDeclarations = Array.from(exportDeclarations);\n\n\tstatic withConfig(structureConfig: StructureModuleConfig = {\n\t\tcssClassName: '',\n\t\thermesModuleConfig: { loggers: false }\n\t}): ModuleWithProviders<GridViewFeatureModule> {\n\t\treturn {\n\t\t\tngModule: GridViewFeatureModule,\n\t\t\tproviders: [\n\t\t\t\t{\n\t\t\t\t\tprovide: STRUCTURE_CSS_CLASS_NAME,\n\t\t\t\t\tuseValue: structureConfig.cssClassName\n\t\t\t\t},\n\t\t\t\t{ provide: COMMAND_LOGGER_ENABLED, useValue: structureConfig.hermesModuleConfig.loggers },\n\t\t\t\t{ provide: EVENT_LOGGER_ENABLED, useValue: structureConfig.hermesModuleConfig.loggers },\n\t\t\t\t{\n\t\t\t\t\tprovide: STRUCTURE_CSS_CLASS_NAME,\n\t\t\t\t\tuseValue: 'structure'\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tprovide: StructureDefinition,\n\t\t\t\t\tuseFactory: createStructureDefinition\n\t\t\t\t},\n\t\t\t\tItemFactory,\n\t\t\t\tStructureThemeConverter,\n\n\t\t\t\tStructureIdGenerator,\n\n\t\t\t\t{ provide: StructureCellEditArchive, useFactory: provideStructureCellEditArchive },\n\t\t\t\t{ provide: FabricModalThemeService, useFactory: provideFabricModalThemeService },\n\n\t\t\t\tstructureProviders\n\n\t\t\t]\n\t\t};\n\t}\n\n\tconstructor(\n\t\t@Inject(PLATFORM_ID) private platformId: any\n\t) {\n\n\t\trunHermes();\n\n\t\tif (isPlatformBrowser(this.platformId)) {\n\t\t\tinitHermesApi();\n\t\t\twindow[GridViewFeatureModule.HERMES_API].loggers = false;\n\t\t}\n\n\t}\n\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable()\nexport class GuiGridIdGenerator {\n\n\tprivate static readonly PREFIX = 'gui-grid-';\n\n\tprivate static index = 0;\n\n\tgenerateId(): string {\n\t\tGuiGridIdGenerator.index++;\n\n\t\treturn GuiGridIdGenerator.PREFIX + GuiGridIdGenerator.index;\n\t}\n}\n","import { NgModule, Provider } from '@angular/core';\n\nimport { GuiGridComponent } from '../../feature/gui.grid.component';\n\nimport { GridViewFeatureModule } from '../../../../../feature-view/grid-view/src/grid-view.feature-module';\n\nimport { GuiGridIdGenerator } from '../../feature/register/gui.grid-id.generator';\nimport { GuiGridRegister } from '../../feature/register/gui.grid.register';\nimport { GuiGridColumnComponent } from '../../feature/column/gui.grid-column.component';\n\n\nconst imports = [\n\tGridViewFeatureModule.withConfig({\n\t\tcssClassName: 'grid',\n\t\thermesModuleConfig: {\n\t\t\tloggers: true\n\t\t}\n\t})\n];\n\nconst declarations = [\n\tGuiGridComponent,\n\tGuiGridColumnComponent\n];\n\nconst providers = [\n\tGuiGridIdGenerator,\n\tGuiGridRegister\n] as Array<Provider>;\n\nconst exportDeclarations = [\n\tGuiGridComponent,\n\tGuiGridColumnComponent\n];\n\nconst elementComponents = [\n\tGuiGridComponent,\n\tGuiGridColumnComponent\n];\n\n@NgModule({\n\timports,\n\tdeclarations,\n\tproviders,\n\texports: exportDeclarations\n})\nexport class GuiGridModule {\n\n\tstatic exportDeclarations = Array.from(exportDeclarations);\n\n\tstatic elementComponents = Array.from(elementComponents);\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.SchemaWarehouse","i1.StructureInfoPanelConfigConverter","i2.StructureInfoPanelArchive","i1.ColumnAutoConfigurator","i2.StructureId","i3.CompositionId","i4.SchemaReadModelRootId","i5.StructurePublisher","i6.PagingPublisher","i7.PagingEventRepository","i8.SortingPublisher","i9.SearchPublisher","i10.SourcePublisher","i11.SourceEventService","i12.SchemaPublisher","i13.CompositionPublisher","i14.CompositionEventRepository","i15.FormationEventRepository","i16.StructureEditModeArchive","i17.StructureCellEditArchive","i18.StructureInfoPanelConfigService","i19.StructureCellEditStore","i20.ColumnFieldFactory","i21.FormationPublisher","i22.SearchEventRepository","i23.StructureHeaderBottomEnabledArchive","i24.SchemaEventRepository","i25.TranslationFacade","i26.StructureInitialValuesReadyArchive","i1.StructureId","i2.StructureRowDetailConfigArchive","i3.FormationEventRepository","i4","i1.GuiSubscriber","i1.TranslationFacade","i1","i2.TranslationPipe","i2.PagingPublisher","i3","i4.TranslationPipe","i1.CssClassModifier","i3.PagingWarehouse","i4.PagingPublisher","i5.SourceWarehouse","i6.PagingDisplayModeArchive","i7","i8.GuiLetDirective","i9.PagingNavigatorComponent","i10.PagingSelectComponent","i11.PagingStatsComponent","i12.AlternativePagingNavigatorComponent","i13.AlternativePagingPagesComponent","i2.PercentageViewComponent","i2.SafePipe","i2.FunctionViewComponent","i3.BarViewComponent","i4.PercentageViewComponent","i5.TextViewComponent","i6.HtmlViewComponent","i1.ViewTemplateFactory","i1.StringEditTemplateComponent","i2.NumberEditTemplateComponent","i3.BooleanEditTemplateComponent","i4.DateEditTemplateComponent","i1.EditTemplateFactory","i1.CompositionWarehouse","i2.ViewTemplateRepository","i3.EditTemplateRepository","i1.SummariesEventRepository","i2.TranslationFacade","i3.SourceWarehouse","i5","i6.GuiLetDirective","i7.TranslationPipe","i8.GuiPushPipe","i1.CompositionId","i2.CompositionPublisher","i3.CompositionTemplateWarehouse","i1.StructureColumnManagerComponent","i2.StructureThemeConverter","i2.SchemaPublisher","i4.GuiLetDirective","i5.TranslationPipe","i6.GuiPushPipe","i1.StructureSchemaMangerComponent","i2.GuiLetDirective","i1.FilterPublisher","i2","i3.GuiLetDirective","i4.ActiveSearchComponent","i1.ActiveFilterListComponent","i2.ActiveFilterService","i3.SchemaReadModelRootId","i2.CompositionId","i4.StructureDialogColumnManagerService","i5.TranslationFacade","i6.StructureDialogSchemaManagerService","i7.StructureInfoPanelArchive","i8","i9.StructureColumnManagerIconComponent","i10.StructureSchemaManagerIconComponent","i11.ActiveFilterMenuTriggerDirective","i12.GuiLetDirective","i13.StructureInfoIconComponent","i14.NumberFormatterPipe","i15.TranslationPipe","i2.GuiEffects","i3.SearchPublisher","i5.GuiIfDirective","i6.SearchIconComponent","i7.GuiPushPipe","i1.SearchComponent","i2.FilterWarehouse","i3.FilterPublisher","i3.SortingPublisher","i4.CompositionWarehouse","i7.StructureArrowIconComponent","i8.TranslationPipe","i1.TranslationPipe","i1.StructureArrowIconComponent","i6","i7.GuiLetDirective","i8.StructureMenuColumnManagerComponent","i9.UniqueValueListComponent","i10.StructureColumnConfigSortComponent","i11.StructureColumnConfigColumnHideComponent","i12.StructureColumnConfigColumnMoveComponent","i13.TranslationPipe","i1.SchemaReadModelRootId","i2.SchemaWarehouse","i3.StructureThemeConverter","i1.FormationPublisher","i2.FormationPublisher","i3.FormationWarehouse","i5.GuiLetDirective","i1.StructureColumnConfigService","i3.GuiIfDirective","i4.StructureColumnMenuIconComponent","i3.StructureSelectCustomService","i4.FormationPublisher","i5.SortingPublisher","i7.SelectAllComponent","i8.StructureColumnConfigTriggerComponent","i9.StructureArrowIconComponent","i3.FormationPublisher","i4.SortingPublisher","i6.SelectAllComponent","i3.GuiEffects","i4.StructureId","i1.FilterWarehouse","i2.FormationWarehouse","i6.GuiStyleDirective","i7.StructureHeaderColumnsComponent","i8.StructureHeaderGroupsComponent","i9.StructureHeaderFiltersComponent","i2.SourcePublisher","i3.StructureCellEditStore","i4.StructureCellEditCloseAllService","i5.SourcePublisher","i6.CompositionWarehouse","i8.StructureCellEditBooleanComponent","i4.CssClassModifier","i7.StructureCellComponent","i2.StructureEditModeArchive","i4.StructureWarehouse","i5.VerticalFormationWarehouse","i6.StructureId","i7.SchemaReadModelRootId","i8.SearchWarehouse","i9.SchemaWarehouse","i10","i11.GuiLetDirective","i12.StructureRowComponent","i13.StructureContentComponent","Optional","i1.StructureTitlePanelConfigArchive","i2.GuiPushPipe","i3.SafePipe","i1.StructureFooterPanelConfigArchive","i4.GuiIfDirective","i5.PagingComponent","i6.StructureSummariesPanelComponent","i7.StructureInfoPanelComponent","i8.StructureTopPanelComponent","i9.EmptySourceComponent","i10.StructureHeaderComponent","i11.StructureContainerComponent","i12.StructureTitlePanelComponent","i13.StructureFooterPanelComponent","i14.GuiPushPipe","i3.PagingPublisher","i4.PagingEventRepository","i6.SourceEventService","i7.SortingPublisher","i8.SearchPublisher","i9.FieldPublisher","i10.SchemaPublisher","i11.CompositionPublisher","i12.CompositionEventRepository","i13.FormationEventRepository","i14.StructurePublisher","i15.StructureEditModeArchive","i16.StructureCellEditArchive","i17.StructureInfoPanelArchive","i21.StructureColumnMenuConfigArchive","i22.PagingDisplayModeArchive","i23.FormationPublisher","i24.SearchEventRepository","i25.StructureHeaderBottomEnabledArchive","i26.StructureRowDetailConfigArchive","i27.StructureTitlePanelConfigArchive","i28.StructureFooterPanelConfigArchive","i29.SchemaEventRepository","i30.TranslationFacade","i31.StructureInitialValuesReadyArchive","i32.ColumnAutoConfigurator","i33.StructureDefinition","i34.StructureWarehouse","i35.CompositionWarehouse","i36.SchemaCssClassManager","i37.SchemaReadModelRootId","i38.StructureRowDetailService","i39","i40","i41.StructureBlueprintComponent","i1.StructureHeaderTopEnabledArchive","i2.StructureHeaderBottomEnabledArchive","i5.PagingDisplayModeArchive","i2.SearchEventRepository","i2.FormationEventRepository","i2.StructureFooterPanelConfigArchive","i1.StructureRowDetailConfigArchive","i1.StructureColumnMenuConfigArchive","i2.SummariesPublisher","i1.StructureInfoPanelConfigService","i3.SchemaEventRepository","i2.SortingPublisher","i2.StructurePublisher","i1.GuiGridRegister","i2.StructureIdGenerator","i4.FormationWarehouse","i5.CompositionPublisher","i7.FilterIntegration","i8.SourcePublisher","i11.StructurePublisher","i12.SummariesPublisher","i13.SortingPublisher","i14.PagingPublisher","i15.StructureComponent","i16.StructureColumnHeaderGate","i17.StructurePagingGate","i18.StructureSearchingGate","i19.StructureSelectionGate","i20.StructureL10nGate","i21.StructurePanelGate","i22.StructureRowDetailGate","i23.StructureColumnMenuGate","i24.StructureSummariesGate","i25.StructureInfoPanelGate","i26.StructureRowClassGate","i27.StructureRowStyleGate","i28.StructureRowColoringGate","i29.ThemeGridGate","i30.StructureSortingGate","i31.SourceLoadingGate","i32.StructureFilterGate","i33.StructureQuickFiltersGate","i34.VerticalFormationGate","declarations","i1.GuiEffects","i4.FilterTypeSelectorComponent","i5.FilterValueComponent","i6.FieldSelectorComponent","i7.FilterMenuActiveFiltersComponent","i3.FilterWarehouse","i6.FilterIconComponent","icon","icons","exportDeclarations","i1.StructureSelectCustomService","imports","i1.StructureColumnHeaderGate","i2.StructurePagingGate","i3.StructureSearchingGate","i4.StructureSelectionGate","i5.StructureL10nGate","i6.StructurePanelGate","i7.StructureRowDetailGate","i8.StructureColumnMenuGate","i9.StructureSummariesGate","i10.StructureInfoPanelGate","i11.StructureRowClassGate","i12.StructureRowStyleGate","i13.StructureRowColoringGate","i14.ThemeGridGate","i15.StructureSortingGate","i16.SourceLoadingGate","i17.StructureFilterGate","i18.StructureQuickFiltersGate","i19.VerticalFormationGate"],"mappings":"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"}