@igo2/common 18.0.1-next.2 → 18.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/entity/src/entity-table/entity-table.theming.scss +1 -1
- package/esm2022/action/action.module.mjs +19 -0
- package/esm2022/action/actionbar/actionbar-item.component.mjs +192 -0
- package/esm2022/action/actionbar/actionbar.component.mjs +277 -0
- package/esm2022/action/actionbar/actionbar.module.mjs +19 -0
- package/esm2022/action/igo2-common-action.mjs +5 -0
- package/esm2022/action/public_api.mjs +5 -0
- package/esm2022/action/shared/action.enums.mjs +7 -0
- package/esm2022/action/shared/action.interfaces.mjs +2 -0
- package/esm2022/action/shared/index.mjs +4 -0
- package/esm2022/action/shared/store.mjs +8 -0
- package/esm2022/backdrop/backdrop.component.mjs +21 -0
- package/esm2022/backdrop/backdrop.module.mjs +25 -0
- package/esm2022/backdrop/igo2-common-backdrop.mjs +5 -0
- package/esm2022/backdrop/public_api.mjs +3 -0
- package/esm2022/badge/badge-icon.directive.mjs +149 -0
- package/esm2022/badge/badge-icon.module.mjs +25 -0
- package/esm2022/badge/igo2-common-badge.mjs +5 -0
- package/esm2022/badge/public_api.mjs +3 -0
- package/esm2022/clickout/clickout.directive.mjs +32 -0
- package/esm2022/clickout/clickout.module.mjs +25 -0
- package/esm2022/clickout/igo2-common-clickout.mjs +5 -0
- package/esm2022/clickout/public_api.mjs +3 -0
- package/esm2022/clone/clone.module.mjs +25 -0
- package/esm2022/clone/clone.pipe.mjs +25 -0
- package/esm2022/clone/igo2-common-clone.mjs +5 -0
- package/esm2022/clone/public_api.mjs +3 -0
- package/esm2022/collapsible/collapse.directive.mjs +57 -0
- package/esm2022/collapsible/collapsible.component.mjs +38 -0
- package/esm2022/collapsible/collapsible.module.mjs +26 -0
- package/esm2022/collapsible/igo2-common-collapsible.mjs +5 -0
- package/esm2022/collapsible/public_api.mjs +10 -0
- package/esm2022/color/color-picker-form-field/color-picker-form-field.component.mjs +104 -0
- package/esm2022/color/color-picker-form-field/color-picker-form-field.module.mjs +19 -0
- package/esm2022/color/color-picker-form-field/index.mjs +3 -0
- package/esm2022/color/igo2-common-color.mjs +5 -0
- package/esm2022/color/public_api.mjs +2 -0
- package/esm2022/confirm-dialog/confirm-dialog.component.mjs +31 -0
- package/esm2022/confirm-dialog/confirm-dialog.interface.mjs +2 -0
- package/esm2022/confirm-dialog/confirm-dialog.module.mjs +27 -0
- package/esm2022/confirm-dialog/confirm-dialog.service.mjs +35 -0
- package/esm2022/confirm-dialog/igo2-common-confirm-dialog.mjs +5 -0
- package/esm2022/confirm-dialog/public_api.mjs +5 -0
- package/esm2022/context-menu/context-menu.directive.mjs +109 -0
- package/esm2022/context-menu/context-menu.module.mjs +26 -0
- package/esm2022/context-menu/igo2-common-context-menu.mjs +5 -0
- package/esm2022/context-menu/long-press.directive.mjs +65 -0
- package/esm2022/context-menu/public_api.mjs +10 -0
- package/esm2022/custom-html/custom-html.component.mjs +21 -0
- package/esm2022/custom-html/custom-html.module.mjs +25 -0
- package/esm2022/custom-html/custom-html.pipe.mjs +23 -0
- package/esm2022/custom-html/igo2-common-custom-html.mjs +5 -0
- package/esm2022/custom-html/public_api.mjs +10 -0
- package/esm2022/dom/dom.interfaces.mjs +2 -0
- package/esm2022/dom/dom.module.mjs +27 -0
- package/esm2022/dom/dom.service.mjs +35 -0
- package/esm2022/dom/igo2-common-dom.mjs +5 -0
- package/esm2022/dom/public_api.mjs +4 -0
- package/esm2022/drag-drop/drag-drop.directive.mjs +82 -0
- package/esm2022/drag-drop/drag-drop.module.mjs +26 -0
- package/esm2022/drag-drop/igo2-common-drag-drop.mjs +5 -0
- package/esm2022/drag-drop/public_api.mjs +4 -0
- package/esm2022/drag-drop/tree-drag-drop/index.mjs +3 -0
- package/esm2022/drag-drop/tree-drag-drop/tree-drag-drop.directive.mjs +391 -0
- package/esm2022/drag-drop/tree-drag-drop/tree-drag-drop.interface.mjs +2 -0
- package/esm2022/dynamic-component/dynamic-component.module.mjs +19 -0
- package/esm2022/dynamic-component/dynamic-outlet/dynamic-outlet.component.mjs +129 -0
- package/esm2022/dynamic-component/dynamic-outlet/dynamic-outlet.module.mjs +19 -0
- package/esm2022/dynamic-component/igo2-common-dynamic-component.mjs +5 -0
- package/esm2022/dynamic-component/public_api.mjs +5 -0
- package/esm2022/dynamic-component/shared/dynamic-component.interfaces.mjs +2 -0
- package/esm2022/dynamic-component/shared/dynamic-component.mjs +183 -0
- package/esm2022/dynamic-component/shared/dynamic-component.service.mjs +30 -0
- package/esm2022/dynamic-component/shared/index.mjs +4 -0
- package/esm2022/entity/entity-selector/entity-selector.component.mjs +174 -0
- package/esm2022/entity/entity-selector/entity-selector.module.mjs +19 -0
- package/esm2022/entity/entity-selector/index.mjs +3 -0
- package/esm2022/entity/entity-table/entity-table-row.directive.mjs +138 -0
- package/esm2022/entity/entity-table/entity-table.component.mjs +883 -0
- package/esm2022/entity/entity-table/entity-table.module.mjs +19 -0
- package/esm2022/entity/entity-table/index.mjs +3 -0
- package/esm2022/entity/entity-table-paginator/entity-table-paginator.component.mjs +158 -0
- package/esm2022/entity/entity-table-paginator/entity-table-paginator.interface.mjs +2 -0
- package/esm2022/entity/entity-table-paginator/entity-table-paginator.module.mjs +19 -0
- package/esm2022/entity/entity-table-paginator/index.mjs +4 -0
- package/esm2022/entity/entity.module.mjs +30 -0
- package/esm2022/entity/igo2-common-entity.mjs +5 -0
- package/esm2022/entity/public_api.mjs +6 -0
- package/esm2022/entity/shared/entity.enums.mjs +28 -0
- package/esm2022/entity/shared/entity.interfaces.mjs +2 -0
- package/esm2022/entity/shared/entity.utils.mjs +73 -0
- package/esm2022/entity/shared/index.mjs +10 -0
- package/esm2022/entity/shared/state.mjs +194 -0
- package/esm2022/entity/shared/store.mjs +322 -0
- package/esm2022/entity/shared/strategies/filter-custom-function.mjs +80 -0
- package/esm2022/entity/shared/strategies/filter-selection.mjs +81 -0
- package/esm2022/entity/shared/strategies/index.mjs +4 -0
- package/esm2022/entity/shared/strategies/strategy.mjs +82 -0
- package/esm2022/entity/shared/transaction.mjs +329 -0
- package/esm2022/entity/shared/view.mjs +330 -0
- package/esm2022/entity/shared/watcher.mjs +135 -0
- package/esm2022/environment/environment.interface.mjs +2 -0
- package/esm2022/environment/igo2-common-environment.mjs +5 -0
- package/esm2022/environment/public_api.mjs +2 -0
- package/esm2022/flexible/flexible.component.mjs +137 -0
- package/esm2022/flexible/flexible.module.mjs +25 -0
- package/esm2022/flexible/flexible.type.mjs +2 -0
- package/esm2022/flexible/igo2-common-flexible.mjs +5 -0
- package/esm2022/flexible/public_api.mjs +4 -0
- package/esm2022/form/form/form.component.mjs +105 -0
- package/esm2022/form/form/form.module.mjs +19 -0
- package/esm2022/form/form/index.mjs +3 -0
- package/esm2022/form/form-dialog/form-dialog.component.mjs +94 -0
- package/esm2022/form/form-dialog/form-dialog.interface.mjs +2 -0
- package/esm2022/form/form-dialog/form-dialog.module.mjs +31 -0
- package/esm2022/form/form-dialog/form-dialog.service.mjs +30 -0
- package/esm2022/form/form-dialog/index.mjs +5 -0
- package/esm2022/form/form-field/form-field-select.component.mjs +117 -0
- package/esm2022/form/form-field/form-field-text.component.mjs +126 -0
- package/esm2022/form/form-field/form-field-textarea.component.mjs +95 -0
- package/esm2022/form/form-field/form-field.component.mjs +65 -0
- package/esm2022/form/form-field/form-field.directive.mjs +11 -0
- package/esm2022/form/form-field/form-field.module.mjs +23 -0
- package/esm2022/form/form-field/index.mjs +7 -0
- package/esm2022/form/form-group/form-group.component.mjs +81 -0
- package/esm2022/form/form-group/form-group.module.mjs +19 -0
- package/esm2022/form/form-group/index.mjs +3 -0
- package/esm2022/form/form.module.mjs +32 -0
- package/esm2022/form/igo2-common-form.mjs +5 -0
- package/esm2022/form/public_api.mjs +7 -0
- package/esm2022/form/shared/form-field-component.mjs +7 -0
- package/esm2022/form/shared/form-field.service.mjs +28 -0
- package/esm2022/form/shared/form.interfaces.mjs +2 -0
- package/esm2022/form/shared/form.service.mjs +82 -0
- package/esm2022/form/shared/form.utils.mjs +41 -0
- package/esm2022/form/shared/index.mjs +6 -0
- package/esm2022/home-button/home-button.component.mjs +25 -0
- package/esm2022/home-button/home-button.module.mjs +19 -0
- package/esm2022/home-button/igo2-common-home-button.mjs +5 -0
- package/esm2022/home-button/public_api.mjs +3 -0
- package/esm2022/icon/icon/icon.component.mjs +38 -0
- package/esm2022/icon/icon.provider.mjs +14 -0
- package/esm2022/icon/igo2-common-icon.mjs +5 -0
- package/esm2022/icon/public_api.mjs +4 -0
- package/esm2022/icon/shared/icon.interface.mjs +2 -0
- package/esm2022/icon/shared/icon.service.mjs +26 -0
- package/esm2022/icon/shared/icons.mjs +40 -0
- package/esm2022/icon/shared/index.mjs +4 -0
- package/esm2022/igo2-common.mjs +5 -0
- package/esm2022/image/igo2-common-image.mjs +5 -0
- package/esm2022/image/image-error.directive.mjs +35 -0
- package/esm2022/image/image.module.mjs +26 -0
- package/esm2022/image/public_api.mjs +7 -0
- package/esm2022/image/secure-image.pipe.mjs +66 -0
- package/esm2022/interactive-tour/igo2-common-interactive-tour.mjs +5 -0
- package/esm2022/interactive-tour/interactive-tour.component.mjs +131 -0
- package/esm2022/interactive-tour/interactive-tour.interface.mjs +2 -0
- package/esm2022/interactive-tour/interactive-tour.loader.mjs +49 -0
- package/esm2022/interactive-tour/interactive-tour.module.mjs +19 -0
- package/esm2022/interactive-tour/interactive-tour.service.mjs +303 -0
- package/esm2022/interactive-tour/public_api.mjs +6 -0
- package/esm2022/json-dialog/igo2-common-json-dialog.mjs +5 -0
- package/esm2022/json-dialog/json-dialog.component.mjs +38 -0
- package/esm2022/json-dialog/json-dialog.module.mjs +26 -0
- package/esm2022/json-dialog/json-dialog.service.mjs +26 -0
- package/esm2022/json-dialog/public_api.mjs +4 -0
- package/esm2022/keyvalue/igo2-common-keyvalue.mjs +5 -0
- package/esm2022/keyvalue/keyvalue.module.mjs +25 -0
- package/esm2022/keyvalue/keyvalue.pipe.mjs +19 -0
- package/esm2022/keyvalue/public_api.mjs +3 -0
- package/esm2022/list/igo2-common-list.mjs +5 -0
- package/esm2022/list/list-item.directive.mjs +166 -0
- package/esm2022/list/list.component.mjs +252 -0
- package/esm2022/list/list.module.mjs +26 -0
- package/esm2022/list/public_api.mjs +7 -0
- package/esm2022/panel/igo2-common-panel.mjs +5 -0
- package/esm2022/panel/panel.component.mjs +30 -0
- package/esm2022/panel/panel.module.mjs +19 -0
- package/esm2022/panel/public_api.mjs +3 -0
- package/esm2022/public_api.mjs +20 -0
- package/esm2022/select-value-dialog/igo2-common-select-value-dialog.mjs +5 -0
- package/esm2022/select-value-dialog/public_api.mjs +6 -0
- package/esm2022/select-value-dialog/select-value-check-radio-dialog.component.mjs +103 -0
- package/esm2022/select-value-dialog/select-value-dialog.enums.mjs +6 -0
- package/esm2022/select-value-dialog/select-value-dialog.interface.mjs +2 -0
- package/esm2022/select-value-dialog/select-value-dialog.module.mjs +27 -0
- package/esm2022/select-value-dialog/select-value-dialog.service.mjs +29 -0
- package/esm2022/sidenav/igo2-common-sidenav.mjs +5 -0
- package/esm2022/sidenav/public_api.mjs +3 -0
- package/esm2022/sidenav/sidenav-shim.directive.mjs +58 -0
- package/esm2022/sidenav/sidenav.module.mjs +25 -0
- package/esm2022/spinner/igo2-common-spinner.mjs +5 -0
- package/esm2022/spinner/public_api.mjs +4 -0
- package/esm2022/spinner/spinner-activity.directive.mjs +56 -0
- package/esm2022/spinner/spinner.component.mjs +29 -0
- package/esm2022/spinner/spinner.module.mjs +26 -0
- package/esm2022/stop-propagation/igo2-common-stop-propagation.mjs +5 -0
- package/esm2022/stop-propagation/public_api.mjs +10 -0
- package/esm2022/stop-propagation/stop-drop-propagation.directive.mjs +21 -0
- package/esm2022/stop-propagation/stop-propagation.directive.mjs +20 -0
- package/esm2022/stop-propagation/stop-propagation.module.mjs +26 -0
- package/esm2022/table/igo2-common-table.mjs +5 -0
- package/esm2022/table/public_api.mjs +7 -0
- package/esm2022/table/table-action-color.enum.mjs +7 -0
- package/esm2022/table/table-database.mjs +28 -0
- package/esm2022/table/table-datasource.mjs +66 -0
- package/esm2022/table/table-model.interface.mjs +2 -0
- package/esm2022/table/table.component.mjs +143 -0
- package/esm2022/table/table.module.mjs +25 -0
- package/esm2022/tool/igo2-common-tool.mjs +5 -0
- package/esm2022/tool/public_api.mjs +4 -0
- package/esm2022/tool/shared/index.mjs +6 -0
- package/esm2022/tool/shared/tool-component.mjs +9 -0
- package/esm2022/tool/shared/tool.interface.mjs +2 -0
- package/esm2022/tool/shared/tool.service.mjs +43 -0
- package/esm2022/tool/shared/toolbox.enums.mjs +2 -0
- package/esm2022/tool/shared/toolbox.mjs +192 -0
- package/esm2022/tool/tool.module.mjs +28 -0
- package/esm2022/tool/toolbox/index.mjs +3 -0
- package/esm2022/tool/toolbox/toolbox.animation.mjs +10 -0
- package/esm2022/tool/toolbox/toolbox.component.mjs +241 -0
- package/esm2022/tool/toolbox/toolbox.module.mjs +19 -0
- package/esm2022/widget/igo2-common-widget.mjs +5 -0
- package/esm2022/widget/public_api.mjs +4 -0
- package/esm2022/widget/shared/index.mjs +4 -0
- package/esm2022/widget/shared/widget.interfaces.mjs +2 -0
- package/esm2022/widget/shared/widget.mjs +4 -0
- package/esm2022/widget/shared/widget.service.mjs +22 -0
- package/esm2022/widget/widget-outlet/index.mjs +3 -0
- package/esm2022/widget/widget-outlet/widget-outlet.component.mjs +112 -0
- package/esm2022/widget/widget-outlet/widget-outlet.module.mjs +19 -0
- package/esm2022/widget/widget.module.mjs +22 -0
- package/esm2022/workspace/igo2-common-workspace.mjs +5 -0
- package/esm2022/workspace/public_api.mjs +5 -0
- package/esm2022/workspace/shared/index.mjs +4 -0
- package/esm2022/workspace/shared/store.mjs +37 -0
- package/esm2022/workspace/shared/workspace.interfaces.mjs +2 -0
- package/esm2022/workspace/shared/workspace.mjs +143 -0
- package/esm2022/workspace/workspace-selector/index.mjs +3 -0
- package/esm2022/workspace/workspace-selector/workspace-selector.component.mjs +51 -0
- package/esm2022/workspace/workspace-selector/workspace-selector.module.mjs +19 -0
- package/esm2022/workspace/workspace-widget-outlet/index.mjs +3 -0
- package/esm2022/workspace/workspace-widget-outlet/workspace-widget-outlet.component.mjs +73 -0
- package/esm2022/workspace/workspace-widget-outlet/workspace-widget-outlet.module.mjs +19 -0
- package/esm2022/workspace/workspace.module.mjs +27 -0
- package/fesm2022/igo2-common-action.mjs +16 -16
- package/fesm2022/igo2-common-action.mjs.map +1 -1
- package/fesm2022/igo2-common-backdrop.mjs +8 -8
- package/fesm2022/igo2-common-backdrop.mjs.map +1 -1
- package/fesm2022/igo2-common-badge.mjs +7 -7
- package/fesm2022/igo2-common-badge.mjs.map +1 -1
- package/fesm2022/igo2-common-clickout.mjs +7 -7
- package/fesm2022/igo2-common-clickout.mjs.map +1 -1
- package/fesm2022/igo2-common-clone.mjs +7 -7
- package/fesm2022/igo2-common-clone.mjs.map +1 -1
- package/fesm2022/igo2-common-collapsible.mjs +11 -11
- package/fesm2022/igo2-common-collapsible.mjs.map +1 -1
- package/fesm2022/igo2-common-color.mjs +9 -9
- package/fesm2022/igo2-common-color.mjs.map +1 -1
- package/fesm2022/igo2-common-confirm-dialog.mjs +11 -11
- package/fesm2022/igo2-common-confirm-dialog.mjs.map +1 -1
- package/fesm2022/igo2-common-context-menu.mjs +10 -10
- package/fesm2022/igo2-common-context-menu.mjs.map +1 -1
- package/fesm2022/igo2-common-custom-html.mjs +11 -11
- package/fesm2022/igo2-common-custom-html.mjs.map +1 -1
- package/fesm2022/igo2-common-dom.mjs +7 -7
- package/fesm2022/igo2-common-dom.mjs.map +1 -1
- package/fesm2022/igo2-common-drag-drop.mjs +10 -10
- package/fesm2022/igo2-common-drag-drop.mjs.map +1 -1
- package/fesm2022/igo2-common-dynamic-component.mjs +14 -14
- package/fesm2022/igo2-common-dynamic-component.mjs.map +1 -1
- package/fesm2022/igo2-common-entity.mjs +33 -33
- package/fesm2022/igo2-common-entity.mjs.map +1 -1
- package/fesm2022/igo2-common-flexible.mjs +7 -7
- package/fesm2022/igo2-common-flexible.mjs.map +1 -1
- package/fesm2022/igo2-common-form.mjs +57 -57
- package/fesm2022/igo2-common-form.mjs.map +1 -1
- package/fesm2022/igo2-common-home-button.mjs +8 -8
- package/fesm2022/igo2-common-home-button.mjs.map +1 -1
- package/fesm2022/igo2-common-icon.mjs +14 -13
- package/fesm2022/igo2-common-icon.mjs.map +1 -1
- package/fesm2022/igo2-common-image.mjs +10 -10
- package/fesm2022/igo2-common-image.mjs.map +1 -1
- package/fesm2022/igo2-common-interactive-tour.mjs +14 -14
- package/fesm2022/igo2-common-interactive-tour.mjs.map +1 -1
- package/fesm2022/igo2-common-json-dialog.mjs +11 -11
- package/fesm2022/igo2-common-json-dialog.mjs.map +1 -1
- package/fesm2022/igo2-common-keyvalue.mjs +7 -7
- package/fesm2022/igo2-common-keyvalue.mjs.map +1 -1
- package/fesm2022/igo2-common-list.mjs +11 -11
- package/fesm2022/igo2-common-list.mjs.map +1 -1
- package/fesm2022/igo2-common-panel.mjs +8 -8
- package/fesm2022/igo2-common-panel.mjs.map +1 -1
- package/fesm2022/igo2-common-select-value-dialog.mjs +11 -11
- package/fesm2022/igo2-common-select-value-dialog.mjs.map +1 -1
- package/fesm2022/igo2-common-sidenav.mjs +7 -7
- package/fesm2022/igo2-common-sidenav.mjs.map +1 -1
- package/fesm2022/igo2-common-spinner.mjs +11 -11
- package/fesm2022/igo2-common-spinner.mjs.map +1 -1
- package/fesm2022/igo2-common-stop-propagation.mjs +10 -10
- package/fesm2022/igo2-common-stop-propagation.mjs.map +1 -1
- package/fesm2022/igo2-common-table.mjs +8 -8
- package/fesm2022/igo2-common-table.mjs.map +1 -1
- package/fesm2022/igo2-common-tool.mjs +15 -15
- package/fesm2022/igo2-common-tool.mjs.map +1 -1
- package/fesm2022/igo2-common-widget.mjs +15 -15
- package/fesm2022/igo2-common-widget.mjs.map +1 -1
- package/fesm2022/igo2-common-workspace.mjs +20 -20
- package/fesm2022/igo2-common-workspace.mjs.map +1 -1
- package/package.json +76 -8
- package/src/style/style.scss +1 -1
- package/style/style.css +1 -4
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { DynamicOutletComponent } from './dynamic-outlet.component';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
/**
|
|
5
|
+
* @deprecated import the DynamicOutletComponent directly
|
|
6
|
+
*/
|
|
7
|
+
export class IgoDynamicOutletModule {
|
|
8
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IgoDynamicOutletModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
9
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: IgoDynamicOutletModule, imports: [DynamicOutletComponent], exports: [DynamicOutletComponent] });
|
|
10
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IgoDynamicOutletModule });
|
|
11
|
+
}
|
|
12
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IgoDynamicOutletModule, decorators: [{
|
|
13
|
+
type: NgModule,
|
|
14
|
+
args: [{
|
|
15
|
+
imports: [DynamicOutletComponent],
|
|
16
|
+
exports: [DynamicOutletComponent]
|
|
17
|
+
}]
|
|
18
|
+
}] });
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1vdXRsZXQubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tbW9uL2R5bmFtaWMtY29tcG9uZW50L3NyYy9keW5hbWljLW91dGxldC9keW5hbWljLW91dGxldC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV6QyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7QUFFcEU7O0dBRUc7QUFLSCxNQUFNLE9BQU8sc0JBQXNCO3dHQUF0QixzQkFBc0I7eUdBQXRCLHNCQUFzQixZQUh2QixzQkFBc0IsYUFDdEIsc0JBQXNCO3lHQUVyQixzQkFBc0I7OzRGQUF0QixzQkFBc0I7a0JBSmxDLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsc0JBQXNCLENBQUM7b0JBQ2pDLE9BQU8sRUFBRSxDQUFDLHNCQUFzQixDQUFDO2lCQUNsQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IER5bmFtaWNPdXRsZXRDb21wb25lbnQgfSBmcm9tICcuL2R5bmFtaWMtb3V0bGV0LmNvbXBvbmVudCc7XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgaW1wb3J0IHRoZSBEeW5hbWljT3V0bGV0Q29tcG9uZW50IGRpcmVjdGx5XG4gKi9cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtEeW5hbWljT3V0bGV0Q29tcG9uZW50XSxcbiAgZXhwb3J0czogW0R5bmFtaWNPdXRsZXRDb21wb25lbnRdXG59KVxuZXhwb3J0IGNsYXNzIElnb0R5bmFtaWNPdXRsZXRNb2R1bGUge31cbiJdfQ==
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './public_api';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWdvMi1jb21tb24tZHluYW1pYy1jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vZHluYW1pYy1jb21wb25lbnQvc3JjL2lnbzItY29tbW9uLWR5bmFtaWMtY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vcHVibGljX2FwaSc7XG4iXX0=
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export * from './shared';
|
|
2
|
+
export * from './dynamic-component.module';
|
|
3
|
+
export * from './dynamic-outlet/dynamic-outlet.component';
|
|
4
|
+
export * from './dynamic-outlet/dynamic-outlet.module';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbW1vbi9keW5hbWljLWNvbXBvbmVudC9zcmMvcHVibGljX2FwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLFVBQVUsQ0FBQztBQUN6QixjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsMkNBQTJDLENBQUM7QUFDMUQsY0FBYyx3Q0FBd0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vc2hhcmVkJztcbmV4cG9ydCAqIGZyb20gJy4vZHluYW1pYy1jb21wb25lbnQubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vZHluYW1pYy1vdXRsZXQvZHluYW1pYy1vdXRsZXQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vZHluYW1pYy1vdXRsZXQvZHluYW1pYy1vdXRsZXQubW9kdWxlJztcbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1jb21wb25lbnQuaW50ZXJmYWNlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbW1vbi9keW5hbWljLWNvbXBvbmVudC9zcmMvc2hhcmVkL2R5bmFtaWMtY29tcG9uZW50LmludGVyZmFjZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgT25VcGRhdGVJbnB1dHMge1xuICBvblVwZGF0ZUlucHV0czogKCkgPT4gdm9pZDtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
import { Observable } from 'rxjs';
|
|
2
|
+
/**
|
|
3
|
+
* This class is used in the DynamicComponentOutlet component. It holds
|
|
4
|
+
* a reference to a component factory and can render that component
|
|
5
|
+
* in a target element on demand. It's also possible to set inputs
|
|
6
|
+
* and to subscribe to outputs.
|
|
7
|
+
*/
|
|
8
|
+
export class DynamicComponent {
|
|
9
|
+
componentFactory;
|
|
10
|
+
/**
|
|
11
|
+
* Component reference
|
|
12
|
+
*/
|
|
13
|
+
componentRef;
|
|
14
|
+
/**
|
|
15
|
+
* Subscriptions to the component's outputs. Those need
|
|
16
|
+
* to be unsubscribed when the component is destroyed.
|
|
17
|
+
*/
|
|
18
|
+
subscriptions = [];
|
|
19
|
+
/**
|
|
20
|
+
* Component target element
|
|
21
|
+
*/
|
|
22
|
+
target;
|
|
23
|
+
/**
|
|
24
|
+
* Component inputs
|
|
25
|
+
*/
|
|
26
|
+
inputs = {};
|
|
27
|
+
/**
|
|
28
|
+
* Subscriptions to the component's async inputs
|
|
29
|
+
*/
|
|
30
|
+
inputs$$ = {};
|
|
31
|
+
/**
|
|
32
|
+
* Subscribers to the component's outputs
|
|
33
|
+
*/
|
|
34
|
+
subscribers = {};
|
|
35
|
+
constructor(componentFactory) {
|
|
36
|
+
this.componentFactory = componentFactory;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Render the component to a target element.
|
|
40
|
+
* Set it's inputs and subscribe to it's outputs.
|
|
41
|
+
* @param target Target element
|
|
42
|
+
*/
|
|
43
|
+
setTarget(target) {
|
|
44
|
+
this.target = target;
|
|
45
|
+
this.componentRef = target.createComponent(this.componentFactory);
|
|
46
|
+
this.updateInputs(this.inputs);
|
|
47
|
+
this.updateSubscribers(this.subscribers);
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Destroy this component. That means, removing from it's target
|
|
51
|
+
* element and unsubscribing to it's outputs.
|
|
52
|
+
*/
|
|
53
|
+
destroy() {
|
|
54
|
+
if (this.target !== undefined) {
|
|
55
|
+
this.target.clear();
|
|
56
|
+
}
|
|
57
|
+
if (this.componentRef !== undefined) {
|
|
58
|
+
this.componentRef.destroy();
|
|
59
|
+
this.componentRef = undefined;
|
|
60
|
+
}
|
|
61
|
+
this.unobserveAllInputs();
|
|
62
|
+
this.unsubscribeAll();
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Update the component inputs. This is an update so any
|
|
66
|
+
* key not defined won't be overwritten.
|
|
67
|
+
*/
|
|
68
|
+
updateInputs(inputs) {
|
|
69
|
+
this.inputs = inputs;
|
|
70
|
+
if (this.componentRef === undefined) {
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
73
|
+
const instance = this.componentRef.instance;
|
|
74
|
+
const allowedInputs = this.componentFactory.inputs;
|
|
75
|
+
allowedInputs.forEach((value) => {
|
|
76
|
+
const key = value.propName;
|
|
77
|
+
this.unobserveInput(key);
|
|
78
|
+
const inputValue = inputs[key];
|
|
79
|
+
if (Object.prototype.hasOwnProperty.call(inputs, key)) {
|
|
80
|
+
if (inputValue instanceof Observable) {
|
|
81
|
+
this.observeInput(key, inputValue);
|
|
82
|
+
}
|
|
83
|
+
else {
|
|
84
|
+
this.setInputValue(instance, key, inputValue);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
});
|
|
88
|
+
if (typeof instance.onUpdateInputs === 'function') {
|
|
89
|
+
instance.onUpdateInputs();
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Set an instance's input value
|
|
94
|
+
* @param instance Component instance
|
|
95
|
+
* @param key Input key
|
|
96
|
+
* @param value Input value
|
|
97
|
+
*/
|
|
98
|
+
setInputValue(instance, key, value) {
|
|
99
|
+
const currentValue = instance[key];
|
|
100
|
+
if (value === currentValue) {
|
|
101
|
+
return;
|
|
102
|
+
}
|
|
103
|
+
const prototype = Object.getPrototypeOf(instance);
|
|
104
|
+
const descriptor = Object.getOwnPropertyDescriptor(prototype, key);
|
|
105
|
+
if (descriptor !== undefined && descriptor.set !== undefined) {
|
|
106
|
+
descriptor.set.call(instance, value);
|
|
107
|
+
}
|
|
108
|
+
else {
|
|
109
|
+
instance[key] = value;
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Update the component subscribers. This is an update so any
|
|
114
|
+
* key not defined won't be overwritten.
|
|
115
|
+
*/
|
|
116
|
+
updateSubscribers(subscribers) {
|
|
117
|
+
this.subscribers = subscribers;
|
|
118
|
+
if (this.componentRef === undefined) {
|
|
119
|
+
return;
|
|
120
|
+
}
|
|
121
|
+
const instance = this.componentRef.instance;
|
|
122
|
+
const allowedSubscribers = this.componentFactory.outputs;
|
|
123
|
+
allowedSubscribers.forEach((value) => {
|
|
124
|
+
const key = value.propName;
|
|
125
|
+
if (Object.prototype.hasOwnProperty.call(subscribers, key)) {
|
|
126
|
+
const emitter = instance[key];
|
|
127
|
+
const subscriber = subscribers[key];
|
|
128
|
+
if (Array.isArray(subscriber)) {
|
|
129
|
+
subscriber.forEach((_subscriber) => {
|
|
130
|
+
this.subscriptions.push(emitter.subscribe(_subscriber));
|
|
131
|
+
});
|
|
132
|
+
}
|
|
133
|
+
else {
|
|
134
|
+
this.subscriptions.push(emitter.subscribe(subscriber));
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
});
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* Subscribe to an observable input and update the component's input value
|
|
141
|
+
* accordingly
|
|
142
|
+
* @param key Input key
|
|
143
|
+
* @param observable Observable
|
|
144
|
+
*/
|
|
145
|
+
observeInput(key, observable) {
|
|
146
|
+
this.inputs$$[key] = observable.subscribe((value) => {
|
|
147
|
+
const instance = this.componentRef.instance;
|
|
148
|
+
this.setInputValue(instance, key, value);
|
|
149
|
+
if (typeof instance.onUpdateInputs === 'function') {
|
|
150
|
+
instance.onUpdateInputs();
|
|
151
|
+
}
|
|
152
|
+
});
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* Unsubscribe to an observable input
|
|
156
|
+
* @param key Input key
|
|
157
|
+
*/
|
|
158
|
+
unobserveInput(key) {
|
|
159
|
+
if (this.inputs$$[key] !== undefined) {
|
|
160
|
+
this.inputs$$[key].unsubscribe();
|
|
161
|
+
this.inputs$$[key] = undefined;
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* Unsubscribe to all outputs.
|
|
166
|
+
*/
|
|
167
|
+
unobserveAllInputs() {
|
|
168
|
+
Object.values(this.inputs$$).forEach((s) => {
|
|
169
|
+
if (s !== undefined) {
|
|
170
|
+
s.unsubscribe();
|
|
171
|
+
}
|
|
172
|
+
});
|
|
173
|
+
this.inputs$$ = {};
|
|
174
|
+
}
|
|
175
|
+
/**
|
|
176
|
+
* Unsubscribe to all outputs.
|
|
177
|
+
*/
|
|
178
|
+
unsubscribeAll() {
|
|
179
|
+
this.subscriptions.forEach((s) => s.unsubscribe());
|
|
180
|
+
this.subscriptions = [];
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vZHluYW1pYy1jb21wb25lbnQvc3JjL3NoYXJlZC9keW5hbWljLWNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFNQSxPQUFPLEVBQUUsVUFBVSxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQUVoRDs7Ozs7R0FLRztBQUNILE1BQU0sT0FBTyxnQkFBZ0I7SUFnQ1A7SUEvQnBCOztPQUVHO0lBQ0ssWUFBWSxDQUFrQjtJQUV0Qzs7O09BR0c7SUFDSyxhQUFhLEdBQW1CLEVBQUUsQ0FBQztJQUUzQzs7T0FFRztJQUNLLE1BQU0sQ0FBbUI7SUFFakM7O09BRUc7SUFDSyxNQUFNLEdBQXdCLEVBQUUsQ0FBQztJQUV6Qzs7T0FFRztJQUNLLFFBQVEsR0FBaUMsRUFBRSxDQUFDO0lBRXBEOztPQUVHO0lBQ0ssV0FBVyxHQUF5QyxFQUFFLENBQUM7SUFFL0QsWUFBb0IsZ0JBQXFDO1FBQXJDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBcUI7SUFBRyxDQUFDO0lBRTdEOzs7O09BSUc7SUFDSCxTQUFTLENBQUMsTUFBd0I7UUFDaEMsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDckIsSUFBSSxDQUFDLFlBQVksR0FBRyxNQUFNLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ2xFLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQy9CLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVEOzs7T0FHRztJQUNILE9BQU87UUFDTCxJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDOUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQztR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O1lBQ3JDLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7O09BR0c7SUFDSyxjQUFjLENBQUMsR0FBVztRQUNoQyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDckMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNqQyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxHQUFHLFNBQVMsQ0FBQztRQUNqQyxDQUFDO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ0ssa0JBQWtCO1FBQ3hCLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQTJCLEVBQUUsRUFBRTtZQUNuRSxJQUFJLENBQUMsS0FBSyxTQUFTLEVBQUUsQ0FBQztnQkFDcEIsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ2xCLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFRDs7T0FFRztJQUNLLGNBQWM7UUFDcEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFlLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO1FBQ2pFLElBQUksQ0FBQyxhQUFhLEdBQUcsRUFBRSxDQUFDO0lBQzFCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudEZhY3RvcnksXG4gIENvbXBvbmVudFJlZixcbiAgVmlld0NvbnRhaW5lclJlZlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5cbi8qKlxuICogVGhpcyBjbGFzcyBpcyB1c2VkIGluIHRoZSBEeW5hbWljQ29tcG9uZW50T3V0bGV0IGNvbXBvbmVudC4gSXQgaG9sZHNcbiAqIGEgcmVmZXJlbmNlIHRvIGEgY29tcG9uZW50IGZhY3RvcnkgYW5kIGNhbiByZW5kZXIgdGhhdCBjb21wb25lbnRcbiAqIGluIGEgdGFyZ2V0IGVsZW1lbnQgb24gZGVtYW5kLiBJdCdzIGFsc28gcG9zc2libGUgdG8gc2V0IGlucHV0c1xuICogYW5kIHRvIHN1YnNjcmliZSB0byBvdXRwdXRzLlxuICovXG5leHBvcnQgY2xhc3MgRHluYW1pY0NvbXBvbmVudDxDPiB7XG4gIC8qKlxuICAgKiBDb21wb25lbnQgcmVmZXJlbmNlXG4gICAqL1xuICBwcml2YXRlIGNvbXBvbmVudFJlZjogQ29tcG9uZW50UmVmPEM+O1xuXG4gIC8qKlxuICAgKiBTdWJzY3JpcHRpb25zIHRvIHRoZSBjb21wb25lbnQncyBvdXRwdXRzLiBUaG9zZSBuZWVkXG4gICAqIHRvIGJlIHVuc3Vic2NyaWJlZCB3aGVuIHRoZSBjb21wb25lbnQgaXMgZGVzdHJveWVkLlxuICAgKi9cbiAgcHJpdmF0ZSBzdWJzY3JpcHRpb25zOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xuXG4gIC8qKlxuICAgKiBDb21wb25lbnQgdGFyZ2V0IGVsZW1lbnRcbiAgICovXG4gIHByaXZhdGUgdGFyZ2V0OiBWaWV3Q29udGFpbmVyUmVmO1xuXG4gIC8qKlxuICAgKiBDb21wb25lbnQgaW5wdXRzXG4gICAqL1xuICBwcml2YXRlIGlucHV0czogUmVjb3JkPHN0cmluZywgYW55PiA9IHt9O1xuXG4gIC8qKlxuICAgKiBTdWJzY3JpcHRpb25zIHRvIHRoZSBjb21wb25lbnQncyBhc3luYyBpbnB1dHNcbiAgICovXG4gIHByaXZhdGUgaW5wdXRzJCQ6IFJlY29yZDxzdHJpbmcsIFN1YnNjcmlwdGlvbj4gPSB7fTtcblxuICAvKipcbiAgICogU3Vic2NyaWJlcnMgdG8gdGhlIGNvbXBvbmVudCdzIG91dHB1dHNcbiAgICovXG4gIHByaXZhdGUgc3Vic2NyaWJlcnM6IFJlY29yZDxzdHJpbmcsIChldmVudDogYW55KSA9PiB2b2lkPiA9IHt9O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY29tcG9uZW50RmFjdG9yeTogQ29tcG9uZW50RmFjdG9yeTxDPikge31cblxuICAvKipcbiAgICogUmVuZGVyIHRoZSBjb21wb25lbnQgdG8gYSB0YXJnZXQgZWxlbWVudC5cbiAgICogU2V0IGl0J3MgaW5wdXRzIGFuZCBzdWJzY3JpYmUgdG8gaXQncyBvdXRwdXRzLlxuICAgKiBAcGFyYW0gdGFyZ2V0IFRhcmdldCBlbGVtZW50XG4gICAqL1xuICBzZXRUYXJnZXQodGFyZ2V0OiBWaWV3Q29udGFpbmVyUmVmKSB7XG4gICAgdGhpcy50YXJnZXQgPSB0YXJnZXQ7XG4gICAgdGhpcy5jb21wb25lbnRSZWYgPSB0YXJnZXQuY3JlYXRlQ29tcG9uZW50KHRoaXMuY29tcG9uZW50RmFjdG9yeSk7XG4gICAgdGhpcy51cGRhdGVJbnB1dHModGhpcy5pbnB1dHMpO1xuICAgIHRoaXMudXBkYXRlU3Vic2NyaWJlcnModGhpcy5zdWJzY3JpYmVycyk7XG4gIH1cblxuICAvKipcbiAgICogRGVzdHJveSB0aGlzIGNvbXBvbmVudC4gVGhhdCBtZWFucywgcmVtb3ZpbmcgZnJvbSBpdCdzIHRhcmdldFxuICAgKiBlbGVtZW50IGFuZCB1bnN1YnNjcmliaW5nIHRvIGl0J3Mgb3V0cHV0cy5cbiAgICovXG4gIGRlc3Ryb3koKSB7XG4gICAgaWYgKHRoaXMudGFyZ2V0ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMudGFyZ2V0LmNsZWFyKCk7XG4gICAgfVxuICAgIGlmICh0aGlzLmNvbXBvbmVudFJlZiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLmNvbXBvbmVudFJlZi5kZXN0cm95KCk7XG4gICAgICB0aGlzLmNvbXBvbmVudFJlZiA9IHVuZGVmaW5lZDtcbiAgICB9XG4gICAgdGhpcy51bm9ic2VydmVBbGxJbnB1dHMoKTtcbiAgICB0aGlzLnVuc3Vic2NyaWJlQWxsKCk7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlIHRoZSBjb21wb25lbnQgaW5wdXRzLiBUaGlzIGlzIGFuIHVwZGF0ZSBzbyBhbnlcbiAgICoga2V5IG5vdCBkZWZpbmVkIHdvbid0IGJlIG92ZXJ3cml0dGVuLlxuICAgKi9cbiAgdXBkYXRlSW5wdXRzKGlucHV0czogUmVjb3JkPHN0cmluZywgYW55Pikge1xuICAgIHRoaXMuaW5wdXRzID0gaW5wdXRzO1xuICAgIGlmICh0aGlzLmNvbXBvbmVudFJlZiA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgaW5zdGFuY2UgPSB0aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZTtcbiAgICBjb25zdCBhbGxvd2VkSW5wdXRzID0gdGhpcy5jb21wb25lbnRGYWN0b3J5LmlucHV0cztcbiAgICBhbGxvd2VkSW5wdXRzLmZvckVhY2goXG4gICAgICAodmFsdWU6IHsgcHJvcE5hbWU6IHN0cmluZzsgdGVtcGxhdGVOYW1lOiBzdHJpbmcgfSkgPT4ge1xuICAgICAgICBjb25zdCBrZXkgPSB2YWx1ZS5wcm9wTmFtZTtcblxuICAgICAgICB0aGlzLnVub2JzZXJ2ZUlucHV0KGtleSk7XG5cbiAgICAgICAgY29uc3QgaW5wdXRWYWx1ZSA9IGlucHV0c1trZXldO1xuICAgICAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGlucHV0cywga2V5KSkge1xuICAgICAgICAgIGlmIChpbnB1dFZhbHVlIGluc3RhbmNlb2YgT2JzZXJ2YWJsZSkge1xuICAgICAgICAgICAgdGhpcy5vYnNlcnZlSW5wdXQoa2V5LCBpbnB1dFZhbHVlKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5zZXRJbnB1dFZhbHVlKGluc3RhbmNlLCBrZXksIGlucHV0VmFsdWUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICk7XG5cbiAgICBpZiAodHlwZW9mIChpbnN0YW5jZSBhcyBhbnkpLm9uVXBkYXRlSW5wdXRzID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAoaW5zdGFuY2UgYXMgYW55KS5vblVwZGF0ZUlucHV0cygpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgYW4gaW5zdGFuY2UncyBpbnB1dCB2YWx1ZVxuICAgKiBAcGFyYW0gaW5zdGFuY2UgQ29tcG9uZW50IGluc3RhbmNlXG4gICAqIEBwYXJhbSBrZXkgSW5wdXQga2V5XG4gICAqIEBwYXJhbSB2YWx1ZSBJbnB1dCB2YWx1ZVxuICAgKi9cbiAgcHJpdmF0ZSBzZXRJbnB1dFZhbHVlKGluc3RhbmNlOiBDLCBrZXk6IHN0cmluZywgdmFsdWU6IGFueSkge1xuICAgIGNvbnN0IGN1cnJlbnRWYWx1ZSA9IGluc3RhbmNlW2tleV07XG4gICAgaWYgKHZhbHVlID09PSBjdXJyZW50VmFsdWUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBwcm90b3R5cGUgPSBPYmplY3QuZ2V0UHJvdG90eXBlT2YoaW5zdGFuY2UpO1xuICAgIGNvbnN0IGRlc2NyaXB0b3IgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHByb3RvdHlwZSwga2V5KTtcbiAgICBpZiAoZGVzY3JpcHRvciAhPT0gdW5kZWZpbmVkICYmIGRlc2NyaXB0b3Iuc2V0ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGRlc2NyaXB0b3Iuc2V0LmNhbGwoaW5zdGFuY2UsIHZhbHVlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgaW5zdGFuY2Vba2V5XSA9IHZhbHVlO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGUgdGhlIGNvbXBvbmVudCBzdWJzY3JpYmVycy4gVGhpcyBpcyBhbiB1cGRhdGUgc28gYW55XG4gICAqIGtleSBub3QgZGVmaW5lZCB3b24ndCBiZSBvdmVyd3JpdHRlbi5cbiAgICovXG4gIHVwZGF0ZVN1YnNjcmliZXJzKHN1YnNjcmliZXJzOiBSZWNvcmQ8c3RyaW5nLCAoZXZlbnQ6IGFueSkgPT4gdm9pZD4pIHtcbiAgICB0aGlzLnN1YnNjcmliZXJzID0gc3Vic2NyaWJlcnM7XG4gICAgaWYgKHRoaXMuY29tcG9uZW50UmVmID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBpbnN0YW5jZSA9IHRoaXMuY29tcG9uZW50UmVmLmluc3RhbmNlO1xuICAgIGNvbnN0IGFsbG93ZWRTdWJzY3JpYmVycyA9IHRoaXMuY29tcG9uZW50RmFjdG9yeS5vdXRwdXRzO1xuICAgIGFsbG93ZWRTdWJzY3JpYmVycy5mb3JFYWNoKFxuICAgICAgKHZhbHVlOiB7IHByb3BOYW1lOiBzdHJpbmc7IHRlbXBsYXRlTmFtZTogc3RyaW5nIH0pID0+IHtcbiAgICAgICAgY29uc3Qga2V5ID0gdmFsdWUucHJvcE5hbWU7XG4gICAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoc3Vic2NyaWJlcnMsIGtleSkpIHtcbiAgICAgICAgICBjb25zdCBlbWl0dGVyID0gaW5zdGFuY2Vba2V5XTtcbiAgICAgICAgICBjb25zdCBzdWJzY3JpYmVyID0gc3Vic2NyaWJlcnNba2V5XTtcbiAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShzdWJzY3JpYmVyKSkge1xuICAgICAgICAgICAgc3Vic2NyaWJlci5mb3JFYWNoKChfc3Vic2NyaWJlcikgPT4ge1xuICAgICAgICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChlbWl0dGVyLnN1YnNjcmliZShfc3Vic2NyaWJlcikpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKGVtaXR0ZXIuc3Vic2NyaWJlKHN1YnNjcmliZXIpKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFN1YnNjcmliZSB0byBhbiBvYnNlcnZhYmxlIGlucHV0IGFuZCB1cGRhdGUgdGhlIGNvbXBvbmVudCdzIGlucHV0IHZhbHVlXG4gICAqIGFjY29yZGluZ2x5XG4gICAqIEBwYXJhbSBrZXkgSW5wdXQga2V5XG4gICAqIEBwYXJhbSBvYnNlcnZhYmxlIE9ic2VydmFibGVcbiAgICovXG4gIHByaXZhdGUgb2JzZXJ2ZUlucHV0KGtleTogc3RyaW5nLCBvYnNlcnZhYmxlOiBPYnNlcnZhYmxlPGFueT4pIHtcbiAgICB0aGlzLmlucHV0cyQkW2tleV0gPSBvYnNlcnZhYmxlLnN1YnNjcmliZSgodmFsdWU6IGFueSkgPT4ge1xuICAgICAgY29uc3QgaW5zdGFuY2UgPSB0aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZTtcbiAgICAgIHRoaXMuc2V0SW5wdXRWYWx1ZShpbnN0YW5jZSwga2V5LCB2YWx1ZSk7XG5cbiAgICAgIGlmICh0eXBlb2YgKGluc3RhbmNlIGFzIGFueSkub25VcGRhdGVJbnB1dHMgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgKGluc3RhbmNlIGFzIGFueSkub25VcGRhdGVJbnB1dHMoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVbnN1YnNjcmliZSB0byBhbiBvYnNlcnZhYmxlIGlucHV0XG4gICAqIEBwYXJhbSBrZXkgSW5wdXQga2V5XG4gICAqL1xuICBwcml2YXRlIHVub2JzZXJ2ZUlucHV0KGtleTogc3RyaW5nKSB7XG4gICAgaWYgKHRoaXMuaW5wdXRzJCRba2V5XSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLmlucHV0cyQkW2tleV0udW5zdWJzY3JpYmUoKTtcbiAgICAgIHRoaXMuaW5wdXRzJCRba2V5XSA9IHVuZGVmaW5lZDtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVW5zdWJzY3JpYmUgdG8gYWxsIG91dHB1dHMuXG4gICAqL1xuICBwcml2YXRlIHVub2JzZXJ2ZUFsbElucHV0cygpIHtcbiAgICBPYmplY3QudmFsdWVzKHRoaXMuaW5wdXRzJCQpLmZvckVhY2goKHM6IFN1YnNjcmlwdGlvbiB8IHVuZGVmaW5lZCkgPT4ge1xuICAgICAgaWYgKHMgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBzLnVuc3Vic2NyaWJlKCk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgdGhpcy5pbnB1dHMkJCA9IHt9O1xuICB9XG5cbiAgLyoqXG4gICAqIFVuc3Vic2NyaWJlIHRvIGFsbCBvdXRwdXRzLlxuICAgKi9cbiAgcHJpdmF0ZSB1bnN1YnNjcmliZUFsbCgpIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuZm9yRWFjaCgoczogU3Vic2NyaXB0aW9uKSA9PiBzLnVuc3Vic2NyaWJlKCkpO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucyA9IFtdO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { ComponentFactoryResolver, Injectable } from '@angular/core';
|
|
2
|
+
import { DynamicComponent } from './dynamic-component';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
/**
|
|
5
|
+
* Service to creates DynamicComponent instances from base component classes
|
|
6
|
+
*/
|
|
7
|
+
export class DynamicComponentService {
|
|
8
|
+
resolver;
|
|
9
|
+
constructor(resolver) {
|
|
10
|
+
this.resolver = resolver;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Creates a DynamicComponent instance from a base component class
|
|
14
|
+
* @param componentCls The component class
|
|
15
|
+
* @returns DynamicComponent instance
|
|
16
|
+
*/
|
|
17
|
+
create(componentCls) {
|
|
18
|
+
const factory = this.resolver.resolveComponentFactory(componentCls);
|
|
19
|
+
return new DynamicComponent(factory);
|
|
20
|
+
}
|
|
21
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DynamicComponentService, deps: [{ token: i0.ComponentFactoryResolver }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
22
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DynamicComponentService, providedIn: 'root' });
|
|
23
|
+
}
|
|
24
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DynamicComponentService, decorators: [{
|
|
25
|
+
type: Injectable,
|
|
26
|
+
args: [{
|
|
27
|
+
providedIn: 'root'
|
|
28
|
+
}]
|
|
29
|
+
}], ctorParameters: () => [{ type: i0.ComponentFactoryResolver }] });
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1jb21wb25lbnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbW1vbi9keW5hbWljLWNvbXBvbmVudC9zcmMvc2hhcmVkL2R5bmFtaWMtY29tcG9uZW50LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHdCQUF3QixFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVyRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7QUFFdkQ7O0dBRUc7QUFJSCxNQUFNLE9BQU8sdUJBQXVCO0lBQ2Q7SUFBcEIsWUFBb0IsUUFBa0M7UUFBbEMsYUFBUSxHQUFSLFFBQVEsQ0FBMEI7SUFBRyxDQUFDO0lBRTFEOzs7O09BSUc7SUFDSCxNQUFNLENBQUMsWUFBaUI7UUFDdEIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyx1QkFBdUIsQ0FBQyxZQUFtQixDQUFDLENBQUM7UUFDM0UsT0FBTyxJQUFJLGdCQUFnQixDQUFzQixPQUFPLENBQUMsQ0FBQztJQUM1RCxDQUFDO3dHQVhVLHVCQUF1Qjs0R0FBdkIsdUJBQXVCLGNBRnRCLE1BQU07OzRGQUVQLHVCQUF1QjtrQkFIbkMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgRHluYW1pY0NvbXBvbmVudCB9IGZyb20gJy4vZHluYW1pYy1jb21wb25lbnQnO1xuXG4vKipcbiAqIFNlcnZpY2UgdG8gY3JlYXRlcyBEeW5hbWljQ29tcG9uZW50IGluc3RhbmNlcyBmcm9tIGJhc2UgY29tcG9uZW50IGNsYXNzZXNcbiAqL1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgRHluYW1pY0NvbXBvbmVudFNlcnZpY2Uge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlc29sdmVyOiBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIpIHt9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBEeW5hbWljQ29tcG9uZW50IGluc3RhbmNlIGZyb20gYSBiYXNlIGNvbXBvbmVudCBjbGFzc1xuICAgKiBAcGFyYW0gY29tcG9uZW50Q2xzIFRoZSBjb21wb25lbnQgY2xhc3NcbiAgICogQHJldHVybnMgRHluYW1pY0NvbXBvbmVudCBpbnN0YW5jZVxuICAgKi9cbiAgY3JlYXRlKGNvbXBvbmVudENsczogYW55KTogRHluYW1pY0NvbXBvbmVudDxhbnk+IHtcbiAgICBjb25zdCBmYWN0b3J5ID0gdGhpcy5yZXNvbHZlci5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeShjb21wb25lbnRDbHMgYXMgYW55KTtcbiAgICByZXR1cm4gbmV3IER5bmFtaWNDb21wb25lbnQ8dHlwZW9mIGNvbXBvbmVudENscz4oZmFjdG9yeSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export * from './dynamic-component.interfaces';
|
|
2
|
+
export * from './dynamic-component';
|
|
3
|
+
export * from './dynamic-component.service';
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vZHluYW1pYy1jb21wb25lbnQvc3JjL3NoYXJlZC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyw2QkFBNkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZHluYW1pYy1jb21wb25lbnQuaW50ZXJmYWNlcyc7XG5leHBvcnQgKiBmcm9tICcuL2R5bmFtaWMtY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vZHluYW1pYy1jb21wb25lbnQuc2VydmljZSc7XG4iXX0=
|
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
import { AsyncPipe, NgFor, NgIf } from '@angular/common';
|
|
2
|
+
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Input, Output } from '@angular/core';
|
|
3
|
+
import { MatOptionModule } from '@angular/material/core';
|
|
4
|
+
import { MatFormFieldModule } from '@angular/material/form-field';
|
|
5
|
+
import { MatSelectModule } from '@angular/material/select';
|
|
6
|
+
import { BehaviorSubject } from 'rxjs';
|
|
7
|
+
import { getEntityTitle } from '../shared/entity.utils';
|
|
8
|
+
import { EntityStore } from '../shared/store';
|
|
9
|
+
import { EntityStoreWatcher } from '../shared/watcher';
|
|
10
|
+
import * as i0 from "@angular/core";
|
|
11
|
+
import * as i1 from "@angular/material/form-field";
|
|
12
|
+
import * as i2 from "@angular/material/select";
|
|
13
|
+
import * as i3 from "@angular/material/core";
|
|
14
|
+
export class EntitySelectorComponent {
|
|
15
|
+
cdRef;
|
|
16
|
+
/**
|
|
17
|
+
* The selected entity
|
|
18
|
+
* @internal
|
|
19
|
+
*/
|
|
20
|
+
selected$ = new BehaviorSubject(undefined);
|
|
21
|
+
/**
|
|
22
|
+
* The current multi select option text
|
|
23
|
+
* @internal
|
|
24
|
+
*/
|
|
25
|
+
multiText$ = new BehaviorSubject(undefined);
|
|
26
|
+
multiSelectValue = { id: 'IGO_MULTI_SELECT' };
|
|
27
|
+
emptyValue = { id: 'IGO_EMPTY_SELECT' };
|
|
28
|
+
/**
|
|
29
|
+
* Subscription to the selected entity
|
|
30
|
+
*/
|
|
31
|
+
selected$$;
|
|
32
|
+
/**
|
|
33
|
+
* Store watcher
|
|
34
|
+
*/
|
|
35
|
+
watcher;
|
|
36
|
+
/**
|
|
37
|
+
* Entity store
|
|
38
|
+
*/
|
|
39
|
+
store;
|
|
40
|
+
/**
|
|
41
|
+
* Title accessor
|
|
42
|
+
*/
|
|
43
|
+
titleAccessor = getEntityTitle;
|
|
44
|
+
/**
|
|
45
|
+
* Text to display when nothing is selected
|
|
46
|
+
*/
|
|
47
|
+
emptyText = undefined;
|
|
48
|
+
/**
|
|
49
|
+
* Wheter selecting many entities is allowed
|
|
50
|
+
*/
|
|
51
|
+
multi = false;
|
|
52
|
+
/**
|
|
53
|
+
* Text to display for the select all option
|
|
54
|
+
*/
|
|
55
|
+
multiAllText = 'All';
|
|
56
|
+
/**
|
|
57
|
+
* Text to display for the select none option
|
|
58
|
+
*/
|
|
59
|
+
multiNoneText = 'None';
|
|
60
|
+
/**
|
|
61
|
+
* Field placeholder
|
|
62
|
+
*/
|
|
63
|
+
placeholder;
|
|
64
|
+
/**
|
|
65
|
+
* Wheter the selector is disabled or not
|
|
66
|
+
*/
|
|
67
|
+
disabled = false;
|
|
68
|
+
/**
|
|
69
|
+
* Event emitted when the selection changes
|
|
70
|
+
*/
|
|
71
|
+
selectedChange = new EventEmitter();
|
|
72
|
+
constructor(cdRef) {
|
|
73
|
+
this.cdRef = cdRef;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Create a store watcher and subscribe to the selected entity
|
|
77
|
+
* @internal
|
|
78
|
+
*/
|
|
79
|
+
ngOnInit() {
|
|
80
|
+
this.watcher = new EntityStoreWatcher(this.store, this.cdRef);
|
|
81
|
+
this.selected$$ = this.store.stateView
|
|
82
|
+
.manyBy$((record) => record.state.selected === true)
|
|
83
|
+
.subscribe((records) => {
|
|
84
|
+
const entities = records.map((record) => record.entity);
|
|
85
|
+
this.onSelectFromStore(entities);
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Unsubscribe to the selected entity and destroy the store watcher
|
|
90
|
+
* @internal
|
|
91
|
+
*/
|
|
92
|
+
ngOnDestroy() {
|
|
93
|
+
this.watcher.destroy();
|
|
94
|
+
this.selected$$.unsubscribe();
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* On selection change, update the store's state and emit an event
|
|
98
|
+
* @internal
|
|
99
|
+
*/
|
|
100
|
+
onSelectionChange(event) {
|
|
101
|
+
const values = event.value instanceof Array ? event.value : [event.value];
|
|
102
|
+
const multiSelect = values.find((_value) => _value === this.multiSelectValue);
|
|
103
|
+
let entities = values.filter((_value) => _value !== this.multiSelectValue);
|
|
104
|
+
if (multiSelect !== undefined) {
|
|
105
|
+
if (entities.length === this.store.count) {
|
|
106
|
+
entities = [];
|
|
107
|
+
}
|
|
108
|
+
else if (entities.length < this.store.count) {
|
|
109
|
+
entities = this.store.all();
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
entities = entities.filter((entity) => entity !== this.emptyValue);
|
|
113
|
+
if (entities.length === 0) {
|
|
114
|
+
this.store.state.updateAll({ selected: false });
|
|
115
|
+
}
|
|
116
|
+
else {
|
|
117
|
+
this.store.state.updateMany(entities, { selected: true }, true);
|
|
118
|
+
}
|
|
119
|
+
const value = this.multi ? entities : event.value;
|
|
120
|
+
this.selectedChange.emit({ selected: true, value });
|
|
121
|
+
}
|
|
122
|
+
onSelectFromStore(entities) {
|
|
123
|
+
if (this.multi === true) {
|
|
124
|
+
this.selected$.next(entities);
|
|
125
|
+
}
|
|
126
|
+
else {
|
|
127
|
+
const entity = entities.length > 0 ? entities[0] : undefined;
|
|
128
|
+
this.selected$.next(entity);
|
|
129
|
+
}
|
|
130
|
+
this.updateMultiToggleWithEntities(entities);
|
|
131
|
+
}
|
|
132
|
+
updateMultiToggleWithEntities(entities) {
|
|
133
|
+
if (entities.length === this.store.count &&
|
|
134
|
+
this.multiText$.value !== this.multiNoneText) {
|
|
135
|
+
this.multiText$.next(this.multiNoneText);
|
|
136
|
+
}
|
|
137
|
+
else if (entities.length < this.store.count &&
|
|
138
|
+
this.multiText$.value !== this.multiAllText) {
|
|
139
|
+
this.multiText$.next(this.multiAllText);
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EntitySelectorComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
143
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: EntitySelectorComponent, isStandalone: true, selector: "igo-entity-selector", inputs: { store: "store", titleAccessor: "titleAccessor", emptyText: "emptyText", multi: "multi", multiAllText: "multiAllText", multiNoneText: "multiNoneText", placeholder: "placeholder", disabled: "disabled" }, outputs: { selectedChange: "selectedChange" }, ngImport: i0, template: "<mat-form-field class=\"igo-entity-selector\" subscriptSizing=\"dynamic\">\n <mat-select\n [disabled]=\"disabled\"\n [value]=\"selected$ | async\"\n [multiple]=\"multi\"\n [placeholder]=\"placeholder\"\n (selectionChange)=\"onSelectionChange($event)\"\n >\n <mat-option\n *ngIf=\"emptyText !== undefined && multi === false\"\n [value]=\"emptyValue\"\n >{{ emptyText }}</mat-option\n >\n <mat-option *ngIf=\"multi === true\" [value]=\"multiSelectValue\">{{\n multiText$ | async\n }}</mat-option>\n <ng-template ngFor let-record [ngForOf]=\"store.stateView.all$() | async\">\n <mat-option [value]=\"record.entity\">\n {{ titleAccessor(record.entity) }}\n </mat-option>\n </ng-template>\n </mat-select>\n</mat-form-field>\n", styles: ["mat-form-field{width:100%}\n"], dependencies: [{ kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "ngmodule", type: MatSelectModule }, { kind: "component", type: i2.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i3.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatOptionModule }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
144
|
+
}
|
|
145
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EntitySelectorComponent, decorators: [{
|
|
146
|
+
type: Component,
|
|
147
|
+
args: [{ selector: 'igo-entity-selector', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
|
|
148
|
+
MatFormFieldModule,
|
|
149
|
+
MatSelectModule,
|
|
150
|
+
NgIf,
|
|
151
|
+
MatOptionModule,
|
|
152
|
+
NgFor,
|
|
153
|
+
AsyncPipe
|
|
154
|
+
], template: "<mat-form-field class=\"igo-entity-selector\" subscriptSizing=\"dynamic\">\n <mat-select\n [disabled]=\"disabled\"\n [value]=\"selected$ | async\"\n [multiple]=\"multi\"\n [placeholder]=\"placeholder\"\n (selectionChange)=\"onSelectionChange($event)\"\n >\n <mat-option\n *ngIf=\"emptyText !== undefined && multi === false\"\n [value]=\"emptyValue\"\n >{{ emptyText }}</mat-option\n >\n <mat-option *ngIf=\"multi === true\" [value]=\"multiSelectValue\">{{\n multiText$ | async\n }}</mat-option>\n <ng-template ngFor let-record [ngForOf]=\"store.stateView.all$() | async\">\n <mat-option [value]=\"record.entity\">\n {{ titleAccessor(record.entity) }}\n </mat-option>\n </ng-template>\n </mat-select>\n</mat-form-field>\n", styles: ["mat-form-field{width:100%}\n"] }]
|
|
155
|
+
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { store: [{
|
|
156
|
+
type: Input
|
|
157
|
+
}], titleAccessor: [{
|
|
158
|
+
type: Input
|
|
159
|
+
}], emptyText: [{
|
|
160
|
+
type: Input
|
|
161
|
+
}], multi: [{
|
|
162
|
+
type: Input
|
|
163
|
+
}], multiAllText: [{
|
|
164
|
+
type: Input
|
|
165
|
+
}], multiNoneText: [{
|
|
166
|
+
type: Input
|
|
167
|
+
}], placeholder: [{
|
|
168
|
+
type: Input
|
|
169
|
+
}], disabled: [{
|
|
170
|
+
type: Input
|
|
171
|
+
}], selectedChange: [{
|
|
172
|
+
type: Output
|
|
173
|
+
}] } });
|
|
174
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LXNlbGVjdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbW1vbi9lbnRpdHkvc3JjL2VudGl0eS1zZWxlY3Rvci9lbnRpdHktc2VsZWN0b3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tbW9uL2VudGl0eS9zcmMvZW50aXR5LXNlbGVjdG9yL2VudGl0eS1zZWxlY3Rvci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6RCxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEVBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUUzRCxPQUFPLEVBQUUsZUFBZSxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQUdyRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDOzs7OztBQXFCdkQsTUFBTSxPQUFPLHVCQUF1QjtJQXdFZDtJQXZFcEI7OztPQUdHO0lBQ00sU0FBUyxHQUFHLElBQUksZUFBZSxDQUFTLFNBQVMsQ0FBQyxDQUFDO0lBRTVEOzs7T0FHRztJQUNNLFVBQVUsR0FBRyxJQUFJLGVBQWUsQ0FBUyxTQUFTLENBQUMsQ0FBQztJQUVw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Q0FBQyxLQUFLO1lBQ3BDLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxLQUFLLElBQUksQ0FBQyxhQUFhLEVBQzVDLENBQUM7WUFDRCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDM0MsQ0FBQzthQUFNLElBQ0wsUUFBUSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUs7WUFDbEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEtBQUssSUFBSSxDQUFDLFlBQVksRUFDM0MsQ0FBQztZQUNELElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUMxQyxDQUFDO0lBQ0gsQ0FBQzt3R0EzSlUsdUJBQXVCOzRGQUF2Qix1QkFBdUIsa1ZDekNwQywyeEJBdUJBLHFGRFVJLGtCQUFrQix5T0FDbEIsZUFBZSxvckJBQ2YsSUFBSSw0RkFDSixlQUFlLCtCQUNmLEtBQUssOEdBQ0wsU0FBUzs7NEZBR0EsdUJBQXVCO2tCQWZuQyxTQUFTOytCQUNFLHFCQUFxQixtQkFHZCx1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLElBQUksV0FDUDt3QkFDUCxrQkFBa0I7d0JBQ2xCLGVBQWU7d0JBQ2YsSUFBSTt3QkFDSixlQUFlO3dCQUNmLEtBQUs7d0JBQ0wsU0FBUztxQkFDVjtzRkFnQ1EsS0FBSztzQkFBYixLQUFLO2dCQUtHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBS0csU0FBUztzQkFBakIsS0FBSztnQkFLRyxLQUFLO3NCQUFiLEtBQUs7Z0JBS0csWUFBWTtzQkFBcEIsS0FBSztnQkFLRyxhQUFhO3NCQUFyQixLQUFLO2dCQUtHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBS0csUUFBUTtzQkFBaEIsS0FBSztnQkFLSSxjQUFjO3NCQUF2QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXN5bmNQaXBlLCBOZ0ZvciwgTmdJZiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE91dHB1dFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdE9wdGlvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XG5pbXBvcnQgeyBNYXRTZWxlY3RNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zZWxlY3QnO1xuXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBFbnRpdHlSZWNvcmQgfSBmcm9tICcuLi9zaGFyZWQvZW50aXR5LmludGVyZmFjZXMnO1xuaW1wb3J0IHsgZ2V0RW50aXR5VGl0bGUgfSBmcm9tICcuLi9zaGFyZWQvZW50aXR5LnV0aWxzJztcbmltcG9ydCB7IEVudGl0eVN0b3JlIH0gZnJvbSAnLi4vc2hhcmVkL3N0b3JlJztcbmltcG9ydCB7IEVudGl0eVN0b3JlV2F0Y2hlciB9IGZyb20gJy4uL3NoYXJlZC93YXRjaGVyJztcblxuZXhwb3J0IGludGVyZmFjZSBFbnRpdHlTZWxlY3RvckNoYW5nZTxUID0gYW55PiB7XG4gIHNlbGVjdGVkOiBib29sZWFuO1xuICB2YWx1ZTogVDtcbn1cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2lnby1lbnRpdHktc2VsZWN0b3InLFxuICB0ZW1wbGF0ZVVybDogJy4vZW50aXR5LXNlbGVjdG9yLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZW50aXR5LXNlbGVjdG9yLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgTWF0Rm9ybUZpZWxkTW9kdWxlLFxuICAgIE1hdFNlbGVjdE1vZHVsZSxcbiAgICBOZ0lmLFxuICAgIE1hdE9wdGlvbk1vZHVsZSxcbiAgICBOZ0ZvcixcbiAgICBBc3luY1BpcGVcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBFbnRpdHlTZWxlY3RvckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgLyoqXG4gICAqIFRoZSBzZWxlY3RlZCBlbnRpdHlcbiAgICogQGludGVybmFsXG4gICAqL1xuICByZWFkb25seSBzZWxlY3RlZCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PG9iamVjdD4odW5kZWZpbmVkKTtcblxuICAvKipcbiAgICogVGhlIGN1cnJlbnQgbXVsdGkgc2VsZWN0IG9wdGlvbiB0ZXh0XG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcmVhZG9ubHkgbXVsdGlUZXh0JCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPih1bmRlZmluZWQpO1xuXG4gIHJlYWRvbmx5IG11bHRpU2VsZWN0VmFsdWUgPSB7IGlkOiAnSUdPX01VTFRJX1NFTEVDVCcgfTtcblxuICByZWFkb25seSBlbXB0eVZhbHVlID0geyBpZDogJ0lHT19FTVBUWV9TRUxFQ1QnIH07XG5cbiAgLyoqXG4gICAqIFN1YnNjcmlwdGlvbiB0byB0aGUgc2VsZWN0ZWQgZW50aXR5XG4gICAqL1xuICBwcml2YXRlIHNlbGVjdGVkJCQ6IFN1YnNjcmlwdGlvbjtcblxuICAvKipcbiAgICogU3RvcmUgd2F0Y2hlclxuICAgKi9cbiAgcHJpdmF0ZSB3YXRjaGVyOiBFbnRpdHlTdG9yZVdhdGNoZXI8b2JqZWN0PjtcblxuICAvKipcbiAgICogRW50aXR5IHN0b3JlXG4gICAqL1xuICBASW5wdXQoKSBzdG9yZTogRW50aXR5U3RvcmU8b2JqZWN0PjtcblxuICAvKipcbiAgICogVGl0bGUgYWNjZXNzb3JcbiAgICovXG4gIEBJbnB1dCgpIHRpdGxlQWNjZXNzb3I6IChvYmplY3QpID0+IHN0cmluZyA9IGdldEVudGl0eVRpdGxlO1xuXG4gIC8qKlxuICAgKiBUZXh0IHRvIGRpc3BsYXkgd2hlbiBub3RoaW5nIGlzIHNlbGVjdGVkXG4gICAqL1xuICBASW5wdXQoKSBlbXB0eVRleHQ6IHN0cmluZyA9IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogV2hldGVyIHNlbGVjdGluZyBtYW55IGVudGl0aWVzIGlzIGFsbG93ZWRcbiAgICovXG4gIEBJbnB1dCgpIG11bHRpID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIFRleHQgdG8gZGlzcGxheSBmb3IgdGhlIHNlbGVjdCBhbGwgb3B0aW9uXG4gICAqL1xuICBASW5wdXQoKSBtdWx0aUFsbFRleHQgPSAnQWxsJztcblxuICAvKipcbiAgICogVGV4dCB0byBkaXNwbGF5IGZvciB0aGUgc2VsZWN0IG5vbmUgb3B0aW9uXG4gICAqL1xuICBASW5wdXQoKSBtdWx0aU5vbmVUZXh0ID0gJ05vbmUnO1xuXG4gIC8qKlxuICAgKiBGaWVsZCBwbGFjZWhvbGRlclxuICAgKi9cbiAgQElucHV0KCkgcGxhY2Vob2xkZXI6IHN0cmluZztcblxuICAvKipcbiAgICogV2hldGVyIHRoZSBzZWxlY3RvciBpcyBkaXNhYmxlZCBvciBub3RcbiAgICovXG4gIEBJbnB1dCgpIGRpc2FibGVkID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIEV2ZW50IGVtaXR0ZWQgd2hlbiB0aGUgc2VsZWN0aW9uIGNoYW5nZXNcbiAgICovXG4gIEBPdXRwdXQoKSBzZWxlY3RlZENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8RW50aXR5U2VsZWN0b3JDaGFuZ2U+KCk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjZFJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHt9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIHN0b3JlIHdhdGNoZXIgYW5kIHN1YnNjcmliZSB0byB0aGUgc2VsZWN0ZWQgZW50aXR5XG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy53YXRjaGVyID0gbmV3IEVudGl0eVN0b3JlV2F0Y2hlcih0aGlzLnN0b3JlLCB0aGlzLmNkUmVmKTtcblxuICAgIHRoaXMuc2VsZWN0ZWQkJCA9IHRoaXMuc3RvcmUuc3RhdGVWaWV3XG4gICAgICAubWFueUJ5JCgocmVjb3JkOiBFbnRpdHlSZWNvcmQ8b2JqZWN0PikgPT4gcmVjb3JkLnN0YXRlLnNlbGVjdGVkID09PSB0cnVlKVxuICAgICAgLnN1YnNjcmliZSgocmVjb3JkczogRW50aXR5UmVjb3JkPG9iamVjdD5bXSkgPT4ge1xuICAgICAgICBjb25zdCBlbnRpdGllcyA9IHJlY29yZHMubWFwKFxuICAgICAgICAgIChyZWNvcmQ6IEVudGl0eVJlY29yZDxvYmplY3Q+KSA9PiByZWNvcmQuZW50aXR5XG4gICAgICAgICk7XG4gICAgICAgIHRoaXMub25TZWxlY3RGcm9tU3RvcmUoZW50aXRpZXMpO1xuICAgICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogVW5zdWJzY3JpYmUgdG8gdGhlIHNlbGVjdGVkIGVudGl0eSBhbmQgZGVzdHJveSB0aGUgc3RvcmUgd2F0Y2hlclxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMud2F0Y2hlci5kZXN0cm95KCk7XG4gICAgdGhpcy5zZWxlY3RlZCQkLnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICAvKipcbiAgICogT24gc2VsZWN0aW9uIGNoYW5nZSwgdXBkYXRlIHRoZSBzdG9yZSdzIHN0YXRlIGFuZCBlbWl0IGFuIGV2ZW50XG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgb25TZWxlY3Rpb25DaGFuZ2UoZXZlbnQ6IHsgdmFsdWU6IG9iamVjdCB8IHVuZGVmaW5lZCB9KSB7XG4gICAgY29uc3QgdmFsdWVzID0gZXZlbnQudmFsdWUgaW5zdGFuY2VvZiBBcnJheSA/IGV2ZW50LnZhbHVlIDogW2V2ZW50LnZhbHVlXTtcblxuICAgIGNvbnN0IG11bHRpU2VsZWN0ID0gdmFsdWVzLmZpbmQoXG4gICAgICAoX3ZhbHVlOiBvYmplY3QpID0+IF92YWx1ZSA9PT0gdGhpcy5tdWx0aVNlbGVjdFZhbHVlXG4gICAgKTtcbiAgICBsZXQgZW50aXRpZXMgPSB2YWx1ZXMuZmlsdGVyKFxuICAgICAgKF92YWx1ZTogb2JqZWN0KSA9PiBfdmFsdWUgIT09IHRoaXMubXVsdGlTZWxlY3RWYWx1ZVxuICAgICk7XG4gICAgaWYgKG11bHRpU2VsZWN0ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGlmIChlbnRpdGllcy5sZW5ndGggPT09IHRoaXMuc3RvcmUuY291bnQpIHtcbiAgICAgICAgZW50aXRpZXMgPSBbXTtcbiAgICAgIH0gZWxzZSBpZiAoZW50aXRpZXMubGVuZ3RoIDwgdGhpcy5zdG9yZS5jb3VudCkge1xuICAgICAgICBlbnRpdGllcyA9IHRoaXMuc3RvcmUuYWxsKCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgZW50aXRpZXMgPSBlbnRpdGllcy5maWx0ZXIoKGVudGl0eTogb2JqZWN0KSA9PiBlbnRpdHkgIT09IHRoaXMuZW1wdHlWYWx1ZSk7XG4gICAgaWYgKGVudGl0aWVzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhpcy5zdG9yZS5zdGF0ZS51cGRhdGVBbGwoeyBzZWxlY3RlZDogZmFsc2UgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc3RvcmUuc3RhdGUudXBkYXRlTWFueShlbnRpdGllcywgeyBzZWxlY3RlZDogdHJ1ZSB9LCB0cnVlKTtcbiAgICB9XG5cbiAgICBjb25zdCB2YWx1ZSA9IHRoaXMubXVsdGkgPyBlbnRpdGllcyA6IGV2ZW50LnZhbHVlO1xuICAgIHRoaXMuc2VsZWN0ZWRDaGFuZ2UuZW1pdCh7IHNlbGVjdGVkOiB0cnVlLCB2YWx1ZSB9KTtcbiAgfVxuXG4gIHByaXZhdGUgb25TZWxlY3RGcm9tU3RvcmUoZW50aXRpZXM6IG9iamVjdFtdKSB7XG4gICAgaWYgKHRoaXMubXVsdGkgPT09IHRydWUpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWQkLm5leHQoZW50aXRpZXMpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBlbnRpdHkgPSBlbnRpdGllcy5sZW5ndGggPiAwID8gZW50aXRpZXNbMF0gOiB1bmRlZmluZWQ7XG4gICAgICB0aGlzLnNlbGVjdGVkJC5uZXh0KGVudGl0eSk7XG4gICAgfVxuXG4gICAgdGhpcy51cGRhdGVNdWx0aVRvZ2dsZVdpdGhFbnRpdGllcyhlbnRpdGllcyk7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZU11bHRpVG9nZ2xlV2l0aEVudGl0aWVzKGVudGl0aWVzOiBvYmplY3RbXSkge1xuICAgIGlmIChcbiAgICAgIGVudGl0aWVzLmxlbmd0aCA9PT0gdGhpcy5zdG9yZS5jb3VudCAmJlxuICAgICAgdGhpcy5tdWx0aVRleHQkLnZhbHVlICE9PSB0aGlzLm11bHRpTm9uZVRleHRcbiAgICApIHtcbiAgICAgIHRoaXMubXVsdGlUZXh0JC5uZXh0KHRoaXMubXVsdGlOb25lVGV4dCk7XG4gICAgfSBlbHNlIGlmIChcbiAgICAgIGVudGl0aWVzLmxlbmd0aCA8IHRoaXMuc3RvcmUuY291bnQgJiZcbiAgICAgIHRoaXMubXVsdGlUZXh0JC52YWx1ZSAhPT0gdGhpcy5tdWx0aUFsbFRleHRcbiAgICApIHtcbiAgICAgIHRoaXMubXVsdGlUZXh0JC5uZXh0KHRoaXMubXVsdGlBbGxUZXh0KTtcbiAgICB9XG4gIH1cbn1cbiIsIjxtYXQtZm9ybS1maWVsZCBjbGFzcz1cImlnby1lbnRpdHktc2VsZWN0b3JcIiBzdWJzY3JpcHRTaXppbmc9XCJkeW5hbWljXCI+XG4gIDxtYXQtc2VsZWN0XG4gICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICBbdmFsdWVdPVwic2VsZWN0ZWQkIHwgYXN5bmNcIlxuICAgIFttdWx0aXBsZV09XCJtdWx0aVwiXG4gICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcbiAgICAoc2VsZWN0aW9uQ2hhbmdlKT1cIm9uU2VsZWN0aW9uQ2hhbmdlKCRldmVudClcIlxuICA+XG4gICAgPG1hdC1vcHRpb25cbiAgICAgICpuZ0lmPVwiZW1wdHlUZXh0ICE9PSB1bmRlZmluZWQgJiYgbXVsdGkgPT09IGZhbHNlXCJcbiAgICAgIFt2YWx1ZV09XCJlbXB0eVZhbHVlXCJcbiAgICAgID57eyBlbXB0eVRleHQgfX08L21hdC1vcHRpb25cbiAgICA+XG4gICAgPG1hdC1vcHRpb24gKm5nSWY9XCJtdWx0aSA9PT0gdHJ1ZVwiIFt2YWx1ZV09XCJtdWx0aVNlbGVjdFZhbHVlXCI+e3tcbiAgICAgIG11bHRpVGV4dCQgfCBhc3luY1xuICAgIH19PC9tYXQtb3B0aW9uPlxuICAgIDxuZy10ZW1wbGF0ZSBuZ0ZvciBsZXQtcmVjb3JkIFtuZ0Zvck9mXT1cInN0b3JlLnN0YXRlVmlldy5hbGwkKCkgfCBhc3luY1wiPlxuICAgICAgPG1hdC1vcHRpb24gW3ZhbHVlXT1cInJlY29yZC5lbnRpdHlcIj5cbiAgICAgICAge3sgdGl0bGVBY2Nlc3NvcihyZWNvcmQuZW50aXR5KSB9fVxuICAgICAgPC9tYXQtb3B0aW9uPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwvbWF0LXNlbGVjdD5cbjwvbWF0LWZvcm0tZmllbGQ+XG4iXX0=
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { EntitySelectorComponent } from './entity-selector.component';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
/**
|
|
5
|
+
* @deprecated import the EntitySelectorComponent directly
|
|
6
|
+
*/
|
|
7
|
+
export class IgoEntitySelectorModule {
|
|
8
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IgoEntitySelectorModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
9
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: IgoEntitySelectorModule, imports: [EntitySelectorComponent], exports: [EntitySelectorComponent] });
|
|
10
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IgoEntitySelectorModule, imports: [EntitySelectorComponent] });
|
|
11
|
+
}
|
|
12
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IgoEntitySelectorModule, decorators: [{
|
|
13
|
+
type: NgModule,
|
|
14
|
+
args: [{
|
|
15
|
+
imports: [EntitySelectorComponent],
|
|
16
|
+
exports: [EntitySelectorComponent]
|
|
17
|
+
}]
|
|
18
|
+
}] });
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LXNlbGVjdG9yLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbW1vbi9lbnRpdHkvc3JjL2VudGl0eS1zZWxlY3Rvci9lbnRpdHktc2VsZWN0b3IubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFekMsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNkJBQTZCLENBQUM7O0FBRXRFOztHQUVHO0FBS0gsTUFBTSxPQUFPLHVCQUF1Qjt3R0FBdkIsdUJBQXVCO3lHQUF2Qix1QkFBdUIsWUFIeEIsdUJBQXVCLGFBQ3ZCLHVCQUF1Qjt5R0FFdEIsdUJBQXVCLFlBSHhCLHVCQUF1Qjs7NEZBR3RCLHVCQUF1QjtrQkFKbkMsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUUsQ0FBQyx1QkFBdUIsQ0FBQztvQkFDbEMsT0FBTyxFQUFFLENBQUMsdUJBQXVCLENBQUM7aUJBQ25DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgRW50aXR5U2VsZWN0b3JDb21wb25lbnQgfSBmcm9tICcuL2VudGl0eS1zZWxlY3Rvci5jb21wb25lbnQnO1xuXG4vKipcbiAqIEBkZXByZWNhdGVkIGltcG9ydCB0aGUgRW50aXR5U2VsZWN0b3JDb21wb25lbnQgZGlyZWN0bHlcbiAqL1xuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW0VudGl0eVNlbGVjdG9yQ29tcG9uZW50XSxcbiAgZXhwb3J0czogW0VudGl0eVNlbGVjdG9yQ29tcG9uZW50XVxufSlcbmV4cG9ydCBjbGFzcyBJZ29FbnRpdHlTZWxlY3Rvck1vZHVsZSB7fVxuIl19
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export * from './entity-selector.module';
|
|
2
|
+
export * from './entity-selector.component';
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vZW50aXR5L3NyYy9lbnRpdHktc2VsZWN0b3IvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLDZCQUE2QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9lbnRpdHktc2VsZWN0b3IubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vZW50aXR5LXNlbGVjdG9yLmNvbXBvbmVudCc7XG4iXX0=
|