@igo2/common 17.0.0-next.6 → 17.0.0-next.7
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/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/backdrop/index.d.ts +5 -0
- package/backdrop/public_api.d.ts +2 -0
- package/badge/index.d.ts +5 -0
- package/badge/public_api.d.ts +2 -0
- package/clickout/index.d.ts +5 -0
- package/clickout/public_api.d.ts +2 -0
- package/clone/index.d.ts +5 -0
- package/clone/public_api.d.ts +2 -0
- package/collapsible/index.d.ts +5 -0
- package/collapsible/public_api.d.ts +6 -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/index.d.ts +5 -0
- package/confirm-dialog/public_api.d.ts +4 -0
- package/context-menu/index.d.ts +5 -0
- package/context-menu/public_api.d.ts +6 -0
- package/custom-html/index.d.ts +5 -0
- package/custom-html/public_api.d.ts +6 -0
- package/dom/index.d.ts +5 -0
- package/dom/public_api.d.ts +3 -0
- package/drag-drop/index.d.ts +5 -0
- package/drag-drop/public_api.d.ts +2 -0
- package/dynamic-component/index.d.ts +5 -0
- package/dynamic-component/public_api.d.ts +4 -0
- package/entity/entity-selector/index.d.ts +2 -0
- package/entity/entity-table/index.d.ts +2 -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/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 +42 -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 -79
- 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 +118 -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 -8817
- package/fesm2022/igo2-common.mjs.map +1 -1
- package/flexible/index.d.ts +5 -0
- package/flexible/public_api.d.ts +3 -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/index.d.ts +4 -0
- package/form/form-field/form-field.directive.d.ts +5 -0
- package/form/form-field/index.d.ts +6 -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/index.d.ts +5 -0
- package/home-button/public_api.d.ts +2 -0
- package/icon/icon/icon.component.d.ts +14 -0
- package/icon/index.d.ts +5 -0
- package/icon/shared/icon.service.d.ts +12 -0
- package/icon/shared/icons.d.ts +11 -0
- package/icon/shared/index.d.ts +3 -0
- package/image/index.d.ts +5 -0
- package/image/public_api.d.ts +6 -0
- package/interactive-tour/index.d.ts +5 -0
- package/interactive-tour/interactive-tour.component.d.ts +33 -0
- package/interactive-tour/public_api.d.ts +5 -0
- package/json-dialog/index.d.ts +5 -0
- package/json-dialog/public_api.d.ts +3 -0
- package/keyvalue/index.d.ts +5 -0
- package/keyvalue/public_api.d.ts +2 -0
- package/list/index.d.ts +5 -0
- package/list/public_api.d.ts +6 -0
- package/package.json +201 -3
- package/panel/index.d.ts +5 -0
- package/panel/public_api.d.ts +2 -0
- package/public_api.d.ts +16 -78
- package/select-value-dialog/index.d.ts +5 -0
- package/select-value-dialog/public_api.d.ts +5 -0
- package/sidenav/index.d.ts +5 -0
- package/sidenav/public_api.d.ts +2 -0
- package/spinner/index.d.ts +5 -0
- package/spinner/public_api.d.ts +3 -0
- package/spinner/spinner.module.d.ts +14 -0
- package/src/common-theme.scss +8 -8
- package/stop-propagation/index.d.ts +5 -0
- package/stop-propagation/public_api.d.ts +6 -0
- package/table/index.d.ts +5 -0
- package/table/public_api.d.ts +6 -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/toolbox/index.d.ts +2 -0
- package/tool/toolbox/toolbox.component.d.ts +128 -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/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-widget-outlet/index.d.ts +2 -0
- package/workspace/workspace-widget-outlet/workspace-widget-outlet.component.d.ts +57 -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 -192
- package/esm2022/lib/action/actionbar/actionbar.component.mjs +0 -277
- package/esm2022/lib/action/actionbar/actionbar.module.mjs +0 -19
- 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 -25
- package/esm2022/lib/backdrop/index.mjs +0 -2
- package/esm2022/lib/badge-icon/badge-icon.directive.mjs +0 -149
- 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 -32
- package/esm2022/lib/clickout/clickout.module.mjs +0 -25
- package/esm2022/lib/clickout/index.mjs +0 -2
- package/esm2022/lib/clone/clone.module.mjs +0 -25
- package/esm2022/lib/clone/clone.pipe.mjs +0 -25
- package/esm2022/lib/clone/index.mjs +0 -2
- package/esm2022/lib/collapsible/collapse.directive.mjs +0 -57
- package/esm2022/lib/collapsible/collapsible.component.mjs +0 -38
- package/esm2022/lib/collapsible/collapsible.module.mjs +0 -26
- package/esm2022/lib/collapsible/index.mjs +0 -9
- package/esm2022/lib/color-picker-form-field/color-picker-form-field.component.mjs +0 -104
- package/esm2022/lib/color-picker-form-field/color-picker-form-field.module.mjs +0 -19
- package/esm2022/lib/color-picker-form-field/index.mjs +0 -2
- package/esm2022/lib/confirm-dialog/confirm-dialog.component.mjs +0 -31
- package/esm2022/lib/confirm-dialog/confirm-dialog.interface.mjs +0 -2
- package/esm2022/lib/confirm-dialog/confirm-dialog.module.mjs +0 -27
- package/esm2022/lib/confirm-dialog/confirm-dialog.service.mjs +0 -35
- package/esm2022/lib/confirm-dialog/index.mjs +0 -4
- package/esm2022/lib/context-menu/context-menu.directive.mjs +0 -109
- package/esm2022/lib/context-menu/context-menu.module.mjs +0 -26
- package/esm2022/lib/context-menu/index.mjs +0 -9
- package/esm2022/lib/context-menu/long-press.directive.mjs +0 -66
- package/esm2022/lib/custom-html/custom-html.component.mjs +0 -22
- package/esm2022/lib/custom-html/custom-html.module.mjs +0 -25
- package/esm2022/lib/custom-html/custom-html.pipe.mjs +0 -23
- package/esm2022/lib/custom-html/index.mjs +0 -9
- package/esm2022/lib/dom/dom.interfaces.mjs +0 -2
- package/esm2022/lib/dom/dom.module.mjs +0 -27
- 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 -82
- package/esm2022/lib/drag-drop/drag-drop.module.mjs +0 -25
- 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 -19
- 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 -174
- package/esm2022/lib/entity/entity-selector/entity-selector.module.mjs +0 -19
- package/esm2022/lib/entity/entity-table/entity-table-row.directive.mjs +0 -138
- package/esm2022/lib/entity/entity-table/entity-table.component.mjs +0 -884
- package/esm2022/lib/entity/entity-table/entity-table.module.mjs +0 -19
- package/esm2022/lib/entity/entity-table-paginator/entity-table-paginator.component.mjs +0 -158
- 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 -19
- package/esm2022/lib/entity/entity-table-paginator/index.mjs +0 -3
- package/esm2022/lib/entity/entity.module.mjs +0 -22
- package/esm2022/lib/entity/index.mjs +0 -14
- 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 -25
- 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 -103
- package/esm2022/lib/form/form/form.module.mjs +0 -19
- package/esm2022/lib/form/form-field/form-field-select.component.mjs +0 -117
- package/esm2022/lib/form/form-field/form-field-text.component.mjs +0 -126
- package/esm2022/lib/form/form-field/form-field-textarea.component.mjs +0 -95
- package/esm2022/lib/form/form-field/form-field.component.mjs +0 -65
- package/esm2022/lib/form/form-field/form-field.module.mjs +0 -23
- package/esm2022/lib/form/form-field/index.mjs +0 -15
- package/esm2022/lib/form/form-group/form-group.component.mjs +0 -82
- package/esm2022/lib/form/form-group/form-group.module.mjs +0 -19
- package/esm2022/lib/form/form.module.mjs +0 -25
- package/esm2022/lib/form/index.mjs +0 -13
- 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 -94
- package/esm2022/lib/form-dialog/form-dialog.interface.mjs +0 -2
- package/esm2022/lib/form-dialog/form-dialog.module.mjs +0 -31
- 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 -26
- package/esm2022/lib/home-button/home-button.module.mjs +0 -19
- package/esm2022/lib/home-button/index.mjs +0 -2
- package/esm2022/lib/icons/icon/icon.component.mjs +0 -40
- package/esm2022/lib/icons/icon.provider.mjs +0 -14
- package/esm2022/lib/icons/index.mjs +0 -4
- package/esm2022/lib/icons/shared/icon.interface.mjs +0 -2
- package/esm2022/lib/icons/shared/icons.mjs +0 -34
- package/esm2022/lib/icons/shared/index.mjs +0 -3
- package/esm2022/lib/image/image-error.directive.mjs +0 -35
- package/esm2022/lib/image/image.module.mjs +0 -26
- package/esm2022/lib/image/index.mjs +0 -6
- package/esm2022/lib/image/secure-image.pipe.mjs +0 -66
- package/esm2022/lib/interactive-tour/index.mjs +0 -5
- package/esm2022/lib/interactive-tour/interactive-tour.component.mjs +0 -126
- 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 -19
- package/esm2022/lib/interactive-tour/interactive-tour.service.mjs +0 -303
- package/esm2022/lib/json-dialog/index.mjs +0 -3
- package/esm2022/lib/json-dialog/json-dialog.component.mjs +0 -38
- package/esm2022/lib/json-dialog/json-dialog.module.mjs +0 -26
- 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 -25
- package/esm2022/lib/keyvalue/keyvalue.pipe.mjs +0 -19
- package/esm2022/lib/list/index.mjs +0 -6
- package/esm2022/lib/list/list-item.directive.mjs +0 -166
- package/esm2022/lib/list/list.component.mjs +0 -252
- package/esm2022/lib/list/list.module.mjs +0 -26
- 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 -19
- package/esm2022/lib/select-value-dialog/index.mjs +0 -5
- package/esm2022/lib/select-value-dialog/select-value-check-radio-dialog.component.mjs +0 -103
- 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 -27
- 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 -58
- package/esm2022/lib/sidenav/sidenav.module.mjs +0 -25
- package/esm2022/lib/spinner/index.mjs +0 -9
- package/esm2022/lib/spinner/spinner-activity.directive.mjs +0 -56
- package/esm2022/lib/spinner/spinner.component.mjs +0 -30
- package/esm2022/lib/spinner/spinner.module.mjs +0 -21
- package/esm2022/lib/stop-propagation/index.mjs +0 -9
- package/esm2022/lib/stop-propagation/stop-drop-propagation.directive.mjs +0 -21
- package/esm2022/lib/stop-propagation/stop-propagation.directive.mjs +0 -20
- package/esm2022/lib/stop-propagation/stop-propagation.module.mjs +0 -26
- 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 -143
- package/esm2022/lib/table/table.module.mjs +0 -25
- 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 -2
- package/esm2022/lib/tool/shared/toolbox.mjs +0 -184
- package/esm2022/lib/tool/tool.module.mjs +0 -28
- package/esm2022/lib/tool/toolbox/toolbox.animation.mjs +0 -10
- package/esm2022/lib/tool/toolbox/toolbox.component.mjs +0 -242
- package/esm2022/lib/tool/toolbox/toolbox.module.mjs +0 -19
- 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 -19
- package/esm2022/lib/widget/widget.module.mjs +0 -22
- package/esm2022/lib/workspace/index.mjs +0 -10
- 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 -19
- 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 -19
- package/esm2022/lib/workspace/workspace.module.mjs +0 -22
- package/lib/action/index.d.ts +0 -2
- package/lib/action/shared/action.interfaces.d.ts +0 -18
- package/lib/action/shared/store.d.ts +0 -8
- package/lib/backdrop/index.d.ts +0 -1
- package/lib/badge-icon/index.d.ts +0 -1
- package/lib/clickout/index.d.ts +0 -1
- package/lib/clone/index.d.ts +0 -1
- package/lib/collapsible/index.d.ts +0 -5
- package/lib/color-picker-form-field/index.d.ts +0 -1
- package/lib/confirm-dialog/index.d.ts +0 -3
- package/lib/context-menu/index.d.ts +0 -5
- package/lib/custom-html/index.d.ts +0 -5
- package/lib/dom/index.d.ts +0 -2
- package/lib/drag-drop/index.d.ts +0 -1
- package/lib/dynamic-component/index.d.ts +0 -2
- package/lib/entity/entity-table-paginator/index.d.ts +0 -2
- package/lib/entity/entity.module.d.ts +0 -12
- package/lib/entity/index.d.ts +0 -9
- package/lib/flexible/index.d.ts +0 -2
- package/lib/form/form-field/index.d.ts +0 -9
- package/lib/form/form.module.d.ts +0 -15
- package/lib/form/index.d.ts +0 -7
- 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/index.d.ts +0 -3
- package/lib/home-button/index.d.ts +0 -1
- package/lib/icons/icon/icon.component.d.ts +0 -16
- package/lib/icons/shared/icons.d.ts +0 -21
- package/lib/icons/shared/index.d.ts +0 -2
- package/lib/image/index.d.ts +0 -5
- package/lib/interactive-tour/index.d.ts +0 -4
- package/lib/interactive-tour/interactive-tour.component.d.ts +0 -30
- package/lib/json-dialog/index.d.ts +0 -2
- package/lib/keyvalue/index.d.ts +0 -1
- package/lib/list/index.d.ts +0 -5
- package/lib/panel/index.d.ts +0 -1
- package/lib/select-value-dialog/index.d.ts +0 -4
- package/lib/sidenav/index.d.ts +0 -1
- package/lib/spinner/index.d.ts +0 -5
- package/lib/spinner/spinner.module.d.ts +0 -11
- package/lib/stop-propagation/index.d.ts +0 -5
- package/lib/table/index.d.ts +0 -5
- 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/toolbox/toolbox.component.d.ts +0 -128
- 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/workspace/index.d.ts +0 -6
- 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 -38
- package/lib/workspace/workspace-widget-outlet/workspace-widget-outlet.component.d.ts +0 -57
- package/lib/workspace/workspace.module.d.ts +0 -11
- /package/{lib/action → action}/action.module.d.ts +0 -0
- /package/{lib/action → action}/actionbar/actionbar-item.component.d.ts +0 -0
- /package/{lib/action → action}/actionbar/actionbar.component.d.ts +0 -0
- /package/{lib/action → action}/actionbar/actionbar.module.d.ts +0 -0
- /package/{lib/action → action}/shared/action.enums.d.ts +0 -0
- /package/{lib/action → action}/shared/index.d.ts +0 -0
- /package/{src/lib/action → action/src}/action.theming.scss +0 -0
- /package/{src/lib/action → action/src}/actionbar/actionbar-item.theming.scss +0 -0
- /package/{src/lib/action → action/src}/actionbar/actionbar.theming.scss +0 -0
- /package/{lib/backdrop → backdrop}/backdrop.component.d.ts +0 -0
- /package/{lib/backdrop → backdrop}/backdrop.module.d.ts +0 -0
- /package/{lib/badge-icon → badge}/badge-icon.directive.d.ts +0 -0
- /package/{lib/badge-icon → badge}/badge-icon.module.d.ts +0 -0
- /package/{lib/clickout → clickout}/clickout.directive.d.ts +0 -0
- /package/{lib/clickout → clickout}/clickout.module.d.ts +0 -0
- /package/{lib/clone → clone}/clone.module.d.ts +0 -0
- /package/{lib/clone → clone}/clone.pipe.d.ts +0 -0
- /package/{lib/collapsible → collapsible}/collapse.directive.d.ts +0 -0
- /package/{lib/collapsible → collapsible}/collapsible.component.d.ts +0 -0
- /package/{lib/collapsible → collapsible}/collapsible.module.d.ts +0 -0
- /package/{src/lib/collapsible → collapsible/src}/collapsible.theming.scss +0 -0
- /package/{lib → color}/color-picker-form-field/color-picker-form-field.component.d.ts +0 -0
- /package/{lib → color}/color-picker-form-field/color-picker-form-field.module.d.ts +0 -0
- /package/{lib/confirm-dialog → confirm-dialog}/confirm-dialog.component.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.module.d.ts +0 -0
- /package/{lib/confirm-dialog → confirm-dialog}/confirm-dialog.service.d.ts +0 -0
- /package/{lib/context-menu → context-menu}/context-menu.directive.d.ts +0 -0
- /package/{lib/context-menu → context-menu}/context-menu.module.d.ts +0 -0
- /package/{lib/context-menu → context-menu}/long-press.directive.d.ts +0 -0
- /package/{lib/custom-html → custom-html}/custom-html.component.d.ts +0 -0
- /package/{lib/custom-html → custom-html}/custom-html.module.d.ts +0 -0
- /package/{lib/custom-html → custom-html}/custom-html.pipe.d.ts +0 -0
- /package/{lib/dom → dom}/dom.interfaces.d.ts +0 -0
- /package/{lib/dom → dom}/dom.module.d.ts +0 -0
- /package/{lib/dom → dom}/dom.service.d.ts +0 -0
- /package/{lib/drag-drop → drag-drop}/drag-drop.directive.d.ts +0 -0
- /package/{lib/drag-drop → drag-drop}/drag-drop.module.d.ts +0 -0
- /package/{lib/dynamic-component → dynamic-component}/dynamic-component.module.d.ts +0 -0
- /package/{lib/dynamic-component → dynamic-component}/dynamic-outlet/dynamic-outlet.component.d.ts +0 -0
- /package/{lib/dynamic-component → dynamic-component}/dynamic-outlet/dynamic-outlet.module.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-selector/entity-selector.component.d.ts +0 -0
- /package/{lib/entity → entity}/entity-selector/entity-selector.module.d.ts +0 -0
- /package/{lib/entity → entity}/entity-table/entity-table-row.directive.d.ts +0 -0
- /package/{lib/entity → entity}/entity-table/entity-table.component.d.ts +0 -0
- /package/{lib/entity → entity}/entity-table/entity-table.module.d.ts +0 -0
- /package/{lib/entity → entity}/entity-table-paginator/entity-table-paginator.component.d.ts +0 -0
- /package/{lib/entity → entity}/entity-table-paginator/entity-table-paginator.interface.d.ts +0 -0
- /package/{lib/entity → entity}/entity-table-paginator/entity-table-paginator.module.d.ts +0 -0
- /package/{lib/entity → entity}/shared/entity.enums.d.ts +0 -0
- /package/{lib/entity → entity}/shared/entity.interfaces.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/transaction.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/{src/lib/entity → entity/src}/entity-selector/entity-selector.theming.scss +0 -0
- /package/{src/lib/entity → entity/src}/entity-table/entity-table.theming.scss +0 -0
- /package/{src/lib/entity → entity/src}/entity.theming.scss +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.component.d.ts +0 -0
- /package/{lib/flexible → flexible}/flexible.module.d.ts +0 -0
- /package/{lib/flexible → flexible}/flexible.type.d.ts +0 -0
- /package/{lib/form → form}/form/form.component.d.ts +0 -0
- /package/{lib/form → form}/form/form.module.d.ts +0 -0
- /package/{lib → form}/form-dialog/form-dialog.module.d.ts +0 -0
- /package/{lib → form}/form-dialog/form-dialog.service.d.ts +0 -0
- /package/{lib/form → form}/form-field/form-field-select.component.d.ts +0 -0
- /package/{lib/form → form}/form-field/form-field-text.component.d.ts +0 -0
- /package/{lib/form → form}/form-field/form-field-textarea.component.d.ts +0 -0
- /package/{lib/form → form}/form-field/form-field.component.d.ts +0 -0
- /package/{lib/form → form}/form-field/form-field.module.d.ts +0 -0
- /package/{lib/form → form}/form-group/form-group.component.d.ts +0 -0
- /package/{lib/form → form}/form-group/form-group.module.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/home-button → home-button}/home-button.component.d.ts +0 -0
- /package/{lib/home-button → home-button}/home-button.module.d.ts +0 -0
- /package/{src/lib/home-button → home-button/src}/home-button.theming.scss +0 -0
- /package/{lib/icons → icon}/icon.provider.d.ts +0 -0
- /package/{lib/icons/index.d.ts → icon/public_api.d.ts} +0 -0
- /package/{lib/icons → icon}/shared/icon.interface.d.ts +0 -0
- /package/{lib/image → image}/image-error.directive.d.ts +0 -0
- /package/{lib/image → image}/image.module.d.ts +0 -0
- /package/{lib/image → image}/secure-image.pipe.d.ts +0 -0
- /package/{lib/interactive-tour → interactive-tour}/interactive-tour.interface.d.ts +0 -0
- /package/{lib/interactive-tour → interactive-tour}/interactive-tour.loader.d.ts +0 -0
- /package/{lib/interactive-tour → interactive-tour}/interactive-tour.module.d.ts +0 -0
- /package/{lib/interactive-tour → interactive-tour}/interactive-tour.service.d.ts +0 -0
- /package/{src/lib/interactive-tour → interactive-tour/src}/interactive-tour.theming.scss +0 -0
- /package/{lib/json-dialog → json-dialog}/json-dialog.component.d.ts +0 -0
- /package/{lib/json-dialog → json-dialog}/json-dialog.module.d.ts +0 -0
- /package/{lib/json-dialog → json-dialog}/json-dialog.service.d.ts +0 -0
- /package/{lib/keyvalue → keyvalue}/keyvalue.module.d.ts +0 -0
- /package/{lib/keyvalue → keyvalue}/keyvalue.pipe.d.ts +0 -0
- /package/{lib/list → list}/list-item.directive.d.ts +0 -0
- /package/{lib/list → list}/list.component.d.ts +0 -0
- /package/{lib/list → list}/list.module.d.ts +0 -0
- /package/{src/lib/list → list/src}/list.theming.scss +0 -0
- /package/{lib/panel → panel}/panel.component.d.ts +0 -0
- /package/{lib/panel → panel}/panel.module.d.ts +0 -0
- /package/{src/lib/panel → panel/src}/panel.theming.scss +0 -0
- /package/{lib/select-value-dialog → select-value-dialog}/select-value-check-radio-dialog.component.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.module.d.ts +0 -0
- /package/{lib/select-value-dialog → select-value-dialog}/select-value-dialog.service.d.ts +0 -0
- /package/{lib/sidenav → sidenav}/sidenav-shim.directive.d.ts +0 -0
- /package/{lib/sidenav → sidenav}/sidenav.module.d.ts +0 -0
- /package/{lib/spinner → spinner}/spinner-activity.directive.d.ts +0 -0
- /package/{lib/spinner → spinner}/spinner.component.d.ts +0 -0
- /package/{lib/stop-propagation → stop-propagation}/stop-drop-propagation.directive.d.ts +0 -0
- /package/{lib/stop-propagation → stop-propagation}/stop-propagation.directive.d.ts +0 -0
- /package/{lib/stop-propagation → stop-propagation}/stop-propagation.module.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/table → table}/table.component.d.ts +0 -0
- /package/{lib/table → table}/table.module.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}/shared/toolbox.enums.d.ts +0 -0
- /package/{src/lib/tool → tool/src}/tool.theming.scss +0 -0
- /package/{src/lib/tool → tool/src}/toolbox/toolbox.theming.scss +0 -0
- /package/{lib/tool → tool}/tool.module.d.ts +0 -0
- /package/{lib/tool → tool}/toolbox/toolbox.animation.d.ts +0 -0
- /package/{lib/tool → tool}/toolbox/toolbox.module.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/widget → widget}/widget-outlet/widget-outlet.module.d.ts +0 -0
- /package/{lib/widget → widget}/widget.module.d.ts +0 -0
- /package/{lib/workspace → workspace}/shared/index.d.ts +0 -0
- /package/{lib/workspace → workspace}/workspace-selector/workspace-selector.module.d.ts +0 -0
- /package/{lib/workspace → workspace}/workspace-widget-outlet/workspace-widget-outlet.module.d.ts +0 -0
|
@@ -1,194 +0,0 @@
|
|
|
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vc3JjL2xpYi9lbnRpdHkvc2hhcmVkL3N0YXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFHckMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBTzdDOztHQUVHO0FBQ0gsTUFBTSxPQUFPLGtCQUFrQjtJQW1CVDtJQWZwQjs7T0FFRztJQUNNLEtBQUssR0FBRyxJQUFJLEdBQUcsRUFBZ0IsQ0FBQztJQUV6Qzs7T0FFRztJQUNNLE9BQU8sR0FBRyxJQUFJLGFBQWEsQ0FBTyxDQUFDLENBQUMsQ0FBQztJQUU5Qzs7T0FFRztJQUNNLE1BQU0sQ0FBbUI7SUFFbEMsWUFBb0IsVUFBd0MsRUFBRTtRQUExQyxZQUFPLEdBQVAsT0FBTyxDQUFtQztRQUM1RCxJQUFJLENBQUMsTUFBTSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQztRQUU1RCxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDZCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxLQUFLO1FBQ0gsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUN4QixJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ25CLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNkLENBQUM7SUFDSCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILEdBQUcsQ0FBQyxNQUFTO1FBQ1gsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQU0sQ0FBQztJQUMxRCxD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Q0FBQyxjQUEwQixFQUFFLEtBQW9CLEVBQUUsRUFBRTtZQUNuRCxNQUFNLENBQUMsU0FBUyxFQUFFLEtBQUssQ0FBQyxHQUFHLEtBQUssQ0FBQztZQUNqQyxJQUFJLE9BQU8sS0FBSyxLQUFLLE9BQU8sSUFBSSxFQUFFLENBQUM7Z0JBQ2hDLGNBQXlCLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUM7WUFDakQsQ0FBQztZQUNELE9BQU8sY0FBYyxDQUFDO1FBQ3hCLENBQUMsRUFDRCxFQUFFLENBQ0gsQ0FBQztJQUNKLENBQUM7SUFFRDs7O09BR0c7SUFDSyxVQUFVO1FBQ2hCLE1BQU0sU0FBUyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFDaEUsT0FBTyxJQUFJLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztJQUNsRSxDQUFDO0lBRUQ7O09BRUc7SUFDSyxJQUFJO1FBQ1YsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN0QixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSZXBsYXlTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IEVudGl0eUtleSwgRW50aXR5U3RhdGUgfSBmcm9tICcuL2VudGl0eS5pbnRlcmZhY2VzJztcbmltcG9ydCB7IGdldEVudGl0eUlkIH0gZnJvbSAnLi9lbnRpdHkudXRpbHMnO1xuXG5pbnRlcmZhY2UgRW50aXR5U3RhdGVNYW5hZ2VyT3B0aW9uczxFIGV4dGVuZHMgb2JqZWN0PiB7XG4gIGdldEtleT86IChlbnRpdHk6IG9iamVjdCkgPT4gRW50aXR5S2V5O1xuICBpbmRleD86IE1hcDxFbnRpdHlLZXksIEU+O1xufVxuXG4vKipcbiAqIFRoaXMgY2xhc3MgaXMgdXNlZCB0byB0cmFjayBhIHN0b3JlJ3MgZW50aXRpZXMgc3RhdGVcbiAqL1xuZXhwb3J0IGNsYXNzIEVudGl0eVN0YXRlTWFuYWdlcjxcbiAgRSBleHRlbmRzIG9iamVjdCxcbiAgUyBleHRlbmRzIEVudGl0eVN0YXRlID0gRW50aXR5U3RhdGVcbj4ge1xuICAvKipcbiAgICogU3RhdGUgaW5kZXhcbiAgICovXG4gIHJlYWRvbmx5IGluZGV4ID0gbmV3IE1hcDxFbnRpdHlLZXksIFM+KCk7XG5cbiAgLyoqXG4gICAqIENoYW5nZSBlbWl0dGVyXG4gICAqL1xuICByZWFkb25seSBjaGFuZ2UkID0gbmV3IFJlcGxheVN1YmplY3Q8dm9pZD4oMSk7XG5cbiAgLyoqXG4gICAqIE1ldGhvZCB0byBnZXQgYW4gZW50aXR5J3MgaWRcbiAgICovXG4gIHJlYWRvbmx5IGdldEtleTogKEUpID0+IEVudGl0eUtleTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIG9wdGlvbnM6IEVudGl0eVN0YXRlTWFuYWdlck9wdGlvbnM8RT4gPSB7fSkge1xuICAgIHRoaXMuZ2V0S2V5ID0gb3B0aW9ucy5nZXRLZXkgPyBvcHRpb25zLmdldEtleSA6IGdldEVudGl0eUlkO1xuXG4gICAgdGhpcy5uZXh0KCk7XG4gIH1cblxuICAvKipcbiAgICogQ2xlYXIgc3RhdGVcbiAgICovXG4gIGNsZWFyKCkge1xuICAgIGlmICh0aGlzLmluZGV4LnNpemUgPiAwKSB7XG4gICAgICB0aGlzLmluZGV4LmNsZWFyKCk7XG4gICAgICB0aGlzLm5leHQoKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogR2V0IGFuIGVudGl0eSdzIHN0YXRlXG4gICAqIEBwYXJhbSBlbnRpdHkgRW50aXR5XG4gICAqIEByZXR1cm5zIFN0YXRlXG4gICAqL1xuICBnZXQoZW50aXR5OiBFKTogUyB7XG4gICAgcmV0dXJuICh0aGlzLmluZGV4LmdldCh0aGlzLmdldEtleShlbnRpdHkpKSB8fCB7fSkgYXMgUztcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgYW4gZW50aXR5J3Mgc3RhdGVcbiAgICogQHBhcmFtIGVudGl0eSBFbnRpdHlcbiAgICogQHBhcmFtIHN0YXRlIFN0YXRlXG4gICAqL1xuICBzZXQoZW50aXR5OiBFLCBzdGF0ZTogUykge1xuICAgIHRoaXMuc2V0TWFueShbZW50aXR5XSwgc3RhdGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCBtYW55IGVudGl0aWUncyBzdGF0ZVxuICAgKiBAcGFyYW0gZW50aXRpZSBFbnRpdGllc1xuICAgKiBAcGFyYW0gc3RhdGUgU3RhdGVcbiAgICovXG4gIHNldE1hbnkoZW50aXRpZXM6IEVbXSwgc3RhdGU6IFMpIHtcbiAgICBlbnRpdGllcy5mb3JFYWNoKChlbnRpdHk6IEUpID0+IHtcbiAgICAgIHRoaXMuaW5kZXguc2V0KHRoaXMuZ2V0S2V5KGVudGl0eSksIE9iamVjdC5hc3NpZ24oe30sIHN0YXRlKSk7XG4gICAgfSk7XG4gICAgdGhpcy5uZXh0KCk7XG4gIH1cblxuICAvKipcbiAgICogU2V0IHN0YXRlIG9mIGFsbCBlbnRpdGllcyB0aGF0IGFscmVhZHkgaGF2ZSBhIHN0YXRlLiBUaGlzIGlzIG5vdFxuICAgKiB0aGUgc2FtZSBhcyBzZXR0aW5nIHRoZSBzdGF0ZSBvZiBhbGwgdGhlIHN0b3JlJ3MgZW50aXRpZXMuXG4gICAqIEBwYXJhbSBzdGF0ZSBTdGF0ZVxuICAgKi9cbiAgc2V0QWxsKHN0YXRlOiBTKSB7XG4gICAgQXJyYXkuZnJvbSh0aGlzLmluZGV4LmtleXMoKSkuZm9yRWFjaCgoa2V5OiBFbnRpdHlLZXkpID0+IHtcbiAgICAgIHRoaXMuaW5kZXguc2V0KGtleSwgT2JqZWN0LmFzc2lnbih7fSwgc3RhdGUpKTtcbiAgICB9KTtcbiAgICB0aGlzLm5leHQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGUgYW4gZW50aXR5J3Mgc3RhdGVcbiAgICogQHBhcmFtIGVudGl0eSBFbnRpdHlcbiAgICogQHBhcmFtIGNoYW5nZXMgU3RhdGUgY2hhbmdlc1xuICAgKi9cbiAgdXBkYXRlKGVudGl0eTogRSwgY2hhbmdlczogUGFydGlhbDxTPiwgZXhjbHVzaXZlID0gZmFsc2UpIHtcbiAgICB0aGlzLnVwZGF0ZU1hbnkoW2VudGl0eV0sIGNoYW5nZXMsIGV4Y2x1c2l2ZSk7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlIG1hbnkgZW50aXRpZSdzIHN0YXRlXG4gICAqIEBwYXJhbSBlbnRpdGllIEVudGl0aWVzXG4gICAqIEBwYXJhbSBjaGFuZ2VzIFN0YXRlIGNoYW5nZXNcbiAgICovXG4gIHVwZGF0ZU1hbnkoZW50aXRpZXM6IEVbXSwgY2hhbmdlczogUGFydGlhbDxTPiwgZXhjbHVzaXZlID0gZmFsc2UpIHtcbiAgICBpZiAoZXhjbHVzaXZlID09PSB0cnVlKSB7XG4gICAgICByZXR1cm4gdGhpcy51cGRhdGVNYW55RXhjbHVzaXZlKGVudGl0aWVzLCBjaGFuZ2VzKTtcbiAgICB9XG5cbiAgICBlbnRpdGllcy5mb3JFYWNoKChlbnRpdHk6IEUpID0+IHtcbiAgICAgIGNvbnN0IHN0YXRlID0gT2JqZWN0LmFzc2lnbih7fSwgdGhpcy5nZXQoZW50aXR5KSwgY2hhbmdlcyk7XG4gICAgICB0aGlzLmluZGV4LnNldCh0aGlzLmdldEtleShlbnRpdHkpLCBzdGF0ZSk7XG4gICAgfSk7XG4gICAgdGhpcy5uZXh0KCk7XG4gIH1cblxuICAvKipcbiAgICogUmV2ZXJzZWUgYW4gZW50aXR5J3Mgc3RhdGVcbiAgICogQHBhcmFtIGVudGl0eSBFbnRpdHlcbiAgICogQHBhcmFtIGtleXMgU3RhdGUga2V5cyB0byByZXZlcnNlXG4gICAqL1xuICByZXZlcnNlKGVudGl0eTogRSwga2V5czogc3RyaW5nW10pIHtcbiAgICB0aGlzLnJldmVyc2VNYW55KFtlbnRpdHldLCBrZXlzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXZlcnNlIG1hbnkgZW50aXRpZSdzIHN0YXRlXG4gICAqIEBwYXJhbSBlbnRpdGllIEVudGl0aWVzXG4gICAqIEBwYXJhbSBrZXlzIFN0YXRlIGtleXMgdG8gcmV2ZXJzZVxuICAgKi9cbiAgcmV2ZXJzZU1hbnkoZW50aXRpZXM6IEVbXSwga2V5czogc3RyaW5nW10pIHtcbiAgICBlbnRpdGllcy5mb3JFYWNoKChlbnRpdHk6IEUpID0+IHtcbiAgICAgIGNvbnN0IGN1cnJlbnRTdGF0ZSA9IHRoaXMuZ2V0KGVudGl0eSk7XG4gICAgICBjb25zdCBjaGFuZ2VzID0ga2V5cy5yZWR1Y2UoXG4gICAgICAgIChhY2M6IHsgW2tleTogc3RyaW5nXTogYm9vbGVhbiB9LCBrZXk6IHN0cmluZykgPT4ge1xuICAgICAgICAgIGFjY1trZXldID0gY3VycmVudFN0YXRlW2tleV0gfHwgZmFsc2U7XG4gICAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgICAgfSxcbiAgICAgICAge31cbiAgICAgICkgYXMgUGFydGlhbDxTPjtcbiAgICAgIGNvbnN0IHJldmVyc2VkQ2hhbmdlcyA9IHRoaXMucmV2ZXJzZUNoYW5nZXMoY2hhbmdlcyk7XG4gICAgICBjb25zdCBzdGF0ZSA9IE9iamVjdC5hc3NpZ24oe30sIGN1cnJlbnRTdGF0ZSwgcmV2ZXJzZWRDaGFuZ2VzKTtcbiAgICAgIHRoaXMuaW5kZXguc2V0KHRoaXMuZ2V0S2V5KGVudGl0eSksIHN0YXRlKTtcbiAgICB9KTtcbiAgICB0aGlzLm5leHQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGUgc3RhdGUgb2YgYWxsIGVudGl0aWVzIHRoYXQgYWxyZWFkeSBoYXZlIGEgc3RhdGUuIFRoaXMgaXMgbm90XG4gICAqIHRoZSBzYW1lIGFzIHVwZGF0aW5nIHRoZSBzdGF0ZSBvZiBhbGwgdGhlIHN0b3JlJ3MgZW50aXRpZXMuXG4gICAqIEBwYXJhbSBjaGFuZ2VzIFN0YXRlXG4gICAqL1xuICB1cGRhdGVBbGwoY2hhbmdlczogUGFydGlhbDxTPikge1xuICAgIGNvbnN0IGFsbEtleXMgPSB0aGlzLmdldEFsbEtleXMoKTtcbiAgICBBcnJheS5mcm9tKGFsbEtleXMpLmZvckVhY2goKGtleTogRW50aXR5S2V5KSA9PiB7XG4gICAgICBjb25zdCBzdGF0ZSA9IE9iamVjdC5hc3NpZ24oe30sIHRoaXMuaW5kZXguZ2V0KGtleSksIGNoYW5nZXMpO1xuICAgICAgdGhpcy5pbmRleC5zZXQoa2V5LCBzdGF0ZSk7XG4gICAgfSk7XG4gICAgdGhpcy5uZXh0KCk7XG4gIH1cblxuICAvKipcbiAgICogV2hlbiBzb21lIHN0YXRlIGNoYW5nZXMgYXJlIGZsYWdnZWQgYXMgJ2V4Y2x1c2l2ZScsIHJldmVyc2VcbiAgICogdGhlIHN0YXRlIG9mIGFsbCBvdGhlciBlbnRpdGllcy4gQ2hhbmdlcyBhcmUgcmV2ZXJzYWJsZSB3aGVuXG4gICAqIHRoZXkgYXJlIGJvb2xlYW4uXG4gICAqIEBwYXJhbSBlbnRpdGllIEVudGl0aWVzXG4gICAqIEBwYXJhbSBjaGFuZ2VzIFN0YXRlIGNoYW5nZXNcbiAgICovXG4gIHByaXZhdGUgdXBkYXRlTWFueUV4Y2x1c2l2ZShlbnRpdGllczogRVtdLCBjaGFuZ2VzOiBQYXJ0aWFsPFM+KSB7XG4gICAgY29uc3QgcmV2ZXJzZUNoYW5nZXMgPSB0aGlzLnJldmVyc2VDaGFuZ2VzKGNoYW5nZXMpO1xuXG4gICAgY29uc3Qga2V5cyA9IGVudGl0aWVzLm1hcCgoZW50aXR5OiBFKSA9PiB0aGlzLmdldEtleShlbnRpdHkpKTtcbiAgICBjb25zdCBhbGxLZXlzID0gbmV3IFNldChrZXlzLmNvbmNhdChBcnJheS5mcm9tKHRoaXMuZ2V0QWxsS2V5cygpKSkpO1xuICAgIGFsbEtleXMuZm9yRWFjaCgoa2V5OiBFbnRpdHlLZXkpID0+IHtcbiAgICAgIGNvbnN0IHN0YXRlID0gdGhpcy5pbmRleC5nZXQoa2V5KSB8fCAoe30gYXMgUyk7XG5cbiAgICAgIGlmIChrZXlzLmluZGV4T2Yoa2V5KSA+PSAwKSB7XG4gICAgICAgIHRoaXMuaW5kZXguc2V0KGtleSwgT2JqZWN0LmFzc2lnbih7fSwgc3RhdGUsIGNoYW5nZXMpKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIFVwZGF0ZSBvbmx5IGlmIHRoZSByZXZlcnNlIGNoYW5nZXMgd291bGQgbW9kaWZ5XG4gICAgICAgIC8vIGEga2V5IGFscmVhZHkgcHJlc2VudCBpbiB0aGUgY3VycmVudCBzdGF0ZVxuICAgICAgICBjb25zdCBzaG91bGRVcGRhdGUgPSBPYmplY3Qua2V5cyhyZXZlcnNlQ2hhbmdlcykuc29tZShcbiAgICAgICAgICAoY2hhbmdlS2V5OiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgIHN0YXRlW2NoYW5nZUtleV0gIT09IHVuZGVmaW5lZCAmJlxuICAgICAgICAgICAgICBzdGF0ZVtjaGFuZ2VLZXldICE9PSByZXZlcnNlQ2hhbmdlc1tjaGFuZ2VLZXldXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICAgICAgaWYgKHNob3VsZFVwZGF0ZSA9PT0gdHJ1ZSkge1xuICAgICAgICAgIHRoaXMuaW5kZXguc2V0KGtleSwgT2JqZWN0LmFzc2lnbih7fSwgc3RhdGUsIHJldmVyc2VDaGFuZ2VzKSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHRoaXMubmV4dCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbXB1dGUgYSAncmV2ZXJzZWQnIHZlcnNpb24gb2Ygc29tZSBzdGF0ZSBjaGFuZ2VzLlxuICAgKiBDaGFuZ2VzIGFyZSByZXZlcnNhYmxlIHdoZW4gdGhleSBhcmUgYm9vbGVhbi5cbiAgICogQHBhcmFtIGNoYW5nZXMgU3RhdGUgY2hhbmdlc1xuICAgKiBAcmV0dXJucyBSZXZlcnNlZCBzdGF0ZSBjaGFuZ2VzXG4gICAqL1xuICBwcml2YXRlIHJldmVyc2VDaGFuZ2VzKGNoYW5nZXM6IFBhcnRpYWw8Uz4pOiBQYXJ0aWFsPFM+IHtcbiAgICByZXR1cm4gT2JqZWN0LmVudHJpZXMoY2hhbmdlcykucmVkdWNlKFxuICAgICAgKHJldmVyc2VDaGFuZ2VzOiBQYXJ0aWFsPFM+LCBidW5jaDogW3N0cmluZywgYW55XSkgPT4ge1xuICAgICAgICBjb25zdCBbY2hhbmdlS2V5LCB2YWx1ZV0gPSBidW5jaDtcbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gdHlwZW9mIHRydWUpIHtcbiAgICAgICAgICAocmV2ZXJzZUNoYW5nZXMgYXMgb2JqZWN0KVtjaGFuZ2VLZXldID0gIXZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXZlcnNlQ2hhbmdlcztcbiAgICAgIH0sXG4gICAgICB7fVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIGFsbCB0aGUga2V5cyBpbiB0aGF0IHN0YXRlIGFuZCBpbiB0aGUgc3RvcmUgaXQncyBib3VuZCB0bywgaWYgYW55LlxuICAgKiBAcmV0dXJucyBTZXQgb2Yga2V5c1xuICAgKi9cbiAgcHJpdmF0ZSBnZXRBbGxLZXlzKCk6IFNldDxFbnRpdHlLZXk+IHtcbiAgICBjb25zdCBzdG9yZUtleXMgPSBBcnJheS5mcm9tKHRoaXMub3B0aW9ucz8uaW5kZXg/LmtleXMoKSA/PyBbXSk7XG4gICAgcmV0dXJuIG5ldyBTZXQoQXJyYXkuZnJvbSh0aGlzLmluZGV4LmtleXMoKSkuY29uY2F0KHN0b3JlS2V5cykpO1xuICB9XG5cbiAgLyoqXG4gICAqIEVtaXQgJ2NoYW5nZScgZXZlbnRcbiAgICovXG4gIHByaXZhdGUgbmV4dCgpIHtcbiAgICB0aGlzLmNoYW5nZSQubmV4dCgpO1xuICB9XG59XG4iXX0=
|
|
@@ -1,322 +0,0 @@
|
|
|
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vc3JjL2xpYi9lbnRpdHkvc2hhcmVkL3N0b3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFHdkMsT0FBTyxFQUFFLFdBQVcsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUU3QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBT3BDOzs7O0dBSUc7QUFDSCxNQUFNLE9BQU8sV0FBVztJQUl0Qjs7T0FFRztJQUNNLFNBQVMsR0FBRyxJQUFJLGVBQWUsQ0FBTSxFQUFFLENBQUMsQ0FBQztJQUVsRDs7T0FFRztJQUNNLE1BQU0sR0FBRyxJQUFJLGVBQWUsQ0FBUyxDQUFDLENBQUMsQ0FBQztJQUNqRCxJQUFJLEtBQUs7UUFDUCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDO0lBQzNCLENBQUM7SUFFRDs7T0FFRztJQUNNLE1BQU0sR0FBRyxJQUFJLGVBQWUsQ0FBVSxJQUFJLENBQUMsQ0FBQztJQUNyRCxJQUFJLEtBQUs7UUFDUCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDO0lBQzNCLENBQUM7SUFFRDs7T0FFRztJQUNNLEtBQUssQ0FBMkI7SUFFekM7O09BRUc7SUFDTSxJQUFJLENBQWdCO0lBRTdCOztPQUVHO0lBQ00sU0FBUyxDQUFvQztJQUV0RDs7T0FFRztJQUNNLE1BQU0sQ0FBbUI7SUFFbEM7O09BRUc7SUFDTSxXQUFXLENBQTJCO0lBRS9DOztPQUVHO0lBQ0gsSUFBSSxLQUFLO1FBQ1AsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3JCLENBQUM7SUFDTyxNQUFNLENBQW9CO0lBRWxDOztPQUVH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QztnQkFFRCxNQUFNLFFBQVEsR0FBRyxhQUFhLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ2hFLE1BQU0sR0FBRyxHQUFHLEdBQUcsR0FBRyxJQUFJLFFBQVEsRUFBRSxDQUFDO2dCQUNqQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFLENBQUM7WUFDMUMsQ0FBQztTQUNGLENBQUM7YUFDRCxXQUFXLENBQUMsQ0FBQyxNQUEwQixFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBQzdFLENBQUM7SUFFTyxnQkFBZ0IsQ0FBQyxZQUFlLEVBQUUsUUFBVztRQUNuRCxJQUFJLFlBQVksS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUM5QixPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7UUFFRCxNQUFNLG1CQUFtQixHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQztRQUNuRSxNQUFNLGVBQWUsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUM7UUFDM0QsT0FBTyxtQkFBbUIsSUFBSSxlQUFlLENBQUM7SUFDaEQsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IEVudGl0eUtleSwgRW50aXR5UmVjb3JkLCBFbnRpdHlTdGF0ZSB9IGZyb20gJy4vZW50aXR5LmludGVyZmFjZXMnO1xuaW1wb3J0IHsgZ2V0RW50aXR5SWQsIGdldEVudGl0eVByb3BlcnR5IH0gZnJvbSAnLi9lbnRpdHkudXRpbHMnO1xuaW1wb3J0IHsgRW50aXR5U3RhdGVNYW5hZ2VyIH0gZnJvbSAnLi9zdGF0ZSc7XG5pbXBvcnQgdHlwZSB7IEVudGl0eVN0b3JlU3RyYXRlZ3kgfSBmcm9tICcuL3N0cmF0ZWdpZXMvc3RyYXRlZ3knO1xuaW1wb3J0IHsgRW50aXR5VmlldyB9IGZyb20gJy4vdmlldyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRW50aXR5U3RvcmVPcHRpb25zIHtcbiAgZ2V0S2V5PzogKGVudGl0eTogb2JqZWN0KSA9PiBFbnRpdHlLZXk7XG4gIGdldFByb3BlcnR5PzogKGVudGl0eTogb2JqZWN0LCBwcm9wZXJ0eTogc3RyaW5nKSA9PiBhbnk7XG59XG5cbi8qKlxuICogQW4gZW50aXR5IHN0b3JlIGNsYXNzIGhvbGRzIGFueSBudW1iZXIgb2YgZW50aXRpZXNcbiAqIGFzIHdlbGwgYXMgdGhlaXIgc3RhdGUuIEl0IGNhbiBiZSBvYnNlcnZlZCwgZmlsdGVyZWQgYW5kIHNvcnRlZCBhbmRcbiAqIHByb3ZpZGVzIG1ldGhvZHMgdG8gaW5zZXJ0LCB1cGRhdGUgb3IgZGVsZXRlIGVudGl0aWVzLlxuICovXG5leHBvcnQgY2xhc3MgRW50aXR5U3RvcmU8XG4gIEUgZXh0ZW5kcyBvYmplY3QgPSBvYmplY3QsXG4gIFMgZXh0ZW5kcyBFbnRpdHlTdGF0ZSA9IEVudGl0eVN0YXRlXG4+IHtcbiAgLyoqXG4gICAqIE9ic2VydmFibGUgb2YgdGhlIHJhdyBlbnRpdGllc1xuICAgKi9cbiAgcmVhZG9ubHkgZW50aXRpZXMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxFW10+KFtdKTtcblxuICAvKipcbiAgICogTnVtYmVyIG9mIGVudGl0aWVzXG4gICAqL1xuICByZWFkb25seSBjb3VudCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PG51bWJlcj4oMCk7XG4gIGdldCBjb3VudCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmNvdW50JC52YWx1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBzdG9yZSBpcyBlbXB0eVxuICAgKi9cbiAgcmVhZG9ubHkgZW1wdHkkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPih0cnVlKTtcbiAgZ2V0IGVtcHR5KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmVtcHR5JC52YWx1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFbnRpdHkgc3RvcmUgc3RhdGVcbiAgICovXG4gIHJlYWRvbmx5IHN0YXRlOiBFbnRpdHlTdGF0ZU1hbmFnZXI8RSwgUz47XG5cbiAgLyoqXG4gICAqIFZpZXcgb2YgYWxsIHRoZSBlbnRpdGllc1xuICAgKi9cbiAgcmVhZG9ubHkgdmlldzogRW50aXR5VmlldzxFPjtcblxuICAvKipcbiAgICogVmlldyBvZiBhbGwgdGhlIGVudGl0aWVzIGFuZCB0aGVpciBzdGF0ZVxuICAgKi9cbiAgcmVhZG9ubHkgc3RhdGVWaWV3OiBFbnRpdHlWaWV3PEUsIEVudGl0eVJlY29yZDxFLCBTPj47XG5cbiAgLyoqXG4gICAqIE1ldGhvZCB0byBnZXQgYW4gZW50aXR5J3MgaWRcbiAgICovXG4gIHJlYWRvbmx5IGdldEtleTogKEUpID0+IEVudGl0eUtleTtcblxuICAvKipcbiAgICogTWV0aG9kIHRvIGdldCBhbiBlbnRpdHkncyBuYW1lZCBwcm9wZXJ0eVxuICAgKi9cbiAgcmVhZG9ubHkgZ2V0UHJvcGVydHk6IChFLCBwcm9wOiBzdHJpbmcpID0+IGFueTtcblxuICAvKipcbiAgICogU3RvcmUgaW5kZXhcbiAgICovXG4gIGdldCBpbmRleCgpOiBNYXA8RW50aXR5S2V5LCBFPiB7XG4gICAgcmV0dXJuIHRoaXMuX2luZGV4O1xuICB9XG4gIHByaXZhdGUgX2luZGV4OiBNYXA8RW50aXR5S2V5LCBFPjtcblxuICAvKipcbiAgICogU3RvcmUgaW5kZXhcbiAgICovXG4gIGdldCBwcmlzdGluZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fcHJpc3RpbmU7XG4gIH1cbiAgcHJpdmF0ZSBfcHJpc3RpbmU6IGJvb2xlYW4gPSB0cnVlO1xuXG4gIC8qKlxuICAgKiBTdHJhdGVnaWVzXG4gICAqL1xuICBwcml2YXRlIHN0cmF0ZWdpZXM6IEVudGl0eVN0b3JlU3RyYXRlZ3lbXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKGVudGl0aWVzOiBFW10sIG9wdGlvbnM6IEVudGl0eVN0b3JlT3B0aW9ucyA9IHt9KSB7XG4gICAgdGhpcy5nZXRLZXkgPSBvcHRpb25zLmdldEtleSA/IG9wdGlvbnMuZ2V0S2V5IDogZ2V0RW50aXR5SWQ7XG4gICAgdGhpcy5nZXRQcm9wZXJ0eSA9IG9wdGlvbnMuZ2V0UHJvcGVydHlcbiAgICAgID8gb3B0aW9ucy5nZXRQcm9wZXJ0eVxuICAgICAgOiBnZXRFbnRpdHlQcm9wZXJ0eTtcblxuICAgIHRoaXMuc3RhdGUgPSB0aGlzLmNyZWF0ZVN0YXRlTWFuYWdlcigpO1xuICAgIHRoaXMudmlldyA9IHRoaXMuY3JlYXRlRGF0YVZpZXcoKTtcbiAgICB0aGlzLnN0YXRlVmlldyA9IHRoaXMuY3JlYXRlU3RhdGVWaWV3KCk7XG5cbiAgICB0aGlzLnZpZXcubGlmdCgpO1xuICAgIHRoaXMuc3RhdGVWaWV3LmxpZnQoKTtcblxuICAgIGlmIChlbnRpdGllcy5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLmxvYWQoZW50aXRpZXMpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9pbmRleCA9IHRoaXMuZ2VuZXJhdGVJbmRleChlbnRpdGllcyk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEdldCBhbiBlbnRpdHkgZnJvbSB0aGUgc3RvcmUgYnkga2V5XG4gICAqIEBwYXJhbSBrZXkgS2V5XG4gICAqIEByZXR1cm5zIEVudGl0eVxuICAgKi9cbiAgZ2V0KGtleTogRW50aXR5S2V5KTogRSB7XG4gICAgcmV0dXJuIHRoaXMuaW5kZXguZ2V0KGtleSk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IGFsbCBlbnRpdGllcyBpbiB0aGUgc3RvcmVcbiAgICogQHJldHVybnMgQXJyYXkgb2YgZW50aXRpZXNcbiAgICovXG4gIGFsbCgpOiBFW10ge1xuICAgIHJldHVybiB0aGlzLmVudGl0aWVzJC52YWx1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgdGhpcyBzdG9yZSdzIGVudGl0aWVzXG4gICAqIEBwYXJhbSBlbnRpdGllcyBFbnRpdGllc1xuICAgKi9cbiAgbG9hZChlbnRpdGllczogRVtdLCBwcmlzdGluZTogYm9vbGVhbiA9IHRydWUpIHtcbiAgICB0aGlzLl9pbmRleCA9IHRoaXMuZ2VuZXJhdGVJbmRleChlbnRpdGllcyk7XG4gICAgdGhpcy5fcHJpc3RpbmUgPSBwcmlzdGluZTtcbiAgICB0aGlzLm5leHQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDbGVhciB0aGUgc3RvcmUncyBlbnRpdGllcyBidXQga2VlcCB0aGUgc3RhdGUgYW5kIHZpZXdzIGludGFjdC5cbiAgICogVmlld3Mgd29uJ3QgcmV0dXJuIGFueSBkYXRhIGJ1dCBmdXR1cmUgZGF0YSB3aWxsIGJlIHN1YmplY3QgdG8gdGhlXG4gICAqIGN1cnJlbnQgdmlld3MgZmlsdGVyIGFuZCBzb3J0XG4gICAqL1xuICBzb2Z0Q2xlYXIoKSB7XG4gICAgaWYgKHRoaXMuaW5kZXggJiYgdGhpcy5pbmRleC5zaXplID4gMCkge1xuICAgICAgdGhpcy5pbmRleC5jbGVhcigpO1xuICAgICAgdGhpcy5fcHJpc3RpbmUgPSB0cnVlO1xuICAgICAgdGhpcy5uZXh0KCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLmluZGV4KSB7XG4gICAgICB0aGlzLnVwZGF0ZUNvdW50KCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENsZWFyIHRoZSBzdG9yZSdzIGVudGl0aWVzLCBzdGF0ZSBhbmQgdmlld3NcbiAgICovXG4gIGNsZWFyKCkge1xuICAgIHRoaXMuc3RhdGVWaWV3LmNsZWFyKCk7XG4gICAgdGhpcy52aWV3LmNsZWFyKCk7XG4gICAgdGhpcy5zdGF0ZS5jbGVhcigpO1xuICAgIHRoaXMuc29mdENsZWFyKCk7XG4gIH1cblxuICBkZXN0cm95KCkge1xuICAgIHRoaXMuc3RhdGVWaWV3LmRlc3Ryb3koKTtcbiAgICB0aGlzLnZpZXcuZGVzdHJveSgpO1xuICAgIHRoaXMuY2xlYXIoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbnNlcnQgYW4gZW50aXR5IGludG8gdGhlIHN0b3JlXG4gICAqIEBwYXJhbSBlbnRpdHkgRW50aXR5XG4gICAqL1xuICBpbnNlcnQoZW50aXR5OiBFKSB7XG4gICAgdGhpcy5pbnNlcnRNYW55KFtlbnRpdHldKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbnNlcnQgbWFueSBlbnRpdGllcyBpbnRvIHRoZSBzdG9yZVxuICAgKiBAcGFyYW0gZW50aXRpZXMgRW50aXRpZXNcbiAgICovXG4gIGluc2VydE1hbnkoZW50aXRpZXM6IEVbXSkge1xuICAgIGVudGl0aWVzLmZvckVhY2goKGVudGl0eTogRSkgPT5cbiAgICAgIHRoaXMuaW5kZXguc2V0KHRoaXMuZ2V0S2V5KGVudGl0eSksIGVudGl0eSlcbiAgICApO1xuICAgIHRoaXMuX3ByaXN0aW5lID0gZmFsc2U7XG4gICAgdGhpcy5uZXh0KCk7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlIG9yIGluc2VydCBhbiBlbnRpdHkgaW50byB0aGUgc3RvcmVcbiAgICogQHBhcmFtIGVudGl0eSBFbnRpdHlcbiAgICovXG4gIHVwZGF0ZShlbnRpdHk6IEUpIHtcbiAgICB0aGlzLnVwZGF0ZU1hbnkoW2VudGl0eV0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZSBvciBpbnNlcnQgbWFueSBlbnRpdGllcyBpbnRvIHRoZSBzdG9yZVxuICAgKiBAcGFyYW0gZW50aXRpZXMgRW50aXRpZXNcbiAgICovXG4gIHVwZGF0ZU1hbnkoZW50aXRpZXM6IEVbXSkge1xuICAgIGVudGl0aWVzLmZvckVhY2goKGVudGl0eTogRSkgPT5cbiAgICAgIHRoaXMuaW5kZXguc2V0KHRoaXMuZ2V0S2V5KGVudGl0eSksIGVudGl0eSlcbiAgICApO1xuICAgIHRoaXMuX3ByaXN0aW5lID0gZmFsc2U7XG4gICAgdGhpcy5uZXh0KCk7XG4gIH1cblxuICAvKipcbiAgICogQWRkIGEgc3RyYXRlZ3kgdG8gdGhpcyBzdG9yZVxuICAgKiBAcGFyYW0gc3RyYXRlZ3kgRW50aXR5IHN0b3JlIHN0cmF0ZWd5XG4gICAqIEByZXR1cm5zIEVudGl0eSBzdG9yZVxuICAgKi9cbiAgYWRkU3RyYXRlZ3koXG4gICAgc3RyYXRlZ3k6IEVudGl0eVN0b3JlU3RyYXRlZ3ksXG4gICAgYWN0aXZhdGU6IGJvb2xlYW4gPSBmYWxzZVxuICApOiBFbnRpdHlTdG9yZSB7XG4gICAgY29uc3QgZXhpc3RpbmdTdHJhdGVneSA9IHRoaXMuc3RyYXRlZ2llcy5maW5kKFxuICAgICAgKF9zdHJhdGVneTogRW50aXR5U3RvcmVTdHJhdGVneSkgPT4ge1xuICAgICAgICByZXR1cm4gc3RyYXRlZ3kuY29uc3RydWN0b3IgPT09IF9zdHJhdGVneS5jb25zdHJ1Y3RvcjtcbiAgICAgIH1cbiAgICApO1xuICAgIGlmIChleGlzdGluZ1N0cmF0ZWd5ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ0Egc3RyYXRlZ3kgb2YgdGhpcyB0eXBlIGFscmVhZHkgZXhpc3RzIG9uIHRoYXQgRW50aXR5U3RvcmUuJ1xuICAgICAgKTtcbiAgICB9XG5cbiAgICB0aGlzLnN0cmF0ZWdpZXMucHVzaChzdHJhdGVneSk7XG4gICAgc3RyYXRlZ3kuYmluZFN0b3JlKHRoaXMpO1xuXG4gICAgaWYgKGFjdGl2YXRlID09PSB0cnVlKSB7XG4gICAgICBzdHJhdGVneS5hY3RpdmF0ZSgpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZSBhIHN0cmF0ZWd5IGZyb20gdGhpcyBzdG9yZVxuICAgKiBAcGFyYW0gc3RyYXRlZ3kgRW50aXR5IHN0b3JlIHN0cmF0ZWd5XG4gICAqIEByZXR1cm5zIEVudGl0eSBzdG9yZVxuICAgKi9cbiAgcmVtb3ZlU3RyYXRlZ3koc3RyYXRlZ3k6IEVudGl0eVN0b3JlU3RyYXRlZ3kpOiBFbnRpdHlTdG9yZSB7XG4gICAgY29uc3QgaW5kZXggPSB0aGlzLnN0cmF0ZWdpZXMuaW5kZXhPZihzdHJhdGVneSk7XG4gICAgaWYgKGluZGV4ID49IDApIHtcbiAgICAgIHRoaXMuc3RyYXRlZ2llcy5zcGxpY2UoaW5kZXgsIDEpO1xuICAgICAgc3RyYXRlZ3kudW5iaW5kU3RvcmUodGhpcyk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiBzdHJhdGVnaWVzIG9mIGEgZ2l2ZW4gdHlwZVxuICAgKiBAcGFyYW0gdHlwZSBFbnRpdHkgc3RvcmUgc3RyYXRlZ3kgY2xhc3NcbiAgICogQHJldHVybnMgU3RyYXRlZ2llc1xuICAgKi9cbiAgZ2V0U3RyYXRlZ3lPZlR5cGUodHlwZTogdHlwZW9mIEVudGl0eVN0b3JlU3RyYXRlZ3kpOiBFbnRpdHlTdG9yZVN0cmF0ZWd5IHtcbiAgICByZXR1cm4gdGhpcy5zdHJhdGVnaWVzLmZpbmQoKHN0cmF0ZWd5OiBFbnRpdHlTdG9yZVN0cmF0ZWd5KSA9PiB7XG4gICAgICByZXR1cm4gc3RyYXRlZ3kgaW5zdGFuY2VvZiB0eXBlO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEFjdGl2YXRlIHN0cmF0ZWdpZXMgb2YgYSBnaXZlbiB0eXBlXG4gICAqIEBwYXJhbSB0eXBlIEVudGl0eSBzdG9yZSBzdHJhdGVneSBjbGFzc1xuICAgKi9cbiAgYWN0aXZhdGVTdHJhdGVneU9mVHlwZSh0eXBlOiB0eXBlb2YgRW50aXR5U3RvcmVTdHJhdGVneSkge1xuICAgIGNvbnN0IHN0cmF0ZWd5ID0gdGhpcy5nZXRTdHJhdGVneU9mVHlwZSh0eXBlKTtcbiAgICBpZiAoc3RyYXRlZ3kgIT09IHVuZGVmaW5lZCkge1xuICAgICAgc3RyYXRlZ3kuYWN0aXZhdGUoKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogRGVhY3RpdmF0ZSBzdHJhdGVnaWVzIG9mIGEgZ2l2ZW4gdHlwZVxuICAgKiBAcGFyYW0gdHlwZSBFbnRpdHkgc3RvcmUgc3RyYXRlZ3kgY2xhc3NcbiAgICovXG4gIGRlYWN0aXZhdGVTdHJhdGVneU9mVHlwZSh0eXBlOiB0eXBlb2YgRW50aXR5U3RvcmVTdHJhdGVneSkge1xuICAgIGNvbnN0IHN0cmF0ZWd5ID0gdGhpcy5nZXRTdHJhdGVneU9mVHlwZSh0eXBlKTtcbiAgICBpZiAoc3RyYXRlZ3kgIT09IHVuZGVmaW5lZCkge1xuICAgICAgc3RyYXRlZ3kuZGVhY3RpdmF0ZSgpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBEZWxldGUgYW4gZW50aXR5IGZyb20gdGhlIHN0b3JlXG4gICAqIEBwYXJhbSBlbnRpdHkgRW50aXR5XG4gICAqL1xuICBkZWxldGUoZW50aXR5OiBFKSB7XG4gICAgdGhpcy5kZWxldGVNYW55KFtlbnRpdHldKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZWxldGUgbWFueSBlbnRpdGllcyBmcm9tIHRoZSBzdG9yZVxuICAgKiBAcGFyYW0gZW50aXRpZXMgRW50aXRpZXNcbiAgICovXG4gIGRlbGV0ZU1hbnkoZW50aXRpZXM6IEVbXSkge1xuICAgIGVudGl0aWVzLmZvckVhY2goKGVudGl0eTogRSkgPT4gdGhpcy5pbmRleC5kZWxldGUodGhpcy5nZXRLZXkoZW50aXR5KSkpO1xuICAgIHRoaXMuX3ByaXN0aW5lID0gZmFsc2U7XG4gICAgdGhpcy5uZXh0KCk7XG4gIH1cblxuICAvKipcbiAgICogR2VuZXJhdGUgYSBjb21wbGV0ZSBpbmRleCBvZiBhbGwgdGhlIGVudGl0aWVzXG4gICAqIEBwYXJhbSBlbnRpdGllcyBFbnRpdGllc1xuICAgKiBAcmV0dXJucyBJbmRleFxuICAgKi9cbiAgcHJpdmF0ZSBnZW5lcmF0ZUluZGV4KGVudGl0aWVzOiBFW10pOiBNYXA8RW50aXR5S2V5LCBFPiB7XG4gICAgY29uc3QgZW50cmllcyA9IGVudGl0aWVzLm1hcCgoZW50aXR5OiBFKSA9PiBbdGhpcy5nZXRLZXkoZW50aXR5KSwgZW50aXR5XSk7XG4gICAgcmV0dXJuIG5ldyBNYXAoZW50cmllcyBhcyBbRW50aXR5S2V5LCBFXVtdKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQdXNoIHRoZSBpbmRleCdzIGVudGl0aWVzIGludG8gdGhlIGVudGl0aWVzJCBvYnNlcnZhYmxlXG4gICAqL1xuICBwcml2YXRlIG5leHQoKSB7XG4gICAgdGhpcy5lbnRpdGllcyQubmV4dChBcnJheS5mcm9tKHRoaXMuaW5kZXgudmFsdWVzKCkpKTtcbiAgICB0aGlzLnVwZGF0ZUNvdW50KCk7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlIHRoZSBzdG9yZSdzIGNvdW50IGFuZCBlbXB0eVxuICAgKi9cbiAgcHJpdmF0ZSB1cGRhdGVDb3VudCgpIHtcbiAgICBjb25zdCBjb3VudCA9IHRoaXMuaW5kZXguc2l6ZTtcbiAgICBjb25zdCBlbXB0eSA9IGNvdW50ID09PSAwO1xuICAgIHRoaXMuY291bnQkLm5leHQoY291bnQpO1xuICAgIHRoaXMuZW1wdHkkLm5leHQoZW1wdHkpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSB0aGUgZW50aXR5IHN0YXRlIG1hbmFnZXJcbiAgICogQHJldHVybnMgRW50aXR5U3RhdGVNYW5hZ2VyXG4gICAqL1xuICBwcml2YXRlIGNyZWF0ZVN0YXRlTWFuYWdlcigpIHtcbiAgICByZXR1cm4gbmV3IEVudGl0eVN0YXRlTWFuYWdlcjxFLCBTPih7XG4gICAgICBnZXRLZXk6IHRoaXMuZ2V0S2V5LFxuICAgICAgaW5kZXg6IHRoaXMuaW5kZXhcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgdGhlIGRhdGEgdmlld1xuICAgKiBAcmV0dXJucyBFbnRpdHlWaWV3PEU+XG4gICAqL1xuICBwcml2YXRlIGNyZWF0ZURhdGFWaWV3KCkge1xuICAgIHJldHVybiBuZXcgRW50aXR5VmlldzxFPih0aGlzLmVudGl0aWVzJCk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIHRoZSBzdGF0ZSB2aWV3XG4gICAqIEByZXR1cm5zIEVudGl0eVZpZXc8RW50aXR5UmVjb3JkPEU+PlxuICAgKi9cbiAgcHJpdmF0ZSBjcmVhdGVTdGF0ZVZpZXcoKSB7XG4gICAgcmV0dXJuIG5ldyBFbnRpdHlWaWV3PEUsIEVudGl0eVJlY29yZDxFLCBTPj4odGhpcy52aWV3LmFsbCQoKSlcbiAgICAgIC5qb2luKHtcbiAgICAgICAgc291cmNlOiB0aGlzLnN0YXRlLmNoYW5nZSQsXG4gICAgICAgIHJlZHVjZTogKGVudGl0eTogRSk6IEVudGl0eVJlY29yZDxFLCBTPiA9PiB7XG4gICAgICAgICAgY29uc3Qga2V5ID0gdGhpcy5nZXRLZXkoZW50aXR5KTtcbiAgICAgICAgICBjb25zdCBzdGF0ZSA9IHRoaXMuc3RhdGUuZ2V0KGVudGl0eSk7XG4gICAgICAgICAgY29uc3QgY3VycmVudFJlY29yZCA9IHRoaXMuc3RhdGVWaWV3LmdldChrZXkpO1xuXG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgY3VycmVudFJlY29yZCAhPT0gdW5kZWZpbmVkICYmXG4gICAgICAgICAgICBjdXJyZW50UmVjb3JkLmVudGl0eSA9PT0gZW50aXR5ICYmXG4gICAgICAgICAgICB0aGlzLnN0YXRlc0FyZVRoZVNhbWUoY3VycmVudFJlY29yZC5zdGF0ZSwgc3RhdGUpXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICByZXR1cm4gY3VycmVudFJlY29yZDtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb25zdCByZXZpc2lvbiA9IGN1cnJlbnRSZWNvcmQgPyBjdXJyZW50UmVjb3JkLnJldmlzaW9uICsgMSA6IDE7XG4gICAgICAgICAgY29uc3QgcmVmID0gYCR7a2V5fS0ke3JldmlzaW9ufWA7XG4gICAgICAgICAgcmV0dXJuIHsgZW50aXR5LCBzdGF0ZSwgcmV2aXNpb24sIHJlZiB9O1xuICAgICAgICB9XG4gICAgICB9KVxuICAgICAgLmNyZWF0ZUluZGV4KChyZWNvcmQ6IEVudGl0eVJlY29yZDxFLCBTPikgPT4gdGhpcy5nZXRLZXkocmVjb3JkLmVudGl0eSkpO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0ZXNBcmVUaGVTYW1lKGN1cnJlbnRTdGF0ZTogUywgbmV3U3RhdGU6IFMpOiBib29sZWFuIHtcbiAgICBpZiAoY3VycmVudFN0YXRlID09PSBuZXdTdGF0ZSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgY29uc3QgY3VycmVudFN0YXRlSXNFbXB0eSA9IE9iamVjdC5rZXlzKGN1cnJlbnRTdGF0ZSkubGVuZ3RoID09PSAwO1xuICAgIGNvbnN0IG5ld1N0YXRlSXNFbXB0eSA9IE9iamVjdC5rZXlzKG5ld1N0YXRlKS5sZW5ndGggPT09IDA7XG4gICAgcmV0dXJuIGN1cnJlbnRTdGF0ZUlzRW1wdHkgJiYgbmV3U3RhdGVJc0VtcHR5O1xuICB9XG59XG4iXX0=
|
|
@@ -1,80 +0,0 @@
|
|
|
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLWN1c3RvbS1mdW5jdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbW1vbi9zcmMvbGliL2VudGl0eS9zaGFyZWQvc3RyYXRlZ2llcy9maWx0ZXItY3VzdG9tLWZ1bmN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUVqRDs7O0dBR0c7QUFDSCxNQUFNLE9BQU8sbUNBQW9DLFNBQVEsbUJBQW1CO0lBQ3BEO0lBQXRCLFlBQXNCLE9BQXVDO1FBQzNELEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQURLLFlBQU8sR0FBUCxPQUFPLENBQWdDO0lBRTdELENBQUM7SUFFRDs7T0FFRztJQUNLLE9BQU8sR0FBNkIsSUFBSSxHQUFHLEVBQUUsQ0FBQztJQUV0RDs7O09BR0c7SUFDSCxTQUFTLENBQUMsS0FBa0I7UUFDMUIsS0FBSyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN2QixJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssSUFBSSxFQUFFLENBQUM7WUFDekIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMxQixDQUFDO0lBQ0gsQ0FBQztJQUVEOzs7T0FHRztJQUNILFdBQVcsQ0FBQyxLQUFrQjtRQUM1QixLQUFLLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3pCLElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxJQUFJLEVBQUUsQ0FBQztZQUN6QixJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzVCLENBQUM7SUFDSCxDQUFDO0lBRUQ7OztPQUdHO0lBQ08sVUFBVTtRQUNsQixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDbkIsQ0FBQztJQUVEOzs7T0FHRztJQUNPLFlBQVk7UUFDcEIsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFRDs7T0FFRztJQUNLLFNBQVM7UUFDZixJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQWtCLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUN2RSxDQUFDO0lBRUQ7O09BRUc7SUFDSyxXQUFXO1FBQ2pCLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBa0IsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ3pFLENBQUM7SUFFRDs7T0FFRztJQUNLLFdBQVcsQ0FBQyxLQUFrQjtRQUNwQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FDZCxLQUFLLEVBQ0wsS0FBSyxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUN6RCxDQUFDO0lBQ0osQ0FBQztJQUVEOztPQUVHO0lBQ0ssYUFBYSxDQUFDLEtBQWtCO1FBQ3RDLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3pDLElBQUksUUFBUSxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQzNCLE9BQU87UUFDVCxDQUFDO1FBRUQsS0FBSyxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDdkMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDN0IsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRW50aXR5U3RvcmVTdHJhdGVneUZ1bmNPcHRpb25zIH0gZnJvbSAnLi4vZW50aXR5LmludGVyZmFjZXMnO1xuaW1wb3J0IHsgRW50aXR5U3RvcmUgfSBmcm9tICcuLi9zdG9yZSc7XG5pbXBvcnQgeyBFbnRpdHlTdG9yZVN0cmF0ZWd5IH0gZnJvbSAnLi9zdHJhdGVneSc7XG5cbi8qKlxuICogV2hlbiBhY3RpdmUsIHRoaXMgc3RyYXRlZ3kgZmlsdGVycyBhIHN0b3JlJ3Mgc3RhdGVWaWV3IHRvIHJldHVyblxuICogc2VsZWN0ZWQgZW50aXRpZXMgb25seS5cbiAqL1xuZXhwb3J0IGNsYXNzIEVudGl0eVN0b3JlRmlsdGVyQ3VzdG9tRnVuY1N0cmF0ZWd5IGV4dGVuZHMgRW50aXR5U3RvcmVTdHJhdGVneSB7XG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBvcHRpb25zOiBFbnRpdHlTdG9yZVN0cmF0ZWd5RnVuY09wdGlvbnMpIHtcbiAgICBzdXBlcihvcHRpb25zKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTdG9yZSAvIGZpbHRlciBpZHMgbWFwXG4gICAqL1xuICBwcml2YXRlIGZpbHRlcnM6IE1hcDxFbnRpdHlTdG9yZSwgc3RyaW5nPiA9IG5ldyBNYXAoKTtcblxuICAvKipcbiAgICogQmluZCB0aGlzIHN0cmF0ZWd5IHRvIGEgc3RvcmUgYW5kIHN0YXJ0IGZpbHRlcmluZyBpdFxuICAgKiBAcGFyYW0gc3RvcmUgRW50aXR5IHN0b3JlXG4gICAqL1xuICBiaW5kU3RvcmUoc3RvcmU6IEVudGl0eVN0b3JlKSB7XG4gICAgc3VwZXIuYmluZFN0b3JlKHN0b3JlKTtcbiAgICBpZiAodGhpcy5hY3RpdmUgPT09IHRydWUpIHtcbiAgICAgIHRoaXMuZmlsdGVyU3RvcmUoc3RvcmUpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBVbmJpbmQgdGhpcyBzdHJhdGVneSBmcm9tIGEgc3RvcmUgYW5kIHN0b3AgZmlsdGVyaW5nIGl0XG4gICAqIEBwYXJhbSBzdG9yZSBFbnRpdHkgc3RvcmVcbiAgICovXG4gIHVuYmluZFN0b3JlKHN0b3JlOiBFbnRpdHlTdG9yZSkge1xuICAgIHN1cGVyLnVuYmluZFN0b3JlKHN0b3JlKTtcbiAgICBpZiAodGhpcy5hY3RpdmUgPT09IHRydWUpIHtcbiAgICAgIHRoaXMudW5maWx0ZXJTdG9yZShzdG9yZSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFN0YXJ0IGZpbHRlcmluZyBhbGwgc3RvcmVzXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcHJvdGVjdGVkIGRvQWN0aXZhdGUoKSB7XG4gICAgdGhpcy5maWx0ZXJBbGwoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTdG9wIGZpbHRlcmluZyBhbGwgc3RvcmVzXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcHJvdGVjdGVkIGRvRGVhY3RpdmF0ZSgpIHtcbiAgICB0aGlzLnVuZmlsdGVyQWxsKCk7XG4gIH1cblxuICAvKipcbiAgICogRmlsdGVyIGFsbCBzdG9yZXNcbiAgICovXG4gIHByaXZhdGUgZmlsdGVyQWxsKCkge1xuICAgIHRoaXMuc3RvcmVzLmZvckVhY2goKHN0b3JlOiBFbnRpdHlTdG9yZSkgPT4gdGhpcy5maWx0ZXJTdG9yZShzdG9yZSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVuZmlsdGVyIGFsbCBzdG9yZXNcbiAgICovXG4gIHByaXZhdGUgdW5maWx0ZXJBbGwoKSB7XG4gICAgdGhpcy5zdG9yZXMuZm9yRWFjaCgoc3RvcmU6IEVudGl0eVN0b3JlKSA9PiB0aGlzLnVuZmlsdGVyU3RvcmUoc3RvcmUpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGaWx0ZXIgYSBzdG9yZSBhbmQgYWRkIGl0IHRvIHRoZSBmaWx0ZXJzIG1hcFxuICAgKi9cbiAgcHJpdmF0ZSBmaWx0ZXJTdG9yZShzdG9yZTogRW50aXR5U3RvcmUpIHtcbiAgICB0aGlzLmZpbHRlcnMuc2V0KFxuICAgICAgc3RvcmUsXG4gICAgICBzdG9yZS5zdGF0ZVZpZXcuYWRkRmlsdGVyKHRoaXMub3B0aW9ucy5maWx0ZXJDbGF1c2VGdW5jKVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogVW5maWx0ZXIgYSBzdG9yZSBhbmQgZGVsZXRlIGl0IGZyb20gdGhlIGZpbHRlcnMgbWFwXG4gICAqL1xuICBwcml2YXRlIHVuZmlsdGVyU3RvcmUoc3RvcmU6IEVudGl0eVN0b3JlKSB7XG4gICAgY29uc3QgZmlsdGVySWQgPSB0aGlzLmZpbHRlcnMuZ2V0KHN0b3JlKTtcbiAgICBpZiAoZmlsdGVySWQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHN0b3JlLnN0YXRlVmlldy5yZW1vdmVGaWx0ZXIoZmlsdGVySWQpO1xuICAgIHRoaXMuZmlsdGVycy5kZWxldGUoc3RvcmUpO1xuICB9XG59XG4iXX0=
|