@uxland/primary-shell 3.5.1 → 3.5.3
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/dist/index.js +1545 -1293
- package/dist/index.js.map +1 -1
- package/dist/index.umd.cjs +127 -116
- package/dist/index.umd.cjs.map +1 -1
- package/dist/primary/shell/src/UI/components/primaria-shell/primaria-shell.d.ts +1 -0
- package/dist/primary/shell/src/UI/shared-components/primaria-interaction/typings.d.ts +1 -1
- package/dist/primary/shell/src/UI/shared-components/primaria-text-editor/primaria-rich-text-editor.d.ts +1 -0
- package/dist/primary/shell/src/internal-plugins/activity-history/{features/inject-async-history-items → activity-history-item/add/add-async-history-items}/bootstrapper.d.ts +1 -1
- package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/add/add-async-history-items/handler.d.ts +6 -0
- package/dist/primary/shell/src/internal-plugins/activity-history/{features/inject-async-history-items → activity-history-item/add/add-async-history-items}/request.d.ts +3 -1
- package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/add/add-history-item/action.d.ts +5 -0
- package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/add/add-history-item/add-item-to-collection.d.ts +10 -0
- package/dist/primary/shell/src/internal-plugins/activity-history/{features → activity-history-item/add}/add-history-item/bootstrapper.d.ts +1 -1
- package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/add/add-history-item/handler.d.ts +6 -0
- package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/add/add-history-item/reducer.d.ts +8 -0
- package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/add/add-history-items/action.d.ts +6 -0
- package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/add/add-history-items/add-items-to-collection.d.ts +10 -0
- package/dist/primary/shell/src/internal-plugins/activity-history/{features → activity-history-item/add}/add-history-items/bootstrapper.d.ts +1 -1
- package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/add/add-history-items/handler.d.ts +6 -0
- package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/add/add-history-items/reducer.d.ts +9 -0
- package/dist/primary/shell/src/internal-plugins/activity-history/{features → activity-history-item/add}/add-history-items/request.d.ts +2 -0
- package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/bootstrapper.d.ts +4 -0
- package/dist/primary/shell/src/internal-plugins/activity-history/{domain → activity-history-item/domain}/model.d.ts +5 -3
- package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/domain/specs/own-spec.d.ts +8 -0
- package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/domain/specs/relevant-spec.d.ts +8 -0
- package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/domain/specs/search-string-spec.d.ts +9 -0
- package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/domain/specs/spec.d.ts +29 -0
- package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/domain/specs/true-spec.d.ts +6 -0
- package/dist/primary/shell/src/internal-plugins/activity-history/{features → activity-history-item}/export-to-pdf/bootstrapper.d.ts +1 -1
- package/dist/primary/shell/src/internal-plugins/activity-history/{components → activity-history-item/export-to-pdf}/export-pdf-modal/export-pdf-modal.d.ts +1 -1
- package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/export-to-pdf/handler.d.ts +6 -0
- package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/filter/UI/activity-history-filters/activity-history-filters.d.ts +13 -0
- package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/filter/UI/activity-history-filters/template.d.ts +3 -0
- package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/filter/actions.d.ts +1 -0
- package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/filter/bootstrapper.d.ts +4 -0
- package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/filter/common-filters.d.ts +3 -0
- package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/filter/constants.d.ts +7 -0
- package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/filter/model.d.ts +19 -0
- package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/filter/selectors.d.ts +157 -0
- package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/filter/set-common-filter/bootstrapper.d.ts +4 -0
- package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/filter/set-common-filter/handler.d.ts +6 -0
- package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/filter/set-common-filter/request.d.ts +10 -0
- package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/list/UI/main-view/activity-history-main.d.ts +23 -0
- package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/list/UI/main-view/template.d.ts +4 -0
- package/dist/primary/shell/src/internal-plugins/activity-history/{components/activity-history/activity-history-timeline → activity-history-item/list/UI/timeline}/activity-history-timeline.d.ts +3 -3
- package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/list/bootstrapper.d.ts +2 -0
- package/dist/primary/shell/src/internal-plugins/activity-history/{domain → activity-history-item/list}/group-history-items/group-history-items.d.ts +1 -1
- package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/list/handle-busy/actions.d.ts +1 -0
- package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/list/handle-busy/bootstrapper.d.ts +2 -0
- package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/list/handle-busy/busy-component/component.d.ts +8 -0
- package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/list/handle-busy/busy-component/template.d.ts +4 -0
- package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/list/handle-busy/reducers.d.ts +4 -0
- package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/list/handle-busy/selectors.d.ts +4 -0
- package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/list/handle-error/actions.d.ts +1 -0
- package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/list/handle-error/reducers.d.ts +2 -0
- package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/list/selectors.d.ts +156 -0
- package/dist/primary/shell/src/internal-plugins/activity-history/{domain → activity-history-item/list}/sort-history-items-by-date/sort-history-items-by-date.d.ts +1 -1
- package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/list/sort-history-items-by-date/sort-history-items-by-date.test.d.ts +1 -0
- package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/remove/reducer.d.ts +1 -0
- package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/search/actions.d.ts +1 -0
- package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/search/activity-history-search-bar/activity-history-search-bar.d.ts +8 -0
- package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/search/activity-history-search-bar/template.d.ts +3 -0
- package/dist/primary/shell/src/internal-plugins/activity-history/{components/activity-history/activity-history-search-header/activity-history-search-header.d.ts → activity-history-item/search/activity-history-search-results/activity-history-search-results.d.ts} +1 -1
- package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/search/activity-history-search-results/template.d.ts +3 -0
- package/dist/primary/shell/src/internal-plugins/activity-history/{features/search-items → activity-history-item/search}/bootstrapper.d.ts +1 -1
- package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/search/handler.d.ts +6 -0
- package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/search/reducer.d.ts +3 -0
- package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/search/selectors.d.ts +3 -0
- package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/slice.d.ts +26 -0
- package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/update/action.d.ts +4 -0
- package/dist/primary/shell/src/internal-plugins/activity-history/{features/update-history-item → activity-history-item/update}/bootstrapper.d.ts +1 -1
- package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/update/handler.d.ts +6 -0
- package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/update/reducer.d.ts +7 -0
- package/dist/primary/shell/src/internal-plugins/activity-history/{features/update-history-item → activity-history-item/update}/request.d.ts +1 -1
- package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/update/update-item-in-collection.d.ts +3 -0
- package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/update/update-item-in-collection.test.d.ts +1 -0
- package/dist/primary/shell/src/internal-plugins/activity-history/index.d.ts +1 -1
- package/dist/primary/shell/src/internal-plugins/activity-history/infrastructure/base-handlers.d.ts +16 -0
- package/dist/primary/shell/src/internal-plugins/activity-history/infrastructure/ioc/container.d.ts +2 -0
- package/dist/primary/shell/src/internal-plugins/activity-history/infrastructure/state/store.d.ts +16 -4
- package/package.json +1 -1
- package/src/UI/components/primaria-shell/primaria-shell.ts +12 -5
- package/src/UI/shared-components/primaria-interaction/components/notifier-component-styles.css +6 -6
- package/src/UI/shared-components/primaria-interaction/components/notifier-component.ts +2 -2
- package/src/UI/shared-components/primaria-interaction/typings.ts +1 -1
- package/src/UI/shared-components/primaria-nav-item/primaria-nav-item.ts +22 -3
- package/src/UI/shared-components/primaria-text-editor/primaria-rich-text-editor.ts +23 -0
- package/src/api/broker/factory.ts +13 -1
- package/src/internal-plugins/activity-history/{features/inject-async-history-items → activity-history-item/add/add-async-history-items}/bootstrapper.ts +2 -2
- package/src/internal-plugins/activity-history/activity-history-item/add/add-async-history-items/handler.ts +27 -0
- package/src/internal-plugins/activity-history/{features/inject-async-history-items → activity-history-item/add/add-async-history-items}/request.ts +3 -1
- package/src/internal-plugins/activity-history/activity-history-item/add/add-history-item/action.ts +3 -0
- package/src/internal-plugins/activity-history/activity-history-item/add/add-history-item/add-item-to-collection.ts +11 -0
- package/src/internal-plugins/activity-history/{features → activity-history-item/add}/add-history-item/bootstrapper.ts +2 -2
- package/src/internal-plugins/activity-history/{features → activity-history-item/add}/add-history-item/handler.ts +4 -7
- package/src/internal-plugins/activity-history/activity-history-item/add/add-history-item/reducer.ts +15 -0
- package/src/internal-plugins/activity-history/activity-history-item/add/add-history-items/action.ts +3 -0
- package/src/internal-plugins/activity-history/{domain/handle-collections/handle-collections.test.ts → activity-history-item/add/add-history-items/add-items-to-collection.test.ts} +2 -64
- package/src/internal-plugins/activity-history/activity-history-item/add/add-history-items/add-items-to-collection.ts +25 -0
- package/src/internal-plugins/activity-history/{features → activity-history-item/add}/add-history-items/bootstrapper.ts +2 -2
- package/src/internal-plugins/activity-history/activity-history-item/add/add-history-items/handler.ts +22 -0
- package/src/internal-plugins/activity-history/activity-history-item/add/add-history-items/reducer.ts +22 -0
- package/src/internal-plugins/activity-history/{features → activity-history-item/add}/add-history-items/request.ts +2 -0
- package/src/internal-plugins/activity-history/activity-history-item/bootstrapper.ts +46 -0
- package/src/internal-plugins/activity-history/{domain → activity-history-item/domain}/model.ts +9 -3
- package/src/internal-plugins/activity-history/activity-history-item/domain/specs/own-spec.ts +14 -0
- package/src/internal-plugins/activity-history/activity-history-item/domain/specs/relevant-spec.ts +11 -0
- package/src/internal-plugins/activity-history/activity-history-item/domain/specs/relevant.spec.ts +59 -0
- package/src/internal-plugins/activity-history/activity-history-item/domain/specs/search-string-spec.test.ts +105 -0
- package/src/internal-plugins/activity-history/activity-history-item/domain/specs/search-string-spec.ts +58 -0
- package/src/internal-plugins/activity-history/activity-history-item/domain/specs/spec.ts +54 -0
- package/src/internal-plugins/activity-history/activity-history-item/domain/specs/true-spec.ts +8 -0
- package/src/internal-plugins/activity-history/{features → activity-history-item}/export-to-pdf/bootstrapper.ts +2 -1
- package/src/internal-plugins/activity-history/{components → activity-history-item/export-to-pdf}/export-pdf-modal/export-pdf-modal.ts +2 -2
- package/src/internal-plugins/activity-history/{components → activity-history-item/export-to-pdf}/export-pdf-modal/template.ts +5 -5
- package/src/internal-plugins/activity-history/{features → activity-history-item}/export-to-pdf/handler.ts +3 -6
- package/src/internal-plugins/activity-history/activity-history-item/filter/UI/activity-history-filters/activity-history-filters.ts +40 -0
- package/src/internal-plugins/activity-history/activity-history-item/filter/UI/activity-history-filters/styles.css +39 -0
- package/src/internal-plugins/activity-history/activity-history-item/filter/UI/activity-history-filters/template.ts +30 -0
- package/src/internal-plugins/activity-history/activity-history-item/filter/actions.ts +3 -0
- package/src/internal-plugins/activity-history/activity-history-item/filter/bootstrapper.ts +14 -0
- package/src/internal-plugins/activity-history/activity-history-item/filter/common-filters.ts +29 -0
- package/src/internal-plugins/activity-history/activity-history-item/filter/constants.ts +8 -0
- package/src/internal-plugins/activity-history/activity-history-item/filter/model.ts +20 -0
- package/src/internal-plugins/activity-history/activity-history-item/filter/selectors.ts +28 -0
- package/src/internal-plugins/activity-history/activity-history-item/filter/set-common-filter/bootstrapper.ts +14 -0
- package/src/internal-plugins/activity-history/activity-history-item/filter/set-common-filter/handler.ts +13 -0
- package/src/internal-plugins/activity-history/activity-history-item/filter/set-common-filter/request.ts +3 -0
- package/src/internal-plugins/activity-history/activity-history-item/filter/slice.ts +27 -0
- package/src/internal-plugins/activity-history/activity-history-item/list/UI/main-view/activity-history-main.ts +91 -0
- package/src/internal-plugins/activity-history/{components/activity-history → activity-history-item/list/UI/main-view}/styles.css +2 -39
- package/src/internal-plugins/activity-history/{components/activity-history → activity-history-item/list/UI/main-view}/template.ts +11 -32
- package/src/internal-plugins/activity-history/{components/activity-history/activity-history-timeline → activity-history-item/list/UI/timeline}/activity-history-timeline.ts +25 -8
- package/src/internal-plugins/activity-history/{components/activity-history/activity-history-timeline → activity-history-item/list/UI/timeline}/styles.css +1 -1
- package/src/internal-plugins/activity-history/{components/activity-history/activity-history-timeline → activity-history-item/list/UI/timeline}/template.ts +8 -7
- package/src/internal-plugins/activity-history/activity-history-item/list/bootstrapper.ts +5 -0
- package/src/internal-plugins/activity-history/{domain → activity-history-item/list}/group-history-items/group-history-items.test.ts +1 -1
- package/src/internal-plugins/activity-history/{domain → activity-history-item/list}/group-history-items/group-history-items.ts +12 -8
- package/src/internal-plugins/activity-history/activity-history-item/list/handle-busy/actions.ts +4 -0
- package/src/internal-plugins/activity-history/activity-history-item/list/handle-busy/bootstrapper.ts +5 -0
- package/src/internal-plugins/activity-history/activity-history-item/list/handle-busy/busy-component/component.ts +27 -0
- package/src/internal-plugins/activity-history/activity-history-item/list/handle-busy/busy-component/styles.css +15 -0
- package/src/internal-plugins/activity-history/activity-history-item/list/handle-busy/busy-component/template.ts +10 -0
- package/src/internal-plugins/activity-history/activity-history-item/list/handle-busy/reducers.ts +8 -0
- package/src/internal-plugins/activity-history/activity-history-item/list/handle-busy/selectors.ts +13 -0
- package/src/internal-plugins/activity-history/activity-history-item/list/handle-error/actions.ts +4 -0
- package/src/internal-plugins/activity-history/activity-history-item/list/handle-error/reducers.ts +6 -0
- package/src/internal-plugins/activity-history/activity-history-item/list/selectors.ts +62 -0
- package/src/internal-plugins/activity-history/{domain → activity-history-item/list}/sort-history-items-by-date/sort-history-items-by-date.ts +7 -7
- package/src/internal-plugins/activity-history/activity-history-item/remove/reducer.ts +5 -0
- package/src/internal-plugins/activity-history/activity-history-item/search/actions.ts +3 -0
- package/src/internal-plugins/activity-history/activity-history-item/search/activity-history-search-bar/activity-history-search-bar.ts +26 -0
- package/src/internal-plugins/activity-history/activity-history-item/search/activity-history-search-bar/template.ts +8 -0
- package/src/internal-plugins/activity-history/{components/activity-history/activity-history-search-header/activity-history-search-header.ts → activity-history-item/search/activity-history-search-results/activity-history-search-results.ts} +2 -3
- package/src/internal-plugins/activity-history/activity-history-item/search/activity-history-search-results/styles.css +14 -0
- package/src/internal-plugins/activity-history/{components/activity-history/activity-history-search-header → activity-history-item/search/activity-history-search-results}/template.ts +2 -2
- package/src/internal-plugins/activity-history/{features/search-items → activity-history-item/search}/bootstrapper.ts +3 -1
- package/src/internal-plugins/activity-history/activity-history-item/search/handler.ts +17 -0
- package/src/internal-plugins/activity-history/activity-history-item/search/reducer.ts +5 -0
- package/src/internal-plugins/activity-history/activity-history-item/search/selectors.ts +4 -0
- package/src/internal-plugins/activity-history/activity-history-item/slice.ts +37 -0
- package/src/internal-plugins/activity-history/activity-history-item/update/action.ts +3 -0
- package/src/internal-plugins/activity-history/{features/update-history-item → activity-history-item/update}/bootstrapper.ts +1 -1
- package/src/internal-plugins/activity-history/activity-history-item/update/handler.ts +20 -0
- package/src/internal-plugins/activity-history/activity-history-item/update/reducer.ts +11 -0
- package/src/internal-plugins/activity-history/{features/update-history-item → activity-history-item/update}/request.ts +1 -1
- package/src/internal-plugins/activity-history/activity-history-item/update/update-item-in-collection.test.ts +65 -0
- package/src/internal-plugins/activity-history/activity-history-item/update/update-item-in-collection.ts +18 -0
- package/src/internal-plugins/activity-history/index.ts +1 -1
- package/src/internal-plugins/activity-history/infrastructure/base-handlers.ts +22 -0
- package/src/internal-plugins/activity-history/infrastructure/ioc/container.ts +9 -1
- package/src/internal-plugins/activity-history/infrastructure/state/store.ts +4 -2
- package/src/internal-plugins/activity-history/main.ts +15 -11
- package/dist/primary/shell/src/internal-plugins/activity-history/components/activity-history/activity-history-search-header/template.d.ts +0 -3
- package/dist/primary/shell/src/internal-plugins/activity-history/components/activity-history/activity-history.d.ts +0 -26
- package/dist/primary/shell/src/internal-plugins/activity-history/components/activity-history/template.d.ts +0 -4
- package/dist/primary/shell/src/internal-plugins/activity-history/domain/filter-by-search-string/filter-by-search-string.d.ts +0 -3
- package/dist/primary/shell/src/internal-plugins/activity-history/domain/handle-collections/handle-collections.d.ts +0 -19
- package/dist/primary/shell/src/internal-plugins/activity-history/features/add-history-item/handler.d.ts +0 -8
- package/dist/primary/shell/src/internal-plugins/activity-history/features/add-history-items/handler.d.ts +0 -8
- package/dist/primary/shell/src/internal-plugins/activity-history/features/bootstrapper.d.ts +0 -4
- package/dist/primary/shell/src/internal-plugins/activity-history/features/export-to-pdf/handler.d.ts +0 -8
- package/dist/primary/shell/src/internal-plugins/activity-history/features/inject-async-history-items/handler.d.ts +0 -8
- package/dist/primary/shell/src/internal-plugins/activity-history/features/search-items/handler.d.ts +0 -10
- package/dist/primary/shell/src/internal-plugins/activity-history/features/update-history-item/handler.d.ts +0 -8
- package/dist/primary/shell/src/internal-plugins/activity-history/infrastructure/state/actions.d.ts +0 -1
- package/dist/primary/shell/src/internal-plugins/activity-history/infrastructure/state/selectors.d.ts +0 -210
- package/src/internal-plugins/activity-history/components/activity-history/activity-history.ts +0 -115
- package/src/internal-plugins/activity-history/domain/filter-by-search-string/filter-by-search-string.test.ts +0 -68
- package/src/internal-plugins/activity-history/domain/filter-by-search-string/filter-by-search-string.ts +0 -44
- package/src/internal-plugins/activity-history/domain/handle-collections/handle-collections.ts +0 -47
- package/src/internal-plugins/activity-history/features/add-history-items/handler.ts +0 -23
- package/src/internal-plugins/activity-history/features/bootstrapper.ts +0 -39
- package/src/internal-plugins/activity-history/features/inject-async-history-items/handler.ts +0 -37
- package/src/internal-plugins/activity-history/features/search-items/handler.ts +0 -24
- package/src/internal-plugins/activity-history/features/update-history-item/handler.ts +0 -23
- package/src/internal-plugins/activity-history/infrastructure/state/actions.ts +0 -13
- package/src/internal-plugins/activity-history/infrastructure/state/selectors.ts +0 -67
- package/src/internal-plugins/activity-history/infrastructure/state/slices.ts +0 -61
- /package/dist/primary/shell/src/internal-plugins/activity-history/{features → activity-history-item/add}/add-history-item/request.d.ts +0 -0
- /package/dist/primary/shell/src/internal-plugins/activity-history/{domain/filter-by-search-string/filter-by-search-string.test.d.ts → activity-history-item/add/add-history-items/add-items-to-collection.test.d.ts} +0 -0
- /package/dist/primary/shell/src/internal-plugins/activity-history/{domain → activity-history-item/domain}/is-valid-history-item/is-valid-history-item.d.ts +0 -0
- /package/dist/primary/shell/src/internal-plugins/activity-history/{domain → activity-history-item/domain}/is-valid-history-item/is-valid-history-item.test.d.ts +0 -0
- /package/dist/primary/shell/src/internal-plugins/activity-history/{domain/group-history-items/group-history-items.test.d.ts → activity-history-item/domain/specs/relevant.spec.d.ts} +0 -0
- /package/dist/primary/shell/src/internal-plugins/activity-history/{domain/handle-collections/handle-collections.test.d.ts → activity-history-item/domain/specs/search-string-spec.test.d.ts} +0 -0
- /package/dist/primary/shell/src/internal-plugins/activity-history/{components → activity-history-item/export-to-pdf}/export-pdf-modal/template.d.ts +0 -0
- /package/dist/primary/shell/src/internal-plugins/activity-history/{features → activity-history-item}/export-to-pdf/request.d.ts +0 -0
- /package/dist/primary/shell/src/internal-plugins/activity-history/{components/activity-history/activity-history-timeline → activity-history-item/list/UI/timeline}/template.d.ts +0 -0
- /package/dist/primary/shell/src/internal-plugins/activity-history/{domain/sort-history-items-by-date/sort-history-items-by-date.test.d.ts → activity-history-item/list/group-history-items/group-history-items.test.d.ts} +0 -0
- /package/dist/primary/shell/src/internal-plugins/activity-history/{features/search-items → activity-history-item/search}/request.d.ts +0 -0
- /package/src/internal-plugins/activity-history/{features → activity-history-item/add}/add-history-item/request.ts +0 -0
- /package/src/internal-plugins/activity-history/{domain → activity-history-item/domain}/is-valid-history-item/is-valid-history-item.test.ts +0 -0
- /package/src/internal-plugins/activity-history/{domain → activity-history-item/domain}/is-valid-history-item/is-valid-history-item.ts +0 -0
- /package/src/internal-plugins/activity-history/{components → activity-history-item/export-to-pdf}/export-pdf-modal/export-pdf-modal.css +0 -0
- /package/src/internal-plugins/activity-history/{features → activity-history-item}/export-to-pdf/request.ts +0 -0
- /package/src/internal-plugins/activity-history/{domain → activity-history-item/list}/sort-history-items-by-date/sort-history-items-by-date.test.ts +0 -0
- /package/src/internal-plugins/activity-history/{components/activity-history/activity-history-search-header → activity-history-item/search/activity-history-search-bar}/styles.css +0 -0
- /package/src/internal-plugins/activity-history/{features/search-items → activity-history-item/search}/request.ts +0 -0
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { BaseHandler } from "../../../infrastructure/base-handlers";
|
|
2
|
+
import { addBusyHistoryItem, removeBusyHistoryItem } from "../../list/handle-busy/actions";
|
|
3
|
+
import { addErrorHistoryItem } from "../../list/handle-error/actions";
|
|
4
|
+
import { addHistoryItemsRequest } from "../add-history-items/request";
|
|
5
|
+
import { InjectAsyncHistoryItemsPayload } from "./request";
|
|
6
|
+
|
|
7
|
+
export class InjectAsyncHistoryItemsHandler extends BaseHandler {
|
|
8
|
+
async handle(payload: InjectAsyncHistoryItemsPayload) {
|
|
9
|
+
this.store.dispatch(addBusyHistoryItem(payload.entityId));
|
|
10
|
+
try {
|
|
11
|
+
let items = await payload.asyncTask();
|
|
12
|
+
if (payload.mapFn) items = items.map(payload.mapFn);
|
|
13
|
+
this.api.broker.send(addHistoryItemsRequest, {
|
|
14
|
+
entityId: payload.entityId,
|
|
15
|
+
items,
|
|
16
|
+
componentFactory: payload.componentFactory,
|
|
17
|
+
searchPredicate: payload.searchPredicate,
|
|
18
|
+
});
|
|
19
|
+
} catch (e) {
|
|
20
|
+
this.store.dispatch(
|
|
21
|
+
addErrorHistoryItem({ id: payload.entityId, message: payload.errorMessage || e.message }),
|
|
22
|
+
);
|
|
23
|
+
} finally {
|
|
24
|
+
this.store.dispatch(removeBusyHistoryItem(payload.entityId));
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
}
|
|
@@ -1,8 +1,10 @@
|
|
|
1
|
+
import { IActivityHistoryItem } from "../../domain/model";
|
|
2
|
+
|
|
1
3
|
export interface InjectAsyncHistoryItemsPayload {
|
|
2
4
|
entityId: string;
|
|
3
5
|
asyncTask: () => Promise<any>;
|
|
4
6
|
mapFn?: (item: any) => any;
|
|
5
|
-
componentFactory: () => HTMLElement;
|
|
7
|
+
componentFactory: (item: IActivityHistoryItem) => HTMLElement;
|
|
6
8
|
searchPredicate?: (searchString: string, item: any) => boolean;
|
|
7
9
|
errorMessage: string;
|
|
8
10
|
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { IActivityHistoryItem, IActivityHistoryItemCollection } from "../../domain/model";
|
|
2
|
+
import { addItemsToCollection } from "../add-history-items/add-items-to-collection";
|
|
3
|
+
|
|
4
|
+
export const addItemToCollection = (
|
|
5
|
+
collections: Record<string, IActivityHistoryItemCollection>,
|
|
6
|
+
id: string,
|
|
7
|
+
item: IActivityHistoryItem,
|
|
8
|
+
componentFactory?: (item: IActivityHistoryItem) => HTMLElement,
|
|
9
|
+
) => {
|
|
10
|
+
return addItemsToCollection(collections, id, [item], componentFactory);
|
|
11
|
+
};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { BrokerExtensions } from "@primaria/plugins-core";
|
|
2
2
|
import { AddHistoryItemHandler } from "./handler";
|
|
3
3
|
import { addHistoryItemRequest } from "./request";
|
|
4
|
-
import { BrokerDisposableHandler } from "
|
|
4
|
+
import { BrokerDisposableHandler } from "../../../../../api/broker/primaria-broker";
|
|
5
5
|
|
|
6
6
|
let request: BrokerDisposableHandler;
|
|
7
7
|
|
|
@@ -9,6 +9,6 @@ export const bootstrapAddHistoryItem = (broker: BrokerExtensions) => {
|
|
|
9
9
|
request = broker.registerRequest(addHistoryItemRequest, AddHistoryItemHandler);
|
|
10
10
|
};
|
|
11
11
|
|
|
12
|
-
export const teardownAddHistoryItem = (
|
|
12
|
+
export const teardownAddHistoryItem = () => {
|
|
13
13
|
request?.dispose();
|
|
14
14
|
};
|
|
@@ -1,12 +1,9 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { inject } from "inversify";
|
|
3
|
-
import { TYPES } from "../../infrastructure/ioc/types";
|
|
4
|
-
import { AddHistoryItemPayload } from "./request";
|
|
5
|
-
import { addActivityHistoryItem } from "../../infrastructure/state/actions";
|
|
1
|
+
import { StoreBaseHandler } from "../../../infrastructure/base-handlers";
|
|
6
2
|
import { ensureAreValidActivityHistoryItems } from "../../domain/is-valid-history-item/is-valid-history-item";
|
|
3
|
+
import { addActivityHistoryItem } from "./action";
|
|
4
|
+
import { AddHistoryItemPayload } from "./request";
|
|
7
5
|
|
|
8
|
-
export class AddHistoryItemHandler {
|
|
9
|
-
constructor(@inject(TYPES.store) private readonly store: Store) {}
|
|
6
|
+
export class AddHistoryItemHandler extends StoreBaseHandler {
|
|
10
7
|
async handle(payload: AddHistoryItemPayload) {
|
|
11
8
|
try {
|
|
12
9
|
ensureAreValidActivityHistoryItems([payload.item]);
|
package/src/internal-plugins/activity-history/activity-history-item/add/add-history-item/reducer.ts
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { PayloadAction } from "@reduxjs/toolkit";
|
|
2
|
+
import { addItemToCollection } from "./add-item-to-collection";
|
|
3
|
+
import { IActivityHistoryItem } from "../../domain/model";
|
|
4
|
+
|
|
5
|
+
export function addActivityHistoryItemReducer(
|
|
6
|
+
state,
|
|
7
|
+
action: PayloadAction<{
|
|
8
|
+
id: string;
|
|
9
|
+
item: IActivityHistoryItem;
|
|
10
|
+
componentFactory?: (item: IActivityHistoryItem) => HTMLElement;
|
|
11
|
+
}>,
|
|
12
|
+
) {
|
|
13
|
+
const { id, item, componentFactory } = action.payload;
|
|
14
|
+
state.collections = addItemToCollection(state.collections, id, item, componentFactory);
|
|
15
|
+
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { describe, expect, it } from "vitest";
|
|
2
|
-
import {
|
|
3
|
-
import { addItemsToCollection
|
|
2
|
+
import { IActivityHistoryItemCollection, IActivityHistoryItem } from "../../..";
|
|
3
|
+
import { addItemsToCollection } from "./add-items-to-collection";
|
|
4
4
|
|
|
5
5
|
describe("addItemsToCollection", () => {
|
|
6
6
|
const mockComponentFactory = () => document.createElement("div"); // Mocks a component factory
|
|
@@ -68,65 +68,3 @@ describe("addItemsToCollection", () => {
|
|
|
68
68
|
expect(result.collection1.items).toEqual(newItems);
|
|
69
69
|
});
|
|
70
70
|
});
|
|
71
|
-
|
|
72
|
-
describe("updateItemInCollection", () => {
|
|
73
|
-
it("should return the same collections if the collection does not exist", () => {
|
|
74
|
-
const collections: Record<string, any> = {};
|
|
75
|
-
const updatedItem: IActivityHistoryItem = { id: "item1", name: "Updated Item 1" };
|
|
76
|
-
|
|
77
|
-
const result = updateItemInCollection(collections, "collection1", updatedItem);
|
|
78
|
-
|
|
79
|
-
expect(result).toEqual(collections); // Sin cambios
|
|
80
|
-
});
|
|
81
|
-
|
|
82
|
-
it("should return the same collections if the collection exists but has no items", () => {
|
|
83
|
-
const collections: Record<string, any> = {
|
|
84
|
-
collection1: {
|
|
85
|
-
id: "collection1",
|
|
86
|
-
items: [],
|
|
87
|
-
},
|
|
88
|
-
};
|
|
89
|
-
const updatedItem: IActivityHistoryItem = { id: "item1", name: "Updated Item 1" };
|
|
90
|
-
|
|
91
|
-
const result = updateItemInCollection(collections, "collection1", updatedItem);
|
|
92
|
-
|
|
93
|
-
expect(result).toEqual(collections); // Sin cambios
|
|
94
|
-
});
|
|
95
|
-
|
|
96
|
-
it("should update the item in the collection when the id matches", () => {
|
|
97
|
-
const collections: Record<string, any> = {
|
|
98
|
-
collection1: {
|
|
99
|
-
id: "collection1",
|
|
100
|
-
items: [
|
|
101
|
-
{ id: "item1", name: "Item 1" },
|
|
102
|
-
{ id: "item2", name: "Item 2" },
|
|
103
|
-
],
|
|
104
|
-
},
|
|
105
|
-
};
|
|
106
|
-
const updatedItem: IActivityHistoryItem = { id: "item1", name: "Updated Item 1" };
|
|
107
|
-
|
|
108
|
-
const result = updateItemInCollection(collections, "collection1", updatedItem);
|
|
109
|
-
|
|
110
|
-
expect(result.collection1.items).toEqual([
|
|
111
|
-
{ id: "item1", name: "Updated Item 1" },
|
|
112
|
-
{ id: "item2", name: "Item 2" },
|
|
113
|
-
]);
|
|
114
|
-
});
|
|
115
|
-
|
|
116
|
-
it("should return the same collections if the item with the id does not exist", () => {
|
|
117
|
-
const collections: Record<string, any> = {
|
|
118
|
-
collection1: {
|
|
119
|
-
id: "collection1",
|
|
120
|
-
items: [
|
|
121
|
-
{ id: "item1", name: "Item 1" },
|
|
122
|
-
{ id: "item2", name: "Item 2" },
|
|
123
|
-
],
|
|
124
|
-
},
|
|
125
|
-
};
|
|
126
|
-
const updatedItem: IActivityHistoryItem = { id: "item3", name: "Updated Item 3" }; // No existe item3
|
|
127
|
-
|
|
128
|
-
const result = updateItemInCollection(collections, "collection1", updatedItem);
|
|
129
|
-
|
|
130
|
-
expect(result).toEqual(collections); // Sin cambios
|
|
131
|
-
});
|
|
132
|
-
});
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import {
|
|
2
|
+
IActivityHistoryItem,
|
|
3
|
+
IActivityHistoryItemCollection,
|
|
4
|
+
TSearchActivityHistoryItemPredicate,
|
|
5
|
+
} from "../../domain/model";
|
|
6
|
+
|
|
7
|
+
export const addItemsToCollection = (
|
|
8
|
+
collections: Record<string, IActivityHistoryItemCollection>,
|
|
9
|
+
id: string,
|
|
10
|
+
items: IActivityHistoryItem[],
|
|
11
|
+
componentFactory?: (item: IActivityHistoryItem) => HTMLElement,
|
|
12
|
+
searchPredicate?: TSearchActivityHistoryItemPredicate,
|
|
13
|
+
) => {
|
|
14
|
+
// Crea la colección si no existe
|
|
15
|
+
if (!collections[id])
|
|
16
|
+
return { ...collections, [id]: { id, items, componentFactory, searchPredicate } };
|
|
17
|
+
// Si la colección ya existe, fusiona el array existente con el nuevo; si no, crea una nueva entrada
|
|
18
|
+
return {
|
|
19
|
+
...collections,
|
|
20
|
+
[id]: {
|
|
21
|
+
...collections[id],
|
|
22
|
+
items: [...(collections[id]?.items || []), ...items],
|
|
23
|
+
},
|
|
24
|
+
};
|
|
25
|
+
};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { BrokerExtensions } from "@primaria/plugins-core";
|
|
2
2
|
import { AddHistoryItemsHandler } from "./handler";
|
|
3
3
|
import { addHistoryItemsRequest } from "./request";
|
|
4
|
-
import { BrokerDisposableHandler } from "
|
|
4
|
+
import { BrokerDisposableHandler } from "../../../../../api/broker/primaria-broker";
|
|
5
5
|
|
|
6
6
|
let request: BrokerDisposableHandler;
|
|
7
7
|
|
|
@@ -9,6 +9,6 @@ export const bootstrapAddHistoryItems = (broker: BrokerExtensions) => {
|
|
|
9
9
|
request = broker.registerRequest(addHistoryItemsRequest, AddHistoryItemsHandler);
|
|
10
10
|
};
|
|
11
11
|
|
|
12
|
-
export const teardownAddHistoryItems = (
|
|
12
|
+
export const teardownAddHistoryItems = () => {
|
|
13
13
|
request?.dispose();
|
|
14
14
|
};
|
package/src/internal-plugins/activity-history/activity-history-item/add/add-history-items/handler.ts
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { StoreBaseHandler } from "../../../infrastructure/base-handlers";
|
|
2
|
+
import { validateAndFilterItems } from "../../domain/is-valid-history-item/is-valid-history-item";
|
|
3
|
+
import { addActivityHistoryItems } from "./action";
|
|
4
|
+
import { AddHistoryItemsPayload } from "./request";
|
|
5
|
+
|
|
6
|
+
export class AddHistoryItemsHandler extends StoreBaseHandler {
|
|
7
|
+
async handle(payload: AddHistoryItemsPayload) {
|
|
8
|
+
try {
|
|
9
|
+
const validItems = validateAndFilterItems(payload.items);
|
|
10
|
+
this.store.dispatch(
|
|
11
|
+
addActivityHistoryItems({
|
|
12
|
+
id: payload.entityId,
|
|
13
|
+
items: validItems,
|
|
14
|
+
componentFactory: payload.componentFactory,
|
|
15
|
+
searchPredicate: payload.searchPredicate,
|
|
16
|
+
}),
|
|
17
|
+
);
|
|
18
|
+
} catch (e) {
|
|
19
|
+
console.log(e.message);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
}
|
package/src/internal-plugins/activity-history/activity-history-item/add/add-history-items/reducer.ts
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { PayloadAction } from "@reduxjs/toolkit";
|
|
2
|
+
import { addItemsToCollection } from "./add-items-to-collection";
|
|
3
|
+
import { IActivityHistoryItem, TSearchActivityHistoryItemPredicate } from "../../domain/model";
|
|
4
|
+
|
|
5
|
+
export function addActivityHistoryItemsReducer(
|
|
6
|
+
state,
|
|
7
|
+
action: PayloadAction<{
|
|
8
|
+
id: string;
|
|
9
|
+
items: IActivityHistoryItem[];
|
|
10
|
+
componentFactory?: (item: IActivityHistoryItem) => HTMLElement;
|
|
11
|
+
searchPredicate?: TSearchActivityHistoryItemPredicate;
|
|
12
|
+
}>,
|
|
13
|
+
) {
|
|
14
|
+
const { id, items, componentFactory, searchPredicate } = action.payload;
|
|
15
|
+
state.collections = addItemsToCollection(
|
|
16
|
+
state.collections,
|
|
17
|
+
id,
|
|
18
|
+
items,
|
|
19
|
+
componentFactory,
|
|
20
|
+
searchPredicate,
|
|
21
|
+
);
|
|
22
|
+
}
|
|
@@ -3,6 +3,8 @@ import { IActivityHistoryItem } from "../../domain/model";
|
|
|
3
3
|
export interface AddHistoryItemsPayload {
|
|
4
4
|
entityId: string;
|
|
5
5
|
items: IActivityHistoryItem[];
|
|
6
|
+
componentFactory?: (item: IActivityHistoryItem) => HTMLElement;
|
|
7
|
+
searchPredicate?: (searchString: string, item: any) => boolean;
|
|
6
8
|
}
|
|
7
9
|
|
|
8
10
|
export const addHistoryItemsRequest = "add_history_items_request";
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { BrokerExtensions, brokerExtensions } from "@primaria/plugins-core";
|
|
2
|
+
import { PrimariaApi } from "../../../api/api";
|
|
3
|
+
import { container } from "../infrastructure/ioc/container";
|
|
4
|
+
import {
|
|
5
|
+
bootstrapInjectAsyncHistoryItems,
|
|
6
|
+
teardownInjectAsyncHistoryItems,
|
|
7
|
+
} from "./add/add-async-history-items/bootstrapper";
|
|
8
|
+
import {
|
|
9
|
+
bootstrapAddHistoryItem,
|
|
10
|
+
teardownAddHistoryItem,
|
|
11
|
+
} from "./add/add-history-item/bootstrapper";
|
|
12
|
+
import { bootstrapExportPdf, teardownExportPdf } from "./export-to-pdf/bootstrapper";
|
|
13
|
+
import {
|
|
14
|
+
bootstrapAddHistoryItems,
|
|
15
|
+
teardownAddHistoryItems,
|
|
16
|
+
} from "./add/add-history-items/bootstrapper";
|
|
17
|
+
import { bootstrapUpdateHistoryItem, teardownUpdateHistoryItem } from "./update/bootstrapper";
|
|
18
|
+
import { bootstrapListActivityHistoryItems } from "./list/bootstrapper";
|
|
19
|
+
import { bootstrapFilters, teardownFilters } from "./filter/bootstrapper";
|
|
20
|
+
import { bootstrapSearchItems, teardownSearchItems } from "./search/bootstrapper";
|
|
21
|
+
import { bootstrapActivityHistoryItemHandleBusy } from "./list/handle-busy/bootstrapper";
|
|
22
|
+
|
|
23
|
+
let broker: BrokerExtensions;
|
|
24
|
+
|
|
25
|
+
export const bootstrapActivityHistoryItem = (api: PrimariaApi) => {
|
|
26
|
+
broker = brokerExtensions(api, container);
|
|
27
|
+
bootstrapListActivityHistoryItems();
|
|
28
|
+
bootstrapActivityHistoryItemHandleBusy();
|
|
29
|
+
bootstrapInjectAsyncHistoryItems(broker);
|
|
30
|
+
bootstrapAddHistoryItem(broker);
|
|
31
|
+
bootstrapAddHistoryItems(broker);
|
|
32
|
+
bootstrapUpdateHistoryItem(broker);
|
|
33
|
+
bootstrapExportPdf(broker);
|
|
34
|
+
bootstrapFilters(broker);
|
|
35
|
+
bootstrapSearchItems(broker);
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
export const teardownActivityHistoryItem = () => {
|
|
39
|
+
teardownInjectAsyncHistoryItems();
|
|
40
|
+
teardownAddHistoryItem();
|
|
41
|
+
teardownAddHistoryItems();
|
|
42
|
+
teardownUpdateHistoryItem();
|
|
43
|
+
teardownExportPdf();
|
|
44
|
+
teardownFilters();
|
|
45
|
+
teardownSearchItems();
|
|
46
|
+
};
|
package/src/internal-plugins/activity-history/{domain → activity-history-item/domain}/model.ts
RENAMED
|
@@ -9,6 +9,11 @@ export interface IErrorHistoryItem {
|
|
|
9
9
|
message: string;
|
|
10
10
|
}
|
|
11
11
|
|
|
12
|
+
export type TSearchActivityHistoryItemPredicate = (
|
|
13
|
+
searchString: string,
|
|
14
|
+
item: IActivityHistoryItem,
|
|
15
|
+
) => boolean;
|
|
16
|
+
|
|
12
17
|
export interface IActivityHistoryItem {
|
|
13
18
|
id: string;
|
|
14
19
|
date: string;
|
|
@@ -19,15 +24,16 @@ export interface IActivityHistoryItem {
|
|
|
19
24
|
up: IEntityDescription;
|
|
20
25
|
ep: IEntityDescription;
|
|
21
26
|
service: IEntityDescription;
|
|
22
|
-
componentFactory?:
|
|
27
|
+
componentFactory: (item?: any) => HTMLElement;
|
|
28
|
+
searchPredicate: TSearchActivityHistoryItemPredicate;
|
|
23
29
|
type?: string;
|
|
24
30
|
}
|
|
25
31
|
|
|
26
32
|
export interface IActivityHistoryItemCollection {
|
|
27
33
|
id: string;
|
|
28
34
|
items: IActivityHistoryItem[];
|
|
29
|
-
componentFactory: () => HTMLElement;
|
|
30
|
-
searchPredicate
|
|
35
|
+
componentFactory: (item?: any) => HTMLElement;
|
|
36
|
+
searchPredicate: TSearchActivityHistoryItemPredicate;
|
|
31
37
|
}
|
|
32
38
|
|
|
33
39
|
export interface IActivityHistoryGroup {
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { IUserInfo } from "../../../../../features/get-user-info/model";
|
|
2
|
+
import { shellApi } from "../../../../../api/api";
|
|
3
|
+
import { IActivityHistoryItem } from "../model";
|
|
4
|
+
import { Spec } from "./spec";
|
|
5
|
+
|
|
6
|
+
export class OwnSpec extends Spec<IActivityHistoryItem> {
|
|
7
|
+
constructor(public context: IActivityHistoryItem) {
|
|
8
|
+
super();
|
|
9
|
+
}
|
|
10
|
+
isSatisfiedBy(context: IActivityHistoryItem): boolean {
|
|
11
|
+
const userInfo = shellApi.globalStateManager.getData("userInfo") as IUserInfo;
|
|
12
|
+
return context?.professional?.id === userInfo?.userId;
|
|
13
|
+
}
|
|
14
|
+
}
|
package/src/internal-plugins/activity-history/activity-history-item/domain/specs/relevant-spec.ts
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { IActivityHistoryItem } from "../model";
|
|
2
|
+
import { Spec } from "./spec";
|
|
3
|
+
|
|
4
|
+
export class RelevantSpec extends Spec<IActivityHistoryItem> {
|
|
5
|
+
constructor(public context: IActivityHistoryItem) {
|
|
6
|
+
super();
|
|
7
|
+
}
|
|
8
|
+
isSatisfiedBy(context: IActivityHistoryItem): boolean {
|
|
9
|
+
return context?.relevant ?? false;
|
|
10
|
+
}
|
|
11
|
+
}
|
package/src/internal-plugins/activity-history/activity-history-item/domain/specs/relevant.spec.ts
ADDED
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { describe, it, expect } from "vitest";
|
|
2
|
+
import { IActivityHistoryItem } from "../model";
|
|
3
|
+
import { RelevantSpec } from "./relevant-spec";
|
|
4
|
+
|
|
5
|
+
describe("RelevantSpec", () => {
|
|
6
|
+
it("should return true if the item is relevant", () => {
|
|
7
|
+
const activityItem: IActivityHistoryItem = {
|
|
8
|
+
id: "1",
|
|
9
|
+
date: "2025-02-25",
|
|
10
|
+
relevant: true,
|
|
11
|
+
professional: { id: "user123", name: "John Doe" },
|
|
12
|
+
diagnostics: [],
|
|
13
|
+
center: { id: "center1", name: "Center A" },
|
|
14
|
+
up: { id: "up1", name: "Up A" },
|
|
15
|
+
ep: { id: "ep1", name: "EP A" },
|
|
16
|
+
service: { id: "service1", name: "Service A" },
|
|
17
|
+
componentFactory: () => document.createElement("div"),
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
const spec = new RelevantSpec(activityItem);
|
|
21
|
+
expect(spec.isSatisfiedBy(activityItem)).toBe(true);
|
|
22
|
+
});
|
|
23
|
+
|
|
24
|
+
it("should return false if the item is not relevant", () => {
|
|
25
|
+
const activityItem: IActivityHistoryItem = {
|
|
26
|
+
id: "2",
|
|
27
|
+
date: "2025-02-25",
|
|
28
|
+
relevant: false,
|
|
29
|
+
professional: { id: "user123", name: "John Doe" },
|
|
30
|
+
diagnostics: [],
|
|
31
|
+
center: { id: "center1", name: "Center A" },
|
|
32
|
+
up: { id: "up1", name: "Up A" },
|
|
33
|
+
ep: { id: "ep1", name: "EP A" },
|
|
34
|
+
service: { id: "service1", name: "Service A" },
|
|
35
|
+
componentFactory: () => document.createElement("div"),
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
const spec = new RelevantSpec(activityItem);
|
|
39
|
+
expect(spec.isSatisfiedBy(activityItem)).toBe(false);
|
|
40
|
+
});
|
|
41
|
+
|
|
42
|
+
it("should return false if the relevant field is undefined", () => {
|
|
43
|
+
const activityItem: IActivityHistoryItem = {
|
|
44
|
+
id: "3",
|
|
45
|
+
date: "2025-02-25",
|
|
46
|
+
relevant: undefined,
|
|
47
|
+
professional: { id: "user123", name: "John Doe" },
|
|
48
|
+
diagnostics: [],
|
|
49
|
+
center: { id: "center1", name: "Center A" },
|
|
50
|
+
up: { id: "up1", name: "Up A" },
|
|
51
|
+
ep: { id: "ep1", name: "EP A" },
|
|
52
|
+
service: { id: "service1", name: "Service A" },
|
|
53
|
+
componentFactory: () => document.createElement("div"),
|
|
54
|
+
};
|
|
55
|
+
|
|
56
|
+
const spec = new RelevantSpec(activityItem);
|
|
57
|
+
expect(spec.isSatisfiedBy(activityItem)).toBe(false);
|
|
58
|
+
});
|
|
59
|
+
});
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import { describe, it, expect, vi, beforeEach } from "vitest";
|
|
2
|
+
import { IActivityHistoryItem, TSearchActivityHistoryItemPredicate } from "../model";
|
|
3
|
+
import { SearchStringSpec } from "./search-string-spec";
|
|
4
|
+
import { propContainsString } from "../../../utils/prop-contains-string";
|
|
5
|
+
|
|
6
|
+
// Mocking the propContainsString function to simulate behavior
|
|
7
|
+
vi.mock("../../../utils/prop-contains-string", () => ({
|
|
8
|
+
propContainsString: vi.fn(),
|
|
9
|
+
}));
|
|
10
|
+
|
|
11
|
+
describe("SearchStringSpec", () => {
|
|
12
|
+
let searchString: string;
|
|
13
|
+
let searchPredicate: TSearchActivityHistoryItemPredicate;
|
|
14
|
+
let item: IActivityHistoryItem;
|
|
15
|
+
|
|
16
|
+
beforeEach(() => {
|
|
17
|
+
// Default searchPredicate mock function
|
|
18
|
+
searchPredicate = vi.fn();
|
|
19
|
+
|
|
20
|
+
// Default mock item to test with
|
|
21
|
+
item = {
|
|
22
|
+
relevant: true,
|
|
23
|
+
professional: {
|
|
24
|
+
name: "John Doe",
|
|
25
|
+
speciality: { description: "Speciality1" },
|
|
26
|
+
role: { description: "Role1" },
|
|
27
|
+
},
|
|
28
|
+
center: { description: "Center1" },
|
|
29
|
+
service: { description: "Service1" },
|
|
30
|
+
diagnostics: [{ id: "123", description: "Diagnostic1" }],
|
|
31
|
+
up: { description: "Up1" },
|
|
32
|
+
ep: { description: "Ep1" },
|
|
33
|
+
} as IActivityHistoryItem;
|
|
34
|
+
});
|
|
35
|
+
|
|
36
|
+
it("should return true if searchString is empty or null", () => {
|
|
37
|
+
const spec = new SearchStringSpec("", searchPredicate);
|
|
38
|
+
|
|
39
|
+
expect(spec.isSatisfiedBy(item)).toBe(true); // should always return true
|
|
40
|
+
});
|
|
41
|
+
|
|
42
|
+
it("should return true if searchPredicate is satisfied", () => {
|
|
43
|
+
// Mock the searchPredicate to return true
|
|
44
|
+
searchPredicate.mockReturnValueOnce(true);
|
|
45
|
+
const spec = new SearchStringSpec("searchString", searchPredicate);
|
|
46
|
+
|
|
47
|
+
expect(spec.isSatisfiedBy(item)).toBe(true); // searchPredicate is true
|
|
48
|
+
});
|
|
49
|
+
|
|
50
|
+
it("should return false if searchPredicate is not satisfied", () => {
|
|
51
|
+
// Mock the searchPredicate to return false
|
|
52
|
+
searchPredicate.mockReturnValueOnce(false);
|
|
53
|
+
const spec = new SearchStringSpec("searchString", searchPredicate);
|
|
54
|
+
|
|
55
|
+
expect(spec.isSatisfiedBy(item)).toBe(false); // searchPredicate is false
|
|
56
|
+
});
|
|
57
|
+
|
|
58
|
+
it("should return true if any of the common fields match searchString", () => {
|
|
59
|
+
searchString = "Center1";
|
|
60
|
+
|
|
61
|
+
// Mocking propContainsString to return true if the center description matches
|
|
62
|
+
(propContainsString as vi.Mock).mockReturnValueOnce(true);
|
|
63
|
+
const spec = new SearchStringSpec(searchString, searchPredicate);
|
|
64
|
+
|
|
65
|
+
expect(spec.isSatisfiedBy(item)).toBe(true); // Center matches the searchString
|
|
66
|
+
});
|
|
67
|
+
|
|
68
|
+
it("should return false if no common fields or searchPredicate match", () => {
|
|
69
|
+
searchString = "nonexistent";
|
|
70
|
+
|
|
71
|
+
// Mocking propContainsString to return false for all fields
|
|
72
|
+
(propContainsString as vi.Mock).mockReturnValue(false);
|
|
73
|
+
const spec = new SearchStringSpec(searchString, searchPredicate);
|
|
74
|
+
|
|
75
|
+
expect(spec.isSatisfiedBy(item)).toBe(false); // No matches in common fields
|
|
76
|
+
});
|
|
77
|
+
|
|
78
|
+
it("should return true if searchString matches multiple fields", () => {
|
|
79
|
+
searchString = "John";
|
|
80
|
+
|
|
81
|
+
// Mocking propContainsString to return true for the professional name
|
|
82
|
+
(propContainsString as vi.Mock).mockReturnValueOnce(true);
|
|
83
|
+
const spec = new SearchStringSpec(searchString, searchPredicate);
|
|
84
|
+
|
|
85
|
+
expect(spec.isSatisfiedBy(item)).toBe(true); // Professional name matches
|
|
86
|
+
});
|
|
87
|
+
|
|
88
|
+
it("should call commonFieldsSearchPredicate and the searchPredicate with the correct arguments", () => {
|
|
89
|
+
searchString = "searchString";
|
|
90
|
+
|
|
91
|
+
// Mocking propContainsString
|
|
92
|
+
(propContainsString as vi.Mock).mockReturnValue(false); // simulating no matches in common fields
|
|
93
|
+
const spySearchPredicate = vi.fn();
|
|
94
|
+
const spec = new SearchStringSpec(searchString, spySearchPredicate);
|
|
95
|
+
|
|
96
|
+
// Simulate the searchPredicate call
|
|
97
|
+
spec.isSatisfiedBy(item);
|
|
98
|
+
|
|
99
|
+
// Verify the commonFieldsSearchPredicate is called
|
|
100
|
+
expect(propContainsString).toHaveBeenCalled();
|
|
101
|
+
|
|
102
|
+
// Verify the searchPredicate is called with the correct arguments
|
|
103
|
+
expect(spySearchPredicate).toHaveBeenCalledWith(searchString.toLowerCase(), item);
|
|
104
|
+
});
|
|
105
|
+
});
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { IActivityHistoryItem, TSearchActivityHistoryItemPredicate } from "../model";
|
|
2
|
+
import { Spec } from "./spec";
|
|
3
|
+
import { propContainsString } from "../../../utils/prop-contains-string";
|
|
4
|
+
|
|
5
|
+
const commonFieldsSearchPredicate = (item: IActivityHistoryItem, searchString: string) => {
|
|
6
|
+
const professionalNameContainsSearchString =
|
|
7
|
+
item.professional?.name && propContainsString(item.professional?.name, searchString);
|
|
8
|
+
const centerNameContainsSearchString =
|
|
9
|
+
item.center.description && propContainsString(item.center.description, searchString);
|
|
10
|
+
const specialityNameContainsSearchString =
|
|
11
|
+
item.professional?.speciality.description &&
|
|
12
|
+
propContainsString(item.professional?.speciality.description, searchString);
|
|
13
|
+
const roleNameContainsSearchString =
|
|
14
|
+
item.professional?.role.description &&
|
|
15
|
+
propContainsString(item.professional?.role.description, searchString);
|
|
16
|
+
const serviceNameContainsSearchString =
|
|
17
|
+
item.service.description && propContainsString(item.service.description, searchString);
|
|
18
|
+
const diagnosticsMatch = item.diagnostics?.some(
|
|
19
|
+
(diagnostic) =>
|
|
20
|
+
propContainsString(diagnostic.id, searchString) ||
|
|
21
|
+
propContainsString(diagnostic.description, searchString),
|
|
22
|
+
);
|
|
23
|
+
return (
|
|
24
|
+
professionalNameContainsSearchString ||
|
|
25
|
+
centerNameContainsSearchString ||
|
|
26
|
+
specialityNameContainsSearchString ||
|
|
27
|
+
roleNameContainsSearchString ||
|
|
28
|
+
serviceNameContainsSearchString ||
|
|
29
|
+
diagnosticsMatch
|
|
30
|
+
);
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
export class SearchStringSpec extends Spec<IActivityHistoryItem> {
|
|
34
|
+
constructor(
|
|
35
|
+
public searchString: string,
|
|
36
|
+
public searchPredicate: TSearchActivityHistoryItemPredicate,
|
|
37
|
+
) {
|
|
38
|
+
super();
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
isSatisfiedBy(context: IActivityHistoryItem): boolean {
|
|
42
|
+
// Si searchString está vacío o solo tiene espacios, no filtramos y devolvemos true
|
|
43
|
+
if (!this.searchString?.trim()) {
|
|
44
|
+
return true;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
// Verificamos coincidencias en los campos comunes
|
|
48
|
+
const matchesCommonFields = commonFieldsSearchPredicate(context, this.searchString);
|
|
49
|
+
|
|
50
|
+
// Verificamos coincidencias con el searchPredicate
|
|
51
|
+
const matchesSearchPredicate = this.searchPredicate
|
|
52
|
+
? this.searchPredicate(this.searchString.toLowerCase(), context)
|
|
53
|
+
: false;
|
|
54
|
+
|
|
55
|
+
// Aseguramos que siempre se retorne un valor booleano
|
|
56
|
+
return !!(matchesCommonFields || matchesSearchPredicate);
|
|
57
|
+
}
|
|
58
|
+
}
|