@igo2/common 1.15.4 → 16.0.0-rc.1

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 (476) hide show
  1. package/common-theme.scss +19 -0
  2. package/{esm2020 → esm2022}/igo2-common.mjs +4 -4
  3. package/esm2022/lib/action/action.module.mjs +20 -0
  4. package/esm2022/lib/action/actionbar/actionbar-item.component.mjs +270 -0
  5. package/esm2022/lib/action/actionbar/actionbar.component.mjs +389 -0
  6. package/{esm2020 → esm2022}/lib/action/actionbar/actionbar.module.mjs +57 -57
  7. package/{esm2020 → esm2022}/lib/action/index.mjs +3 -3
  8. package/{esm2020 → esm2022}/lib/action/shared/action.enums.mjs +7 -7
  9. package/esm2022/lib/action/shared/action.interfaces.mjs +2 -0
  10. package/{esm2020 → esm2022}/lib/action/shared/index.mjs +4 -4
  11. package/{esm2020 → esm2022}/lib/action/shared/store.mjs +8 -8
  12. package/esm2022/lib/backdrop/backdrop.component.mjs +27 -0
  13. package/{esm2020 → esm2022}/lib/backdrop/backdrop.module.mjs +25 -25
  14. package/{esm2020 → esm2022}/lib/backdrop/index.mjs +2 -2
  15. package/esm2022/lib/badge-icon/badge-icon.directive.mjs +150 -0
  16. package/{esm2020 → esm2022}/lib/badge-icon/badge-icon.module.mjs +26 -26
  17. package/{esm2020 → esm2022}/lib/badge-icon/index.mjs +2 -2
  18. package/esm2022/lib/clickout/clickout.directive.mjs +33 -0
  19. package/{esm2020 → esm2022}/lib/clickout/clickout.module.mjs +24 -24
  20. package/{esm2020 → esm2022}/lib/clickout/index.mjs +2 -2
  21. package/{esm2020 → esm2022}/lib/clone/clone.module.mjs +24 -24
  22. package/esm2022/lib/clone/clone.pipe.mjs +24 -0
  23. package/{esm2020 → esm2022}/lib/clone/index.mjs +2 -2
  24. package/esm2022/lib/collapsible/collapse.directive.mjs +58 -0
  25. package/esm2022/lib/collapsible/collapsible.component.mjs +54 -0
  26. package/{esm2020 → esm2022}/lib/collapsible/collapsible.module.mjs +27 -27
  27. package/{esm2020 → esm2022}/lib/collapsible/index.mjs +3 -3
  28. package/esm2022/lib/color-picker-form-field/color-picker-form-field.component.mjs +121 -0
  29. package/esm2022/lib/color-picker-form-field/color-picker-form-field.module.mjs +32 -0
  30. package/esm2022/lib/color-picker-form-field/index.mjs +2 -0
  31. package/esm2022/lib/confirm-dialog/confirm-dialog.component.mjs +47 -0
  32. package/{esm2020 → esm2022}/lib/confirm-dialog/confirm-dialog.module.mjs +29 -29
  33. package/esm2022/lib/confirm-dialog/confirm-dialog.service.mjs +29 -0
  34. package/{esm2020 → esm2022}/lib/confirm-dialog/index.mjs +3 -3
  35. package/esm2022/lib/context-menu/context-menu.directive.mjs +110 -0
  36. package/{esm2020 → esm2022}/lib/context-menu/context-menu.module.mjs +25 -25
  37. package/{esm2020 → esm2022}/lib/context-menu/index.mjs +3 -3
  38. package/esm2022/lib/context-menu/long-press.directive.mjs +67 -0
  39. package/esm2022/lib/custom-html/custom-html.component.mjs +27 -0
  40. package/{esm2020 → esm2022}/lib/custom-html/custom-html.module.mjs +47 -47
  41. package/esm2022/lib/custom-html/custom-html.pipe.mjs +20 -0
  42. package/{esm2020 → esm2022}/lib/custom-html/index.mjs +3 -3
  43. package/{esm2020 → esm2022}/lib/dom/dom.interfaces.mjs +2 -2
  44. package/{esm2020 → esm2022}/lib/dom/dom.module.mjs +21 -23
  45. package/esm2022/lib/dom/dom.service.mjs +35 -0
  46. package/{esm2020 → esm2022}/lib/dom/index.mjs +3 -3
  47. package/esm2022/lib/drag-drop/drag-drop.directive.mjs +85 -0
  48. package/{esm2020 → esm2022}/lib/drag-drop/drag-drop.module.mjs +24 -24
  49. package/{esm2020 → esm2022}/lib/drag-drop/index.mjs +2 -2
  50. package/esm2022/lib/dynamic-component/dynamic-component.module.mjs +20 -0
  51. package/esm2022/lib/dynamic-component/dynamic-outlet/dynamic-outlet.component.mjs +138 -0
  52. package/esm2022/lib/dynamic-component/dynamic-outlet/dynamic-outlet.module.mjs +22 -0
  53. package/{esm2020 → esm2022}/lib/dynamic-component/index.mjs +3 -3
  54. package/{esm2020 → esm2022}/lib/dynamic-component/shared/dynamic-component.interfaces.mjs +2 -2
  55. package/esm2022/lib/dynamic-component/shared/dynamic-component.mjs +183 -0
  56. package/esm2022/lib/dynamic-component/shared/dynamic-component.service.mjs +30 -0
  57. package/{esm2020 → esm2022}/lib/dynamic-component/shared/index.mjs +4 -4
  58. package/esm2022/lib/entity/entity-selector/entity-selector.component.mjs +214 -0
  59. package/esm2022/lib/entity/entity-selector/entity-selector.module.mjs +24 -0
  60. package/esm2022/lib/entity/entity-table/entity-table-row.directive.mjs +139 -0
  61. package/esm2022/lib/entity/entity-table/entity-table.component.mjs +1455 -0
  62. package/{esm2020 → esm2022}/lib/entity/entity-table/entity-table.module.mjs +96 -102
  63. package/esm2022/lib/entity/entity-table-paginator/entity-table-paginator.component.mjs +167 -0
  64. package/esm2022/lib/entity/entity-table-paginator/entity-table-paginator.interface.mjs +2 -0
  65. package/esm2022/lib/entity/entity-table-paginator/entity-table-paginator.module.mjs +22 -0
  66. package/{esm2020 → esm2022}/lib/entity/entity.module.mjs +29 -31
  67. package/{esm2020 → esm2022}/lib/entity/index.mjs +6 -6
  68. package/{esm2020 → esm2022}/lib/entity/shared/entity.enums.mjs +28 -28
  69. package/esm2022/lib/entity/shared/entity.interfaces.mjs +2 -0
  70. package/esm2022/lib/entity/shared/entity.utils.mjs +73 -0
  71. package/esm2022/lib/entity/shared/index.mjs +11 -0
  72. package/esm2022/lib/entity/shared/state.mjs +194 -0
  73. package/esm2022/lib/entity/shared/store-strategy.mjs +73 -0
  74. package/esm2022/lib/entity/shared/store.mjs +256 -0
  75. package/esm2022/lib/entity/shared/strategies/filter-custom-function.mjs +80 -0
  76. package/esm2022/lib/entity/shared/strategies/filter-selection.mjs +81 -0
  77. package/{esm2020 → esm2022}/lib/entity/shared/strategies/index.mjs +4 -4
  78. package/esm2022/lib/entity/shared/strategies/strategy.mjs +78 -0
  79. package/esm2022/lib/entity/shared/transaction.mjs +329 -0
  80. package/esm2022/lib/entity/shared/view.mjs +330 -0
  81. package/esm2022/lib/entity/shared/watcher.mjs +135 -0
  82. package/esm2022/lib/flexible/flexible.component.mjs +153 -0
  83. package/{esm2020 → esm2022}/lib/flexible/flexible.module.mjs +24 -24
  84. package/{esm2020 → esm2022}/lib/flexible/flexible.type.mjs +2 -2
  85. package/{esm2020 → esm2022}/lib/flexible/index.mjs +3 -3
  86. package/esm2022/lib/form/form/form.component.mjs +125 -0
  87. package/esm2022/lib/form/form/form.module.mjs +23 -0
  88. package/esm2022/lib/form/form-field/form-field-select.component.mjs +140 -0
  89. package/esm2022/lib/form/form-field/form-field-text.component.mjs +113 -0
  90. package/esm2022/lib/form/form-field/form-field-textarea.component.mjs +114 -0
  91. package/esm2022/lib/form/form-field/form-field.component.mjs +78 -0
  92. package/{esm2020 → esm2022}/lib/form/form-field/form-field.module.mjs +74 -74
  93. package/{esm2020 → esm2022}/lib/form/form-field/index.mjs +5 -5
  94. package/esm2022/lib/form/form-group/form-group.component.mjs +115 -0
  95. package/esm2022/lib/form/form-group/form-group.module.mjs +36 -0
  96. package/esm2022/lib/form/form.module.mjs +27 -0
  97. package/{esm2020 → esm2022}/lib/form/index.mjs +5 -5
  98. package/{esm2020 → esm2022}/lib/form/shared/form-field-component.mjs +7 -7
  99. package/esm2022/lib/form/shared/form-field.service.mjs +29 -0
  100. package/esm2022/lib/form/shared/form.interfaces.mjs +2 -0
  101. package/esm2022/lib/form/shared/form.service.mjs +82 -0
  102. package/esm2022/lib/form/shared/form.utils.mjs +40 -0
  103. package/{esm2020 → esm2022}/lib/form/shared/index.mjs +6 -6
  104. package/esm2022/lib/home-button/home-button.component.mjs +30 -0
  105. package/{esm2020 → esm2022}/lib/home-button/home-button.module.mjs +41 -41
  106. package/{esm2020 → esm2022}/lib/home-button/index.mjs +2 -2
  107. package/esm2022/lib/image/image-error.directive.mjs +36 -0
  108. package/{esm2020 → esm2022}/lib/image/image.module.mjs +25 -25
  109. package/{esm2020 → esm2022}/lib/image/index.mjs +3 -3
  110. package/esm2022/lib/image/secure-image.pipe.mjs +65 -0
  111. package/{esm2020 → esm2022}/lib/interactive-tour/index.mjs +5 -5
  112. package/esm2022/lib/interactive-tour/interactive-tour.component.mjs +161 -0
  113. package/esm2022/lib/interactive-tour/interactive-tour.interface.mjs +2 -0
  114. package/esm2022/lib/interactive-tour/interactive-tour.loader.mjs +49 -0
  115. package/{esm2020 → esm2022}/lib/interactive-tour/interactive-tour.module.mjs +40 -40
  116. package/esm2022/lib/interactive-tour/interactive-tour.service.mjs +298 -0
  117. package/{esm2020 → esm2022}/lib/json-dialog/index.mjs +3 -3
  118. package/esm2022/lib/json-dialog/json-dialog.component.mjs +114 -0
  119. package/{esm2020 → esm2022}/lib/json-dialog/json-dialog.module.mjs +29 -29
  120. package/{esm2020 → esm2022}/lib/json-dialog/json-dialog.service.mjs +26 -24
  121. package/{esm2020 → esm2022}/lib/keyvalue/index.mjs +2 -2
  122. package/{esm2020 → esm2022}/lib/keyvalue/keyvalue.module.mjs +24 -24
  123. package/{esm2020 → esm2022}/lib/keyvalue/keyvalue.pipe.mjs +18 -18
  124. package/{esm2020 → esm2022}/lib/list/index.mjs +3 -3
  125. package/esm2022/lib/list/list-item.directive.mjs +167 -0
  126. package/esm2022/lib/list/list.component.mjs +268 -0
  127. package/{esm2020 → esm2022}/lib/list/list.module.mjs +29 -29
  128. package/{esm2020 → esm2022}/lib/panel/index.mjs +2 -2
  129. package/esm2022/lib/panel/panel.component.mjs +60 -0
  130. package/{esm2020 → esm2022}/lib/panel/panel.module.mjs +19 -19
  131. package/{esm2020 → esm2022}/lib/sidenav/index.mjs +2 -2
  132. package/esm2022/lib/sidenav/sidenav-shim.directive.mjs +59 -0
  133. package/{esm2020 → esm2022}/lib/sidenav/sidenav.module.mjs +24 -24
  134. package/{esm2020 → esm2022}/lib/spinner/index.mjs +3 -3
  135. package/esm2022/lib/spinner/spinner-activity.directive.mjs +55 -0
  136. package/esm2022/lib/spinner/spinner.component.mjs +38 -0
  137. package/{esm2020 → esm2022}/lib/spinner/spinner.module.mjs +21 -21
  138. package/{esm2020 → esm2022}/lib/stop-propagation/index.mjs +3 -3
  139. package/{esm2020 → esm2022}/lib/stop-propagation/stop-drop-propagation.directive.mjs +22 -22
  140. package/{esm2020 → esm2022}/lib/stop-propagation/stop-propagation.directive.mjs +21 -21
  141. package/{esm2020 → esm2022}/lib/stop-propagation/stop-propagation.module.mjs +25 -25
  142. package/{esm2020 → esm2022}/lib/table/index.mjs +6 -6
  143. package/{esm2020 → esm2022}/lib/table/table-action-color.enum.mjs +7 -7
  144. package/esm2022/lib/table/table-database.mjs +28 -0
  145. package/esm2022/lib/table/table-datasource.mjs +64 -0
  146. package/esm2022/lib/table/table-model.interface.mjs +2 -0
  147. package/esm2022/lib/table/table.component.mjs +302 -0
  148. package/{esm2020 → esm2022}/lib/table/table.module.mjs +67 -67
  149. package/{esm2020 → esm2022}/lib/tool/index.mjs +3 -3
  150. package/{esm2020 → esm2022}/lib/tool/shared/index.mjs +6 -6
  151. package/esm2022/lib/tool/shared/tool-component.mjs +9 -0
  152. package/esm2022/lib/tool/shared/tool.interface.mjs +2 -0
  153. package/esm2022/lib/tool/shared/tool.service.mjs +43 -0
  154. package/{esm2020 → esm2022}/lib/tool/shared/toolbox.enums.mjs +7 -7
  155. package/esm2022/lib/tool/shared/toolbox.mjs +184 -0
  156. package/esm2022/lib/tool/tool.module.mjs +26 -0
  157. package/{esm2020 → esm2022}/lib/tool/toolbox/toolbox.animation.mjs +10 -10
  158. package/esm2022/lib/tool/toolbox/toolbox.component.mjs +273 -0
  159. package/esm2022/lib/tool/toolbox/toolbox.module.mjs +24 -0
  160. package/{esm2020 → esm2022}/lib/widget/index.mjs +3 -3
  161. package/{esm2020 → esm2022}/lib/widget/shared/index.mjs +4 -4
  162. package/esm2022/lib/widget/shared/widget.interfaces.mjs +2 -0
  163. package/{esm2020 → esm2022}/lib/widget/shared/widget.mjs +4 -4
  164. package/esm2022/lib/widget/shared/widget.service.mjs +22 -0
  165. package/esm2022/lib/widget/widget-outlet/widget-outlet.component.mjs +124 -0
  166. package/esm2022/lib/widget/widget-outlet/widget-outlet.module.mjs +23 -0
  167. package/esm2022/lib/widget/widget.module.mjs +21 -0
  168. package/{esm2020 → esm2022}/lib/workspace/index.mjs +4 -4
  169. package/{esm2020 → esm2022}/lib/workspace/shared/index.mjs +4 -4
  170. package/esm2022/lib/workspace/shared/store.mjs +37 -0
  171. package/esm2022/lib/workspace/shared/workspace.interfaces.mjs +2 -0
  172. package/esm2022/lib/workspace/shared/workspace.mjs +143 -0
  173. package/esm2022/lib/workspace/workspace-selector/workspace-selector.component.mjs +58 -0
  174. package/esm2022/lib/workspace/workspace-selector/workspace-selector.module.mjs +23 -0
  175. package/esm2022/lib/workspace/workspace-widget-outlet/workspace-widget-outlet.component.mjs +94 -0
  176. package/esm2022/lib/workspace/workspace-widget-outlet/workspace-widget-outlet.module.mjs +23 -0
  177. package/esm2022/lib/workspace/workspace.module.mjs +20 -0
  178. package/esm2022/public_api.mjs +76 -0
  179. package/{fesm2020 → fesm2022}/igo2-common.mjs +9838 -9345
  180. package/fesm2022/igo2-common.mjs.map +1 -0
  181. package/index.d.ts +5 -5
  182. package/lib/action/action.module.d.ts +8 -8
  183. package/lib/action/action.theming.scss +5 -0
  184. package/lib/action/actionbar/actionbar-item.component.d.ts +78 -78
  185. package/lib/action/actionbar/actionbar-item.theming.scss +32 -0
  186. package/lib/action/actionbar/actionbar.component.d.ts +147 -146
  187. package/lib/action/actionbar/actionbar.module.d.ts +20 -20
  188. package/lib/action/actionbar/actionbar.theming.scss +22 -0
  189. package/lib/action/index.d.ts +2 -2
  190. package/lib/action/shared/action.enums.d.ts +5 -5
  191. package/lib/action/shared/action.interfaces.d.ts +17 -17
  192. package/lib/action/shared/index.d.ts +3 -3
  193. package/lib/action/shared/store.d.ts +8 -8
  194. package/lib/backdrop/backdrop.component.d.ts +9 -9
  195. package/lib/backdrop/backdrop.module.d.ts +10 -10
  196. package/lib/backdrop/index.d.ts +1 -1
  197. package/lib/badge-icon/badge-icon.directive.d.ts +36 -36
  198. package/lib/badge-icon/badge-icon.module.d.ts +11 -11
  199. package/lib/badge-icon/index.d.ts +1 -1
  200. package/lib/clickout/clickout.directive.d.ts +10 -10
  201. package/lib/clickout/clickout.module.d.ts +9 -9
  202. package/lib/clickout/index.d.ts +1 -1
  203. package/lib/clone/clone.module.d.ts +9 -9
  204. package/lib/clone/clone.pipe.d.ts +7 -7
  205. package/lib/clone/index.d.ts +1 -1
  206. package/lib/collapsible/collapse.directive.d.ts +19 -19
  207. package/lib/collapsible/collapsible.component.d.ts +13 -13
  208. package/lib/collapsible/collapsible.module.d.ts +12 -12
  209. package/lib/collapsible/collapsible.theming.scss +22 -0
  210. package/lib/collapsible/index.d.ts +2 -2
  211. package/lib/color-picker-form-field/color-picker-form-field.component.d.ts +26 -0
  212. package/lib/color-picker-form-field/color-picker-form-field.module.d.ts +10 -0
  213. package/lib/color-picker-form-field/index.d.ts +1 -0
  214. package/lib/confirm-dialog/confirm-dialog.component.d.ts +9 -9
  215. package/lib/confirm-dialog/confirm-dialog.module.d.ts +12 -12
  216. package/lib/confirm-dialog/confirm-dialog.service.d.ts +12 -12
  217. package/lib/confirm-dialog/index.d.ts +2 -2
  218. package/lib/context-menu/context-menu.directive.d.ts +21 -21
  219. package/lib/context-menu/context-menu.module.d.ts +10 -10
  220. package/lib/context-menu/index.d.ts +2 -2
  221. package/lib/context-menu/long-press.directive.d.ts +20 -20
  222. package/lib/custom-html/custom-html.component.d.ts +9 -9
  223. package/lib/custom-html/custom-html.module.d.ts +16 -16
  224. package/lib/custom-html/custom-html.pipe.d.ts +10 -10
  225. package/lib/custom-html/index.d.ts +2 -2
  226. package/lib/dom/dom.interfaces.d.ts +10 -10
  227. package/lib/dom/dom.module.d.ts +8 -8
  228. package/lib/dom/dom.service.d.ts +10 -10
  229. package/lib/dom/index.d.ts +2 -2
  230. package/lib/drag-drop/drag-drop.directive.d.ts +14 -14
  231. package/lib/drag-drop/drag-drop.module.d.ts +9 -9
  232. package/lib/drag-drop/index.d.ts +1 -1
  233. package/lib/dynamic-component/dynamic-component.module.d.ts +8 -8
  234. package/lib/dynamic-component/dynamic-outlet/dynamic-outlet.component.d.ts +70 -70
  235. package/lib/dynamic-component/dynamic-outlet/dynamic-outlet.module.d.ts +11 -11
  236. package/lib/dynamic-component/index.d.ts +2 -2
  237. package/lib/dynamic-component/shared/dynamic-component.d.ts +88 -88
  238. package/lib/dynamic-component/shared/dynamic-component.interfaces.d.ts +3 -3
  239. package/lib/dynamic-component/shared/dynamic-component.service.d.ts +18 -18
  240. package/lib/dynamic-component/shared/index.d.ts +3 -3
  241. package/lib/entity/entity-selector/entity-selector.component.d.ts +92 -92
  242. package/lib/entity/entity-selector/entity-selector.module.d.ts +13 -13
  243. package/lib/entity/entity-selector/entity-selector.theming.scss +21 -0
  244. package/lib/entity/entity-table/entity-table-row.directive.d.ts +69 -69
  245. package/lib/entity/entity-table/entity-table.component.d.ts +327 -333
  246. package/lib/entity/entity-table/entity-table.module.d.ts +29 -29
  247. package/lib/entity/entity-table/entity-table.theming.scss +34 -0
  248. package/lib/entity/entity-table-paginator/entity-table-paginator.component.d.ts +49 -49
  249. package/lib/entity/entity-table-paginator/entity-table-paginator.interface.d.ts +8 -8
  250. package/lib/entity/entity-table-paginator/entity-table-paginator.module.d.ts +11 -11
  251. package/lib/entity/entity-table-paginator/entity-table-paginator.theming.scss +21 -0
  252. package/lib/entity/entity.module.d.ts +10 -10
  253. package/lib/entity/entity.theming.scss +10 -0
  254. package/lib/entity/index.d.ts +5 -5
  255. package/lib/entity/shared/entity.enums.d.ts +23 -23
  256. package/lib/entity/shared/entity.interfaces.d.ts +95 -114
  257. package/lib/entity/shared/entity.utils.d.ts +49 -49
  258. package/lib/entity/shared/index.d.ts +10 -9
  259. package/lib/entity/shared/state.d.ts +108 -103
  260. package/lib/entity/shared/store-strategy.d.ts +38 -0
  261. package/lib/entity/shared/store.d.ts +147 -176
  262. package/lib/entity/shared/strategies/filter-custom-function.d.ts +51 -51
  263. package/lib/entity/shared/strategies/filter-selection.d.ts +48 -48
  264. package/lib/entity/shared/strategies/index.d.ts +3 -3
  265. package/lib/entity/shared/strategies/strategy.d.ts +56 -56
  266. package/lib/entity/shared/transaction.d.ts +180 -168
  267. package/lib/entity/shared/view.d.ts +193 -193
  268. package/lib/entity/shared/watcher.d.ts +72 -72
  269. package/lib/flexible/flexible.component.d.ts +41 -41
  270. package/lib/flexible/flexible.module.d.ts +9 -9
  271. package/lib/flexible/flexible.type.d.ts +2 -2
  272. package/lib/flexible/index.d.ts +2 -2
  273. package/lib/form/form/form.component.d.ts +53 -53
  274. package/lib/form/form/form.module.d.ts +12 -12
  275. package/lib/form/form-field/form-field-select.component.d.ts +48 -48
  276. package/lib/form/form-field/form-field-text.component.d.ts +41 -41
  277. package/lib/form/form-field/form-field-textarea.component.d.ts +41 -41
  278. package/lib/form/form-field/form-field.component.d.ts +29 -34
  279. package/lib/form/form-field/form-field.module.d.ts +21 -21
  280. package/lib/form/form-field/index.d.ts +4 -4
  281. package/lib/form/form-group/form-group.component.d.ts +49 -49
  282. package/lib/form/form-group/form-group.module.d.ts +14 -14
  283. package/lib/form/form.module.d.ts +13 -13
  284. package/lib/form/index.d.ts +4 -4
  285. package/lib/form/shared/form-field-component.d.ts +1 -1
  286. package/lib/form/shared/form-field.service.d.ts +19 -19
  287. package/lib/form/shared/form.interfaces.d.ts +61 -57
  288. package/lib/form/shared/form.service.d.ts +15 -15
  289. package/lib/form/shared/form.utils.d.ts +11 -11
  290. package/lib/form/shared/index.d.ts +5 -5
  291. package/lib/home-button/home-button.component.d.ts +9 -9
  292. package/lib/home-button/home-button.module.d.ts +15 -15
  293. package/lib/home-button/home-button.theming.scss +18 -0
  294. package/lib/home-button/index.d.ts +1 -1
  295. package/lib/image/image-error.directive.d.ts +11 -11
  296. package/lib/image/image.module.d.ts +10 -10
  297. package/lib/image/index.d.ts +2 -2
  298. package/lib/image/secure-image.pipe.d.ts +13 -13
  299. package/lib/interactive-tour/index.d.ts +4 -4
  300. package/lib/interactive-tour/interactive-tour.component.d.ts +30 -30
  301. package/lib/interactive-tour/interactive-tour.interface.d.ts +33 -32
  302. package/lib/interactive-tour/interactive-tour.loader.d.ts +18 -18
  303. package/lib/interactive-tour/interactive-tour.module.d.ts +12 -12
  304. package/lib/interactive-tour/interactive-tour.service.d.ts +29 -29
  305. package/lib/interactive-tour/interactive-tour.theming.scss +32 -0
  306. package/lib/json-dialog/index.d.ts +2 -2
  307. package/lib/json-dialog/json-dialog.component.d.ts +13 -13
  308. package/lib/json-dialog/json-dialog.module.d.ts +13 -13
  309. package/lib/json-dialog/json-dialog.service.d.ts +10 -10
  310. package/lib/keyvalue/index.d.ts +1 -1
  311. package/lib/keyvalue/keyvalue.module.d.ts +9 -9
  312. package/lib/keyvalue/keyvalue.pipe.d.ts +7 -7
  313. package/lib/list/index.d.ts +2 -2
  314. package/lib/list/list-item.directive.d.ts +43 -43
  315. package/lib/list/list.component.d.ts +51 -51
  316. package/lib/list/list.module.d.ts +14 -14
  317. package/lib/list/list.theming.scss +40 -0
  318. package/lib/panel/index.d.ts +1 -1
  319. package/lib/panel/panel.component.d.ts +10 -10
  320. package/lib/panel/panel.module.d.ts +8 -8
  321. package/lib/panel/panel.theming.scss +30 -0
  322. package/lib/sidenav/index.d.ts +1 -1
  323. package/lib/sidenav/sidenav-shim.directive.d.ts +20 -20
  324. package/lib/sidenav/sidenav.module.d.ts +9 -9
  325. package/lib/spinner/index.d.ts +2 -2
  326. package/lib/spinner/spinner-activity.directive.d.ts +32 -32
  327. package/lib/spinner/spinner.component.d.ts +12 -12
  328. package/lib/spinner/spinner.module.d.ts +10 -10
  329. package/lib/stop-propagation/index.d.ts +2 -2
  330. package/lib/stop-propagation/stop-drop-propagation.directive.d.ts +6 -6
  331. package/lib/stop-propagation/stop-propagation.directive.d.ts +6 -6
  332. package/lib/stop-propagation/stop-propagation.module.d.ts +10 -10
  333. package/lib/table/index.d.ts +5 -5
  334. package/lib/table/table-action-color.enum.d.ts +5 -5
  335. package/lib/table/table-database.d.ts +10 -10
  336. package/lib/table/table-datasource.d.ts +18 -17
  337. package/lib/table/table-model.interface.d.ts +28 -28
  338. package/lib/table/table.component.d.ts +40 -40
  339. package/lib/table/table.module.d.ts +20 -20
  340. package/lib/tool/index.d.ts +2 -2
  341. package/lib/tool/shared/index.d.ts +5 -5
  342. package/lib/tool/shared/tool-component.d.ts +2 -2
  343. package/lib/tool/shared/tool.interface.d.ts +18 -18
  344. package/lib/tool/shared/tool.service.d.ts +30 -30
  345. package/lib/tool/shared/toolbox.d.ts +95 -95
  346. package/lib/tool/shared/toolbox.enums.d.ts +5 -5
  347. package/lib/tool/tool.module.d.ts +10 -10
  348. package/lib/tool/tool.theming.scss +5 -0
  349. package/lib/tool/toolbox/toolbox.animation.d.ts +2 -2
  350. package/lib/tool/toolbox/toolbox.component.d.ts +128 -127
  351. package/lib/tool/toolbox/toolbox.module.d.ts +13 -13
  352. package/lib/tool/toolbox/toolbox.theming.scss +105 -0
  353. package/lib/widget/index.d.ts +2 -2
  354. package/lib/widget/shared/index.d.ts +3 -3
  355. package/lib/widget/shared/widget.d.ts +4 -4
  356. package/lib/widget/shared/widget.interfaces.d.ts +12 -12
  357. package/lib/widget/shared/widget.service.d.ts +10 -10
  358. package/lib/widget/widget-outlet/widget-outlet.component.d.ts +71 -71
  359. package/lib/widget/widget-outlet/widget-outlet.module.d.ts +12 -12
  360. package/lib/widget/widget.module.d.ts +8 -8
  361. package/lib/workspace/index.d.ts +3 -3
  362. package/lib/workspace/shared/index.d.ts +3 -3
  363. package/lib/workspace/shared/store.d.ts +20 -20
  364. package/lib/workspace/shared/workspace.d.ts +108 -108
  365. package/lib/workspace/shared/workspace.interfaces.d.ts +11 -11
  366. package/lib/workspace/workspace-selector/workspace-selector.component.d.ts +39 -39
  367. package/lib/workspace/workspace-selector/workspace-selector.module.d.ts +12 -12
  368. package/lib/workspace/workspace-widget-outlet/workspace-widget-outlet.component.d.ts +57 -57
  369. package/lib/workspace/workspace-widget-outlet/workspace-widget-outlet.module.d.ts +12 -12
  370. package/lib/workspace/workspace.module.d.ts +9 -9
  371. package/locale/en.common.json +43 -0
  372. package/locale/fr.common.json +43 -0
  373. package/package.json +31 -28
  374. package/public_api.d.ts +72 -70
  375. package/style/partial/common-utils.scss +9 -0
  376. package/style/partial/common.variables.scss +8 -8
  377. package/style/style.css +204 -0
  378. package/esm2020/lib/action/action.module.mjs +0 -27
  379. package/esm2020/lib/action/actionbar/actionbar-item.component.mjs +0 -252
  380. package/esm2020/lib/action/actionbar/actionbar.component.mjs +0 -370
  381. package/esm2020/lib/action/shared/action.interfaces.mjs +0 -2
  382. package/esm2020/lib/backdrop/backdrop.component.mjs +0 -26
  383. package/esm2020/lib/badge-icon/badge-icon.directive.mjs +0 -141
  384. package/esm2020/lib/clickout/clickout.directive.mjs +0 -32
  385. package/esm2020/lib/clone/clone.pipe.mjs +0 -24
  386. package/esm2020/lib/collapsible/collapse.directive.mjs +0 -55
  387. package/esm2020/lib/collapsible/collapsible.component.mjs +0 -57
  388. package/esm2020/lib/confirm-dialog/confirm-dialog.component.mjs +0 -44
  389. package/esm2020/lib/confirm-dialog/confirm-dialog.service.mjs +0 -24
  390. package/esm2020/lib/context-menu/context-menu.directive.mjs +0 -103
  391. package/esm2020/lib/context-menu/long-press.directive.mjs +0 -67
  392. package/esm2020/lib/custom-html/custom-html.component.mjs +0 -28
  393. package/esm2020/lib/custom-html/custom-html.pipe.mjs +0 -18
  394. package/esm2020/lib/dom/dom.service.mjs +0 -30
  395. package/esm2020/lib/drag-drop/drag-drop.directive.mjs +0 -88
  396. package/esm2020/lib/dynamic-component/dynamic-component.module.mjs +0 -31
  397. package/esm2020/lib/dynamic-component/dynamic-outlet/dynamic-outlet.component.mjs +0 -122
  398. package/esm2020/lib/dynamic-component/dynamic-outlet/dynamic-outlet.module.mjs +0 -28
  399. package/esm2020/lib/dynamic-component/shared/dynamic-component.mjs +0 -174
  400. package/esm2020/lib/dynamic-component/shared/dynamic-component.service.mjs +0 -29
  401. package/esm2020/lib/entity/entity-selector/entity-selector.component.mjs +0 -194
  402. package/esm2020/lib/entity/entity-selector/entity-selector.module.mjs +0 -32
  403. package/esm2020/lib/entity/entity-table/entity-table-row.directive.mjs +0 -137
  404. package/esm2020/lib/entity/entity-table/entity-table.component.mjs +0 -1376
  405. package/esm2020/lib/entity/entity-table-paginator/entity-table-paginator.component.mjs +0 -132
  406. package/esm2020/lib/entity/entity-table-paginator/entity-table-paginator.interface.mjs +0 -2
  407. package/esm2020/lib/entity/entity-table-paginator/entity-table-paginator.module.mjs +0 -28
  408. package/esm2020/lib/entity/shared/entity.interfaces.mjs +0 -2
  409. package/esm2020/lib/entity/shared/entity.utils.mjs +0 -67
  410. package/esm2020/lib/entity/shared/index.mjs +0 -10
  411. package/esm2020/lib/entity/shared/state.mjs +0 -191
  412. package/esm2020/lib/entity/shared/store.mjs +0 -288
  413. package/esm2020/lib/entity/shared/strategies/filter-custom-function.mjs +0 -79
  414. package/esm2020/lib/entity/shared/strategies/filter-selection.mjs +0 -84
  415. package/esm2020/lib/entity/shared/strategies/strategy.mjs +0 -75
  416. package/esm2020/lib/entity/shared/transaction.mjs +0 -316
  417. package/esm2020/lib/entity/shared/view.mjs +0 -315
  418. package/esm2020/lib/entity/shared/watcher.mjs +0 -120
  419. package/esm2020/lib/flexible/flexible.component.mjs +0 -148
  420. package/esm2020/lib/form/form/form.component.mjs +0 -117
  421. package/esm2020/lib/form/form/form.module.mjs +0 -40
  422. package/esm2020/lib/form/form-field/form-field-select.component.mjs +0 -127
  423. package/esm2020/lib/form/form-field/form-field-text.component.mjs +0 -104
  424. package/esm2020/lib/form/form-field/form-field-textarea.component.mjs +0 -105
  425. package/esm2020/lib/form/form-field/form-field.component.mjs +0 -72
  426. package/esm2020/lib/form/form-group/form-group.component.mjs +0 -105
  427. package/esm2020/lib/form/form-group/form-group.module.mjs +0 -40
  428. package/esm2020/lib/form/form.module.mjs +0 -49
  429. package/esm2020/lib/form/shared/form-field.service.mjs +0 -29
  430. package/esm2020/lib/form/shared/form.interfaces.mjs +0 -2
  431. package/esm2020/lib/form/shared/form.service.mjs +0 -81
  432. package/esm2020/lib/form/shared/form.utils.mjs +0 -40
  433. package/esm2020/lib/home-button/home-button.component.mjs +0 -31
  434. package/esm2020/lib/image/image-error.directive.mjs +0 -35
  435. package/esm2020/lib/image/secure-image.pipe.mjs +0 -59
  436. package/esm2020/lib/interactive-tour/interactive-tour.component.mjs +0 -135
  437. package/esm2020/lib/interactive-tour/interactive-tour.interface.mjs +0 -2
  438. package/esm2020/lib/interactive-tour/interactive-tour.loader.mjs +0 -44
  439. package/esm2020/lib/interactive-tour/interactive-tour.service.mjs +0 -285
  440. package/esm2020/lib/json-dialog/json-dialog.component.mjs +0 -109
  441. package/esm2020/lib/list/list-item.directive.mjs +0 -165
  442. package/esm2020/lib/list/list.component.mjs +0 -262
  443. package/esm2020/lib/panel/panel.component.mjs +0 -59
  444. package/esm2020/lib/sidenav/sidenav-shim.directive.mjs +0 -55
  445. package/esm2020/lib/spinner/spinner-activity.directive.mjs +0 -47
  446. package/esm2020/lib/spinner/spinner.component.mjs +0 -35
  447. package/esm2020/lib/table/table-database.mjs +0 -28
  448. package/esm2020/lib/table/table-datasource.mjs +0 -61
  449. package/esm2020/lib/table/table-model.interface.mjs +0 -2
  450. package/esm2020/lib/table/table.component.mjs +0 -297
  451. package/esm2020/lib/tool/shared/tool-component.mjs +0 -9
  452. package/esm2020/lib/tool/shared/tool.interface.mjs +0 -2
  453. package/esm2020/lib/tool/shared/tool.service.mjs +0 -43
  454. package/esm2020/lib/tool/shared/toolbox.mjs +0 -179
  455. package/esm2020/lib/tool/tool.module.mjs +0 -32
  456. package/esm2020/lib/tool/toolbox/toolbox.component.mjs +0 -255
  457. package/esm2020/lib/tool/toolbox/toolbox.module.mjs +0 -36
  458. package/esm2020/lib/widget/shared/widget.interfaces.mjs +0 -2
  459. package/esm2020/lib/widget/shared/widget.service.mjs +0 -20
  460. package/esm2020/lib/widget/widget-outlet/widget-outlet.component.mjs +0 -116
  461. package/esm2020/lib/widget/widget-outlet/widget-outlet.module.mjs +0 -32
  462. package/esm2020/lib/widget/widget.module.mjs +0 -32
  463. package/esm2020/lib/workspace/shared/store.mjs +0 -40
  464. package/esm2020/lib/workspace/shared/workspace.interfaces.mjs +0 -2
  465. package/esm2020/lib/workspace/shared/workspace.mjs +0 -117
  466. package/esm2020/lib/workspace/workspace-selector/workspace-selector.component.mjs +0 -51
  467. package/esm2020/lib/workspace/workspace-selector/workspace-selector.module.mjs +0 -32
  468. package/esm2020/lib/workspace/workspace-widget-outlet/workspace-widget-outlet.component.mjs +0 -88
  469. package/esm2020/lib/workspace/workspace-widget-outlet/workspace-widget-outlet.module.mjs +0 -32
  470. package/esm2020/lib/workspace/workspace.module.mjs +0 -27
  471. package/esm2020/public_api.mjs +0 -74
  472. package/fesm2015/igo2-common.mjs +0 -10329
  473. package/fesm2015/igo2-common.mjs.map +0 -1
  474. package/fesm2020/igo2-common.mjs.map +0 -1
  475. package/style/common.theming.scss +0 -12
  476. package/style/partial/action.scss +0 -18
@@ -0,0 +1,73 @@
1
+ import { t } from 'typy';
2
+ /**
3
+ * Get an entity's named property. Nested properties are supported
4
+ * with the dotted notation. (i.e 'author.name')
5
+ *
6
+ * Note: this method is a 'best attempt' at getting an entity's property.
7
+ * It fits the most common cases but you might need to explicitely define
8
+ * a property getter when using an EntityStore, for example.
9
+ * @param entity Entity
10
+ * @param property Property name
11
+ * @returns Property value
12
+ */
13
+ export function getEntityProperty(entity, property) {
14
+ return t(entity, property).safeObject;
15
+ }
16
+ /**
17
+ * Get an entity's id. An entity's id can be one of:
18
+ * 'entity.meta.id', 'entity.meta.idProperty' or 'entity.id'.
19
+ *
20
+ * Note: See the note in the 'getEntityProperty' documentation.
21
+ * @param entity Entity
22
+ * @returns Entity id
23
+ */
24
+ export function getEntityId(entity) {
25
+ const meta = entity.meta || {};
26
+ return meta.id ? meta.id : getEntityProperty(entity, meta.idProperty || 'id');
27
+ }
28
+ /**
29
+ * Get an entity's title. An entity's title can be one of:
30
+ * 'entity.meta.title', 'entity.meta.titleProperty' or 'entity.title'.
31
+ * @param entity Entity
32
+ * @returns Entity title
33
+ */
34
+ export function getEntityTitle(entity) {
35
+ const meta = entity.meta || {};
36
+ return meta.title
37
+ ? meta.title
38
+ : getEntityProperty(entity, meta.titleProperty || 'title');
39
+ }
40
+ /**
41
+ * Get an entity's HTML title. An entity's HTML title can be one of:
42
+ * 'entity.meta.titleHtml', 'entity.meta.titleHtmlProperty' or 'entity.titleHtml'.
43
+ * @param entity Entity
44
+ * @returns Entity HTML title
45
+ */
46
+ export function getEntityTitleHtml(entity) {
47
+ const meta = entity.meta || {};
48
+ return meta.titleHtml
49
+ ? meta.titleHtml
50
+ : getEntityProperty(entity, meta.titleHtmlProperty || 'titleHtml');
51
+ }
52
+ /**
53
+ * Get an entity's icon. An entity's icon can be one of:
54
+ * 'entity.meta.icon', 'entity.meta.iconProperty' or 'entity.icon'.
55
+ * @param entity Entity
56
+ * @returns Entity icon
57
+ */
58
+ export function getEntityIcon(entity) {
59
+ const meta = entity.meta || {};
60
+ return meta.icon
61
+ ? meta.icon
62
+ : getEntityProperty(entity, meta.iconProperty || 'icon');
63
+ }
64
+ /**
65
+ * Get an entity's revision.
66
+ * @param entity Entity
67
+ * @returns Entity revision
68
+ */
69
+ export function getEntityRevision(entity) {
70
+ const meta = entity.meta || {};
71
+ return meta.revision || 0;
72
+ }
73
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LnV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tbW9uL3NyYy9saWIvZW50aXR5L3NoYXJlZC9lbnRpdHkudXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUl6Qjs7Ozs7Ozs7OztHQVVHO0FBQ0gsTUFBTSxVQUFVLGlCQUFpQixDQUFDLE1BQWMsRUFBRSxRQUFnQjtJQUNoRSxPQUFPLENBQUMsQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLENBQUMsVUFBVSxDQUFDO0FBQ3hDLENBQUM7QUFFRDs7Ozs7OztHQU9HO0FBQ0gsTUFBTSxVQUFVLFdBQVcsQ0FBQyxNQUFjO0lBQ3hDLE1BQU0sSUFBSSxHQUFJLE1BQWMsQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDO0lBQ3hDLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxVQUFVLElBQUksSUFBSSxDQUFDLENBQUM7QUFDaEYsQ0FBQztBQUVEOzs7OztHQUtHO0FBQ0gsTUFBTSxVQUFVLGNBQWMsQ0FBQyxNQUFjO0lBQzNDLE1BQU0sSUFBSSxHQUFJLE1BQWMsQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDO0lBQ3hDLE9BQU8sSUFBSSxDQUFDLEtBQUs7UUFDZixDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUs7UUFDWixDQUFDLENBQUMsaUJBQWlCLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxhQUFhLElBQUksT0FBTyxDQUFDLENBQUM7QUFDL0QsQ0FBQztBQUVEOzs7OztHQUtHO0FBQ0gsTUFBTSxVQUFVLGtCQUFrQixDQUFDLE1BQWM7SUFDL0MsTUFBTSxJQUFJLEdBQUksTUFBYyxDQUFDLElBQUksSUFBSSxFQUFFLENBQUM7SUFDeEMsT0FBTyxJQUFJLENBQUMsU0FBUztRQUNuQixDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVM7UUFDaEIsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsaUJBQWlCLElBQUksV0FBVyxDQUFDLENBQUM7QUFDdkUsQ0FBQztBQUVEOzs7OztHQUtHO0FBQ0gsTUFBTSxVQUFVLGFBQWEsQ0FBQyxNQUFjO0lBQzFDLE1BQU0sSUFBSSxHQUFJLE1BQWMsQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDO0lBQ3hDLE9BQU8sSUFBSSxDQUFDLElBQUk7UUFDZCxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUk7UUFDWCxDQUFDLENBQUMsaUJBQWlCLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxZQUFZLElBQUksTUFBTSxDQUFDLENBQUM7QUFDN0QsQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUsaUJBQWlCLENBQUMsTUFBYztJQUM5QyxNQUFNLElBQUksR0FBSSxNQUFjLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQztJQUN4QyxPQUFPLElBQUksQ0FBQyxRQUFRLElBQUksQ0FBQyxDQUFDO0FBQzVCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB0IH0gZnJvbSAndHlweSc7XG5cbmltcG9ydCB7IEVudGl0eUtleSB9IGZyb20gJy4vZW50aXR5LmludGVyZmFjZXMnO1xuXG4vKipcbiAqIEdldCBhbiBlbnRpdHkncyBuYW1lZCBwcm9wZXJ0eS4gTmVzdGVkIHByb3BlcnRpZXMgYXJlIHN1cHBvcnRlZFxuICogd2l0aCB0aGUgZG90dGVkIG5vdGF0aW9uLiAoaS5lICdhdXRob3IubmFtZScpXG4gKlxuICogTm90ZTogdGhpcyBtZXRob2QgaXMgYSAnYmVzdCBhdHRlbXB0JyBhdCBnZXR0aW5nIGFuIGVudGl0eSdzIHByb3BlcnR5LlxuICogSXQgZml0cyB0aGUgbW9zdCBjb21tb24gY2FzZXMgYnV0IHlvdSBtaWdodCBuZWVkIHRvIGV4cGxpY2l0ZWx5IGRlZmluZVxuICogYSBwcm9wZXJ0eSBnZXR0ZXIgd2hlbiB1c2luZyBhbiBFbnRpdHlTdG9yZSwgZm9yIGV4YW1wbGUuXG4gKiBAcGFyYW0gZW50aXR5IEVudGl0eVxuICogQHBhcmFtIHByb3BlcnR5IFByb3BlcnR5IG5hbWVcbiAqIEByZXR1cm5zIFByb3BlcnR5IHZhbHVlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRFbnRpdHlQcm9wZXJ0eShlbnRpdHk6IG9iamVjdCwgcHJvcGVydHk6IHN0cmluZyk6IGFueSB7XG4gIHJldHVybiB0KGVudGl0eSwgcHJvcGVydHkpLnNhZmVPYmplY3Q7XG59XG5cbi8qKlxuICogR2V0IGFuIGVudGl0eSdzIGlkLiBBbiBlbnRpdHkncyBpZCBjYW4gYmUgb25lIG9mOlxuICogJ2VudGl0eS5tZXRhLmlkJywgJ2VudGl0eS5tZXRhLmlkUHJvcGVydHknIG9yICdlbnRpdHkuaWQnLlxuICpcbiAqIE5vdGU6IFNlZSB0aGUgbm90ZSBpbiB0aGUgJ2dldEVudGl0eVByb3BlcnR5JyBkb2N1bWVudGF0aW9uLlxuICogQHBhcmFtIGVudGl0eSBFbnRpdHlcbiAqIEByZXR1cm5zIEVudGl0eSBpZFxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0RW50aXR5SWQoZW50aXR5OiBvYmplY3QpOiBFbnRpdHlLZXkge1xuICBjb25zdCBtZXRhID0gKGVudGl0eSBhcyBhbnkpLm1ldGEgfHwge307XG4gIHJldHVybiBtZXRhLmlkID8gbWV0YS5pZCA6IGdldEVudGl0eVByb3BlcnR5KGVudGl0eSwgbWV0YS5pZFByb3BlcnR5IHx8ICdpZCcpO1xufVxuXG4vKipcbiAqIEdldCBhbiBlbnRpdHkncyB0aXRsZS4gQW4gZW50aXR5J3MgdGl0bGUgY2FuIGJlIG9uZSBvZjpcbiAqICdlbnRpdHkubWV0YS50aXRsZScsICdlbnRpdHkubWV0YS50aXRsZVByb3BlcnR5JyBvciAnZW50aXR5LnRpdGxlJy5cbiAqIEBwYXJhbSBlbnRpdHkgRW50aXR5XG4gKiBAcmV0dXJucyBFbnRpdHkgdGl0bGVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEVudGl0eVRpdGxlKGVudGl0eTogb2JqZWN0KTogc3RyaW5nIHtcbiAgY29uc3QgbWV0YSA9IChlbnRpdHkgYXMgYW55KS5tZXRhIHx8IHt9O1xuICByZXR1cm4gbWV0YS50aXRsZVxuICAgID8gbWV0YS50aXRsZVxuICAgIDogZ2V0RW50aXR5UHJvcGVydHkoZW50aXR5LCBtZXRhLnRpdGxlUHJvcGVydHkgfHwgJ3RpdGxlJyk7XG59XG5cbi8qKlxuICogR2V0IGFuIGVudGl0eSdzIEhUTUwgdGl0bGUuIEFuIGVudGl0eSdzIEhUTUwgdGl0bGUgY2FuIGJlIG9uZSBvZjpcbiAqICdlbnRpdHkubWV0YS50aXRsZUh0bWwnLCAnZW50aXR5Lm1ldGEudGl0bGVIdG1sUHJvcGVydHknIG9yICdlbnRpdHkudGl0bGVIdG1sJy5cbiAqIEBwYXJhbSBlbnRpdHkgRW50aXR5XG4gKiBAcmV0dXJucyBFbnRpdHkgSFRNTCB0aXRsZVxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0RW50aXR5VGl0bGVIdG1sKGVudGl0eTogb2JqZWN0KTogc3RyaW5nIHtcbiAgY29uc3QgbWV0YSA9IChlbnRpdHkgYXMgYW55KS5tZXRhIHx8IHt9O1xuICByZXR1cm4gbWV0YS50aXRsZUh0bWxcbiAgICA/IG1ldGEudGl0bGVIdG1sXG4gICAgOiBnZXRFbnRpdHlQcm9wZXJ0eShlbnRpdHksIG1ldGEudGl0bGVIdG1sUHJvcGVydHkgfHwgJ3RpdGxlSHRtbCcpO1xufVxuXG4vKipcbiAqIEdldCBhbiBlbnRpdHkncyBpY29uLiBBbiBlbnRpdHkncyBpY29uIGNhbiBiZSBvbmUgb2Y6XG4gKiAnZW50aXR5Lm1ldGEuaWNvbicsICdlbnRpdHkubWV0YS5pY29uUHJvcGVydHknIG9yICdlbnRpdHkuaWNvbicuXG4gKiBAcGFyYW0gZW50aXR5IEVudGl0eVxuICogQHJldHVybnMgRW50aXR5IGljb25cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEVudGl0eUljb24oZW50aXR5OiBvYmplY3QpOiBzdHJpbmcge1xuICBjb25zdCBtZXRhID0gKGVudGl0eSBhcyBhbnkpLm1ldGEgfHwge307XG4gIHJldHVybiBtZXRhLmljb25cbiAgICA/IG1ldGEuaWNvblxuICAgIDogZ2V0RW50aXR5UHJvcGVydHkoZW50aXR5LCBtZXRhLmljb25Qcm9wZXJ0eSB8fCAnaWNvbicpO1xufVxuXG4vKipcbiAqIEdldCBhbiBlbnRpdHkncyByZXZpc2lvbi5cbiAqIEBwYXJhbSBlbnRpdHkgRW50aXR5XG4gKiBAcmV0dXJucyBFbnRpdHkgcmV2aXNpb25cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEVudGl0eVJldmlzaW9uKGVudGl0eTogb2JqZWN0KTogbnVtYmVyIHtcbiAgY29uc3QgbWV0YSA9IChlbnRpdHkgYXMgYW55KS5tZXRhIHx8IHt9O1xuICByZXR1cm4gbWV0YS5yZXZpc2lvbiB8fCAwO1xufVxuIl19
@@ -0,0 +1,11 @@
1
+ export * from './entity.enums';
2
+ export * from './entity.interfaces';
3
+ export * from './entity.utils';
4
+ export * from './store';
5
+ export * from './store-strategy';
6
+ export * from './state';
7
+ export * from './watcher';
8
+ export * from './transaction';
9
+ export * from './view';
10
+ export * from './strategies';
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vc3JjL2xpYi9lbnRpdHkvc2hhcmVkL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsU0FBUyxDQUFDO0FBQ3hCLGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYyxTQUFTLENBQUM7QUFDeEIsY0FBYyxXQUFXLENBQUM7QUFDMUIsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYyxRQUFRLENBQUM7QUFFdkIsY0FBYyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2VudGl0eS5lbnVtcyc7XG5leHBvcnQgKiBmcm9tICcuL2VudGl0eS5pbnRlcmZhY2VzJztcbmV4cG9ydCAqIGZyb20gJy4vZW50aXR5LnV0aWxzJztcbmV4cG9ydCAqIGZyb20gJy4vc3RvcmUnO1xuZXhwb3J0ICogZnJvbSAnLi9zdG9yZS1zdHJhdGVneSc7XG5leHBvcnQgKiBmcm9tICcuL3N0YXRlJztcbmV4cG9ydCAqIGZyb20gJy4vd2F0Y2hlcic7XG5leHBvcnQgKiBmcm9tICcuL3RyYW5zYWN0aW9uJztcbmV4cG9ydCAqIGZyb20gJy4vdmlldyc7XG5cbmV4cG9ydCAqIGZyb20gJy4vc3RyYXRlZ2llcyc7XG4iXX0=
@@ -0,0 +1,194 @@
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vc3JjL2xpYi9lbnRpdHkvc2hhcmVkL3N0YXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFHckMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBTzdDOztHQUVHO0FBQ0gsTUFBTSxPQUFPLGtCQUFrQjtJQW1CVDtJQWZwQjs7T0FFRztJQUNNLEtBQUssR0FBRyxJQUFJLEdBQUcsRUFBZ0IsQ0FBQztJQUV6Qzs7T0FFRztJQUNNLE9BQU8sR0FBRyxJQUFJLGFBQWEsQ0FBTyxDQUFDLENBQUMsQ0FBQztJQUU5Qzs7T0FFRztJQUNNLE1BQU0sQ0FBbUI7SUFFbEMsWUFBb0IsVUFBd0MsRUFBRTtRQUExQyxZQUFPLEdBQVAsT0FBTyxDQUFtQztRQUM1RCxJQUFJLENBQUMsTUFBTSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQztRQUU1RCxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDZCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxLQUFLO1FBQ0gsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxDQUFDLEVBQUU7WUFDdkIsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNuQixJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7U0FDYjtJQUNILENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsR0FBRyxDQUFDLE1BQVM7UUFDWCxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBTSxDQUFDO0lBQzFELENBQUM7SUFFRDs7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QVMsRUFBRSxLQUFLLENBQUMsR0FBRyxLQUFLLENBQUM7WUFDakMsSUFBSSxPQUFPLEtBQUssS0FBSyxPQUFPLElBQUksRUFBRTtnQkFDL0IsY0FBeUIsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQzthQUNoRDtZQUNELE9BQU8sY0FBYyxDQUFDO1FBQ3hCLENBQUMsRUFDRCxFQUFFLENBQ0gsQ0FBQztJQUNKLENBQUM7SUFFRDs7O09BR0c7SUFDSyxVQUFVO1FBQ2hCLE1BQU0sU0FBUyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFDaEUsT0FBTyxJQUFJLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztJQUNsRSxDQUFDO0lBRUQ7O09BRUc7SUFDSyxJQUFJO1FBQ1YsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN0QixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSZXBsYXlTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IEVudGl0eUtleSwgRW50aXR5U3RhdGUgfSBmcm9tICcuL2VudGl0eS5pbnRlcmZhY2VzJztcbmltcG9ydCB7IGdldEVudGl0eUlkIH0gZnJvbSAnLi9lbnRpdHkudXRpbHMnO1xuXG5pbnRlcmZhY2UgRW50aXR5U3RhdGVNYW5hZ2VyT3B0aW9uczxFIGV4dGVuZHMgb2JqZWN0PiB7XG4gIGdldEtleT86IChlbnRpdHk6IG9iamVjdCkgPT4gRW50aXR5S2V5O1xuICBpbmRleD86IE1hcDxFbnRpdHlLZXksIEU+O1xufVxuXG4vKipcbiAqIFRoaXMgY2xhc3MgaXMgdXNlZCB0byB0cmFjayBhIHN0b3JlJ3MgZW50aXRpZXMgc3RhdGVcbiAqL1xuZXhwb3J0IGNsYXNzIEVudGl0eVN0YXRlTWFuYWdlcjxcbiAgRSBleHRlbmRzIG9iamVjdCxcbiAgUyBleHRlbmRzIEVudGl0eVN0YXRlID0gRW50aXR5U3RhdGVcbj4ge1xuICAvKipcbiAgICogU3RhdGUgaW5kZXhcbiAgICovXG4gIHJlYWRvbmx5IGluZGV4ID0gbmV3IE1hcDxFbnRpdHlLZXksIFM+KCk7XG5cbiAgLyoqXG4gICAqIENoYW5nZSBlbWl0dGVyXG4gICAqL1xuICByZWFkb25seSBjaGFuZ2UkID0gbmV3IFJlcGxheVN1YmplY3Q8dm9pZD4oMSk7XG5cbiAgLyoqXG4gICAqIE1ldGhvZCB0byBnZXQgYW4gZW50aXR5J3MgaWRcbiAgICovXG4gIHJlYWRvbmx5IGdldEtleTogKEUpID0+IEVudGl0eUtleTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIG9wdGlvbnM6IEVudGl0eVN0YXRlTWFuYWdlck9wdGlvbnM8RT4gPSB7fSkge1xuICAgIHRoaXMuZ2V0S2V5ID0gb3B0aW9ucy5nZXRLZXkgPyBvcHRpb25zLmdldEtleSA6IGdldEVudGl0eUlkO1xuXG4gICAgdGhpcy5uZXh0KCk7XG4gIH1cblxuICAvKipcbiAgICogQ2xlYXIgc3RhdGVcbiAgICovXG4gIGNsZWFyKCkge1xuICAgIGlmICh0aGlzLmluZGV4LnNpemUgPiAwKSB7XG4gICAgICB0aGlzLmluZGV4LmNsZWFyKCk7XG4gICAgICB0aGlzLm5leHQoKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogR2V0IGFuIGVudGl0eSdzIHN0YXRlXG4gICAqIEBwYXJhbSBlbnRpdHkgRW50aXR5XG4gICAqIEByZXR1cm5zIFN0YXRlXG4gICAqL1xuICBnZXQoZW50aXR5OiBFKTogUyB7XG4gICAgcmV0dXJuICh0aGlzLmluZGV4LmdldCh0aGlzLmdldEtleShlbnRpdHkpKSB8fCB7fSkgYXMgUztcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgYW4gZW50aXR5J3Mgc3RhdGVcbiAgICogQHBhcmFtIGVudGl0eSBFbnRpdHlcbiAgICogQHBhcmFtIHN0YXRlIFN0YXRlXG4gICAqL1xuICBzZXQoZW50aXR5OiBFLCBzdGF0ZTogUykge1xuICAgIHRoaXMuc2V0TWFueShbZW50aXR5XSwgc3RhdGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCBtYW55IGVudGl0aWUncyBzdGF0ZVxuICAgKiBAcGFyYW0gZW50aXRpZSBFbnRpdGllc1xuICAgKiBAcGFyYW0gc3RhdGUgU3RhdGVcbiAgICovXG4gIHNldE1hbnkoZW50aXRpZXM6IEVbXSwgc3RhdGU6IFMpIHtcbiAgICBlbnRpdGllcy5mb3JFYWNoKChlbnRpdHk6IEUpID0+IHtcbiAgICAgIHRoaXMuaW5kZXguc2V0KHRoaXMuZ2V0S2V5KGVudGl0eSksIE9iamVjdC5hc3NpZ24oe30sIHN0YXRlKSk7XG4gICAgfSk7XG4gICAgdGhpcy5uZXh0KCk7XG4gIH1cblxuICAvKipcbiAgICogU2V0IHN0YXRlIG9mIGFsbCBlbnRpdGllcyB0aGF0IGFscmVhZHkgaGF2ZSBhIHN0YXRlLiBUaGlzIGlzIG5vdFxuICAgKiB0aGUgc2FtZSBhcyBzZXR0aW5nIHRoZSBzdGF0ZSBvZiBhbGwgdGhlIHN0b3JlJ3MgZW50aXRpZXMuXG4gICAqIEBwYXJhbSBzdGF0ZSBTdGF0ZVxuICAgKi9cbiAgc2V0QWxsKHN0YXRlOiBTKSB7XG4gICAgQXJyYXkuZnJvbSh0aGlzLmluZGV4LmtleXMoKSkuZm9yRWFjaCgoa2V5OiBFbnRpdHlLZXkpID0+IHtcbiAgICAgIHRoaXMuaW5kZXguc2V0KGtleSwgT2JqZWN0LmFzc2lnbih7fSwgc3RhdGUpKTtcbiAgICB9KTtcbiAgICB0aGlzLm5leHQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGUgYW4gZW50aXR5J3Mgc3RhdGVcbiAgICogQHBhcmFtIGVudGl0eSBFbnRpdHlcbiAgICogQHBhcmFtIGNoYW5nZXMgU3RhdGUgY2hhbmdlc1xuICAgKi9cbiAgdXBkYXRlKGVudGl0eTogRSwgY2hhbmdlczogUGFydGlhbDxTPiwgZXhjbHVzaXZlID0gZmFsc2UpIHtcbiAgICB0aGlzLnVwZGF0ZU1hbnkoW2VudGl0eV0sIGNoYW5nZXMsIGV4Y2x1c2l2ZSk7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlIG1hbnkgZW50aXRpZSdzIHN0YXRlXG4gICAqIEBwYXJhbSBlbnRpdGllIEVudGl0aWVzXG4gICAqIEBwYXJhbSBjaGFuZ2VzIFN0YXRlIGNoYW5nZXNcbiAgICovXG4gIHVwZGF0ZU1hbnkoZW50aXRpZXM6IEVbXSwgY2hhbmdlczogUGFydGlhbDxTPiwgZXhjbHVzaXZlID0gZmFsc2UpIHtcbiAgICBpZiAoZXhjbHVzaXZlID09PSB0cnVlKSB7XG4gICAgICByZXR1cm4gdGhpcy51cGRhdGVNYW55RXhjbHVzaXZlKGVudGl0aWVzLCBjaGFuZ2VzKTtcbiAgICB9XG5cbiAgICBlbnRpdGllcy5mb3JFYWNoKChlbnRpdHk6IEUpID0+IHtcbiAgICAgIGNvbnN0IHN0YXRlID0gT2JqZWN0LmFzc2lnbih7fSwgdGhpcy5nZXQoZW50aXR5KSwgY2hhbmdlcyk7XG4gICAgICB0aGlzLmluZGV4LnNldCh0aGlzLmdldEtleShlbnRpdHkpLCBzdGF0ZSk7XG4gICAgfSk7XG4gICAgdGhpcy5uZXh0KCk7XG4gIH1cblxuICAvKipcbiAgICogUmV2ZXJzZWUgYW4gZW50aXR5J3Mgc3RhdGVcbiAgICogQHBhcmFtIGVudGl0eSBFbnRpdHlcbiAgICogQHBhcmFtIGtleXMgU3RhdGUga2V5cyB0byByZXZlcnNlXG4gICAqL1xuICByZXZlcnNlKGVudGl0eTogRSwga2V5czogc3RyaW5nW10pIHtcbiAgICB0aGlzLnJldmVyc2VNYW55KFtlbnRpdHldLCBrZXlzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXZlcnNlIG1hbnkgZW50aXRpZSdzIHN0YXRlXG4gICAqIEBwYXJhbSBlbnRpdGllIEVudGl0aWVzXG4gICAqIEBwYXJhbSBrZXlzIFN0YXRlIGtleXMgdG8gcmV2ZXJzZVxuICAgKi9cbiAgcmV2ZXJzZU1hbnkoZW50aXRpZXM6IEVbXSwga2V5czogc3RyaW5nW10pIHtcbiAgICBlbnRpdGllcy5mb3JFYWNoKChlbnRpdHk6IEUpID0+IHtcbiAgICAgIGNvbnN0IGN1cnJlbnRTdGF0ZSA9IHRoaXMuZ2V0KGVudGl0eSk7XG4gICAgICBjb25zdCBjaGFuZ2VzID0ga2V5cy5yZWR1Y2UoXG4gICAgICAgIChhY2M6IHsgW2tleTogc3RyaW5nXTogYm9vbGVhbiB9LCBrZXk6IHN0cmluZykgPT4ge1xuICAgICAgICAgIGFjY1trZXldID0gY3VycmVudFN0YXRlW2tleV0gfHwgZmFsc2U7XG4gICAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgICAgfSxcbiAgICAgICAge31cbiAgICAgICkgYXMgUGFydGlhbDxTPjtcbiAgICAgIGNvbnN0IHJldmVyc2VkQ2hhbmdlcyA9IHRoaXMucmV2ZXJzZUNoYW5nZXMoY2hhbmdlcyk7XG4gICAgICBjb25zdCBzdGF0ZSA9IE9iamVjdC5hc3NpZ24oe30sIGN1cnJlbnRTdGF0ZSwgcmV2ZXJzZWRDaGFuZ2VzKTtcbiAgICAgIHRoaXMuaW5kZXguc2V0KHRoaXMuZ2V0S2V5KGVudGl0eSksIHN0YXRlKTtcbiAgICB9KTtcbiAgICB0aGlzLm5leHQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGUgc3RhdGUgb2YgYWxsIGVudGl0aWVzIHRoYXQgYWxyZWFkeSBoYXZlIGEgc3RhdGUuIFRoaXMgaXMgbm90XG4gICAqIHRoZSBzYW1lIGFzIHVwZGF0aW5nIHRoZSBzdGF0ZSBvZiBhbGwgdGhlIHN0b3JlJ3MgZW50aXRpZXMuXG4gICAqIEBwYXJhbSBjaGFuZ2VzIFN0YXRlXG4gICAqL1xuICB1cGRhdGVBbGwoY2hhbmdlczogUGFydGlhbDxTPikge1xuICAgIGNvbnN0IGFsbEtleXMgPSB0aGlzLmdldEFsbEtleXMoKTtcbiAgICBBcnJheS5mcm9tKGFsbEtleXMpLmZvckVhY2goKGtleTogRW50aXR5S2V5KSA9PiB7XG4gICAgICBjb25zdCBzdGF0ZSA9IE9iamVjdC5hc3NpZ24oe30sIHRoaXMuaW5kZXguZ2V0KGtleSksIGNoYW5nZXMpO1xuICAgICAgdGhpcy5pbmRleC5zZXQoa2V5LCBzdGF0ZSk7XG4gICAgfSk7XG4gICAgdGhpcy5uZXh0KCk7XG4gIH1cblxuICAvKipcbiAgICogV2hlbiBzb21lIHN0YXRlIGNoYW5nZXMgYXJlIGZsYWdnZWQgYXMgJ2V4Y2x1c2l2ZScsIHJldmVyc2VcbiAgICogdGhlIHN0YXRlIG9mIGFsbCBvdGhlciBlbnRpdGllcy4gQ2hhbmdlcyBhcmUgcmV2ZXJzYWJsZSB3aGVuXG4gICAqIHRoZXkgYXJlIGJvb2xlYW4uXG4gICAqIEBwYXJhbSBlbnRpdGllIEVudGl0aWVzXG4gICAqIEBwYXJhbSBjaGFuZ2VzIFN0YXRlIGNoYW5nZXNcbiAgICovXG4gIHByaXZhdGUgdXBkYXRlTWFueUV4Y2x1c2l2ZShlbnRpdGllczogRVtdLCBjaGFuZ2VzOiBQYXJ0aWFsPFM+KSB7XG4gICAgY29uc3QgcmV2ZXJzZUNoYW5nZXMgPSB0aGlzLnJldmVyc2VDaGFuZ2VzKGNoYW5nZXMpO1xuXG4gICAgY29uc3Qga2V5cyA9IGVudGl0aWVzLm1hcCgoZW50aXR5OiBFKSA9PiB0aGlzLmdldEtleShlbnRpdHkpKTtcbiAgICBjb25zdCBhbGxLZXlzID0gbmV3IFNldChrZXlzLmNvbmNhdChBcnJheS5mcm9tKHRoaXMuZ2V0QWxsS2V5cygpKSkpO1xuICAgIGFsbEtleXMuZm9yRWFjaCgoa2V5OiBFbnRpdHlLZXkpID0+IHtcbiAgICAgIGNvbnN0IHN0YXRlID0gdGhpcy5pbmRleC5nZXQoa2V5KSB8fCAoe30gYXMgUyk7XG5cbiAgICAgIGlmIChrZXlzLmluZGV4T2Yoa2V5KSA+PSAwKSB7XG4gICAgICAgIHRoaXMuaW5kZXguc2V0KGtleSwgT2JqZWN0LmFzc2lnbih7fSwgc3RhdGUsIGNoYW5nZXMpKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIFVwZGF0ZSBvbmx5IGlmIHRoZSByZXZlcnNlIGNoYW5nZXMgd291bGQgbW9kaWZ5XG4gICAgICAgIC8vIGEga2V5IGFscmVhZHkgcHJlc2VudCBpbiB0aGUgY3VycmVudCBzdGF0ZVxuICAgICAgICBjb25zdCBzaG91bGRVcGRhdGUgPSBPYmplY3Qua2V5cyhyZXZlcnNlQ2hhbmdlcykuc29tZShcbiAgICAgICAgICAoY2hhbmdlS2V5OiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgIHN0YXRlW2NoYW5nZUtleV0gIT09IHVuZGVmaW5lZCAmJlxuICAgICAgICAgICAgICBzdGF0ZVtjaGFuZ2VLZXldICE9PSByZXZlcnNlQ2hhbmdlc1tjaGFuZ2VLZXldXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICAgICAgaWYgKHNob3VsZFVwZGF0ZSA9PT0gdHJ1ZSkge1xuICAgICAgICAgIHRoaXMuaW5kZXguc2V0KGtleSwgT2JqZWN0LmFzc2lnbih7fSwgc3RhdGUsIHJldmVyc2VDaGFuZ2VzKSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHRoaXMubmV4dCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbXB1dGUgYSAncmV2ZXJzZWQnIHZlcnNpb24gb2Ygc29tZSBzdGF0ZSBjaGFuZ2VzLlxuICAgKiBDaGFuZ2VzIGFyZSByZXZlcnNhYmxlIHdoZW4gdGhleSBhcmUgYm9vbGVhbi5cbiAgICogQHBhcmFtIGNoYW5nZXMgU3RhdGUgY2hhbmdlc1xuICAgKiBAcmV0dXJucyBSZXZlcnNlZCBzdGF0ZSBjaGFuZ2VzXG4gICAqL1xuICBwcml2YXRlIHJldmVyc2VDaGFuZ2VzKGNoYW5nZXM6IFBhcnRpYWw8Uz4pOiBQYXJ0aWFsPFM+IHtcbiAgICByZXR1cm4gT2JqZWN0LmVudHJpZXMoY2hhbmdlcykucmVkdWNlKFxuICAgICAgKHJldmVyc2VDaGFuZ2VzOiBQYXJ0aWFsPFM+LCBidW5jaDogW3N0cmluZywgYW55XSkgPT4ge1xuICAgICAgICBjb25zdCBbY2hhbmdlS2V5LCB2YWx1ZV0gPSBidW5jaDtcbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gdHlwZW9mIHRydWUpIHtcbiAgICAgICAgICAocmV2ZXJzZUNoYW5nZXMgYXMgb2JqZWN0KVtjaGFuZ2VLZXldID0gIXZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXZlcnNlQ2hhbmdlcztcbiAgICAgIH0sXG4gICAgICB7fVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIGFsbCB0aGUga2V5cyBpbiB0aGF0IHN0YXRlIGFuZCBpbiB0aGUgc3RvcmUgaXQncyBib3VuZCB0bywgaWYgYW55LlxuICAgKiBAcmV0dXJucyBTZXQgb2Yga2V5c1xuICAgKi9cbiAgcHJpdmF0ZSBnZXRBbGxLZXlzKCk6IFNldDxFbnRpdHlLZXk+IHtcbiAgICBjb25zdCBzdG9yZUtleXMgPSBBcnJheS5mcm9tKHRoaXMub3B0aW9ucz8uaW5kZXg/LmtleXMoKSA/PyBbXSk7XG4gICAgcmV0dXJuIG5ldyBTZXQoQXJyYXkuZnJvbSh0aGlzLmluZGV4LmtleXMoKSkuY29uY2F0KHN0b3JlS2V5cykpO1xuICB9XG5cbiAgLyoqXG4gICAqIEVtaXQgJ2NoYW5nZScgZXZlbnRcbiAgICovXG4gIHByaXZhdGUgbmV4dCgpIHtcbiAgICB0aGlzLmNoYW5nZSQubmV4dCgpO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,73 @@
1
+ import { EntityStore } from './store';
2
+ export class EntityStoreWithStrategy extends EntityStore {
3
+ /**
4
+ * Strategies
5
+ */
6
+ strategies = [];
7
+ constructor(entities, options = {}) {
8
+ super(entities, options);
9
+ }
10
+ /**
11
+ * Add a strategy to this store
12
+ * @param strategy Entity store strategy
13
+ * @returns Entity store
14
+ */
15
+ addStrategy(strategy, activate = false) {
16
+ const existingStrategy = this.strategies.find((_strategy) => {
17
+ return strategy.constructor === _strategy.constructor;
18
+ });
19
+ if (existingStrategy !== undefined) {
20
+ throw new Error('A strategy of this type already exists on that EntityStore.');
21
+ }
22
+ this.strategies.push(strategy);
23
+ strategy.bindStore(this);
24
+ if (activate === true) {
25
+ strategy.activate();
26
+ }
27
+ return this;
28
+ }
29
+ /**
30
+ * Remove a strategy from this store
31
+ * @param strategy Entity store strategy
32
+ * @returns Entity store
33
+ */
34
+ removeStrategy(strategy) {
35
+ const index = this.strategies.indexOf(strategy);
36
+ if (index >= 0) {
37
+ this.strategies.splice(index, 1);
38
+ strategy.unbindStore(this);
39
+ }
40
+ return this;
41
+ }
42
+ /**
43
+ * Return strategies of a given type
44
+ * @param type Entity store strategy class
45
+ * @returns Strategies
46
+ */
47
+ getStrategyOfType(type) {
48
+ return this.strategies.find((strategy) => {
49
+ return strategy instanceof type;
50
+ });
51
+ }
52
+ /**
53
+ * Activate strategies of a given type
54
+ * @param type Entity store strategy class
55
+ */
56
+ activateStrategyOfType(type) {
57
+ const strategy = this.getStrategyOfType(type);
58
+ if (strategy !== undefined) {
59
+ strategy.activate();
60
+ }
61
+ }
62
+ /**
63
+ * Deactivate strategies of a given type
64
+ * @param type Entity store strategy class
65
+ */
66
+ deactivateStrategyOfType(type) {
67
+ const strategy = this.getStrategyOfType(type);
68
+ if (strategy !== undefined) {
69
+ strategy.deactivate();
70
+ }
71
+ }
72
+ }
73
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmUtc3RyYXRlZ3kuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vc3JjL2xpYi9lbnRpdHkvc2hhcmVkL3N0b3JlLXN0cmF0ZWd5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxXQUFXLEVBQXNCLE1BQU0sU0FBUyxDQUFDO0FBRTFELE1BQU0sT0FBTyx1QkFHWCxTQUFRLFdBQWlCO0lBQ3pCOztPQUVHO0lBQ0ssVUFBVSxHQUEwQixFQUFFLENBQUM7SUFFL0MsWUFBWSxRQUFhLEVBQUUsVUFBOEIsRUFBRTtRQUN6RCxLQUFLLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsV0FBVyxDQUNULFFBQTZCLEVBQzdCLFdBQW9CLEtBQUs7UUFFekIsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FDM0MsQ0FBQyxTQUE4QixFQUFFLEVBQUU7WUFDakMsT0FBTyxRQUFRLENBQUMsV0FBVyxLQUFLLFNBQVMsQ0FBQyxXQUFXLENBQUM7UUFDeEQsQ0FBQyxDQUNGLENBQUM7UUFDRixJQUFJLGdCQUFnQixLQUFLLFNBQVMsRUFBRTtZQUNsQyxNQUFNLElBQUksS0FBSyxDQUNiLDZEQUE2RCxDQUM5RCxDQUFDO1NBQ0g7UUFFRCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUMvQixRQUFRLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRXpCLElBQUksUUFBUSxLQUFLLElBQUksRUFBRTtZQUNyQixRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7U0FDckI7UUFFRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsY0FBYyxDQUFDLFFBQTZCO1FBQzFDLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ2hELElBQUksS0FBSyxJQUFJLENBQUMsRUFBRTtZQUNkLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztZQUNqQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQzVCO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILGlCQUFpQixDQUFDLElBQWdDO1FBQ2hELE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUE2QixFQUFFLEVBQUU7WUFDNUQsT0FBTyxRQUFRLFlBQVksSUFBSSxDQUFDO1FBQ2xDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7T0FHRztJQUNILHNCQUFzQixDQUFDLElBQWdDO1FBQ3JELE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM5QyxJQUFJLFFBQVEsS0FBSyxTQUFTLEVBQUU7WUFDMUIsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO1NBQ3JCO0lBQ0gsQ0FBQztJQUVEOzs7T0FHRztJQUNILHdCQUF3QixDQUFDLElBQWdDO1FBQ3ZELE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM5QyxJQUFJLFFBQVEsS0FBSyxTQUFTLEVBQUU7WUFDMUIsUUFBUSxDQUFDLFVBQVUsRUFBRSxDQUFDO1NBQ3ZCO0lBQ0gsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRW50aXR5U3RhdGUgfSBmcm9tICcuL2VudGl0eS5pbnRlcmZhY2VzJztcbmltcG9ydCB7IEVudGl0eVN0b3JlU3RyYXRlZ3kgfSBmcm9tICcuL3N0cmF0ZWdpZXMvc3RyYXRlZ3knO1xuaW1wb3J0IHsgRW50aXR5U3RvcmUsIEVudGl0eVN0b3JlT3B0aW9ucyB9IGZyb20gJy4vc3RvcmUnO1xuXG5leHBvcnQgY2xhc3MgRW50aXR5U3RvcmVXaXRoU3RyYXRlZ3k8XG4gIEUgZXh0ZW5kcyBvYmplY3QgPSBvYmplY3QsXG4gIFMgZXh0ZW5kcyBFbnRpdHlTdGF0ZSA9IEVudGl0eVN0YXRlXG4+IGV4dGVuZHMgRW50aXR5U3RvcmU8RSwgUz4ge1xuICAvKipcbiAgICogU3RyYXRlZ2llc1xuICAgKi9cbiAgcHJpdmF0ZSBzdHJhdGVnaWVzOiBFbnRpdHlTdG9yZVN0cmF0ZWd5W10gPSBbXTtcblxuICBjb25zdHJ1Y3RvcihlbnRpdGllczogRVtdLCBvcHRpb25zOiBFbnRpdHlTdG9yZU9wdGlvbnMgPSB7fSkge1xuICAgIHN1cGVyKGVudGl0aWVzLCBvcHRpb25zKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgYSBzdHJhdGVneSB0byB0aGlzIHN0b3JlXG4gICAqIEBwYXJhbSBzdHJhdGVneSBFbnRpdHkgc3RvcmUgc3RyYXRlZ3lcbiAgICogQHJldHVybnMgRW50aXR5IHN0b3JlXG4gICAqL1xuICBhZGRTdHJhdGVneShcbiAgICBzdHJhdGVneTogRW50aXR5U3RvcmVTdHJhdGVneSxcbiAgICBhY3RpdmF0ZTogYm9vbGVhbiA9IGZhbHNlXG4gICk6IEVudGl0eVN0b3JlIHtcbiAgICBjb25zdCBleGlzdGluZ1N0cmF0ZWd5ID0gdGhpcy5zdHJhdGVnaWVzLmZpbmQoXG4gICAgICAoX3N0cmF0ZWd5OiBFbnRpdHlTdG9yZVN0cmF0ZWd5KSA9PiB7XG4gICAgICAgIHJldHVybiBzdHJhdGVneS5jb25zdHJ1Y3RvciA9PT0gX3N0cmF0ZWd5LmNvbnN0cnVjdG9yO1xuICAgICAgfVxuICAgICk7XG4gICAgaWYgKGV4aXN0aW5nU3RyYXRlZ3kgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAnQSBzdHJhdGVneSBvZiB0aGlzIHR5cGUgYWxyZWFkeSBleGlzdHMgb24gdGhhdCBFbnRpdHlTdG9yZS4nXG4gICAgICApO1xuICAgIH1cblxuICAgIHRoaXMuc3RyYXRlZ2llcy5wdXNoKHN0cmF0ZWd5KTtcbiAgICBzdHJhdGVneS5iaW5kU3RvcmUodGhpcyk7XG5cbiAgICBpZiAoYWN0aXZhdGUgPT09IHRydWUpIHtcbiAgICAgIHN0cmF0ZWd5LmFjdGl2YXRlKCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlIGEgc3RyYXRlZ3kgZnJvbSB0aGlzIHN0b3JlXG4gICAqIEBwYXJhbSBzdHJhdGVneSBFbnRpdHkgc3RvcmUgc3RyYXRlZ3lcbiAgICogQHJldHVybnMgRW50aXR5IHN0b3JlXG4gICAqL1xuICByZW1vdmVTdHJhdGVneShzdHJhdGVneTogRW50aXR5U3RvcmVTdHJhdGVneSk6IEVudGl0eVN0b3JlIHtcbiAgICBjb25zdCBpbmRleCA9IHRoaXMuc3RyYXRlZ2llcy5pbmRleE9mKHN0cmF0ZWd5KTtcbiAgICBpZiAoaW5kZXggPj0gMCkge1xuICAgICAgdGhpcy5zdHJhdGVnaWVzLnNwbGljZShpbmRleCwgMSk7XG4gICAgICBzdHJhdGVneS51bmJpbmRTdG9yZSh0aGlzKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIHN0cmF0ZWdpZXMgb2YgYSBnaXZlbiB0eXBlXG4gICAqIEBwYXJhbSB0eXBlIEVudGl0eSBzdG9yZSBzdHJhdGVneSBjbGFzc1xuICAgKiBAcmV0dXJucyBTdHJhdGVnaWVzXG4gICAqL1xuICBnZXRTdHJhdGVneU9mVHlwZSh0eXBlOiB0eXBlb2YgRW50aXR5U3RvcmVTdHJhdGVneSk6IEVudGl0eVN0b3JlU3RyYXRlZ3kge1xuICAgIHJldHVybiB0aGlzLnN0cmF0ZWdpZXMuZmluZCgoc3RyYXRlZ3k6IEVudGl0eVN0b3JlU3RyYXRlZ3kpID0+IHtcbiAgICAgIHJldHVybiBzdHJhdGVneSBpbnN0YW5jZW9mIHR5cGU7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQWN0aXZhdGUgc3RyYXRlZ2llcyBvZiBhIGdpdmVuIHR5cGVcbiAgICogQHBhcmFtIHR5cGUgRW50aXR5IHN0b3JlIHN0cmF0ZWd5IGNsYXNzXG4gICAqL1xuICBhY3RpdmF0ZVN0cmF0ZWd5T2ZUeXBlKHR5cGU6IHR5cGVvZiBFbnRpdHlTdG9yZVN0cmF0ZWd5KSB7XG4gICAgY29uc3Qgc3RyYXRlZ3kgPSB0aGlzLmdldFN0cmF0ZWd5T2ZUeXBlKHR5cGUpO1xuICAgIGlmIChzdHJhdGVneSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBzdHJhdGVneS5hY3RpdmF0ZSgpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBEZWFjdGl2YXRlIHN0cmF0ZWdpZXMgb2YgYSBnaXZlbiB0eXBlXG4gICAqIEBwYXJhbSB0eXBlIEVudGl0eSBzdG9yZSBzdHJhdGVneSBjbGFzc1xuICAgKi9cbiAgZGVhY3RpdmF0ZVN0cmF0ZWd5T2ZUeXBlKHR5cGU6IHR5cGVvZiBFbnRpdHlTdG9yZVN0cmF0ZWd5KSB7XG4gICAgY29uc3Qgc3RyYXRlZ3kgPSB0aGlzLmdldFN0cmF0ZWd5T2ZUeXBlKHR5cGUpO1xuICAgIGlmIChzdHJhdGVneSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBzdHJhdGVneS5kZWFjdGl2YXRlKCk7XG4gICAgfVxuICB9XG59XG4iXX0=