@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,192 @@
|
|
|
1
|
+
import { EntityStore } from '@igo2/common/entity';
|
|
2
|
+
import { BehaviorSubject } from 'rxjs';
|
|
3
|
+
/**
|
|
4
|
+
* Service where all available tools and their component are registered.
|
|
5
|
+
*/
|
|
6
|
+
export class Toolbox {
|
|
7
|
+
options;
|
|
8
|
+
/**
|
|
9
|
+
* Observable of the active tool
|
|
10
|
+
*/
|
|
11
|
+
activeTool$ = new BehaviorSubject(undefined);
|
|
12
|
+
/**
|
|
13
|
+
* Ordered list of tool names to display in a toolbar
|
|
14
|
+
*/
|
|
15
|
+
toolbar$ = new BehaviorSubject([]);
|
|
16
|
+
/**
|
|
17
|
+
* Observable of the active tool
|
|
18
|
+
*/
|
|
19
|
+
activeTool$$;
|
|
20
|
+
/**
|
|
21
|
+
* Active tool history. Useful for activating the previous tool.
|
|
22
|
+
*/
|
|
23
|
+
activeToolHistory = [];
|
|
24
|
+
previousToolName;
|
|
25
|
+
currentToolName;
|
|
26
|
+
/**
|
|
27
|
+
* Tool store
|
|
28
|
+
*/
|
|
29
|
+
store = new EntityStore([], {
|
|
30
|
+
getKey: (tool) => tool.name
|
|
31
|
+
});
|
|
32
|
+
get tools$() {
|
|
33
|
+
return this.store.entities$;
|
|
34
|
+
}
|
|
35
|
+
constructor(options = {}) {
|
|
36
|
+
this.options = options;
|
|
37
|
+
this.setToolbar(options.toolbar);
|
|
38
|
+
this.initStore();
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Destroy the toolbox
|
|
42
|
+
*/
|
|
43
|
+
destroy() {
|
|
44
|
+
this.activeTool$$.unsubscribe();
|
|
45
|
+
this.store.destroy();
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Return a tool
|
|
49
|
+
* @param name Tool name
|
|
50
|
+
* @returns tool Tool
|
|
51
|
+
*/
|
|
52
|
+
getTool(name) {
|
|
53
|
+
return this.store.get(name);
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Return all tools
|
|
57
|
+
* @returns Array of tools
|
|
58
|
+
*/
|
|
59
|
+
getTools() {
|
|
60
|
+
return this.store.all();
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Set tool configurations
|
|
64
|
+
* @param tools Tools
|
|
65
|
+
*/
|
|
66
|
+
setTools(tools) {
|
|
67
|
+
this.store.load(tools);
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Get toolbar
|
|
71
|
+
* @returns Toolbar value
|
|
72
|
+
*/
|
|
73
|
+
getToolbar() {
|
|
74
|
+
return this.toolbar$.getValue();
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Set toolbar
|
|
78
|
+
* @param toolbar A list of tool names
|
|
79
|
+
*/
|
|
80
|
+
setToolbar(toolbar) {
|
|
81
|
+
this.toolbar$.next(toolbar || []);
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Activate a tool (and deactivate other tools)
|
|
85
|
+
* @param name Tool name
|
|
86
|
+
* @param options Tool options
|
|
87
|
+
*/
|
|
88
|
+
activateTool(name, options = {}) {
|
|
89
|
+
const tool = this.getTool(name);
|
|
90
|
+
if (tool === undefined) {
|
|
91
|
+
return;
|
|
92
|
+
}
|
|
93
|
+
this.store.state.update(tool, { active: true, options }, true);
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Activate the previous tool, if any
|
|
97
|
+
*/
|
|
98
|
+
activatePreviousTool() {
|
|
99
|
+
if (this.activeToolHistory.length <= 1) {
|
|
100
|
+
this.deactivateTool();
|
|
101
|
+
return;
|
|
102
|
+
}
|
|
103
|
+
const [previous] = this.activeToolHistory.splice(-2, 2);
|
|
104
|
+
this.activateTool(previous);
|
|
105
|
+
}
|
|
106
|
+
getCurrentPreviousToolName() {
|
|
107
|
+
return [this.previousToolName, this.currentToolName];
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Activate the tool below, if any
|
|
111
|
+
*/
|
|
112
|
+
/* activateBelowTool() {
|
|
113
|
+
const arrayTools = this.getToolbar();
|
|
114
|
+
const index = arrayTools.findIndex(t => t === this.activeTool$.getValue().name);
|
|
115
|
+
if (arrayTools[index + 1] !== undefined) {
|
|
116
|
+
this.deactivateTool();
|
|
117
|
+
const below = arrayTools[index + 1];
|
|
118
|
+
this.activateTool(below);
|
|
119
|
+
} else {
|
|
120
|
+
this.deactivateTool();
|
|
121
|
+
const below = arrayTools[0];
|
|
122
|
+
this.activateTool(below);
|
|
123
|
+
}
|
|
124
|
+
} */
|
|
125
|
+
/**
|
|
126
|
+
* Activate the tool above, if any
|
|
127
|
+
*/
|
|
128
|
+
/* activateAboveTool() {
|
|
129
|
+
const arrayTools = this.getToolbar();
|
|
130
|
+
const index = arrayTools.findIndex(t => t === this.activeTool$.getValue().name);
|
|
131
|
+
if (arrayTools[index - 1] !== undefined) {
|
|
132
|
+
this.deactivateTool();
|
|
133
|
+
const above = arrayTools[index - 1];
|
|
134
|
+
this.activateTool(above);
|
|
135
|
+
} else {
|
|
136
|
+
this.deactivateTool();
|
|
137
|
+
const above = arrayTools[arrayTools.length - 1];
|
|
138
|
+
this.activateTool(above);
|
|
139
|
+
}
|
|
140
|
+
} */
|
|
141
|
+
/**
|
|
142
|
+
* Deactivate the active tool
|
|
143
|
+
*/
|
|
144
|
+
deactivateTool() {
|
|
145
|
+
this.clearActiveToolHistory();
|
|
146
|
+
this.store.state.updateAll({ active: false });
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* Initialize the tool store and start observing the active tool
|
|
150
|
+
*/
|
|
151
|
+
initStore() {
|
|
152
|
+
this.store = new EntityStore([], {
|
|
153
|
+
getKey: (entity) => entity.name
|
|
154
|
+
});
|
|
155
|
+
this.activeTool$$ = this.store.stateView
|
|
156
|
+
.firstBy$((record) => record.state.active === true)
|
|
157
|
+
.subscribe((record) => {
|
|
158
|
+
if (record === undefined) {
|
|
159
|
+
this.setActiveTool(undefined);
|
|
160
|
+
return;
|
|
161
|
+
}
|
|
162
|
+
const tool = record.entity;
|
|
163
|
+
const options = Object.assign({}, tool.options || {}, record.state.options || {});
|
|
164
|
+
this.setActiveTool(Object.assign({}, tool, { options }));
|
|
165
|
+
});
|
|
166
|
+
}
|
|
167
|
+
/**
|
|
168
|
+
* Set the active tool and update the tool history
|
|
169
|
+
* @param tool Tool
|
|
170
|
+
*/
|
|
171
|
+
setActiveTool(tool) {
|
|
172
|
+
this.activeTool$.next(tool);
|
|
173
|
+
if (tool === undefined) {
|
|
174
|
+
this.clearActiveToolHistory();
|
|
175
|
+
}
|
|
176
|
+
else {
|
|
177
|
+
this.activeToolHistory = this.activeToolHistory
|
|
178
|
+
.filter((name) => name !== tool.name)
|
|
179
|
+
.concat([tool.name]);
|
|
180
|
+
this.previousToolName = this.currentToolName;
|
|
181
|
+
this.currentToolName =
|
|
182
|
+
this.activeToolHistory[this.activeToolHistory.length - 1];
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
/**
|
|
186
|
+
* Clear the tool history
|
|
187
|
+
*/
|
|
188
|
+
clearActiveToolHistory() {
|
|
189
|
+
this.activeToolHistory = [];
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbGJveC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbW1vbi90b29sL3NyYy9zaGFyZWQvdG9vbGJveC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWdCLFdBQVcsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRWhFLE9BQU8sRUFBRSxlQUFlLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBSXJEOztHQUVHO0FBQ0gsTUFBTSxPQUFPLE9BQU87SUFrQ0U7SUFqQ3BCOztPQUVHO0lBQ0gsV0FBVyxHQUFHLElBQUksZUFBZSxDQUFPLFNBQVMsQ0FBQyxDQUFDO0lBRW5EOztPQUVHO0lBQ0gsUUFBUSxHQUFHLElBQUksZUFBZSxDQUFXLEVBQUUsQ0FBQyxDQUFDO0lBRTdDOztPQUVHO0lBQ0ssWUFBWSxDQUFlO0lBRW5DOztPQUVHO0lBQ0ssaUJBQWlCLEdBQWEsRUFBRSxDQUFDO0lBQ2pDLGdCQUFnQixDQUFTO0lBQ3pCLGVBQWUsQ0FBUztJQUVoQzs7T0FFRztJQUNLLEtBQUssR0FBRyxJQUFJLFdBQVcsQ0FBTyxFQUFFLEVBQUU7UUFDeEMsTUFBTSxFQUFFLENBQUMsSUFBVSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSTtLQUNsQyxDQUFDLENBQUM7SUFFSCxJQUFJLE1BQU07UUFDUixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDO0lBQzlCLENBQUM7SUFFRCxZQUFvQixVQUEwQixFQUFFO1FBQTVCLFlBQU8sR0FBUCxPQUFPLENBQXFCO1FBQzlDLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNuQixDQUFDO0lBRUQ7O09BRUc7SUFDSCxPQUFPO1FBQ0wsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNoQyxJQUFJLENBQUMsS0FBSyxDQUFD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T0FBTyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQzNCLEVBQUUsRUFDRixJQUFJLENBQUMsT0FBTyxJQUFJLEVBQUUsRUFDbEIsTUFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLElBQUksRUFBRSxDQUMzQixDQUFDO1lBQ0YsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDM0QsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ssYUFBYSxDQUFDLElBQXNCO1FBQzFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzVCLElBQUksSUFBSSxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1FBQ2hDLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxpQkFBaUI7aUJBQzVDLE1BQU0sQ0FBQyxDQUFDLElBQVksRUFBRSxFQUFFLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxJQUFJLENBQUM7aUJBQzVDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBRXZCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDO1lBQzdDLElBQUksQ0FBQyxlQUFlO2dCQUNsQixJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztRQUM5RCxDQUFDO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ0ssc0JBQXNCO1FBQzVCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxFQUFFLENBQUM7SUFDOUIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRW50aXR5UmVjb3JkLCBFbnRpdHlTdG9yZSB9IGZyb20gJ0BpZ28yL2NvbW1vbi9lbnRpdHknO1xuXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBUb29sLCBUb29sYm94T3B0aW9ucyB9IGZyb20gJy4vdG9vbC5pbnRlcmZhY2UnO1xuXG4vKipcbiAqIFNlcnZpY2Ugd2hlcmUgYWxsIGF2YWlsYWJsZSB0b29scyBhbmQgdGhlaXIgY29tcG9uZW50IGFyZSByZWdpc3RlcmVkLlxuICovXG5leHBvcnQgY2xhc3MgVG9vbGJveCB7XG4gIC8qKlxuICAgKiBPYnNlcnZhYmxlIG9mIHRoZSBhY3RpdmUgdG9vbFxuICAgKi9cbiAgYWN0aXZlVG9vbCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFRvb2w+KHVuZGVmaW5lZCk7XG5cbiAgLyoqXG4gICAqIE9yZGVyZWQgbGlzdCBvZiB0b29sIG5hbWVzIHRvIGRpc3BsYXkgaW4gYSB0b29sYmFyXG4gICAqL1xuICB0b29sYmFyJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nW10+KFtdKTtcblxuICAvKipcbiAgICogT2JzZXJ2YWJsZSBvZiB0aGUgYWN0aXZlIHRvb2xcbiAgICovXG4gIHByaXZhdGUgYWN0aXZlVG9vbCQkOiBTdWJzY3JpcHRpb247XG5cbiAgLyoqXG4gICAqIEFjdGl2ZSB0b29sIGhpc3RvcnkuIFVzZWZ1bCBmb3IgYWN0aXZhdGluZyB0aGUgcHJldmlvdXMgdG9vbC5cbiAgICovXG4gIHByaXZhdGUgYWN0aXZlVG9vbEhpc3Rvcnk6IHN0cmluZ1tdID0gW107XG4gIHByaXZhdGUgcHJldmlvdXNUb29sTmFtZTogc3RyaW5nO1xuICBwcml2YXRlIGN1cnJlbnRUb29sTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUb29sIHN0b3JlXG4gICAqL1xuICBwcml2YXRlIHN0b3JlID0gbmV3IEVudGl0eVN0b3JlPFRvb2w+KFtdLCB7XG4gICAgZ2V0S2V5OiAodG9vbDogVG9vbCkgPT4gdG9vbC5uYW1lXG4gIH0pO1xuXG4gIGdldCB0b29scyQoKTogQmVoYXZpb3JTdWJqZWN0PFRvb2xbXT4ge1xuICAgIHJldHVybiB0aGlzLnN0b3JlLmVudGl0aWVzJDtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgb3B0aW9uczogVG9vbGJveE9wdGlvbnMgPSB7fSkge1xuICAgIHRoaXMuc2V0VG9vbGJhcihvcHRpb25zLnRvb2xiYXIpO1xuICAgIHRoaXMuaW5pdFN0b3JlKCk7XG4gIH1cblxuICAvKipcbiAgICogRGVzdHJveSB0aGUgdG9vbGJveFxuICAgKi9cbiAgZGVzdHJveSgpIHtcbiAgICB0aGlzLmFjdGl2ZVRvb2wkJC51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMuc3RvcmUuZGVzdHJveSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiBhIHRvb2xcbiAgICogQHBhcmFtIG5hbWUgVG9vbCBuYW1lXG4gICAqIEByZXR1cm5zIHRvb2wgVG9vbFxuICAgKi9cbiAgZ2V0VG9vbChuYW1lOiBzdHJpbmcpOiBUb29sIHtcbiAgICByZXR1cm4gdGhpcy5zdG9yZS5nZXQobmFtZSk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIGFsbCB0b29sc1xuICAgKiBAcmV0dXJucyBBcnJheSBvZiB0b29sc1xuICAgKi9cbiAgZ2V0VG9vbHMoKTogVG9vbFtdIHtcbiAgICByZXR1cm4gdGhpcy5zdG9yZS5hbGwoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgdG9vbCBjb25maWd1cmF0aW9uc1xuICAgKiBAcGFyYW0gdG9vbHMgVG9vbHNcbiAgICovXG4gIHNldFRvb2xzKHRvb2xzOiBUb29sW10pIHtcbiAgICB0aGlzLnN0b3JlLmxvYWQodG9vbHMpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0b29sYmFyXG4gICAqIEByZXR1cm5zIFRvb2xiYXIgdmFsdWVcbiAgICovXG4gIGdldFRvb2xiYXIoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiB0aGlzLnRvb2xiYXIkLmdldFZhbHVlKCk7XG4gIH1cblxuICAvKipcbiAgICogU2V0IHRvb2xiYXJcbiAgICogQHBhcmFtIHRvb2xiYXIgQSBsaXN0IG9mIHRvb2wgbmFtZXNcbiAgICovXG4gIHNldFRvb2xiYXIodG9vbGJhcjogc3RyaW5nW10pIHtcbiAgICB0aGlzLnRvb2xiYXIkLm5leHQodG9vbGJhciB8fCBbXSk7XG4gIH1cblxuICAvKipcbiAgICogQWN0aXZhdGUgYSB0b29sIChhbmQgZGVhY3RpdmF0ZSBvdGhlciB0b29scylcbiAgICogQHBhcmFtIG5hbWUgVG9vbCBuYW1lXG4gICAqIEBwYXJhbSBvcHRpb25zIFRvb2wgb3B0aW9uc1xuICAgKi9cbiAgYWN0aXZhdGVUb29sKG5hbWU6IHN0cmluZywgb3B0aW9uczogUmVjb3JkPHN0cmluZywgYW55PiA9IHt9KSB7XG4gICAgY29uc3QgdG9vbCA9IHRoaXMuZ2V0VG9vbChuYW1lKTtcbiAgICBpZiAodG9vbCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5zdG9yZS5zdGF0ZS51cGRhdGUodG9vbCwgeyBhY3RpdmU6IHRydWUsIG9wdGlvbnMgfSwgdHJ1ZSk7XG4gIH1cblxuICAvKipcbiAgICogQWN0aXZhdGUgdGhlIHByZXZpb3VzIHRvb2wsIGlmIGFueVxuICAgKi9cbiAgYWN0aXZhdGVQcmV2aW91c1Rvb2woKSB7XG4gICAgaWYgKHRoaXMuYWN0aXZlVG9vbEhpc3RvcnkubGVuZ3RoIDw9IDEpIHtcbiAgICAgIHRoaXMuZGVhY3RpdmF0ZVRvb2woKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgW3ByZXZpb3VzXSA9IHRoaXMuYWN0aXZlVG9vbEhpc3Rvcnkuc3BsaWNlKC0yLCAyKTtcbiAgICB0aGlzLmFjdGl2YXRlVG9vbChwcmV2aW91cyk7XG4gIH1cblxuICBnZXRDdXJyZW50UHJldmlvdXNUb29sTmFtZSgpOiBbc3RyaW5nLCBzdHJpbmddIHtcbiAgICByZXR1cm4gW3RoaXMucHJldmlvdXNUb29sTmFtZSwgdGhpcy5jdXJyZW50VG9vbE5hbWVdO1xuICB9XG5cbiAgLyoqXG4gICAqIEFjdGl2YXRlIHRoZSB0b29sIGJlbG93LCBpZiBhbnlcbiAgICovXG4gIC8qIGFjdGl2YXRlQmVsb3dUb29sKCkge1xuICAgIGNvbnN0IGFycmF5VG9vbHMgPSB0aGlzLmdldFRvb2xiYXIoKTtcbiAgICBjb25zdCBpbmRleCA9IGFycmF5VG9vbHMuZmluZEluZGV4KHQgPT4gdCA9PT0gdGhpcy5hY3RpdmVUb29sJC5nZXRWYWx1ZSgpLm5hbWUpO1xuICAgIGlmIChhcnJheVRvb2xzW2luZGV4ICsgMV0gIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5kZWFjdGl2YXRlVG9vbCgpO1xuICAgICAgY29uc3QgYmVsb3cgPSBhcnJheVRvb2xzW2luZGV4ICsgMV07XG4gICAgICB0aGlzLmFjdGl2YXRlVG9vbChiZWxvdyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZGVhY3RpdmF0ZVRvb2woKTtcbiAgICAgIGNvbnN0IGJlbG93ID0gYXJyYXlUb29sc1swXTtcbiAgICAgIHRoaXMuYWN0aXZhdGVUb29sKGJlbG93KTtcbiAgICB9XG4gIH0gKi9cblxuICAvKipcbiAgICogQWN0aXZhdGUgdGhlIHRvb2wgYWJvdmUsIGlmIGFueVxuICAgKi9cbiAgLyogYWN0aXZhdGVBYm92ZVRvb2woKSB7XG4gICAgY29uc3QgYXJyYXlUb29scyA9IHRoaXMuZ2V0VG9vbGJhcigpO1xuICAgIGNvbnN0IGluZGV4ID0gYXJyYXlUb29scy5maW5kSW5kZXgodCA9PiB0ID09PSB0aGlzLmFjdGl2ZVRvb2wkLmdldFZhbHVlKCkubmFtZSk7XG4gICAgaWYgKGFycmF5VG9vbHNbaW5kZXggLSAxXSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLmRlYWN0aXZhdGVUb29sKCk7XG4gICAgICBjb25zdCBhYm92ZSA9IGFycmF5VG9vbHNbaW5kZXggLSAxXTtcbiAgICAgIHRoaXMuYWN0aXZhdGVUb29sKGFib3ZlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5kZWFjdGl2YXRlVG9vbCgpO1xuICAgICAgY29uc3QgYWJvdmUgPSBhcnJheVRvb2xzW2FycmF5VG9vbHMubGVuZ3RoIC0gMV07XG4gICAgICB0aGlzLmFjdGl2YXRlVG9vbChhYm92ZSk7XG4gICAgfVxuICB9ICovXG5cbiAgLyoqXG4gICAqIERlYWN0aXZhdGUgdGhlIGFjdGl2ZSB0b29sXG4gICAqL1xuICBkZWFjdGl2YXRlVG9vbCgpIHtcbiAgICB0aGlzLmNsZWFyQWN0aXZlVG9vbEhpc3RvcnkoKTtcbiAgICB0aGlzLnN0b3JlLnN0YXRlLnVwZGF0ZUFsbCh7IGFjdGl2ZTogZmFsc2UgfSk7XG4gIH1cblxuICAvKipcbiAgICogSW5pdGlhbGl6ZSB0aGUgdG9vbCBzdG9yZSBhbmQgc3RhcnQgb2JzZXJ2aW5nIHRoZSBhY3RpdmUgdG9vbFxuICAgKi9cbiAgcHJpdmF0ZSBpbml0U3RvcmUoKSB7XG4gICAgdGhpcy5zdG9yZSA9IG5ldyBFbnRpdHlTdG9yZTxUb29sPihbXSwge1xuICAgICAgZ2V0S2V5OiAoZW50aXR5OiBUb29sKSA9PiBlbnRpdHkubmFtZVxuICAgIH0pO1xuXG4gICAgdGhpcy5hY3RpdmVUb29sJCQgPSB0aGlzLnN0b3JlLnN0YXRlVmlld1xuICAgICAgLmZpcnN0QnkkKChyZWNvcmQ6IEVudGl0eVJlY29yZDxUb29sPikgPT4gcmVjb3JkLnN0YXRlLmFjdGl2ZSA9PT0gdHJ1ZSlcbiAgICAgIC5zdWJzY3JpYmUoKHJlY29yZDogRW50aXR5UmVjb3JkPFRvb2w+KSA9PiB7XG4gICAgICAgIGlmIChyZWNvcmQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIHRoaXMuc2V0QWN0aXZlVG9vbCh1bmRlZmluZWQpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHRvb2wgPSByZWNvcmQuZW50aXR5O1xuICAgICAgICBjb25zdCBvcHRpb25zID0gT2JqZWN0LmFzc2lnbihcbiAgICAgICAgICB7fSxcbiAgICAgICAgICB0b29sLm9wdGlvbnMgfHwge30sXG4gICAgICAgICAgcmVjb3JkLnN0YXRlLm9wdGlvbnMgfHwge31cbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5zZXRBY3RpdmVUb29sKE9iamVjdC5hc3NpZ24oe30sIHRvb2wsIHsgb3B0aW9ucyB9KSk7XG4gICAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgdGhlIGFjdGl2ZSB0b29sIGFuZCB1cGRhdGUgdGhlIHRvb2wgaGlzdG9yeVxuICAgKiBAcGFyYW0gdG9vbCBUb29sXG4gICAqL1xuICBwcml2YXRlIHNldEFjdGl2ZVRvb2wodG9vbDogVG9vbCB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuYWN0aXZlVG9vbCQubmV4dCh0b29sKTtcbiAgICBpZiAodG9vbCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLmNsZWFyQWN0aXZlVG9vbEhpc3RvcnkoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5hY3RpdmVUb29sSGlzdG9yeSA9IHRoaXMuYWN0aXZlVG9vbEhpc3RvcnlcbiAgICAgICAgLmZpbHRlcigobmFtZTogc3RyaW5nKSA9PiBuYW1lICE9PSB0b29sLm5hbWUpXG4gICAgICAgIC5jb25jYXQoW3Rvb2wubmFtZV0pO1xuXG4gICAgICB0aGlzLnByZXZpb3VzVG9vbE5hbWUgPSB0aGlzLmN1cnJlbnRUb29sTmFtZTtcbiAgICAgIHRoaXMuY3VycmVudFRvb2xOYW1lID1cbiAgICAgICAgdGhpcy5hY3RpdmVUb29sSGlzdG9yeVt0aGlzLmFjdGl2ZVRvb2xIaXN0b3J5Lmxlbmd0aCAtIDFdO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDbGVhciB0aGUgdG9vbCBoaXN0b3J5XG4gICAqL1xuICBwcml2YXRlIGNsZWFyQWN0aXZlVG9vbEhpc3RvcnkoKSB7XG4gICAgdGhpcy5hY3RpdmVUb29sSGlzdG9yeSA9IFtdO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { ToolService } from './shared/tool.service';
|
|
3
|
+
import { IgoToolboxModule } from './toolbox/toolbox.module';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
/**
|
|
6
|
+
* @deprecated import the ToolboxComponent directly
|
|
7
|
+
*/
|
|
8
|
+
export class IgoToolModule {
|
|
9
|
+
/**
|
|
10
|
+
* @deprecated it has no effect
|
|
11
|
+
*/
|
|
12
|
+
static forRoot() {
|
|
13
|
+
return {
|
|
14
|
+
ngModule: IgoToolModule,
|
|
15
|
+
providers: [ToolService]
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IgoToolModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
19
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: IgoToolModule, exports: [IgoToolboxModule] });
|
|
20
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IgoToolModule, imports: [IgoToolboxModule] });
|
|
21
|
+
}
|
|
22
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IgoToolModule, decorators: [{
|
|
23
|
+
type: NgModule,
|
|
24
|
+
args: [{
|
|
25
|
+
exports: [IgoToolboxModule]
|
|
26
|
+
}]
|
|
27
|
+
}] });
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vdG9vbC9zcmMvdG9vbC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUF1QixRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFOUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3BELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDOztBQUU1RDs7R0FFRztBQUlILE1BQU0sT0FBTyxhQUFhO0lBQ3hCOztPQUVHO0lBQ0gsTUFBTSxDQUFDLE9BQU87UUFDWixPQUFPO1lBQ0wsUUFBUSxFQUFFLGFBQWE7WUFDdkIsU0FBUyxFQUFFLENBQUMsV0FBVyxDQUFDO1NBQ3pCLENBQUM7SUFDSixDQUFDO3dHQVRVLGFBQWE7eUdBQWIsYUFBYSxZQUZkLGdCQUFnQjt5R0FFZixhQUFhLFlBRmQsZ0JBQWdCOzs0RkFFZixhQUFhO2tCQUh6QixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLGdCQUFnQixDQUFDO2lCQUM1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1vZHVsZVdpdGhQcm92aWRlcnMsIE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFRvb2xTZXJ2aWNlIH0gZnJvbSAnLi9zaGFyZWQvdG9vbC5zZXJ2aWNlJztcbmltcG9ydCB7IElnb1Rvb2xib3hNb2R1bGUgfSBmcm9tICcuL3Rvb2xib3gvdG9vbGJveC5tb2R1bGUnO1xuXG4vKipcbiAqIEBkZXByZWNhdGVkIGltcG9ydCB0aGUgVG9vbGJveENvbXBvbmVudCBkaXJlY3RseVxuICovXG5ATmdNb2R1bGUoe1xuICBleHBvcnRzOiBbSWdvVG9vbGJveE1vZHVsZV1cbn0pXG5leHBvcnQgY2xhc3MgSWdvVG9vbE1vZHVsZSB7XG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCBpdCBoYXMgbm8gZWZmZWN0XG4gICAqL1xuICBzdGF0aWMgZm9yUm9vdCgpOiBNb2R1bGVXaXRoUHJvdmlkZXJzPElnb1Rvb2xNb2R1bGU+IHtcbiAgICByZXR1cm4ge1xuICAgICAgbmdNb2R1bGU6IElnb1Rvb2xNb2R1bGUsXG4gICAgICBwcm92aWRlcnM6IFtUb29sU2VydmljZV1cbiAgICB9O1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export * from './toolbox.module';
|
|
2
|
+
export * from './toolbox.component';
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vdG9vbC9zcmMvdG9vbGJveC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMscUJBQXFCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3Rvb2xib3gubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vdG9vbGJveC5jb21wb25lbnQnO1xuIl19
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { animate, state, style, transition, trigger } from '@angular/animations';
|
|
2
|
+
export function toolSlideInOut(speed = '300ms', type = 'ease-in-out') {
|
|
3
|
+
return trigger('toolSlideInOut', [
|
|
4
|
+
state('enter', style({
|
|
5
|
+
transform: 'translate3d(0, 0, 0)'
|
|
6
|
+
})),
|
|
7
|
+
transition('void => enter', animate(speed + ' ' + type))
|
|
8
|
+
]);
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbGJveC5hbmltYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vdG9vbC9zcmMvdG9vbGJveC90b29sYm94LmFuaW1hdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsT0FBTyxFQUNQLEtBQUssRUFDTCxLQUFLLEVBQ0wsVUFBVSxFQUNWLE9BQU8sRUFDUixNQUFNLHFCQUFxQixDQUFDO0FBRTdCLE1BQU0sVUFBVSxjQUFjLENBQzVCLEtBQUssR0FBRyxPQUFPLEVBQ2YsSUFBSSxHQUFHLGFBQWE7SUFFcEIsT0FBTyxPQUFPLENBQUMsZ0JBQWdCLEVBQUU7UUFDL0IsS0FBSyxDQUNILE9BQU8sRUFDUCxLQUFLLENBQUM7WUFDSixTQUFTLEVBQUUsc0JBQXNCO1NBQ2xDLENBQUMsQ0FDSDtRQUNELFVBQVUsQ0FBQyxlQUFlLEVBQUUsT0FBTyxDQUFDLEtBQUssR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLENBQUM7S0FDekQsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFuaW1hdGlvblRyaWdnZXJNZXRhZGF0YSxcbiAgYW5pbWF0ZSxcbiAgc3RhdGUsXG4gIHN0eWxlLFxuICB0cmFuc2l0aW9uLFxuICB0cmlnZ2VyXG59IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xuXG5leHBvcnQgZnVuY3Rpb24gdG9vbFNsaWRlSW5PdXQoXG4gIHNwZWVkID0gJzMwMG1zJyxcbiAgdHlwZSA9ICdlYXNlLWluLW91dCdcbik6IEFuaW1hdGlvblRyaWdnZXJNZXRhZGF0YSB7XG4gIHJldHVybiB0cmlnZ2VyKCd0b29sU2xpZGVJbk91dCcsIFtcbiAgICBzdGF0ZShcbiAgICAgICdlbnRlcicsXG4gICAgICBzdHlsZSh7XG4gICAgICAgIHRyYW5zZm9ybTogJ3RyYW5zbGF0ZTNkKDAsIDAsIDApJ1xuICAgICAgfSlcbiAgICApLFxuICAgIHRyYW5zaXRpb24oJ3ZvaWQgPT4gZW50ZXInLCBhbmltYXRlKHNwZWVkICsgJyAnICsgdHlwZSkpXG4gIF0pO1xufVxuIl19
|
|
@@ -0,0 +1,241 @@
|
|
|
1
|
+
import { AsyncPipe, NgClass, NgIf } from '@angular/common';
|
|
2
|
+
import { ChangeDetectionStrategy, Component, HostBinding, Input } from '@angular/core';
|
|
3
|
+
import { ActionStore, ActionbarComponent } from '@igo2/common/action';
|
|
4
|
+
import { DynamicOutletComponent } from '@igo2/common/dynamic-component';
|
|
5
|
+
import { BehaviorSubject } from 'rxjs';
|
|
6
|
+
import { map } from 'rxjs/operators';
|
|
7
|
+
import { Toolbox } from '../shared/toolbox';
|
|
8
|
+
import { toolSlideInOut } from './toolbox.animation';
|
|
9
|
+
import * as i0 from "@angular/core";
|
|
10
|
+
export class ToolboxComponent {
|
|
11
|
+
/**
|
|
12
|
+
* Observable of the active tool
|
|
13
|
+
*/
|
|
14
|
+
activeTool$ = new BehaviorSubject(undefined);
|
|
15
|
+
get isActive() {
|
|
16
|
+
return !!this.activeTool$.value;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Store of actions that toggle tools
|
|
20
|
+
*/
|
|
21
|
+
actionStore = new ActionStore([]);
|
|
22
|
+
/**
|
|
23
|
+
* Observable of he anmation state
|
|
24
|
+
*/
|
|
25
|
+
animation$ = new BehaviorSubject('none');
|
|
26
|
+
/**
|
|
27
|
+
* Observable of the toolbar
|
|
28
|
+
*/
|
|
29
|
+
toolbar$ = new BehaviorSubject([]);
|
|
30
|
+
/**
|
|
31
|
+
* Whether the Toolbar should display actions' titles
|
|
32
|
+
*/
|
|
33
|
+
toolbarWithTitle$ = this.activeTool$.pipe(map((tool) => tool === undefined));
|
|
34
|
+
/**
|
|
35
|
+
* Subscription to the active tool
|
|
36
|
+
*/
|
|
37
|
+
activeTool$$;
|
|
38
|
+
/**
|
|
39
|
+
* Subscription to the toolbar
|
|
40
|
+
*/
|
|
41
|
+
toolbar$$;
|
|
42
|
+
/**
|
|
43
|
+
* Observable of the ongoing animation. This is useful when
|
|
44
|
+
* multiple animations are triggered at once i.e. when the user clicks
|
|
45
|
+
* too fast on different actions
|
|
46
|
+
*/
|
|
47
|
+
animating$ = new BehaviorSubject(false);
|
|
48
|
+
/**
|
|
49
|
+
* Subscription to the ongoing animation
|
|
50
|
+
*/
|
|
51
|
+
animating$$;
|
|
52
|
+
/**
|
|
53
|
+
* Toolbox
|
|
54
|
+
*/
|
|
55
|
+
toolbox;
|
|
56
|
+
/**
|
|
57
|
+
* Whether the toolbox should animate the first tool entering
|
|
58
|
+
*/
|
|
59
|
+
animate = false;
|
|
60
|
+
/**
|
|
61
|
+
* Color of Toolbox
|
|
62
|
+
*/
|
|
63
|
+
color = 'white';
|
|
64
|
+
/**
|
|
65
|
+
* @ignore
|
|
66
|
+
*/
|
|
67
|
+
get classColorGrey() {
|
|
68
|
+
return this.color === 'grey';
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* @ignore
|
|
72
|
+
*/
|
|
73
|
+
get classColorPrimary() {
|
|
74
|
+
return this.color === 'primary';
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Initialize the toolbar and subscribe to the active tool
|
|
78
|
+
* @internal
|
|
79
|
+
*/
|
|
80
|
+
ngOnInit() {
|
|
81
|
+
this.toolbar$$ = this.toolbox.toolbar$.subscribe((toolbar) => this.onToolbarChange(toolbar));
|
|
82
|
+
this.activeTool$$ = this.toolbox.activeTool$.subscribe((tool) => this.onActiveToolChange(tool));
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Unsubscribe to the active tool and destroy the action store
|
|
86
|
+
* @internal
|
|
87
|
+
*/
|
|
88
|
+
ngOnDestroy() {
|
|
89
|
+
this.toolbar$$.unsubscribe();
|
|
90
|
+
this.activeTool$$.unsubscribe();
|
|
91
|
+
this.actionStore.destroy();
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Track the starting animation
|
|
95
|
+
* @internal
|
|
96
|
+
*/
|
|
97
|
+
onAnimationStart() {
|
|
98
|
+
this.animating$.next(true);
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Untrack the completed animation
|
|
102
|
+
* @internal
|
|
103
|
+
*/
|
|
104
|
+
onAnimationComplete() {
|
|
105
|
+
this.animating$.next(false);
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Return a tool's inputs
|
|
109
|
+
* @param tool Tool
|
|
110
|
+
* @returns Tool inputs
|
|
111
|
+
* @internal
|
|
112
|
+
*/
|
|
113
|
+
getToolInputs(tool) {
|
|
114
|
+
return tool.options || {};
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Initialize an action store
|
|
118
|
+
* @param toolbar Toolbar
|
|
119
|
+
*/
|
|
120
|
+
onToolbarChange(toolbar) {
|
|
121
|
+
this.setToolbar(toolbar);
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Activate a tool and trigger an animation or not
|
|
125
|
+
* @param tool Tool to activate
|
|
126
|
+
*/
|
|
127
|
+
onActiveToolChange(tool) {
|
|
128
|
+
if (!this.animate) {
|
|
129
|
+
this.setActiveTool(tool);
|
|
130
|
+
return;
|
|
131
|
+
}
|
|
132
|
+
this.onAnimate(() => this.setActiveTool(tool));
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Set the active tool
|
|
136
|
+
* @param tool Tool to activate
|
|
137
|
+
*/
|
|
138
|
+
setActiveTool(tool) {
|
|
139
|
+
if (tool === undefined) {
|
|
140
|
+
this.actionStore.state.updateAll({ active: false });
|
|
141
|
+
}
|
|
142
|
+
else {
|
|
143
|
+
const action = this.actionStore.get(tool.name);
|
|
144
|
+
if (action !== undefined) {
|
|
145
|
+
this.actionStore.state.update(action, { active: true }, true);
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
this.activeTool$.next(tool);
|
|
149
|
+
if (this.animate) {
|
|
150
|
+
this.animation$.next('enter');
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* Initialize the toolbar
|
|
155
|
+
*/
|
|
156
|
+
setToolbar(toolbar) {
|
|
157
|
+
const actions = toolbar.reduce((acc, toolName) => {
|
|
158
|
+
const tool = this.toolbox.getTool(toolName);
|
|
159
|
+
if (tool === undefined) {
|
|
160
|
+
return acc;
|
|
161
|
+
}
|
|
162
|
+
acc.push({
|
|
163
|
+
id: tool.name,
|
|
164
|
+
title: tool.title,
|
|
165
|
+
icon: tool.icon,
|
|
166
|
+
tooltip: tool.tooltip,
|
|
167
|
+
args: [tool, this.toolbox],
|
|
168
|
+
handler: (_tool, _toolbox) => {
|
|
169
|
+
_toolbox.activateTool(_tool.name);
|
|
170
|
+
},
|
|
171
|
+
ngClass: (_tool) => {
|
|
172
|
+
return this.toolbox.activeTool$.pipe(map((activeTool) => {
|
|
173
|
+
let toolActivated = false;
|
|
174
|
+
if (activeTool !== undefined && _tool.name === activeTool.name) {
|
|
175
|
+
toolActivated = true;
|
|
176
|
+
}
|
|
177
|
+
let childrenToolActivated = false;
|
|
178
|
+
if (activeTool !== undefined &&
|
|
179
|
+
_tool.name === activeTool.parent) {
|
|
180
|
+
childrenToolActivated = true;
|
|
181
|
+
}
|
|
182
|
+
return {
|
|
183
|
+
'tool-activated': toolActivated,
|
|
184
|
+
'children-tool-activated': childrenToolActivated
|
|
185
|
+
};
|
|
186
|
+
}));
|
|
187
|
+
}
|
|
188
|
+
});
|
|
189
|
+
return acc;
|
|
190
|
+
}, []);
|
|
191
|
+
this.actionStore.load(actions);
|
|
192
|
+
this.toolbar$.next(toolbar);
|
|
193
|
+
}
|
|
194
|
+
/**
|
|
195
|
+
* Observe the ongoing animation and ignore any incoming animation
|
|
196
|
+
* while one is still ongoing.
|
|
197
|
+
* @param callback Callback to execute when the animation completes
|
|
198
|
+
*/
|
|
199
|
+
onAnimate(callback) {
|
|
200
|
+
this.unAnimate();
|
|
201
|
+
this.animating$$ = this.animating$.subscribe((animation) => {
|
|
202
|
+
if (!animation) {
|
|
203
|
+
callback.call(this);
|
|
204
|
+
this.unAnimate();
|
|
205
|
+
}
|
|
206
|
+
});
|
|
207
|
+
}
|
|
208
|
+
/**
|
|
209
|
+
* Stop observing an animation when it's complete
|
|
210
|
+
*/
|
|
211
|
+
unAnimate() {
|
|
212
|
+
if (this.animating$$) {
|
|
213
|
+
this.animating$$.unsubscribe();
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ToolboxComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
217
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ToolboxComponent, isStandalone: true, selector: "igo-toolbox", inputs: { toolbox: "toolbox", animate: "animate", color: "color" }, host: { properties: { "class.color-grey": "this.classColorGrey", "class.color-primary": "this.classColorPrimary" } }, ngImport: i0, template: "<igo-actionbar\n *ngIf=\"(toolbar$ | async).length > 0\"\n [store]=\"actionStore\"\n [withIcon]=\"true\"\n [withTitle]=\"toolbarWithTitle$ | async\"\n [withTooltip]=\"(toolbarWithTitle$ | async) === false\"\n [scrollActive]=\"toolbarWithTitle$ | async\"\n [horizontal]=\"false\"\n>\n</igo-actionbar>\n\n<div\n *ngIf=\"activeTool$ | async as tool\"\n class=\"igo-tool-container mat-body-1\"\n [ngClass]=\"{\n 'igo-tool-container-with-toolbar': !actionStore.empty,\n 'igo-tool-container-with-animation': animate\n }\"\n [@toolSlideInOut]=\"animation$ | async\"\n (@toolSlideInOut.start)=\"onAnimationStart()\"\n (@toolSlideInOut.done)=\"onAnimationComplete()\"\n>\n <igo-dynamic-outlet\n [component]=\"tool.component\"\n [inputs]=\"getToolInputs(tool)\"\n >\n </igo-dynamic-outlet>\n</div>\n", styles: [":host{display:block;position:relative;overflow:hidden;width:100%;height:100%}:host ::ng-deep .mdc-list-item--with-leading-avatar .mdc-list-item__start{margin:0}:host .igo-tool-container{position:absolute;inset:0;margin-bottom:0}:host .igo-tool-container-with-animation{transform:translate3d(100%,0,0)}:host .igo-tool-container-with-toolbar{left:50px}:host igo-actionbar{height:100%}:host igo-actionbar.with-title{width:100%;overflow:auto}:host igo-actionbar:not(.with-title){width:48px;overflow:hidden;-moz-box-shadow:2px 0px 2px 0px #dddddd;-webkit-box-shadow:2px 0px 2px 0px #dddddd;-o-box-shadow:2px 0px 2px 0px #dddddd;box-shadow:2px 0 2px #ddd}@media only screen and (orientation:portrait) and (max-width: 599px),only screen and (orientation:landscape) and (max-width: 959px){:host igo-actionbar:not(.with-title){overflow:auto}}:host igo-dynamic-outlet{overflow:auto}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ActionbarComponent, selector: "igo-actionbar", inputs: ["store", "mode", "withToggleButton", "horizontal", "color", "iconColor", "withTitle", "withTooltip", "scrollActive", "withIcon", "icon", "xPosition", "yPosition", "overlayClass"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: DynamicOutletComponent, selector: "igo-dynamic-outlet", inputs: ["component", "inputs", "subscribers"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], animations: [toolSlideInOut()], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
218
|
+
}
|
|
219
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ToolboxComponent, decorators: [{
|
|
220
|
+
type: Component,
|
|
221
|
+
args: [{ selector: 'igo-toolbox', animations: [toolSlideInOut()], changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
|
|
222
|
+
NgIf,
|
|
223
|
+
ActionbarComponent,
|
|
224
|
+
NgClass,
|
|
225
|
+
DynamicOutletComponent,
|
|
226
|
+
AsyncPipe
|
|
227
|
+
], template: "<igo-actionbar\n *ngIf=\"(toolbar$ | async).length > 0\"\n [store]=\"actionStore\"\n [withIcon]=\"true\"\n [withTitle]=\"toolbarWithTitle$ | async\"\n [withTooltip]=\"(toolbarWithTitle$ | async) === false\"\n [scrollActive]=\"toolbarWithTitle$ | async\"\n [horizontal]=\"false\"\n>\n</igo-actionbar>\n\n<div\n *ngIf=\"activeTool$ | async as tool\"\n class=\"igo-tool-container mat-body-1\"\n [ngClass]=\"{\n 'igo-tool-container-with-toolbar': !actionStore.empty,\n 'igo-tool-container-with-animation': animate\n }\"\n [@toolSlideInOut]=\"animation$ | async\"\n (@toolSlideInOut.start)=\"onAnimationStart()\"\n (@toolSlideInOut.done)=\"onAnimationComplete()\"\n>\n <igo-dynamic-outlet\n [component]=\"tool.component\"\n [inputs]=\"getToolInputs(tool)\"\n >\n </igo-dynamic-outlet>\n</div>\n", styles: [":host{display:block;position:relative;overflow:hidden;width:100%;height:100%}:host ::ng-deep .mdc-list-item--with-leading-avatar .mdc-list-item__start{margin:0}:host .igo-tool-container{position:absolute;inset:0;margin-bottom:0}:host .igo-tool-container-with-animation{transform:translate3d(100%,0,0)}:host .igo-tool-container-with-toolbar{left:50px}:host igo-actionbar{height:100%}:host igo-actionbar.with-title{width:100%;overflow:auto}:host igo-actionbar:not(.with-title){width:48px;overflow:hidden;-moz-box-shadow:2px 0px 2px 0px #dddddd;-webkit-box-shadow:2px 0px 2px 0px #dddddd;-o-box-shadow:2px 0px 2px 0px #dddddd;box-shadow:2px 0 2px #ddd}@media only screen and (orientation:portrait) and (max-width: 599px),only screen and (orientation:landscape) and (max-width: 959px){:host igo-actionbar:not(.with-title){overflow:auto}}:host igo-dynamic-outlet{overflow:auto}\n"] }]
|
|
228
|
+
}], propDecorators: { toolbox: [{
|
|
229
|
+
type: Input
|
|
230
|
+
}], animate: [{
|
|
231
|
+
type: Input
|
|
232
|
+
}], color: [{
|
|
233
|
+
type: Input
|
|
234
|
+
}], classColorGrey: [{
|
|
235
|
+
type: HostBinding,
|
|
236
|
+
args: ['class.color-grey']
|
|
237
|
+
}], classColorPrimary: [{
|
|
238
|
+
type: HostBinding,
|
|
239
|
+
args: ['class.color-primary']
|
|
240
|
+
}] } });
|
|
241
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbGJveC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vdG9vbC9zcmMvdG9vbGJveC90b29sYm94LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbW1vbi90b29sL3NyYy90b29sYm94L3Rvb2xib3guY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0QsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsV0FBVyxFQUNYLEtBQUssRUFHTixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQVUsV0FBVyxFQUFFLGtCQUFrQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDOUUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFFeEUsT0FBTyxFQUFFLGVBQWUsRUFBNEIsTUFBTSxNQUFNLENBQUM7QUFDakUsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBR3JDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUU1QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUM7O0FBaUJyRCxNQUFNLE9BQU8sZ0JBQWdCO0lBQzNCOztPQUVHO0lBQ0gsV0FBVyxHQUFHLElBQUksZUFBZSxDQUFPLFNBQVMsQ0FBQyxDQUFDO0lBRW5ELElBQUksUUFBUTtRQUNWLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDO0lBQ2xDLENBQUM7SUFFRDs7T0FFRztJQUNILFdBQVcsR0FBZ0IsSUFBSSxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUM7SUFFL0M7O09BRUc7SUFDSCxVQUFVLEdBQUcsSUFBSSxlQUFlLENB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SSxDQUFDLFNBQVMsRUFBRSxDQUFDO2dCQUNmLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ3BCLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNuQixDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7O09BRUc7SUFDSyxTQUFTO1FBQ2YsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDckIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNqQyxDQUFDO0lBQ0gsQ0FBQzt3R0FyUFUsZ0JBQWdCOzRGQUFoQixnQkFBZ0IsaVFDcEM3QixvekJBNEJBLG82QkRDSSxJQUFJLDZGQUNKLGtCQUFrQix1UEFDbEIsT0FBTyxvRkFDUCxzQkFBc0IsMEdBQ3RCLFNBQVMsZ0NBUkMsQ0FBQyxjQUFjLEVBQUUsQ0FBQzs7NEZBV25CLGdCQUFnQjtrQkFmNUIsU0FBUzsrQkFDRSxhQUFhLGNBR1gsQ0FBQyxjQUFjLEVBQUUsQ0FBQyxtQkFDYix1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLElBQUksV0FDUDt3QkFDUCxJQUFJO3dCQUNKLGtCQUFrQjt3QkFDbEIsT0FBTzt3QkFDUCxzQkFBc0I7d0JBQ3RCLFNBQVM7cUJBQ1Y7OEJBMkRRLE9BQU87c0JBQWYsS0FBSztnQkFLRyxPQUFPO3NCQUFmLEtBQUs7Z0JBS0csS0FBSztzQkFBYixLQUFLO2dCQU1GLGNBQWM7c0JBRGpCLFdBQVc7dUJBQUMsa0JBQWtCO2dCQVMzQixpQkFBaUI7c0JBRHBCLFdBQVc7dUJBQUMscUJBQXFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXN5bmNQaXBlLCBOZ0NsYXNzLCBOZ0lmIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEhvc3RCaW5kaW5nLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPbkluaXRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEFjdGlvbiwgQWN0aW9uU3RvcmUsIEFjdGlvbmJhckNvbXBvbmVudCB9IGZyb20gJ0BpZ28yL2NvbW1vbi9hY3Rpb24nO1xuaW1wb3J0IHsgRHluYW1pY091dGxldENvbXBvbmVudCB9IGZyb20gJ0BpZ28yL2NvbW1vbi9keW5hbWljLWNvbXBvbmVudCc7XG5cbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IFRvb2wgfSBmcm9tICcuLi9zaGFyZWQvdG9vbC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgVG9vbGJveCB9IGZyb20gJy4uL3NoYXJlZC90b29sYm94JztcbmltcG9ydCB7IFRvb2xib3hDb2xvciB9IGZyb20gJy4uL3NoYXJlZC90b29sYm94LmVudW1zJztcbmltcG9ydCB7IHRvb2xTbGlkZUluT3V0IH0gZnJvbSAnLi90b29sYm94LmFuaW1hdGlvbic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2lnby10b29sYm94JyxcbiAgdGVtcGxhdGVVcmw6ICd0b29sYm94LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJ3Rvb2xib3guY29tcG9uZW50LnNjc3MnXSxcbiAgYW5pbWF0aW9uczogW3Rvb2xTbGlkZUluT3V0KCldLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIE5nSWYsXG4gICAgQWN0aW9uYmFyQ29tcG9uZW50LFxuICAgIE5nQ2xhc3MsXG4gICAgRHluYW1pY091dGxldENvbXBvbmVudCxcbiAgICBBc3luY1BpcGVcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBUb29sYm94Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAvKipcbiAgICogT2JzZXJ2YWJsZSBvZiB0aGUgYWN0aXZlIHRvb2xcbiAgICovXG4gIGFjdGl2ZVRvb2wkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxUb29sPih1bmRlZmluZWQpO1xuXG4gIGdldCBpc0FjdGl2ZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLmFjdGl2ZVRvb2wkLnZhbHVlO1xuICB9XG5cbiAgLyoqXG4gICAqIFN0b3JlIG9mIGFjdGlvbnMgdGhhdCB0b2dnbGUgdG9vbHNcbiAgICovXG4gIGFjdGlvblN0b3JlOiBBY3Rpb25TdG9yZSA9IG5ldyBBY3Rpb25TdG9yZShbXSk7XG5cbiAgLyoqXG4gICAqIE9ic2VydmFibGUgb2YgaGUgYW5tYXRpb24gc3RhdGVcbiAgICovXG4gIGFuaW1hdGlvbiQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4oJ25vbmUnKTtcblxuICAvKipcbiAgICogT2JzZXJ2YWJsZSBvZiB0aGUgdG9vbGJhclxuICAgKi9cbiAgdG9vbGJhciQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZ1tdPihbXSk7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIFRvb2xiYXIgc2hvdWxkIGRpc3BsYXkgYWN0aW9ucycgdGl0bGVzXG4gICAqL1xuICB0b29sYmFyV2l0aFRpdGxlJDogT2JzZXJ2YWJsZTxib29sZWFuPiA9IHRoaXMuYWN0aXZlVG9vbCQucGlwZShcbiAgICBtYXAoKHRvb2w6IFRvb2wgfCB1bmRlZmluZWQpID0+IHRvb2wgPT09IHVuZGVmaW5lZClcbiAgKTtcblxuICAvKipcbiAgICogU3Vic2NyaXB0aW9uIHRvIHRoZSBhY3RpdmUgdG9vbFxuICAgKi9cbiAgcHJpdmF0ZSBhY3RpdmVUb29sJCQ6IFN1YnNjcmlwdGlvbjtcblxuICAvKipcbiAgICogU3Vic2NyaXB0aW9uIHRvIHRoZSB0b29sYmFyXG4gICAqL1xuICBwcml2YXRlIHRvb2xiYXIkJDogU3Vic2NyaXB0aW9uO1xuXG4gIC8qKlxuICAgKiBPYnNlcnZhYmxlIG9mIHRoZSBvbmdvaW5nIGFuaW1hdGlvbi4gVGhpcyBpcyB1c2VmdWwgd2hlblxuICAgKiBtdWx0aXBsZSBhbmltYXRpb25zIGFyZSB0cmlnZ2VyZWQgYXQgb25jZSBpLmUuIHdoZW4gdGhlIHVzZXIgY2xpY2tzXG4gICAqIHRvbyBmYXN0IG9uIGRpZmZlcmVudCBhY3Rpb25zXG4gICAqL1xuICBwcml2YXRlIGFuaW1hdGluZyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcblxuICAvKipcbiAgICogU3Vic2NyaXB0aW9uIHRvIHRoZSBvbmdvaW5nIGFuaW1hdGlvblxuICAgKi9cbiAgcHJpdmF0ZSBhbmltYXRpbmckJDogU3Vic2NyaXB0aW9uO1xuXG4gIC8qKlxuICAgKiBUb29sYm94XG4gICAqL1xuICBASW5wdXQoKSB0b29sYm94OiBUb29sYm94O1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSB0b29sYm94IHNob3VsZCBhbmltYXRlIHRoZSBmaXJzdCB0b29sIGVudGVyaW5nXG4gICAqL1xuICBASW5wdXQoKSBhbmltYXRlID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIENvbG9yIG9mIFRvb2xib3hcbiAgICovXG4gIEBJbnB1dCgpIGNvbG9yOiBUb29sYm94Q29sb3IgPSAnd2hpdGUnO1xuXG4gIC8qKlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmNvbG9yLWdyZXknKVxuICBnZXQgY2xhc3NDb2xvckdyZXkoKSB7XG4gICAgcmV0dXJuIHRoaXMuY29sb3IgPT09ICdncmV5JztcbiAgfVxuXG4gIC8qKlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmNvbG9yLXByaW1hcnknKVxuICBnZXQgY2xhc3NDb2xvclByaW1hcnkoKSB7XG4gICAgcmV0dXJuIHRoaXMuY29sb3IgPT09ICdwcmltYXJ5JztcbiAgfVxuXG4gIC8qKlxuICAgKiBJbml0aWFsaXplIHRoZSB0b29sYmFyIGFuZCBzdWJzY3JpYmUgdG8gdGhlIGFjdGl2ZSB0b29sXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy50b29sYmFyJCQgPSB0aGlzLnRvb2xib3gudG9vbGJhciQuc3Vic2NyaWJlKCh0b29sYmFyOiBzdHJpbmdbXSkgPT5cbiAgICAgIHRoaXMub25Ub29sYmFyQ2hhbmdlKHRvb2xiYXIpXG4gICAgKTtcbiAgICB0aGlzLmFjdGl2ZVRvb2wkJCA9IHRoaXMudG9vbGJveC5hY3RpdmVUb29sJC5zdWJzY3JpYmUoKHRvb2w6IFRvb2wpID0+XG4gICAgICB0aGlzLm9uQWN0aXZlVG9vbENoYW5nZSh0b29sKVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogVW5zdWJzY3JpYmUgdG8gdGhlIGFjdGl2ZSB0b29sIGFuZCBkZXN0cm95IHRoZSBhY3Rpb24gc3RvcmVcbiAgICogQGludGVybmFsXG4gICAqL1xuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLnRvb2xiYXIkJC51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMuYWN0aXZlVG9vbCQkLnVuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy5hY3Rpb25TdG9yZS5kZXN0cm95KCk7XG4gIH1cblxuICAvKipcbiAgICogVHJhY2sgdGhlIHN0YXJ0aW5nIGFuaW1hdGlvblxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIG9uQW5pbWF0aW9uU3RhcnQoKSB7XG4gICAgdGhpcy5hbmltYXRpbmckLm5leHQodHJ1ZSk7XG4gIH1cblxuICAvKipcbiAgICogVW50cmFjayB0aGUgY29tcGxldGVkIGFuaW1hdGlvblxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIG9uQW5pbWF0aW9uQ29tcGxldGUoKSB7XG4gICAgdGhpcy5hbmltYXRpbmckLm5leHQoZmFsc2UpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiBhIHRvb2wncyBpbnB1dHNcbiAgICogQHBhcmFtIHRvb2wgVG9vbFxuICAgKiBAcmV0dXJucyBUb29sIGlucHV0c1xuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIGdldFRvb2xJbnB1dHModG9vbDogVG9vbCk6IFJlY29yZDxzdHJpbmcsIGFueT4ge1xuICAgIHJldHVybiB0b29sLm9wdGlvbnMgfHwge307XG4gIH1cblxuICAvKipcbiAgICogSW5pdGlhbGl6ZSBhbiBhY3Rpb24gc3RvcmVcbiAgICogQHBhcmFtIHRvb2xiYXIgVG9vbGJhclxuICAgKi9cbiAgcHJpdmF0ZSBvblRvb2xiYXJDaGFuZ2UodG9vbGJhcjogc3RyaW5nW10pIHtcbiAgICB0aGlzLnNldFRvb2xiYXIodG9vbGJhcik7XG4gIH1cblxuICAvKipcbiAgICogQWN0aXZhdGUgYSB0b29sIGFuZCB0cmlnZ2VyIGFuIGFuaW1hdGlvbiBvciBub3RcbiAgICogQHBhcmFtIHRvb2wgVG9vbCB0byBhY3RpdmF0ZVxuICAgKi9cbiAgcHJpdmF0ZSBvbkFjdGl2ZVRvb2xDaGFuZ2UodG9vbDogVG9vbCkge1xuICAgIGlmICghdGhpcy5hbmltYXRlKSB7XG4gICAgICB0aGlzLnNldEFjdGl2ZVRvb2wodG9vbCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMub25BbmltYXRlKCgpID0+IHRoaXMuc2V0QWN0aXZlVG9vbCh0b29sKSk7XG4gIH1cblxuICAvKipcbiAgICogU2V0IHRoZSBhY3RpdmUgdG9vbFxuICAgKiBAcGFyYW0gdG9vbCBUb29sIHRvIGFjdGl2YXRlXG4gICAqL1xuICBwcml2YXRlIHNldEFjdGl2ZVRvb2wodG9vbDogVG9vbCB8IHVuZGVmaW5lZCkge1xuICAgIGlmICh0b29sID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuYWN0aW9uU3RvcmUuc3RhdGUudXBkYXRlQWxsKHsgYWN0aXZlOiBmYWxzZSB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgYWN0aW9uID0gdGhpcy5hY3Rpb25TdG9yZS5nZXQodG9vbC5uYW1lKTtcbiAgICAgIGlmIChhY3Rpb24gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICB0aGlzLmFjdGlvblN0b3JlLnN0YXRlLnVwZGF0ZShhY3Rpb24sIHsgYWN0aXZlOiB0cnVlIH0sIHRydWUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuYWN0aXZlVG9vbCQubmV4dCh0b29sKTtcbiAgICBpZiAodGhpcy5hbmltYXRlKSB7XG4gICAgICB0aGlzLmFuaW1hdGlvbiQubmV4dCgnZW50ZXInKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogSW5pdGlhbGl6ZSB0aGUgdG9vbGJhclxuICAgKi9cbiAgcHJpdmF0ZSBzZXRUb29sYmFyKHRvb2xiYXI6IHN0cmluZ1tdKSB7XG4gICAgY29uc3QgYWN0aW9ucyA9IHRvb2xiYXIucmVkdWNlKChhY2M6IEFjdGlvbltdLCB0b29sTmFtZTogc3RyaW5nKSA9PiB7XG4gICAgICBjb25zdCB0b29sID0gdGhpcy50b29sYm94LmdldFRvb2wodG9vbE5hbWUpO1xuICAgICAgaWYgKHRvb2wgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgfVxuXG4gICAgICBhY2MucHVzaCh7XG4gICAgICAgIGlkOiB0b29sLm5hbWUsXG4gICAgICAgIHRpdGxlOiB0b29sLnRpdGxlLFxuICAgICAgICBpY29uOiB0b29sLmljb24sXG4gICAgICAgIHRvb2x0aXA6IHRvb2wudG9vbHRpcCxcbiAgICAgICAgYXJnczogW3Rvb2wsIHRoaXMudG9vbGJveF0sXG4gICAgICAgIGhhbmRsZXI6IChfdG9vbDogVG9vbCwgX3Rvb2xib3g6IFRvb2xib3gpID0+IHtcbiAgICAgICAgICBfdG9vbGJveC5hY3RpdmF0ZVRvb2woX3Rvb2wubmFtZSk7XG4gICAgICAgIH0sXG4gICAgICAgIG5nQ2xhc3M6IChfdG9vbDogVG9vbCkgPT4ge1xuICAgICAgICAgIHJldHVybiB0aGlzLnRvb2xib3guYWN0aXZlVG9vbCQucGlwZShcbiAgICAgICAgICAgIG1hcCgoYWN0aXZlVG9vbDogVG9vbCkgPT4ge1xuICAgICAgICAgICAgICBsZXQgdG9vbEFjdGl2YXRlZCA9IGZhbHNlO1xuICAgICAgICAgICAgICBpZiAoYWN0aXZlVG9vbCAhPT0gdW5kZWZpbmVkICYmIF90b29sLm5hbWUgPT09IGFjdGl2ZVRvb2wubmFtZSkge1xuICAgICAgICAgICAgICAgIHRvb2xBY3RpdmF0ZWQgPSB0cnVlO1xuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgbGV0IGNoaWxkcmVuVG9vbEFjdGl2YXRlZCA9IGZhbHNlO1xuICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgYWN0aXZlVG9vbCAhPT0gdW5kZWZpbmVkICYmXG4gICAgICAgICAgICAgICAgX3Rvb2wubmFtZSA9PT0gYWN0aXZlVG9vbC5wYXJlbnRcbiAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgY2hpbGRyZW5Ub29sQWN0aXZhdGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgJ3Rvb2wtYWN0aXZhdGVkJzogdG9vbEFjdGl2YXRlZCxcbiAgICAgICAgICAgICAgICAnY2hpbGRyZW4tdG9vbC1hY3RpdmF0ZWQnOiBjaGlsZHJlblRvb2xBY3RpdmF0ZWRcbiAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICByZXR1cm4gYWNjO1xuICAgIH0sIFtdKTtcbiAgICB0aGlzLmFjdGlvblN0b3JlLmxvYWQoYWN0aW9ucyk7XG4gICAgdGhpcy50b29sYmFyJC5uZXh0KHRvb2xiYXIpO1xuICB9XG5cbiAgLyoqXG4gICAqIE9ic2VydmUgdGhlIG9uZ29pbmcgYW5pbWF0aW9uIGFuZCBpZ25vcmUgYW55IGluY29taW5nIGFuaW1hdGlvblxuICAgKiB3aGlsZSBvbmUgaXMgc3RpbGwgb25nb2luZy5cbiAgICogQHBhcmFtIGNhbGxiYWNrIENhbGxiYWNrIHRvIGV4ZWN1dGUgd2hlbiB0aGUgYW5pbWF0aW9uIGNvbXBsZXRlc1xuICAgKi9cbiAgcHJpdmF0ZSBvbkFuaW1hdGUoY2FsbGJhY2s6ICgpID0+IHZvaWQpIHtcbiAgICB0aGlzLnVuQW5pbWF0ZSgpO1xuICAgIHRoaXMuYW5pbWF0aW5nJCQgPSB0aGlzLmFuaW1hdGluZyQuc3Vic2NyaWJlKChhbmltYXRpb246IGJvb2xlYW4pID0+IHtcbiAgICAgIGlmICghYW5pbWF0aW9uKSB7XG4gICAgICAgIGNhbGxiYWNrLmNhbGwodGhpcyk7XG4gICAgICAgIHRoaXMudW5BbmltYXRlKCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogU3RvcCBvYnNlcnZpbmcgYW4gYW5pbWF0aW9uIHdoZW4gaXQncyBjb21wbGV0ZVxuICAgKi9cbiAgcHJpdmF0ZSB1bkFuaW1hdGUoKSB7XG4gICAgaWYgKHRoaXMuYW5pbWF0aW5nJCQpIHtcbiAgICAgIHRoaXMuYW5pbWF0aW5nJCQudW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gIH1cbn1cbiIsIjxpZ28tYWN0aW9uYmFyXG4gICpuZ0lmPVwiKHRvb2xiYXIkIHwgYXN5bmMpLmxlbmd0aCA+IDBcIlxuICBbc3RvcmVdPVwiYWN0aW9uU3RvcmVcIlxuICBbd2l0aEljb25dPVwidHJ1ZVwiXG4gIFt3aXRoVGl0bGVdPVwidG9vbGJhcldpdGhUaXRsZSQgfCBhc3luY1wiXG4gIFt3aXRoVG9vbHRpcF09XCIodG9vbGJhcldpdGhUaXRsZSQgfCBhc3luYykgPT09IGZhbHNlXCJcbiAgW3Njcm9sbEFjdGl2ZV09XCJ0b29sYmFyV2l0aFRpdGxlJCB8IGFzeW5jXCJcbiAgW2hvcml6b250YWxdPVwiZmFsc2VcIlxuPlxuPC9pZ28tYWN0aW9uYmFyPlxuXG48ZGl2XG4gICpuZ0lmPVwiYWN0aXZlVG9vbCQgfCBhc3luYyBhcyB0b29sXCJcbiAgY2xhc3M9XCJpZ28tdG9vbC1jb250YWluZXIgbWF0LWJvZHktMVwiXG4gIFtuZ0NsYXNzXT1cIntcbiAgICAnaWdvLXRvb2wtY29udGFpbmVyLXdpdGgtdG9vbGJhcic6ICFhY3Rpb25TdG9yZS5lbXB0eSxcbiAgICAnaWdvLXRvb2wtY29udGFpbmVyLXdpdGgtYW5pbWF0aW9uJzogYW5pbWF0ZVxuICB9XCJcbiAgW0B0b29sU2xpZGVJbk91dF09XCJhbmltYXRpb24kIHwgYXN5bmNcIlxuICAoQHRvb2xTbGlkZUluT3V0LnN0YXJ0KT1cIm9uQW5pbWF0aW9uU3RhcnQoKVwiXG4gIChAdG9vbFNsaWRlSW5PdXQuZG9uZSk9XCJvbkFuaW1hdGlvbkNvbXBsZXRlKClcIlxuPlxuICA8aWdvLWR5bmFtaWMtb3V0bGV0XG4gICAgW2NvbXBvbmVudF09XCJ0b29sLmNvbXBvbmVudFwiXG4gICAgW2lucHV0c109XCJnZXRUb29sSW5wdXRzKHRvb2wpXCJcbiAgPlxuICA8L2lnby1keW5hbWljLW91dGxldD5cbjwvZGl2PlxuIl19
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { ToolboxComponent } from './toolbox.component';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
/**
|
|
5
|
+
* @deprecated import the ToolboxComponent directly
|
|
6
|
+
*/
|
|
7
|
+
export class IgoToolboxModule {
|
|
8
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IgoToolboxModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
9
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: IgoToolboxModule, imports: [ToolboxComponent], exports: [ToolboxComponent] });
|
|
10
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IgoToolboxModule, imports: [ToolboxComponent] });
|
|
11
|
+
}
|
|
12
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IgoToolboxModule, decorators: [{
|
|
13
|
+
type: NgModule,
|
|
14
|
+
args: [{
|
|
15
|
+
imports: [ToolboxComponent],
|
|
16
|
+
exports: [ToolboxComponent]
|
|
17
|
+
}]
|
|
18
|
+
}] });
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbGJveC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vdG9vbC9zcmMvdG9vbGJveC90b29sYm94Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXpDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDOztBQUV2RDs7R0FFRztBQUtILE1BQU0sT0FBTyxnQkFBZ0I7d0dBQWhCLGdCQUFnQjt5R0FBaEIsZ0JBQWdCLFlBSGpCLGdCQUFnQixhQUNoQixnQkFBZ0I7eUdBRWYsZ0JBQWdCLFlBSGpCLGdCQUFnQjs7NEZBR2YsZ0JBQWdCO2tCQUo1QixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLGdCQUFnQixDQUFDO29CQUMzQixPQUFPLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQztpQkFDNUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBUb29sYm94Q29tcG9uZW50IH0gZnJvbSAnLi90b29sYm94LmNvbXBvbmVudCc7XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgaW1wb3J0IHRoZSBUb29sYm94Q29tcG9uZW50IGRpcmVjdGx5XG4gKi9cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtUb29sYm94Q29tcG9uZW50XSxcbiAgZXhwb3J0czogW1Rvb2xib3hDb21wb25lbnRdXG59KVxuZXhwb3J0IGNsYXNzIElnb1Rvb2xib3hNb2R1bGUge31cbiJdfQ==
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './public_api';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWdvMi1jb21tb24td2lkZ2V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tbW9uL3dpZGdldC9zcmMvaWdvMi1jb21tb24td2lkZ2V0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vcHVibGljX2FwaSc7XG4iXX0=
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export * from './shared';
|
|
2
|
+
export * from './widget-outlet';
|
|
3
|
+
export * from './widget.module';
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbW1vbi93aWRnZXQvc3JjL3B1YmxpY19hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxVQUFVLENBQUM7QUFDekIsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLGlCQUFpQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9zaGFyZWQnO1xuZXhwb3J0ICogZnJvbSAnLi93aWRnZXQtb3V0bGV0JztcbmV4cG9ydCAqIGZyb20gJy4vd2lkZ2V0Lm1vZHVsZSc7XG4iXX0=
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export * from './widget';
|
|
2
|
+
export * from './widget.interfaces';
|
|
3
|
+
export * from './widget.service';
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vd2lkZ2V0L3NyYy9zaGFyZWQvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxVQUFVLENBQUM7QUFDekIsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLGtCQUFrQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi93aWRnZXQnO1xuZXhwb3J0ICogZnJvbSAnLi93aWRnZXQuaW50ZXJmYWNlcyc7XG5leHBvcnQgKiBmcm9tICcuL3dpZGdldC5zZXJ2aWNlJztcbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LmludGVyZmFjZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vd2lkZ2V0L3NyYy9zaGFyZWQvd2lkZ2V0LmludGVyZmFjZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEV2ZW50RW1pdHRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG4vKipcbiAqIFRoaXMgaXMgdGhlIGludGVyZmFjZSBhIHdpZGdldCBjb21wb25lbnQgbmVlZHMgdG8gaW1wbGVtZW50LiBBIHdpZGdldFxuICogY29tcG9uZW50IGlzIGNvbXBvbmVudCB0aGF0IGNhbiBiZSBjcmVhdGVkIGR5bmFtaWNhbGx5LiBJdCBuZWVkc1xuICogdG8gZW1pdCB0aGUgJ2NvbXBsZXRlJyBhbmQgJ2NhbmNlbCcgZXZlbnQgYXQgc29tZSB0aW1lIGluIGl0J3MgbGlmZWN5Y2xlLlxuICogU2luY2UgYSB3aWRnZXQncyBpbnB1dHMgYXJlIHNldCBtYW51YWxseSwgeW91IG1heSB3YW50IHRvIGltcGxlbWVudCB0aGUgJ29uVXBkYXRlSW5wdXRzJ1xuICogbWV0aG9kLiBUaGlzIG1ldGhvZCBjb3VsZCwgZm9yIGV4YW1wbGUsIHRyaWdnZXIgdGhlIGNoYW5nZSBkZXRlY3Rpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgV2lkZ2V0Q29tcG9uZW50IHtcbiAgY29tcGxldGU6IEV2ZW50RW1pdHRlcjxhbnk+O1xuICBjYW5jZWw6IEV2ZW50RW1pdHRlcjxhbnk+O1xufVxuIl19
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { DynamicComponent } from '@igo2/common/dynamic-component';
|
|
2
|
+
export class Widget extends DynamicComponent {
|
|
3
|
+
}
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tbW9uL3dpZGdldC9zcmMvc2hhcmVkL3dpZGdldC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUlsRSxNQUFNLE9BQU8sTUFBTyxTQUFRLGdCQUFpQztDQUFHIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRHluYW1pY0NvbXBvbmVudCB9IGZyb20gJ0BpZ28yL2NvbW1vbi9keW5hbWljLWNvbXBvbmVudCc7XG5cbmltcG9ydCB7IFdpZGdldENvbXBvbmVudCB9IGZyb20gJy4vd2lkZ2V0LmludGVyZmFjZXMnO1xuXG5leHBvcnQgY2xhc3MgV2lkZ2V0IGV4dGVuZHMgRHluYW1pY0NvbXBvbmVudDxXaWRnZXRDb21wb25lbnQ+IHt9XG4iXX0=
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { DynamicComponentService } from '@igo2/common/dynamic-component';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@igo2/common/dynamic-component";
|
|
5
|
+
export class WidgetService {
|
|
6
|
+
dynamicComponentService;
|
|
7
|
+
constructor(dynamicComponentService) {
|
|
8
|
+
this.dynamicComponentService = dynamicComponentService;
|
|
9
|
+
}
|
|
10
|
+
create(widgetCls) {
|
|
11
|
+
return this.dynamicComponentService.create(widgetCls);
|
|
12
|
+
}
|
|
13
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: WidgetService, deps: [{ token: i1.DynamicComponentService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
14
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: WidgetService, providedIn: 'root' });
|
|
15
|
+
}
|
|
16
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: WidgetService, decorators: [{
|
|
17
|
+
type: Injectable,
|
|
18
|
+
args: [{
|
|
19
|
+
providedIn: 'root'
|
|
20
|
+
}]
|
|
21
|
+
}], ctorParameters: () => [{ type: i1.DynamicComponentService }] });
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vd2lkZ2V0L3NyYy9zaGFyZWQvd2lkZ2V0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQzs7O0FBUXpFLE1BQU0sT0FBTyxhQUFhO0lBQ0o7SUFBcEIsWUFBb0IsdUJBQWdEO1FBQWhELDRCQUF1QixHQUF2Qix1QkFBdUIsQ0FBeUI7SUFBRyxDQUFDO0lBRXhFLE1BQU0sQ0FBQyxTQUFjO1FBQ25CLE9BQU8sSUFBSSxDQUFDLHVCQUF1QixDQUFDLE1BQU0sQ0FBQyxTQUE0QixDQUFDLENBQUM7SUFDM0UsQ0FBQzt3R0FMVSxhQUFhOzRHQUFiLGFBQWEsY0FGWixNQUFNOzs0RkFFUCxhQUFhO2tCQUh6QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgRHluYW1pY0NvbXBvbmVudFNlcnZpY2UgfSBmcm9tICdAaWdvMi9jb21tb24vZHluYW1pYy1jb21wb25lbnQnO1xuXG5pbXBvcnQgeyBXaWRnZXQgfSBmcm9tICcuL3dpZGdldCc7XG5pbXBvcnQgeyBXaWRnZXRDb21wb25lbnQgfSBmcm9tICcuL3dpZGdldC5pbnRlcmZhY2VzJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgV2lkZ2V0U2VydmljZSB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZHluYW1pY0NvbXBvbmVudFNlcnZpY2U6IER5bmFtaWNDb21wb25lbnRTZXJ2aWNlKSB7fVxuXG4gIGNyZWF0ZSh3aWRnZXRDbHM6IGFueSk6IFdpZGdldCB7XG4gICAgcmV0dXJuIHRoaXMuZHluYW1pY0NvbXBvbmVudFNlcnZpY2UuY3JlYXRlKHdpZGdldENscyBhcyBXaWRnZXRDb21wb25lbnQpO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export * from './widget-outlet.module';
|
|
2
|
+
export * from './widget-outlet.component';
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vd2lkZ2V0L3NyYy93aWRnZXQtb3V0bGV0L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYywyQkFBMkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vd2lkZ2V0LW91dGxldC5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi93aWRnZXQtb3V0bGV0LmNvbXBvbmVudCc7XG4iXX0=
|