@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.
Files changed (218) hide show
  1. package/dist/index.js +1545 -1293
  2. package/dist/index.js.map +1 -1
  3. package/dist/index.umd.cjs +127 -116
  4. package/dist/index.umd.cjs.map +1 -1
  5. package/dist/primary/shell/src/UI/components/primaria-shell/primaria-shell.d.ts +1 -0
  6. package/dist/primary/shell/src/UI/shared-components/primaria-interaction/typings.d.ts +1 -1
  7. package/dist/primary/shell/src/UI/shared-components/primaria-text-editor/primaria-rich-text-editor.d.ts +1 -0
  8. 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
  9. package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/add/add-async-history-items/handler.d.ts +6 -0
  10. 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
  11. package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/add/add-history-item/action.d.ts +5 -0
  12. package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/add/add-history-item/add-item-to-collection.d.ts +10 -0
  13. package/dist/primary/shell/src/internal-plugins/activity-history/{features → activity-history-item/add}/add-history-item/bootstrapper.d.ts +1 -1
  14. package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/add/add-history-item/handler.d.ts +6 -0
  15. package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/add/add-history-item/reducer.d.ts +8 -0
  16. package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/add/add-history-items/action.d.ts +6 -0
  17. package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/add/add-history-items/add-items-to-collection.d.ts +10 -0
  18. package/dist/primary/shell/src/internal-plugins/activity-history/{features → activity-history-item/add}/add-history-items/bootstrapper.d.ts +1 -1
  19. package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/add/add-history-items/handler.d.ts +6 -0
  20. package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/add/add-history-items/reducer.d.ts +9 -0
  21. package/dist/primary/shell/src/internal-plugins/activity-history/{features → activity-history-item/add}/add-history-items/request.d.ts +2 -0
  22. package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/bootstrapper.d.ts +4 -0
  23. package/dist/primary/shell/src/internal-plugins/activity-history/{domain → activity-history-item/domain}/model.d.ts +5 -3
  24. package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/domain/specs/own-spec.d.ts +8 -0
  25. package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/domain/specs/relevant-spec.d.ts +8 -0
  26. package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/domain/specs/search-string-spec.d.ts +9 -0
  27. package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/domain/specs/spec.d.ts +29 -0
  28. package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/domain/specs/true-spec.d.ts +6 -0
  29. package/dist/primary/shell/src/internal-plugins/activity-history/{features → activity-history-item}/export-to-pdf/bootstrapper.d.ts +1 -1
  30. 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
  31. package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/export-to-pdf/handler.d.ts +6 -0
  32. package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/filter/UI/activity-history-filters/activity-history-filters.d.ts +13 -0
  33. package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/filter/UI/activity-history-filters/template.d.ts +3 -0
  34. package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/filter/actions.d.ts +1 -0
  35. package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/filter/bootstrapper.d.ts +4 -0
  36. package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/filter/common-filters.d.ts +3 -0
  37. package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/filter/constants.d.ts +7 -0
  38. package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/filter/model.d.ts +19 -0
  39. package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/filter/selectors.d.ts +157 -0
  40. package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/filter/set-common-filter/bootstrapper.d.ts +4 -0
  41. package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/filter/set-common-filter/handler.d.ts +6 -0
  42. package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/filter/set-common-filter/request.d.ts +10 -0
  43. package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/list/UI/main-view/activity-history-main.d.ts +23 -0
  44. package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/list/UI/main-view/template.d.ts +4 -0
  45. 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
  46. package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/list/bootstrapper.d.ts +2 -0
  47. package/dist/primary/shell/src/internal-plugins/activity-history/{domain → activity-history-item/list}/group-history-items/group-history-items.d.ts +1 -1
  48. package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/list/handle-busy/actions.d.ts +1 -0
  49. package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/list/handle-busy/bootstrapper.d.ts +2 -0
  50. package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/list/handle-busy/busy-component/component.d.ts +8 -0
  51. package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/list/handle-busy/busy-component/template.d.ts +4 -0
  52. package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/list/handle-busy/reducers.d.ts +4 -0
  53. package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/list/handle-busy/selectors.d.ts +4 -0
  54. package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/list/handle-error/actions.d.ts +1 -0
  55. package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/list/handle-error/reducers.d.ts +2 -0
  56. package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/list/selectors.d.ts +156 -0
  57. 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
  58. 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
  59. package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/remove/reducer.d.ts +1 -0
  60. package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/search/actions.d.ts +1 -0
  61. 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
  62. package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/search/activity-history-search-bar/template.d.ts +3 -0
  63. 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
  64. package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/search/activity-history-search-results/template.d.ts +3 -0
  65. package/dist/primary/shell/src/internal-plugins/activity-history/{features/search-items → activity-history-item/search}/bootstrapper.d.ts +1 -1
  66. package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/search/handler.d.ts +6 -0
  67. package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/search/reducer.d.ts +3 -0
  68. package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/search/selectors.d.ts +3 -0
  69. package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/slice.d.ts +26 -0
  70. package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/update/action.d.ts +4 -0
  71. package/dist/primary/shell/src/internal-plugins/activity-history/{features/update-history-item → activity-history-item/update}/bootstrapper.d.ts +1 -1
  72. package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/update/handler.d.ts +6 -0
  73. package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/update/reducer.d.ts +7 -0
  74. package/dist/primary/shell/src/internal-plugins/activity-history/{features/update-history-item → activity-history-item/update}/request.d.ts +1 -1
  75. package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/update/update-item-in-collection.d.ts +3 -0
  76. package/dist/primary/shell/src/internal-plugins/activity-history/activity-history-item/update/update-item-in-collection.test.d.ts +1 -0
  77. package/dist/primary/shell/src/internal-plugins/activity-history/index.d.ts +1 -1
  78. package/dist/primary/shell/src/internal-plugins/activity-history/infrastructure/base-handlers.d.ts +16 -0
  79. package/dist/primary/shell/src/internal-plugins/activity-history/infrastructure/ioc/container.d.ts +2 -0
  80. package/dist/primary/shell/src/internal-plugins/activity-history/infrastructure/state/store.d.ts +16 -4
  81. package/package.json +1 -1
  82. package/src/UI/components/primaria-shell/primaria-shell.ts +12 -5
  83. package/src/UI/shared-components/primaria-interaction/components/notifier-component-styles.css +6 -6
  84. package/src/UI/shared-components/primaria-interaction/components/notifier-component.ts +2 -2
  85. package/src/UI/shared-components/primaria-interaction/typings.ts +1 -1
  86. package/src/UI/shared-components/primaria-nav-item/primaria-nav-item.ts +22 -3
  87. package/src/UI/shared-components/primaria-text-editor/primaria-rich-text-editor.ts +23 -0
  88. package/src/api/broker/factory.ts +13 -1
  89. package/src/internal-plugins/activity-history/{features/inject-async-history-items → activity-history-item/add/add-async-history-items}/bootstrapper.ts +2 -2
  90. package/src/internal-plugins/activity-history/activity-history-item/add/add-async-history-items/handler.ts +27 -0
  91. package/src/internal-plugins/activity-history/{features/inject-async-history-items → activity-history-item/add/add-async-history-items}/request.ts +3 -1
  92. package/src/internal-plugins/activity-history/activity-history-item/add/add-history-item/action.ts +3 -0
  93. package/src/internal-plugins/activity-history/activity-history-item/add/add-history-item/add-item-to-collection.ts +11 -0
  94. package/src/internal-plugins/activity-history/{features → activity-history-item/add}/add-history-item/bootstrapper.ts +2 -2
  95. package/src/internal-plugins/activity-history/{features → activity-history-item/add}/add-history-item/handler.ts +4 -7
  96. package/src/internal-plugins/activity-history/activity-history-item/add/add-history-item/reducer.ts +15 -0
  97. package/src/internal-plugins/activity-history/activity-history-item/add/add-history-items/action.ts +3 -0
  98. 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
  99. package/src/internal-plugins/activity-history/activity-history-item/add/add-history-items/add-items-to-collection.ts +25 -0
  100. package/src/internal-plugins/activity-history/{features → activity-history-item/add}/add-history-items/bootstrapper.ts +2 -2
  101. package/src/internal-plugins/activity-history/activity-history-item/add/add-history-items/handler.ts +22 -0
  102. package/src/internal-plugins/activity-history/activity-history-item/add/add-history-items/reducer.ts +22 -0
  103. package/src/internal-plugins/activity-history/{features → activity-history-item/add}/add-history-items/request.ts +2 -0
  104. package/src/internal-plugins/activity-history/activity-history-item/bootstrapper.ts +46 -0
  105. package/src/internal-plugins/activity-history/{domain → activity-history-item/domain}/model.ts +9 -3
  106. package/src/internal-plugins/activity-history/activity-history-item/domain/specs/own-spec.ts +14 -0
  107. package/src/internal-plugins/activity-history/activity-history-item/domain/specs/relevant-spec.ts +11 -0
  108. package/src/internal-plugins/activity-history/activity-history-item/domain/specs/relevant.spec.ts +59 -0
  109. package/src/internal-plugins/activity-history/activity-history-item/domain/specs/search-string-spec.test.ts +105 -0
  110. package/src/internal-plugins/activity-history/activity-history-item/domain/specs/search-string-spec.ts +58 -0
  111. package/src/internal-plugins/activity-history/activity-history-item/domain/specs/spec.ts +54 -0
  112. package/src/internal-plugins/activity-history/activity-history-item/domain/specs/true-spec.ts +8 -0
  113. package/src/internal-plugins/activity-history/{features → activity-history-item}/export-to-pdf/bootstrapper.ts +2 -1
  114. package/src/internal-plugins/activity-history/{components → activity-history-item/export-to-pdf}/export-pdf-modal/export-pdf-modal.ts +2 -2
  115. package/src/internal-plugins/activity-history/{components → activity-history-item/export-to-pdf}/export-pdf-modal/template.ts +5 -5
  116. package/src/internal-plugins/activity-history/{features → activity-history-item}/export-to-pdf/handler.ts +3 -6
  117. package/src/internal-plugins/activity-history/activity-history-item/filter/UI/activity-history-filters/activity-history-filters.ts +40 -0
  118. package/src/internal-plugins/activity-history/activity-history-item/filter/UI/activity-history-filters/styles.css +39 -0
  119. package/src/internal-plugins/activity-history/activity-history-item/filter/UI/activity-history-filters/template.ts +30 -0
  120. package/src/internal-plugins/activity-history/activity-history-item/filter/actions.ts +3 -0
  121. package/src/internal-plugins/activity-history/activity-history-item/filter/bootstrapper.ts +14 -0
  122. package/src/internal-plugins/activity-history/activity-history-item/filter/common-filters.ts +29 -0
  123. package/src/internal-plugins/activity-history/activity-history-item/filter/constants.ts +8 -0
  124. package/src/internal-plugins/activity-history/activity-history-item/filter/model.ts +20 -0
  125. package/src/internal-plugins/activity-history/activity-history-item/filter/selectors.ts +28 -0
  126. package/src/internal-plugins/activity-history/activity-history-item/filter/set-common-filter/bootstrapper.ts +14 -0
  127. package/src/internal-plugins/activity-history/activity-history-item/filter/set-common-filter/handler.ts +13 -0
  128. package/src/internal-plugins/activity-history/activity-history-item/filter/set-common-filter/request.ts +3 -0
  129. package/src/internal-plugins/activity-history/activity-history-item/filter/slice.ts +27 -0
  130. package/src/internal-plugins/activity-history/activity-history-item/list/UI/main-view/activity-history-main.ts +91 -0
  131. package/src/internal-plugins/activity-history/{components/activity-history → activity-history-item/list/UI/main-view}/styles.css +2 -39
  132. package/src/internal-plugins/activity-history/{components/activity-history → activity-history-item/list/UI/main-view}/template.ts +11 -32
  133. package/src/internal-plugins/activity-history/{components/activity-history/activity-history-timeline → activity-history-item/list/UI/timeline}/activity-history-timeline.ts +25 -8
  134. package/src/internal-plugins/activity-history/{components/activity-history/activity-history-timeline → activity-history-item/list/UI/timeline}/styles.css +1 -1
  135. package/src/internal-plugins/activity-history/{components/activity-history/activity-history-timeline → activity-history-item/list/UI/timeline}/template.ts +8 -7
  136. package/src/internal-plugins/activity-history/activity-history-item/list/bootstrapper.ts +5 -0
  137. package/src/internal-plugins/activity-history/{domain → activity-history-item/list}/group-history-items/group-history-items.test.ts +1 -1
  138. package/src/internal-plugins/activity-history/{domain → activity-history-item/list}/group-history-items/group-history-items.ts +12 -8
  139. package/src/internal-plugins/activity-history/activity-history-item/list/handle-busy/actions.ts +4 -0
  140. package/src/internal-plugins/activity-history/activity-history-item/list/handle-busy/bootstrapper.ts +5 -0
  141. package/src/internal-plugins/activity-history/activity-history-item/list/handle-busy/busy-component/component.ts +27 -0
  142. package/src/internal-plugins/activity-history/activity-history-item/list/handle-busy/busy-component/styles.css +15 -0
  143. package/src/internal-plugins/activity-history/activity-history-item/list/handle-busy/busy-component/template.ts +10 -0
  144. package/src/internal-plugins/activity-history/activity-history-item/list/handle-busy/reducers.ts +8 -0
  145. package/src/internal-plugins/activity-history/activity-history-item/list/handle-busy/selectors.ts +13 -0
  146. package/src/internal-plugins/activity-history/activity-history-item/list/handle-error/actions.ts +4 -0
  147. package/src/internal-plugins/activity-history/activity-history-item/list/handle-error/reducers.ts +6 -0
  148. package/src/internal-plugins/activity-history/activity-history-item/list/selectors.ts +62 -0
  149. package/src/internal-plugins/activity-history/{domain → activity-history-item/list}/sort-history-items-by-date/sort-history-items-by-date.ts +7 -7
  150. package/src/internal-plugins/activity-history/activity-history-item/remove/reducer.ts +5 -0
  151. package/src/internal-plugins/activity-history/activity-history-item/search/actions.ts +3 -0
  152. package/src/internal-plugins/activity-history/activity-history-item/search/activity-history-search-bar/activity-history-search-bar.ts +26 -0
  153. package/src/internal-plugins/activity-history/activity-history-item/search/activity-history-search-bar/template.ts +8 -0
  154. 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
  155. package/src/internal-plugins/activity-history/activity-history-item/search/activity-history-search-results/styles.css +14 -0
  156. 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
  157. package/src/internal-plugins/activity-history/{features/search-items → activity-history-item/search}/bootstrapper.ts +3 -1
  158. package/src/internal-plugins/activity-history/activity-history-item/search/handler.ts +17 -0
  159. package/src/internal-plugins/activity-history/activity-history-item/search/reducer.ts +5 -0
  160. package/src/internal-plugins/activity-history/activity-history-item/search/selectors.ts +4 -0
  161. package/src/internal-plugins/activity-history/activity-history-item/slice.ts +37 -0
  162. package/src/internal-plugins/activity-history/activity-history-item/update/action.ts +3 -0
  163. package/src/internal-plugins/activity-history/{features/update-history-item → activity-history-item/update}/bootstrapper.ts +1 -1
  164. package/src/internal-plugins/activity-history/activity-history-item/update/handler.ts +20 -0
  165. package/src/internal-plugins/activity-history/activity-history-item/update/reducer.ts +11 -0
  166. package/src/internal-plugins/activity-history/{features/update-history-item → activity-history-item/update}/request.ts +1 -1
  167. package/src/internal-plugins/activity-history/activity-history-item/update/update-item-in-collection.test.ts +65 -0
  168. package/src/internal-plugins/activity-history/activity-history-item/update/update-item-in-collection.ts +18 -0
  169. package/src/internal-plugins/activity-history/index.ts +1 -1
  170. package/src/internal-plugins/activity-history/infrastructure/base-handlers.ts +22 -0
  171. package/src/internal-plugins/activity-history/infrastructure/ioc/container.ts +9 -1
  172. package/src/internal-plugins/activity-history/infrastructure/state/store.ts +4 -2
  173. package/src/internal-plugins/activity-history/main.ts +15 -11
  174. package/dist/primary/shell/src/internal-plugins/activity-history/components/activity-history/activity-history-search-header/template.d.ts +0 -3
  175. package/dist/primary/shell/src/internal-plugins/activity-history/components/activity-history/activity-history.d.ts +0 -26
  176. package/dist/primary/shell/src/internal-plugins/activity-history/components/activity-history/template.d.ts +0 -4
  177. package/dist/primary/shell/src/internal-plugins/activity-history/domain/filter-by-search-string/filter-by-search-string.d.ts +0 -3
  178. package/dist/primary/shell/src/internal-plugins/activity-history/domain/handle-collections/handle-collections.d.ts +0 -19
  179. package/dist/primary/shell/src/internal-plugins/activity-history/features/add-history-item/handler.d.ts +0 -8
  180. package/dist/primary/shell/src/internal-plugins/activity-history/features/add-history-items/handler.d.ts +0 -8
  181. package/dist/primary/shell/src/internal-plugins/activity-history/features/bootstrapper.d.ts +0 -4
  182. package/dist/primary/shell/src/internal-plugins/activity-history/features/export-to-pdf/handler.d.ts +0 -8
  183. package/dist/primary/shell/src/internal-plugins/activity-history/features/inject-async-history-items/handler.d.ts +0 -8
  184. package/dist/primary/shell/src/internal-plugins/activity-history/features/search-items/handler.d.ts +0 -10
  185. package/dist/primary/shell/src/internal-plugins/activity-history/features/update-history-item/handler.d.ts +0 -8
  186. package/dist/primary/shell/src/internal-plugins/activity-history/infrastructure/state/actions.d.ts +0 -1
  187. package/dist/primary/shell/src/internal-plugins/activity-history/infrastructure/state/selectors.d.ts +0 -210
  188. package/src/internal-plugins/activity-history/components/activity-history/activity-history.ts +0 -115
  189. package/src/internal-plugins/activity-history/domain/filter-by-search-string/filter-by-search-string.test.ts +0 -68
  190. package/src/internal-plugins/activity-history/domain/filter-by-search-string/filter-by-search-string.ts +0 -44
  191. package/src/internal-plugins/activity-history/domain/handle-collections/handle-collections.ts +0 -47
  192. package/src/internal-plugins/activity-history/features/add-history-items/handler.ts +0 -23
  193. package/src/internal-plugins/activity-history/features/bootstrapper.ts +0 -39
  194. package/src/internal-plugins/activity-history/features/inject-async-history-items/handler.ts +0 -37
  195. package/src/internal-plugins/activity-history/features/search-items/handler.ts +0 -24
  196. package/src/internal-plugins/activity-history/features/update-history-item/handler.ts +0 -23
  197. package/src/internal-plugins/activity-history/infrastructure/state/actions.ts +0 -13
  198. package/src/internal-plugins/activity-history/infrastructure/state/selectors.ts +0 -67
  199. package/src/internal-plugins/activity-history/infrastructure/state/slices.ts +0 -61
  200. /package/dist/primary/shell/src/internal-plugins/activity-history/{features → activity-history-item/add}/add-history-item/request.d.ts +0 -0
  201. /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
  202. /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
  203. /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
  204. /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
  205. /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
  206. /package/dist/primary/shell/src/internal-plugins/activity-history/{components → activity-history-item/export-to-pdf}/export-pdf-modal/template.d.ts +0 -0
  207. /package/dist/primary/shell/src/internal-plugins/activity-history/{features → activity-history-item}/export-to-pdf/request.d.ts +0 -0
  208. /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
  209. /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
  210. /package/dist/primary/shell/src/internal-plugins/activity-history/{features/search-items → activity-history-item/search}/request.d.ts +0 -0
  211. /package/src/internal-plugins/activity-history/{features → activity-history-item/add}/add-history-item/request.ts +0 -0
  212. /package/src/internal-plugins/activity-history/{domain → activity-history-item/domain}/is-valid-history-item/is-valid-history-item.test.ts +0 -0
  213. /package/src/internal-plugins/activity-history/{domain → activity-history-item/domain}/is-valid-history-item/is-valid-history-item.ts +0 -0
  214. /package/src/internal-plugins/activity-history/{components → activity-history-item/export-to-pdf}/export-pdf-modal/export-pdf-modal.css +0 -0
  215. /package/src/internal-plugins/activity-history/{features → activity-history-item}/export-to-pdf/request.ts +0 -0
  216. /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
  217. /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
  218. /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,3 @@
1
+ import { activityHistoryCollectionsSlice } from "../../slice";
2
+
3
+ export const { addActivityHistoryItem } = activityHistoryCollectionsSlice.actions;
@@ -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 "../../../../api/broker/primaria-broker";
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 = (broker: BrokerExtensions) => {
12
+ export const teardownAddHistoryItem = () => {
13
13
  request?.dispose();
14
14
  };
@@ -1,12 +1,9 @@
1
- import { Store } from "@reduxjs/toolkit";
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]);
@@ -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
+ }
@@ -0,0 +1,3 @@
1
+ import { activityHistoryCollectionsSlice } from "../../slice";
2
+
3
+ export const { addActivityHistoryItems } = activityHistoryCollectionsSlice.actions;
@@ -1,6 +1,6 @@
1
1
  import { describe, expect, it } from "vitest";
2
- import { IActivityHistoryItem, IActivityHistoryItemCollection } from "../model";
3
- import { addItemsToCollection, updateItemInCollection } from "./handle-collections";
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 "../../../../api/broker/primaria-broker";
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 = (broker: BrokerExtensions) => {
12
+ export const teardownAddHistoryItems = () => {
13
13
  request?.dispose();
14
14
  };
@@ -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
+ }
@@ -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
+ };
@@ -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?: () => HTMLElement;
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?: (searchString: string, item: IActivityHistoryItem) => boolean;
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
+ }
@@ -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
+ }
@@ -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
+ }