@uxland/primary-shell 3.5.2 → 3.5.4

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.
Files changed (212) hide show
  1. package/dist/index.js +5417 -4842
  2. package/dist/index.js.map +1 -1
  3. package/dist/index.umd.cjs +671 -537
  4. package/dist/index.umd.cjs.map +1 -1
  5. package/dist/primary/shell/src/UI/shared-components/primaria-text-editor/primaria-rich-text-editor.d.ts +1 -0
  6. 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
  7. package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/add/add-async-history-items/handler.d.ts +6 -0
  8. 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
  9. package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/add/add-history-item/action.d.ts +5 -0
  10. package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/add/add-history-item/add-item-to-collection.d.ts +10 -0
  11. package/dist/primary/shell/src/internal-plugins/activity-history/{features → activity-history-item/add}/add-history-item/bootstrapper.d.ts +1 -1
  12. package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/add/add-history-item/handler.d.ts +6 -0
  13. package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/add/add-history-item/reducer.d.ts +8 -0
  14. package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/add/add-history-items/action.d.ts +6 -0
  15. package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/add/add-history-items/add-items-to-collection.d.ts +10 -0
  16. package/dist/primary/shell/src/internal-plugins/activity-history/{features → activity-history-item/add}/add-history-items/bootstrapper.d.ts +1 -1
  17. package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/add/add-history-items/handler.d.ts +6 -0
  18. package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/add/add-history-items/reducer.d.ts +9 -0
  19. package/dist/primary/shell/src/internal-plugins/activity-history/{features → activity-history-item/add}/add-history-items/request.d.ts +2 -0
  20. package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/bootstrapper.d.ts +4 -0
  21. package/dist/primary/shell/src/internal-plugins/activity-history/{domain → activity-history-item/domain}/model.d.ts +5 -3
  22. package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/domain/specs/own-spec.d.ts +8 -0
  23. package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/domain/specs/relevant-spec.d.ts +8 -0
  24. package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/domain/specs/search-string-spec.d.ts +9 -0
  25. package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/domain/specs/spec.d.ts +29 -0
  26. package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/domain/specs/true-spec.d.ts +6 -0
  27. package/dist/primary/shell/src/internal-plugins/activity-history/{features → activity-history-item}/export-to-pdf/bootstrapper.d.ts +1 -1
  28. 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
  29. package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/export-to-pdf/handler.d.ts +6 -0
  30. package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/filter/UI/activity-history-filters/activity-history-filters.d.ts +13 -0
  31. package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/filter/UI/activity-history-filters/template.d.ts +3 -0
  32. package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/filter/actions.d.ts +1 -0
  33. package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/filter/bootstrapper.d.ts +4 -0
  34. package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/filter/common-filters.d.ts +3 -0
  35. package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/filter/constants.d.ts +7 -0
  36. package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/filter/model.d.ts +19 -0
  37. package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/filter/selectors.d.ts +157 -0
  38. package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/filter/set-common-filter/bootstrapper.d.ts +4 -0
  39. package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/filter/set-common-filter/handler.d.ts +6 -0
  40. package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/filter/set-common-filter/request.d.ts +10 -0
  41. package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/list/UI/main-view/activity-history-main.d.ts +23 -0
  42. package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/list/UI/main-view/template.d.ts +4 -0
  43. 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
  44. package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/list/bootstrapper.d.ts +2 -0
  45. package/dist/primary/shell/src/internal-plugins/activity-history/{domain → activity-history-item/list}/group-history-items/group-history-items.d.ts +1 -1
  46. package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/list/handle-busy/actions.d.ts +1 -0
  47. package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/list/handle-busy/bootstrapper.d.ts +2 -0
  48. package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/list/handle-busy/busy-component/component.d.ts +8 -0
  49. package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/list/handle-busy/busy-component/template.d.ts +4 -0
  50. package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/list/handle-busy/reducers.d.ts +4 -0
  51. package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/list/handle-busy/selectors.d.ts +4 -0
  52. package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/list/handle-error/actions.d.ts +1 -0
  53. package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/list/handle-error/reducers.d.ts +2 -0
  54. package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/list/selectors.d.ts +156 -0
  55. 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
  56. 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
  57. package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/remove/reducer.d.ts +1 -0
  58. package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/search/actions.d.ts +1 -0
  59. 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
  60. package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/search/activity-history-search-bar/template.d.ts +3 -0
  61. 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
  62. package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/search/activity-history-search-results/template.d.ts +3 -0
  63. package/dist/primary/shell/src/internal-plugins/activity-history/{features/search-items → activity-history-item/search}/bootstrapper.d.ts +1 -1
  64. package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/search/handler.d.ts +6 -0
  65. package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/search/reducer.d.ts +3 -0
  66. package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/search/selectors.d.ts +3 -0
  67. package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/slice.d.ts +26 -0
  68. package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/update/action.d.ts +4 -0
  69. package/dist/primary/shell/src/internal-plugins/activity-history/{features/update-history-item → activity-history-item/update}/bootstrapper.d.ts +1 -1
  70. package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/update/handler.d.ts +6 -0
  71. package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/update/reducer.d.ts +7 -0
  72. package/dist/primary/shell/src/internal-plugins/activity-history/{features/update-history-item → activity-history-item/update}/request.d.ts +1 -1
  73. package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/update/update-item-in-collection.d.ts +3 -0
  74. package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/update/update-item-in-collection.test.d.ts +1 -0
  75. package/dist/primary/shell/src/internal-plugins/activity-history/index.d.ts +1 -1
  76. package/dist/primary/shell/src/internal-plugins/activity-history/infrastructure/base-handlers.d.ts +16 -0
  77. package/dist/primary/shell/src/internal-plugins/activity-history/infrastructure/ioc/container.d.ts +2 -0
  78. package/dist/primary/shell/src/internal-plugins/activity-history/infrastructure/state/store.d.ts +16 -4
  79. package/dist/style.css +1 -1
  80. package/package.json +2 -2
  81. package/src/UI/components/shell-header/template.ts +7 -3
  82. package/src/UI/shared-components/primaria-text-editor/primaria-rich-text-editor.ts +23 -0
  83. package/src/internal-plugins/activity-history/{features/inject-async-history-items → activity-history-item/add/add-async-history-items}/bootstrapper.ts +2 -2
  84. package/src/internal-plugins/activity-history/activity-history-item/add/add-async-history-items/handler.ts +27 -0
  85. package/src/internal-plugins/activity-history/{features/inject-async-history-items → activity-history-item/add/add-async-history-items}/request.ts +3 -1
  86. package/src/internal-plugins/activity-history/activity-history-item/add/add-history-item/action.ts +3 -0
  87. package/src/internal-plugins/activity-history/activity-history-item/add/add-history-item/add-item-to-collection.ts +11 -0
  88. package/src/internal-plugins/activity-history/{features → activity-history-item/add}/add-history-item/bootstrapper.ts +2 -2
  89. package/src/internal-plugins/activity-history/{features → activity-history-item/add}/add-history-item/handler.ts +4 -7
  90. package/src/internal-plugins/activity-history/activity-history-item/add/add-history-item/reducer.ts +15 -0
  91. package/src/internal-plugins/activity-history/activity-history-item/add/add-history-items/action.ts +3 -0
  92. 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
  93. package/src/internal-plugins/activity-history/activity-history-item/add/add-history-items/add-items-to-collection.ts +25 -0
  94. package/src/internal-plugins/activity-history/{features → activity-history-item/add}/add-history-items/bootstrapper.ts +2 -2
  95. package/src/internal-plugins/activity-history/activity-history-item/add/add-history-items/handler.ts +22 -0
  96. package/src/internal-plugins/activity-history/activity-history-item/add/add-history-items/reducer.ts +22 -0
  97. package/src/internal-plugins/activity-history/{features → activity-history-item/add}/add-history-items/request.ts +2 -0
  98. package/src/internal-plugins/activity-history/activity-history-item/bootstrapper.ts +46 -0
  99. package/src/internal-plugins/activity-history/{domain → activity-history-item/domain}/model.ts +9 -3
  100. package/src/internal-plugins/activity-history/activity-history-item/domain/specs/own-spec.ts +14 -0
  101. package/src/internal-plugins/activity-history/activity-history-item/domain/specs/relevant-spec.ts +11 -0
  102. package/src/internal-plugins/activity-history/activity-history-item/domain/specs/relevant.spec.ts +59 -0
  103. package/src/internal-plugins/activity-history/activity-history-item/domain/specs/search-string-spec.test.ts +105 -0
  104. package/src/internal-plugins/activity-history/activity-history-item/domain/specs/search-string-spec.ts +58 -0
  105. package/src/internal-plugins/activity-history/activity-history-item/domain/specs/spec.ts +54 -0
  106. package/src/internal-plugins/activity-history/activity-history-item/domain/specs/true-spec.ts +8 -0
  107. package/src/internal-plugins/activity-history/{features → activity-history-item}/export-to-pdf/bootstrapper.ts +2 -1
  108. package/src/internal-plugins/activity-history/{components → activity-history-item/export-to-pdf}/export-pdf-modal/export-pdf-modal.ts +2 -2
  109. package/src/internal-plugins/activity-history/{components → activity-history-item/export-to-pdf}/export-pdf-modal/template.ts +5 -5
  110. package/src/internal-plugins/activity-history/{features → activity-history-item}/export-to-pdf/handler.ts +3 -6
  111. package/src/internal-plugins/activity-history/activity-history-item/filter/UI/activity-history-filters/activity-history-filters.ts +40 -0
  112. package/src/internal-plugins/activity-history/activity-history-item/filter/UI/activity-history-filters/styles.css +39 -0
  113. package/src/internal-plugins/activity-history/activity-history-item/filter/UI/activity-history-filters/template.ts +30 -0
  114. package/src/internal-plugins/activity-history/activity-history-item/filter/actions.ts +3 -0
  115. package/src/internal-plugins/activity-history/activity-history-item/filter/bootstrapper.ts +14 -0
  116. package/src/internal-plugins/activity-history/activity-history-item/filter/common-filters.ts +29 -0
  117. package/src/internal-plugins/activity-history/activity-history-item/filter/constants.ts +8 -0
  118. package/src/internal-plugins/activity-history/activity-history-item/filter/model.ts +20 -0
  119. package/src/internal-plugins/activity-history/activity-history-item/filter/selectors.ts +28 -0
  120. package/src/internal-plugins/activity-history/activity-history-item/filter/set-common-filter/bootstrapper.ts +14 -0
  121. package/src/internal-plugins/activity-history/activity-history-item/filter/set-common-filter/handler.ts +13 -0
  122. package/src/internal-plugins/activity-history/activity-history-item/filter/set-common-filter/request.ts +3 -0
  123. package/src/internal-plugins/activity-history/activity-history-item/filter/slice.ts +27 -0
  124. package/src/internal-plugins/activity-history/activity-history-item/list/UI/main-view/activity-history-main.ts +91 -0
  125. package/src/internal-plugins/activity-history/{components/activity-history → activity-history-item/list/UI/main-view}/styles.css +2 -39
  126. package/src/internal-plugins/activity-history/{components/activity-history → activity-history-item/list/UI/main-view}/template.ts +11 -32
  127. package/src/internal-plugins/activity-history/{components/activity-history/activity-history-timeline → activity-history-item/list/UI/timeline}/activity-history-timeline.ts +24 -7
  128. package/src/internal-plugins/activity-history/{components/activity-history/activity-history-timeline → activity-history-item/list/UI/timeline}/styles.css +1 -1
  129. package/src/internal-plugins/activity-history/{components/activity-history/activity-history-timeline → activity-history-item/list/UI/timeline}/template.ts +8 -7
  130. package/src/internal-plugins/activity-history/activity-history-item/list/bootstrapper.ts +5 -0
  131. package/src/internal-plugins/activity-history/{domain → activity-history-item/list}/group-history-items/group-history-items.test.ts +1 -1
  132. package/src/internal-plugins/activity-history/{domain → activity-history-item/list}/group-history-items/group-history-items.ts +12 -8
  133. package/src/internal-plugins/activity-history/activity-history-item/list/handle-busy/actions.ts +4 -0
  134. package/src/internal-plugins/activity-history/activity-history-item/list/handle-busy/bootstrapper.ts +5 -0
  135. package/src/internal-plugins/activity-history/activity-history-item/list/handle-busy/busy-component/component.ts +27 -0
  136. package/src/internal-plugins/activity-history/activity-history-item/list/handle-busy/busy-component/styles.css +15 -0
  137. package/src/internal-plugins/activity-history/activity-history-item/list/handle-busy/busy-component/template.ts +10 -0
  138. package/src/internal-plugins/activity-history/activity-history-item/list/handle-busy/reducers.ts +8 -0
  139. package/src/internal-plugins/activity-history/activity-history-item/list/handle-busy/selectors.ts +13 -0
  140. package/src/internal-plugins/activity-history/activity-history-item/list/handle-error/actions.ts +4 -0
  141. package/src/internal-plugins/activity-history/activity-history-item/list/handle-error/reducers.ts +6 -0
  142. package/src/internal-plugins/activity-history/activity-history-item/list/selectors.ts +62 -0
  143. package/src/internal-plugins/activity-history/{domain → activity-history-item/list}/sort-history-items-by-date/sort-history-items-by-date.ts +7 -7
  144. package/src/internal-plugins/activity-history/activity-history-item/remove/reducer.ts +5 -0
  145. package/src/internal-plugins/activity-history/activity-history-item/search/actions.ts +3 -0
  146. package/src/internal-plugins/activity-history/activity-history-item/search/activity-history-search-bar/activity-history-search-bar.ts +26 -0
  147. package/src/internal-plugins/activity-history/activity-history-item/search/activity-history-search-bar/template.ts +8 -0
  148. 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
  149. package/src/internal-plugins/activity-history/activity-history-item/search/activity-history-search-results/styles.css +14 -0
  150. 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
  151. package/src/internal-plugins/activity-history/{features/search-items → activity-history-item/search}/bootstrapper.ts +3 -1
  152. package/src/internal-plugins/activity-history/activity-history-item/search/handler.ts +17 -0
  153. package/src/internal-plugins/activity-history/activity-history-item/search/reducer.ts +5 -0
  154. package/src/internal-plugins/activity-history/activity-history-item/search/selectors.ts +4 -0
  155. package/src/internal-plugins/activity-history/activity-history-item/slice.ts +37 -0
  156. package/src/internal-plugins/activity-history/activity-history-item/update/action.ts +3 -0
  157. package/src/internal-plugins/activity-history/{features/update-history-item → activity-history-item/update}/bootstrapper.ts +1 -1
  158. package/src/internal-plugins/activity-history/activity-history-item/update/handler.ts +20 -0
  159. package/src/internal-plugins/activity-history/activity-history-item/update/reducer.ts +11 -0
  160. package/src/internal-plugins/activity-history/{features/update-history-item → activity-history-item/update}/request.ts +1 -1
  161. package/src/internal-plugins/activity-history/activity-history-item/update/update-item-in-collection.test.ts +65 -0
  162. package/src/internal-plugins/activity-history/activity-history-item/update/update-item-in-collection.ts +18 -0
  163. package/src/internal-plugins/activity-history/index.ts +1 -1
  164. package/src/internal-plugins/activity-history/infrastructure/base-handlers.ts +22 -0
  165. package/src/internal-plugins/activity-history/infrastructure/ioc/container.ts +9 -1
  166. package/src/internal-plugins/activity-history/infrastructure/state/store.ts +4 -2
  167. package/src/internal-plugins/activity-history/main.ts +15 -11
  168. package/dist/primary/shell/src/internal-plugins/activity-history/components/activity-history/activity-history-search-header/template.d.ts +0 -3
  169. package/dist/primary/shell/src/internal-plugins/activity-history/components/activity-history/activity-history.d.ts +0 -28
  170. package/dist/primary/shell/src/internal-plugins/activity-history/components/activity-history/template.d.ts +0 -4
  171. package/dist/primary/shell/src/internal-plugins/activity-history/domain/filter-by-search-string/filter-by-search-string.d.ts +0 -3
  172. package/dist/primary/shell/src/internal-plugins/activity-history/domain/handle-collections/handle-collections.d.ts +0 -19
  173. package/dist/primary/shell/src/internal-plugins/activity-history/features/add-history-item/handler.d.ts +0 -8
  174. package/dist/primary/shell/src/internal-plugins/activity-history/features/add-history-items/handler.d.ts +0 -8
  175. package/dist/primary/shell/src/internal-plugins/activity-history/features/bootstrapper.d.ts +0 -4
  176. package/dist/primary/shell/src/internal-plugins/activity-history/features/export-to-pdf/handler.d.ts +0 -8
  177. package/dist/primary/shell/src/internal-plugins/activity-history/features/inject-async-history-items/handler.d.ts +0 -8
  178. package/dist/primary/shell/src/internal-plugins/activity-history/features/search-items/handler.d.ts +0 -10
  179. package/dist/primary/shell/src/internal-plugins/activity-history/features/update-history-item/handler.d.ts +0 -8
  180. package/dist/primary/shell/src/internal-plugins/activity-history/infrastructure/state/actions.d.ts +0 -1
  181. package/dist/primary/shell/src/internal-plugins/activity-history/infrastructure/state/selectors.d.ts +0 -210
  182. package/src/internal-plugins/activity-history/components/activity-history/activity-history.ts +0 -125
  183. package/src/internal-plugins/activity-history/domain/filter-by-search-string/filter-by-search-string.test.ts +0 -68
  184. package/src/internal-plugins/activity-history/domain/filter-by-search-string/filter-by-search-string.ts +0 -44
  185. package/src/internal-plugins/activity-history/domain/handle-collections/handle-collections.ts +0 -47
  186. package/src/internal-plugins/activity-history/features/add-history-items/handler.ts +0 -23
  187. package/src/internal-plugins/activity-history/features/bootstrapper.ts +0 -39
  188. package/src/internal-plugins/activity-history/features/inject-async-history-items/handler.ts +0 -37
  189. package/src/internal-plugins/activity-history/features/search-items/handler.ts +0 -24
  190. package/src/internal-plugins/activity-history/features/update-history-item/handler.ts +0 -23
  191. package/src/internal-plugins/activity-history/infrastructure/state/actions.ts +0 -13
  192. package/src/internal-plugins/activity-history/infrastructure/state/selectors.ts +0 -67
  193. package/src/internal-plugins/activity-history/infrastructure/state/slices.ts +0 -61
  194. /package/dist/primary/shell/src/internal-plugins/activity-history/{features → activity-history-item/add}/add-history-item/request.d.ts +0 -0
  195. /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
  196. /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
  197. /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
  198. /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
  199. /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
  200. /package/dist/primary/shell/src/internal-plugins/activity-history/{components → activity-history-item/export-to-pdf}/export-pdf-modal/template.d.ts +0 -0
  201. /package/dist/primary/shell/src/internal-plugins/activity-history/{features → activity-history-item}/export-to-pdf/request.d.ts +0 -0
  202. /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
  203. /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
  204. /package/dist/primary/shell/src/internal-plugins/activity-history/{features/search-items → activity-history-item/search}/request.d.ts +0 -0
  205. /package/src/internal-plugins/activity-history/{features → activity-history-item/add}/add-history-item/request.ts +0 -0
  206. /package/src/internal-plugins/activity-history/{domain → activity-history-item/domain}/is-valid-history-item/is-valid-history-item.test.ts +0 -0
  207. /package/src/internal-plugins/activity-history/{domain → activity-history-item/domain}/is-valid-history-item/is-valid-history-item.ts +0 -0
  208. /package/src/internal-plugins/activity-history/{components → activity-history-item/export-to-pdf}/export-pdf-modal/export-pdf-modal.css +0 -0
  209. /package/src/internal-plugins/activity-history/{features → activity-history-item}/export-to-pdf/request.ts +0 -0
  210. /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
  211. /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
  212. /package/src/internal-plugins/activity-history/{features/search-items → activity-history-item/search}/request.ts +0 -0
@@ -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
+ }
@@ -0,0 +1,54 @@
1
+ export interface ISpec<TContext> {
2
+ isSatisfiedBy(context: TContext): boolean;
3
+ and(spec: ISpec<TContext>): ISpec<TContext>;
4
+ or(spec: ISpec<TContext>): ISpec<TContext>;
5
+ not(): ISpec<TContext>;
6
+ }
7
+
8
+
9
+ export abstract class Spec<TContext> implements ISpec<TContext> {
10
+ abstract isSatisfiedBy(context: TContext): boolean;
11
+ and(spec: ISpec<TContext>): ISpec<TContext> {
12
+ return new AndSpec(this as unknown as ISpec<TContext>, spec);
13
+ }
14
+ or(spec: ISpec<TContext>): ISpec<TContext> {
15
+ return new OrSpec(this as unknown as ISpec<TContext>, spec);
16
+ }
17
+ not(): ISpec<TContext> {
18
+ return new NotSpec(this as unknown as ISpec<TContext>);
19
+ }
20
+ }
21
+ export class AndSpec<TContext> extends Spec<TContext> {
22
+ constructor(
23
+ private left: ISpec<TContext>,
24
+ private right: ISpec<TContext>,
25
+ ) {
26
+ super();
27
+ }
28
+ isSatisfiedBy(context: TContext): boolean {
29
+ return this.left.isSatisfiedBy(context) && this.right.isSatisfiedBy(context);
30
+ }
31
+ }
32
+
33
+ export class OrSpec<TContext> extends Spec<TContext> {
34
+ constructor(
35
+ private left: ISpec<TContext>,
36
+ private right: ISpec<TContext>,
37
+ ) {
38
+ super();
39
+ }
40
+
41
+ isSatisfiedBy(context: TContext): boolean {
42
+ return this.left.isSatisfiedBy(context) || this.right.isSatisfiedBy(context);
43
+ }
44
+ }
45
+
46
+ export class NotSpec<TContext> extends Spec<TContext> {
47
+ constructor(private spec: ISpec<TContext>) {
48
+ super();
49
+ }
50
+
51
+ isSatisfiedBy(context: TContext): boolean {
52
+ return !this.spec.isSatisfiedBy(context);
53
+ }
54
+ }
@@ -0,0 +1,8 @@
1
+ import { IActivityHistoryItem } from "../model";
2
+ import { Spec } from "./spec";
3
+
4
+ export class TrueSpec extends Spec<IActivityHistoryItem> {
5
+ isSatisfiedBy(): boolean {
6
+ return true;
7
+ }
8
+ }
@@ -2,6 +2,7 @@ import { BrokerExtensions } from "plugins/core";
2
2
  import { ExportToPdfHandler } from "./handler";
3
3
  import { ExportPdf } from "./request";
4
4
  import { BrokerDisposableHandler } from "../../../../api/broker/primaria-broker";
5
+ import "./export-pdf-modal/export-pdf-modal";
5
6
 
6
7
  let request: BrokerDisposableHandler;
7
8
 
@@ -9,6 +10,6 @@ export const bootstrapExportPdf = (broker: BrokerExtensions) => {
9
10
  request = broker.registerRequest(ExportPdf, ExportToPdfHandler);
10
11
  };
11
12
 
12
- export const teardownExportPdf = (broker: BrokerExtensions) => {
13
+ export const teardownExportPdf = () => {
13
14
  request?.dispose();
14
15
  };
@@ -2,7 +2,7 @@ import { LitElement, css, html, unsafeCSS } from "lit";
2
2
  import { customElement, property } from "lit/decorators.js";
3
3
  import styles from "./export-pdf-modal.css?inline";
4
4
  import { template } from "./template";
5
- import { confirmMixin } from "../../../../index";
5
+ import { confirmMixin } from "../../../../../UI/shared-components/primaria-interaction/confirm-mixin";
6
6
 
7
7
  @customElement("export-pdf-modal")
8
8
  export class ExportPdfModal extends confirmMixin(LitElement) {
@@ -49,7 +49,7 @@ export class ExportPdfModal extends confirmMixin(LitElement) {
49
49
  handleTest() {
50
50
  console.log(
51
51
  // this.selectedVisibilityLevelElement,
52
- this.selectedPeriodDate
52
+ this.selectedPeriodDate,
53
53
  );
54
54
  }
55
55
  }
@@ -1,6 +1,6 @@
1
1
  import { html, nothing } from "lit";
2
2
  import { ExportPdfModal } from "./export-pdf-modal";
3
- import { translate } from "../../localization";
3
+ import { translate } from "../../../localization";
4
4
 
5
5
  export const template = (props: ExportPdfModal) => {
6
6
  const { arrayElements, text } = props;
@@ -18,14 +18,14 @@ export const template = (props: ExportPdfModal) => {
18
18
  <div class="selector-options">
19
19
  <dss-radio-button>
20
20
  <input slot="input" id="radioButton1" type="radio" name="exportOption" @change=${() => {
21
- props.selectedRadioOption = "history";
21
+ props.selectedRadioOption = "history";
22
22
  }}>
23
23
  <label slot="label" for="radioButton1">${translate("modal.allActivityHistory")}</label>
24
24
  </dss-radio-button>
25
25
  <dss-radio-button>
26
26
  <input slot="input" id="radioButton2" type="radio" name="exportOption" @change=${() => {
27
- props.selectedRadioOption = "filters";
28
- }}>
27
+ props.selectedRadioOption = "filters";
28
+ }}>
29
29
  <label slot="label" for="radioButton2">${translate("modal.onlyAppliedFilters")}</label>
30
30
  </dss-radio-button>
31
31
  </div>
@@ -37,7 +37,7 @@ export const template = (props: ExportPdfModal) => {
37
37
  <div class="datepicker-canvas">
38
38
  <dss-datepicker-range inputsize="md" @onRangeChange=${(e) => {
39
39
  props.selectedPeriodDate = e.detail;
40
- }} helpText="Sense seleccionar data, s'aplicarà la de la primera entrada.
40
+ }} helpText="Sense seleccionar data, s'aplicarà la de la primera entrada.
41
41
  Sense seleccionar data de fi, s'aplicarà la de l'última entrada.">
42
42
  <label slot="label-range-start" for="myDatepickerRangeStart">${translate("modal.startDate")}</label>
43
43
  <input slot="input-range-start" id="myDatepickerRangeStart" type="text" class="dss-input">
@@ -1,10 +1,7 @@
1
- import { inject } from "inversify";
2
- import { TYPES } from "../../infrastructure/ioc/types";
3
- import { ExportPdfModal } from "../../components/export-pdf-modal/export-pdf-modal";
4
- import { PrimariaApi } from "../../../../api/api";
1
+ import { ApiBaseHandler } from "../../infrastructure/base-handlers";
2
+ import { ExportPdfModal } from "./export-pdf-modal/export-pdf-modal";
5
3
 
6
- export class ExportToPdfHandler {
7
- constructor(@inject(TYPES.primaryApi) private api: PrimariaApi) {}
4
+ export class ExportToPdfHandler extends ApiBaseHandler {
8
5
  async handle() {
9
6
  try {
10
7
  this.api.interactionManager.customConfirm({
@@ -0,0 +1,40 @@
1
+ import { LitElement, css, html, unsafeCSS } from "lit";
2
+ import { customElement, state } from "lit/decorators.js";
3
+ import { PrimariaApi } from "../../../../../../api/api";
4
+ import { IActivityHistoryFilter } from "../../model";
5
+ import { lazyInject } from "../../../../infrastructure/ioc/container";
6
+ import { TYPES } from "../../../../infrastructure/ioc/types";
7
+ import { connectedProperty } from "../../../../infrastructure/state/connected-property";
8
+ import styles from "./styles.css?inline";
9
+ import { template } from "./template";
10
+ import { activityHistoryCommonFiltersSelector } from "../../selectors";
11
+ import { SetCommonFilter } from "../../set-common-filter/request";
12
+
13
+ //@ts-ignore
14
+ @customElement("activity-history-filters")
15
+ export class ActivityHistoryFilters extends LitElement {
16
+ render() {
17
+ return html`${template(this)}`;
18
+ }
19
+
20
+ static styles = css`
21
+ ${unsafeCSS(styles)}
22
+ `;
23
+
24
+ @connectedProperty(activityHistoryCommonFiltersSelector)
25
+ filters: IActivityHistoryFilter[];
26
+
27
+ @lazyInject(TYPES.primaryApi)
28
+ api: PrimariaApi;
29
+
30
+ @state()
31
+ filtersExpanded = false;
32
+
33
+ _toggleFilters() {
34
+ this.filtersExpanded = !this.filtersExpanded;
35
+ }
36
+
37
+ _onChangeCommonFilterValue(filterId: string, value: boolean) {
38
+ this.api.broker.send(new SetCommonFilter({ id: filterId, enabled: value }));
39
+ }
40
+ }
@@ -0,0 +1,39 @@
1
+ .filters-sidebar {
2
+ padding: 8px 4px;
3
+ border-right: 1px solid rgb(189, 189, 189);
4
+ width: 56px;
5
+ height: 100%;
6
+ box-sizing: border-box;
7
+ display: flex;
8
+ flex-direction: column;
9
+ dss-icon-button{
10
+ align-self: center;
11
+ }
12
+ &[expanded] {
13
+ width: 296px;
14
+ .filters-sidebar-opened {
15
+ display: flex;
16
+ align-items: center;
17
+ justify-content: space-between;
18
+ padding-inline: 8px;
19
+ color: var(--color-neutral-900);
20
+ font-weight: 700;
21
+ font-size: 16px;
22
+ line-height: 24px;
23
+ }
24
+ }
25
+ }
26
+
27
+
28
+ .filter-container{
29
+ display: flex;
30
+ flex-direction: column;
31
+ padding: 16px 8px 8px 8px;
32
+
33
+
34
+ }
35
+
36
+ .filter-container .filter{
37
+ padding: 8px 0;
38
+ border-bottom: 1px solid var(--color-neutral-200);
39
+ }
@@ -0,0 +1,30 @@
1
+ import { html } from "lit";
2
+ import { ActivityHistoryFilters } from "./activity-history-filters";
3
+ import { repeat } from "lit/directives/repeat.js";
4
+ import { IActivityHistoryFilter } from "../../model";
5
+ import { ActivityHistoryFilterType } from "../../constants";
6
+ import { translate } from "../../../../localization";
7
+
8
+ const getFilterTemplate = (props: ActivityHistoryFilters, filter: IActivityHistoryFilter) => {
9
+ switch (filter.type) {
10
+ case ActivityHistoryFilterType.Switch:
11
+ return html`
12
+ <dss-input-switch size="sm" @onChangeValue=${(e) => props._onChangeCommonFilterValue(filter.id, e.detail)}>
13
+ <input slot="input" id="switch-${filter.id}" aria-label=${filter.title} type="checkbox">
14
+ <label slot="label" for="switch-${filter.id}">${filter.title}</label>
15
+ </dss-input-switch>`;
16
+ }
17
+ };
18
+
19
+ export const template = (props: ActivityHistoryFilters) =>
20
+ html`
21
+ <div class="filters-sidebar" ?expanded=${props.filtersExpanded} >
22
+ ${
23
+ props.filtersExpanded
24
+ ? html`<div class="filters-sidebar-opened">${translate("filters.filters")}<dss-icon-button @click=${() => props._toggleFilters()} size="md" variant="primary" icon="keyboard_double_arrow_left"></dss-icon-button></div><div class="filter-container">
25
+ ${repeat(props.filters, (filter: IActivityHistoryFilter) => html`<div class="filter">${getFilterTemplate(props, filter)}</div> `)}
26
+ </div> `
27
+ : html`<dss-icon-button @click=${() => props._toggleFilters()} size="md" variant="primary" icon="keyboard_double_arrow_right"></dss-icon-button>`
28
+ }
29
+ </div>
30
+ `;
@@ -0,0 +1,3 @@
1
+ import { activityHistoryFiltersSlice } from "./slice";
2
+
3
+ export const { setCommonFilterValue } = activityHistoryFiltersSlice.actions;
@@ -0,0 +1,14 @@
1
+ import { BrokerExtensions } from "@primaria/plugins-core";
2
+ import "../../activity-history-item/filter/UI/activity-history-filters/activity-history-filters";
3
+ import {
4
+ bootstrapSetCommonFilter,
5
+ teardownSetCommonFilter,
6
+ } from "./set-common-filter/bootstrapper";
7
+
8
+ export const bootstrapFilters = (broker: BrokerExtensions) => {
9
+ bootstrapSetCommonFilter(broker);
10
+ };
11
+
12
+ export const teardownFilters = () => {
13
+ teardownSetCommonFilter();
14
+ };
@@ -0,0 +1,29 @@
1
+ import { OwnSpec } from "../domain/specs/own-spec";
2
+ import { RelevantSpec } from "../domain/specs/relevant-spec";
3
+ import { ActivityHistoryFilterOperation, ActivityHistoryFilterType } from "./constants";
4
+ import { IActivityHistoryFilterGroup } from "./model";
5
+
6
+ export const commonFilters: IActivityHistoryFilterGroup[] = [
7
+ {
8
+ id: "common",
9
+ title: "Comuns",
10
+ filters: [
11
+ {
12
+ id: "relevant",
13
+ title: "Veure rellevants",
14
+ spec: RelevantSpec,
15
+ enabled: false,
16
+ type: ActivityHistoryFilterType.Switch,
17
+ operation: ActivityHistoryFilterOperation.And,
18
+ },
19
+ {
20
+ id: "own",
21
+ title: "Veure meus",
22
+ spec: OwnSpec,
23
+ enabled: false,
24
+ type: ActivityHistoryFilterType.Switch,
25
+ operation: ActivityHistoryFilterOperation.And,
26
+ },
27
+ ],
28
+ },
29
+ ];
@@ -0,0 +1,8 @@
1
+ export enum ActivityHistoryFilterType {
2
+ Switch = "switch",
3
+ }
4
+
5
+ export enum ActivityHistoryFilterOperation {
6
+ And = "and",
7
+ Or = "or",
8
+ }
@@ -0,0 +1,20 @@
1
+ import { IActivityHistoryItem } from "../domain/model";
2
+ import { Spec } from "../domain/specs/spec";
3
+ import { ActivityHistoryFilterOperation, ActivityHistoryFilterType } from "./constants";
4
+
5
+ type Constructor<T> = new (...args: any[]) => T;
6
+
7
+ export interface IActivityHistoryFilterGroup {
8
+ id: string;
9
+ title: string;
10
+ filters: IActivityHistoryFilter[];
11
+ }
12
+
13
+ export interface IActivityHistoryFilter {
14
+ id: string;
15
+ title: string;
16
+ spec: Constructor<Spec<IActivityHistoryItem>>;
17
+ enabled: boolean;
18
+ type: ActivityHistoryFilterType;
19
+ operation: ActivityHistoryFilterOperation;
20
+ }
@@ -0,0 +1,28 @@
1
+ import { createSelector } from "@reduxjs/toolkit";
2
+ import { RootState } from "../../infrastructure/state/store";
3
+ import { TrueSpec } from "../domain/specs/true-spec";
4
+ import { IActivityHistoryFilter } from "./model";
5
+
6
+ export const activityHistoryFiltersSelector = (state: RootState) =>
7
+ state.activityHistoryFilters.filters;
8
+
9
+ export const activityHistoryCommonFiltersSelector = createSelector(
10
+ activityHistoryFiltersSelector,
11
+ (filters) => filters.find((f) => f.id === "common")?.filters,
12
+ );
13
+ export const isEnabledCommonFilterSelector = (filterId: string) =>
14
+ createSelector(
15
+ activityHistoryCommonFiltersSelector,
16
+ (filterSpecs) => filterSpecs?.find((s) => s.id === filterId)?.enabled,
17
+ );
18
+
19
+ export const commonSpecSelector = createSelector(
20
+ activityHistoryCommonFiltersSelector,
21
+ (commonFilters: IActivityHistoryFilter[]) => {
22
+ const enabledCommonFilters = commonFilters.filter((f) => f.enabled);
23
+ const finalCommonSpec = enabledCommonFilters.reduce((acc, filter) => {
24
+ return acc.and(new filter.spec());
25
+ }, new TrueSpec());
26
+ return finalCommonSpec;
27
+ },
28
+ );
@@ -0,0 +1,14 @@
1
+ import { BrokerExtensions } from "@primaria/plugins-core";
2
+ import { BrokerDisposableHandler } from "../../../../../api/broker/primaria-broker";
3
+ import { SetCommonFilter } from "./request";
4
+ import { SetCommonFilterHandler } from "./handler";
5
+
6
+ let request: BrokerDisposableHandler;
7
+
8
+ export const bootstrapSetCommonFilter = (broker: BrokerExtensions) => {
9
+ request = broker.registerRequest(SetCommonFilter, SetCommonFilterHandler);
10
+ };
11
+
12
+ export const teardownSetCommonFilter = () => {
13
+ request?.dispose();
14
+ };
@@ -0,0 +1,13 @@
1
+ import { StoreBaseHandler } from "../../../infrastructure/base-handlers";
2
+ import { setCommonFilterValue } from "../actions";
3
+ import { SetCommonFilter } from "./request";
4
+
5
+ export class SetCommonFilterHandler extends StoreBaseHandler {
6
+ async handle(request: SetCommonFilter) {
7
+ try {
8
+ this.store.dispatch(setCommonFilterValue(request.payload));
9
+ } catch (e) {
10
+ console.log(e.message);
11
+ }
12
+ }
13
+ }
@@ -0,0 +1,3 @@
1
+ export class SetCommonFilter {
2
+ constructor(public payload: { id: string; enabled: boolean }) {}
3
+ }
@@ -0,0 +1,27 @@
1
+ import { createSlice } from "@reduxjs/toolkit";
2
+ import { commonFilters } from "./common-filters";
3
+ import { setSearchStringReducer } from "../search/reducer";
4
+
5
+ export const activityHistoryFiltersSlice = createSlice({
6
+ name: "activity-history-filters",
7
+ initialState: {
8
+ searchString: "",
9
+ filters: [...commonFilters],
10
+ },
11
+ reducers: {
12
+ setSearchString: setSearchStringReducer,
13
+ setCommonFilterValue(state, action) {
14
+ state.filters = state.filters.map((f) => {
15
+ if (f.id === "common") {
16
+ return {
17
+ ...f,
18
+ filters: f.filters.map((ff) =>
19
+ ff.id === action.payload.id ? { ...ff, enabled: action.payload.enabled } : ff,
20
+ ),
21
+ };
22
+ }
23
+ return f;
24
+ });
25
+ },
26
+ },
27
+ });