@igo2/common 16.3.0 → 17.0.0-next.10
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/action/action.module.d.ts +10 -0
- package/action/actionbar/actionbar-item.component.d.ts +75 -0
- package/action/actionbar/actionbar.component.d.ts +148 -0
- package/action/actionbar/actionbar.module.d.ts +10 -0
- package/action/index.d.ts +5 -0
- package/action/public_api.d.ts +4 -0
- package/action/shared/action.interfaces.d.ts +18 -0
- package/action/shared/store.d.ts +8 -0
- package/action/src/action.theming.scss +5 -0
- package/action/src/actionbar/actionbar-item.theming.scss +32 -0
- package/action/src/actionbar/actionbar.theming.scss +22 -0
- package/backdrop/backdrop.component.d.ts +9 -0
- package/backdrop/backdrop.module.d.ts +12 -0
- package/backdrop/index.d.ts +5 -0
- package/backdrop/public_api.d.ts +2 -0
- package/badge/badge-icon.directive.d.ts +34 -0
- package/badge/badge-icon.module.d.ts +12 -0
- package/badge/index.d.ts +5 -0
- package/badge/public_api.d.ts +2 -0
- package/clickout/clickout.directive.d.ts +10 -0
- package/clickout/clickout.module.d.ts +12 -0
- package/clickout/index.d.ts +5 -0
- package/clickout/public_api.d.ts +2 -0
- package/clone/clone.module.d.ts +12 -0
- package/clone/clone.pipe.d.ts +7 -0
- package/clone/index.d.ts +5 -0
- package/clone/public_api.d.ts +2 -0
- package/collapsible/collapse.directive.d.ts +19 -0
- package/collapsible/collapsible.component.d.ts +13 -0
- package/collapsible/collapsible.module.d.ts +13 -0
- package/collapsible/index.d.ts +5 -0
- package/collapsible/public_api.d.ts +6 -0
- package/collapsible/src/collapsible.theming.scss +22 -0
- package/color/color-picker-form-field/color-picker-form-field.component.d.ts +29 -0
- package/color/color-picker-form-field/color-picker-form-field.module.d.ts +10 -0
- package/color/color-picker-form-field/index.d.ts +2 -0
- package/color/index.d.ts +5 -0
- package/color/public_api.d.ts +1 -0
- package/confirm-dialog/confirm-dialog.component.d.ts +12 -0
- package/confirm-dialog/confirm-dialog.module.d.ts +12 -0
- package/confirm-dialog/index.d.ts +5 -0
- package/confirm-dialog/public_api.d.ts +4 -0
- package/context-menu/context-menu.directive.d.ts +21 -0
- package/context-menu/context-menu.module.d.ts +13 -0
- package/context-menu/index.d.ts +5 -0
- package/context-menu/long-press.directive.d.ts +20 -0
- package/context-menu/public_api.d.ts +6 -0
- package/custom-html/custom-html.component.d.ts +9 -0
- package/custom-html/custom-html.module.d.ts +13 -0
- package/custom-html/custom-html.pipe.d.ts +10 -0
- package/custom-html/index.d.ts +5 -0
- package/custom-html/public_api.d.ts +6 -0
- package/dom/dom.module.d.ts +14 -0
- package/dom/index.d.ts +5 -0
- package/dom/public_api.d.ts +3 -0
- package/drag-drop/drag-drop.directive.d.ts +14 -0
- package/drag-drop/drag-drop.module.d.ts +12 -0
- package/drag-drop/index.d.ts +5 -0
- package/drag-drop/public_api.d.ts +2 -0
- package/dynamic-component/dynamic-component.module.d.ts +10 -0
- package/dynamic-component/dynamic-outlet/dynamic-outlet.component.d.ts +70 -0
- package/dynamic-component/dynamic-outlet/dynamic-outlet.module.d.ts +10 -0
- package/dynamic-component/index.d.ts +5 -0
- package/dynamic-component/public_api.d.ts +4 -0
- package/entity/entity-selector/entity-selector.component.d.ts +93 -0
- package/entity/entity-selector/entity-selector.module.d.ts +10 -0
- package/entity/entity-selector/index.d.ts +2 -0
- package/entity/entity-table/entity-table-row.directive.d.ts +69 -0
- package/entity/entity-table/entity-table.component.d.ts +342 -0
- package/entity/entity-table/entity-table.module.d.ts +10 -0
- package/entity/entity-table/index.d.ts +2 -0
- package/entity/entity-table-paginator/entity-table-paginator.component.d.ts +50 -0
- package/entity/entity-table-paginator/entity-table-paginator.module.d.ts +10 -0
- package/entity/entity-table-paginator/index.d.ts +3 -0
- package/entity/entity.module.d.ts +16 -0
- package/entity/index.d.ts +5 -0
- package/entity/public_api.d.ts +5 -0
- package/entity/shared/entity.interfaces.d.ts +102 -0
- package/entity/shared/transaction.d.ts +179 -0
- package/entity/src/entity-selector/entity-selector.theming.scss +21 -0
- package/entity/src/entity-table/entity-table.theming.scss +37 -0
- package/entity/src/entity.theming.scss +7 -0
- package/environment/index.d.ts +5 -0
- 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 +22 -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 +66 -0
- package/esm2022/context-menu/public_api.mjs +10 -0
- package/esm2022/custom-html/custom-html.component.mjs +22 -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 +25 -0
- package/esm2022/drag-drop/igo2-common-drag-drop.mjs +5 -0
- package/esm2022/drag-drop/public_api.mjs +3 -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 +78 -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 +135 -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 +103 -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 +82 -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 +29 -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 +26 -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 +32 -0
- package/esm2022/icon/shared/index.mjs +4 -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 +133 -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 +17 -78
- 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 +30 -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 +64 -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 +113 -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 +74 -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 +505 -0
- package/fesm2022/igo2-common-action.mjs.map +1 -0
- package/fesm2022/igo2-common-backdrop.mjs +51 -0
- package/fesm2022/igo2-common-backdrop.mjs.map +1 -0
- package/fesm2022/igo2-common-badge.mjs +178 -0
- package/fesm2022/igo2-common-badge.mjs.map +1 -0
- package/fesm2022/igo2-common-clickout.mjs +61 -0
- package/fesm2022/igo2-common-clickout.mjs.map +1 -0
- package/fesm2022/igo2-common-clone.mjs +54 -0
- package/fesm2022/igo2-common-clone.mjs.map +1 -0
- package/fesm2022/igo2-common-collapsible.mjs +126 -0
- package/fesm2022/igo2-common-collapsible.mjs.map +1 -0
- package/fesm2022/igo2-common-color.mjs +127 -0
- package/fesm2022/igo2-common-color.mjs.map +1 -0
- package/fesm2022/igo2-common-confirm-dialog.mjs +91 -0
- package/fesm2022/igo2-common-confirm-dialog.mjs.map +1 -0
- package/fesm2022/igo2-common-context-menu.mjs +206 -0
- package/fesm2022/igo2-common-context-menu.mjs.map +1 -0
- package/fesm2022/igo2-common-custom-html.mjs +74 -0
- package/fesm2022/igo2-common-custom-html.mjs.map +1 -0
- package/fesm2022/igo2-common-dom.mjs +65 -0
- package/fesm2022/igo2-common-dom.mjs.map +1 -0
- package/fesm2022/igo2-common-drag-drop.mjs +111 -0
- package/fesm2022/igo2-common-drag-drop.mjs.map +1 -0
- package/fesm2022/igo2-common-dynamic-component.mjs +375 -0
- package/fesm2022/igo2-common-dynamic-component.mjs.map +1 -0
- package/fesm2022/igo2-common-entity.mjs +3036 -0
- package/fesm2022/igo2-common-entity.mjs.map +1 -0
- package/fesm2022/igo2-common-environment.mjs +4 -0
- package/fesm2022/igo2-common-environment.mjs.map +1 -0
- package/fesm2022/igo2-common-flexible.mjs +163 -0
- package/fesm2022/igo2-common-flexible.mjs.map +1 -0
- package/fesm2022/igo2-common-form.mjs +898 -0
- package/fesm2022/igo2-common-form.mjs.map +1 -0
- package/fesm2022/igo2-common-home-button.mjs +49 -0
- package/fesm2022/igo2-common-home-button.mjs.map +1 -0
- package/fesm2022/igo2-common-icon.mjs +108 -0
- package/fesm2022/igo2-common-icon.mjs.map +1 -0
- package/fesm2022/igo2-common-image.mjs +129 -0
- package/fesm2022/igo2-common-image.mjs.map +1 -0
- package/fesm2022/igo2-common-interactive-tour.mjs +490 -0
- package/fesm2022/igo2-common-interactive-tour.mjs.map +1 -0
- package/fesm2022/igo2-common-json-dialog.mjs +88 -0
- package/fesm2022/igo2-common-json-dialog.mjs.map +1 -0
- package/fesm2022/igo2-common-keyvalue.mjs +48 -0
- package/fesm2022/igo2-common-keyvalue.mjs.map +1 -0
- package/fesm2022/igo2-common-list.mjs +446 -0
- package/fesm2022/igo2-common-list.mjs.map +1 -0
- package/fesm2022/igo2-common-panel.mjs +53 -0
- package/fesm2022/igo2-common-panel.mjs.map +1 -0
- package/fesm2022/igo2-common-select-value-dialog.mjs +161 -0
- package/fesm2022/igo2-common-select-value-dialog.mjs.map +1 -0
- package/fesm2022/igo2-common-sidenav.mjs +86 -0
- package/fesm2022/igo2-common-sidenav.mjs.map +1 -0
- package/fesm2022/igo2-common-spinner.mjs +110 -0
- package/fesm2022/igo2-common-spinner.mjs.map +1 -0
- package/fesm2022/igo2-common-stop-propagation.mjs +73 -0
- package/fesm2022/igo2-common-stop-propagation.mjs.map +1 -0
- package/fesm2022/igo2-common-table.mjs +264 -0
- package/fesm2022/igo2-common-table.mjs.map +1 -0
- package/fesm2022/igo2-common-tool.mjs +535 -0
- package/fesm2022/igo2-common-tool.mjs.map +1 -0
- package/fesm2022/igo2-common-widget.mjs +176 -0
- package/fesm2022/igo2-common-widget.mjs.map +1 -0
- package/fesm2022/igo2-common-workspace.mjs +361 -0
- package/fesm2022/igo2-common-workspace.mjs.map +1 -0
- package/fesm2022/igo2-common.mjs +16 -8760
- package/fesm2022/igo2-common.mjs.map +1 -1
- package/flexible/flexible.component.d.ts +41 -0
- package/flexible/flexible.module.d.ts +12 -0
- package/flexible/index.d.ts +5 -0
- package/flexible/public_api.d.ts +3 -0
- package/form/form/form.component.d.ts +53 -0
- package/form/form/form.module.d.ts +10 -0
- package/form/form/index.d.ts +2 -0
- package/form/form-dialog/form-dialog.component.d.ts +23 -0
- package/form/form-dialog/form-dialog.interface.d.ts +18 -0
- package/form/form-dialog/form-dialog.module.d.ts +16 -0
- package/form/form-dialog/index.d.ts +4 -0
- package/form/form-field/form-field-select.component.d.ts +52 -0
- package/form/form-field/form-field-text.component.d.ts +51 -0
- package/form/form-field/form-field-textarea.component.d.ts +41 -0
- package/form/form-field/form-field.component.d.ts +29 -0
- package/form/form-field/form-field.directive.d.ts +5 -0
- package/form/form-field/form-field.module.d.ts +13 -0
- package/form/form-field/index.d.ts +6 -0
- package/form/form-group/form-group.component.d.ts +49 -0
- package/form/form-group/form-group.module.d.ts +10 -0
- package/form/form-group/index.d.ts +2 -0
- package/form/form.module.d.ts +18 -0
- package/form/index.d.ts +5 -0
- package/form/public_api.d.ts +6 -0
- package/home-button/home-button.component.d.ts +9 -0
- package/home-button/home-button.module.d.ts +10 -0
- package/home-button/index.d.ts +5 -0
- package/home-button/public_api.d.ts +2 -0
- package/home-button/src/home-button.theming.scss +18 -0
- package/icon/icon/icon.component.d.ts +14 -0
- package/icon/icon.provider.d.ts +4 -0
- package/icon/index.d.ts +5 -0
- package/icon/public_api.d.ts +3 -0
- package/icon/shared/icon.interface.d.ts +4 -0
- package/icon/shared/icon.service.d.ts +12 -0
- package/icon/shared/icons.d.ts +9 -0
- package/icon/shared/index.d.ts +3 -0
- package/image/image-error.directive.d.ts +11 -0
- package/image/image.module.d.ts +13 -0
- package/image/index.d.ts +5 -0
- package/image/public_api.d.ts +6 -0
- package/image/secure-image.pipe.d.ts +13 -0
- package/interactive-tour/index.d.ts +5 -0
- package/interactive-tour/interactive-tour.component.d.ts +33 -0
- package/interactive-tour/interactive-tour.loader.d.ts +18 -0
- package/interactive-tour/interactive-tour.module.d.ts +7 -0
- package/interactive-tour/interactive-tour.service.d.ts +31 -0
- package/interactive-tour/public_api.d.ts +5 -0
- package/interactive-tour/src/interactive-tour.theming.scss +32 -0
- package/json-dialog/index.d.ts +5 -0
- package/json-dialog/json-dialog.component.d.ts +13 -0
- package/json-dialog/json-dialog.module.d.ts +12 -0
- package/json-dialog/public_api.d.ts +3 -0
- package/keyvalue/index.d.ts +5 -0
- package/keyvalue/keyvalue.module.d.ts +12 -0
- package/keyvalue/keyvalue.pipe.d.ts +7 -0
- package/keyvalue/public_api.d.ts +2 -0
- package/list/index.d.ts +5 -0
- package/list/list-item.directive.d.ts +43 -0
- package/list/list.component.d.ts +51 -0
- package/list/list.module.d.ts +13 -0
- package/list/public_api.d.ts +6 -0
- package/list/src/list.theming.scss +58 -0
- package/locale/en.common.json +59 -59
- package/locale/fr.common.json +59 -59
- package/package.json +206 -8
- package/panel/index.d.ts +5 -0
- package/panel/panel.component.d.ts +10 -0
- package/panel/panel.module.d.ts +10 -0
- package/panel/public_api.d.ts +2 -0
- package/panel/src/panel.theming.scss +30 -0
- package/public_api.d.ts +16 -77
- package/select-value-dialog/index.d.ts +5 -0
- package/select-value-dialog/public_api.d.ts +5 -0
- package/select-value-dialog/select-value-check-radio-dialog.component.d.ts +25 -0
- package/select-value-dialog/select-value-dialog.module.d.ts +12 -0
- package/sidenav/index.d.ts +5 -0
- package/sidenav/public_api.d.ts +2 -0
- package/sidenav/sidenav-shim.directive.d.ts +20 -0
- package/sidenav/sidenav.module.d.ts +12 -0
- package/spinner/index.d.ts +5 -0
- package/spinner/public_api.d.ts +3 -0
- package/spinner/spinner-activity.directive.d.ts +32 -0
- package/spinner/spinner.component.d.ts +12 -0
- package/spinner/spinner.module.d.ts +14 -0
- package/src/common-theme.scss +19 -19
- package/src/style/partial/common-utils.scss +9 -9
- package/src/style/partial/common.variables.scss +8 -8
- package/src/style/style.scss +1 -1
- package/stop-propagation/index.d.ts +5 -0
- package/stop-propagation/public_api.d.ts +6 -0
- package/stop-propagation/stop-drop-propagation.directive.d.ts +6 -0
- package/stop-propagation/stop-propagation.directive.d.ts +6 -0
- package/stop-propagation/stop-propagation.module.d.ts +13 -0
- package/table/index.d.ts +5 -0
- package/table/public_api.d.ts +6 -0
- package/table/table.component.d.ts +40 -0
- package/table/table.module.d.ts +12 -0
- package/tool/index.d.ts +5 -0
- package/tool/public_api.d.ts +3 -0
- package/tool/shared/tool.interface.d.ts +18 -0
- package/tool/shared/toolbox.d.ts +98 -0
- package/tool/shared/toolbox.enums.d.ts +1 -0
- package/tool/src/tool.theming.scss +5 -0
- package/tool/src/toolbox/toolbox.theming.scss +105 -0
- package/tool/tool.module.d.ts +15 -0
- package/tool/toolbox/index.d.ts +2 -0
- package/tool/toolbox/toolbox.component.d.ts +128 -0
- package/tool/toolbox/toolbox.module.d.ts +10 -0
- package/widget/index.d.ts +5 -0
- package/widget/public_api.d.ts +3 -0
- package/widget/shared/widget.d.ts +4 -0
- package/widget/shared/widget.service.d.ts +10 -0
- package/widget/widget-outlet/index.d.ts +2 -0
- package/widget/widget-outlet/widget-outlet.component.d.ts +71 -0
- package/widget/widget-outlet/widget-outlet.module.d.ts +10 -0
- package/widget/widget.module.d.ts +10 -0
- package/workspace/index.d.ts +5 -0
- package/workspace/public_api.d.ts +4 -0
- package/workspace/shared/store.d.ts +20 -0
- package/workspace/shared/workspace.d.ts +108 -0
- package/workspace/shared/workspace.interfaces.d.ts +11 -0
- package/workspace/workspace-selector/index.d.ts +2 -0
- package/workspace/workspace-selector/workspace-selector.component.d.ts +38 -0
- package/workspace/workspace-selector/workspace-selector.module.d.ts +10 -0
- package/workspace/workspace-widget-outlet/index.d.ts +2 -0
- package/workspace/workspace-widget-outlet/workspace-widget-outlet.component.d.ts +57 -0
- package/workspace/workspace-widget-outlet/workspace-widget-outlet.module.d.ts +10 -0
- package/workspace/workspace.module.d.ts +14 -0
- package/esm2022/lib/action/action.module.mjs +0 -19
- package/esm2022/lib/action/actionbar/actionbar-item.component.mjs +0 -190
- package/esm2022/lib/action/actionbar/actionbar.component.mjs +0 -258
- package/esm2022/lib/action/actionbar/actionbar.module.mjs +0 -56
- package/esm2022/lib/action/index.mjs +0 -3
- package/esm2022/lib/action/shared/action.enums.mjs +0 -7
- package/esm2022/lib/action/shared/action.interfaces.mjs +0 -2
- package/esm2022/lib/action/shared/index.mjs +0 -4
- package/esm2022/lib/action/shared/store.mjs +0 -8
- package/esm2022/lib/backdrop/backdrop.component.mjs +0 -22
- package/esm2022/lib/backdrop/backdrop.module.mjs +0 -24
- package/esm2022/lib/backdrop/index.mjs +0 -2
- package/esm2022/lib/badge-icon/badge-icon.directive.mjs +0 -150
- package/esm2022/lib/badge-icon/badge-icon.module.mjs +0 -25
- package/esm2022/lib/badge-icon/index.mjs +0 -2
- package/esm2022/lib/clickout/clickout.directive.mjs +0 -31
- package/esm2022/lib/clickout/clickout.module.mjs +0 -23
- package/esm2022/lib/clickout/index.mjs +0 -2
- package/esm2022/lib/clone/clone.module.mjs +0 -23
- package/esm2022/lib/clone/clone.pipe.mjs +0 -24
- package/esm2022/lib/clone/index.mjs +0 -2
- package/esm2022/lib/collapsible/collapse.directive.mjs +0 -56
- package/esm2022/lib/collapsible/collapsible.component.mjs +0 -36
- package/esm2022/lib/collapsible/collapsible.module.mjs +0 -26
- package/esm2022/lib/collapsible/index.mjs +0 -3
- package/esm2022/lib/color-picker-form-field/color-picker-form-field.component.mjs +0 -91
- package/esm2022/lib/color-picker-form-field/color-picker-form-field.module.mjs +0 -51
- package/esm2022/lib/color-picker-form-field/index.mjs +0 -2
- package/esm2022/lib/confirm-dialog/confirm-dialog.component.mjs +0 -23
- package/esm2022/lib/confirm-dialog/confirm-dialog.interface.mjs +0 -2
- package/esm2022/lib/confirm-dialog/confirm-dialog.module.mjs +0 -28
- package/esm2022/lib/confirm-dialog/confirm-dialog.service.mjs +0 -34
- package/esm2022/lib/confirm-dialog/index.mjs +0 -4
- package/esm2022/lib/context-menu/context-menu.directive.mjs +0 -108
- package/esm2022/lib/context-menu/context-menu.module.mjs +0 -24
- package/esm2022/lib/context-menu/index.mjs +0 -3
- package/esm2022/lib/context-menu/long-press.directive.mjs +0 -65
- package/esm2022/lib/custom-html/custom-html.component.mjs +0 -22
- package/esm2022/lib/custom-html/custom-html.module.mjs +0 -46
- package/esm2022/lib/custom-html/custom-html.pipe.mjs +0 -20
- package/esm2022/lib/custom-html/index.mjs +0 -3
- package/esm2022/lib/dom/dom.interfaces.mjs +0 -2
- package/esm2022/lib/dom/dom.module.mjs +0 -21
- package/esm2022/lib/dom/dom.service.mjs +0 -35
- package/esm2022/lib/dom/index.mjs +0 -3
- package/esm2022/lib/drag-drop/drag-drop.directive.mjs +0 -81
- package/esm2022/lib/drag-drop/drag-drop.module.mjs +0 -23
- package/esm2022/lib/drag-drop/index.mjs +0 -2
- package/esm2022/lib/dynamic-component/dynamic-component.module.mjs +0 -19
- package/esm2022/lib/dynamic-component/dynamic-outlet/dynamic-outlet.component.mjs +0 -129
- package/esm2022/lib/dynamic-component/dynamic-outlet/dynamic-outlet.module.mjs +0 -21
- package/esm2022/lib/dynamic-component/index.mjs +0 -3
- package/esm2022/lib/dynamic-component/shared/dynamic-component.interfaces.mjs +0 -2
- package/esm2022/lib/dynamic-component/shared/dynamic-component.mjs +0 -183
- package/esm2022/lib/dynamic-component/shared/dynamic-component.service.mjs +0 -30
- package/esm2022/lib/dynamic-component/shared/index.mjs +0 -4
- package/esm2022/lib/entity/entity-selector/entity-selector.component.mjs +0 -164
- package/esm2022/lib/entity/entity-selector/entity-selector.module.mjs +0 -23
- package/esm2022/lib/entity/entity-table/entity-table-row.directive.mjs +0 -137
- package/esm2022/lib/entity/entity-table/entity-table.component.mjs +0 -842
- package/esm2022/lib/entity/entity-table/entity-table.module.mjs +0 -95
- package/esm2022/lib/entity/entity-table-paginator/entity-table-paginator.component.mjs +0 -156
- package/esm2022/lib/entity/entity-table-paginator/entity-table-paginator.interface.mjs +0 -2
- package/esm2022/lib/entity/entity-table-paginator/entity-table-paginator.module.mjs +0 -21
- package/esm2022/lib/entity/entity.module.mjs +0 -28
- package/esm2022/lib/entity/index.mjs +0 -6
- package/esm2022/lib/entity/shared/entity.enums.mjs +0 -28
- package/esm2022/lib/entity/shared/entity.interfaces.mjs +0 -2
- package/esm2022/lib/entity/shared/entity.utils.mjs +0 -73
- package/esm2022/lib/entity/shared/index.mjs +0 -10
- package/esm2022/lib/entity/shared/state.mjs +0 -194
- package/esm2022/lib/entity/shared/store.mjs +0 -322
- package/esm2022/lib/entity/shared/strategies/filter-custom-function.mjs +0 -80
- package/esm2022/lib/entity/shared/strategies/filter-selection.mjs +0 -81
- package/esm2022/lib/entity/shared/strategies/index.mjs +0 -4
- package/esm2022/lib/entity/shared/strategies/strategy.mjs +0 -78
- package/esm2022/lib/entity/shared/transaction.mjs +0 -329
- package/esm2022/lib/entity/shared/view.mjs +0 -330
- package/esm2022/lib/entity/shared/watcher.mjs +0 -135
- package/esm2022/lib/environment/environment.interface.mjs +0 -2
- package/esm2022/lib/environment/index.mjs +0 -2
- package/esm2022/lib/flexible/flexible.component.mjs +0 -135
- package/esm2022/lib/flexible/flexible.module.mjs +0 -23
- package/esm2022/lib/flexible/flexible.type.mjs +0 -2
- package/esm2022/lib/flexible/index.mjs +0 -3
- package/esm2022/lib/form/form/form.component.mjs +0 -102
- package/esm2022/lib/form/form/form.module.mjs +0 -22
- package/esm2022/lib/form/form-field/form-field-select.component.mjs +0 -99
- package/esm2022/lib/form/form-field/form-field-text.component.mjs +0 -109
- package/esm2022/lib/form/form-field/form-field-textarea.component.mjs +0 -80
- package/esm2022/lib/form/form-field/form-field.component.mjs +0 -65
- package/esm2022/lib/form/form-field/form-field.module.mjs +0 -77
- package/esm2022/lib/form/form-field/index.mjs +0 -5
- package/esm2022/lib/form/form-group/form-group.component.mjs +0 -73
- package/esm2022/lib/form/form-group/form-group.module.mjs +0 -35
- package/esm2022/lib/form/form.module.mjs +0 -26
- package/esm2022/lib/form/index.mjs +0 -5
- package/esm2022/lib/form/shared/form-field-component.mjs +0 -7
- package/esm2022/lib/form/shared/form-field.service.mjs +0 -29
- package/esm2022/lib/form/shared/form.interfaces.mjs +0 -2
- package/esm2022/lib/form/shared/form.service.mjs +0 -82
- package/esm2022/lib/form/shared/form.utils.mjs +0 -41
- package/esm2022/lib/form/shared/index.mjs +0 -6
- package/esm2022/lib/form-dialog/form-dialog.component.mjs +0 -80
- package/esm2022/lib/form-dialog/form-dialog.interface.mjs +0 -2
- package/esm2022/lib/form-dialog/form-dialog.module.mjs +0 -52
- package/esm2022/lib/form-dialog/form-dialog.service.mjs +0 -30
- package/esm2022/lib/form-dialog/index.mjs +0 -4
- package/esm2022/lib/home-button/home-button.component.mjs +0 -22
- package/esm2022/lib/home-button/home-button.module.mjs +0 -40
- package/esm2022/lib/home-button/index.mjs +0 -2
- package/esm2022/lib/image/image-error.directive.mjs +0 -34
- package/esm2022/lib/image/image.module.mjs +0 -24
- package/esm2022/lib/image/index.mjs +0 -3
- package/esm2022/lib/image/secure-image.pipe.mjs +0 -65
- package/esm2022/lib/interactive-tour/index.mjs +0 -5
- package/esm2022/lib/interactive-tour/interactive-tour.component.mjs +0 -114
- package/esm2022/lib/interactive-tour/interactive-tour.interface.mjs +0 -2
- package/esm2022/lib/interactive-tour/interactive-tour.loader.mjs +0 -49
- package/esm2022/lib/interactive-tour/interactive-tour.module.mjs +0 -39
- package/esm2022/lib/interactive-tour/interactive-tour.service.mjs +0 -299
- package/esm2022/lib/json-dialog/index.mjs +0 -3
- package/esm2022/lib/json-dialog/json-dialog.component.mjs +0 -29
- package/esm2022/lib/json-dialog/json-dialog.module.mjs +0 -28
- package/esm2022/lib/json-dialog/json-dialog.service.mjs +0 -26
- package/esm2022/lib/keyvalue/index.mjs +0 -2
- package/esm2022/lib/keyvalue/keyvalue.module.mjs +0 -23
- package/esm2022/lib/keyvalue/keyvalue.pipe.mjs +0 -18
- package/esm2022/lib/list/index.mjs +0 -3
- package/esm2022/lib/list/list-item.directive.mjs +0 -165
- package/esm2022/lib/list/list.component.mjs +0 -251
- package/esm2022/lib/list/list.module.mjs +0 -28
- package/esm2022/lib/panel/index.mjs +0 -2
- package/esm2022/lib/panel/panel.component.mjs +0 -30
- package/esm2022/lib/panel/panel.module.mjs +0 -18
- package/esm2022/lib/select-value-dialog/index.mjs +0 -5
- package/esm2022/lib/select-value-dialog/select-value-check-radio-dialog.component.mjs +0 -87
- package/esm2022/lib/select-value-dialog/select-value-dialog.enums.mjs +0 -6
- package/esm2022/lib/select-value-dialog/select-value-dialog.interface.mjs +0 -2
- package/esm2022/lib/select-value-dialog/select-value-dialog.module.mjs +0 -59
- package/esm2022/lib/select-value-dialog/select-value-dialog.service.mjs +0 -29
- package/esm2022/lib/sidenav/index.mjs +0 -2
- package/esm2022/lib/sidenav/sidenav-shim.directive.mjs +0 -57
- package/esm2022/lib/sidenav/sidenav.module.mjs +0 -23
- package/esm2022/lib/spinner/index.mjs +0 -3
- package/esm2022/lib/spinner/spinner-activity.directive.mjs +0 -55
- package/esm2022/lib/spinner/spinner.component.mjs +0 -30
- package/esm2022/lib/spinner/spinner.module.mjs +0 -20
- package/esm2022/lib/stop-propagation/index.mjs +0 -3
- package/esm2022/lib/stop-propagation/stop-drop-propagation.directive.mjs +0 -20
- package/esm2022/lib/stop-propagation/stop-propagation.directive.mjs +0 -19
- package/esm2022/lib/stop-propagation/stop-propagation.module.mjs +0 -24
- package/esm2022/lib/table/index.mjs +0 -6
- package/esm2022/lib/table/table-action-color.enum.mjs +0 -7
- package/esm2022/lib/table/table-database.mjs +0 -28
- package/esm2022/lib/table/table-datasource.mjs +0 -64
- package/esm2022/lib/table/table-model.interface.mjs +0 -2
- package/esm2022/lib/table/table.component.mjs +0 -124
- package/esm2022/lib/table/table.module.mjs +0 -66
- package/esm2022/lib/tool/index.mjs +0 -3
- package/esm2022/lib/tool/shared/index.mjs +0 -6
- package/esm2022/lib/tool/shared/tool-component.mjs +0 -9
- package/esm2022/lib/tool/shared/tool.interface.mjs +0 -2
- package/esm2022/lib/tool/shared/tool.service.mjs +0 -43
- package/esm2022/lib/tool/shared/toolbox.enums.mjs +0 -7
- package/esm2022/lib/tool/shared/toolbox.mjs +0 -184
- package/esm2022/lib/tool/tool.module.mjs +0 -25
- package/esm2022/lib/tool/toolbox/toolbox.animation.mjs +0 -10
- package/esm2022/lib/tool/toolbox/toolbox.component.mjs +0 -238
- package/esm2022/lib/tool/toolbox/toolbox.module.mjs +0 -23
- package/esm2022/lib/widget/index.mjs +0 -3
- package/esm2022/lib/widget/shared/index.mjs +0 -4
- package/esm2022/lib/widget/shared/widget.interfaces.mjs +0 -2
- package/esm2022/lib/widget/shared/widget.mjs +0 -4
- package/esm2022/lib/widget/shared/widget.service.mjs +0 -22
- package/esm2022/lib/widget/widget-outlet/widget-outlet.component.mjs +0 -114
- package/esm2022/lib/widget/widget-outlet/widget-outlet.module.mjs +0 -22
- package/esm2022/lib/widget/widget.module.mjs +0 -20
- package/esm2022/lib/workspace/index.mjs +0 -4
- package/esm2022/lib/workspace/shared/index.mjs +0 -4
- package/esm2022/lib/workspace/shared/store.mjs +0 -37
- package/esm2022/lib/workspace/shared/workspace.interfaces.mjs +0 -2
- package/esm2022/lib/workspace/shared/workspace.mjs +0 -143
- package/esm2022/lib/workspace/workspace-selector/workspace-selector.component.mjs +0 -52
- package/esm2022/lib/workspace/workspace-selector/workspace-selector.module.mjs +0 -22
- package/esm2022/lib/workspace/workspace-widget-outlet/workspace-widget-outlet.component.mjs +0 -74
- package/esm2022/lib/workspace/workspace-widget-outlet/workspace-widget-outlet.module.mjs +0 -22
- package/esm2022/lib/workspace/workspace.module.mjs +0 -19
- package/lib/action/action.module.d.ts +0 -8
- package/lib/action/actionbar/actionbar-item.component.d.ts +0 -78
- package/lib/action/actionbar/actionbar.component.d.ts +0 -147
- package/lib/action/actionbar/actionbar.module.d.ts +0 -20
- package/lib/action/index.d.ts +0 -2
- package/lib/action/shared/action.interfaces.d.ts +0 -17
- package/lib/action/shared/store.d.ts +0 -8
- package/lib/backdrop/backdrop.component.d.ts +0 -9
- package/lib/backdrop/backdrop.module.d.ts +0 -10
- package/lib/backdrop/index.d.ts +0 -1
- package/lib/badge-icon/badge-icon.directive.d.ts +0 -36
- package/lib/badge-icon/badge-icon.module.d.ts +0 -11
- package/lib/badge-icon/index.d.ts +0 -1
- package/lib/clickout/clickout.directive.d.ts +0 -10
- package/lib/clickout/clickout.module.d.ts +0 -9
- package/lib/clickout/index.d.ts +0 -1
- package/lib/clone/clone.module.d.ts +0 -9
- package/lib/clone/clone.pipe.d.ts +0 -7
- package/lib/clone/index.d.ts +0 -1
- package/lib/collapsible/collapse.directive.d.ts +0 -19
- package/lib/collapsible/collapsible.component.d.ts +0 -13
- package/lib/collapsible/collapsible.module.d.ts +0 -12
- package/lib/collapsible/index.d.ts +0 -2
- package/lib/color-picker-form-field/color-picker-form-field.component.d.ts +0 -29
- package/lib/color-picker-form-field/color-picker-form-field.module.d.ts +0 -15
- package/lib/color-picker-form-field/index.d.ts +0 -1
- package/lib/confirm-dialog/confirm-dialog.component.d.ts +0 -12
- package/lib/confirm-dialog/confirm-dialog.module.d.ts +0 -12
- package/lib/confirm-dialog/index.d.ts +0 -3
- package/lib/context-menu/context-menu.directive.d.ts +0 -21
- package/lib/context-menu/context-menu.module.d.ts +0 -10
- package/lib/context-menu/index.d.ts +0 -2
- package/lib/context-menu/long-press.directive.d.ts +0 -20
- package/lib/custom-html/custom-html.component.d.ts +0 -9
- package/lib/custom-html/custom-html.module.d.ts +0 -16
- package/lib/custom-html/custom-html.pipe.d.ts +0 -10
- package/lib/custom-html/index.d.ts +0 -2
- package/lib/dom/dom.module.d.ts +0 -8
- package/lib/dom/index.d.ts +0 -2
- package/lib/drag-drop/drag-drop.directive.d.ts +0 -14
- package/lib/drag-drop/drag-drop.module.d.ts +0 -9
- package/lib/drag-drop/index.d.ts +0 -1
- package/lib/dynamic-component/dynamic-component.module.d.ts +0 -8
- package/lib/dynamic-component/dynamic-outlet/dynamic-outlet.component.d.ts +0 -70
- package/lib/dynamic-component/dynamic-outlet/dynamic-outlet.module.d.ts +0 -11
- package/lib/dynamic-component/index.d.ts +0 -2
- package/lib/entity/entity-selector/entity-selector.component.d.ts +0 -92
- package/lib/entity/entity-selector/entity-selector.module.d.ts +0 -13
- package/lib/entity/entity-table/entity-table-row.directive.d.ts +0 -69
- package/lib/entity/entity-table/entity-table.component.d.ts +0 -342
- package/lib/entity/entity-table/entity-table.module.d.ts +0 -29
- package/lib/entity/entity-table-paginator/entity-table-paginator.component.d.ts +0 -49
- package/lib/entity/entity-table-paginator/entity-table-paginator.module.d.ts +0 -11
- package/lib/entity/entity.module.d.ts +0 -10
- package/lib/entity/index.d.ts +0 -5
- package/lib/entity/shared/entity.interfaces.d.ts +0 -95
- package/lib/entity/shared/transaction.d.ts +0 -180
- package/lib/flexible/flexible.component.d.ts +0 -41
- package/lib/flexible/flexible.module.d.ts +0 -9
- package/lib/flexible/index.d.ts +0 -2
- package/lib/form/form/form.component.d.ts +0 -53
- package/lib/form/form/form.module.d.ts +0 -12
- package/lib/form/form-field/form-field-select.component.d.ts +0 -52
- package/lib/form/form-field/form-field-text.component.d.ts +0 -51
- package/lib/form/form-field/form-field-textarea.component.d.ts +0 -41
- package/lib/form/form-field/form-field.component.d.ts +0 -29
- package/lib/form/form-field/form-field.module.d.ts +0 -22
- package/lib/form/form-field/index.d.ts +0 -4
- package/lib/form/form-group/form-group.component.d.ts +0 -49
- package/lib/form/form-group/form-group.module.d.ts +0 -14
- package/lib/form/form.module.d.ts +0 -13
- package/lib/form/index.d.ts +0 -4
- package/lib/form-dialog/form-dialog.component.d.ts +0 -24
- package/lib/form-dialog/form-dialog.interface.d.ts +0 -18
- package/lib/form-dialog/form-dialog.module.d.ts +0 -16
- package/lib/form-dialog/index.d.ts +0 -3
- package/lib/home-button/home-button.component.d.ts +0 -9
- package/lib/home-button/home-button.module.d.ts +0 -15
- package/lib/home-button/index.d.ts +0 -1
- package/lib/image/image-error.directive.d.ts +0 -11
- package/lib/image/image.module.d.ts +0 -10
- package/lib/image/index.d.ts +0 -2
- package/lib/image/secure-image.pipe.d.ts +0 -13
- package/lib/interactive-tour/index.d.ts +0 -4
- package/lib/interactive-tour/interactive-tour.component.d.ts +0 -30
- package/lib/interactive-tour/interactive-tour.loader.d.ts +0 -18
- package/lib/interactive-tour/interactive-tour.module.d.ts +0 -12
- package/lib/interactive-tour/interactive-tour.service.d.ts +0 -29
- package/lib/json-dialog/index.d.ts +0 -2
- package/lib/json-dialog/json-dialog.component.d.ts +0 -13
- package/lib/json-dialog/json-dialog.module.d.ts +0 -13
- package/lib/keyvalue/index.d.ts +0 -1
- package/lib/keyvalue/keyvalue.module.d.ts +0 -9
- package/lib/keyvalue/keyvalue.pipe.d.ts +0 -7
- package/lib/list/index.d.ts +0 -2
- package/lib/list/list-item.directive.d.ts +0 -43
- package/lib/list/list.component.d.ts +0 -51
- package/lib/list/list.module.d.ts +0 -14
- package/lib/panel/index.d.ts +0 -1
- package/lib/panel/panel.component.d.ts +0 -10
- package/lib/panel/panel.module.d.ts +0 -8
- package/lib/select-value-dialog/index.d.ts +0 -4
- package/lib/select-value-dialog/select-value-check-radio-dialog.component.d.ts +0 -25
- package/lib/select-value-dialog/select-value-dialog.module.d.ts +0 -17
- package/lib/sidenav/index.d.ts +0 -1
- package/lib/sidenav/sidenav-shim.directive.d.ts +0 -20
- package/lib/sidenav/sidenav.module.d.ts +0 -9
- package/lib/spinner/index.d.ts +0 -2
- package/lib/spinner/spinner-activity.directive.d.ts +0 -32
- package/lib/spinner/spinner.component.d.ts +0 -12
- package/lib/spinner/spinner.module.d.ts +0 -10
- package/lib/stop-propagation/index.d.ts +0 -2
- package/lib/stop-propagation/stop-drop-propagation.directive.d.ts +0 -6
- package/lib/stop-propagation/stop-propagation.directive.d.ts +0 -6
- package/lib/stop-propagation/stop-propagation.module.d.ts +0 -10
- package/lib/table/index.d.ts +0 -5
- package/lib/table/table.component.d.ts +0 -40
- package/lib/table/table.module.d.ts +0 -20
- package/lib/tool/index.d.ts +0 -2
- package/lib/tool/shared/tool.interface.d.ts +0 -18
- package/lib/tool/shared/toolbox.d.ts +0 -95
- package/lib/tool/shared/toolbox.enums.d.ts +0 -5
- package/lib/tool/tool.module.d.ts +0 -10
- package/lib/tool/toolbox/toolbox.component.d.ts +0 -128
- package/lib/tool/toolbox/toolbox.module.d.ts +0 -13
- package/lib/widget/index.d.ts +0 -2
- package/lib/widget/shared/widget.d.ts +0 -4
- package/lib/widget/shared/widget.service.d.ts +0 -10
- package/lib/widget/widget-outlet/widget-outlet.component.d.ts +0 -71
- package/lib/widget/widget-outlet/widget-outlet.module.d.ts +0 -12
- package/lib/widget/widget.module.d.ts +0 -8
- package/lib/workspace/index.d.ts +0 -3
- package/lib/workspace/shared/store.d.ts +0 -20
- package/lib/workspace/shared/workspace.d.ts +0 -108
- package/lib/workspace/shared/workspace.interfaces.d.ts +0 -11
- package/lib/workspace/workspace-selector/workspace-selector.component.d.ts +0 -39
- package/lib/workspace/workspace-selector/workspace-selector.module.d.ts +0 -12
- package/lib/workspace/workspace-widget-outlet/workspace-widget-outlet.component.d.ts +0 -57
- package/lib/workspace/workspace-widget-outlet/workspace-widget-outlet.module.d.ts +0 -12
- package/lib/workspace/workspace.module.d.ts +0 -9
- package/src/lib/action/action.theming.scss +0 -5
- package/src/lib/action/actionbar/actionbar-item.theming.scss +0 -32
- package/src/lib/action/actionbar/actionbar.theming.scss +0 -22
- package/src/lib/collapsible/collapsible.theming.scss +0 -22
- package/src/lib/entity/entity-selector/entity-selector.theming.scss +0 -21
- package/src/lib/entity/entity-table/entity-table.theming.scss +0 -37
- package/src/lib/entity/entity.theming.scss +0 -7
- package/src/lib/home-button/home-button.theming.scss +0 -18
- package/src/lib/interactive-tour/interactive-tour.theming.scss +0 -32
- package/src/lib/list/list.theming.scss +0 -58
- package/src/lib/panel/panel.theming.scss +0 -30
- package/src/lib/tool/tool.theming.scss +0 -5
- package/src/lib/tool/toolbox/toolbox.theming.scss +0 -105
- /package/{lib/action → action}/shared/action.enums.d.ts +0 -0
- /package/{lib/action → action}/shared/index.d.ts +0 -0
- /package/{lib/confirm-dialog → confirm-dialog}/confirm-dialog.interface.d.ts +0 -0
- /package/{lib/confirm-dialog → confirm-dialog}/confirm-dialog.service.d.ts +0 -0
- /package/{lib/dom → dom}/dom.interfaces.d.ts +0 -0
- /package/{lib/dom → dom}/dom.service.d.ts +0 -0
- /package/{lib/dynamic-component → dynamic-component}/shared/dynamic-component.d.ts +0 -0
- /package/{lib/dynamic-component → dynamic-component}/shared/dynamic-component.interfaces.d.ts +0 -0
- /package/{lib/dynamic-component → dynamic-component}/shared/dynamic-component.service.d.ts +0 -0
- /package/{lib/dynamic-component → dynamic-component}/shared/index.d.ts +0 -0
- /package/{lib/entity → entity}/entity-table-paginator/entity-table-paginator.interface.d.ts +0 -0
- /package/{lib/entity → entity}/shared/entity.enums.d.ts +0 -0
- /package/{lib/entity → entity}/shared/entity.utils.d.ts +0 -0
- /package/{lib/entity → entity}/shared/index.d.ts +0 -0
- /package/{lib/entity → entity}/shared/state.d.ts +0 -0
- /package/{lib/entity → entity}/shared/store.d.ts +0 -0
- /package/{lib/entity → entity}/shared/strategies/filter-custom-function.d.ts +0 -0
- /package/{lib/entity → entity}/shared/strategies/filter-selection.d.ts +0 -0
- /package/{lib/entity → entity}/shared/strategies/index.d.ts +0 -0
- /package/{lib/entity → entity}/shared/strategies/strategy.d.ts +0 -0
- /package/{lib/entity → entity}/shared/view.d.ts +0 -0
- /package/{lib/entity → entity}/shared/watcher.d.ts +0 -0
- /package/{lib/environment → environment}/environment.interface.d.ts +0 -0
- /package/{lib/environment/index.d.ts → environment/public_api.d.ts} +0 -0
- /package/{lib/flexible → flexible}/flexible.type.d.ts +0 -0
- /package/{lib → form}/form-dialog/form-dialog.service.d.ts +0 -0
- /package/{lib/form → form}/shared/form-field-component.d.ts +0 -0
- /package/{lib/form → form}/shared/form-field.service.d.ts +0 -0
- /package/{lib/form → form}/shared/form.interfaces.d.ts +0 -0
- /package/{lib/form → form}/shared/form.service.d.ts +0 -0
- /package/{lib/form → form}/shared/form.utils.d.ts +0 -0
- /package/{lib/form → form}/shared/index.d.ts +0 -0
- /package/{lib/interactive-tour → interactive-tour}/interactive-tour.interface.d.ts +0 -0
- /package/{lib/json-dialog → json-dialog}/json-dialog.service.d.ts +0 -0
- /package/{lib/select-value-dialog → select-value-dialog}/select-value-dialog.enums.d.ts +0 -0
- /package/{lib/select-value-dialog → select-value-dialog}/select-value-dialog.interface.d.ts +0 -0
- /package/{lib/select-value-dialog → select-value-dialog}/select-value-dialog.service.d.ts +0 -0
- /package/{lib/table → table}/table-action-color.enum.d.ts +0 -0
- /package/{lib/table → table}/table-database.d.ts +0 -0
- /package/{lib/table → table}/table-datasource.d.ts +0 -0
- /package/{lib/table → table}/table-model.interface.d.ts +0 -0
- /package/{lib/tool → tool}/shared/index.d.ts +0 -0
- /package/{lib/tool → tool}/shared/tool-component.d.ts +0 -0
- /package/{lib/tool → tool}/shared/tool.service.d.ts +0 -0
- /package/{lib/tool → tool}/toolbox/toolbox.animation.d.ts +0 -0
- /package/{lib/widget → widget}/shared/index.d.ts +0 -0
- /package/{lib/widget → widget}/shared/widget.interfaces.d.ts +0 -0
- /package/{lib/workspace → workspace}/shared/index.d.ts +0 -0
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
import { ReplaySubject } from 'rxjs';
|
|
2
|
+
import { getEntityId } from './entity.utils';
|
|
3
|
+
/**
|
|
4
|
+
* This class is used to track a store's entities state
|
|
5
|
+
*/
|
|
6
|
+
export class EntityStateManager {
|
|
7
|
+
options;
|
|
8
|
+
/**
|
|
9
|
+
* State index
|
|
10
|
+
*/
|
|
11
|
+
index = new Map();
|
|
12
|
+
/**
|
|
13
|
+
* Change emitter
|
|
14
|
+
*/
|
|
15
|
+
change$ = new ReplaySubject(1);
|
|
16
|
+
/**
|
|
17
|
+
* Method to get an entity's id
|
|
18
|
+
*/
|
|
19
|
+
getKey;
|
|
20
|
+
constructor(options = {}) {
|
|
21
|
+
this.options = options;
|
|
22
|
+
this.getKey = options.getKey ? options.getKey : getEntityId;
|
|
23
|
+
this.next();
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Clear state
|
|
27
|
+
*/
|
|
28
|
+
clear() {
|
|
29
|
+
if (this.index.size > 0) {
|
|
30
|
+
this.index.clear();
|
|
31
|
+
this.next();
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Get an entity's state
|
|
36
|
+
* @param entity Entity
|
|
37
|
+
* @returns State
|
|
38
|
+
*/
|
|
39
|
+
get(entity) {
|
|
40
|
+
return (this.index.get(this.getKey(entity)) || {});
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Set an entity's state
|
|
44
|
+
* @param entity Entity
|
|
45
|
+
* @param state State
|
|
46
|
+
*/
|
|
47
|
+
set(entity, state) {
|
|
48
|
+
this.setMany([entity], state);
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Set many entitie's state
|
|
52
|
+
* @param entitie Entities
|
|
53
|
+
* @param state State
|
|
54
|
+
*/
|
|
55
|
+
setMany(entities, state) {
|
|
56
|
+
entities.forEach((entity) => {
|
|
57
|
+
this.index.set(this.getKey(entity), Object.assign({}, state));
|
|
58
|
+
});
|
|
59
|
+
this.next();
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Set state of all entities that already have a state. This is not
|
|
63
|
+
* the same as setting the state of all the store's entities.
|
|
64
|
+
* @param state State
|
|
65
|
+
*/
|
|
66
|
+
setAll(state) {
|
|
67
|
+
Array.from(this.index.keys()).forEach((key) => {
|
|
68
|
+
this.index.set(key, Object.assign({}, state));
|
|
69
|
+
});
|
|
70
|
+
this.next();
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Update an entity's state
|
|
74
|
+
* @param entity Entity
|
|
75
|
+
* @param changes State changes
|
|
76
|
+
*/
|
|
77
|
+
update(entity, changes, exclusive = false) {
|
|
78
|
+
this.updateMany([entity], changes, exclusive);
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Update many entitie's state
|
|
82
|
+
* @param entitie Entities
|
|
83
|
+
* @param changes State changes
|
|
84
|
+
*/
|
|
85
|
+
updateMany(entities, changes, exclusive = false) {
|
|
86
|
+
if (exclusive === true) {
|
|
87
|
+
return this.updateManyExclusive(entities, changes);
|
|
88
|
+
}
|
|
89
|
+
entities.forEach((entity) => {
|
|
90
|
+
const state = Object.assign({}, this.get(entity), changes);
|
|
91
|
+
this.index.set(this.getKey(entity), state);
|
|
92
|
+
});
|
|
93
|
+
this.next();
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Reversee an entity's state
|
|
97
|
+
* @param entity Entity
|
|
98
|
+
* @param keys State keys to reverse
|
|
99
|
+
*/
|
|
100
|
+
reverse(entity, keys) {
|
|
101
|
+
this.reverseMany([entity], keys);
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Reverse many entitie's state
|
|
105
|
+
* @param entitie Entities
|
|
106
|
+
* @param keys State keys to reverse
|
|
107
|
+
*/
|
|
108
|
+
reverseMany(entities, keys) {
|
|
109
|
+
entities.forEach((entity) => {
|
|
110
|
+
const currentState = this.get(entity);
|
|
111
|
+
const changes = keys.reduce((acc, key) => {
|
|
112
|
+
acc[key] = currentState[key] || false;
|
|
113
|
+
return acc;
|
|
114
|
+
}, {});
|
|
115
|
+
const reversedChanges = this.reverseChanges(changes);
|
|
116
|
+
const state = Object.assign({}, currentState, reversedChanges);
|
|
117
|
+
this.index.set(this.getKey(entity), state);
|
|
118
|
+
});
|
|
119
|
+
this.next();
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Update state of all entities that already have a state. This is not
|
|
123
|
+
* the same as updating the state of all the store's entities.
|
|
124
|
+
* @param changes State
|
|
125
|
+
*/
|
|
126
|
+
updateAll(changes) {
|
|
127
|
+
const allKeys = this.getAllKeys();
|
|
128
|
+
Array.from(allKeys).forEach((key) => {
|
|
129
|
+
const state = Object.assign({}, this.index.get(key), changes);
|
|
130
|
+
this.index.set(key, state);
|
|
131
|
+
});
|
|
132
|
+
this.next();
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* When some state changes are flagged as 'exclusive', reverse
|
|
136
|
+
* the state of all other entities. Changes are reversable when
|
|
137
|
+
* they are boolean.
|
|
138
|
+
* @param entitie Entities
|
|
139
|
+
* @param changes State changes
|
|
140
|
+
*/
|
|
141
|
+
updateManyExclusive(entities, changes) {
|
|
142
|
+
const reverseChanges = this.reverseChanges(changes);
|
|
143
|
+
const keys = entities.map((entity) => this.getKey(entity));
|
|
144
|
+
const allKeys = new Set(keys.concat(Array.from(this.getAllKeys())));
|
|
145
|
+
allKeys.forEach((key) => {
|
|
146
|
+
const state = this.index.get(key) || {};
|
|
147
|
+
if (keys.indexOf(key) >= 0) {
|
|
148
|
+
this.index.set(key, Object.assign({}, state, changes));
|
|
149
|
+
}
|
|
150
|
+
else {
|
|
151
|
+
// Update only if the reverse changes would modify
|
|
152
|
+
// a key already present in the current state
|
|
153
|
+
const shouldUpdate = Object.keys(reverseChanges).some((changeKey) => {
|
|
154
|
+
return (state[changeKey] !== undefined &&
|
|
155
|
+
state[changeKey] !== reverseChanges[changeKey]);
|
|
156
|
+
});
|
|
157
|
+
if (shouldUpdate === true) {
|
|
158
|
+
this.index.set(key, Object.assign({}, state, reverseChanges));
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
});
|
|
162
|
+
this.next();
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* Compute a 'reversed' version of some state changes.
|
|
166
|
+
* Changes are reversable when they are boolean.
|
|
167
|
+
* @param changes State changes
|
|
168
|
+
* @returns Reversed state changes
|
|
169
|
+
*/
|
|
170
|
+
reverseChanges(changes) {
|
|
171
|
+
return Object.entries(changes).reduce((reverseChanges, bunch) => {
|
|
172
|
+
const [changeKey, value] = bunch;
|
|
173
|
+
if (typeof value === typeof true) {
|
|
174
|
+
reverseChanges[changeKey] = !value;
|
|
175
|
+
}
|
|
176
|
+
return reverseChanges;
|
|
177
|
+
}, {});
|
|
178
|
+
}
|
|
179
|
+
/**
|
|
180
|
+
* Return all the keys in that state and in the store it's bound to, if any.
|
|
181
|
+
* @returns Set of keys
|
|
182
|
+
*/
|
|
183
|
+
getAllKeys() {
|
|
184
|
+
const storeKeys = Array.from(this.options?.index?.keys() ?? []);
|
|
185
|
+
return new Set(Array.from(this.index.keys()).concat(storeKeys));
|
|
186
|
+
}
|
|
187
|
+
/**
|
|
188
|
+
* Emit 'change' event
|
|
189
|
+
*/
|
|
190
|
+
next() {
|
|
191
|
+
this.change$.next();
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vZW50aXR5L3NyYy9zaGFyZWQvc3RhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUdyQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFPN0M7O0dBRUc7QUFDSCxNQUFNLE9BQU8sa0JBQWtCO0lBbUJUO0lBZnBCOztPQUVHO0lBQ00sS0FBSyxHQUFHLElBQUksR0FBRyxFQUFnQixDQUFDO0lBRXpDOztPQUVHO0lBQ00sT0FBTyxHQUFHLElBQUksYUFBYSxDQUFPLENBQUMsQ0FBQyxDQUFDO0lBRTlDOztPQUVHO0lBQ00sTUFBTSxDQUFtQjtJQUVsQyxZQUFvQixVQUF3QyxFQUFFO1FBQTFDLFlBQU8sR0FBUCxPQUFPLENBQW1DO1FBQzVELElBQUksQ0FBQyxNQUFNLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDO1FBRTVELElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNkLENBQUM7SUFFRDs7T0FFRztJQUNILEtBQUs7UUFDSCxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDbkIsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ2QsQ0FBQztJQUNILENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsR0FBRyxDQUFDLE1BQVM7UUFDWCxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBTSxDQUFDO0lBQzFELENBQUM7SUFF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QTBCLEVBQUUsS0FBb0IsRUFBRSxFQUFFO1lBQ25ELE1BQU0sQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLEdBQUcsS0FBSyxDQUFDO1lBQ2pDLElBQUksT0FBTyxLQUFLLEtBQUssT0FBTyxJQUFJLEVBQUUsQ0FBQztnQkFDaEMsY0FBeUIsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQztZQUNqRCxDQUFDO1lBQ0QsT0FBTyxjQUFjLENBQUM7UUFDeEIsQ0FBQyxFQUNELEVBQUUsQ0FDSCxDQUFDO0lBQ0osQ0FBQztJQUVEOzs7T0FHRztJQUNLLFVBQVU7UUFDaEIsTUFBTSxTQUFTLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUNoRSxPQUFPLElBQUksR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFFRDs7T0FFRztJQUNLLElBQUk7UUFDVixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3RCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJlcGxheVN1YmplY3QgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgRW50aXR5S2V5LCBFbnRpdHlTdGF0ZSB9IGZyb20gJy4vZW50aXR5LmludGVyZmFjZXMnO1xuaW1wb3J0IHsgZ2V0RW50aXR5SWQgfSBmcm9tICcuL2VudGl0eS51dGlscyc7XG5cbmludGVyZmFjZSBFbnRpdHlTdGF0ZU1hbmFnZXJPcHRpb25zPEUgZXh0ZW5kcyBvYmplY3Q+IHtcbiAgZ2V0S2V5PzogKGVudGl0eTogb2JqZWN0KSA9PiBFbnRpdHlLZXk7XG4gIGluZGV4PzogTWFwPEVudGl0eUtleSwgRT47XG59XG5cbi8qKlxuICogVGhpcyBjbGFzcyBpcyB1c2VkIHRvIHRyYWNrIGEgc3RvcmUncyBlbnRpdGllcyBzdGF0ZVxuICovXG5leHBvcnQgY2xhc3MgRW50aXR5U3RhdGVNYW5hZ2VyPFxuICBFIGV4dGVuZHMgb2JqZWN0LFxuICBTIGV4dGVuZHMgRW50aXR5U3RhdGUgPSBFbnRpdHlTdGF0ZVxuPiB7XG4gIC8qKlxuICAgKiBTdGF0ZSBpbmRleFxuICAgKi9cbiAgcmVhZG9ubHkgaW5kZXggPSBuZXcgTWFwPEVudGl0eUtleSwgUz4oKTtcblxuICAvKipcbiAgICogQ2hhbmdlIGVtaXR0ZXJcbiAgICovXG4gIHJlYWRvbmx5IGNoYW5nZSQgPSBuZXcgUmVwbGF5U3ViamVjdDx2b2lkPigxKTtcblxuICAvKipcbiAgICogTWV0aG9kIHRvIGdldCBhbiBlbnRpdHkncyBpZFxuICAgKi9cbiAgcmVhZG9ubHkgZ2V0S2V5OiAoRSkgPT4gRW50aXR5S2V5O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgb3B0aW9uczogRW50aXR5U3RhdGVNYW5hZ2VyT3B0aW9uczxFPiA9IHt9KSB7XG4gICAgdGhpcy5nZXRLZXkgPSBvcHRpb25zLmdldEtleSA/IG9wdGlvbnMuZ2V0S2V5IDogZ2V0RW50aXR5SWQ7XG5cbiAgICB0aGlzLm5leHQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDbGVhciBzdGF0ZVxuICAgKi9cbiAgY2xlYXIoKSB7XG4gICAgaWYgKHRoaXMuaW5kZXguc2l6ZSA+IDApIHtcbiAgICAgIHRoaXMuaW5kZXguY2xlYXIoKTtcbiAgICAgIHRoaXMubmV4dCgpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgYW4gZW50aXR5J3Mgc3RhdGVcbiAgICogQHBhcmFtIGVudGl0eSBFbnRpdHlcbiAgICogQHJldHVybnMgU3RhdGVcbiAgICovXG4gIGdldChlbnRpdHk6IEUpOiBTIHtcbiAgICByZXR1cm4gKHRoaXMuaW5kZXguZ2V0KHRoaXMuZ2V0S2V5KGVudGl0eSkpIHx8IHt9KSBhcyBTO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCBhbiBlbnRpdHkncyBzdGF0ZVxuICAgKiBAcGFyYW0gZW50aXR5IEVudGl0eVxuICAgKiBAcGFyYW0gc3RhdGUgU3RhdGVcbiAgICovXG4gIHNldChlbnRpdHk6IEUsIHN0YXRlOiBTKSB7XG4gICAgdGhpcy5zZXRNYW55KFtlbnRpdHldLCBzdGF0ZSk7XG4gIH1cblxuICAvKipcbiAgICogU2V0IG1hbnkgZW50aXRpZSdzIHN0YXRlXG4gICAqIEBwYXJhbSBlbnRpdGllIEVudGl0aWVzXG4gICAqIEBwYXJhbSBzdGF0ZSBTdGF0ZVxuICAgKi9cbiAgc2V0TWFueShlbnRpdGllczogRVtdLCBzdGF0ZTogUykge1xuICAgIGVudGl0aWVzLmZvckVhY2goKGVudGl0eTogRSkgPT4ge1xuICAgICAgdGhpcy5pbmRleC5zZXQodGhpcy5nZXRLZXkoZW50aXR5KSwgT2JqZWN0LmFzc2lnbih7fSwgc3RhdGUpKTtcbiAgICB9KTtcbiAgICB0aGlzLm5leHQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgc3RhdGUgb2YgYWxsIGVudGl0aWVzIHRoYXQgYWxyZWFkeSBoYXZlIGEgc3RhdGUuIFRoaXMgaXMgbm90XG4gICAqIHRoZSBzYW1lIGFzIHNldHRpbmcgdGhlIHN0YXRlIG9mIGFsbCB0aGUgc3RvcmUncyBlbnRpdGllcy5cbiAgICogQHBhcmFtIHN0YXRlIFN0YXRlXG4gICAqL1xuICBzZXRBbGwoc3RhdGU6IFMpIHtcbiAgICBBcnJheS5mcm9tKHRoaXMuaW5kZXgua2V5cygpKS5mb3JFYWNoKChrZXk6IEVudGl0eUtleSkgPT4ge1xuICAgICAgdGhpcy5pbmRleC5zZXQoa2V5LCBPYmplY3QuYXNzaWduKHt9LCBzdGF0ZSkpO1xuICAgIH0pO1xuICAgIHRoaXMubmV4dCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZSBhbiBlbnRpdHkncyBzdGF0ZVxuICAgKiBAcGFyYW0gZW50aXR5IEVudGl0eVxuICAgKiBAcGFyYW0gY2hhbmdlcyBTdGF0ZSBjaGFuZ2VzXG4gICAqL1xuICB1cGRhdGUoZW50aXR5OiBFLCBjaGFuZ2VzOiBQYXJ0aWFsPFM+LCBleGNsdXNpdmUgPSBmYWxzZSkge1xuICAgIHRoaXMudXBkYXRlTWFueShbZW50aXR5XSwgY2hhbmdlcywgZXhjbHVzaXZlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGUgbWFueSBlbnRpdGllJ3Mgc3RhdGVcbiAgICogQHBhcmFtIGVudGl0aWUgRW50aXRpZXNcbiAgICogQHBhcmFtIGNoYW5nZXMgU3RhdGUgY2hhbmdlc1xuICAgKi9cbiAgdXBkYXRlTWFueShlbnRpdGllczogRVtdLCBjaGFuZ2VzOiBQYXJ0aWFsPFM+LCBleGNsdXNpdmUgPSBmYWxzZSkge1xuICAgIGlmIChleGNsdXNpdmUgPT09IHRydWUpIHtcbiAgICAgIHJldHVybiB0aGlzLnVwZGF0ZU1hbnlFeGNsdXNpdmUoZW50aXRpZXMsIGNoYW5nZXMpO1xuICAgIH1cblxuICAgIGVudGl0aWVzLmZvckVhY2goKGVudGl0eTogRSkgPT4ge1xuICAgICAgY29uc3Qgc3RhdGUgPSBPYmplY3QuYXNzaWduKHt9LCB0aGlzLmdldChlbnRpdHkpLCBjaGFuZ2VzKTtcbiAgICAgIHRoaXMuaW5kZXguc2V0KHRoaXMuZ2V0S2V5KGVudGl0eSksIHN0YXRlKTtcbiAgICB9KTtcbiAgICB0aGlzLm5leHQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXZlcnNlZSBhbiBlbnRpdHkncyBzdGF0ZVxuICAgKiBAcGFyYW0gZW50aXR5IEVudGl0eVxuICAgKiBAcGFyYW0ga2V5cyBTdGF0ZSBrZXlzIHRvIHJldmVyc2VcbiAgICovXG4gIHJldmVyc2UoZW50aXR5OiBFLCBrZXlzOiBzdHJpbmdbXSkge1xuICAgIHRoaXMucmV2ZXJzZU1hbnkoW2VudGl0eV0sIGtleXMpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldmVyc2UgbWFueSBlbnRpdGllJ3Mgc3RhdGVcbiAgICogQHBhcmFtIGVudGl0aWUgRW50aXRpZXNcbiAgICogQHBhcmFtIGtleXMgU3RhdGUga2V5cyB0byByZXZlcnNlXG4gICAqL1xuICByZXZlcnNlTWFueShlbnRpdGllczogRVtdLCBrZXlzOiBzdHJpbmdbXSkge1xuICAgIGVudGl0aWVzLmZvckVhY2goKGVudGl0eTogRSkgPT4ge1xuICAgICAgY29uc3QgY3VycmVudFN0YXRlID0gdGhpcy5nZXQoZW50aXR5KTtcbiAgICAgIGNvbnN0IGNoYW5nZXMgPSBrZXlzLnJlZHVjZShcbiAgICAgICAgKGFjYzogeyBba2V5OiBzdHJpbmddOiBib29sZWFuIH0sIGtleTogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgYWNjW2tleV0gPSBjdXJyZW50U3RhdGVba2V5XSB8fCBmYWxzZTtcbiAgICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgICB9LFxuICAgICAgICB7fVxuICAgICAgKSBhcyBQYXJ0aWFsPFM+O1xuICAgICAgY29uc3QgcmV2ZXJzZWRDaGFuZ2VzID0gdGhpcy5yZXZlcnNlQ2hhbmdlcyhjaGFuZ2VzKTtcbiAgICAgIGNvbnN0IHN0YXRlID0gT2JqZWN0LmFzc2lnbih7fSwgY3VycmVudFN0YXRlLCByZXZlcnNlZENoYW5nZXMpO1xuICAgICAgdGhpcy5pbmRleC5zZXQodGhpcy5nZXRLZXkoZW50aXR5KSwgc3RhdGUpO1xuICAgIH0pO1xuICAgIHRoaXMubmV4dCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZSBzdGF0ZSBvZiBhbGwgZW50aXRpZXMgdGhhdCBhbHJlYWR5IGhhdmUgYSBzdGF0ZS4gVGhpcyBpcyBub3RcbiAgICogdGhlIHNhbWUgYXMgdXBkYXRpbmcgdGhlIHN0YXRlIG9mIGFsbCB0aGUgc3RvcmUncyBlbnRpdGllcy5cbiAgICogQHBhcmFtIGNoYW5nZXMgU3RhdGVcbiAgICovXG4gIHVwZGF0ZUFsbChjaGFuZ2VzOiBQYXJ0aWFsPFM+KSB7XG4gICAgY29uc3QgYWxsS2V5cyA9IHRoaXMuZ2V0QWxsS2V5cygpO1xuICAgIEFycmF5LmZyb20oYWxsS2V5cykuZm9yRWFjaCgoa2V5OiBFbnRpdHlLZXkpID0+IHtcbiAgICAgIGNvbnN0IHN0YXRlID0gT2JqZWN0LmFzc2lnbih7fSwgdGhpcy5pbmRleC5nZXQoa2V5KSwgY2hhbmdlcyk7XG4gICAgICB0aGlzLmluZGV4LnNldChrZXksIHN0YXRlKTtcbiAgICB9KTtcbiAgICB0aGlzLm5leHQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBXaGVuIHNvbWUgc3RhdGUgY2hhbmdlcyBhcmUgZmxhZ2dlZCBhcyAnZXhjbHVzaXZlJywgcmV2ZXJzZVxuICAgKiB0aGUgc3RhdGUgb2YgYWxsIG90aGVyIGVudGl0aWVzLiBDaGFuZ2VzIGFyZSByZXZlcnNhYmxlIHdoZW5cbiAgICogdGhleSBhcmUgYm9vbGVhbi5cbiAgICogQHBhcmFtIGVudGl0aWUgRW50aXRpZXNcbiAgICogQHBhcmFtIGNoYW5nZXMgU3RhdGUgY2hhbmdlc1xuICAgKi9cbiAgcHJpdmF0ZSB1cGRhdGVNYW55RXhjbHVzaXZlKGVudGl0aWVzOiBFW10sIGNoYW5nZXM6IFBhcnRpYWw8Uz4pIHtcbiAgICBjb25zdCByZXZlcnNlQ2hhbmdlcyA9IHRoaXMucmV2ZXJzZUNoYW5nZXMoY2hhbmdlcyk7XG5cbiAgICBjb25zdCBrZXlzID0gZW50aXRpZXMubWFwKChlbnRpdHk6IEUpID0+IHRoaXMuZ2V0S2V5KGVudGl0eSkpO1xuICAgIGNvbnN0IGFsbEtleXMgPSBuZXcgU2V0KGtleXMuY29uY2F0KEFycmF5LmZyb20odGhpcy5nZXRBbGxLZXlzKCkpKSk7XG4gICAgYWxsS2V5cy5mb3JFYWNoKChrZXk6IEVudGl0eUtleSkgPT4ge1xuICAgICAgY29uc3Qgc3RhdGUgPSB0aGlzLmluZGV4LmdldChrZXkpIHx8ICh7fSBhcyBTKTtcblxuICAgICAgaWYgKGtleXMuaW5kZXhPZihrZXkpID49IDApIHtcbiAgICAgICAgdGhpcy5pbmRleC5zZXQoa2V5LCBPYmplY3QuYXNzaWduKHt9LCBzdGF0ZSwgY2hhbmdlcykpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gVXBkYXRlIG9ubHkgaWYgdGhlIHJldmVyc2UgY2hhbmdlcyB3b3VsZCBtb2RpZnlcbiAgICAgICAgLy8gYSBrZXkgYWxyZWFkeSBwcmVzZW50IGluIHRoZSBjdXJyZW50IHN0YXRlXG4gICAgICAgIGNvbnN0IHNob3VsZFVwZGF0ZSA9IE9iamVjdC5rZXlzKHJldmVyc2VDaGFuZ2VzKS5zb21lKFxuICAgICAgICAgIChjaGFuZ2VLZXk6IHN0cmluZykgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgc3RhdGVbY2hhbmdlS2V5XSAhPT0gdW5kZWZpbmVkICYmXG4gICAgICAgICAgICAgIHN0YXRlW2NoYW5nZUtleV0gIT09IHJldmVyc2VDaGFuZ2VzW2NoYW5nZUtleV1cbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfVxuICAgICAgICApO1xuICAgICAgICBpZiAoc2hvdWxkVXBkYXRlID09PSB0cnVlKSB7XG4gICAgICAgICAgdGhpcy5pbmRleC5zZXQoa2V5LCBPYmplY3QuYXNzaWduKHt9LCBzdGF0ZSwgcmV2ZXJzZUNoYW5nZXMpKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuXG4gICAgdGhpcy5uZXh0KCk7XG4gIH1cblxuICAvKipcbiAgICogQ29tcHV0ZSBhICdyZXZlcnNlZCcgdmVyc2lvbiBvZiBzb21lIHN0YXRlIGNoYW5nZXMuXG4gICAqIENoYW5nZXMgYXJlIHJldmVyc2FibGUgd2hlbiB0aGV5IGFyZSBib29sZWFuLlxuICAgKiBAcGFyYW0gY2hhbmdlcyBTdGF0ZSBjaGFuZ2VzXG4gICAqIEByZXR1cm5zIFJldmVyc2VkIHN0YXRlIGNoYW5nZXNcbiAgICovXG4gIHByaXZhdGUgcmV2ZXJzZUNoYW5nZXMoY2hhbmdlczogUGFydGlhbDxTPik6IFBhcnRpYWw8Uz4ge1xuICAgIHJldHVybiBPYmplY3QuZW50cmllcyhjaGFuZ2VzKS5yZWR1Y2UoXG4gICAgICAocmV2ZXJzZUNoYW5nZXM6IFBhcnRpYWw8Uz4sIGJ1bmNoOiBbc3RyaW5nLCBhbnldKSA9PiB7XG4gICAgICAgIGNvbnN0IFtjaGFuZ2VLZXksIHZhbHVlXSA9IGJ1bmNoO1xuICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSB0eXBlb2YgdHJ1ZSkge1xuICAgICAgICAgIChyZXZlcnNlQ2hhbmdlcyBhcyBvYmplY3QpW2NoYW5nZUtleV0gPSAhdmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJldmVyc2VDaGFuZ2VzO1xuICAgICAgfSxcbiAgICAgIHt9XG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gYWxsIHRoZSBrZXlzIGluIHRoYXQgc3RhdGUgYW5kIGluIHRoZSBzdG9yZSBpdCdzIGJvdW5kIHRvLCBpZiBhbnkuXG4gICAqIEByZXR1cm5zIFNldCBvZiBrZXlzXG4gICAqL1xuICBwcml2YXRlIGdldEFsbEtleXMoKTogU2V0PEVudGl0eUtleT4ge1xuICAgIGNvbnN0IHN0b3JlS2V5cyA9IEFycmF5LmZyb20odGhpcy5vcHRpb25zPy5pbmRleD8ua2V5cygpID8/IFtdKTtcbiAgICByZXR1cm4gbmV3IFNldChBcnJheS5mcm9tKHRoaXMuaW5kZXgua2V5cygpKS5jb25jYXQoc3RvcmVLZXlzKSk7XG4gIH1cblxuICAvKipcbiAgICogRW1pdCAnY2hhbmdlJyBldmVudFxuICAgKi9cbiAgcHJpdmF0ZSBuZXh0KCkge1xuICAgIHRoaXMuY2hhbmdlJC5uZXh0KCk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,322 @@
|
|
|
1
|
+
import { BehaviorSubject } from 'rxjs';
|
|
2
|
+
import { getEntityId, getEntityProperty } from './entity.utils';
|
|
3
|
+
import { EntityStateManager } from './state';
|
|
4
|
+
import { EntityView } from './view';
|
|
5
|
+
/**
|
|
6
|
+
* An entity store class holds any number of entities
|
|
7
|
+
* as well as their state. It can be observed, filtered and sorted and
|
|
8
|
+
* provides methods to insert, update or delete entities.
|
|
9
|
+
*/
|
|
10
|
+
export class EntityStore {
|
|
11
|
+
/**
|
|
12
|
+
* Observable of the raw entities
|
|
13
|
+
*/
|
|
14
|
+
entities$ = new BehaviorSubject([]);
|
|
15
|
+
/**
|
|
16
|
+
* Number of entities
|
|
17
|
+
*/
|
|
18
|
+
count$ = new BehaviorSubject(0);
|
|
19
|
+
get count() {
|
|
20
|
+
return this.count$.value;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Whether the store is empty
|
|
24
|
+
*/
|
|
25
|
+
empty$ = new BehaviorSubject(true);
|
|
26
|
+
get empty() {
|
|
27
|
+
return this.empty$.value;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Entity store state
|
|
31
|
+
*/
|
|
32
|
+
state;
|
|
33
|
+
/**
|
|
34
|
+
* View of all the entities
|
|
35
|
+
*/
|
|
36
|
+
view;
|
|
37
|
+
/**
|
|
38
|
+
* View of all the entities and their state
|
|
39
|
+
*/
|
|
40
|
+
stateView;
|
|
41
|
+
/**
|
|
42
|
+
* Method to get an entity's id
|
|
43
|
+
*/
|
|
44
|
+
getKey;
|
|
45
|
+
/**
|
|
46
|
+
* Method to get an entity's named property
|
|
47
|
+
*/
|
|
48
|
+
getProperty;
|
|
49
|
+
/**
|
|
50
|
+
* Store index
|
|
51
|
+
*/
|
|
52
|
+
get index() {
|
|
53
|
+
return this._index;
|
|
54
|
+
}
|
|
55
|
+
_index;
|
|
56
|
+
/**
|
|
57
|
+
* Store index
|
|
58
|
+
*/
|
|
59
|
+
get pristine() {
|
|
60
|
+
return this._pristine;
|
|
61
|
+
}
|
|
62
|
+
_pristine = true;
|
|
63
|
+
/**
|
|
64
|
+
* Strategies
|
|
65
|
+
*/
|
|
66
|
+
strategies = [];
|
|
67
|
+
constructor(entities, options = {}) {
|
|
68
|
+
this.getKey = options.getKey ? options.getKey : getEntityId;
|
|
69
|
+
this.getProperty = options.getProperty
|
|
70
|
+
? options.getProperty
|
|
71
|
+
: getEntityProperty;
|
|
72
|
+
this.state = this.createStateManager();
|
|
73
|
+
this.view = this.createDataView();
|
|
74
|
+
this.stateView = this.createStateView();
|
|
75
|
+
this.view.lift();
|
|
76
|
+
this.stateView.lift();
|
|
77
|
+
if (entities.length > 0) {
|
|
78
|
+
this.load(entities);
|
|
79
|
+
}
|
|
80
|
+
else {
|
|
81
|
+
this._index = this.generateIndex(entities);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Get an entity from the store by key
|
|
86
|
+
* @param key Key
|
|
87
|
+
* @returns Entity
|
|
88
|
+
*/
|
|
89
|
+
get(key) {
|
|
90
|
+
return this.index.get(key);
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Get all entities in the store
|
|
94
|
+
* @returns Array of entities
|
|
95
|
+
*/
|
|
96
|
+
all() {
|
|
97
|
+
return this.entities$.value;
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Set this store's entities
|
|
101
|
+
* @param entities Entities
|
|
102
|
+
*/
|
|
103
|
+
load(entities, pristine = true) {
|
|
104
|
+
this._index = this.generateIndex(entities);
|
|
105
|
+
this._pristine = pristine;
|
|
106
|
+
this.next();
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Clear the store's entities but keep the state and views intact.
|
|
110
|
+
* Views won't return any data but future data will be subject to the
|
|
111
|
+
* current views filter and sort
|
|
112
|
+
*/
|
|
113
|
+
softClear() {
|
|
114
|
+
if (this.index && this.index.size > 0) {
|
|
115
|
+
this.index.clear();
|
|
116
|
+
this._pristine = true;
|
|
117
|
+
this.next();
|
|
118
|
+
}
|
|
119
|
+
else if (this.index) {
|
|
120
|
+
this.updateCount();
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Clear the store's entities, state and views
|
|
125
|
+
*/
|
|
126
|
+
clear() {
|
|
127
|
+
this.stateView.clear();
|
|
128
|
+
this.view.clear();
|
|
129
|
+
this.state.clear();
|
|
130
|
+
this.softClear();
|
|
131
|
+
}
|
|
132
|
+
destroy() {
|
|
133
|
+
this.stateView.destroy();
|
|
134
|
+
this.view.destroy();
|
|
135
|
+
this.clear();
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* Insert an entity into the store
|
|
139
|
+
* @param entity Entity
|
|
140
|
+
*/
|
|
141
|
+
insert(entity) {
|
|
142
|
+
this.insertMany([entity]);
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* Insert many entities into the store
|
|
146
|
+
* @param entities Entities
|
|
147
|
+
*/
|
|
148
|
+
insertMany(entities) {
|
|
149
|
+
entities.forEach((entity) => this.index.set(this.getKey(entity), entity));
|
|
150
|
+
this._pristine = false;
|
|
151
|
+
this.next();
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* Update or insert an entity into the store
|
|
155
|
+
* @param entity Entity
|
|
156
|
+
*/
|
|
157
|
+
update(entity) {
|
|
158
|
+
this.updateMany([entity]);
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* Update or insert many entities into the store
|
|
162
|
+
* @param entities Entities
|
|
163
|
+
*/
|
|
164
|
+
updateMany(entities) {
|
|
165
|
+
entities.forEach((entity) => this.index.set(this.getKey(entity), entity));
|
|
166
|
+
this._pristine = false;
|
|
167
|
+
this.next();
|
|
168
|
+
}
|
|
169
|
+
/**
|
|
170
|
+
* Add a strategy to this store
|
|
171
|
+
* @param strategy Entity store strategy
|
|
172
|
+
* @returns Entity store
|
|
173
|
+
*/
|
|
174
|
+
addStrategy(strategy, activate = false) {
|
|
175
|
+
const existingStrategy = this.strategies.find((_strategy) => {
|
|
176
|
+
return strategy.constructor === _strategy.constructor;
|
|
177
|
+
});
|
|
178
|
+
if (existingStrategy !== undefined) {
|
|
179
|
+
throw new Error('A strategy of this type already exists on that EntityStore.');
|
|
180
|
+
}
|
|
181
|
+
this.strategies.push(strategy);
|
|
182
|
+
strategy.bindStore(this);
|
|
183
|
+
if (activate === true) {
|
|
184
|
+
strategy.activate();
|
|
185
|
+
}
|
|
186
|
+
return this;
|
|
187
|
+
}
|
|
188
|
+
/**
|
|
189
|
+
* Remove a strategy from this store
|
|
190
|
+
* @param strategy Entity store strategy
|
|
191
|
+
* @returns Entity store
|
|
192
|
+
*/
|
|
193
|
+
removeStrategy(strategy) {
|
|
194
|
+
const index = this.strategies.indexOf(strategy);
|
|
195
|
+
if (index >= 0) {
|
|
196
|
+
this.strategies.splice(index, 1);
|
|
197
|
+
strategy.unbindStore(this);
|
|
198
|
+
}
|
|
199
|
+
return this;
|
|
200
|
+
}
|
|
201
|
+
/**
|
|
202
|
+
* Return strategies of a given type
|
|
203
|
+
* @param type Entity store strategy class
|
|
204
|
+
* @returns Strategies
|
|
205
|
+
*/
|
|
206
|
+
getStrategyOfType(type) {
|
|
207
|
+
return this.strategies.find((strategy) => {
|
|
208
|
+
return strategy instanceof type;
|
|
209
|
+
});
|
|
210
|
+
}
|
|
211
|
+
/**
|
|
212
|
+
* Activate strategies of a given type
|
|
213
|
+
* @param type Entity store strategy class
|
|
214
|
+
*/
|
|
215
|
+
activateStrategyOfType(type) {
|
|
216
|
+
const strategy = this.getStrategyOfType(type);
|
|
217
|
+
if (strategy !== undefined) {
|
|
218
|
+
strategy.activate();
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
/**
|
|
222
|
+
* Deactivate strategies of a given type
|
|
223
|
+
* @param type Entity store strategy class
|
|
224
|
+
*/
|
|
225
|
+
deactivateStrategyOfType(type) {
|
|
226
|
+
const strategy = this.getStrategyOfType(type);
|
|
227
|
+
if (strategy !== undefined) {
|
|
228
|
+
strategy.deactivate();
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
/**
|
|
232
|
+
* Delete an entity from the store
|
|
233
|
+
* @param entity Entity
|
|
234
|
+
*/
|
|
235
|
+
delete(entity) {
|
|
236
|
+
this.deleteMany([entity]);
|
|
237
|
+
}
|
|
238
|
+
/**
|
|
239
|
+
* Delete many entities from the store
|
|
240
|
+
* @param entities Entities
|
|
241
|
+
*/
|
|
242
|
+
deleteMany(entities) {
|
|
243
|
+
entities.forEach((entity) => this.index.delete(this.getKey(entity)));
|
|
244
|
+
this._pristine = false;
|
|
245
|
+
this.next();
|
|
246
|
+
}
|
|
247
|
+
/**
|
|
248
|
+
* Generate a complete index of all the entities
|
|
249
|
+
* @param entities Entities
|
|
250
|
+
* @returns Index
|
|
251
|
+
*/
|
|
252
|
+
generateIndex(entities) {
|
|
253
|
+
const entries = entities.map((entity) => [this.getKey(entity), entity]);
|
|
254
|
+
return new Map(entries);
|
|
255
|
+
}
|
|
256
|
+
/**
|
|
257
|
+
* Push the index's entities into the entities$ observable
|
|
258
|
+
*/
|
|
259
|
+
next() {
|
|
260
|
+
this.entities$.next(Array.from(this.index.values()));
|
|
261
|
+
this.updateCount();
|
|
262
|
+
}
|
|
263
|
+
/**
|
|
264
|
+
* Update the store's count and empty
|
|
265
|
+
*/
|
|
266
|
+
updateCount() {
|
|
267
|
+
const count = this.index.size;
|
|
268
|
+
const empty = count === 0;
|
|
269
|
+
this.count$.next(count);
|
|
270
|
+
this.empty$.next(empty);
|
|
271
|
+
}
|
|
272
|
+
/**
|
|
273
|
+
* Create the entity state manager
|
|
274
|
+
* @returns EntityStateManager
|
|
275
|
+
*/
|
|
276
|
+
createStateManager() {
|
|
277
|
+
return new EntityStateManager({
|
|
278
|
+
getKey: this.getKey,
|
|
279
|
+
index: this.index
|
|
280
|
+
});
|
|
281
|
+
}
|
|
282
|
+
/**
|
|
283
|
+
* Create the data view
|
|
284
|
+
* @returns EntityView<E>
|
|
285
|
+
*/
|
|
286
|
+
createDataView() {
|
|
287
|
+
return new EntityView(this.entities$);
|
|
288
|
+
}
|
|
289
|
+
/**
|
|
290
|
+
* Create the state view
|
|
291
|
+
* @returns EntityView<EntityRecord<E>>
|
|
292
|
+
*/
|
|
293
|
+
createStateView() {
|
|
294
|
+
return new EntityView(this.view.all$())
|
|
295
|
+
.join({
|
|
296
|
+
source: this.state.change$,
|
|
297
|
+
reduce: (entity) => {
|
|
298
|
+
const key = this.getKey(entity);
|
|
299
|
+
const state = this.state.get(entity);
|
|
300
|
+
const currentRecord = this.stateView.get(key);
|
|
301
|
+
if (currentRecord !== undefined &&
|
|
302
|
+
currentRecord.entity === entity &&
|
|
303
|
+
this.statesAreTheSame(currentRecord.state, state)) {
|
|
304
|
+
return currentRecord;
|
|
305
|
+
}
|
|
306
|
+
const revision = currentRecord ? currentRecord.revision + 1 : 1;
|
|
307
|
+
const ref = `${key}-${revision}`;
|
|
308
|
+
return { entity, state, revision, ref };
|
|
309
|
+
}
|
|
310
|
+
})
|
|
311
|
+
.createIndex((record) => this.getKey(record.entity));
|
|
312
|
+
}
|
|
313
|
+
statesAreTheSame(currentState, newState) {
|
|
314
|
+
if (currentState === newState) {
|
|
315
|
+
return true;
|
|
316
|
+
}
|
|
317
|
+
const currentStateIsEmpty = Object.keys(currentState).length === 0;
|
|
318
|
+
const newStateIsEmpty = Object.keys(newState).length === 0;
|
|
319
|
+
return currentStateIsEmpty && newStateIsEmpty;
|
|
320
|
+
}
|
|
321
|
+
}
|
|
322
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vZW50aXR5L3NyYy9zaGFyZWQvc3RvcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUd2QyxPQUFPLEVBQUUsV0FBVyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sU0FBUyxDQUFDO0FBRTdDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFPcEM7Ozs7R0FJRztBQUNILE1BQU0sT0FBTyxXQUFXO0lBSXRCOztPQUVHO0lBQ00sU0FBUyxHQUFHLElBQUksZUFBZSxDQUFNLEVBQUUsQ0FBQyxDQUFDO0lBRWxEOztPQUVHO0lBQ00sTUFBTSxHQUFHLElBQUksZUFBZSxDQUFTLENBQUMsQ0FBQyxDQUFDO0lBQ2pELElBQUksS0FBSztRQUNQLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7SUFDM0IsQ0FBQztJQUVEOztPQUVHO0lBQ00sTUFBTSxHQUFHLElBQUksZUFBZSxDQUFVLElBQUksQ0FBQyxDQUFDO0lBQ3JELElBQUksS0FBSztRQUNQLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7SUFDM0IsQ0FBQztJQUVEOztPQUVHO0lBQ00sS0FBSyxDQUEyQjtJQUV6Qzs7T0FFRztJQUNNLElBQUksQ0FBZ0I7SUFFN0I7O09BRUc7SUFDTSxTQUFTLENBQW9DO0lBRXREOztPQUVHO0lBQ00sTUFBTSxDQUFtQjtJQUVsQzs7T0FFRztJQUNNLFdBQVcsQ0FBMkI7SUFFL0M7O09BRUc7SUFDSCxJQUFJLEtBQUs7UUFDUCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDckIsQ0FBQztJQUNPLE1BQU0sQ0FBb0I7SUFFbEM7O09BRUc7SUFDSCxJ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LE1BQU0sUUFBUSxHQUFHLGFBQWEsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDaEUsTUFBTSxHQUFHLEdBQUcsR0FBRyxHQUFHLElBQUksUUFBUSxFQUFFLENBQUM7Z0JBQ2pDLE9BQU8sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsQ0FBQztZQUMxQyxDQUFDO1NBQ0YsQ0FBQzthQUNELFdBQVcsQ0FBQyxDQUFDLE1BQTBCLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFDN0UsQ0FBQztJQUVPLGdCQUFnQixDQUFDLFlBQWUsRUFBRSxRQUFXO1FBQ25ELElBQUksWUFBWSxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQzlCLE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztRQUVELE1BQU0sbUJBQW1CLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDO1FBQ25FLE1BQU0sZUFBZSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQztRQUMzRCxPQUFPLG1CQUFtQixJQUFJLGVBQWUsQ0FBQztJQUNoRCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgRW50aXR5S2V5LCBFbnRpdHlSZWNvcmQsIEVudGl0eVN0YXRlIH0gZnJvbSAnLi9lbnRpdHkuaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBnZXRFbnRpdHlJZCwgZ2V0RW50aXR5UHJvcGVydHkgfSBmcm9tICcuL2VudGl0eS51dGlscyc7XG5pbXBvcnQgeyBFbnRpdHlTdGF0ZU1hbmFnZXIgfSBmcm9tICcuL3N0YXRlJztcbmltcG9ydCB0eXBlIHsgRW50aXR5U3RvcmVTdHJhdGVneSB9IGZyb20gJy4vc3RyYXRlZ2llcy9zdHJhdGVneSc7XG5pbXBvcnQgeyBFbnRpdHlWaWV3IH0gZnJvbSAnLi92aWV3JztcblxuZXhwb3J0IGludGVyZmFjZSBFbnRpdHlTdG9yZU9wdGlvbnMge1xuICBnZXRLZXk/OiAoZW50aXR5OiBvYmplY3QpID0+IEVudGl0eUtleTtcbiAgZ2V0UHJvcGVydHk/OiAoZW50aXR5OiBvYmplY3QsIHByb3BlcnR5OiBzdHJpbmcpID0+IGFueTtcbn1cblxuLyoqXG4gKiBBbiBlbnRpdHkgc3RvcmUgY2xhc3MgaG9sZHMgYW55IG51bWJlciBvZiBlbnRpdGllc1xuICogYXMgd2VsbCBhcyB0aGVpciBzdGF0ZS4gSXQgY2FuIGJlIG9ic2VydmVkLCBmaWx0ZXJlZCBhbmQgc29ydGVkIGFuZFxuICogcHJvdmlkZXMgbWV0aG9kcyB0byBpbnNlcnQsIHVwZGF0ZSBvciBkZWxldGUgZW50aXRpZXMuXG4gKi9cbmV4cG9ydCBjbGFzcyBFbnRpdHlTdG9yZTxcbiAgRSBleHRlbmRzIG9iamVjdCA9IG9iamVjdCxcbiAgUyBleHRlbmRzIEVudGl0eVN0YXRlID0gRW50aXR5U3RhdGVcbj4ge1xuICAvKipcbiAgICogT2JzZXJ2YWJsZSBvZiB0aGUgcmF3IGVudGl0aWVzXG4gICAqL1xuICByZWFkb25seSBlbnRpdGllcyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEVbXT4oW10pO1xuXG4gIC8qKlxuICAgKiBOdW1iZXIgb2YgZW50aXRpZXNcbiAgICovXG4gIHJlYWRvbmx5IGNvdW50JCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8bnVtYmVyPigwKTtcbiAgZ2V0IGNvdW50KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuY291bnQkLnZhbHVlO1xuICB9XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIHN0b3JlIGlzIGVtcHR5XG4gICAqL1xuICByZWFkb25seSBlbXB0eSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KHRydWUpO1xuICBnZXQgZW1wdHkoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZW1wdHkkLnZhbHVlO1xuICB9XG5cbiAgLyoqXG4gICAqIEVudGl0eSBzdG9yZSBzdGF0ZVxuICAgKi9cbiAgcmVhZG9ubHkgc3RhdGU6IEVudGl0eVN0YXRlTWFuYWdlcjxFLCBTPjtcblxuICAvKipcbiAgICogVmlldyBvZiBhbGwgdGhlIGVudGl0aWVzXG4gICAqL1xuICByZWFkb25seSB2aWV3OiBFbnRpdHlWaWV3PEU+O1xuXG4gIC8qKlxuICAgKiBWaWV3IG9mIGFsbCB0aGUgZW50aXRpZXMgYW5kIHRoZWlyIHN0YXRlXG4gICAqL1xuICByZWFkb25seSBzdGF0ZVZpZXc6IEVudGl0eVZpZXc8RSwgRW50aXR5UmVjb3JkPEUsIFM+PjtcblxuICAvKipcbiAgICogTWV0aG9kIHRvIGdldCBhbiBlbnRpdHkncyBpZFxuICAgKi9cbiAgcmVhZG9ubHkgZ2V0S2V5OiAoRSkgPT4gRW50aXR5S2V5O1xuXG4gIC8qKlxuICAgKiBNZXRob2QgdG8gZ2V0IGFuIGVudGl0eSdzIG5hbWVkIHByb3BlcnR5XG4gICAqL1xuICByZWFkb25seSBnZXRQcm9wZXJ0eTogKEUsIHByb3A6IHN0cmluZykgPT4gYW55O1xuXG4gIC8qKlxuICAgKiBTdG9yZSBpbmRleFxuICAgKi9cbiAgZ2V0IGluZGV4KCk6IE1hcDxFbnRpdHlLZXksIEU+IHtcbiAgICByZXR1cm4gdGhpcy5faW5kZXg7XG4gIH1cbiAgcHJpdmF0ZSBfaW5kZXg6IE1hcDxFbnRpdHlLZXksIEU+O1xuXG4gIC8qKlxuICAgKiBTdG9yZSBpbmRleFxuICAgKi9cbiAgZ2V0IHByaXN0aW5lKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9wcmlzdGluZTtcbiAgfVxuICBwcml2YXRlIF9wcmlzdGluZTogYm9vbGVhbiA9IHRydWU7XG5cbiAgLyoqXG4gICAqIFN0cmF0ZWdpZXNcbiAgICovXG4gIHByaXZhdGUgc3RyYXRlZ2llczogRW50aXR5U3RvcmVTdHJhdGVneVtdID0gW107XG5cbiAgY29uc3RydWN0b3IoZW50aXRpZXM6IEVbXSwgb3B0aW9uczogRW50aXR5U3RvcmVPcHRpb25zID0ge30pIHtcbiAgICB0aGlzLmdldEtleSA9IG9wdGlvbnMuZ2V0S2V5ID8gb3B0aW9ucy5nZXRLZXkgOiBnZXRFbnRpdHlJZDtcbiAgICB0aGlzLmdldFByb3BlcnR5ID0gb3B0aW9ucy5nZXRQcm9wZXJ0eVxuICAgICAgPyBvcHRpb25zLmdldFByb3BlcnR5XG4gICAgICA6IGdldEVudGl0eVByb3BlcnR5O1xuXG4gICAgdGhpcy5zdGF0ZSA9IHRoaXMuY3JlYXRlU3RhdGVNYW5hZ2VyKCk7XG4gICAgdGhpcy52aWV3ID0gdGhpcy5jcmVhdGVEYXRhVmlldygpO1xuICAgIHRoaXMuc3RhdGVWaWV3ID0gdGhpcy5jcmVhdGVTdGF0ZVZpZXcoKTtcblxuICAgIHRoaXMudmlldy5saWZ0KCk7XG4gICAgdGhpcy5zdGF0ZVZpZXcubGlmdCgpO1xuXG4gICAgaWYgKGVudGl0aWVzLmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMubG9hZChlbnRpdGllcyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX2luZGV4ID0gdGhpcy5nZW5lcmF0ZUluZGV4KGVudGl0aWVzKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogR2V0IGFuIGVudGl0eSBmcm9tIHRoZSBzdG9yZSBieSBrZXlcbiAgICogQHBhcmFtIGtleSBLZXlcbiAgICogQHJldHVybnMgRW50aXR5XG4gICAqL1xuICBnZXQoa2V5OiBFbnRpdHlLZXkpOiBFIHtcbiAgICByZXR1cm4gdGhpcy5pbmRleC5nZXQoa2V5KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgYWxsIGVudGl0aWVzIGluIHRoZSBzdG9yZVxuICAgKiBAcmV0dXJucyBBcnJheSBvZiBlbnRpdGllc1xuICAgKi9cbiAgYWxsKCk6IEVbXSB7XG4gICAgcmV0dXJuIHRoaXMuZW50aXRpZXMkLnZhbHVlO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCB0aGlzIHN0b3JlJ3MgZW50aXRpZXNcbiAgICogQHBhcmFtIGVudGl0aWVzIEVudGl0aWVzXG4gICAqL1xuICBsb2FkKGVudGl0aWVzOiBFW10sIHByaXN0aW5lOiBib29sZWFuID0gdHJ1ZSkge1xuICAgIHRoaXMuX2luZGV4ID0gdGhpcy5nZW5lcmF0ZUluZGV4KGVudGl0aWVzKTtcbiAgICB0aGlzLl9wcmlzdGluZSA9IHByaXN0aW5lO1xuICAgIHRoaXMubmV4dCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIENsZWFyIHRoZSBzdG9yZSdzIGVudGl0aWVzIGJ1dCBrZWVwIHRoZSBzdGF0ZSBhbmQgdmlld3MgaW50YWN0LlxuICAgKiBWaWV3cyB3b24ndCByZXR1cm4gYW55IGRhdGEgYnV0IGZ1dHVyZSBkYXRhIHdpbGwgYmUgc3ViamVjdCB0byB0aGVcbiAgICogY3VycmVudCB2aWV3cyBmaWx0ZXIgYW5kIHNvcnRcbiAgICovXG4gIHNvZnRDbGVhcigpIHtcbiAgICBpZiAodGhpcy5pbmRleCAmJiB0aGlzLmluZGV4LnNpemUgPiAwKSB7XG4gICAgICB0aGlzLmluZGV4LmNsZWFyKCk7XG4gICAgICB0aGlzLl9wcmlzdGluZSA9IHRydWU7XG4gICAgICB0aGlzLm5leHQoKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuaW5kZXgpIHtcbiAgICAgIHRoaXMudXBkYXRlQ291bnQoKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ2xlYXIgdGhlIHN0b3JlJ3MgZW50aXRpZXMsIHN0YXRlIGFuZCB2aWV3c1xuICAgKi9cbiAgY2xlYXIoKSB7XG4gICAgdGhpcy5zdGF0ZVZpZXcuY2xlYXIoKTtcbiAgICB0aGlzLnZpZXcuY2xlYXIoKTtcbiAgICB0aGlzLnN0YXRlLmNsZWFyKCk7XG4gICAgdGhpcy5zb2Z0Q2xlYXIoKTtcbiAgfVxuXG4gIGRlc3Ryb3koKSB7XG4gICAgdGhpcy5zdGF0ZVZpZXcuZGVzdHJveSgpO1xuICAgIHRoaXMudmlldy5kZXN0cm95KCk7XG4gICAgdGhpcy5jbGVhcigpO1xuICB9XG5cbiAgLyoqXG4gICAqIEluc2VydCBhbiBlbnRpdHkgaW50byB0aGUgc3RvcmVcbiAgICogQHBhcmFtIGVudGl0eSBFbnRpdHlcbiAgICovXG4gIGluc2VydChlbnRpdHk6IEUpIHtcbiAgICB0aGlzLmluc2VydE1hbnkoW2VudGl0eV0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEluc2VydCBtYW55IGVudGl0aWVzIGludG8gdGhlIHN0b3JlXG4gICAqIEBwYXJhbSBlbnRpdGllcyBFbnRpdGllc1xuICAgKi9cbiAgaW5zZXJ0TWFueShlbnRpdGllczogRVtdKSB7XG4gICAgZW50aXRpZXMuZm9yRWFjaCgoZW50aXR5OiBFKSA9PlxuICAgICAgdGhpcy5pbmRleC5zZXQodGhpcy5nZXRLZXkoZW50aXR5KSwgZW50aXR5KVxuICAgICk7XG4gICAgdGhpcy5fcHJpc3RpbmUgPSBmYWxzZTtcbiAgICB0aGlzLm5leHQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGUgb3IgaW5zZXJ0IGFuIGVudGl0eSBpbnRvIHRoZSBzdG9yZVxuICAgKiBAcGFyYW0gZW50aXR5IEVudGl0eVxuICAgKi9cbiAgdXBkYXRlKGVudGl0eTogRSkge1xuICAgIHRoaXMudXBkYXRlTWFueShbZW50aXR5XSk7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlIG9yIGluc2VydCBtYW55IGVudGl0aWVzIGludG8gdGhlIHN0b3JlXG4gICAqIEBwYXJhbSBlbnRpdGllcyBFbnRpdGllc1xuICAgKi9cbiAgdXBkYXRlTWFueShlbnRpdGllczogRVtdKSB7XG4gICAgZW50aXRpZXMuZm9yRWFjaCgoZW50aXR5OiBFKSA9PlxuICAgICAgdGhpcy5pbmRleC5zZXQodGhpcy5nZXRLZXkoZW50aXR5KSwgZW50aXR5KVxuICAgICk7XG4gICAgdGhpcy5fcHJpc3RpbmUgPSBmYWxzZTtcbiAgICB0aGlzLm5leHQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgYSBzdHJhdGVneSB0byB0aGlzIHN0b3JlXG4gICAqIEBwYXJhbSBzdHJhdGVneSBFbnRpdHkgc3RvcmUgc3RyYXRlZ3lcbiAgICogQHJldHVybnMgRW50aXR5IHN0b3JlXG4gICAqL1xuICBhZGRTdHJhdGVneShcbiAgICBzdHJhdGVneTogRW50aXR5U3RvcmVTdHJhdGVneSxcbiAgICBhY3RpdmF0ZTogYm9vbGVhbiA9IGZhbHNlXG4gICk6IEVudGl0eVN0b3JlIHtcbiAgICBjb25zdCBleGlzdGluZ1N0cmF0ZWd5ID0gdGhpcy5zdHJhdGVnaWVzLmZpbmQoXG4gICAgICAoX3N0cmF0ZWd5OiBFbnRpdHlTdG9yZVN0cmF0ZWd5KSA9PiB7XG4gICAgICAgIHJldHVybiBzdHJhdGVneS5jb25zdHJ1Y3RvciA9PT0gX3N0cmF0ZWd5LmNvbnN0cnVjdG9yO1xuICAgICAgfVxuICAgICk7XG4gICAgaWYgKGV4aXN0aW5nU3RyYXRlZ3kgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAnQSBzdHJhdGVneSBvZiB0aGlzIHR5cGUgYWxyZWFkeSBleGlzdHMgb24gdGhhdCBFbnRpdHlTdG9yZS4nXG4gICAgICApO1xuICAgIH1cblxuICAgIHRoaXMuc3RyYXRlZ2llcy5wdXNoKHN0cmF0ZWd5KTtcbiAgICBzdHJhdGVneS5iaW5kU3RvcmUodGhpcyk7XG5cbiAgICBpZiAoYWN0aXZhdGUgPT09IHRydWUpIHtcbiAgICAgIHN0cmF0ZWd5LmFjdGl2YXRlKCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlIGEgc3RyYXRlZ3kgZnJvbSB0aGlzIHN0b3JlXG4gICAqIEBwYXJhbSBzdHJhdGVneSBFbnRpdHkgc3RvcmUgc3RyYXRlZ3lcbiAgICogQHJldHVybnMgRW50aXR5IHN0b3JlXG4gICAqL1xuICByZW1vdmVTdHJhdGVneShzdHJhdGVneTogRW50aXR5U3RvcmVTdHJhdGVneSk6IEVudGl0eVN0b3JlIHtcbiAgICBjb25zdCBpbmRleCA9IHRoaXMuc3RyYXRlZ2llcy5pbmRleE9mKHN0cmF0ZWd5KTtcbiAgICBpZiAoaW5kZXggPj0gMCkge1xuICAgICAgdGhpcy5zdHJhdGVnaWVzLnNwbGljZShpbmRleCwgMSk7XG4gICAgICBzdHJhdGVneS51bmJpbmRTdG9yZSh0aGlzKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIHN0cmF0ZWdpZXMgb2YgYSBnaXZlbiB0eXBlXG4gICAqIEBwYXJhbSB0eXBlIEVudGl0eSBzdG9yZSBzdHJhdGVneSBjbGFzc1xuICAgKiBAcmV0dXJucyBTdHJhdGVnaWVzXG4gICAqL1xuICBnZXRTdHJhdGVneU9mVHlwZSh0eXBlOiB0eXBlb2YgRW50aXR5U3RvcmVTdHJhdGVneSk6IEVudGl0eVN0b3JlU3RyYXRlZ3kge1xuICAgIHJldHVybiB0aGlzLnN0cmF0ZWdpZXMuZmluZCgoc3RyYXRlZ3k6IEVudGl0eVN0b3JlU3RyYXRlZ3kpID0+IHtcbiAgICAgIHJldHVybiBzdHJhdGVneSBpbnN0YW5jZW9mIHR5cGU7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQWN0aXZhdGUgc3RyYXRlZ2llcyBvZiBhIGdpdmVuIHR5cGVcbiAgICogQHBhcmFtIHR5cGUgRW50aXR5IHN0b3JlIHN0cmF0ZWd5IGNsYXNzXG4gICAqL1xuICBhY3RpdmF0ZVN0cmF0ZWd5T2ZUeXBlKHR5cGU6IHR5cGVvZiBFbnRpdHlTdG9yZVN0cmF0ZWd5KSB7XG4gICAgY29uc3Qgc3RyYXRlZ3kgPSB0aGlzLmdldFN0cmF0ZWd5T2ZUeXBlKHR5cGUpO1xuICAgIGlmIChzdHJhdGVneSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBzdHJhdGVneS5hY3RpdmF0ZSgpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBEZWFjdGl2YXRlIHN0cmF0ZWdpZXMgb2YgYSBnaXZlbiB0eXBlXG4gICAqIEBwYXJhbSB0eXBlIEVudGl0eSBzdG9yZSBzdHJhdGVneSBjbGFzc1xuICAgKi9cbiAgZGVhY3RpdmF0ZVN0cmF0ZWd5T2ZUeXBlKHR5cGU6IHR5cGVvZiBFbnRpdHlTdG9yZVN0cmF0ZWd5KSB7XG4gICAgY29uc3Qgc3RyYXRlZ3kgPSB0aGlzLmdldFN0cmF0ZWd5T2ZUeXBlKHR5cGUpO1xuICAgIGlmIChzdHJhdGVneSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBzdHJhdGVneS5kZWFjdGl2YXRlKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIERlbGV0ZSBhbiBlbnRpdHkgZnJvbSB0aGUgc3RvcmVcbiAgICogQHBhcmFtIGVudGl0eSBFbnRpdHlcbiAgICovXG4gIGRlbGV0ZShlbnRpdHk6IEUpIHtcbiAgICB0aGlzLmRlbGV0ZU1hbnkoW2VudGl0eV0pO1xuICB9XG5cbiAgLyoqXG4gICAqIERlbGV0ZSBtYW55IGVudGl0aWVzIGZyb20gdGhlIHN0b3JlXG4gICAqIEBwYXJhbSBlbnRpdGllcyBFbnRpdGllc1xuICAgKi9cbiAgZGVsZXRlTWFueShlbnRpdGllczogRVtdKSB7XG4gICAgZW50aXRpZXMuZm9yRWFjaCgoZW50aXR5OiBFKSA9PiB0aGlzLmluZGV4LmRlbGV0ZSh0aGlzLmdldEtleShlbnRpdHkpKSk7XG4gICAgdGhpcy5fcHJpc3RpbmUgPSBmYWxzZTtcbiAgICB0aGlzLm5leHQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZW5lcmF0ZSBhIGNvbXBsZXRlIGluZGV4IG9mIGFsbCB0aGUgZW50aXRpZXNcbiAgICogQHBhcmFtIGVudGl0aWVzIEVudGl0aWVzXG4gICAqIEByZXR1cm5zIEluZGV4XG4gICAqL1xuICBwcml2YXRlIGdlbmVyYXRlSW5kZXgoZW50aXRpZXM6IEVbXSk6IE1hcDxFbnRpdHlLZXksIEU+IHtcbiAgICBjb25zdCBlbnRyaWVzID0gZW50aXRpZXMubWFwKChlbnRpdHk6IEUpID0+IFt0aGlzLmdldEtleShlbnRpdHkpLCBlbnRpdHldKTtcbiAgICByZXR1cm4gbmV3IE1hcChlbnRyaWVzIGFzIFtFbnRpdHlLZXksIEVdW10pO1xuICB9XG5cbiAgLyoqXG4gICAqIFB1c2ggdGhlIGluZGV4J3MgZW50aXRpZXMgaW50byB0aGUgZW50aXRpZXMkIG9ic2VydmFibGVcbiAgICovXG4gIHByaXZhdGUgbmV4dCgpIHtcbiAgICB0aGlzLmVudGl0aWVzJC5uZXh0KEFycmF5LmZyb20odGhpcy5pbmRleC52YWx1ZXMoKSkpO1xuICAgIHRoaXMudXBkYXRlQ291bnQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGUgdGhlIHN0b3JlJ3MgY291bnQgYW5kIGVtcHR5XG4gICAqL1xuICBwcml2YXRlIHVwZGF0ZUNvdW50KCkge1xuICAgIGNvbnN0IGNvdW50ID0gdGhpcy5pbmRleC5zaXplO1xuICAgIGNvbnN0IGVtcHR5ID0gY291bnQgPT09IDA7XG4gICAgdGhpcy5jb3VudCQubmV4dChjb3VudCk7XG4gICAgdGhpcy5lbXB0eSQubmV4dChlbXB0eSk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIHRoZSBlbnRpdHkgc3RhdGUgbWFuYWdlclxuICAgKiBAcmV0dXJucyBFbnRpdHlTdGF0ZU1hbmFnZXJcbiAgICovXG4gIHByaXZhdGUgY3JlYXRlU3RhdGVNYW5hZ2VyKCkge1xuICAgIHJldHVybiBuZXcgRW50aXR5U3RhdGVNYW5hZ2VyPEUsIFM+KHtcbiAgICAgIGdldEtleTogdGhpcy5nZXRLZXksXG4gICAgICBpbmRleDogdGhpcy5pbmRleFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSB0aGUgZGF0YSB2aWV3XG4gICAqIEByZXR1cm5zIEVudGl0eVZpZXc8RT5cbiAgICovXG4gIHByaXZhdGUgY3JlYXRlRGF0YVZpZXcoKSB7XG4gICAgcmV0dXJuIG5ldyBFbnRpdHlWaWV3PEU+KHRoaXMuZW50aXRpZXMkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgdGhlIHN0YXRlIHZpZXdcbiAgICogQHJldHVybnMgRW50aXR5VmlldzxFbnRpdHlSZWNvcmQ8RT4+XG4gICAqL1xuICBwcml2YXRlIGNyZWF0ZVN0YXRlVmlldygpIHtcbiAgICByZXR1cm4gbmV3IEVudGl0eVZpZXc8RSwgRW50aXR5UmVjb3JkPEUsIFM+Pih0aGlzLnZpZXcuYWxsJCgpKVxuICAgICAgLmpvaW4oe1xuICAgICAgICBzb3VyY2U6IHRoaXMuc3RhdGUuY2hhbmdlJCxcbiAgICAgICAgcmVkdWNlOiAoZW50aXR5OiBFKTogRW50aXR5UmVjb3JkPEUsIFM+ID0+IHtcbiAgICAgICAgICBjb25zdCBrZXkgPSB0aGlzLmdldEtleShlbnRpdHkpO1xuICAgICAgICAgIGNvbnN0IHN0YXRlID0gdGhpcy5zdGF0ZS5nZXQoZW50aXR5KTtcbiAgICAgICAgICBjb25zdCBjdXJyZW50UmVjb3JkID0gdGhpcy5zdGF0ZVZpZXcuZ2V0KGtleSk7XG5cbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICBjdXJyZW50UmVjb3JkICE9PSB1bmRlZmluZWQgJiZcbiAgICAgICAgICAgIGN1cnJlbnRSZWNvcmQuZW50aXR5ID09PSBlbnRpdHkgJiZcbiAgICAgICAgICAgIHRoaXMuc3RhdGVzQXJlVGhlU2FtZShjdXJyZW50UmVjb3JkLnN0YXRlLCBzdGF0ZSlcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIHJldHVybiBjdXJyZW50UmVjb3JkO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnN0IHJldmlzaW9uID0gY3VycmVudFJlY29yZCA/IGN1cnJlbnRSZWNvcmQucmV2aXNpb24gKyAxIDogMTtcbiAgICAgICAgICBjb25zdCByZWYgPSBgJHtrZXl9LSR7cmV2aXNpb259YDtcbiAgICAgICAgICByZXR1cm4geyBlbnRpdHksIHN0YXRlLCByZXZpc2lvbiwgcmVmIH07XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgICAuY3JlYXRlSW5kZXgoKHJlY29yZDogRW50aXR5UmVjb3JkPEUsIFM+KSA9PiB0aGlzLmdldEtleShyZWNvcmQuZW50aXR5KSk7XG4gIH1cblxuICBwcml2YXRlIHN0YXRlc0FyZVRoZVNhbWUoY3VycmVudFN0YXRlOiBTLCBuZXdTdGF0ZTogUyk6IGJvb2xlYW4ge1xuICAgIGlmIChjdXJyZW50U3RhdGUgPT09IG5ld1N0YXRlKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBjb25zdCBjdXJyZW50U3RhdGVJc0VtcHR5ID0gT2JqZWN0LmtleXMoY3VycmVudFN0YXRlKS5sZW5ndGggPT09IDA7XG4gICAgY29uc3QgbmV3U3RhdGVJc0VtcHR5ID0gT2JqZWN0LmtleXMobmV3U3RhdGUpLmxlbmd0aCA9PT0gMDtcbiAgICByZXR1cm4gY3VycmVudFN0YXRlSXNFbXB0eSAmJiBuZXdTdGF0ZUlzRW1wdHk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { EntityStoreStrategy } from './strategy';
|
|
2
|
+
/**
|
|
3
|
+
* When active, this strategy filters a store's stateView to return
|
|
4
|
+
* selected entities only.
|
|
5
|
+
*/
|
|
6
|
+
export class EntityStoreFilterCustomFuncStrategy extends EntityStoreStrategy {
|
|
7
|
+
options;
|
|
8
|
+
constructor(options) {
|
|
9
|
+
super(options);
|
|
10
|
+
this.options = options;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Store / filter ids map
|
|
14
|
+
*/
|
|
15
|
+
filters = new Map();
|
|
16
|
+
/**
|
|
17
|
+
* Bind this strategy to a store and start filtering it
|
|
18
|
+
* @param store Entity store
|
|
19
|
+
*/
|
|
20
|
+
bindStore(store) {
|
|
21
|
+
super.bindStore(store);
|
|
22
|
+
if (this.active === true) {
|
|
23
|
+
this.filterStore(store);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Unbind this strategy from a store and stop filtering it
|
|
28
|
+
* @param store Entity store
|
|
29
|
+
*/
|
|
30
|
+
unbindStore(store) {
|
|
31
|
+
super.unbindStore(store);
|
|
32
|
+
if (this.active === true) {
|
|
33
|
+
this.unfilterStore(store);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Start filtering all stores
|
|
38
|
+
* @internal
|
|
39
|
+
*/
|
|
40
|
+
doActivate() {
|
|
41
|
+
this.filterAll();
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Stop filtering all stores
|
|
45
|
+
* @internal
|
|
46
|
+
*/
|
|
47
|
+
doDeactivate() {
|
|
48
|
+
this.unfilterAll();
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Filter all stores
|
|
52
|
+
*/
|
|
53
|
+
filterAll() {
|
|
54
|
+
this.stores.forEach((store) => this.filterStore(store));
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Unfilter all stores
|
|
58
|
+
*/
|
|
59
|
+
unfilterAll() {
|
|
60
|
+
this.stores.forEach((store) => this.unfilterStore(store));
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Filter a store and add it to the filters map
|
|
64
|
+
*/
|
|
65
|
+
filterStore(store) {
|
|
66
|
+
this.filters.set(store, store.stateView.addFilter(this.options.filterClauseFunc));
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Unfilter a store and delete it from the filters map
|
|
70
|
+
*/
|
|
71
|
+
unfilterStore(store) {
|
|
72
|
+
const filterId = this.filters.get(store);
|
|
73
|
+
if (filterId === undefined) {
|
|
74
|
+
return;
|
|
75
|
+
}
|
|
76
|
+
store.stateView.removeFilter(filterId);
|
|
77
|
+
this.filters.delete(store);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLWN1c3RvbS1mdW5jdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbW1vbi9lbnRpdHkvc3JjL3NoYXJlZC9zdHJhdGVnaWVzL2ZpbHRlci1jdXN0b20tZnVuY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRWpEOzs7R0FHRztBQUNILE1BQU0sT0FBTyxtQ0FBb0MsU0FBUSxtQkFBbUI7SUFDcEQ7SUFBdEIsWUFBc0IsT0FBdUM7UUFDM0QsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBREssWUFBTyxHQUFQLE9BQU8sQ0FBZ0M7SUFFN0QsQ0FBQztJQUVEOztPQUVHO0lBQ0ssT0FBTyxHQUE2QixJQUFJLEdBQUcsRUFBRSxDQUFDO0lBRXREOzs7T0FHRztJQUNILFNBQVMsQ0FBQyxLQUFrQjtRQUMxQixLQUFLLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3ZCLElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxJQUFJLEVBQUUsQ0FBQztZQUN6QixJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzFCLENBQUM7SUFDSCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsV0FBVyxDQUFDLEtBQWtCO1FBQzVCLEtBQUssQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDekIsSUFBSSxJQUFJLENBQUMsTUFBTSxLQUFLLElBQUksRUFBRSxDQUFDO1lBQ3pCLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDNUIsQ0FBQztJQUNILENBQUM7SUFFRDs7O09BR0c7SUFDTyxVQUFVO1FBQ2xCLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNuQixDQUFDO0lBRUQ7OztPQUdHO0lBQ08sWUFBWTtRQUNwQixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVEOztPQUVHO0lBQ0ssU0FBUztRQUNmLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBa0IsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7SUFFRDs7T0FFRztJQUNLLFdBQVc7UUFDakIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFrQixFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDekUsQ0FBQztJQUVEOztPQUVHO0lBQ0ssV0FBVyxDQUFDLEtBQWtCO1FBQ3BDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUNkLEtBQUssRUFDTCxLQUFLLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLENBQ3pELENBQUM7SUFDSixDQUFDO0lBRUQ7O09BRUc7SUFDSyxhQUFhLENBQUMsS0FBa0I7UUFDdEMsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDekMsSUFBSSxRQUFRLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDM0IsT0FBTztRQUNULENBQUM7UUFFRCxLQUFLLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN2QyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM3QixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbnRpdHlTdG9yZVN0cmF0ZWd5RnVuY09wdGlvbnMgfSBmcm9tICcuLi9lbnRpdHkuaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBFbnRpdHlTdG9yZSB9IGZyb20gJy4uL3N0b3JlJztcbmltcG9ydCB7IEVudGl0eVN0b3JlU3RyYXRlZ3kgfSBmcm9tICcuL3N0cmF0ZWd5JztcblxuLyoqXG4gKiBXaGVuIGFjdGl2ZSwgdGhpcyBzdHJhdGVneSBmaWx0ZXJzIGEgc3RvcmUncyBzdGF0ZVZpZXcgdG8gcmV0dXJuXG4gKiBzZWxlY3RlZCBlbnRpdGllcyBvbmx5LlxuICovXG5leHBvcnQgY2xhc3MgRW50aXR5U3RvcmVGaWx0ZXJDdXN0b21GdW5jU3RyYXRlZ3kgZXh0ZW5kcyBFbnRpdHlTdG9yZVN0cmF0ZWd5IHtcbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIG9wdGlvbnM6IEVudGl0eVN0b3JlU3RyYXRlZ3lGdW5jT3B0aW9ucykge1xuICAgIHN1cGVyKG9wdGlvbnMpO1xuICB9XG5cbiAgLyoqXG4gICAqIFN0b3JlIC8gZmlsdGVyIGlkcyBtYXBcbiAgICovXG4gIHByaXZhdGUgZmlsdGVyczogTWFwPEVudGl0eVN0b3JlLCBzdHJpbmc+ID0gbmV3IE1hcCgpO1xuXG4gIC8qKlxuICAgKiBCaW5kIHRoaXMgc3RyYXRlZ3kgdG8gYSBzdG9yZSBhbmQgc3RhcnQgZmlsdGVyaW5nIGl0XG4gICAqIEBwYXJhbSBzdG9yZSBFbnRpdHkgc3RvcmVcbiAgICovXG4gIGJpbmRTdG9yZShzdG9yZTogRW50aXR5U3RvcmUpIHtcbiAgICBzdXBlci5iaW5kU3RvcmUoc3RvcmUpO1xuICAgIGlmICh0aGlzLmFjdGl2ZSA9PT0gdHJ1ZSkge1xuICAgICAgdGhpcy5maWx0ZXJTdG9yZShzdG9yZSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFVuYmluZCB0aGlzIHN0cmF0ZWd5IGZyb20gYSBzdG9yZSBhbmQgc3RvcCBmaWx0ZXJpbmcgaXRcbiAgICogQHBhcmFtIHN0b3JlIEVudGl0eSBzdG9yZVxuICAgKi9cbiAgdW5iaW5kU3RvcmUoc3RvcmU6IEVudGl0eVN0b3JlKSB7XG4gICAgc3VwZXIudW5iaW5kU3RvcmUoc3RvcmUpO1xuICAgIGlmICh0aGlzLmFjdGl2ZSA9PT0gdHJ1ZSkge1xuICAgICAgdGhpcy51bmZpbHRlclN0b3JlKHN0b3JlKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogU3RhcnQgZmlsdGVyaW5nIGFsbCBzdG9yZXNcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwcm90ZWN0ZWQgZG9BY3RpdmF0ZSgpIHtcbiAgICB0aGlzLmZpbHRlckFsbCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFN0b3AgZmlsdGVyaW5nIGFsbCBzdG9yZXNcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwcm90ZWN0ZWQgZG9EZWFjdGl2YXRlKCkge1xuICAgIHRoaXMudW5maWx0ZXJBbGwoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGaWx0ZXIgYWxsIHN0b3Jlc1xuICAgKi9cbiAgcHJpdmF0ZSBmaWx0ZXJBbGwoKSB7XG4gICAgdGhpcy5zdG9yZXMuZm9yRWFjaCgoc3RvcmU6IEVudGl0eVN0b3JlKSA9PiB0aGlzLmZpbHRlclN0b3JlKHN0b3JlKSk7XG4gIH1cblxuICAvKipcbiAgICogVW5maWx0ZXIgYWxsIHN0b3Jlc1xuICAgKi9cbiAgcHJpdmF0ZSB1bmZpbHRlckFsbCgpIHtcbiAgICB0aGlzLnN0b3Jlcy5mb3JFYWNoKChzdG9yZTogRW50aXR5U3RvcmUpID0+IHRoaXMudW5maWx0ZXJTdG9yZShzdG9yZSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEZpbHRlciBhIHN0b3JlIGFuZCBhZGQgaXQgdG8gdGhlIGZpbHRlcnMgbWFwXG4gICAqL1xuICBwcml2YXRlIGZpbHRlclN0b3JlKHN0b3JlOiBFbnRpdHlTdG9yZSkge1xuICAgIHRoaXMuZmlsdGVycy5zZXQoXG4gICAgICBzdG9yZSxcbiAgICAgIHN0b3JlLnN0YXRlVmlldy5hZGRGaWx0ZXIodGhpcy5vcHRpb25zLmZpbHRlckNsYXVzZUZ1bmMpXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVbmZpbHRlciBhIHN0b3JlIGFuZCBkZWxldGUgaXQgZnJvbSB0aGUgZmlsdGVycyBtYXBcbiAgICovXG4gIHByaXZhdGUgdW5maWx0ZXJTdG9yZShzdG9yZTogRW50aXR5U3RvcmUpIHtcbiAgICBjb25zdCBmaWx0ZXJJZCA9IHRoaXMuZmlsdGVycy5nZXQoc3RvcmUpO1xuICAgIGlmIChmaWx0ZXJJZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgc3RvcmUuc3RhdGVWaWV3LnJlbW92ZUZpbHRlcihmaWx0ZXJJZCk7XG4gICAgdGhpcy5maWx0ZXJzLmRlbGV0ZShzdG9yZSk7XG4gIH1cbn1cbiJdfQ==
|