@igo2/common 17.0.0-next.0 → 17.0.0-next.11

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 (830) hide show
  1. package/action/actionbar/actionbar-item.component.d.ts +75 -0
  2. package/action/actionbar/actionbar.component.d.ts +148 -0
  3. package/action/index.d.ts +5 -0
  4. package/action/public_api.d.ts +4 -0
  5. package/action/shared/action.interfaces.d.ts +18 -0
  6. package/action/shared/store.d.ts +8 -0
  7. package/action/src/action.theming.scss +5 -0
  8. package/action/src/actionbar/actionbar-item.theming.scss +32 -0
  9. package/action/src/actionbar/actionbar.theming.scss +22 -0
  10. package/backdrop/index.d.ts +5 -0
  11. package/backdrop/public_api.d.ts +2 -0
  12. package/badge/badge-icon.directive.d.ts +34 -0
  13. package/badge/index.d.ts +5 -0
  14. package/badge/public_api.d.ts +2 -0
  15. package/clickout/index.d.ts +5 -0
  16. package/clickout/public_api.d.ts +2 -0
  17. package/clone/index.d.ts +5 -0
  18. package/clone/public_api.d.ts +2 -0
  19. package/collapsible/index.d.ts +5 -0
  20. package/collapsible/public_api.d.ts +6 -0
  21. package/collapsible/src/collapsible.theming.scss +22 -0
  22. package/color/color-picker-form-field/index.d.ts +2 -0
  23. package/color/index.d.ts +5 -0
  24. package/color/public_api.d.ts +1 -0
  25. package/confirm-dialog/index.d.ts +5 -0
  26. package/confirm-dialog/public_api.d.ts +4 -0
  27. package/context-menu/index.d.ts +5 -0
  28. package/context-menu/public_api.d.ts +6 -0
  29. package/custom-html/index.d.ts +5 -0
  30. package/custom-html/public_api.d.ts +6 -0
  31. package/dom/index.d.ts +5 -0
  32. package/dom/public_api.d.ts +3 -0
  33. package/drag-drop/index.d.ts +5 -0
  34. package/drag-drop/public_api.d.ts +2 -0
  35. package/dynamic-component/index.d.ts +5 -0
  36. package/dynamic-component/public_api.d.ts +4 -0
  37. package/entity/entity-selector/index.d.ts +2 -0
  38. package/entity/entity-table/index.d.ts +2 -0
  39. package/entity/entity-table-paginator/entity-table-paginator.component.d.ts +50 -0
  40. package/entity/entity-table-paginator/index.d.ts +3 -0
  41. package/entity/entity.module.d.ts +16 -0
  42. package/entity/index.d.ts +5 -0
  43. package/entity/public_api.d.ts +5 -0
  44. package/entity/shared/transaction.d.ts +179 -0
  45. package/entity/src/entity-selector/entity-selector.theming.scss +21 -0
  46. package/entity/src/entity-table/entity-table.theming.scss +37 -0
  47. package/entity/src/entity.theming.scss +7 -0
  48. package/environment/index.d.ts +5 -0
  49. package/esm2022/action/action.module.mjs +19 -0
  50. package/esm2022/action/actionbar/actionbar-item.component.mjs +192 -0
  51. package/esm2022/action/actionbar/actionbar.component.mjs +277 -0
  52. package/esm2022/action/actionbar/actionbar.module.mjs +19 -0
  53. package/esm2022/action/igo2-common-action.mjs +5 -0
  54. package/esm2022/action/public_api.mjs +5 -0
  55. package/esm2022/action/shared/action.enums.mjs +7 -0
  56. package/esm2022/action/shared/action.interfaces.mjs +2 -0
  57. package/esm2022/action/shared/index.mjs +4 -0
  58. package/esm2022/action/shared/store.mjs +8 -0
  59. package/esm2022/backdrop/backdrop.component.mjs +22 -0
  60. package/esm2022/backdrop/backdrop.module.mjs +25 -0
  61. package/esm2022/backdrop/igo2-common-backdrop.mjs +5 -0
  62. package/esm2022/backdrop/public_api.mjs +3 -0
  63. package/esm2022/badge/badge-icon.directive.mjs +149 -0
  64. package/esm2022/badge/badge-icon.module.mjs +25 -0
  65. package/esm2022/badge/igo2-common-badge.mjs +5 -0
  66. package/esm2022/badge/public_api.mjs +3 -0
  67. package/esm2022/clickout/clickout.directive.mjs +32 -0
  68. package/esm2022/clickout/clickout.module.mjs +25 -0
  69. package/esm2022/clickout/igo2-common-clickout.mjs +5 -0
  70. package/esm2022/clickout/public_api.mjs +3 -0
  71. package/esm2022/clone/clone.module.mjs +25 -0
  72. package/esm2022/clone/clone.pipe.mjs +25 -0
  73. package/esm2022/clone/igo2-common-clone.mjs +5 -0
  74. package/esm2022/clone/public_api.mjs +3 -0
  75. package/esm2022/collapsible/collapse.directive.mjs +57 -0
  76. package/esm2022/collapsible/collapsible.component.mjs +38 -0
  77. package/esm2022/collapsible/collapsible.module.mjs +26 -0
  78. package/esm2022/collapsible/igo2-common-collapsible.mjs +5 -0
  79. package/esm2022/collapsible/public_api.mjs +10 -0
  80. package/esm2022/color/color-picker-form-field/color-picker-form-field.component.mjs +104 -0
  81. package/esm2022/color/color-picker-form-field/color-picker-form-field.module.mjs +19 -0
  82. package/esm2022/color/color-picker-form-field/index.mjs +3 -0
  83. package/esm2022/color/igo2-common-color.mjs +5 -0
  84. package/esm2022/color/public_api.mjs +2 -0
  85. package/esm2022/confirm-dialog/confirm-dialog.component.mjs +31 -0
  86. package/esm2022/confirm-dialog/confirm-dialog.interface.mjs +2 -0
  87. package/esm2022/confirm-dialog/confirm-dialog.module.mjs +27 -0
  88. package/esm2022/confirm-dialog/confirm-dialog.service.mjs +35 -0
  89. package/esm2022/confirm-dialog/igo2-common-confirm-dialog.mjs +5 -0
  90. package/esm2022/confirm-dialog/public_api.mjs +5 -0
  91. package/esm2022/context-menu/context-menu.directive.mjs +109 -0
  92. package/esm2022/context-menu/context-menu.module.mjs +26 -0
  93. package/esm2022/context-menu/igo2-common-context-menu.mjs +5 -0
  94. package/esm2022/context-menu/long-press.directive.mjs +66 -0
  95. package/esm2022/context-menu/public_api.mjs +10 -0
  96. package/esm2022/custom-html/custom-html.component.mjs +22 -0
  97. package/esm2022/custom-html/custom-html.module.mjs +25 -0
  98. package/esm2022/custom-html/custom-html.pipe.mjs +23 -0
  99. package/esm2022/custom-html/igo2-common-custom-html.mjs +5 -0
  100. package/esm2022/custom-html/public_api.mjs +10 -0
  101. package/esm2022/dom/dom.interfaces.mjs +2 -0
  102. package/esm2022/dom/dom.module.mjs +27 -0
  103. package/esm2022/dom/dom.service.mjs +35 -0
  104. package/esm2022/dom/igo2-common-dom.mjs +5 -0
  105. package/esm2022/dom/public_api.mjs +4 -0
  106. package/esm2022/drag-drop/drag-drop.directive.mjs +82 -0
  107. package/esm2022/drag-drop/drag-drop.module.mjs +25 -0
  108. package/esm2022/drag-drop/igo2-common-drag-drop.mjs +5 -0
  109. package/esm2022/drag-drop/public_api.mjs +3 -0
  110. package/esm2022/dynamic-component/dynamic-component.module.mjs +19 -0
  111. package/esm2022/dynamic-component/dynamic-outlet/dynamic-outlet.component.mjs +129 -0
  112. package/esm2022/dynamic-component/dynamic-outlet/dynamic-outlet.module.mjs +19 -0
  113. package/esm2022/dynamic-component/igo2-common-dynamic-component.mjs +5 -0
  114. package/esm2022/dynamic-component/public_api.mjs +5 -0
  115. package/esm2022/dynamic-component/shared/dynamic-component.interfaces.mjs +2 -0
  116. package/esm2022/dynamic-component/shared/dynamic-component.mjs +183 -0
  117. package/esm2022/dynamic-component/shared/dynamic-component.service.mjs +30 -0
  118. package/esm2022/dynamic-component/shared/index.mjs +4 -0
  119. package/esm2022/entity/entity-selector/entity-selector.component.mjs +174 -0
  120. package/esm2022/entity/entity-selector/entity-selector.module.mjs +19 -0
  121. package/esm2022/entity/entity-selector/index.mjs +3 -0
  122. package/esm2022/entity/entity-table/entity-table-row.directive.mjs +138 -0
  123. package/esm2022/entity/entity-table/entity-table.component.mjs +883 -0
  124. package/esm2022/entity/entity-table/entity-table.module.mjs +19 -0
  125. package/esm2022/entity/entity-table/index.mjs +3 -0
  126. package/esm2022/entity/entity-table-paginator/entity-table-paginator.component.mjs +158 -0
  127. package/esm2022/entity/entity-table-paginator/entity-table-paginator.interface.mjs +2 -0
  128. package/esm2022/entity/entity-table-paginator/entity-table-paginator.module.mjs +19 -0
  129. package/esm2022/entity/entity-table-paginator/index.mjs +4 -0
  130. package/esm2022/entity/entity.module.mjs +30 -0
  131. package/esm2022/entity/igo2-common-entity.mjs +5 -0
  132. package/esm2022/entity/public_api.mjs +6 -0
  133. package/esm2022/entity/shared/entity.enums.mjs +28 -0
  134. package/esm2022/entity/shared/entity.interfaces.mjs +2 -0
  135. package/esm2022/entity/shared/entity.utils.mjs +73 -0
  136. package/esm2022/entity/shared/index.mjs +10 -0
  137. package/esm2022/entity/shared/state.mjs +194 -0
  138. package/esm2022/entity/shared/store.mjs +322 -0
  139. package/esm2022/entity/shared/strategies/filter-custom-function.mjs +80 -0
  140. package/esm2022/entity/shared/strategies/filter-selection.mjs +81 -0
  141. package/esm2022/entity/shared/strategies/index.mjs +4 -0
  142. package/esm2022/entity/shared/strategies/strategy.mjs +78 -0
  143. package/esm2022/entity/shared/transaction.mjs +329 -0
  144. package/esm2022/entity/shared/view.mjs +330 -0
  145. package/esm2022/entity/shared/watcher.mjs +135 -0
  146. package/esm2022/environment/environment.interface.mjs +2 -0
  147. package/esm2022/environment/igo2-common-environment.mjs +5 -0
  148. package/esm2022/environment/public_api.mjs +2 -0
  149. package/esm2022/flexible/flexible.component.mjs +135 -0
  150. package/esm2022/flexible/flexible.module.mjs +25 -0
  151. package/esm2022/flexible/flexible.type.mjs +2 -0
  152. package/esm2022/flexible/igo2-common-flexible.mjs +5 -0
  153. package/esm2022/flexible/public_api.mjs +4 -0
  154. package/esm2022/form/form/form.component.mjs +103 -0
  155. package/esm2022/form/form/form.module.mjs +19 -0
  156. package/esm2022/form/form/index.mjs +3 -0
  157. package/esm2022/form/form-dialog/form-dialog.component.mjs +94 -0
  158. package/esm2022/form/form-dialog/form-dialog.interface.mjs +2 -0
  159. package/esm2022/form/form-dialog/form-dialog.module.mjs +31 -0
  160. package/esm2022/form/form-dialog/form-dialog.service.mjs +30 -0
  161. package/esm2022/form/form-dialog/index.mjs +5 -0
  162. package/esm2022/form/form-field/form-field-select.component.mjs +117 -0
  163. package/esm2022/form/form-field/form-field-text.component.mjs +126 -0
  164. package/esm2022/form/form-field/form-field-textarea.component.mjs +95 -0
  165. package/esm2022/form/form-field/form-field.component.mjs +65 -0
  166. package/esm2022/form/form-field/form-field.directive.mjs +11 -0
  167. package/esm2022/form/form-field/form-field.module.mjs +23 -0
  168. package/esm2022/form/form-field/index.mjs +7 -0
  169. package/esm2022/form/form-group/form-group.component.mjs +82 -0
  170. package/esm2022/form/form-group/form-group.module.mjs +19 -0
  171. package/esm2022/form/form-group/index.mjs +3 -0
  172. package/esm2022/form/form.module.mjs +32 -0
  173. package/esm2022/form/igo2-common-form.mjs +5 -0
  174. package/esm2022/form/public_api.mjs +7 -0
  175. package/esm2022/form/shared/form-field-component.mjs +7 -0
  176. package/esm2022/form/shared/form-field.service.mjs +29 -0
  177. package/esm2022/form/shared/form.interfaces.mjs +2 -0
  178. package/esm2022/form/shared/form.service.mjs +82 -0
  179. package/esm2022/form/shared/form.utils.mjs +41 -0
  180. package/esm2022/form/shared/index.mjs +6 -0
  181. package/esm2022/home-button/home-button.component.mjs +26 -0
  182. package/esm2022/home-button/home-button.module.mjs +19 -0
  183. package/esm2022/home-button/igo2-common-home-button.mjs +5 -0
  184. package/esm2022/home-button/public_api.mjs +3 -0
  185. package/esm2022/icon/icon/icon.component.mjs +38 -0
  186. package/esm2022/icon/icon.provider.mjs +14 -0
  187. package/esm2022/icon/igo2-common-icon.mjs +5 -0
  188. package/esm2022/icon/public_api.mjs +4 -0
  189. package/esm2022/icon/shared/icon.interface.mjs +2 -0
  190. package/esm2022/icon/shared/icon.service.mjs +26 -0
  191. package/esm2022/icon/shared/icons.mjs +32 -0
  192. package/esm2022/icon/shared/index.mjs +4 -0
  193. package/esm2022/image/igo2-common-image.mjs +5 -0
  194. package/esm2022/image/image-error.directive.mjs +35 -0
  195. package/esm2022/image/image.module.mjs +26 -0
  196. package/esm2022/image/public_api.mjs +7 -0
  197. package/esm2022/image/secure-image.pipe.mjs +66 -0
  198. package/esm2022/interactive-tour/igo2-common-interactive-tour.mjs +5 -0
  199. package/esm2022/interactive-tour/interactive-tour.component.mjs +133 -0
  200. package/esm2022/interactive-tour/interactive-tour.interface.mjs +2 -0
  201. package/esm2022/interactive-tour/interactive-tour.loader.mjs +49 -0
  202. package/esm2022/interactive-tour/interactive-tour.module.mjs +19 -0
  203. package/esm2022/interactive-tour/interactive-tour.service.mjs +303 -0
  204. package/esm2022/interactive-tour/public_api.mjs +6 -0
  205. package/esm2022/json-dialog/igo2-common-json-dialog.mjs +5 -0
  206. package/esm2022/json-dialog/json-dialog.component.mjs +38 -0
  207. package/esm2022/json-dialog/json-dialog.module.mjs +26 -0
  208. package/esm2022/json-dialog/json-dialog.service.mjs +26 -0
  209. package/esm2022/json-dialog/public_api.mjs +4 -0
  210. package/esm2022/keyvalue/igo2-common-keyvalue.mjs +5 -0
  211. package/esm2022/keyvalue/keyvalue.module.mjs +25 -0
  212. package/esm2022/keyvalue/keyvalue.pipe.mjs +19 -0
  213. package/esm2022/keyvalue/public_api.mjs +3 -0
  214. package/esm2022/list/igo2-common-list.mjs +5 -0
  215. package/esm2022/list/list-item.directive.mjs +166 -0
  216. package/esm2022/list/list.component.mjs +252 -0
  217. package/esm2022/list/list.module.mjs +26 -0
  218. package/esm2022/list/public_api.mjs +7 -0
  219. package/esm2022/panel/igo2-common-panel.mjs +5 -0
  220. package/esm2022/panel/panel.component.mjs +30 -0
  221. package/esm2022/panel/panel.module.mjs +19 -0
  222. package/esm2022/panel/public_api.mjs +3 -0
  223. package/esm2022/public_api.mjs +17 -78
  224. package/esm2022/select-value-dialog/igo2-common-select-value-dialog.mjs +5 -0
  225. package/esm2022/select-value-dialog/public_api.mjs +6 -0
  226. package/esm2022/select-value-dialog/select-value-check-radio-dialog.component.mjs +103 -0
  227. package/esm2022/select-value-dialog/select-value-dialog.enums.mjs +6 -0
  228. package/esm2022/select-value-dialog/select-value-dialog.interface.mjs +2 -0
  229. package/esm2022/select-value-dialog/select-value-dialog.module.mjs +27 -0
  230. package/esm2022/select-value-dialog/select-value-dialog.service.mjs +29 -0
  231. package/esm2022/sidenav/igo2-common-sidenav.mjs +5 -0
  232. package/esm2022/sidenav/public_api.mjs +3 -0
  233. package/esm2022/sidenav/sidenav-shim.directive.mjs +58 -0
  234. package/esm2022/sidenav/sidenav.module.mjs +25 -0
  235. package/esm2022/spinner/igo2-common-spinner.mjs +5 -0
  236. package/esm2022/spinner/public_api.mjs +4 -0
  237. package/esm2022/spinner/spinner-activity.directive.mjs +56 -0
  238. package/esm2022/spinner/spinner.component.mjs +30 -0
  239. package/esm2022/spinner/spinner.module.mjs +26 -0
  240. package/esm2022/stop-propagation/igo2-common-stop-propagation.mjs +5 -0
  241. package/esm2022/stop-propagation/public_api.mjs +10 -0
  242. package/esm2022/stop-propagation/stop-drop-propagation.directive.mjs +21 -0
  243. package/esm2022/stop-propagation/stop-propagation.directive.mjs +20 -0
  244. package/esm2022/stop-propagation/stop-propagation.module.mjs +26 -0
  245. package/esm2022/table/igo2-common-table.mjs +5 -0
  246. package/esm2022/table/public_api.mjs +7 -0
  247. package/esm2022/table/table-action-color.enum.mjs +7 -0
  248. package/esm2022/table/table-database.mjs +28 -0
  249. package/esm2022/table/table-datasource.mjs +64 -0
  250. package/esm2022/table/table-model.interface.mjs +2 -0
  251. package/esm2022/table/table.component.mjs +143 -0
  252. package/esm2022/table/table.module.mjs +25 -0
  253. package/esm2022/tool/igo2-common-tool.mjs +5 -0
  254. package/esm2022/tool/public_api.mjs +4 -0
  255. package/esm2022/tool/shared/index.mjs +6 -0
  256. package/esm2022/tool/shared/tool-component.mjs +9 -0
  257. package/esm2022/tool/shared/tool.interface.mjs +2 -0
  258. package/esm2022/tool/shared/tool.service.mjs +43 -0
  259. package/esm2022/tool/shared/toolbox.enums.mjs +2 -0
  260. package/esm2022/tool/shared/toolbox.mjs +192 -0
  261. package/esm2022/tool/tool.module.mjs +28 -0
  262. package/esm2022/tool/toolbox/index.mjs +3 -0
  263. package/esm2022/tool/toolbox/toolbox.animation.mjs +10 -0
  264. package/esm2022/tool/toolbox/toolbox.component.mjs +241 -0
  265. package/esm2022/tool/toolbox/toolbox.module.mjs +19 -0
  266. package/esm2022/widget/igo2-common-widget.mjs +5 -0
  267. package/esm2022/widget/public_api.mjs +4 -0
  268. package/esm2022/widget/shared/index.mjs +4 -0
  269. package/esm2022/widget/shared/widget.interfaces.mjs +2 -0
  270. package/esm2022/widget/shared/widget.mjs +4 -0
  271. package/esm2022/widget/shared/widget.service.mjs +22 -0
  272. package/esm2022/widget/widget-outlet/index.mjs +3 -0
  273. package/esm2022/widget/widget-outlet/widget-outlet.component.mjs +113 -0
  274. package/esm2022/widget/widget-outlet/widget-outlet.module.mjs +19 -0
  275. package/esm2022/widget/widget.module.mjs +22 -0
  276. package/esm2022/workspace/igo2-common-workspace.mjs +5 -0
  277. package/esm2022/workspace/public_api.mjs +5 -0
  278. package/esm2022/workspace/shared/index.mjs +4 -0
  279. package/esm2022/workspace/shared/store.mjs +37 -0
  280. package/esm2022/workspace/shared/workspace.interfaces.mjs +2 -0
  281. package/esm2022/workspace/shared/workspace.mjs +143 -0
  282. package/esm2022/workspace/workspace-selector/index.mjs +3 -0
  283. package/esm2022/workspace/workspace-selector/workspace-selector.component.mjs +51 -0
  284. package/esm2022/workspace/workspace-selector/workspace-selector.module.mjs +19 -0
  285. package/esm2022/workspace/workspace-widget-outlet/index.mjs +3 -0
  286. package/esm2022/workspace/workspace-widget-outlet/workspace-widget-outlet.component.mjs +74 -0
  287. package/esm2022/workspace/workspace-widget-outlet/workspace-widget-outlet.module.mjs +19 -0
  288. package/esm2022/workspace/workspace.module.mjs +27 -0
  289. package/fesm2022/igo2-common-action.mjs +505 -0
  290. package/fesm2022/igo2-common-action.mjs.map +1 -0
  291. package/fesm2022/igo2-common-backdrop.mjs +51 -0
  292. package/fesm2022/igo2-common-backdrop.mjs.map +1 -0
  293. package/fesm2022/igo2-common-badge.mjs +178 -0
  294. package/fesm2022/igo2-common-badge.mjs.map +1 -0
  295. package/fesm2022/igo2-common-clickout.mjs +61 -0
  296. package/fesm2022/igo2-common-clickout.mjs.map +1 -0
  297. package/fesm2022/igo2-common-clone.mjs +54 -0
  298. package/fesm2022/igo2-common-clone.mjs.map +1 -0
  299. package/fesm2022/igo2-common-collapsible.mjs +126 -0
  300. package/fesm2022/igo2-common-collapsible.mjs.map +1 -0
  301. package/fesm2022/igo2-common-color.mjs +127 -0
  302. package/fesm2022/igo2-common-color.mjs.map +1 -0
  303. package/fesm2022/igo2-common-confirm-dialog.mjs +91 -0
  304. package/fesm2022/igo2-common-confirm-dialog.mjs.map +1 -0
  305. package/fesm2022/igo2-common-context-menu.mjs +206 -0
  306. package/fesm2022/igo2-common-context-menu.mjs.map +1 -0
  307. package/fesm2022/igo2-common-custom-html.mjs +74 -0
  308. package/fesm2022/igo2-common-custom-html.mjs.map +1 -0
  309. package/fesm2022/igo2-common-dom.mjs +65 -0
  310. package/fesm2022/igo2-common-dom.mjs.map +1 -0
  311. package/fesm2022/igo2-common-drag-drop.mjs +111 -0
  312. package/fesm2022/igo2-common-drag-drop.mjs.map +1 -0
  313. package/fesm2022/igo2-common-dynamic-component.mjs +375 -0
  314. package/fesm2022/igo2-common-dynamic-component.mjs.map +1 -0
  315. package/fesm2022/igo2-common-entity.mjs +3036 -0
  316. package/fesm2022/igo2-common-entity.mjs.map +1 -0
  317. package/fesm2022/igo2-common-environment.mjs +4 -0
  318. package/fesm2022/igo2-common-environment.mjs.map +1 -0
  319. package/fesm2022/igo2-common-flexible.mjs +163 -0
  320. package/fesm2022/igo2-common-flexible.mjs.map +1 -0
  321. package/fesm2022/igo2-common-form.mjs +898 -0
  322. package/fesm2022/igo2-common-form.mjs.map +1 -0
  323. package/fesm2022/igo2-common-home-button.mjs +49 -0
  324. package/fesm2022/igo2-common-home-button.mjs.map +1 -0
  325. package/fesm2022/igo2-common-icon.mjs +108 -0
  326. package/fesm2022/igo2-common-icon.mjs.map +1 -0
  327. package/fesm2022/igo2-common-image.mjs +129 -0
  328. package/fesm2022/igo2-common-image.mjs.map +1 -0
  329. package/fesm2022/igo2-common-interactive-tour.mjs +490 -0
  330. package/fesm2022/igo2-common-interactive-tour.mjs.map +1 -0
  331. package/fesm2022/igo2-common-json-dialog.mjs +88 -0
  332. package/fesm2022/igo2-common-json-dialog.mjs.map +1 -0
  333. package/fesm2022/igo2-common-keyvalue.mjs +48 -0
  334. package/fesm2022/igo2-common-keyvalue.mjs.map +1 -0
  335. package/fesm2022/igo2-common-list.mjs +446 -0
  336. package/fesm2022/igo2-common-list.mjs.map +1 -0
  337. package/fesm2022/igo2-common-panel.mjs +53 -0
  338. package/fesm2022/igo2-common-panel.mjs.map +1 -0
  339. package/fesm2022/igo2-common-select-value-dialog.mjs +161 -0
  340. package/fesm2022/igo2-common-select-value-dialog.mjs.map +1 -0
  341. package/fesm2022/igo2-common-sidenav.mjs +86 -0
  342. package/fesm2022/igo2-common-sidenav.mjs.map +1 -0
  343. package/fesm2022/igo2-common-spinner.mjs +110 -0
  344. package/fesm2022/igo2-common-spinner.mjs.map +1 -0
  345. package/fesm2022/igo2-common-stop-propagation.mjs +73 -0
  346. package/fesm2022/igo2-common-stop-propagation.mjs.map +1 -0
  347. package/fesm2022/igo2-common-table.mjs +264 -0
  348. package/fesm2022/igo2-common-table.mjs.map +1 -0
  349. package/fesm2022/igo2-common-tool.mjs +535 -0
  350. package/fesm2022/igo2-common-tool.mjs.map +1 -0
  351. package/fesm2022/igo2-common-widget.mjs +176 -0
  352. package/fesm2022/igo2-common-widget.mjs.map +1 -0
  353. package/fesm2022/igo2-common-workspace.mjs +361 -0
  354. package/fesm2022/igo2-common-workspace.mjs.map +1 -0
  355. package/fesm2022/igo2-common.mjs +16 -8751
  356. package/fesm2022/igo2-common.mjs.map +1 -1
  357. package/flexible/flexible.component.d.ts +41 -0
  358. package/flexible/index.d.ts +5 -0
  359. package/flexible/public_api.d.ts +3 -0
  360. package/form/form/index.d.ts +2 -0
  361. package/form/form-dialog/form-dialog.component.d.ts +23 -0
  362. package/form/form-dialog/form-dialog.interface.d.ts +18 -0
  363. package/form/form-dialog/index.d.ts +4 -0
  364. package/form/form-field/form-field.directive.d.ts +5 -0
  365. package/form/form-field/index.d.ts +6 -0
  366. package/form/form-group/index.d.ts +2 -0
  367. package/form/form.module.d.ts +18 -0
  368. package/form/index.d.ts +5 -0
  369. package/form/public_api.d.ts +6 -0
  370. package/home-button/index.d.ts +5 -0
  371. package/home-button/public_api.d.ts +2 -0
  372. package/home-button/src/home-button.theming.scss +18 -0
  373. package/icon/icon/icon.component.d.ts +14 -0
  374. package/icon/icon.provider.d.ts +4 -0
  375. package/icon/index.d.ts +5 -0
  376. package/icon/public_api.d.ts +3 -0
  377. package/icon/shared/icon.interface.d.ts +4 -0
  378. package/icon/shared/icon.service.d.ts +12 -0
  379. package/icon/shared/icons.d.ts +9 -0
  380. package/icon/shared/index.d.ts +3 -0
  381. package/image/index.d.ts +5 -0
  382. package/image/public_api.d.ts +6 -0
  383. package/image/secure-image.pipe.d.ts +13 -0
  384. package/interactive-tour/index.d.ts +5 -0
  385. package/interactive-tour/interactive-tour.component.d.ts +33 -0
  386. package/interactive-tour/interactive-tour.loader.d.ts +18 -0
  387. package/interactive-tour/interactive-tour.service.d.ts +31 -0
  388. package/interactive-tour/public_api.d.ts +5 -0
  389. package/interactive-tour/src/interactive-tour.theming.scss +32 -0
  390. package/json-dialog/index.d.ts +5 -0
  391. package/json-dialog/public_api.d.ts +3 -0
  392. package/keyvalue/index.d.ts +5 -0
  393. package/keyvalue/public_api.d.ts +2 -0
  394. package/list/index.d.ts +5 -0
  395. package/list/public_api.d.ts +6 -0
  396. package/list/src/list.theming.scss +58 -0
  397. package/package.json +201 -3
  398. package/panel/index.d.ts +5 -0
  399. package/panel/public_api.d.ts +2 -0
  400. package/panel/src/panel.theming.scss +30 -0
  401. package/public_api.d.ts +16 -77
  402. package/select-value-dialog/index.d.ts +5 -0
  403. package/select-value-dialog/public_api.d.ts +5 -0
  404. package/select-value-dialog/select-value-check-radio-dialog.component.d.ts +25 -0
  405. package/sidenav/index.d.ts +5 -0
  406. package/sidenav/public_api.d.ts +2 -0
  407. package/spinner/index.d.ts +5 -0
  408. package/spinner/public_api.d.ts +3 -0
  409. package/spinner/spinner-activity.directive.d.ts +32 -0
  410. package/spinner/spinner.module.d.ts +14 -0
  411. package/src/common-theme.scss +19 -19
  412. package/stop-propagation/index.d.ts +5 -0
  413. package/stop-propagation/public_api.d.ts +6 -0
  414. package/table/index.d.ts +5 -0
  415. package/table/public_api.d.ts +6 -0
  416. package/tool/index.d.ts +5 -0
  417. package/tool/public_api.d.ts +3 -0
  418. package/tool/shared/tool.interface.d.ts +18 -0
  419. package/tool/shared/toolbox.d.ts +98 -0
  420. package/tool/src/tool.theming.scss +5 -0
  421. package/tool/src/toolbox/toolbox.theming.scss +105 -0
  422. package/tool/toolbox/index.d.ts +2 -0
  423. package/tool/toolbox/toolbox.component.d.ts +128 -0
  424. package/widget/index.d.ts +5 -0
  425. package/widget/public_api.d.ts +3 -0
  426. package/widget/shared/widget.d.ts +4 -0
  427. package/widget/shared/widget.service.d.ts +10 -0
  428. package/widget/widget-outlet/index.d.ts +2 -0
  429. package/widget/widget-outlet/widget-outlet.component.d.ts +71 -0
  430. package/workspace/index.d.ts +5 -0
  431. package/workspace/public_api.d.ts +4 -0
  432. package/workspace/shared/store.d.ts +20 -0
  433. package/workspace/shared/workspace.d.ts +108 -0
  434. package/workspace/shared/workspace.interfaces.d.ts +11 -0
  435. package/workspace/workspace-selector/index.d.ts +2 -0
  436. package/workspace/workspace-selector/workspace-selector.component.d.ts +38 -0
  437. package/workspace/workspace-widget-outlet/index.d.ts +2 -0
  438. package/workspace/workspace-widget-outlet/workspace-widget-outlet.component.d.ts +57 -0
  439. package/workspace/workspace.module.d.ts +14 -0
  440. package/esm2022/lib/action/action.module.mjs +0 -19
  441. package/esm2022/lib/action/actionbar/actionbar-item.component.mjs +0 -206
  442. package/esm2022/lib/action/actionbar/actionbar.component.mjs +0 -277
  443. package/esm2022/lib/action/actionbar/actionbar.module.mjs +0 -19
  444. package/esm2022/lib/action/index.mjs +0 -3
  445. package/esm2022/lib/action/shared/action.enums.mjs +0 -7
  446. package/esm2022/lib/action/shared/action.interfaces.mjs +0 -2
  447. package/esm2022/lib/action/shared/index.mjs +0 -4
  448. package/esm2022/lib/action/shared/store.mjs +0 -8
  449. package/esm2022/lib/backdrop/backdrop.component.mjs +0 -22
  450. package/esm2022/lib/backdrop/backdrop.module.mjs +0 -25
  451. package/esm2022/lib/backdrop/index.mjs +0 -2
  452. package/esm2022/lib/badge-icon/badge-icon.directive.mjs +0 -152
  453. package/esm2022/lib/badge-icon/badge-icon.module.mjs +0 -25
  454. package/esm2022/lib/badge-icon/index.mjs +0 -2
  455. package/esm2022/lib/clickout/clickout.directive.mjs +0 -32
  456. package/esm2022/lib/clickout/clickout.module.mjs +0 -25
  457. package/esm2022/lib/clickout/index.mjs +0 -2
  458. package/esm2022/lib/clone/clone.module.mjs +0 -25
  459. package/esm2022/lib/clone/clone.pipe.mjs +0 -25
  460. package/esm2022/lib/clone/index.mjs +0 -2
  461. package/esm2022/lib/collapsible/collapse.directive.mjs +0 -57
  462. package/esm2022/lib/collapsible/collapsible.component.mjs +0 -38
  463. package/esm2022/lib/collapsible/collapsible.module.mjs +0 -26
  464. package/esm2022/lib/collapsible/index.mjs +0 -9
  465. package/esm2022/lib/color-picker-form-field/color-picker-form-field.component.mjs +0 -104
  466. package/esm2022/lib/color-picker-form-field/color-picker-form-field.module.mjs +0 -19
  467. package/esm2022/lib/color-picker-form-field/index.mjs +0 -2
  468. package/esm2022/lib/confirm-dialog/confirm-dialog.component.mjs +0 -31
  469. package/esm2022/lib/confirm-dialog/confirm-dialog.interface.mjs +0 -2
  470. package/esm2022/lib/confirm-dialog/confirm-dialog.module.mjs +0 -27
  471. package/esm2022/lib/confirm-dialog/confirm-dialog.service.mjs +0 -35
  472. package/esm2022/lib/confirm-dialog/index.mjs +0 -4
  473. package/esm2022/lib/context-menu/context-menu.directive.mjs +0 -109
  474. package/esm2022/lib/context-menu/context-menu.module.mjs +0 -26
  475. package/esm2022/lib/context-menu/index.mjs +0 -9
  476. package/esm2022/lib/context-menu/long-press.directive.mjs +0 -66
  477. package/esm2022/lib/custom-html/custom-html.component.mjs +0 -22
  478. package/esm2022/lib/custom-html/custom-html.module.mjs +0 -25
  479. package/esm2022/lib/custom-html/custom-html.pipe.mjs +0 -23
  480. package/esm2022/lib/custom-html/index.mjs +0 -9
  481. package/esm2022/lib/dom/dom.interfaces.mjs +0 -2
  482. package/esm2022/lib/dom/dom.module.mjs +0 -27
  483. package/esm2022/lib/dom/dom.service.mjs +0 -35
  484. package/esm2022/lib/dom/index.mjs +0 -3
  485. package/esm2022/lib/drag-drop/drag-drop.directive.mjs +0 -82
  486. package/esm2022/lib/drag-drop/drag-drop.module.mjs +0 -25
  487. package/esm2022/lib/drag-drop/index.mjs +0 -2
  488. package/esm2022/lib/dynamic-component/dynamic-component.module.mjs +0 -19
  489. package/esm2022/lib/dynamic-component/dynamic-outlet/dynamic-outlet.component.mjs +0 -129
  490. package/esm2022/lib/dynamic-component/dynamic-outlet/dynamic-outlet.module.mjs +0 -19
  491. package/esm2022/lib/dynamic-component/index.mjs +0 -3
  492. package/esm2022/lib/dynamic-component/shared/dynamic-component.interfaces.mjs +0 -2
  493. package/esm2022/lib/dynamic-component/shared/dynamic-component.mjs +0 -183
  494. package/esm2022/lib/dynamic-component/shared/dynamic-component.service.mjs +0 -30
  495. package/esm2022/lib/dynamic-component/shared/index.mjs +0 -4
  496. package/esm2022/lib/entity/entity-selector/entity-selector.component.mjs +0 -174
  497. package/esm2022/lib/entity/entity-selector/entity-selector.module.mjs +0 -19
  498. package/esm2022/lib/entity/entity-table/entity-table-row.directive.mjs +0 -138
  499. package/esm2022/lib/entity/entity-table/entity-table.component.mjs +0 -884
  500. package/esm2022/lib/entity/entity-table/entity-table.module.mjs +0 -19
  501. package/esm2022/lib/entity/entity-table-paginator/entity-table-paginator.component.mjs +0 -156
  502. package/esm2022/lib/entity/entity-table-paginator/entity-table-paginator.interface.mjs +0 -2
  503. package/esm2022/lib/entity/entity-table-paginator/entity-table-paginator.module.mjs +0 -19
  504. package/esm2022/lib/entity/entity-table-paginator/index.mjs +0 -3
  505. package/esm2022/lib/entity/entity.module.mjs +0 -22
  506. package/esm2022/lib/entity/index.mjs +0 -14
  507. package/esm2022/lib/entity/shared/entity.enums.mjs +0 -28
  508. package/esm2022/lib/entity/shared/entity.interfaces.mjs +0 -2
  509. package/esm2022/lib/entity/shared/entity.utils.mjs +0 -73
  510. package/esm2022/lib/entity/shared/index.mjs +0 -10
  511. package/esm2022/lib/entity/shared/state.mjs +0 -194
  512. package/esm2022/lib/entity/shared/store.mjs +0 -322
  513. package/esm2022/lib/entity/shared/strategies/filter-custom-function.mjs +0 -80
  514. package/esm2022/lib/entity/shared/strategies/filter-selection.mjs +0 -81
  515. package/esm2022/lib/entity/shared/strategies/index.mjs +0 -4
  516. package/esm2022/lib/entity/shared/strategies/strategy.mjs +0 -78
  517. package/esm2022/lib/entity/shared/transaction.mjs +0 -329
  518. package/esm2022/lib/entity/shared/view.mjs +0 -330
  519. package/esm2022/lib/entity/shared/watcher.mjs +0 -135
  520. package/esm2022/lib/environment/environment.interface.mjs +0 -2
  521. package/esm2022/lib/environment/index.mjs +0 -2
  522. package/esm2022/lib/flexible/flexible.component.mjs +0 -135
  523. package/esm2022/lib/flexible/flexible.module.mjs +0 -25
  524. package/esm2022/lib/flexible/flexible.type.mjs +0 -2
  525. package/esm2022/lib/flexible/index.mjs +0 -3
  526. package/esm2022/lib/form/form/form.component.mjs +0 -103
  527. package/esm2022/lib/form/form/form.module.mjs +0 -19
  528. package/esm2022/lib/form/form-field/form-field-select.component.mjs +0 -117
  529. package/esm2022/lib/form/form-field/form-field-text.component.mjs +0 -126
  530. package/esm2022/lib/form/form-field/form-field-textarea.component.mjs +0 -95
  531. package/esm2022/lib/form/form-field/form-field.component.mjs +0 -65
  532. package/esm2022/lib/form/form-field/form-field.module.mjs +0 -23
  533. package/esm2022/lib/form/form-field/index.mjs +0 -15
  534. package/esm2022/lib/form/form-group/form-group.component.mjs +0 -82
  535. package/esm2022/lib/form/form-group/form-group.module.mjs +0 -19
  536. package/esm2022/lib/form/form.module.mjs +0 -25
  537. package/esm2022/lib/form/index.mjs +0 -13
  538. package/esm2022/lib/form/shared/form-field-component.mjs +0 -7
  539. package/esm2022/lib/form/shared/form-field.service.mjs +0 -29
  540. package/esm2022/lib/form/shared/form.interfaces.mjs +0 -2
  541. package/esm2022/lib/form/shared/form.service.mjs +0 -82
  542. package/esm2022/lib/form/shared/form.utils.mjs +0 -41
  543. package/esm2022/lib/form/shared/index.mjs +0 -6
  544. package/esm2022/lib/form-dialog/form-dialog.component.mjs +0 -94
  545. package/esm2022/lib/form-dialog/form-dialog.interface.mjs +0 -2
  546. package/esm2022/lib/form-dialog/form-dialog.module.mjs +0 -31
  547. package/esm2022/lib/form-dialog/form-dialog.service.mjs +0 -30
  548. package/esm2022/lib/form-dialog/index.mjs +0 -4
  549. package/esm2022/lib/home-button/home-button.component.mjs +0 -26
  550. package/esm2022/lib/home-button/home-button.module.mjs +0 -19
  551. package/esm2022/lib/home-button/index.mjs +0 -2
  552. package/esm2022/lib/image/image-error.directive.mjs +0 -35
  553. package/esm2022/lib/image/image.module.mjs +0 -26
  554. package/esm2022/lib/image/index.mjs +0 -6
  555. package/esm2022/lib/image/secure-image.pipe.mjs +0 -66
  556. package/esm2022/lib/interactive-tour/index.mjs +0 -5
  557. package/esm2022/lib/interactive-tour/interactive-tour.component.mjs +0 -126
  558. package/esm2022/lib/interactive-tour/interactive-tour.interface.mjs +0 -2
  559. package/esm2022/lib/interactive-tour/interactive-tour.loader.mjs +0 -49
  560. package/esm2022/lib/interactive-tour/interactive-tour.module.mjs +0 -19
  561. package/esm2022/lib/interactive-tour/interactive-tour.service.mjs +0 -299
  562. package/esm2022/lib/json-dialog/index.mjs +0 -3
  563. package/esm2022/lib/json-dialog/json-dialog.component.mjs +0 -38
  564. package/esm2022/lib/json-dialog/json-dialog.module.mjs +0 -26
  565. package/esm2022/lib/json-dialog/json-dialog.service.mjs +0 -26
  566. package/esm2022/lib/keyvalue/index.mjs +0 -2
  567. package/esm2022/lib/keyvalue/keyvalue.module.mjs +0 -25
  568. package/esm2022/lib/keyvalue/keyvalue.pipe.mjs +0 -19
  569. package/esm2022/lib/list/index.mjs +0 -6
  570. package/esm2022/lib/list/list-item.directive.mjs +0 -166
  571. package/esm2022/lib/list/list.component.mjs +0 -252
  572. package/esm2022/lib/list/list.module.mjs +0 -26
  573. package/esm2022/lib/panel/index.mjs +0 -2
  574. package/esm2022/lib/panel/panel.component.mjs +0 -30
  575. package/esm2022/lib/panel/panel.module.mjs +0 -19
  576. package/esm2022/lib/select-value-dialog/index.mjs +0 -5
  577. package/esm2022/lib/select-value-dialog/select-value-check-radio-dialog.component.mjs +0 -103
  578. package/esm2022/lib/select-value-dialog/select-value-dialog.enums.mjs +0 -6
  579. package/esm2022/lib/select-value-dialog/select-value-dialog.interface.mjs +0 -2
  580. package/esm2022/lib/select-value-dialog/select-value-dialog.module.mjs +0 -27
  581. package/esm2022/lib/select-value-dialog/select-value-dialog.service.mjs +0 -29
  582. package/esm2022/lib/sidenav/index.mjs +0 -2
  583. package/esm2022/lib/sidenav/sidenav-shim.directive.mjs +0 -58
  584. package/esm2022/lib/sidenav/sidenav.module.mjs +0 -25
  585. package/esm2022/lib/spinner/index.mjs +0 -9
  586. package/esm2022/lib/spinner/spinner-activity.directive.mjs +0 -56
  587. package/esm2022/lib/spinner/spinner.component.mjs +0 -30
  588. package/esm2022/lib/spinner/spinner.module.mjs +0 -21
  589. package/esm2022/lib/stop-propagation/index.mjs +0 -9
  590. package/esm2022/lib/stop-propagation/stop-drop-propagation.directive.mjs +0 -21
  591. package/esm2022/lib/stop-propagation/stop-propagation.directive.mjs +0 -20
  592. package/esm2022/lib/stop-propagation/stop-propagation.module.mjs +0 -26
  593. package/esm2022/lib/table/index.mjs +0 -6
  594. package/esm2022/lib/table/table-action-color.enum.mjs +0 -7
  595. package/esm2022/lib/table/table-database.mjs +0 -28
  596. package/esm2022/lib/table/table-datasource.mjs +0 -64
  597. package/esm2022/lib/table/table-model.interface.mjs +0 -2
  598. package/esm2022/lib/table/table.component.mjs +0 -143
  599. package/esm2022/lib/table/table.module.mjs +0 -25
  600. package/esm2022/lib/tool/index.mjs +0 -3
  601. package/esm2022/lib/tool/shared/index.mjs +0 -6
  602. package/esm2022/lib/tool/shared/tool-component.mjs +0 -9
  603. package/esm2022/lib/tool/shared/tool.interface.mjs +0 -2
  604. package/esm2022/lib/tool/shared/tool.service.mjs +0 -43
  605. package/esm2022/lib/tool/shared/toolbox.enums.mjs +0 -2
  606. package/esm2022/lib/tool/shared/toolbox.mjs +0 -184
  607. package/esm2022/lib/tool/tool.module.mjs +0 -28
  608. package/esm2022/lib/tool/toolbox/toolbox.animation.mjs +0 -10
  609. package/esm2022/lib/tool/toolbox/toolbox.component.mjs +0 -243
  610. package/esm2022/lib/tool/toolbox/toolbox.module.mjs +0 -19
  611. package/esm2022/lib/widget/index.mjs +0 -3
  612. package/esm2022/lib/widget/shared/index.mjs +0 -4
  613. package/esm2022/lib/widget/shared/widget.interfaces.mjs +0 -2
  614. package/esm2022/lib/widget/shared/widget.mjs +0 -4
  615. package/esm2022/lib/widget/shared/widget.service.mjs +0 -22
  616. package/esm2022/lib/widget/widget-outlet/widget-outlet.component.mjs +0 -114
  617. package/esm2022/lib/widget/widget-outlet/widget-outlet.module.mjs +0 -19
  618. package/esm2022/lib/widget/widget.module.mjs +0 -22
  619. package/esm2022/lib/workspace/index.mjs +0 -10
  620. package/esm2022/lib/workspace/shared/index.mjs +0 -4
  621. package/esm2022/lib/workspace/shared/store.mjs +0 -37
  622. package/esm2022/lib/workspace/shared/workspace.interfaces.mjs +0 -2
  623. package/esm2022/lib/workspace/shared/workspace.mjs +0 -143
  624. package/esm2022/lib/workspace/workspace-selector/workspace-selector.component.mjs +0 -52
  625. package/esm2022/lib/workspace/workspace-selector/workspace-selector.module.mjs +0 -19
  626. package/esm2022/lib/workspace/workspace-widget-outlet/workspace-widget-outlet.component.mjs +0 -74
  627. package/esm2022/lib/workspace/workspace-widget-outlet/workspace-widget-outlet.module.mjs +0 -19
  628. package/esm2022/lib/workspace/workspace.module.mjs +0 -22
  629. package/lib/action/actionbar/actionbar-item.component.d.ts +0 -78
  630. package/lib/action/actionbar/actionbar.component.d.ts +0 -148
  631. package/lib/action/index.d.ts +0 -2
  632. package/lib/action/shared/action.interfaces.d.ts +0 -17
  633. package/lib/action/shared/store.d.ts +0 -8
  634. package/lib/backdrop/index.d.ts +0 -1
  635. package/lib/badge-icon/badge-icon.directive.d.ts +0 -36
  636. package/lib/badge-icon/index.d.ts +0 -1
  637. package/lib/clickout/index.d.ts +0 -1
  638. package/lib/clone/index.d.ts +0 -1
  639. package/lib/collapsible/index.d.ts +0 -5
  640. package/lib/color-picker-form-field/index.d.ts +0 -1
  641. package/lib/confirm-dialog/index.d.ts +0 -3
  642. package/lib/context-menu/index.d.ts +0 -5
  643. package/lib/custom-html/index.d.ts +0 -5
  644. package/lib/dom/index.d.ts +0 -2
  645. package/lib/drag-drop/index.d.ts +0 -1
  646. package/lib/dynamic-component/index.d.ts +0 -2
  647. package/lib/entity/entity-table-paginator/entity-table-paginator.component.d.ts +0 -49
  648. package/lib/entity/entity-table-paginator/index.d.ts +0 -2
  649. package/lib/entity/entity.module.d.ts +0 -12
  650. package/lib/entity/index.d.ts +0 -9
  651. package/lib/entity/shared/transaction.d.ts +0 -180
  652. package/lib/flexible/flexible.component.d.ts +0 -41
  653. package/lib/flexible/index.d.ts +0 -2
  654. package/lib/form/form-field/index.d.ts +0 -9
  655. package/lib/form/form.module.d.ts +0 -15
  656. package/lib/form/index.d.ts +0 -7
  657. package/lib/form-dialog/form-dialog.component.d.ts +0 -24
  658. package/lib/form-dialog/form-dialog.interface.d.ts +0 -18
  659. package/lib/form-dialog/index.d.ts +0 -3
  660. package/lib/home-button/index.d.ts +0 -1
  661. package/lib/image/index.d.ts +0 -5
  662. package/lib/image/secure-image.pipe.d.ts +0 -13
  663. package/lib/interactive-tour/index.d.ts +0 -4
  664. package/lib/interactive-tour/interactive-tour.component.d.ts +0 -30
  665. package/lib/interactive-tour/interactive-tour.loader.d.ts +0 -18
  666. package/lib/interactive-tour/interactive-tour.service.d.ts +0 -29
  667. package/lib/json-dialog/index.d.ts +0 -2
  668. package/lib/keyvalue/index.d.ts +0 -1
  669. package/lib/list/index.d.ts +0 -5
  670. package/lib/panel/index.d.ts +0 -1
  671. package/lib/select-value-dialog/index.d.ts +0 -4
  672. package/lib/select-value-dialog/select-value-check-radio-dialog.component.d.ts +0 -25
  673. package/lib/sidenav/index.d.ts +0 -1
  674. package/lib/spinner/index.d.ts +0 -5
  675. package/lib/spinner/spinner-activity.directive.d.ts +0 -32
  676. package/lib/spinner/spinner.module.d.ts +0 -11
  677. package/lib/stop-propagation/index.d.ts +0 -5
  678. package/lib/table/index.d.ts +0 -5
  679. package/lib/tool/index.d.ts +0 -2
  680. package/lib/tool/shared/tool.interface.d.ts +0 -18
  681. package/lib/tool/shared/toolbox.d.ts +0 -95
  682. package/lib/tool/toolbox/toolbox.component.d.ts +0 -128
  683. package/lib/widget/index.d.ts +0 -2
  684. package/lib/widget/shared/widget.d.ts +0 -4
  685. package/lib/widget/shared/widget.service.d.ts +0 -10
  686. package/lib/widget/widget-outlet/widget-outlet.component.d.ts +0 -71
  687. package/lib/workspace/index.d.ts +0 -6
  688. package/lib/workspace/shared/store.d.ts +0 -20
  689. package/lib/workspace/shared/workspace.d.ts +0 -108
  690. package/lib/workspace/shared/workspace.interfaces.d.ts +0 -11
  691. package/lib/workspace/workspace-selector/workspace-selector.component.d.ts +0 -38
  692. package/lib/workspace/workspace-widget-outlet/workspace-widget-outlet.component.d.ts +0 -57
  693. package/lib/workspace/workspace.module.d.ts +0 -11
  694. package/src/lib/action/action.theming.scss +0 -5
  695. package/src/lib/action/actionbar/actionbar-item.theming.scss +0 -32
  696. package/src/lib/action/actionbar/actionbar.theming.scss +0 -22
  697. package/src/lib/collapsible/collapsible.theming.scss +0 -22
  698. package/src/lib/entity/entity-selector/entity-selector.theming.scss +0 -21
  699. package/src/lib/entity/entity-table/entity-table.theming.scss +0 -37
  700. package/src/lib/entity/entity.theming.scss +0 -7
  701. package/src/lib/home-button/home-button.theming.scss +0 -18
  702. package/src/lib/interactive-tour/interactive-tour.theming.scss +0 -32
  703. package/src/lib/list/list.theming.scss +0 -58
  704. package/src/lib/panel/panel.theming.scss +0 -30
  705. package/src/lib/tool/tool.theming.scss +0 -5
  706. package/src/lib/tool/toolbox/toolbox.theming.scss +0 -105
  707. /package/{lib/action → action}/action.module.d.ts +0 -0
  708. /package/{lib/action → action}/actionbar/actionbar.module.d.ts +0 -0
  709. /package/{lib/action → action}/shared/action.enums.d.ts +0 -0
  710. /package/{lib/action → action}/shared/index.d.ts +0 -0
  711. /package/{lib/backdrop → backdrop}/backdrop.component.d.ts +0 -0
  712. /package/{lib/backdrop → backdrop}/backdrop.module.d.ts +0 -0
  713. /package/{lib/badge-icon → badge}/badge-icon.module.d.ts +0 -0
  714. /package/{lib/clickout → clickout}/clickout.directive.d.ts +0 -0
  715. /package/{lib/clickout → clickout}/clickout.module.d.ts +0 -0
  716. /package/{lib/clone → clone}/clone.module.d.ts +0 -0
  717. /package/{lib/clone → clone}/clone.pipe.d.ts +0 -0
  718. /package/{lib/collapsible → collapsible}/collapse.directive.d.ts +0 -0
  719. /package/{lib/collapsible → collapsible}/collapsible.component.d.ts +0 -0
  720. /package/{lib/collapsible → collapsible}/collapsible.module.d.ts +0 -0
  721. /package/{lib → color}/color-picker-form-field/color-picker-form-field.component.d.ts +0 -0
  722. /package/{lib → color}/color-picker-form-field/color-picker-form-field.module.d.ts +0 -0
  723. /package/{lib/confirm-dialog → confirm-dialog}/confirm-dialog.component.d.ts +0 -0
  724. /package/{lib/confirm-dialog → confirm-dialog}/confirm-dialog.interface.d.ts +0 -0
  725. /package/{lib/confirm-dialog → confirm-dialog}/confirm-dialog.module.d.ts +0 -0
  726. /package/{lib/confirm-dialog → confirm-dialog}/confirm-dialog.service.d.ts +0 -0
  727. /package/{lib/context-menu → context-menu}/context-menu.directive.d.ts +0 -0
  728. /package/{lib/context-menu → context-menu}/context-menu.module.d.ts +0 -0
  729. /package/{lib/context-menu → context-menu}/long-press.directive.d.ts +0 -0
  730. /package/{lib/custom-html → custom-html}/custom-html.component.d.ts +0 -0
  731. /package/{lib/custom-html → custom-html}/custom-html.module.d.ts +0 -0
  732. /package/{lib/custom-html → custom-html}/custom-html.pipe.d.ts +0 -0
  733. /package/{lib/dom → dom}/dom.interfaces.d.ts +0 -0
  734. /package/{lib/dom → dom}/dom.module.d.ts +0 -0
  735. /package/{lib/dom → dom}/dom.service.d.ts +0 -0
  736. /package/{lib/drag-drop → drag-drop}/drag-drop.directive.d.ts +0 -0
  737. /package/{lib/drag-drop → drag-drop}/drag-drop.module.d.ts +0 -0
  738. /package/{lib/dynamic-component → dynamic-component}/dynamic-component.module.d.ts +0 -0
  739. /package/{lib/dynamic-component → dynamic-component}/dynamic-outlet/dynamic-outlet.component.d.ts +0 -0
  740. /package/{lib/dynamic-component → dynamic-component}/dynamic-outlet/dynamic-outlet.module.d.ts +0 -0
  741. /package/{lib/dynamic-component → dynamic-component}/shared/dynamic-component.d.ts +0 -0
  742. /package/{lib/dynamic-component → dynamic-component}/shared/dynamic-component.interfaces.d.ts +0 -0
  743. /package/{lib/dynamic-component → dynamic-component}/shared/dynamic-component.service.d.ts +0 -0
  744. /package/{lib/dynamic-component → dynamic-component}/shared/index.d.ts +0 -0
  745. /package/{lib/entity → entity}/entity-selector/entity-selector.component.d.ts +0 -0
  746. /package/{lib/entity → entity}/entity-selector/entity-selector.module.d.ts +0 -0
  747. /package/{lib/entity → entity}/entity-table/entity-table-row.directive.d.ts +0 -0
  748. /package/{lib/entity → entity}/entity-table/entity-table.component.d.ts +0 -0
  749. /package/{lib/entity → entity}/entity-table/entity-table.module.d.ts +0 -0
  750. /package/{lib/entity → entity}/entity-table-paginator/entity-table-paginator.interface.d.ts +0 -0
  751. /package/{lib/entity → entity}/entity-table-paginator/entity-table-paginator.module.d.ts +0 -0
  752. /package/{lib/entity → entity}/shared/entity.enums.d.ts +0 -0
  753. /package/{lib/entity → entity}/shared/entity.interfaces.d.ts +0 -0
  754. /package/{lib/entity → entity}/shared/entity.utils.d.ts +0 -0
  755. /package/{lib/entity → entity}/shared/index.d.ts +0 -0
  756. /package/{lib/entity → entity}/shared/state.d.ts +0 -0
  757. /package/{lib/entity → entity}/shared/store.d.ts +0 -0
  758. /package/{lib/entity → entity}/shared/strategies/filter-custom-function.d.ts +0 -0
  759. /package/{lib/entity → entity}/shared/strategies/filter-selection.d.ts +0 -0
  760. /package/{lib/entity → entity}/shared/strategies/index.d.ts +0 -0
  761. /package/{lib/entity → entity}/shared/strategies/strategy.d.ts +0 -0
  762. /package/{lib/entity → entity}/shared/view.d.ts +0 -0
  763. /package/{lib/entity → entity}/shared/watcher.d.ts +0 -0
  764. /package/{lib/environment → environment}/environment.interface.d.ts +0 -0
  765. /package/{lib/environment/index.d.ts → environment/public_api.d.ts} +0 -0
  766. /package/{lib/flexible → flexible}/flexible.module.d.ts +0 -0
  767. /package/{lib/flexible → flexible}/flexible.type.d.ts +0 -0
  768. /package/{lib/form → form}/form/form.component.d.ts +0 -0
  769. /package/{lib/form → form}/form/form.module.d.ts +0 -0
  770. /package/{lib → form}/form-dialog/form-dialog.module.d.ts +0 -0
  771. /package/{lib → form}/form-dialog/form-dialog.service.d.ts +0 -0
  772. /package/{lib/form → form}/form-field/form-field-select.component.d.ts +0 -0
  773. /package/{lib/form → form}/form-field/form-field-text.component.d.ts +0 -0
  774. /package/{lib/form → form}/form-field/form-field-textarea.component.d.ts +0 -0
  775. /package/{lib/form → form}/form-field/form-field.component.d.ts +0 -0
  776. /package/{lib/form → form}/form-field/form-field.module.d.ts +0 -0
  777. /package/{lib/form → form}/form-group/form-group.component.d.ts +0 -0
  778. /package/{lib/form → form}/form-group/form-group.module.d.ts +0 -0
  779. /package/{lib/form → form}/shared/form-field-component.d.ts +0 -0
  780. /package/{lib/form → form}/shared/form-field.service.d.ts +0 -0
  781. /package/{lib/form → form}/shared/form.interfaces.d.ts +0 -0
  782. /package/{lib/form → form}/shared/form.service.d.ts +0 -0
  783. /package/{lib/form → form}/shared/form.utils.d.ts +0 -0
  784. /package/{lib/form → form}/shared/index.d.ts +0 -0
  785. /package/{lib/home-button → home-button}/home-button.component.d.ts +0 -0
  786. /package/{lib/home-button → home-button}/home-button.module.d.ts +0 -0
  787. /package/{lib/image → image}/image-error.directive.d.ts +0 -0
  788. /package/{lib/image → image}/image.module.d.ts +0 -0
  789. /package/{lib/interactive-tour → interactive-tour}/interactive-tour.interface.d.ts +0 -0
  790. /package/{lib/interactive-tour → interactive-tour}/interactive-tour.module.d.ts +0 -0
  791. /package/{lib/json-dialog → json-dialog}/json-dialog.component.d.ts +0 -0
  792. /package/{lib/json-dialog → json-dialog}/json-dialog.module.d.ts +0 -0
  793. /package/{lib/json-dialog → json-dialog}/json-dialog.service.d.ts +0 -0
  794. /package/{lib/keyvalue → keyvalue}/keyvalue.module.d.ts +0 -0
  795. /package/{lib/keyvalue → keyvalue}/keyvalue.pipe.d.ts +0 -0
  796. /package/{lib/list → list}/list-item.directive.d.ts +0 -0
  797. /package/{lib/list → list}/list.component.d.ts +0 -0
  798. /package/{lib/list → list}/list.module.d.ts +0 -0
  799. /package/{lib/panel → panel}/panel.component.d.ts +0 -0
  800. /package/{lib/panel → panel}/panel.module.d.ts +0 -0
  801. /package/{lib/select-value-dialog → select-value-dialog}/select-value-dialog.enums.d.ts +0 -0
  802. /package/{lib/select-value-dialog → select-value-dialog}/select-value-dialog.interface.d.ts +0 -0
  803. /package/{lib/select-value-dialog → select-value-dialog}/select-value-dialog.module.d.ts +0 -0
  804. /package/{lib/select-value-dialog → select-value-dialog}/select-value-dialog.service.d.ts +0 -0
  805. /package/{lib/sidenav → sidenav}/sidenav-shim.directive.d.ts +0 -0
  806. /package/{lib/sidenav → sidenav}/sidenav.module.d.ts +0 -0
  807. /package/{lib/spinner → spinner}/spinner.component.d.ts +0 -0
  808. /package/{lib/stop-propagation → stop-propagation}/stop-drop-propagation.directive.d.ts +0 -0
  809. /package/{lib/stop-propagation → stop-propagation}/stop-propagation.directive.d.ts +0 -0
  810. /package/{lib/stop-propagation → stop-propagation}/stop-propagation.module.d.ts +0 -0
  811. /package/{lib/table → table}/table-action-color.enum.d.ts +0 -0
  812. /package/{lib/table → table}/table-database.d.ts +0 -0
  813. /package/{lib/table → table}/table-datasource.d.ts +0 -0
  814. /package/{lib/table → table}/table-model.interface.d.ts +0 -0
  815. /package/{lib/table → table}/table.component.d.ts +0 -0
  816. /package/{lib/table → table}/table.module.d.ts +0 -0
  817. /package/{lib/tool → tool}/shared/index.d.ts +0 -0
  818. /package/{lib/tool → tool}/shared/tool-component.d.ts +0 -0
  819. /package/{lib/tool → tool}/shared/tool.service.d.ts +0 -0
  820. /package/{lib/tool → tool}/shared/toolbox.enums.d.ts +0 -0
  821. /package/{lib/tool → tool}/tool.module.d.ts +0 -0
  822. /package/{lib/tool → tool}/toolbox/toolbox.animation.d.ts +0 -0
  823. /package/{lib/tool → tool}/toolbox/toolbox.module.d.ts +0 -0
  824. /package/{lib/widget → widget}/shared/index.d.ts +0 -0
  825. /package/{lib/widget → widget}/shared/widget.interfaces.d.ts +0 -0
  826. /package/{lib/widget → widget}/widget-outlet/widget-outlet.module.d.ts +0 -0
  827. /package/{lib/widget → widget}/widget.module.d.ts +0 -0
  828. /package/{lib/workspace → workspace}/shared/index.d.ts +0 -0
  829. /package/{lib/workspace → workspace}/workspace-selector/workspace-selector.module.d.ts +0 -0
  830. /package/{lib/workspace → workspace}/workspace-widget-outlet/workspace-widget-outlet.module.d.ts +0 -0
@@ -1,194 +0,0 @@
1
- import { ReplaySubject } from 'rxjs';
2
- import { getEntityId } from './entity.utils';
3
- /**
4
- * This class is used to track a store's entities state
5
- */
6
- export class EntityStateManager {
7
- options;
8
- /**
9
- * State index
10
- */
11
- index = new Map();
12
- /**
13
- * Change emitter
14
- */
15
- change$ = new ReplaySubject(1);
16
- /**
17
- * Method to get an entity's id
18
- */
19
- getKey;
20
- constructor(options = {}) {
21
- this.options = options;
22
- this.getKey = options.getKey ? options.getKey : getEntityId;
23
- this.next();
24
- }
25
- /**
26
- * Clear state
27
- */
28
- clear() {
29
- if (this.index.size > 0) {
30
- this.index.clear();
31
- this.next();
32
- }
33
- }
34
- /**
35
- * Get an entity's state
36
- * @param entity Entity
37
- * @returns State
38
- */
39
- get(entity) {
40
- return (this.index.get(this.getKey(entity)) || {});
41
- }
42
- /**
43
- * Set an entity's state
44
- * @param entity Entity
45
- * @param state State
46
- */
47
- set(entity, state) {
48
- this.setMany([entity], state);
49
- }
50
- /**
51
- * Set many entitie's state
52
- * @param entitie Entities
53
- * @param state State
54
- */
55
- setMany(entities, state) {
56
- entities.forEach((entity) => {
57
- this.index.set(this.getKey(entity), Object.assign({}, state));
58
- });
59
- this.next();
60
- }
61
- /**
62
- * Set state of all entities that already have a state. This is not
63
- * the same as setting the state of all the store's entities.
64
- * @param state State
65
- */
66
- setAll(state) {
67
- Array.from(this.index.keys()).forEach((key) => {
68
- this.index.set(key, Object.assign({}, state));
69
- });
70
- this.next();
71
- }
72
- /**
73
- * Update an entity's state
74
- * @param entity Entity
75
- * @param changes State changes
76
- */
77
- update(entity, changes, exclusive = false) {
78
- this.updateMany([entity], changes, exclusive);
79
- }
80
- /**
81
- * Update many entitie's state
82
- * @param entitie Entities
83
- * @param changes State changes
84
- */
85
- updateMany(entities, changes, exclusive = false) {
86
- if (exclusive === true) {
87
- return this.updateManyExclusive(entities, changes);
88
- }
89
- entities.forEach((entity) => {
90
- const state = Object.assign({}, this.get(entity), changes);
91
- this.index.set(this.getKey(entity), state);
92
- });
93
- this.next();
94
- }
95
- /**
96
- * Reversee an entity's state
97
- * @param entity Entity
98
- * @param keys State keys to reverse
99
- */
100
- reverse(entity, keys) {
101
- this.reverseMany([entity], keys);
102
- }
103
- /**
104
- * Reverse many entitie's state
105
- * @param entitie Entities
106
- * @param keys State keys to reverse
107
- */
108
- reverseMany(entities, keys) {
109
- entities.forEach((entity) => {
110
- const currentState = this.get(entity);
111
- const changes = keys.reduce((acc, key) => {
112
- acc[key] = currentState[key] || false;
113
- return acc;
114
- }, {});
115
- const reversedChanges = this.reverseChanges(changes);
116
- const state = Object.assign({}, currentState, reversedChanges);
117
- this.index.set(this.getKey(entity), state);
118
- });
119
- this.next();
120
- }
121
- /**
122
- * Update state of all entities that already have a state. This is not
123
- * the same as updating the state of all the store's entities.
124
- * @param changes State
125
- */
126
- updateAll(changes) {
127
- const allKeys = this.getAllKeys();
128
- Array.from(allKeys).forEach((key) => {
129
- const state = Object.assign({}, this.index.get(key), changes);
130
- this.index.set(key, state);
131
- });
132
- this.next();
133
- }
134
- /**
135
- * When some state changes are flagged as 'exclusive', reverse
136
- * the state of all other entities. Changes are reversable when
137
- * they are boolean.
138
- * @param entitie Entities
139
- * @param changes State changes
140
- */
141
- updateManyExclusive(entities, changes) {
142
- const reverseChanges = this.reverseChanges(changes);
143
- const keys = entities.map((entity) => this.getKey(entity));
144
- const allKeys = new Set(keys.concat(Array.from(this.getAllKeys())));
145
- allKeys.forEach((key) => {
146
- const state = this.index.get(key) || {};
147
- if (keys.indexOf(key) >= 0) {
148
- this.index.set(key, Object.assign({}, state, changes));
149
- }
150
- else {
151
- // Update only if the reverse changes would modify
152
- // a key already present in the current state
153
- const shouldUpdate = Object.keys(reverseChanges).some((changeKey) => {
154
- return (state[changeKey] !== undefined &&
155
- state[changeKey] !== reverseChanges[changeKey]);
156
- });
157
- if (shouldUpdate === true) {
158
- this.index.set(key, Object.assign({}, state, reverseChanges));
159
- }
160
- }
161
- });
162
- this.next();
163
- }
164
- /**
165
- * Compute a 'reversed' version of some state changes.
166
- * Changes are reversable when they are boolean.
167
- * @param changes State changes
168
- * @returns Reversed state changes
169
- */
170
- reverseChanges(changes) {
171
- return Object.entries(changes).reduce((reverseChanges, bunch) => {
172
- const [changeKey, value] = bunch;
173
- if (typeof value === typeof true) {
174
- reverseChanges[changeKey] = !value;
175
- }
176
- return reverseChanges;
177
- }, {});
178
- }
179
- /**
180
- * Return all the keys in that state and in the store it's bound to, if any.
181
- * @returns Set of keys
182
- */
183
- getAllKeys() {
184
- const storeKeys = Array.from(this.options?.index?.keys() ?? []);
185
- return new Set(Array.from(this.index.keys()).concat(storeKeys));
186
- }
187
- /**
188
- * Emit 'change' event
189
- */
190
- next() {
191
- this.change$.next();
192
- }
193
- }
194
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vc3JjL2xpYi9lbnRpdHkvc2hhcmVkL3N0YXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFHckMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBTzdDOztHQUVHO0FBQ0gsTUFBTSxPQUFPLGtCQUFrQjtJQW1CVDtJQWZwQjs7T0FFRztJQUNNLEtBQUssR0FBRyxJQUFJLEdBQUcsRUFBZ0IsQ0FBQztJQUV6Qzs7T0FFRztJQUNNLE9BQU8sR0FBRyxJQUFJLGFBQWEsQ0FBTyxDQUFDLENBQUMsQ0FBQztJQUU5Qzs7T0FFRztJQUNNLE1BQU0sQ0FBbUI7SUFFbEMsWUFBb0IsVUFBd0MsRUFBRTtRQUExQyxZQUFPLEdBQVAsT0FBTyxDQUFtQztRQUM1RCxJQUFJLENBQUMsTUFBTSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQztRQUU1RCxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDZCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxLQUFLO1FBQ0gsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUN4QixJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ25CLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNkLENBQUM7SUFDSCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILEdBQUcsQ0FBQyxNQUFTO1FBQ1gsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQU0sQ0FBQztJQUMxRCxD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Q0FBQyxjQUEwQixFQUFFLEtBQW9CLEVBQUUsRUFBRTtZQUNuRCxNQUFNLENBQUMsU0FBUyxFQUFFLEtBQUssQ0FBQyxHQUFHLEtBQUssQ0FBQztZQUNqQyxJQUFJLE9BQU8sS0FBSyxLQUFLLE9BQU8sSUFBSSxFQUFFLENBQUM7Z0JBQ2hDLGNBQXlCLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUM7WUFDakQsQ0FBQztZQUNELE9BQU8sY0FBYyxDQUFDO1FBQ3hCLENBQUMsRUFDRCxFQUFFLENBQ0gsQ0FBQztJQUNKLENBQUM7SUFFRDs7O09BR0c7SUFDSyxVQUFVO1FBQ2hCLE1BQU0sU0FBUyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFDaEUsT0FBTyxJQUFJLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztJQUNsRSxDQUFDO0lBRUQ7O09BRUc7SUFDSyxJQUFJO1FBQ1YsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN0QixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSZXBsYXlTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcblxyXG5pbXBvcnQgeyBFbnRpdHlLZXksIEVudGl0eVN0YXRlIH0gZnJvbSAnLi9lbnRpdHkuaW50ZXJmYWNlcyc7XHJcbmltcG9ydCB7IGdldEVudGl0eUlkIH0gZnJvbSAnLi9lbnRpdHkudXRpbHMnO1xyXG5cclxuaW50ZXJmYWNlIEVudGl0eVN0YXRlTWFuYWdlck9wdGlvbnM8RSBleHRlbmRzIG9iamVjdD4ge1xyXG4gIGdldEtleT86IChlbnRpdHk6IG9iamVjdCkgPT4gRW50aXR5S2V5O1xyXG4gIGluZGV4PzogTWFwPEVudGl0eUtleSwgRT47XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBUaGlzIGNsYXNzIGlzIHVzZWQgdG8gdHJhY2sgYSBzdG9yZSdzIGVudGl0aWVzIHN0YXRlXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgRW50aXR5U3RhdGVNYW5hZ2VyPFxyXG4gIEUgZXh0ZW5kcyBvYmplY3QsXHJcbiAgUyBleHRlbmRzIEVudGl0eVN0YXRlID0gRW50aXR5U3RhdGVcclxuPiB7XHJcbiAgLyoqXHJcbiAgICogU3RhdGUgaW5kZXhcclxuICAgKi9cclxuICByZWFkb25seSBpbmRleCA9IG5ldyBNYXA8RW50aXR5S2V5LCBTPigpO1xyXG5cclxuICAvKipcclxuICAgKiBDaGFuZ2UgZW1pdHRlclxyXG4gICAqL1xyXG4gIHJlYWRvbmx5IGNoYW5nZSQgPSBuZXcgUmVwbGF5U3ViamVjdDx2b2lkPigxKTtcclxuXHJcbiAgLyoqXHJcbiAgICogTWV0aG9kIHRvIGdldCBhbiBlbnRpdHkncyBpZFxyXG4gICAqL1xyXG4gIHJlYWRvbmx5IGdldEtleTogKEUpID0+IEVudGl0eUtleTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBvcHRpb25zOiBFbnRpdHlTdGF0ZU1hbmFnZXJPcHRpb25zPEU+ID0ge30pIHtcclxuICAgIHRoaXMuZ2V0S2V5ID0gb3B0aW9ucy5nZXRLZXkgPyBvcHRpb25zLmdldEtleSA6IGdldEVudGl0eUlkO1xyXG5cclxuICAgIHRoaXMubmV4dCgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ2xlYXIgc3RhdGVcclxuICAgKi9cclxuICBjbGVhcigpIHtcclxuICAgIGlmICh0aGlzLmluZGV4LnNpemUgPiAwKSB7XHJcbiAgICAgIHRoaXMuaW5kZXguY2xlYXIoKTtcclxuICAgICAgdGhpcy5uZXh0KCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBHZXQgYW4gZW50aXR5J3Mgc3RhdGVcclxuICAgKiBAcGFyYW0gZW50aXR5IEVudGl0eVxyXG4gICAqIEByZXR1cm5zIFN0YXRlXHJcbiAgICovXHJcbiAgZ2V0KGVudGl0eTogRSk6IFMge1xyXG4gICAgcmV0dXJuICh0aGlzLmluZGV4LmdldCh0aGlzLmdldEtleShlbnRpdHkpKSB8fCB7fSkgYXMgUztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNldCBhbiBlbnRpdHkncyBzdGF0ZVxyXG4gICAqIEBwYXJhbSBlbnRpdHkgRW50aXR5XHJcbiAgICogQHBhcmFtIHN0YXRlIFN0YXRlXHJcbiAgICovXHJcbiAgc2V0KGVudGl0eTogRSwgc3RhdGU6IFMpIHtcclxuICAgIHRoaXMuc2V0TWFueShbZW50aXR5XSwgc3RhdGUpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2V0IG1hbnkgZW50aXRpZSdzIHN0YXRlXHJcbiAgICogQHBhcmFtIGVudGl0aWUgRW50aXRpZXNcclxuICAgKiBAcGFyYW0gc3RhdGUgU3RhdGVcclxuICAgKi9cclxuICBzZXRNYW55KGVudGl0aWVzOiBFW10sIHN0YXRlOiBTKSB7XHJcbiAgICBlbnRpdGllcy5mb3JFYWNoKChlbnRpdHk6IEUpID0+IHtcclxuICAgICAgdGhpcy5pbmRleC5zZXQodGhpcy5nZXRLZXkoZW50aXR5KSwgT2JqZWN0LmFzc2lnbih7fSwgc3RhdGUpKTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5uZXh0KCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTZXQgc3RhdGUgb2YgYWxsIGVudGl0aWVzIHRoYXQgYWxyZWFkeSBoYXZlIGEgc3RhdGUuIFRoaXMgaXMgbm90XHJcbiAgICogdGhlIHNhbWUgYXMgc2V0dGluZyB0aGUgc3RhdGUgb2YgYWxsIHRoZSBzdG9yZSdzIGVudGl0aWVzLlxyXG4gICAqIEBwYXJhbSBzdGF0ZSBTdGF0ZVxyXG4gICAqL1xyXG4gIHNldEFsbChzdGF0ZTogUykge1xyXG4gICAgQXJyYXkuZnJvbSh0aGlzLmluZGV4LmtleXMoKSkuZm9yRWFjaCgoa2V5OiBFbnRpdHlLZXkpID0+IHtcclxuICAgICAgdGhpcy5pbmRleC5zZXQoa2V5LCBPYmplY3QuYXNzaWduKHt9LCBzdGF0ZSkpO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLm5leHQoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFVwZGF0ZSBhbiBlbnRpdHkncyBzdGF0ZVxyXG4gICAqIEBwYXJhbSBlbnRpdHkgRW50aXR5XHJcbiAgICogQHBhcmFtIGNoYW5nZXMgU3RhdGUgY2hhbmdlc1xyXG4gICAqL1xyXG4gIHVwZGF0ZShlbnRpdHk6IEUsIGNoYW5nZXM6IFBhcnRpYWw8Uz4sIGV4Y2x1c2l2ZSA9IGZhbHNlKSB7XHJcbiAgICB0aGlzLnVwZGF0ZU1hbnkoW2VudGl0eV0sIGNoYW5nZXMsIGV4Y2x1c2l2ZSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBVcGRhdGUgbWFueSBlbnRpdGllJ3Mgc3RhdGVcclxuICAgKiBAcGFyYW0gZW50aXRpZSBFbnRpdGllc1xyXG4gICAqIEBwYXJhbSBjaGFuZ2VzIFN0YXRlIGNoYW5nZXNcclxuICAgKi9cclxuICB1cGRhdGVNYW55KGVudGl0aWVzOiBFW10sIGNoYW5nZXM6IFBhcnRpYWw8Uz4sIGV4Y2x1c2l2ZSA9IGZhbHNlKSB7XHJcbiAgICBpZiAoZXhjbHVzaXZlID09PSB0cnVlKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLnVwZGF0ZU1hbnlFeGNsdXNpdmUoZW50aXRpZXMsIGNoYW5nZXMpO1xyXG4gICAgfVxyXG5cclxuICAgIGVudGl0aWVzLmZvckVhY2goKGVudGl0eTogRSkgPT4ge1xyXG4gICAgICBjb25zdCBzdGF0ZSA9IE9iamVjdC5hc3NpZ24oe30sIHRoaXMuZ2V0KGVudGl0eSksIGNoYW5nZXMpO1xyXG4gICAgICB0aGlzLmluZGV4LnNldCh0aGlzLmdldEtleShlbnRpdHkpLCBzdGF0ZSk7XHJcbiAgICB9KTtcclxuICAgIHRoaXMubmV4dCgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV2ZXJzZWUgYW4gZW50aXR5J3Mgc3RhdGVcclxuICAgKiBAcGFyYW0gZW50aXR5IEVudGl0eVxyXG4gICAqIEBwYXJhbSBrZXlzIFN0YXRlIGtleXMgdG8gcmV2ZXJzZVxyXG4gICAqL1xyXG4gIHJldmVyc2UoZW50aXR5OiBFLCBrZXlzOiBzdHJpbmdbXSkge1xyXG4gICAgdGhpcy5yZXZlcnNlTWFueShbZW50aXR5XSwga2V5cyk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXZlcnNlIG1hbnkgZW50aXRpZSdzIHN0YXRlXHJcbiAgICogQHBhcmFtIGVudGl0aWUgRW50aXRpZXNcclxuICAgKiBAcGFyYW0ga2V5cyBTdGF0ZSBrZXlzIHRvIHJldmVyc2VcclxuICAgKi9cclxuICByZXZlcnNlTWFueShlbnRpdGllczogRVtdLCBrZXlzOiBzdHJpbmdbXSkge1xyXG4gICAgZW50aXRpZXMuZm9yRWFjaCgoZW50aXR5OiBFKSA9PiB7XHJcbiAgICAgIGNvbnN0IGN1cnJlbnRTdGF0ZSA9IHRoaXMuZ2V0KGVudGl0eSk7XHJcbiAgICAgIGNvbnN0IGNoYW5nZXMgPSBrZXlzLnJlZHVjZShcclxuICAgICAgICAoYWNjOiB7IFtrZXk6IHN0cmluZ106IGJvb2xlYW4gfSwga2V5OiBzdHJpbmcpID0+IHtcclxuICAgICAgICAgIGFjY1trZXldID0gY3VycmVudFN0YXRlW2tleV0gfHwgZmFsc2U7XHJcbiAgICAgICAgICByZXR1cm4gYWNjO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAge31cclxuICAgICAgKSBhcyBQYXJ0aWFsPFM+O1xyXG4gICAgICBjb25zdCByZXZlcnNlZENoYW5nZXMgPSB0aGlzLnJldmVyc2VDaGFuZ2VzKGNoYW5nZXMpO1xyXG4gICAgICBjb25zdCBzdGF0ZSA9IE9iamVjdC5hc3NpZ24oe30sIGN1cnJlbnRTdGF0ZSwgcmV2ZXJzZWRDaGFuZ2VzKTtcclxuICAgICAgdGhpcy5pbmRleC5zZXQodGhpcy5nZXRLZXkoZW50aXR5KSwgc3RhdGUpO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLm5leHQoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFVwZGF0ZSBzdGF0ZSBvZiBhbGwgZW50aXRpZXMgdGhhdCBhbHJlYWR5IGhhdmUgYSBzdGF0ZS4gVGhpcyBpcyBub3RcclxuICAgKiB0aGUgc2FtZSBhcyB1cGRhdGluZyB0aGUgc3RhdGUgb2YgYWxsIHRoZSBzdG9yZSdzIGVudGl0aWVzLlxyXG4gICAqIEBwYXJhbSBjaGFuZ2VzIFN0YXRlXHJcbiAgICovXHJcbiAgdXBkYXRlQWxsKGNoYW5nZXM6IFBhcnRpYWw8Uz4pIHtcclxuICAgIGNvbnN0IGFsbEtleXMgPSB0aGlzLmdldEFsbEtleXMoKTtcclxuICAgIEFycmF5LmZyb20oYWxsS2V5cykuZm9yRWFjaCgoa2V5OiBFbnRpdHlLZXkpID0+IHtcclxuICAgICAgY29uc3Qgc3RhdGUgPSBPYmplY3QuYXNzaWduKHt9LCB0aGlzLmluZGV4LmdldChrZXkpLCBjaGFuZ2VzKTtcclxuICAgICAgdGhpcy5pbmRleC5zZXQoa2V5LCBzdGF0ZSk7XHJcbiAgICB9KTtcclxuICAgIHRoaXMubmV4dCgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogV2hlbiBzb21lIHN0YXRlIGNoYW5nZXMgYXJlIGZsYWdnZWQgYXMgJ2V4Y2x1c2l2ZScsIHJldmVyc2VcclxuICAgKiB0aGUgc3RhdGUgb2YgYWxsIG90aGVyIGVudGl0aWVzLiBDaGFuZ2VzIGFyZSByZXZlcnNhYmxlIHdoZW5cclxuICAgKiB0aGV5IGFyZSBib29sZWFuLlxyXG4gICAqIEBwYXJhbSBlbnRpdGllIEVudGl0aWVzXHJcbiAgICogQHBhcmFtIGNoYW5nZXMgU3RhdGUgY2hhbmdlc1xyXG4gICAqL1xyXG4gIHByaXZhdGUgdXBkYXRlTWFueUV4Y2x1c2l2ZShlbnRpdGllczogRVtdLCBjaGFuZ2VzOiBQYXJ0aWFsPFM+KSB7XHJcbiAgICBjb25zdCByZXZlcnNlQ2hhbmdlcyA9IHRoaXMucmV2ZXJzZUNoYW5nZXMoY2hhbmdlcyk7XHJcblxyXG4gICAgY29uc3Qga2V5cyA9IGVudGl0aWVzLm1hcCgoZW50aXR5OiBFKSA9PiB0aGlzLmdldEtleShlbnRpdHkpKTtcclxuICAgIGNvbnN0IGFsbEtleXMgPSBuZXcgU2V0KGtleXMuY29uY2F0KEFycmF5LmZyb20odGhpcy5nZXRBbGxLZXlzKCkpKSk7XHJcbiAgICBhbGxLZXlzLmZvckVhY2goKGtleTogRW50aXR5S2V5KSA9PiB7XHJcbiAgICAgIGNvbnN0IHN0YXRlID0gdGhpcy5pbmRleC5nZXQoa2V5KSB8fCAoe30gYXMgUyk7XHJcblxyXG4gICAgICBpZiAoa2V5cy5pbmRleE9mKGtleSkgPj0gMCkge1xyXG4gICAgICAgIHRoaXMuaW5kZXguc2V0KGtleSwgT2JqZWN0LmFzc2lnbih7fSwgc3RhdGUsIGNoYW5nZXMpKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICAvLyBVcGRhdGUgb25seSBpZiB0aGUgcmV2ZXJzZSBjaGFuZ2VzIHdvdWxkIG1vZGlmeVxyXG4gICAgICAgIC8vIGEga2V5IGFscmVhZHkgcHJlc2VudCBpbiB0aGUgY3VycmVudCBzdGF0ZVxyXG4gICAgICAgIGNvbnN0IHNob3VsZFVwZGF0ZSA9IE9iamVjdC5rZXlzKHJldmVyc2VDaGFuZ2VzKS5zb21lKFxyXG4gICAgICAgICAgKGNoYW5nZUtleTogc3RyaW5nKSA9PiB7XHJcbiAgICAgICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgICAgc3RhdGVbY2hhbmdlS2V5XSAhPT0gdW5kZWZpbmVkICYmXHJcbiAgICAgICAgICAgICAgc3RhdGVbY2hhbmdlS2V5XSAhPT0gcmV2ZXJzZUNoYW5nZXNbY2hhbmdlS2V5XVxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICk7XHJcbiAgICAgICAgaWYgKHNob3VsZFVwZGF0ZSA9PT0gdHJ1ZSkge1xyXG4gICAgICAgICAgdGhpcy5pbmRleC5zZXQoa2V5LCBPYmplY3QuYXNzaWduKHt9LCBzdGF0ZSwgcmV2ZXJzZUNoYW5nZXMpKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMubmV4dCgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ29tcHV0ZSBhICdyZXZlcnNlZCcgdmVyc2lvbiBvZiBzb21lIHN0YXRlIGNoYW5nZXMuXHJcbiAgICogQ2hhbmdlcyBhcmUgcmV2ZXJzYWJsZSB3aGVuIHRoZXkgYXJlIGJvb2xlYW4uXHJcbiAgICogQHBhcmFtIGNoYW5nZXMgU3RhdGUgY2hhbmdlc1xyXG4gICAqIEByZXR1cm5zIFJldmVyc2VkIHN0YXRlIGNoYW5nZXNcclxuICAgKi9cclxuICBwcml2YXRlIHJldmVyc2VDaGFuZ2VzKGNoYW5nZXM6IFBhcnRpYWw8Uz4pOiBQYXJ0aWFsPFM+IHtcclxuICAgIHJldHVybiBPYmplY3QuZW50cmllcyhjaGFuZ2VzKS5yZWR1Y2UoXHJcbiAgICAgIChyZXZlcnNlQ2hhbmdlczogUGFydGlhbDxTPiwgYnVuY2g6IFtzdHJpbmcsIGFueV0pID0+IHtcclxuICAgICAgICBjb25zdCBbY2hhbmdlS2V5LCB2YWx1ZV0gPSBidW5jaDtcclxuICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSB0eXBlb2YgdHJ1ZSkge1xyXG4gICAgICAgICAgKHJldmVyc2VDaGFuZ2VzIGFzIG9iamVjdClbY2hhbmdlS2V5XSA9ICF2YWx1ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHJldmVyc2VDaGFuZ2VzO1xyXG4gICAgICB9LFxyXG4gICAgICB7fVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHVybiBhbGwgdGhlIGtleXMgaW4gdGhhdCBzdGF0ZSBhbmQgaW4gdGhlIHN0b3JlIGl0J3MgYm91bmQgdG8sIGlmIGFueS5cclxuICAgKiBAcmV0dXJucyBTZXQgb2Yga2V5c1xyXG4gICAqL1xyXG4gIHByaXZhdGUgZ2V0QWxsS2V5cygpOiBTZXQ8RW50aXR5S2V5PiB7XHJcbiAgICBjb25zdCBzdG9yZUtleXMgPSBBcnJheS5mcm9tKHRoaXMub3B0aW9ucz8uaW5kZXg/LmtleXMoKSA/PyBbXSk7XHJcbiAgICByZXR1cm4gbmV3IFNldChBcnJheS5mcm9tKHRoaXMuaW5kZXgua2V5cygpKS5jb25jYXQoc3RvcmVLZXlzKSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBFbWl0ICdjaGFuZ2UnIGV2ZW50XHJcbiAgICovXHJcbiAgcHJpdmF0ZSBuZXh0KCkge1xyXG4gICAgdGhpcy5jaGFuZ2UkLm5leHQoKTtcclxuICB9XHJcbn1cclxuIl19
@@ -1,322 +0,0 @@
1
- import { BehaviorSubject } from 'rxjs';
2
- import { getEntityId, getEntityProperty } from './entity.utils';
3
- import { EntityStateManager } from './state';
4
- import { EntityView } from './view';
5
- /**
6
- * An entity store class holds any number of entities
7
- * as well as their state. It can be observed, filtered and sorted and
8
- * provides methods to insert, update or delete entities.
9
- */
10
- export class EntityStore {
11
- /**
12
- * Observable of the raw entities
13
- */
14
- entities$ = new BehaviorSubject([]);
15
- /**
16
- * Number of entities
17
- */
18
- count$ = new BehaviorSubject(0);
19
- get count() {
20
- return this.count$.value;
21
- }
22
- /**
23
- * Whether the store is empty
24
- */
25
- empty$ = new BehaviorSubject(true);
26
- get empty() {
27
- return this.empty$.value;
28
- }
29
- /**
30
- * Entity store state
31
- */
32
- state;
33
- /**
34
- * View of all the entities
35
- */
36
- view;
37
- /**
38
- * View of all the entities and their state
39
- */
40
- stateView;
41
- /**
42
- * Method to get an entity's id
43
- */
44
- getKey;
45
- /**
46
- * Method to get an entity's named property
47
- */
48
- getProperty;
49
- /**
50
- * Store index
51
- */
52
- get index() {
53
- return this._index;
54
- }
55
- _index;
56
- /**
57
- * Store index
58
- */
59
- get pristine() {
60
- return this._pristine;
61
- }
62
- _pristine = true;
63
- /**
64
- * Strategies
65
- */
66
- strategies = [];
67
- constructor(entities, options = {}) {
68
- this.getKey = options.getKey ? options.getKey : getEntityId;
69
- this.getProperty = options.getProperty
70
- ? options.getProperty
71
- : getEntityProperty;
72
- this.state = this.createStateManager();
73
- this.view = this.createDataView();
74
- this.stateView = this.createStateView();
75
- this.view.lift();
76
- this.stateView.lift();
77
- if (entities.length > 0) {
78
- this.load(entities);
79
- }
80
- else {
81
- this._index = this.generateIndex(entities);
82
- }
83
- }
84
- /**
85
- * Get an entity from the store by key
86
- * @param key Key
87
- * @returns Entity
88
- */
89
- get(key) {
90
- return this.index.get(key);
91
- }
92
- /**
93
- * Get all entities in the store
94
- * @returns Array of entities
95
- */
96
- all() {
97
- return this.entities$.value;
98
- }
99
- /**
100
- * Set this store's entities
101
- * @param entities Entities
102
- */
103
- load(entities, pristine = true) {
104
- this._index = this.generateIndex(entities);
105
- this._pristine = pristine;
106
- this.next();
107
- }
108
- /**
109
- * Clear the store's entities but keep the state and views intact.
110
- * Views won't return any data but future data will be subject to the
111
- * current views filter and sort
112
- */
113
- softClear() {
114
- if (this.index && this.index.size > 0) {
115
- this.index.clear();
116
- this._pristine = true;
117
- this.next();
118
- }
119
- else if (this.index) {
120
- this.updateCount();
121
- }
122
- }
123
- /**
124
- * Clear the store's entities, state and views
125
- */
126
- clear() {
127
- this.stateView.clear();
128
- this.view.clear();
129
- this.state.clear();
130
- this.softClear();
131
- }
132
- destroy() {
133
- this.stateView.destroy();
134
- this.view.destroy();
135
- this.clear();
136
- }
137
- /**
138
- * Insert an entity into the store
139
- * @param entity Entity
140
- */
141
- insert(entity) {
142
- this.insertMany([entity]);
143
- }
144
- /**
145
- * Insert many entities into the store
146
- * @param entities Entities
147
- */
148
- insertMany(entities) {
149
- entities.forEach((entity) => this.index.set(this.getKey(entity), entity));
150
- this._pristine = false;
151
- this.next();
152
- }
153
- /**
154
- * Update or insert an entity into the store
155
- * @param entity Entity
156
- */
157
- update(entity) {
158
- this.updateMany([entity]);
159
- }
160
- /**
161
- * Update or insert many entities into the store
162
- * @param entities Entities
163
- */
164
- updateMany(entities) {
165
- entities.forEach((entity) => this.index.set(this.getKey(entity), entity));
166
- this._pristine = false;
167
- this.next();
168
- }
169
- /**
170
- * Add a strategy to this store
171
- * @param strategy Entity store strategy
172
- * @returns Entity store
173
- */
174
- addStrategy(strategy, activate = false) {
175
- const existingStrategy = this.strategies.find((_strategy) => {
176
- return strategy.constructor === _strategy.constructor;
177
- });
178
- if (existingStrategy !== undefined) {
179
- throw new Error('A strategy of this type already exists on that EntityStore.');
180
- }
181
- this.strategies.push(strategy);
182
- strategy.bindStore(this);
183
- if (activate === true) {
184
- strategy.activate();
185
- }
186
- return this;
187
- }
188
- /**
189
- * Remove a strategy from this store
190
- * @param strategy Entity store strategy
191
- * @returns Entity store
192
- */
193
- removeStrategy(strategy) {
194
- const index = this.strategies.indexOf(strategy);
195
- if (index >= 0) {
196
- this.strategies.splice(index, 1);
197
- strategy.unbindStore(this);
198
- }
199
- return this;
200
- }
201
- /**
202
- * Return strategies of a given type
203
- * @param type Entity store strategy class
204
- * @returns Strategies
205
- */
206
- getStrategyOfType(type) {
207
- return this.strategies.find((strategy) => {
208
- return strategy instanceof type;
209
- });
210
- }
211
- /**
212
- * Activate strategies of a given type
213
- * @param type Entity store strategy class
214
- */
215
- activateStrategyOfType(type) {
216
- const strategy = this.getStrategyOfType(type);
217
- if (strategy !== undefined) {
218
- strategy.activate();
219
- }
220
- }
221
- /**
222
- * Deactivate strategies of a given type
223
- * @param type Entity store strategy class
224
- */
225
- deactivateStrategyOfType(type) {
226
- const strategy = this.getStrategyOfType(type);
227
- if (strategy !== undefined) {
228
- strategy.deactivate();
229
- }
230
- }
231
- /**
232
- * Delete an entity from the store
233
- * @param entity Entity
234
- */
235
- delete(entity) {
236
- this.deleteMany([entity]);
237
- }
238
- /**
239
- * Delete many entities from the store
240
- * @param entities Entities
241
- */
242
- deleteMany(entities) {
243
- entities.forEach((entity) => this.index.delete(this.getKey(entity)));
244
- this._pristine = false;
245
- this.next();
246
- }
247
- /**
248
- * Generate a complete index of all the entities
249
- * @param entities Entities
250
- * @returns Index
251
- */
252
- generateIndex(entities) {
253
- const entries = entities.map((entity) => [this.getKey(entity), entity]);
254
- return new Map(entries);
255
- }
256
- /**
257
- * Push the index's entities into the entities$ observable
258
- */
259
- next() {
260
- this.entities$.next(Array.from(this.index.values()));
261
- this.updateCount();
262
- }
263
- /**
264
- * Update the store's count and empty
265
- */
266
- updateCount() {
267
- const count = this.index.size;
268
- const empty = count === 0;
269
- this.count$.next(count);
270
- this.empty$.next(empty);
271
- }
272
- /**
273
- * Create the entity state manager
274
- * @returns EntityStateManager
275
- */
276
- createStateManager() {
277
- return new EntityStateManager({
278
- getKey: this.getKey,
279
- index: this.index
280
- });
281
- }
282
- /**
283
- * Create the data view
284
- * @returns EntityView<E>
285
- */
286
- createDataView() {
287
- return new EntityView(this.entities$);
288
- }
289
- /**
290
- * Create the state view
291
- * @returns EntityView<EntityRecord<E>>
292
- */
293
- createStateView() {
294
- return new EntityView(this.view.all$())
295
- .join({
296
- source: this.state.change$,
297
- reduce: (entity) => {
298
- const key = this.getKey(entity);
299
- const state = this.state.get(entity);
300
- const currentRecord = this.stateView.get(key);
301
- if (currentRecord !== undefined &&
302
- currentRecord.entity === entity &&
303
- this.statesAreTheSame(currentRecord.state, state)) {
304
- return currentRecord;
305
- }
306
- const revision = currentRecord ? currentRecord.revision + 1 : 1;
307
- const ref = `${key}-${revision}`;
308
- return { entity, state, revision, ref };
309
- }
310
- })
311
- .createIndex((record) => this.getKey(record.entity));
312
- }
313
- statesAreTheSame(currentState, newState) {
314
- if (currentState === newState) {
315
- return true;
316
- }
317
- const currentStateIsEmpty = Object.keys(currentState).length === 0;
318
- const newStateIsEmpty = Object.keys(newState).length === 0;
319
- return currentStateIsEmpty && newStateIsEmpty;
320
- }
321
- }
322
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vc3JjL2xpYi9lbnRpdHkvc2hhcmVkL3N0b3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFHdkMsT0FBTyxFQUFFLFdBQVcsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUU3QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBT3BDOzs7O0dBSUc7QUFDSCxNQUFNLE9BQU8sV0FBVztJQUl0Qjs7T0FFRztJQUNNLFNBQVMsR0FBRyxJQUFJLGVBQWUsQ0FBTSxFQUFFLENBQUMsQ0FBQztJQUVsRDs7T0FFRztJQUNNLE1BQU0sR0FBRyxJQUFJLGVBQWUsQ0FBUyxDQUFDLENBQUMsQ0FBQztJQUNqRCxJQUFJLEtBQUs7UUFDUCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDO0lBQzNCLENBQUM7SUFFRDs7T0FFRztJQUNNLE1BQU0sR0FBRyxJQUFJLGVBQWUsQ0FBVSxJQUFJLENBQUMsQ0FBQztJQUNyRCxJQUFJLEtBQUs7UUFDUCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDO0lBQzNCLENBQUM7SUFFRDs7T0FFRztJQUNNLEtBQUssQ0FBMkI7SUFFekM7O09BRUc7SUFDTSxJQUFJLENBQWdCO0lBRTdCOztPQUVHO0lBQ00sU0FBUyxDQUFvQztJQUV0RDs7T0FFRztJQUNNLE1BQU0sQ0FBbUI7SUFFbEM7O09BRUc7SUFDTSxXQUFXLENBQTJCO0lBRS9DOztPQUVHO0lBQ0gsSUFBSSxLQUFLO1FBQ1AsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3JCLENBQUM7SUFDTyxNQUFNLENBQW9CO0lBRWxDOztPQUVH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QztnQkFFRCxNQUFNLFFBQVEsR0FBRyxhQUFhLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ2hFLE1BQU0sR0FBRyxHQUFHLEdBQUcsR0FBRyxJQUFJLFFBQVEsRUFBRSxDQUFDO2dCQUNqQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFLENBQUM7WUFDMUMsQ0FBQztTQUNGLENBQUM7YUFDRCxXQUFXLENBQUMsQ0FBQyxNQUEwQixFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBQzdFLENBQUM7SUFFTyxnQkFBZ0IsQ0FBQyxZQUFlLEVBQUUsUUFBVztRQUNuRCxJQUFJLFlBQVksS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUM5QixPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7UUFFRCxNQUFNLG1CQUFtQixHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQztRQUNuRSxNQUFNLGVBQWUsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUM7UUFDM0QsT0FBTyxtQkFBbUIsSUFBSSxlQUFlLENBQUM7SUFDaEQsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcblxyXG5pbXBvcnQgeyBFbnRpdHlLZXksIEVudGl0eVJlY29yZCwgRW50aXR5U3RhdGUgfSBmcm9tICcuL2VudGl0eS5pbnRlcmZhY2VzJztcclxuaW1wb3J0IHsgZ2V0RW50aXR5SWQsIGdldEVudGl0eVByb3BlcnR5IH0gZnJvbSAnLi9lbnRpdHkudXRpbHMnO1xyXG5pbXBvcnQgeyBFbnRpdHlTdGF0ZU1hbmFnZXIgfSBmcm9tICcuL3N0YXRlJztcclxuaW1wb3J0IHR5cGUgeyBFbnRpdHlTdG9yZVN0cmF0ZWd5IH0gZnJvbSAnLi9zdHJhdGVnaWVzL3N0cmF0ZWd5JztcclxuaW1wb3J0IHsgRW50aXR5VmlldyB9IGZyb20gJy4vdmlldyc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEVudGl0eVN0b3JlT3B0aW9ucyB7XHJcbiAgZ2V0S2V5PzogKGVudGl0eTogb2JqZWN0KSA9PiBFbnRpdHlLZXk7XHJcbiAgZ2V0UHJvcGVydHk/OiAoZW50aXR5OiBvYmplY3QsIHByb3BlcnR5OiBzdHJpbmcpID0+IGFueTtcclxufVxyXG5cclxuLyoqXHJcbiAqIEFuIGVudGl0eSBzdG9yZSBjbGFzcyBob2xkcyBhbnkgbnVtYmVyIG9mIGVudGl0aWVzXHJcbiAqIGFzIHdlbGwgYXMgdGhlaXIgc3RhdGUuIEl0IGNhbiBiZSBvYnNlcnZlZCwgZmlsdGVyZWQgYW5kIHNvcnRlZCBhbmRcclxuICogcHJvdmlkZXMgbWV0aG9kcyB0byBpbnNlcnQsIHVwZGF0ZSBvciBkZWxldGUgZW50aXRpZXMuXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgRW50aXR5U3RvcmU8XHJcbiAgRSBleHRlbmRzIG9iamVjdCA9IG9iamVjdCxcclxuICBTIGV4dGVuZHMgRW50aXR5U3RhdGUgPSBFbnRpdHlTdGF0ZVxyXG4+IHtcclxuICAvKipcclxuICAgKiBPYnNlcnZhYmxlIG9mIHRoZSByYXcgZW50aXRpZXNcclxuICAgKi9cclxuICByZWFkb25seSBlbnRpdGllcyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEVbXT4oW10pO1xyXG5cclxuICAvKipcclxuICAgKiBOdW1iZXIgb2YgZW50aXRpZXNcclxuICAgKi9cclxuICByZWFkb25seSBjb3VudCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PG51bWJlcj4oMCk7XHJcbiAgZ2V0IGNvdW50KCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy5jb3VudCQudmFsdWU7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBXaGV0aGVyIHRoZSBzdG9yZSBpcyBlbXB0eVxyXG4gICAqL1xyXG4gIHJlYWRvbmx5IGVtcHR5JCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4odHJ1ZSk7XHJcbiAgZ2V0IGVtcHR5KCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuZW1wdHkkLnZhbHVlO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRW50aXR5IHN0b3JlIHN0YXRlXHJcbiAgICovXHJcbiAgcmVhZG9ubHkgc3RhdGU6IEVudGl0eVN0YXRlTWFuYWdlcjxFLCBTPjtcclxuXHJcbiAgLyoqXHJcbiAgICogVmlldyBvZiBhbGwgdGhlIGVudGl0aWVzXHJcbiAgICovXHJcbiAgcmVhZG9ubHkgdmlldzogRW50aXR5VmlldzxFPjtcclxuXHJcbiAgLyoqXHJcbiAgICogVmlldyBvZiBhbGwgdGhlIGVudGl0aWVzIGFuZCB0aGVpciBzdGF0ZVxyXG4gICAqL1xyXG4gIHJlYWRvbmx5IHN0YXRlVmlldzogRW50aXR5VmlldzxFLCBFbnRpdHlSZWNvcmQ8RSwgUz4+O1xyXG5cclxuICAvKipcclxuICAgKiBNZXRob2QgdG8gZ2V0IGFuIGVudGl0eSdzIGlkXHJcbiAgICovXHJcbiAgcmVhZG9ubHkgZ2V0S2V5OiAoRSkgPT4gRW50aXR5S2V5O1xyXG5cclxuICAvKipcclxuICAgKiBNZXRob2QgdG8gZ2V0IGFuIGVudGl0eSdzIG5hbWVkIHByb3BlcnR5XHJcbiAgICovXHJcbiAgcmVhZG9ubHkgZ2V0UHJvcGVydHk6IChFLCBwcm9wOiBzdHJpbmcpID0+IGFueTtcclxuXHJcbiAgLyoqXHJcbiAgICogU3RvcmUgaW5kZXhcclxuICAgKi9cclxuICBnZXQgaW5kZXgoKTogTWFwPEVudGl0eUtleSwgRT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2luZGV4O1xyXG4gIH1cclxuICBwcml2YXRlIF9pbmRleDogTWFwPEVudGl0eUtleSwgRT47XHJcblxyXG4gIC8qKlxyXG4gICAqIFN0b3JlIGluZGV4XHJcbiAgICovXHJcbiAgZ2V0IHByaXN0aW5lKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX3ByaXN0aW5lO1xyXG4gIH1cclxuICBwcml2YXRlIF9wcmlzdGluZTogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gIC8qKlxyXG4gICAqIFN0cmF0ZWdpZXNcclxuICAgKi9cclxuICBwcml2YXRlIHN0cmF0ZWdpZXM6IEVudGl0eVN0b3JlU3RyYXRlZ3lbXSA9IFtdO1xyXG5cclxuICBjb25zdHJ1Y3RvcihlbnRpdGllczogRVtdLCBvcHRpb25zOiBFbnRpdHlTdG9yZU9wdGlvbnMgPSB7fSkge1xyXG4gICAgdGhpcy5nZXRLZXkgPSBvcHRpb25zLmdldEtleSA/IG9wdGlvbnMuZ2V0S2V5IDogZ2V0RW50aXR5SWQ7XHJcbiAgICB0aGlzLmdldFByb3BlcnR5ID0gb3B0aW9ucy5nZXRQcm9wZXJ0eVxyXG4gICAgICA/IG9wdGlvbnMuZ2V0UHJvcGVydHlcclxuICAgICAgOiBnZXRFbnRpdHlQcm9wZXJ0eTtcclxuXHJcbiAgICB0aGlzLnN0YXRlID0gdGhpcy5jcmVhdGVTdGF0ZU1hbmFnZXIoKTtcclxuICAgIHRoaXMudmlldyA9IHRoaXMuY3JlYXRlRGF0YVZpZXcoKTtcclxuICAgIHRoaXMuc3RhdGVWaWV3ID0gdGhpcy5jcmVhdGVTdGF0ZVZpZXcoKTtcclxuXHJcbiAgICB0aGlzLnZpZXcubGlmdCgpO1xyXG4gICAgdGhpcy5zdGF0ZVZpZXcubGlmdCgpO1xyXG5cclxuICAgIGlmIChlbnRpdGllcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHRoaXMubG9hZChlbnRpdGllcyk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLl9pbmRleCA9IHRoaXMuZ2VuZXJhdGVJbmRleChlbnRpdGllcyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBHZXQgYW4gZW50aXR5IGZyb20gdGhlIHN0b3JlIGJ5IGtleVxyXG4gICAqIEBwYXJhbSBrZXkgS2V5XHJcbiAgICogQHJldHVybnMgRW50aXR5XHJcbiAgICovXHJcbiAgZ2V0KGtleTogRW50aXR5S2V5KTogRSB7XHJcbiAgICByZXR1cm4gdGhpcy5pbmRleC5nZXQoa2V5KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldCBhbGwgZW50aXRpZXMgaW4gdGhlIHN0b3JlXHJcbiAgICogQHJldHVybnMgQXJyYXkgb2YgZW50aXRpZXNcclxuICAgKi9cclxuICBhbGwoKTogRVtdIHtcclxuICAgIHJldHVybiB0aGlzLmVudGl0aWVzJC52YWx1ZTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNldCB0aGlzIHN0b3JlJ3MgZW50aXRpZXNcclxuICAgKiBAcGFyYW0gZW50aXRpZXMgRW50aXRpZXNcclxuICAgKi9cclxuICBsb2FkKGVudGl0aWVzOiBFW10sIHByaXN0aW5lOiBib29sZWFuID0gdHJ1ZSkge1xyXG4gICAgdGhpcy5faW5kZXggPSB0aGlzLmdlbmVyYXRlSW5kZXgoZW50aXRpZXMpO1xyXG4gICAgdGhpcy5fcHJpc3RpbmUgPSBwcmlzdGluZTtcclxuICAgIHRoaXMubmV4dCgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ2xlYXIgdGhlIHN0b3JlJ3MgZW50aXRpZXMgYnV0IGtlZXAgdGhlIHN0YXRlIGFuZCB2aWV3cyBpbnRhY3QuXHJcbiAgICogVmlld3Mgd29uJ3QgcmV0dXJuIGFueSBkYXRhIGJ1dCBmdXR1cmUgZGF0YSB3aWxsIGJlIHN1YmplY3QgdG8gdGhlXHJcbiAgICogY3VycmVudCB2aWV3cyBmaWx0ZXIgYW5kIHNvcnRcclxuICAgKi9cclxuICBzb2Z0Q2xlYXIoKSB7XHJcbiAgICBpZiAodGhpcy5pbmRleCAmJiB0aGlzLmluZGV4LnNpemUgPiAwKSB7XHJcbiAgICAgIHRoaXMuaW5kZXguY2xlYXIoKTtcclxuICAgICAgdGhpcy5fcHJpc3RpbmUgPSB0cnVlO1xyXG4gICAgICB0aGlzLm5leHQoKTtcclxuICAgIH0gZWxzZSBpZiAodGhpcy5pbmRleCkge1xyXG4gICAgICB0aGlzLnVwZGF0ZUNvdW50KCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDbGVhciB0aGUgc3RvcmUncyBlbnRpdGllcywgc3RhdGUgYW5kIHZpZXdzXHJcbiAgICovXHJcbiAgY2xlYXIoKSB7XHJcbiAgICB0aGlzLnN0YXRlVmlldy5jbGVhcigpO1xyXG4gICAgdGhpcy52aWV3LmNsZWFyKCk7XHJcbiAgICB0aGlzLnN0YXRlLmNsZWFyKCk7XHJcbiAgICB0aGlzLnNvZnRDbGVhcigpO1xyXG4gIH1cclxuXHJcbiAgZGVzdHJveSgpIHtcclxuICAgIHRoaXMuc3RhdGVWaWV3LmRlc3Ryb3koKTtcclxuICAgIHRoaXMudmlldy5kZXN0cm95KCk7XHJcbiAgICB0aGlzLmNsZWFyKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBJbnNlcnQgYW4gZW50aXR5IGludG8gdGhlIHN0b3JlXHJcbiAgICogQHBhcmFtIGVudGl0eSBFbnRpdHlcclxuICAgKi9cclxuICBpbnNlcnQoZW50aXR5OiBFKSB7XHJcbiAgICB0aGlzLmluc2VydE1hbnkoW2VudGl0eV0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogSW5zZXJ0IG1hbnkgZW50aXRpZXMgaW50byB0aGUgc3RvcmVcclxuICAgKiBAcGFyYW0gZW50aXRpZXMgRW50aXRpZXNcclxuICAgKi9cclxuICBpbnNlcnRNYW55KGVudGl0aWVzOiBFW10pIHtcclxuICAgIGVudGl0aWVzLmZvckVhY2goKGVudGl0eTogRSkgPT5cclxuICAgICAgdGhpcy5pbmRleC5zZXQodGhpcy5nZXRLZXkoZW50aXR5KSwgZW50aXR5KVxyXG4gICAgKTtcclxuICAgIHRoaXMuX3ByaXN0aW5lID0gZmFsc2U7XHJcbiAgICB0aGlzLm5leHQoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFVwZGF0ZSBvciBpbnNlcnQgYW4gZW50aXR5IGludG8gdGhlIHN0b3JlXHJcbiAgICogQHBhcmFtIGVudGl0eSBFbnRpdHlcclxuICAgKi9cclxuICB1cGRhdGUoZW50aXR5OiBFKSB7XHJcbiAgICB0aGlzLnVwZGF0ZU1hbnkoW2VudGl0eV0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVXBkYXRlIG9yIGluc2VydCBtYW55IGVudGl0aWVzIGludG8gdGhlIHN0b3JlXHJcbiAgICogQHBhcmFtIGVudGl0aWVzIEVudGl0aWVzXHJcbiAgICovXHJcbiAgdXBkYXRlTWFueShlbnRpdGllczogRVtdKSB7XHJcbiAgICBlbnRpdGllcy5mb3JFYWNoKChlbnRpdHk6IEUpID0+XHJcbiAgICAgIHRoaXMuaW5kZXguc2V0KHRoaXMuZ2V0S2V5KGVudGl0eSksIGVudGl0eSlcclxuICAgICk7XHJcbiAgICB0aGlzLl9wcmlzdGluZSA9IGZhbHNlO1xyXG4gICAgdGhpcy5uZXh0KCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBBZGQgYSBzdHJhdGVneSB0byB0aGlzIHN0b3JlXHJcbiAgICogQHBhcmFtIHN0cmF0ZWd5IEVudGl0eSBzdG9yZSBzdHJhdGVneVxyXG4gICAqIEByZXR1cm5zIEVudGl0eSBzdG9yZVxyXG4gICAqL1xyXG4gIGFkZFN0cmF0ZWd5KFxyXG4gICAgc3RyYXRlZ3k6IEVudGl0eVN0b3JlU3RyYXRlZ3ksXHJcbiAgICBhY3RpdmF0ZTogYm9vbGVhbiA9IGZhbHNlXHJcbiAgKTogRW50aXR5U3RvcmUge1xyXG4gICAgY29uc3QgZXhpc3RpbmdTdHJhdGVneSA9IHRoaXMuc3RyYXRlZ2llcy5maW5kKFxyXG4gICAgICAoX3N0cmF0ZWd5OiBFbnRpdHlTdG9yZVN0cmF0ZWd5KSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHN0cmF0ZWd5LmNvbnN0cnVjdG9yID09PSBfc3RyYXRlZ3kuY29uc3RydWN0b3I7XHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgICBpZiAoZXhpc3RpbmdTdHJhdGVneSAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIHRocm93IG5ldyBFcnJvcihcclxuICAgICAgICAnQSBzdHJhdGVneSBvZiB0aGlzIHR5cGUgYWxyZWFkeSBleGlzdHMgb24gdGhhdCBFbnRpdHlTdG9yZS4nXHJcbiAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5zdHJhdGVnaWVzLnB1c2goc3RyYXRlZ3kpO1xyXG4gICAgc3RyYXRlZ3kuYmluZFN0b3JlKHRoaXMpO1xyXG5cclxuICAgIGlmIChhY3RpdmF0ZSA9PT0gdHJ1ZSkge1xyXG4gICAgICBzdHJhdGVneS5hY3RpdmF0ZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0aGlzO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmVtb3ZlIGEgc3RyYXRlZ3kgZnJvbSB0aGlzIHN0b3JlXHJcbiAgICogQHBhcmFtIHN0cmF0ZWd5IEVudGl0eSBzdG9yZSBzdHJhdGVneVxyXG4gICAqIEByZXR1cm5zIEVudGl0eSBzdG9yZVxyXG4gICAqL1xyXG4gIHJlbW92ZVN0cmF0ZWd5KHN0cmF0ZWd5OiBFbnRpdHlTdG9yZVN0cmF0ZWd5KTogRW50aXR5U3RvcmUge1xyXG4gICAgY29uc3QgaW5kZXggPSB0aGlzLnN0cmF0ZWdpZXMuaW5kZXhPZihzdHJhdGVneSk7XHJcbiAgICBpZiAoaW5kZXggPj0gMCkge1xyXG4gICAgICB0aGlzLnN0cmF0ZWdpZXMuc3BsaWNlKGluZGV4LCAxKTtcclxuICAgICAgc3RyYXRlZ3kudW5iaW5kU3RvcmUodGhpcyk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHVybiBzdHJhdGVnaWVzIG9mIGEgZ2l2ZW4gdHlwZVxyXG4gICAqIEBwYXJhbSB0eXBlIEVudGl0eSBzdG9yZSBzdHJhdGVneSBjbGFzc1xyXG4gICAqIEByZXR1cm5zIFN0cmF0ZWdpZXNcclxuICAgKi9cclxuICBnZXRTdHJhdGVneU9mVHlwZSh0eXBlOiB0eXBlb2YgRW50aXR5U3RvcmVTdHJhdGVneSk6IEVudGl0eVN0b3JlU3RyYXRlZ3kge1xyXG4gICAgcmV0dXJuIHRoaXMuc3RyYXRlZ2llcy5maW5kKChzdHJhdGVneTogRW50aXR5U3RvcmVTdHJhdGVneSkgPT4ge1xyXG4gICAgICByZXR1cm4gc3RyYXRlZ3kgaW5zdGFuY2VvZiB0eXBlO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBBY3RpdmF0ZSBzdHJhdGVnaWVzIG9mIGEgZ2l2ZW4gdHlwZVxyXG4gICAqIEBwYXJhbSB0eXBlIEVudGl0eSBzdG9yZSBzdHJhdGVneSBjbGFzc1xyXG4gICAqL1xyXG4gIGFjdGl2YXRlU3RyYXRlZ3lPZlR5cGUodHlwZTogdHlwZW9mIEVudGl0eVN0b3JlU3RyYXRlZ3kpIHtcclxuICAgIGNvbnN0IHN0cmF0ZWd5ID0gdGhpcy5nZXRTdHJhdGVneU9mVHlwZSh0eXBlKTtcclxuICAgIGlmIChzdHJhdGVneSAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIHN0cmF0ZWd5LmFjdGl2YXRlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBEZWFjdGl2YXRlIHN0cmF0ZWdpZXMgb2YgYSBnaXZlbiB0eXBlXHJcbiAgICogQHBhcmFtIHR5cGUgRW50aXR5IHN0b3JlIHN0cmF0ZWd5IGNsYXNzXHJcbiAgICovXHJcbiAgZGVhY3RpdmF0ZVN0cmF0ZWd5T2ZUeXBlKHR5cGU6IHR5cGVvZiBFbnRpdHlTdG9yZVN0cmF0ZWd5KSB7XHJcbiAgICBjb25zdCBzdHJhdGVneSA9IHRoaXMuZ2V0U3RyYXRlZ3lPZlR5cGUodHlwZSk7XHJcbiAgICBpZiAoc3RyYXRlZ3kgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICBzdHJhdGVneS5kZWFjdGl2YXRlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBEZWxldGUgYW4gZW50aXR5IGZyb20gdGhlIHN0b3JlXHJcbiAgICogQHBhcmFtIGVudGl0eSBFbnRpdHlcclxuICAgKi9cclxuICBkZWxldGUoZW50aXR5OiBFKSB7XHJcbiAgICB0aGlzLmRlbGV0ZU1hbnkoW2VudGl0eV0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRGVsZXRlIG1hbnkgZW50aXRpZXMgZnJvbSB0aGUgc3RvcmVcclxuICAgKiBAcGFyYW0gZW50aXRpZXMgRW50aXRpZXNcclxuICAgKi9cclxuICBkZWxldGVNYW55KGVudGl0aWVzOiBFW10pIHtcclxuICAgIGVudGl0aWVzLmZvckVhY2goKGVudGl0eTogRSkgPT4gdGhpcy5pbmRleC5kZWxldGUodGhpcy5nZXRLZXkoZW50aXR5KSkpO1xyXG4gICAgdGhpcy5fcHJpc3RpbmUgPSBmYWxzZTtcclxuICAgIHRoaXMubmV4dCgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2VuZXJhdGUgYSBjb21wbGV0ZSBpbmRleCBvZiBhbGwgdGhlIGVudGl0aWVzXHJcbiAgICogQHBhcmFtIGVudGl0aWVzIEVudGl0aWVzXHJcbiAgICogQHJldHVybnMgSW5kZXhcclxuICAgKi9cclxuICBwcml2YXRlIGdlbmVyYXRlSW5kZXgoZW50aXRpZXM6IEVbXSk6IE1hcDxFbnRpdHlLZXksIEU+IHtcclxuICAgIGNvbnN0IGVudHJpZXMgPSBlbnRpdGllcy5tYXAoKGVudGl0eTogRSkgPT4gW3RoaXMuZ2V0S2V5KGVudGl0eSksIGVudGl0eV0pO1xyXG4gICAgcmV0dXJuIG5ldyBNYXAoZW50cmllcyBhcyBbRW50aXR5S2V5LCBFXVtdKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFB1c2ggdGhlIGluZGV4J3MgZW50aXRpZXMgaW50byB0aGUgZW50aXRpZXMkIG9ic2VydmFibGVcclxuICAgKi9cclxuICBwcml2YXRlIG5leHQoKSB7XHJcbiAgICB0aGlzLmVudGl0aWVzJC5uZXh0KEFycmF5LmZyb20odGhpcy5pbmRleC52YWx1ZXMoKSkpO1xyXG4gICAgdGhpcy51cGRhdGVDb3VudCgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVXBkYXRlIHRoZSBzdG9yZSdzIGNvdW50IGFuZCBlbXB0eVxyXG4gICAqL1xyXG4gIHByaXZhdGUgdXBkYXRlQ291bnQoKSB7XHJcbiAgICBjb25zdCBjb3VudCA9IHRoaXMuaW5kZXguc2l6ZTtcclxuICAgIGNvbnN0IGVtcHR5ID0gY291bnQgPT09IDA7XHJcbiAgICB0aGlzLmNvdW50JC5uZXh0KGNvdW50KTtcclxuICAgIHRoaXMuZW1wdHkkLm5leHQoZW1wdHkpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ3JlYXRlIHRoZSBlbnRpdHkgc3RhdGUgbWFuYWdlclxyXG4gICAqIEByZXR1cm5zIEVudGl0eVN0YXRlTWFuYWdlclxyXG4gICAqL1xyXG4gIHByaXZhdGUgY3JlYXRlU3RhdGVNYW5hZ2VyKCkge1xyXG4gICAgcmV0dXJuIG5ldyBFbnRpdHlTdGF0ZU1hbmFnZXI8RSwgUz4oe1xyXG4gICAgICBnZXRLZXk6IHRoaXMuZ2V0S2V5LFxyXG4gICAgICBpbmRleDogdGhpcy5pbmRleFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDcmVhdGUgdGhlIGRhdGEgdmlld1xyXG4gICAqIEByZXR1cm5zIEVudGl0eVZpZXc8RT5cclxuICAgKi9cclxuICBwcml2YXRlIGNyZWF0ZURhdGFWaWV3KCkge1xyXG4gICAgcmV0dXJuIG5ldyBFbnRpdHlWaWV3PEU+KHRoaXMuZW50aXRpZXMkKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENyZWF0ZSB0aGUgc3RhdGUgdmlld1xyXG4gICAqIEByZXR1cm5zIEVudGl0eVZpZXc8RW50aXR5UmVjb3JkPEU+PlxyXG4gICAqL1xyXG4gIHByaXZhdGUgY3JlYXRlU3RhdGVWaWV3KCkge1xyXG4gICAgcmV0dXJuIG5ldyBFbnRpdHlWaWV3PEUsIEVudGl0eVJlY29yZDxFLCBTPj4odGhpcy52aWV3LmFsbCQoKSlcclxuICAgICAgLmpvaW4oe1xyXG4gICAgICAgIHNvdXJjZTogdGhpcy5zdGF0ZS5jaGFuZ2UkLFxyXG4gICAgICAgIHJlZHVjZTogKGVudGl0eTogRSk6IEVudGl0eVJlY29yZDxFLCBTPiA9PiB7XHJcbiAgICAgICAgICBjb25zdCBrZXkgPSB0aGlzLmdldEtleShlbnRpdHkpO1xyXG4gICAgICAgICAgY29uc3Qgc3RhdGUgPSB0aGlzLnN0YXRlLmdldChlbnRpdHkpO1xyXG4gICAgICAgICAgY29uc3QgY3VycmVudFJlY29yZCA9IHRoaXMuc3RhdGVWaWV3LmdldChrZXkpO1xyXG5cclxuICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgY3VycmVudFJlY29yZCAhPT0gdW5kZWZpbmVkICYmXHJcbiAgICAgICAgICAgIGN1cnJlbnRSZWNvcmQuZW50aXR5ID09PSBlbnRpdHkgJiZcclxuICAgICAgICAgICAgdGhpcy5zdGF0ZXNBcmVUaGVTYW1lKGN1cnJlbnRSZWNvcmQuc3RhdGUsIHN0YXRlKVxyXG4gICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBjdXJyZW50UmVjb3JkO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIGNvbnN0IHJldmlzaW9uID0gY3VycmVudFJlY29yZCA/IGN1cnJlbnRSZWNvcmQucmV2aXNpb24gKyAxIDogMTtcclxuICAgICAgICAgIGNvbnN0IHJlZiA9IGAke2tleX0tJHtyZXZpc2lvbn1gO1xyXG4gICAgICAgICAgcmV0dXJuIHsgZW50aXR5LCBzdGF0ZSwgcmV2aXNpb24sIHJlZiB9O1xyXG4gICAgICAgIH1cclxuICAgICAgfSlcclxuICAgICAgLmNyZWF0ZUluZGV4KChyZWNvcmQ6IEVudGl0eVJlY29yZDxFLCBTPikgPT4gdGhpcy5nZXRLZXkocmVjb3JkLmVudGl0eSkpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzdGF0ZXNBcmVUaGVTYW1lKGN1cnJlbnRTdGF0ZTogUywgbmV3U3RhdGU6IFMpOiBib29sZWFuIHtcclxuICAgIGlmIChjdXJyZW50U3RhdGUgPT09IG5ld1N0YXRlKSB7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGN1cnJlbnRTdGF0ZUlzRW1wdHkgPSBPYmplY3Qua2V5cyhjdXJyZW50U3RhdGUpLmxlbmd0aCA9PT0gMDtcclxuICAgIGNvbnN0IG5ld1N0YXRlSXNFbXB0eSA9IE9iamVjdC5rZXlzKG5ld1N0YXRlKS5sZW5ndGggPT09IDA7XHJcbiAgICByZXR1cm4gY3VycmVudFN0YXRlSXNFbXB0eSAmJiBuZXdTdGF0ZUlzRW1wdHk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -1,80 +0,0 @@
1
- import { EntityStoreStrategy } from './strategy';
2
- /**
3
- * When active, this strategy filters a store's stateView to return
4
- * selected entities only.
5
- */
6
- export class EntityStoreFilterCustomFuncStrategy extends EntityStoreStrategy {
7
- options;
8
- constructor(options) {
9
- super(options);
10
- this.options = options;
11
- }
12
- /**
13
- * Store / filter ids map
14
- */
15
- filters = new Map();
16
- /**
17
- * Bind this strategy to a store and start filtering it
18
- * @param store Entity store
19
- */
20
- bindStore(store) {
21
- super.bindStore(store);
22
- if (this.active === true) {
23
- this.filterStore(store);
24
- }
25
- }
26
- /**
27
- * Unbind this strategy from a store and stop filtering it
28
- * @param store Entity store
29
- */
30
- unbindStore(store) {
31
- super.unbindStore(store);
32
- if (this.active === true) {
33
- this.unfilterStore(store);
34
- }
35
- }
36
- /**
37
- * Start filtering all stores
38
- * @internal
39
- */
40
- doActivate() {
41
- this.filterAll();
42
- }
43
- /**
44
- * Stop filtering all stores
45
- * @internal
46
- */
47
- doDeactivate() {
48
- this.unfilterAll();
49
- }
50
- /**
51
- * Filter all stores
52
- */
53
- filterAll() {
54
- this.stores.forEach((store) => this.filterStore(store));
55
- }
56
- /**
57
- * Unfilter all stores
58
- */
59
- unfilterAll() {
60
- this.stores.forEach((store) => this.unfilterStore(store));
61
- }
62
- /**
63
- * Filter a store and add it to the filters map
64
- */
65
- filterStore(store) {
66
- this.filters.set(store, store.stateView.addFilter(this.options.filterClauseFunc));
67
- }
68
- /**
69
- * Unfilter a store and delete it from the filters map
70
- */
71
- unfilterStore(store) {
72
- const filterId = this.filters.get(store);
73
- if (filterId === undefined) {
74
- return;
75
- }
76
- store.stateView.removeFilter(filterId);
77
- this.filters.delete(store);
78
- }
79
- }
80
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLWN1c3RvbS1mdW5jdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbW1vbi9zcmMvbGliL2VudGl0eS9zaGFyZWQvc3RyYXRlZ2llcy9maWx0ZXItY3VzdG9tLWZ1bmN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUVqRDs7O0dBR0c7QUFDSCxNQUFNLE9BQU8sbUNBQW9DLFNBQVEsbUJBQW1CO0lBQ3BEO0lBQXRCLFlBQXNCLE9BQXVDO1FBQzNELEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQURLLFlBQU8sR0FBUCxPQUFPLENBQWdDO0lBRTdELENBQUM7SUFFRDs7T0FFRztJQUNLLE9BQU8sR0FBNkIsSUFBSSxHQUFHLEVBQUUsQ0FBQztJQUV0RDs7O09BR0c7SUFDSCxTQUFTLENBQUMsS0FBa0I7UUFDMUIsS0FBSyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN2QixJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssSUFBSSxFQUFFLENBQUM7WUFDekIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMxQixDQUFDO0lBQ0gsQ0FBQztJQUVEOzs7T0FHRztJQUNILFdBQVcsQ0FBQyxLQUFrQjtRQUM1QixLQUFLLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3pCLElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxJQUFJLEVBQUUsQ0FBQztZQUN6QixJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzVCLENBQUM7SUFDSCxDQUFDO0lBRUQ7OztPQUdHO0lBQ08sVUFBVTtRQUNsQixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDbkIsQ0FBQztJQUVEOzs7T0FHRztJQUNPLFlBQVk7UUFDcEIsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFRDs7T0FFRztJQUNLLFNBQVM7UUFDZixJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQWtCLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUN2RSxDQUFDO0lBRUQ7O09BRUc7SUFDSyxXQUFXO1FBQ2pCLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBa0IsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ3pFLENBQUM7SUFFRDs7T0FFRztJQUNLLFdBQVcsQ0FBQyxLQUFrQjtRQUNwQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FDZCxLQUFLLEVBQ0wsS0FBSyxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUN6RCxDQUFDO0lBQ0osQ0FBQztJQUVEOztPQUVHO0lBQ0ssYUFBYSxDQUFDLEtBQWtCO1FBQ3RDLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3pDLElBQUksUUFBUSxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQzNCLE9BQU87UUFDVCxDQUFDO1FBRUQsS0FBSyxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDdkMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDN0IsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRW50aXR5U3RvcmVTdHJhdGVneUZ1bmNPcHRpb25zIH0gZnJvbSAnLi4vZW50aXR5LmludGVyZmFjZXMnO1xyXG5pbXBvcnQgeyBFbnRpdHlTdG9yZSB9IGZyb20gJy4uL3N0b3JlJztcclxuaW1wb3J0IHsgRW50aXR5U3RvcmVTdHJhdGVneSB9IGZyb20gJy4vc3RyYXRlZ3knO1xyXG5cclxuLyoqXHJcbiAqIFdoZW4gYWN0aXZlLCB0aGlzIHN0cmF0ZWd5IGZpbHRlcnMgYSBzdG9yZSdzIHN0YXRlVmlldyB0byByZXR1cm5cclxuICogc2VsZWN0ZWQgZW50aXRpZXMgb25seS5cclxuICovXHJcbmV4cG9ydCBjbGFzcyBFbnRpdHlTdG9yZUZpbHRlckN1c3RvbUZ1bmNTdHJhdGVneSBleHRlbmRzIEVudGl0eVN0b3JlU3RyYXRlZ3kge1xyXG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBvcHRpb25zOiBFbnRpdHlTdG9yZVN0cmF0ZWd5RnVuY09wdGlvbnMpIHtcclxuICAgIHN1cGVyKG9wdGlvbnMpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU3RvcmUgLyBmaWx0ZXIgaWRzIG1hcFxyXG4gICAqL1xyXG4gIHByaXZhdGUgZmlsdGVyczogTWFwPEVudGl0eVN0b3JlLCBzdHJpbmc+ID0gbmV3IE1hcCgpO1xyXG5cclxuICAvKipcclxuICAgKiBCaW5kIHRoaXMgc3RyYXRlZ3kgdG8gYSBzdG9yZSBhbmQgc3RhcnQgZmlsdGVyaW5nIGl0XHJcbiAgICogQHBhcmFtIHN0b3JlIEVudGl0eSBzdG9yZVxyXG4gICAqL1xyXG4gIGJpbmRTdG9yZShzdG9yZTogRW50aXR5U3RvcmUpIHtcclxuICAgIHN1cGVyLmJpbmRTdG9yZShzdG9yZSk7XHJcbiAgICBpZiAodGhpcy5hY3RpdmUgPT09IHRydWUpIHtcclxuICAgICAgdGhpcy5maWx0ZXJTdG9yZShzdG9yZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBVbmJpbmQgdGhpcyBzdHJhdGVneSBmcm9tIGEgc3RvcmUgYW5kIHN0b3AgZmlsdGVyaW5nIGl0XHJcbiAgICogQHBhcmFtIHN0b3JlIEVudGl0eSBzdG9yZVxyXG4gICAqL1xyXG4gIHVuYmluZFN0b3JlKHN0b3JlOiBFbnRpdHlTdG9yZSkge1xyXG4gICAgc3VwZXIudW5iaW5kU3RvcmUoc3RvcmUpO1xyXG4gICAgaWYgKHRoaXMuYWN0aXZlID09PSB0cnVlKSB7XHJcbiAgICAgIHRoaXMudW5maWx0ZXJTdG9yZShzdG9yZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTdGFydCBmaWx0ZXJpbmcgYWxsIHN0b3Jlc1xyXG4gICAqIEBpbnRlcm5hbFxyXG4gICAqL1xyXG4gIHByb3RlY3RlZCBkb0FjdGl2YXRlKCkge1xyXG4gICAgdGhpcy5maWx0ZXJBbGwoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFN0b3AgZmlsdGVyaW5nIGFsbCBzdG9yZXNcclxuICAgKiBAaW50ZXJuYWxcclxuICAgKi9cclxuICBwcm90ZWN0ZWQgZG9EZWFjdGl2YXRlKCkge1xyXG4gICAgdGhpcy51bmZpbHRlckFsbCgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRmlsdGVyIGFsbCBzdG9yZXNcclxuICAgKi9cclxuICBwcml2YXRlIGZpbHRlckFsbCgpIHtcclxuICAgIHRoaXMuc3RvcmVzLmZvckVhY2goKHN0b3JlOiBFbnRpdHlTdG9yZSkgPT4gdGhpcy5maWx0ZXJTdG9yZShzdG9yZSkpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVW5maWx0ZXIgYWxsIHN0b3Jlc1xyXG4gICAqL1xyXG4gIHByaXZhdGUgdW5maWx0ZXJBbGwoKSB7XHJcbiAgICB0aGlzLnN0b3Jlcy5mb3JFYWNoKChzdG9yZTogRW50aXR5U3RvcmUpID0+IHRoaXMudW5maWx0ZXJTdG9yZShzdG9yZSkpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRmlsdGVyIGEgc3RvcmUgYW5kIGFkZCBpdCB0byB0aGUgZmlsdGVycyBtYXBcclxuICAgKi9cclxuICBwcml2YXRlIGZpbHRlclN0b3JlKHN0b3JlOiBFbnRpdHlTdG9yZSkge1xyXG4gICAgdGhpcy5maWx0ZXJzLnNldChcclxuICAgICAgc3RvcmUsXHJcbiAgICAgIHN0b3JlLnN0YXRlVmlldy5hZGRGaWx0ZXIodGhpcy5vcHRpb25zLmZpbHRlckNsYXVzZUZ1bmMpXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVW5maWx0ZXIgYSBzdG9yZSBhbmQgZGVsZXRlIGl0IGZyb20gdGhlIGZpbHRlcnMgbWFwXHJcbiAgICovXHJcbiAgcHJpdmF0ZSB1bmZpbHRlclN0b3JlKHN0b3JlOiBFbnRpdHlTdG9yZSkge1xyXG4gICAgY29uc3QgZmlsdGVySWQgPSB0aGlzLmZpbHRlcnMuZ2V0KHN0b3JlKTtcclxuICAgIGlmIChmaWx0ZXJJZCA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBzdG9yZS5zdGF0ZVZpZXcucmVtb3ZlRmlsdGVyKGZpbHRlcklkKTtcclxuICAgIHRoaXMuZmlsdGVycy5kZWxldGUoc3RvcmUpO1xyXG4gIH1cclxufVxyXG4iXX0=