@igo2/common 17.0.0-next.5 → 17.0.0-next.7

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 (808) hide show
  1. package/action/actionbar/actionbar-item.component.d.ts +75 -0
  2. package/action/index.d.ts +5 -0
  3. package/action/public_api.d.ts +4 -0
  4. package/action/shared/action.interfaces.d.ts +18 -0
  5. package/action/shared/store.d.ts +8 -0
  6. package/backdrop/index.d.ts +5 -0
  7. package/backdrop/public_api.d.ts +2 -0
  8. package/badge/badge-icon.directive.d.ts +34 -0
  9. package/badge/index.d.ts +5 -0
  10. package/badge/public_api.d.ts +2 -0
  11. package/clickout/index.d.ts +5 -0
  12. package/clickout/public_api.d.ts +2 -0
  13. package/clone/index.d.ts +5 -0
  14. package/clone/public_api.d.ts +2 -0
  15. package/collapsible/index.d.ts +5 -0
  16. package/collapsible/public_api.d.ts +6 -0
  17. package/color/color-picker-form-field/index.d.ts +2 -0
  18. package/color/index.d.ts +5 -0
  19. package/color/public_api.d.ts +1 -0
  20. package/confirm-dialog/index.d.ts +5 -0
  21. package/confirm-dialog/public_api.d.ts +4 -0
  22. package/context-menu/index.d.ts +5 -0
  23. package/context-menu/public_api.d.ts +6 -0
  24. package/custom-html/index.d.ts +5 -0
  25. package/custom-html/public_api.d.ts +6 -0
  26. package/dom/index.d.ts +5 -0
  27. package/dom/public_api.d.ts +3 -0
  28. package/drag-drop/index.d.ts +5 -0
  29. package/drag-drop/public_api.d.ts +2 -0
  30. package/dynamic-component/index.d.ts +5 -0
  31. package/dynamic-component/public_api.d.ts +4 -0
  32. package/entity/entity-selector/index.d.ts +2 -0
  33. package/entity/entity-table/index.d.ts +2 -0
  34. package/entity/entity-table-paginator/index.d.ts +3 -0
  35. package/entity/entity.module.d.ts +16 -0
  36. package/entity/index.d.ts +5 -0
  37. package/entity/public_api.d.ts +5 -0
  38. package/environment/index.d.ts +5 -0
  39. package/esm2022/action/action.module.mjs +19 -0
  40. package/esm2022/action/actionbar/actionbar-item.component.mjs +192 -0
  41. package/esm2022/action/actionbar/actionbar.component.mjs +277 -0
  42. package/esm2022/action/actionbar/actionbar.module.mjs +19 -0
  43. package/esm2022/action/igo2-common-action.mjs +5 -0
  44. package/esm2022/action/public_api.mjs +5 -0
  45. package/esm2022/action/shared/action.enums.mjs +7 -0
  46. package/esm2022/action/shared/action.interfaces.mjs +2 -0
  47. package/esm2022/action/shared/index.mjs +4 -0
  48. package/esm2022/action/shared/store.mjs +8 -0
  49. package/esm2022/backdrop/backdrop.component.mjs +22 -0
  50. package/esm2022/backdrop/backdrop.module.mjs +25 -0
  51. package/esm2022/backdrop/igo2-common-backdrop.mjs +5 -0
  52. package/esm2022/backdrop/public_api.mjs +3 -0
  53. package/esm2022/badge/badge-icon.directive.mjs +149 -0
  54. package/esm2022/badge/badge-icon.module.mjs +25 -0
  55. package/esm2022/badge/igo2-common-badge.mjs +5 -0
  56. package/esm2022/badge/public_api.mjs +3 -0
  57. package/esm2022/clickout/clickout.directive.mjs +32 -0
  58. package/esm2022/clickout/clickout.module.mjs +25 -0
  59. package/esm2022/clickout/igo2-common-clickout.mjs +5 -0
  60. package/esm2022/clickout/public_api.mjs +3 -0
  61. package/esm2022/clone/clone.module.mjs +25 -0
  62. package/esm2022/clone/clone.pipe.mjs +25 -0
  63. package/esm2022/clone/igo2-common-clone.mjs +5 -0
  64. package/esm2022/clone/public_api.mjs +3 -0
  65. package/esm2022/collapsible/collapse.directive.mjs +57 -0
  66. package/esm2022/collapsible/collapsible.component.mjs +38 -0
  67. package/esm2022/collapsible/collapsible.module.mjs +26 -0
  68. package/esm2022/collapsible/igo2-common-collapsible.mjs +5 -0
  69. package/esm2022/collapsible/public_api.mjs +10 -0
  70. package/esm2022/color/color-picker-form-field/color-picker-form-field.component.mjs +104 -0
  71. package/esm2022/color/color-picker-form-field/color-picker-form-field.module.mjs +19 -0
  72. package/esm2022/color/color-picker-form-field/index.mjs +3 -0
  73. package/esm2022/color/igo2-common-color.mjs +5 -0
  74. package/esm2022/color/public_api.mjs +2 -0
  75. package/esm2022/confirm-dialog/confirm-dialog.component.mjs +31 -0
  76. package/esm2022/confirm-dialog/confirm-dialog.interface.mjs +2 -0
  77. package/esm2022/confirm-dialog/confirm-dialog.module.mjs +27 -0
  78. package/esm2022/confirm-dialog/confirm-dialog.service.mjs +35 -0
  79. package/esm2022/confirm-dialog/igo2-common-confirm-dialog.mjs +5 -0
  80. package/esm2022/confirm-dialog/public_api.mjs +5 -0
  81. package/esm2022/context-menu/context-menu.directive.mjs +109 -0
  82. package/esm2022/context-menu/context-menu.module.mjs +26 -0
  83. package/esm2022/context-menu/igo2-common-context-menu.mjs +5 -0
  84. package/esm2022/context-menu/long-press.directive.mjs +66 -0
  85. package/esm2022/context-menu/public_api.mjs +10 -0
  86. package/esm2022/custom-html/custom-html.component.mjs +22 -0
  87. package/esm2022/custom-html/custom-html.module.mjs +25 -0
  88. package/esm2022/custom-html/custom-html.pipe.mjs +23 -0
  89. package/esm2022/custom-html/igo2-common-custom-html.mjs +5 -0
  90. package/esm2022/custom-html/public_api.mjs +10 -0
  91. package/esm2022/dom/dom.interfaces.mjs +2 -0
  92. package/esm2022/dom/dom.module.mjs +27 -0
  93. package/esm2022/dom/dom.service.mjs +35 -0
  94. package/esm2022/dom/igo2-common-dom.mjs +5 -0
  95. package/esm2022/dom/public_api.mjs +4 -0
  96. package/esm2022/drag-drop/drag-drop.directive.mjs +82 -0
  97. package/esm2022/drag-drop/drag-drop.module.mjs +25 -0
  98. package/esm2022/drag-drop/igo2-common-drag-drop.mjs +5 -0
  99. package/esm2022/drag-drop/public_api.mjs +3 -0
  100. package/esm2022/dynamic-component/dynamic-component.module.mjs +19 -0
  101. package/esm2022/dynamic-component/dynamic-outlet/dynamic-outlet.component.mjs +129 -0
  102. package/esm2022/dynamic-component/dynamic-outlet/dynamic-outlet.module.mjs +19 -0
  103. package/esm2022/dynamic-component/igo2-common-dynamic-component.mjs +5 -0
  104. package/esm2022/dynamic-component/public_api.mjs +5 -0
  105. package/esm2022/dynamic-component/shared/dynamic-component.interfaces.mjs +2 -0
  106. package/esm2022/dynamic-component/shared/dynamic-component.mjs +183 -0
  107. package/esm2022/dynamic-component/shared/dynamic-component.service.mjs +30 -0
  108. package/esm2022/dynamic-component/shared/index.mjs +4 -0
  109. package/esm2022/entity/entity-selector/entity-selector.component.mjs +174 -0
  110. package/esm2022/entity/entity-selector/entity-selector.module.mjs +19 -0
  111. package/esm2022/entity/entity-selector/index.mjs +3 -0
  112. package/esm2022/entity/entity-table/entity-table-row.directive.mjs +138 -0
  113. package/esm2022/entity/entity-table/entity-table.component.mjs +883 -0
  114. package/esm2022/entity/entity-table/entity-table.module.mjs +19 -0
  115. package/esm2022/entity/entity-table/index.mjs +3 -0
  116. package/esm2022/entity/entity-table-paginator/entity-table-paginator.component.mjs +158 -0
  117. package/esm2022/entity/entity-table-paginator/entity-table-paginator.interface.mjs +2 -0
  118. package/esm2022/entity/entity-table-paginator/entity-table-paginator.module.mjs +19 -0
  119. package/esm2022/entity/entity-table-paginator/index.mjs +4 -0
  120. package/esm2022/entity/entity.module.mjs +30 -0
  121. package/esm2022/entity/igo2-common-entity.mjs +5 -0
  122. package/esm2022/entity/public_api.mjs +6 -0
  123. package/esm2022/entity/shared/entity.enums.mjs +28 -0
  124. package/esm2022/entity/shared/entity.interfaces.mjs +2 -0
  125. package/esm2022/entity/shared/entity.utils.mjs +73 -0
  126. package/esm2022/entity/shared/index.mjs +10 -0
  127. package/esm2022/entity/shared/state.mjs +194 -0
  128. package/esm2022/entity/shared/store.mjs +322 -0
  129. package/esm2022/entity/shared/strategies/filter-custom-function.mjs +80 -0
  130. package/esm2022/entity/shared/strategies/filter-selection.mjs +81 -0
  131. package/esm2022/entity/shared/strategies/index.mjs +4 -0
  132. package/esm2022/entity/shared/strategies/strategy.mjs +78 -0
  133. package/esm2022/entity/shared/transaction.mjs +329 -0
  134. package/esm2022/entity/shared/view.mjs +330 -0
  135. package/esm2022/entity/shared/watcher.mjs +135 -0
  136. package/esm2022/environment/environment.interface.mjs +2 -0
  137. package/esm2022/environment/igo2-common-environment.mjs +5 -0
  138. package/esm2022/environment/public_api.mjs +2 -0
  139. package/esm2022/flexible/flexible.component.mjs +135 -0
  140. package/esm2022/flexible/flexible.module.mjs +25 -0
  141. package/esm2022/flexible/flexible.type.mjs +2 -0
  142. package/esm2022/flexible/igo2-common-flexible.mjs +5 -0
  143. package/esm2022/flexible/public_api.mjs +4 -0
  144. package/esm2022/form/form/form.component.mjs +103 -0
  145. package/esm2022/form/form/form.module.mjs +19 -0
  146. package/esm2022/form/form/index.mjs +3 -0
  147. package/esm2022/form/form-dialog/form-dialog.component.mjs +94 -0
  148. package/esm2022/form/form-dialog/form-dialog.interface.mjs +2 -0
  149. package/esm2022/form/form-dialog/form-dialog.module.mjs +31 -0
  150. package/esm2022/form/form-dialog/form-dialog.service.mjs +30 -0
  151. package/esm2022/form/form-dialog/index.mjs +5 -0
  152. package/esm2022/form/form-field/form-field-select.component.mjs +117 -0
  153. package/esm2022/form/form-field/form-field-text.component.mjs +126 -0
  154. package/esm2022/form/form-field/form-field-textarea.component.mjs +95 -0
  155. package/esm2022/form/form-field/form-field.component.mjs +65 -0
  156. package/esm2022/form/form-field/form-field.directive.mjs +11 -0
  157. package/esm2022/form/form-field/form-field.module.mjs +23 -0
  158. package/esm2022/form/form-field/index.mjs +7 -0
  159. package/esm2022/form/form-group/form-group.component.mjs +82 -0
  160. package/esm2022/form/form-group/form-group.module.mjs +19 -0
  161. package/esm2022/form/form-group/index.mjs +3 -0
  162. package/esm2022/form/form.module.mjs +32 -0
  163. package/esm2022/form/igo2-common-form.mjs +5 -0
  164. package/esm2022/form/public_api.mjs +7 -0
  165. package/esm2022/form/shared/form-field-component.mjs +7 -0
  166. package/esm2022/form/shared/form-field.service.mjs +29 -0
  167. package/esm2022/form/shared/form.interfaces.mjs +2 -0
  168. package/esm2022/form/shared/form.service.mjs +82 -0
  169. package/esm2022/form/shared/form.utils.mjs +41 -0
  170. package/esm2022/form/shared/index.mjs +6 -0
  171. package/esm2022/home-button/home-button.component.mjs +26 -0
  172. package/esm2022/home-button/home-button.module.mjs +19 -0
  173. package/esm2022/home-button/igo2-common-home-button.mjs +5 -0
  174. package/esm2022/home-button/public_api.mjs +3 -0
  175. package/esm2022/icon/icon/icon.component.mjs +38 -0
  176. package/esm2022/icon/icon.provider.mjs +14 -0
  177. package/esm2022/icon/igo2-common-icon.mjs +5 -0
  178. package/esm2022/icon/public_api.mjs +4 -0
  179. package/esm2022/icon/shared/icon.interface.mjs +2 -0
  180. package/esm2022/icon/shared/icon.service.mjs +26 -0
  181. package/esm2022/icon/shared/icons.mjs +42 -0
  182. package/esm2022/icon/shared/index.mjs +4 -0
  183. package/esm2022/image/igo2-common-image.mjs +5 -0
  184. package/esm2022/image/image-error.directive.mjs +35 -0
  185. package/esm2022/image/image.module.mjs +26 -0
  186. package/esm2022/image/public_api.mjs +7 -0
  187. package/esm2022/image/secure-image.pipe.mjs +66 -0
  188. package/esm2022/interactive-tour/igo2-common-interactive-tour.mjs +5 -0
  189. package/esm2022/interactive-tour/interactive-tour.component.mjs +133 -0
  190. package/esm2022/interactive-tour/interactive-tour.interface.mjs +2 -0
  191. package/esm2022/interactive-tour/interactive-tour.loader.mjs +49 -0
  192. package/esm2022/interactive-tour/interactive-tour.module.mjs +19 -0
  193. package/esm2022/interactive-tour/interactive-tour.service.mjs +303 -0
  194. package/esm2022/interactive-tour/public_api.mjs +6 -0
  195. package/esm2022/json-dialog/igo2-common-json-dialog.mjs +5 -0
  196. package/esm2022/json-dialog/json-dialog.component.mjs +38 -0
  197. package/esm2022/json-dialog/json-dialog.module.mjs +26 -0
  198. package/esm2022/json-dialog/json-dialog.service.mjs +26 -0
  199. package/esm2022/json-dialog/public_api.mjs +4 -0
  200. package/esm2022/keyvalue/igo2-common-keyvalue.mjs +5 -0
  201. package/esm2022/keyvalue/keyvalue.module.mjs +25 -0
  202. package/esm2022/keyvalue/keyvalue.pipe.mjs +19 -0
  203. package/esm2022/keyvalue/public_api.mjs +3 -0
  204. package/esm2022/list/igo2-common-list.mjs +5 -0
  205. package/esm2022/list/list-item.directive.mjs +166 -0
  206. package/esm2022/list/list.component.mjs +252 -0
  207. package/esm2022/list/list.module.mjs +26 -0
  208. package/esm2022/list/public_api.mjs +7 -0
  209. package/esm2022/panel/igo2-common-panel.mjs +5 -0
  210. package/esm2022/panel/panel.component.mjs +30 -0
  211. package/esm2022/panel/panel.module.mjs +19 -0
  212. package/esm2022/panel/public_api.mjs +3 -0
  213. package/esm2022/public_api.mjs +17 -78
  214. package/esm2022/select-value-dialog/igo2-common-select-value-dialog.mjs +5 -0
  215. package/esm2022/select-value-dialog/public_api.mjs +6 -0
  216. package/esm2022/select-value-dialog/select-value-check-radio-dialog.component.mjs +103 -0
  217. package/esm2022/select-value-dialog/select-value-dialog.enums.mjs +6 -0
  218. package/esm2022/select-value-dialog/select-value-dialog.interface.mjs +2 -0
  219. package/esm2022/select-value-dialog/select-value-dialog.module.mjs +27 -0
  220. package/esm2022/select-value-dialog/select-value-dialog.service.mjs +29 -0
  221. package/esm2022/sidenav/igo2-common-sidenav.mjs +5 -0
  222. package/esm2022/sidenav/public_api.mjs +3 -0
  223. package/esm2022/sidenav/sidenav-shim.directive.mjs +58 -0
  224. package/esm2022/sidenav/sidenav.module.mjs +25 -0
  225. package/esm2022/spinner/igo2-common-spinner.mjs +5 -0
  226. package/esm2022/spinner/public_api.mjs +4 -0
  227. package/esm2022/spinner/spinner-activity.directive.mjs +56 -0
  228. package/esm2022/spinner/spinner.component.mjs +30 -0
  229. package/esm2022/spinner/spinner.module.mjs +26 -0
  230. package/esm2022/stop-propagation/igo2-common-stop-propagation.mjs +5 -0
  231. package/esm2022/stop-propagation/public_api.mjs +10 -0
  232. package/esm2022/stop-propagation/stop-drop-propagation.directive.mjs +21 -0
  233. package/esm2022/stop-propagation/stop-propagation.directive.mjs +20 -0
  234. package/esm2022/stop-propagation/stop-propagation.module.mjs +26 -0
  235. package/esm2022/table/igo2-common-table.mjs +5 -0
  236. package/esm2022/table/public_api.mjs +7 -0
  237. package/esm2022/table/table-action-color.enum.mjs +7 -0
  238. package/esm2022/table/table-database.mjs +28 -0
  239. package/esm2022/table/table-datasource.mjs +64 -0
  240. package/esm2022/table/table-model.interface.mjs +2 -0
  241. package/esm2022/table/table.component.mjs +143 -0
  242. package/esm2022/table/table.module.mjs +25 -0
  243. package/esm2022/tool/igo2-common-tool.mjs +5 -0
  244. package/esm2022/tool/public_api.mjs +4 -0
  245. package/esm2022/tool/shared/index.mjs +6 -0
  246. package/esm2022/tool/shared/tool-component.mjs +9 -0
  247. package/esm2022/tool/shared/tool.interface.mjs +2 -0
  248. package/esm2022/tool/shared/tool.service.mjs +43 -0
  249. package/esm2022/tool/shared/toolbox.enums.mjs +2 -0
  250. package/esm2022/tool/shared/toolbox.mjs +192 -0
  251. package/esm2022/tool/tool.module.mjs +28 -0
  252. package/esm2022/tool/toolbox/index.mjs +3 -0
  253. package/esm2022/tool/toolbox/toolbox.animation.mjs +10 -0
  254. package/esm2022/tool/toolbox/toolbox.component.mjs +241 -0
  255. package/esm2022/tool/toolbox/toolbox.module.mjs +19 -0
  256. package/esm2022/widget/igo2-common-widget.mjs +5 -0
  257. package/esm2022/widget/public_api.mjs +4 -0
  258. package/esm2022/widget/shared/index.mjs +4 -0
  259. package/esm2022/widget/shared/widget.interfaces.mjs +2 -0
  260. package/esm2022/widget/shared/widget.mjs +4 -0
  261. package/esm2022/widget/shared/widget.service.mjs +22 -0
  262. package/esm2022/widget/widget-outlet/index.mjs +3 -0
  263. package/esm2022/widget/widget-outlet/widget-outlet.component.mjs +113 -0
  264. package/esm2022/widget/widget-outlet/widget-outlet.module.mjs +19 -0
  265. package/esm2022/widget/widget.module.mjs +22 -0
  266. package/esm2022/workspace/igo2-common-workspace.mjs +5 -0
  267. package/esm2022/workspace/public_api.mjs +5 -0
  268. package/esm2022/workspace/shared/index.mjs +4 -0
  269. package/esm2022/workspace/shared/store.mjs +37 -0
  270. package/esm2022/workspace/shared/workspace.interfaces.mjs +2 -0
  271. package/esm2022/workspace/shared/workspace.mjs +143 -0
  272. package/esm2022/workspace/workspace-selector/index.mjs +3 -0
  273. package/esm2022/workspace/workspace-selector/workspace-selector.component.mjs +51 -0
  274. package/esm2022/workspace/workspace-selector/workspace-selector.module.mjs +19 -0
  275. package/esm2022/workspace/workspace-widget-outlet/index.mjs +3 -0
  276. package/esm2022/workspace/workspace-widget-outlet/workspace-widget-outlet.component.mjs +74 -0
  277. package/esm2022/workspace/workspace-widget-outlet/workspace-widget-outlet.module.mjs +19 -0
  278. package/esm2022/workspace/workspace.module.mjs +27 -0
  279. package/fesm2022/igo2-common-action.mjs +505 -0
  280. package/fesm2022/igo2-common-action.mjs.map +1 -0
  281. package/fesm2022/igo2-common-backdrop.mjs +51 -0
  282. package/fesm2022/igo2-common-backdrop.mjs.map +1 -0
  283. package/fesm2022/igo2-common-badge.mjs +178 -0
  284. package/fesm2022/igo2-common-badge.mjs.map +1 -0
  285. package/fesm2022/igo2-common-clickout.mjs +61 -0
  286. package/fesm2022/igo2-common-clickout.mjs.map +1 -0
  287. package/fesm2022/igo2-common-clone.mjs +54 -0
  288. package/fesm2022/igo2-common-clone.mjs.map +1 -0
  289. package/fesm2022/igo2-common-collapsible.mjs +126 -0
  290. package/fesm2022/igo2-common-collapsible.mjs.map +1 -0
  291. package/fesm2022/igo2-common-color.mjs +127 -0
  292. package/fesm2022/igo2-common-color.mjs.map +1 -0
  293. package/fesm2022/igo2-common-confirm-dialog.mjs +91 -0
  294. package/fesm2022/igo2-common-confirm-dialog.mjs.map +1 -0
  295. package/fesm2022/igo2-common-context-menu.mjs +206 -0
  296. package/fesm2022/igo2-common-context-menu.mjs.map +1 -0
  297. package/fesm2022/igo2-common-custom-html.mjs +74 -0
  298. package/fesm2022/igo2-common-custom-html.mjs.map +1 -0
  299. package/fesm2022/igo2-common-dom.mjs +65 -0
  300. package/fesm2022/igo2-common-dom.mjs.map +1 -0
  301. package/fesm2022/igo2-common-drag-drop.mjs +111 -0
  302. package/fesm2022/igo2-common-drag-drop.mjs.map +1 -0
  303. package/fesm2022/igo2-common-dynamic-component.mjs +375 -0
  304. package/fesm2022/igo2-common-dynamic-component.mjs.map +1 -0
  305. package/fesm2022/igo2-common-entity.mjs +3036 -0
  306. package/fesm2022/igo2-common-entity.mjs.map +1 -0
  307. package/fesm2022/igo2-common-environment.mjs +4 -0
  308. package/fesm2022/igo2-common-environment.mjs.map +1 -0
  309. package/fesm2022/igo2-common-flexible.mjs +163 -0
  310. package/fesm2022/igo2-common-flexible.mjs.map +1 -0
  311. package/fesm2022/igo2-common-form.mjs +898 -0
  312. package/fesm2022/igo2-common-form.mjs.map +1 -0
  313. package/fesm2022/igo2-common-home-button.mjs +49 -0
  314. package/fesm2022/igo2-common-home-button.mjs.map +1 -0
  315. package/fesm2022/igo2-common-icon.mjs +118 -0
  316. package/fesm2022/igo2-common-icon.mjs.map +1 -0
  317. package/fesm2022/igo2-common-image.mjs +129 -0
  318. package/fesm2022/igo2-common-image.mjs.map +1 -0
  319. package/fesm2022/igo2-common-interactive-tour.mjs +490 -0
  320. package/fesm2022/igo2-common-interactive-tour.mjs.map +1 -0
  321. package/fesm2022/igo2-common-json-dialog.mjs +88 -0
  322. package/fesm2022/igo2-common-json-dialog.mjs.map +1 -0
  323. package/fesm2022/igo2-common-keyvalue.mjs +48 -0
  324. package/fesm2022/igo2-common-keyvalue.mjs.map +1 -0
  325. package/fesm2022/igo2-common-list.mjs +446 -0
  326. package/fesm2022/igo2-common-list.mjs.map +1 -0
  327. package/fesm2022/igo2-common-panel.mjs +53 -0
  328. package/fesm2022/igo2-common-panel.mjs.map +1 -0
  329. package/fesm2022/igo2-common-select-value-dialog.mjs +161 -0
  330. package/fesm2022/igo2-common-select-value-dialog.mjs.map +1 -0
  331. package/fesm2022/igo2-common-sidenav.mjs +86 -0
  332. package/fesm2022/igo2-common-sidenav.mjs.map +1 -0
  333. package/fesm2022/igo2-common-spinner.mjs +110 -0
  334. package/fesm2022/igo2-common-spinner.mjs.map +1 -0
  335. package/fesm2022/igo2-common-stop-propagation.mjs +73 -0
  336. package/fesm2022/igo2-common-stop-propagation.mjs.map +1 -0
  337. package/fesm2022/igo2-common-table.mjs +264 -0
  338. package/fesm2022/igo2-common-table.mjs.map +1 -0
  339. package/fesm2022/igo2-common-tool.mjs +535 -0
  340. package/fesm2022/igo2-common-tool.mjs.map +1 -0
  341. package/fesm2022/igo2-common-widget.mjs +176 -0
  342. package/fesm2022/igo2-common-widget.mjs.map +1 -0
  343. package/fesm2022/igo2-common-workspace.mjs +361 -0
  344. package/fesm2022/igo2-common-workspace.mjs.map +1 -0
  345. package/fesm2022/igo2-common.mjs +16 -8754
  346. package/fesm2022/igo2-common.mjs.map +1 -1
  347. package/flexible/index.d.ts +5 -0
  348. package/flexible/public_api.d.ts +3 -0
  349. package/form/form/index.d.ts +2 -0
  350. package/form/form-dialog/form-dialog.component.d.ts +23 -0
  351. package/form/form-dialog/form-dialog.interface.d.ts +18 -0
  352. package/form/form-dialog/index.d.ts +4 -0
  353. package/form/form-field/form-field.directive.d.ts +5 -0
  354. package/form/form-field/index.d.ts +6 -0
  355. package/form/form-group/index.d.ts +2 -0
  356. package/form/form.module.d.ts +18 -0
  357. package/form/index.d.ts +5 -0
  358. package/form/public_api.d.ts +6 -0
  359. package/home-button/index.d.ts +5 -0
  360. package/home-button/public_api.d.ts +2 -0
  361. package/icon/icon/icon.component.d.ts +14 -0
  362. package/icon/icon.provider.d.ts +4 -0
  363. package/icon/index.d.ts +5 -0
  364. package/icon/public_api.d.ts +3 -0
  365. package/icon/shared/icon.interface.d.ts +4 -0
  366. package/icon/shared/icon.service.d.ts +12 -0
  367. package/icon/shared/icons.d.ts +11 -0
  368. package/icon/shared/index.d.ts +3 -0
  369. package/image/index.d.ts +5 -0
  370. package/image/public_api.d.ts +6 -0
  371. package/interactive-tour/index.d.ts +5 -0
  372. package/interactive-tour/interactive-tour.component.d.ts +33 -0
  373. package/interactive-tour/public_api.d.ts +5 -0
  374. package/json-dialog/index.d.ts +5 -0
  375. package/json-dialog/public_api.d.ts +3 -0
  376. package/keyvalue/index.d.ts +5 -0
  377. package/keyvalue/public_api.d.ts +2 -0
  378. package/list/index.d.ts +5 -0
  379. package/list/public_api.d.ts +6 -0
  380. package/package.json +201 -3
  381. package/panel/index.d.ts +5 -0
  382. package/panel/public_api.d.ts +2 -0
  383. package/public_api.d.ts +16 -77
  384. package/select-value-dialog/index.d.ts +5 -0
  385. package/select-value-dialog/public_api.d.ts +5 -0
  386. package/sidenav/index.d.ts +5 -0
  387. package/sidenav/public_api.d.ts +2 -0
  388. package/spinner/index.d.ts +5 -0
  389. package/spinner/public_api.d.ts +3 -0
  390. package/spinner/spinner.module.d.ts +14 -0
  391. package/src/common-theme.scss +8 -8
  392. package/stop-propagation/index.d.ts +5 -0
  393. package/stop-propagation/public_api.d.ts +6 -0
  394. package/table/index.d.ts +5 -0
  395. package/table/public_api.d.ts +6 -0
  396. package/tool/index.d.ts +5 -0
  397. package/tool/public_api.d.ts +3 -0
  398. package/tool/shared/tool.interface.d.ts +18 -0
  399. package/tool/shared/toolbox.d.ts +98 -0
  400. package/tool/toolbox/index.d.ts +2 -0
  401. package/tool/toolbox/toolbox.component.d.ts +128 -0
  402. package/widget/index.d.ts +5 -0
  403. package/widget/public_api.d.ts +3 -0
  404. package/widget/shared/widget.d.ts +4 -0
  405. package/widget/shared/widget.service.d.ts +10 -0
  406. package/widget/widget-outlet/index.d.ts +2 -0
  407. package/widget/widget-outlet/widget-outlet.component.d.ts +71 -0
  408. package/workspace/index.d.ts +5 -0
  409. package/workspace/public_api.d.ts +4 -0
  410. package/workspace/shared/store.d.ts +20 -0
  411. package/workspace/shared/workspace.d.ts +108 -0
  412. package/workspace/shared/workspace.interfaces.d.ts +11 -0
  413. package/workspace/workspace-selector/index.d.ts +2 -0
  414. package/workspace/workspace-selector/workspace-selector.component.d.ts +38 -0
  415. package/workspace/workspace-widget-outlet/index.d.ts +2 -0
  416. package/workspace/workspace-widget-outlet/workspace-widget-outlet.component.d.ts +57 -0
  417. package/workspace/workspace.module.d.ts +14 -0
  418. package/esm2022/lib/action/action.module.mjs +0 -19
  419. package/esm2022/lib/action/actionbar/actionbar-item.component.mjs +0 -206
  420. package/esm2022/lib/action/actionbar/actionbar.component.mjs +0 -277
  421. package/esm2022/lib/action/actionbar/actionbar.module.mjs +0 -19
  422. package/esm2022/lib/action/index.mjs +0 -3
  423. package/esm2022/lib/action/shared/action.enums.mjs +0 -7
  424. package/esm2022/lib/action/shared/action.interfaces.mjs +0 -2
  425. package/esm2022/lib/action/shared/index.mjs +0 -4
  426. package/esm2022/lib/action/shared/store.mjs +0 -8
  427. package/esm2022/lib/backdrop/backdrop.component.mjs +0 -22
  428. package/esm2022/lib/backdrop/backdrop.module.mjs +0 -25
  429. package/esm2022/lib/backdrop/index.mjs +0 -2
  430. package/esm2022/lib/badge-icon/badge-icon.directive.mjs +0 -152
  431. package/esm2022/lib/badge-icon/badge-icon.module.mjs +0 -25
  432. package/esm2022/lib/badge-icon/index.mjs +0 -2
  433. package/esm2022/lib/clickout/clickout.directive.mjs +0 -32
  434. package/esm2022/lib/clickout/clickout.module.mjs +0 -25
  435. package/esm2022/lib/clickout/index.mjs +0 -2
  436. package/esm2022/lib/clone/clone.module.mjs +0 -25
  437. package/esm2022/lib/clone/clone.pipe.mjs +0 -25
  438. package/esm2022/lib/clone/index.mjs +0 -2
  439. package/esm2022/lib/collapsible/collapse.directive.mjs +0 -57
  440. package/esm2022/lib/collapsible/collapsible.component.mjs +0 -38
  441. package/esm2022/lib/collapsible/collapsible.module.mjs +0 -26
  442. package/esm2022/lib/collapsible/index.mjs +0 -9
  443. package/esm2022/lib/color-picker-form-field/color-picker-form-field.component.mjs +0 -104
  444. package/esm2022/lib/color-picker-form-field/color-picker-form-field.module.mjs +0 -19
  445. package/esm2022/lib/color-picker-form-field/index.mjs +0 -2
  446. package/esm2022/lib/confirm-dialog/confirm-dialog.component.mjs +0 -31
  447. package/esm2022/lib/confirm-dialog/confirm-dialog.interface.mjs +0 -2
  448. package/esm2022/lib/confirm-dialog/confirm-dialog.module.mjs +0 -27
  449. package/esm2022/lib/confirm-dialog/confirm-dialog.service.mjs +0 -35
  450. package/esm2022/lib/confirm-dialog/index.mjs +0 -4
  451. package/esm2022/lib/context-menu/context-menu.directive.mjs +0 -109
  452. package/esm2022/lib/context-menu/context-menu.module.mjs +0 -26
  453. package/esm2022/lib/context-menu/index.mjs +0 -9
  454. package/esm2022/lib/context-menu/long-press.directive.mjs +0 -66
  455. package/esm2022/lib/custom-html/custom-html.component.mjs +0 -22
  456. package/esm2022/lib/custom-html/custom-html.module.mjs +0 -25
  457. package/esm2022/lib/custom-html/custom-html.pipe.mjs +0 -23
  458. package/esm2022/lib/custom-html/index.mjs +0 -9
  459. package/esm2022/lib/dom/dom.interfaces.mjs +0 -2
  460. package/esm2022/lib/dom/dom.module.mjs +0 -27
  461. package/esm2022/lib/dom/dom.service.mjs +0 -35
  462. package/esm2022/lib/dom/index.mjs +0 -3
  463. package/esm2022/lib/drag-drop/drag-drop.directive.mjs +0 -82
  464. package/esm2022/lib/drag-drop/drag-drop.module.mjs +0 -25
  465. package/esm2022/lib/drag-drop/index.mjs +0 -2
  466. package/esm2022/lib/dynamic-component/dynamic-component.module.mjs +0 -19
  467. package/esm2022/lib/dynamic-component/dynamic-outlet/dynamic-outlet.component.mjs +0 -129
  468. package/esm2022/lib/dynamic-component/dynamic-outlet/dynamic-outlet.module.mjs +0 -19
  469. package/esm2022/lib/dynamic-component/index.mjs +0 -3
  470. package/esm2022/lib/dynamic-component/shared/dynamic-component.interfaces.mjs +0 -2
  471. package/esm2022/lib/dynamic-component/shared/dynamic-component.mjs +0 -183
  472. package/esm2022/lib/dynamic-component/shared/dynamic-component.service.mjs +0 -30
  473. package/esm2022/lib/dynamic-component/shared/index.mjs +0 -4
  474. package/esm2022/lib/entity/entity-selector/entity-selector.component.mjs +0 -174
  475. package/esm2022/lib/entity/entity-selector/entity-selector.module.mjs +0 -19
  476. package/esm2022/lib/entity/entity-table/entity-table-row.directive.mjs +0 -138
  477. package/esm2022/lib/entity/entity-table/entity-table.component.mjs +0 -884
  478. package/esm2022/lib/entity/entity-table/entity-table.module.mjs +0 -19
  479. package/esm2022/lib/entity/entity-table-paginator/entity-table-paginator.component.mjs +0 -158
  480. package/esm2022/lib/entity/entity-table-paginator/entity-table-paginator.interface.mjs +0 -2
  481. package/esm2022/lib/entity/entity-table-paginator/entity-table-paginator.module.mjs +0 -19
  482. package/esm2022/lib/entity/entity-table-paginator/index.mjs +0 -3
  483. package/esm2022/lib/entity/entity.module.mjs +0 -22
  484. package/esm2022/lib/entity/index.mjs +0 -14
  485. package/esm2022/lib/entity/shared/entity.enums.mjs +0 -28
  486. package/esm2022/lib/entity/shared/entity.interfaces.mjs +0 -2
  487. package/esm2022/lib/entity/shared/entity.utils.mjs +0 -73
  488. package/esm2022/lib/entity/shared/index.mjs +0 -10
  489. package/esm2022/lib/entity/shared/state.mjs +0 -194
  490. package/esm2022/lib/entity/shared/store.mjs +0 -322
  491. package/esm2022/lib/entity/shared/strategies/filter-custom-function.mjs +0 -80
  492. package/esm2022/lib/entity/shared/strategies/filter-selection.mjs +0 -81
  493. package/esm2022/lib/entity/shared/strategies/index.mjs +0 -4
  494. package/esm2022/lib/entity/shared/strategies/strategy.mjs +0 -78
  495. package/esm2022/lib/entity/shared/transaction.mjs +0 -329
  496. package/esm2022/lib/entity/shared/view.mjs +0 -330
  497. package/esm2022/lib/entity/shared/watcher.mjs +0 -135
  498. package/esm2022/lib/environment/environment.interface.mjs +0 -2
  499. package/esm2022/lib/environment/index.mjs +0 -2
  500. package/esm2022/lib/flexible/flexible.component.mjs +0 -135
  501. package/esm2022/lib/flexible/flexible.module.mjs +0 -25
  502. package/esm2022/lib/flexible/flexible.type.mjs +0 -2
  503. package/esm2022/lib/flexible/index.mjs +0 -3
  504. package/esm2022/lib/form/form/form.component.mjs +0 -103
  505. package/esm2022/lib/form/form/form.module.mjs +0 -19
  506. package/esm2022/lib/form/form-field/form-field-select.component.mjs +0 -117
  507. package/esm2022/lib/form/form-field/form-field-text.component.mjs +0 -126
  508. package/esm2022/lib/form/form-field/form-field-textarea.component.mjs +0 -95
  509. package/esm2022/lib/form/form-field/form-field.component.mjs +0 -65
  510. package/esm2022/lib/form/form-field/form-field.module.mjs +0 -23
  511. package/esm2022/lib/form/form-field/index.mjs +0 -15
  512. package/esm2022/lib/form/form-group/form-group.component.mjs +0 -82
  513. package/esm2022/lib/form/form-group/form-group.module.mjs +0 -19
  514. package/esm2022/lib/form/form.module.mjs +0 -25
  515. package/esm2022/lib/form/index.mjs +0 -13
  516. package/esm2022/lib/form/shared/form-field-component.mjs +0 -7
  517. package/esm2022/lib/form/shared/form-field.service.mjs +0 -29
  518. package/esm2022/lib/form/shared/form.interfaces.mjs +0 -2
  519. package/esm2022/lib/form/shared/form.service.mjs +0 -82
  520. package/esm2022/lib/form/shared/form.utils.mjs +0 -41
  521. package/esm2022/lib/form/shared/index.mjs +0 -6
  522. package/esm2022/lib/form-dialog/form-dialog.component.mjs +0 -94
  523. package/esm2022/lib/form-dialog/form-dialog.interface.mjs +0 -2
  524. package/esm2022/lib/form-dialog/form-dialog.module.mjs +0 -31
  525. package/esm2022/lib/form-dialog/form-dialog.service.mjs +0 -30
  526. package/esm2022/lib/form-dialog/index.mjs +0 -4
  527. package/esm2022/lib/home-button/home-button.component.mjs +0 -26
  528. package/esm2022/lib/home-button/home-button.module.mjs +0 -19
  529. package/esm2022/lib/home-button/index.mjs +0 -2
  530. package/esm2022/lib/image/image-error.directive.mjs +0 -35
  531. package/esm2022/lib/image/image.module.mjs +0 -26
  532. package/esm2022/lib/image/index.mjs +0 -6
  533. package/esm2022/lib/image/secure-image.pipe.mjs +0 -66
  534. package/esm2022/lib/interactive-tour/index.mjs +0 -5
  535. package/esm2022/lib/interactive-tour/interactive-tour.component.mjs +0 -126
  536. package/esm2022/lib/interactive-tour/interactive-tour.interface.mjs +0 -2
  537. package/esm2022/lib/interactive-tour/interactive-tour.loader.mjs +0 -49
  538. package/esm2022/lib/interactive-tour/interactive-tour.module.mjs +0 -19
  539. package/esm2022/lib/interactive-tour/interactive-tour.service.mjs +0 -303
  540. package/esm2022/lib/json-dialog/index.mjs +0 -3
  541. package/esm2022/lib/json-dialog/json-dialog.component.mjs +0 -38
  542. package/esm2022/lib/json-dialog/json-dialog.module.mjs +0 -26
  543. package/esm2022/lib/json-dialog/json-dialog.service.mjs +0 -26
  544. package/esm2022/lib/keyvalue/index.mjs +0 -2
  545. package/esm2022/lib/keyvalue/keyvalue.module.mjs +0 -25
  546. package/esm2022/lib/keyvalue/keyvalue.pipe.mjs +0 -19
  547. package/esm2022/lib/list/index.mjs +0 -6
  548. package/esm2022/lib/list/list-item.directive.mjs +0 -166
  549. package/esm2022/lib/list/list.component.mjs +0 -252
  550. package/esm2022/lib/list/list.module.mjs +0 -26
  551. package/esm2022/lib/panel/index.mjs +0 -2
  552. package/esm2022/lib/panel/panel.component.mjs +0 -30
  553. package/esm2022/lib/panel/panel.module.mjs +0 -19
  554. package/esm2022/lib/select-value-dialog/index.mjs +0 -5
  555. package/esm2022/lib/select-value-dialog/select-value-check-radio-dialog.component.mjs +0 -103
  556. package/esm2022/lib/select-value-dialog/select-value-dialog.enums.mjs +0 -6
  557. package/esm2022/lib/select-value-dialog/select-value-dialog.interface.mjs +0 -2
  558. package/esm2022/lib/select-value-dialog/select-value-dialog.module.mjs +0 -27
  559. package/esm2022/lib/select-value-dialog/select-value-dialog.service.mjs +0 -29
  560. package/esm2022/lib/sidenav/index.mjs +0 -2
  561. package/esm2022/lib/sidenav/sidenav-shim.directive.mjs +0 -58
  562. package/esm2022/lib/sidenav/sidenav.module.mjs +0 -25
  563. package/esm2022/lib/spinner/index.mjs +0 -9
  564. package/esm2022/lib/spinner/spinner-activity.directive.mjs +0 -56
  565. package/esm2022/lib/spinner/spinner.component.mjs +0 -30
  566. package/esm2022/lib/spinner/spinner.module.mjs +0 -21
  567. package/esm2022/lib/stop-propagation/index.mjs +0 -9
  568. package/esm2022/lib/stop-propagation/stop-drop-propagation.directive.mjs +0 -21
  569. package/esm2022/lib/stop-propagation/stop-propagation.directive.mjs +0 -20
  570. package/esm2022/lib/stop-propagation/stop-propagation.module.mjs +0 -26
  571. package/esm2022/lib/table/index.mjs +0 -6
  572. package/esm2022/lib/table/table-action-color.enum.mjs +0 -7
  573. package/esm2022/lib/table/table-database.mjs +0 -28
  574. package/esm2022/lib/table/table-datasource.mjs +0 -64
  575. package/esm2022/lib/table/table-model.interface.mjs +0 -2
  576. package/esm2022/lib/table/table.component.mjs +0 -143
  577. package/esm2022/lib/table/table.module.mjs +0 -25
  578. package/esm2022/lib/tool/index.mjs +0 -3
  579. package/esm2022/lib/tool/shared/index.mjs +0 -6
  580. package/esm2022/lib/tool/shared/tool-component.mjs +0 -9
  581. package/esm2022/lib/tool/shared/tool.interface.mjs +0 -2
  582. package/esm2022/lib/tool/shared/tool.service.mjs +0 -43
  583. package/esm2022/lib/tool/shared/toolbox.enums.mjs +0 -2
  584. package/esm2022/lib/tool/shared/toolbox.mjs +0 -184
  585. package/esm2022/lib/tool/tool.module.mjs +0 -28
  586. package/esm2022/lib/tool/toolbox/toolbox.animation.mjs +0 -10
  587. package/esm2022/lib/tool/toolbox/toolbox.component.mjs +0 -243
  588. package/esm2022/lib/tool/toolbox/toolbox.module.mjs +0 -19
  589. package/esm2022/lib/widget/index.mjs +0 -3
  590. package/esm2022/lib/widget/shared/index.mjs +0 -4
  591. package/esm2022/lib/widget/shared/widget.interfaces.mjs +0 -2
  592. package/esm2022/lib/widget/shared/widget.mjs +0 -4
  593. package/esm2022/lib/widget/shared/widget.service.mjs +0 -22
  594. package/esm2022/lib/widget/widget-outlet/widget-outlet.component.mjs +0 -114
  595. package/esm2022/lib/widget/widget-outlet/widget-outlet.module.mjs +0 -19
  596. package/esm2022/lib/widget/widget.module.mjs +0 -22
  597. package/esm2022/lib/workspace/index.mjs +0 -10
  598. package/esm2022/lib/workspace/shared/index.mjs +0 -4
  599. package/esm2022/lib/workspace/shared/store.mjs +0 -37
  600. package/esm2022/lib/workspace/shared/workspace.interfaces.mjs +0 -2
  601. package/esm2022/lib/workspace/shared/workspace.mjs +0 -143
  602. package/esm2022/lib/workspace/workspace-selector/workspace-selector.component.mjs +0 -52
  603. package/esm2022/lib/workspace/workspace-selector/workspace-selector.module.mjs +0 -19
  604. package/esm2022/lib/workspace/workspace-widget-outlet/workspace-widget-outlet.component.mjs +0 -74
  605. package/esm2022/lib/workspace/workspace-widget-outlet/workspace-widget-outlet.module.mjs +0 -19
  606. package/esm2022/lib/workspace/workspace.module.mjs +0 -22
  607. package/lib/action/actionbar/actionbar-item.component.d.ts +0 -78
  608. package/lib/action/index.d.ts +0 -2
  609. package/lib/action/shared/action.interfaces.d.ts +0 -17
  610. package/lib/action/shared/store.d.ts +0 -8
  611. package/lib/backdrop/index.d.ts +0 -1
  612. package/lib/badge-icon/badge-icon.directive.d.ts +0 -36
  613. package/lib/badge-icon/index.d.ts +0 -1
  614. package/lib/clickout/index.d.ts +0 -1
  615. package/lib/clone/index.d.ts +0 -1
  616. package/lib/collapsible/index.d.ts +0 -5
  617. package/lib/color-picker-form-field/index.d.ts +0 -1
  618. package/lib/confirm-dialog/index.d.ts +0 -3
  619. package/lib/context-menu/index.d.ts +0 -5
  620. package/lib/custom-html/index.d.ts +0 -5
  621. package/lib/dom/index.d.ts +0 -2
  622. package/lib/drag-drop/index.d.ts +0 -1
  623. package/lib/dynamic-component/index.d.ts +0 -2
  624. package/lib/entity/entity-table-paginator/index.d.ts +0 -2
  625. package/lib/entity/entity.module.d.ts +0 -12
  626. package/lib/entity/index.d.ts +0 -9
  627. package/lib/flexible/index.d.ts +0 -2
  628. package/lib/form/form-field/index.d.ts +0 -9
  629. package/lib/form/form.module.d.ts +0 -15
  630. package/lib/form/index.d.ts +0 -7
  631. package/lib/form-dialog/form-dialog.component.d.ts +0 -24
  632. package/lib/form-dialog/form-dialog.interface.d.ts +0 -18
  633. package/lib/form-dialog/index.d.ts +0 -3
  634. package/lib/home-button/index.d.ts +0 -1
  635. package/lib/image/index.d.ts +0 -5
  636. package/lib/interactive-tour/index.d.ts +0 -4
  637. package/lib/interactive-tour/interactive-tour.component.d.ts +0 -30
  638. package/lib/json-dialog/index.d.ts +0 -2
  639. package/lib/keyvalue/index.d.ts +0 -1
  640. package/lib/list/index.d.ts +0 -5
  641. package/lib/panel/index.d.ts +0 -1
  642. package/lib/select-value-dialog/index.d.ts +0 -4
  643. package/lib/sidenav/index.d.ts +0 -1
  644. package/lib/spinner/index.d.ts +0 -5
  645. package/lib/spinner/spinner.module.d.ts +0 -11
  646. package/lib/stop-propagation/index.d.ts +0 -5
  647. package/lib/table/index.d.ts +0 -5
  648. package/lib/tool/index.d.ts +0 -2
  649. package/lib/tool/shared/tool.interface.d.ts +0 -18
  650. package/lib/tool/shared/toolbox.d.ts +0 -95
  651. package/lib/tool/toolbox/toolbox.component.d.ts +0 -128
  652. package/lib/widget/index.d.ts +0 -2
  653. package/lib/widget/shared/widget.d.ts +0 -4
  654. package/lib/widget/shared/widget.service.d.ts +0 -10
  655. package/lib/widget/widget-outlet/widget-outlet.component.d.ts +0 -71
  656. package/lib/workspace/index.d.ts +0 -6
  657. package/lib/workspace/shared/store.d.ts +0 -20
  658. package/lib/workspace/shared/workspace.d.ts +0 -108
  659. package/lib/workspace/shared/workspace.interfaces.d.ts +0 -11
  660. package/lib/workspace/workspace-selector/workspace-selector.component.d.ts +0 -38
  661. package/lib/workspace/workspace-widget-outlet/workspace-widget-outlet.component.d.ts +0 -57
  662. package/lib/workspace/workspace.module.d.ts +0 -11
  663. /package/{lib/action → action}/action.module.d.ts +0 -0
  664. /package/{lib/action → action}/actionbar/actionbar.component.d.ts +0 -0
  665. /package/{lib/action → action}/actionbar/actionbar.module.d.ts +0 -0
  666. /package/{lib/action → action}/shared/action.enums.d.ts +0 -0
  667. /package/{lib/action → action}/shared/index.d.ts +0 -0
  668. /package/{src/lib/action → action/src}/action.theming.scss +0 -0
  669. /package/{src/lib/action → action/src}/actionbar/actionbar-item.theming.scss +0 -0
  670. /package/{src/lib/action → action/src}/actionbar/actionbar.theming.scss +0 -0
  671. /package/{lib/backdrop → backdrop}/backdrop.component.d.ts +0 -0
  672. /package/{lib/backdrop → backdrop}/backdrop.module.d.ts +0 -0
  673. /package/{lib/badge-icon → badge}/badge-icon.module.d.ts +0 -0
  674. /package/{lib/clickout → clickout}/clickout.directive.d.ts +0 -0
  675. /package/{lib/clickout → clickout}/clickout.module.d.ts +0 -0
  676. /package/{lib/clone → clone}/clone.module.d.ts +0 -0
  677. /package/{lib/clone → clone}/clone.pipe.d.ts +0 -0
  678. /package/{lib/collapsible → collapsible}/collapse.directive.d.ts +0 -0
  679. /package/{lib/collapsible → collapsible}/collapsible.component.d.ts +0 -0
  680. /package/{lib/collapsible → collapsible}/collapsible.module.d.ts +0 -0
  681. /package/{src/lib/collapsible → collapsible/src}/collapsible.theming.scss +0 -0
  682. /package/{lib → color}/color-picker-form-field/color-picker-form-field.component.d.ts +0 -0
  683. /package/{lib → color}/color-picker-form-field/color-picker-form-field.module.d.ts +0 -0
  684. /package/{lib/confirm-dialog → confirm-dialog}/confirm-dialog.component.d.ts +0 -0
  685. /package/{lib/confirm-dialog → confirm-dialog}/confirm-dialog.interface.d.ts +0 -0
  686. /package/{lib/confirm-dialog → confirm-dialog}/confirm-dialog.module.d.ts +0 -0
  687. /package/{lib/confirm-dialog → confirm-dialog}/confirm-dialog.service.d.ts +0 -0
  688. /package/{lib/context-menu → context-menu}/context-menu.directive.d.ts +0 -0
  689. /package/{lib/context-menu → context-menu}/context-menu.module.d.ts +0 -0
  690. /package/{lib/context-menu → context-menu}/long-press.directive.d.ts +0 -0
  691. /package/{lib/custom-html → custom-html}/custom-html.component.d.ts +0 -0
  692. /package/{lib/custom-html → custom-html}/custom-html.module.d.ts +0 -0
  693. /package/{lib/custom-html → custom-html}/custom-html.pipe.d.ts +0 -0
  694. /package/{lib/dom → dom}/dom.interfaces.d.ts +0 -0
  695. /package/{lib/dom → dom}/dom.module.d.ts +0 -0
  696. /package/{lib/dom → dom}/dom.service.d.ts +0 -0
  697. /package/{lib/drag-drop → drag-drop}/drag-drop.directive.d.ts +0 -0
  698. /package/{lib/drag-drop → drag-drop}/drag-drop.module.d.ts +0 -0
  699. /package/{lib/dynamic-component → dynamic-component}/dynamic-component.module.d.ts +0 -0
  700. /package/{lib/dynamic-component → dynamic-component}/dynamic-outlet/dynamic-outlet.component.d.ts +0 -0
  701. /package/{lib/dynamic-component → dynamic-component}/dynamic-outlet/dynamic-outlet.module.d.ts +0 -0
  702. /package/{lib/dynamic-component → dynamic-component}/shared/dynamic-component.d.ts +0 -0
  703. /package/{lib/dynamic-component → dynamic-component}/shared/dynamic-component.interfaces.d.ts +0 -0
  704. /package/{lib/dynamic-component → dynamic-component}/shared/dynamic-component.service.d.ts +0 -0
  705. /package/{lib/dynamic-component → dynamic-component}/shared/index.d.ts +0 -0
  706. /package/{lib/entity → entity}/entity-selector/entity-selector.component.d.ts +0 -0
  707. /package/{lib/entity → entity}/entity-selector/entity-selector.module.d.ts +0 -0
  708. /package/{lib/entity → entity}/entity-table/entity-table-row.directive.d.ts +0 -0
  709. /package/{lib/entity → entity}/entity-table/entity-table.component.d.ts +0 -0
  710. /package/{lib/entity → entity}/entity-table/entity-table.module.d.ts +0 -0
  711. /package/{lib/entity → entity}/entity-table-paginator/entity-table-paginator.component.d.ts +0 -0
  712. /package/{lib/entity → entity}/entity-table-paginator/entity-table-paginator.interface.d.ts +0 -0
  713. /package/{lib/entity → entity}/entity-table-paginator/entity-table-paginator.module.d.ts +0 -0
  714. /package/{lib/entity → entity}/shared/entity.enums.d.ts +0 -0
  715. /package/{lib/entity → entity}/shared/entity.interfaces.d.ts +0 -0
  716. /package/{lib/entity → entity}/shared/entity.utils.d.ts +0 -0
  717. /package/{lib/entity → entity}/shared/index.d.ts +0 -0
  718. /package/{lib/entity → entity}/shared/state.d.ts +0 -0
  719. /package/{lib/entity → entity}/shared/store.d.ts +0 -0
  720. /package/{lib/entity → entity}/shared/strategies/filter-custom-function.d.ts +0 -0
  721. /package/{lib/entity → entity}/shared/strategies/filter-selection.d.ts +0 -0
  722. /package/{lib/entity → entity}/shared/strategies/index.d.ts +0 -0
  723. /package/{lib/entity → entity}/shared/strategies/strategy.d.ts +0 -0
  724. /package/{lib/entity → entity}/shared/transaction.d.ts +0 -0
  725. /package/{lib/entity → entity}/shared/view.d.ts +0 -0
  726. /package/{lib/entity → entity}/shared/watcher.d.ts +0 -0
  727. /package/{src/lib/entity → entity/src}/entity-selector/entity-selector.theming.scss +0 -0
  728. /package/{src/lib/entity → entity/src}/entity-table/entity-table.theming.scss +0 -0
  729. /package/{src/lib/entity → entity/src}/entity.theming.scss +0 -0
  730. /package/{lib/environment → environment}/environment.interface.d.ts +0 -0
  731. /package/{lib/environment/index.d.ts → environment/public_api.d.ts} +0 -0
  732. /package/{lib/flexible → flexible}/flexible.component.d.ts +0 -0
  733. /package/{lib/flexible → flexible}/flexible.module.d.ts +0 -0
  734. /package/{lib/flexible → flexible}/flexible.type.d.ts +0 -0
  735. /package/{lib/form → form}/form/form.component.d.ts +0 -0
  736. /package/{lib/form → form}/form/form.module.d.ts +0 -0
  737. /package/{lib → form}/form-dialog/form-dialog.module.d.ts +0 -0
  738. /package/{lib → form}/form-dialog/form-dialog.service.d.ts +0 -0
  739. /package/{lib/form → form}/form-field/form-field-select.component.d.ts +0 -0
  740. /package/{lib/form → form}/form-field/form-field-text.component.d.ts +0 -0
  741. /package/{lib/form → form}/form-field/form-field-textarea.component.d.ts +0 -0
  742. /package/{lib/form → form}/form-field/form-field.component.d.ts +0 -0
  743. /package/{lib/form → form}/form-field/form-field.module.d.ts +0 -0
  744. /package/{lib/form → form}/form-group/form-group.component.d.ts +0 -0
  745. /package/{lib/form → form}/form-group/form-group.module.d.ts +0 -0
  746. /package/{lib/form → form}/shared/form-field-component.d.ts +0 -0
  747. /package/{lib/form → form}/shared/form-field.service.d.ts +0 -0
  748. /package/{lib/form → form}/shared/form.interfaces.d.ts +0 -0
  749. /package/{lib/form → form}/shared/form.service.d.ts +0 -0
  750. /package/{lib/form → form}/shared/form.utils.d.ts +0 -0
  751. /package/{lib/form → form}/shared/index.d.ts +0 -0
  752. /package/{lib/home-button → home-button}/home-button.component.d.ts +0 -0
  753. /package/{lib/home-button → home-button}/home-button.module.d.ts +0 -0
  754. /package/{src/lib/home-button → home-button/src}/home-button.theming.scss +0 -0
  755. /package/{lib/image → image}/image-error.directive.d.ts +0 -0
  756. /package/{lib/image → image}/image.module.d.ts +0 -0
  757. /package/{lib/image → image}/secure-image.pipe.d.ts +0 -0
  758. /package/{lib/interactive-tour → interactive-tour}/interactive-tour.interface.d.ts +0 -0
  759. /package/{lib/interactive-tour → interactive-tour}/interactive-tour.loader.d.ts +0 -0
  760. /package/{lib/interactive-tour → interactive-tour}/interactive-tour.module.d.ts +0 -0
  761. /package/{lib/interactive-tour → interactive-tour}/interactive-tour.service.d.ts +0 -0
  762. /package/{src/lib/interactive-tour → interactive-tour/src}/interactive-tour.theming.scss +0 -0
  763. /package/{lib/json-dialog → json-dialog}/json-dialog.component.d.ts +0 -0
  764. /package/{lib/json-dialog → json-dialog}/json-dialog.module.d.ts +0 -0
  765. /package/{lib/json-dialog → json-dialog}/json-dialog.service.d.ts +0 -0
  766. /package/{lib/keyvalue → keyvalue}/keyvalue.module.d.ts +0 -0
  767. /package/{lib/keyvalue → keyvalue}/keyvalue.pipe.d.ts +0 -0
  768. /package/{lib/list → list}/list-item.directive.d.ts +0 -0
  769. /package/{lib/list → list}/list.component.d.ts +0 -0
  770. /package/{lib/list → list}/list.module.d.ts +0 -0
  771. /package/{src/lib/list → list/src}/list.theming.scss +0 -0
  772. /package/{lib/panel → panel}/panel.component.d.ts +0 -0
  773. /package/{lib/panel → panel}/panel.module.d.ts +0 -0
  774. /package/{src/lib/panel → panel/src}/panel.theming.scss +0 -0
  775. /package/{lib/select-value-dialog → select-value-dialog}/select-value-check-radio-dialog.component.d.ts +0 -0
  776. /package/{lib/select-value-dialog → select-value-dialog}/select-value-dialog.enums.d.ts +0 -0
  777. /package/{lib/select-value-dialog → select-value-dialog}/select-value-dialog.interface.d.ts +0 -0
  778. /package/{lib/select-value-dialog → select-value-dialog}/select-value-dialog.module.d.ts +0 -0
  779. /package/{lib/select-value-dialog → select-value-dialog}/select-value-dialog.service.d.ts +0 -0
  780. /package/{lib/sidenav → sidenav}/sidenav-shim.directive.d.ts +0 -0
  781. /package/{lib/sidenav → sidenav}/sidenav.module.d.ts +0 -0
  782. /package/{lib/spinner → spinner}/spinner-activity.directive.d.ts +0 -0
  783. /package/{lib/spinner → spinner}/spinner.component.d.ts +0 -0
  784. /package/{lib/stop-propagation → stop-propagation}/stop-drop-propagation.directive.d.ts +0 -0
  785. /package/{lib/stop-propagation → stop-propagation}/stop-propagation.directive.d.ts +0 -0
  786. /package/{lib/stop-propagation → stop-propagation}/stop-propagation.module.d.ts +0 -0
  787. /package/{lib/table → table}/table-action-color.enum.d.ts +0 -0
  788. /package/{lib/table → table}/table-database.d.ts +0 -0
  789. /package/{lib/table → table}/table-datasource.d.ts +0 -0
  790. /package/{lib/table → table}/table-model.interface.d.ts +0 -0
  791. /package/{lib/table → table}/table.component.d.ts +0 -0
  792. /package/{lib/table → table}/table.module.d.ts +0 -0
  793. /package/{lib/tool → tool}/shared/index.d.ts +0 -0
  794. /package/{lib/tool → tool}/shared/tool-component.d.ts +0 -0
  795. /package/{lib/tool → tool}/shared/tool.service.d.ts +0 -0
  796. /package/{lib/tool → tool}/shared/toolbox.enums.d.ts +0 -0
  797. /package/{src/lib/tool → tool/src}/tool.theming.scss +0 -0
  798. /package/{src/lib/tool → tool/src}/toolbox/toolbox.theming.scss +0 -0
  799. /package/{lib/tool → tool}/tool.module.d.ts +0 -0
  800. /package/{lib/tool → tool}/toolbox/toolbox.animation.d.ts +0 -0
  801. /package/{lib/tool → tool}/toolbox/toolbox.module.d.ts +0 -0
  802. /package/{lib/widget → widget}/shared/index.d.ts +0 -0
  803. /package/{lib/widget → widget}/shared/widget.interfaces.d.ts +0 -0
  804. /package/{lib/widget → widget}/widget-outlet/widget-outlet.module.d.ts +0 -0
  805. /package/{lib/widget → widget}/widget.module.d.ts +0 -0
  806. /package/{lib/workspace → workspace}/shared/index.d.ts +0 -0
  807. /package/{lib/workspace → workspace}/workspace-selector/workspace-selector.module.d.ts +0 -0
  808. /package/{lib/workspace → workspace}/workspace-widget-outlet/workspace-widget-outlet.module.d.ts +0 -0
@@ -1,81 +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 EntityStoreFilterSelectionStrategy extends EntityStoreStrategy {
7
- /**
8
- * Store / filter ids map
9
- */
10
- filters = new Map();
11
- /**
12
- * Bind this strategy to a store and start filtering it
13
- * @param store Entity store
14
- */
15
- bindStore(store) {
16
- super.bindStore(store);
17
- if (this.active === true) {
18
- this.filterStore(store);
19
- }
20
- }
21
- /**
22
- * Unbind this strategy from a store and stop filtering it
23
- * @param store Entity store
24
- */
25
- unbindStore(store) {
26
- super.unbindStore(store);
27
- if (this.active === true) {
28
- this.unfilterStore(store);
29
- }
30
- }
31
- /**
32
- * Start filtering all stores
33
- * @internal
34
- */
35
- doActivate() {
36
- this.filterAll();
37
- }
38
- /**
39
- * Stop filtering all stores
40
- * @internal
41
- */
42
- doDeactivate() {
43
- this.unfilterAll();
44
- }
45
- /**
46
- * Filter all stores
47
- */
48
- filterAll() {
49
- this.stores.forEach((store) => this.filterStore(store));
50
- }
51
- /**
52
- * Unfilter all stores
53
- */
54
- unfilterAll() {
55
- this.stores.forEach((store) => this.unfilterStore(store));
56
- }
57
- /**
58
- * Filter a store and add it to the filters map
59
- */
60
- filterStore(store) {
61
- if (this.filters.has(store)) {
62
- return;
63
- }
64
- const filter = (record) => {
65
- return record.state.selected === true;
66
- };
67
- this.filters.set(store, store.stateView.addFilter(filter));
68
- }
69
- /**
70
- * Unfilter a store and delete it from the filters map
71
- */
72
- unfilterStore(store) {
73
- const filterId = this.filters.get(store);
74
- if (filterId === undefined) {
75
- return;
76
- }
77
- store.stateView.removeFilter(filterId);
78
- this.filters.delete(store);
79
- }
80
- }
81
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLXNlbGVjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbW1vbi9zcmMvbGliL2VudGl0eS9zaGFyZWQvc3RyYXRlZ2llcy9maWx0ZXItc2VsZWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUVqRDs7O0dBR0c7QUFDSCxNQUFNLE9BQU8sa0NBQW1DLFNBQVEsbUJBQW1CO0lBQ3pFOztPQUVHO0lBQ0ssT0FBTyxHQUE2QixJQUFJLEdBQUcsRUFBRSxDQUFDO0lBRXREOzs7T0FHRztJQUNILFNBQVMsQ0FBQyxLQUFrQjtRQUMxQixLQUFLLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3ZCLElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxJQUFJLEVBQUUsQ0FBQztZQUN6QixJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzFCLENBQUM7SUFDSCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsV0FBVyxDQUFDLEtBQWtCO1FBQzVCLEtBQUssQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDekIsSUFBSSxJQUFJLENBQUMsTUFBTSxLQUFLLElBQUksRUFBRSxDQUFDO1lBQ3pCLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDNUIsQ0FBQztJQUNILENBQUM7SUFFRDs7O09BR0c7SUFDTyxVQUFVO1FBQ2xCLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNuQixDQUFDO0lBRUQ7OztPQUdHO0lBQ08sWUFBWTtRQUNwQixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVEOztPQUVHO0lBQ0ssU0FBUztRQUNmLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBa0IsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7SUFFRDs7T0FFRztJQUNLLFdBQVc7UUFDakIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFrQixFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDekUsQ0FBQztJQUVEOztPQUVHO0lBQ0ssV0FBVyxDQUFDLEtBQWtCO1FBQ3BDLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUM1QixPQUFPO1FBQ1QsQ0FBQztRQUVELE1BQU0sTUFBTSxHQUFHLENBQUMsTUFBNEIsRUFBRSxFQUFFO1lBQzlDLE9BQU8sTUFBTSxDQUFDLEtBQUssQ0FBQyxRQUFRLEtBQUssSUFBSSxDQUFDO1FBQ3hDLENBQUMsQ0FBQztRQUNGLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFRDs7T0FFRztJQUNLLGFBQWEsQ0FBQyxLQUFrQjtRQUN0QyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN6QyxJQUFJLFFBQVEsS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUMzQixPQUFPO1FBQ1QsQ0FBQztRQUVELEtBQUssQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzdCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVudGl0eVJlY29yZCB9IGZyb20gJy4uL2VudGl0eS5pbnRlcmZhY2VzJztcbmltcG9ydCB7IEVudGl0eVN0b3JlIH0gZnJvbSAnLi4vc3RvcmUnO1xuaW1wb3J0IHsgRW50aXR5U3RvcmVTdHJhdGVneSB9IGZyb20gJy4vc3RyYXRlZ3knO1xuXG4vKipcbiAqIFdoZW4gYWN0aXZlLCB0aGlzIHN0cmF0ZWd5IGZpbHRlcnMgYSBzdG9yZSdzIHN0YXRlVmlldyB0byByZXR1cm5cbiAqIHNlbGVjdGVkIGVudGl0aWVzIG9ubHkuXG4gKi9cbmV4cG9ydCBjbGFzcyBFbnRpdHlTdG9yZUZpbHRlclNlbGVjdGlvblN0cmF0ZWd5IGV4dGVuZHMgRW50aXR5U3RvcmVTdHJhdGVneSB7XG4gIC8qKlxuICAgKiBTdG9yZSAvIGZpbHRlciBpZHMgbWFwXG4gICAqL1xuICBwcml2YXRlIGZpbHRlcnM6IE1hcDxFbnRpdHlTdG9yZSwgc3RyaW5nPiA9IG5ldyBNYXAoKTtcblxuICAvKipcbiAgICogQmluZCB0aGlzIHN0cmF0ZWd5IHRvIGEgc3RvcmUgYW5kIHN0YXJ0IGZpbHRlcmluZyBpdFxuICAgKiBAcGFyYW0gc3RvcmUgRW50aXR5IHN0b3JlXG4gICAqL1xuICBiaW5kU3RvcmUoc3RvcmU6IEVudGl0eVN0b3JlKSB7XG4gICAgc3VwZXIuYmluZFN0b3JlKHN0b3JlKTtcbiAgICBpZiAodGhpcy5hY3RpdmUgPT09IHRydWUpIHtcbiAgICAgIHRoaXMuZmlsdGVyU3RvcmUoc3RvcmUpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBVbmJpbmQgdGhpcyBzdHJhdGVneSBmcm9tIGEgc3RvcmUgYW5kIHN0b3AgZmlsdGVyaW5nIGl0XG4gICAqIEBwYXJhbSBzdG9yZSBFbnRpdHkgc3RvcmVcbiAgICovXG4gIHVuYmluZFN0b3JlKHN0b3JlOiBFbnRpdHlTdG9yZSkge1xuICAgIHN1cGVyLnVuYmluZFN0b3JlKHN0b3JlKTtcbiAgICBpZiAodGhpcy5hY3RpdmUgPT09IHRydWUpIHtcbiAgICAgIHRoaXMudW5maWx0ZXJTdG9yZShzdG9yZSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFN0YXJ0IGZpbHRlcmluZyBhbGwgc3RvcmVzXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcHJvdGVjdGVkIGRvQWN0aXZhdGUoKSB7XG4gICAgdGhpcy5maWx0ZXJBbGwoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTdG9wIGZpbHRlcmluZyBhbGwgc3RvcmVzXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcHJvdGVjdGVkIGRvRGVhY3RpdmF0ZSgpIHtcbiAgICB0aGlzLnVuZmlsdGVyQWxsKCk7XG4gIH1cblxuICAvKipcbiAgICogRmlsdGVyIGFsbCBzdG9yZXNcbiAgICovXG4gIHByaXZhdGUgZmlsdGVyQWxsKCkge1xuICAgIHRoaXMuc3RvcmVzLmZvckVhY2goKHN0b3JlOiBFbnRpdHlTdG9yZSkgPT4gdGhpcy5maWx0ZXJTdG9yZShzdG9yZSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVuZmlsdGVyIGFsbCBzdG9yZXNcbiAgICovXG4gIHByaXZhdGUgdW5maWx0ZXJBbGwoKSB7XG4gICAgdGhpcy5zdG9yZXMuZm9yRWFjaCgoc3RvcmU6IEVudGl0eVN0b3JlKSA9PiB0aGlzLnVuZmlsdGVyU3RvcmUoc3RvcmUpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGaWx0ZXIgYSBzdG9yZSBhbmQgYWRkIGl0IHRvIHRoZSBmaWx0ZXJzIG1hcFxuICAgKi9cbiAgcHJpdmF0ZSBmaWx0ZXJTdG9yZShzdG9yZTogRW50aXR5U3RvcmUpIHtcbiAgICBpZiAodGhpcy5maWx0ZXJzLmhhcyhzdG9yZSkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBmaWx0ZXIgPSAocmVjb3JkOiBFbnRpdHlSZWNvcmQ8b2JqZWN0PikgPT4ge1xuICAgICAgcmV0dXJuIHJlY29yZC5zdGF0ZS5zZWxlY3RlZCA9PT0gdHJ1ZTtcbiAgICB9O1xuICAgIHRoaXMuZmlsdGVycy5zZXQoc3RvcmUsIHN0b3JlLnN0YXRlVmlldy5hZGRGaWx0ZXIoZmlsdGVyKSk7XG4gIH1cblxuICAvKipcbiAgICogVW5maWx0ZXIgYSBzdG9yZSBhbmQgZGVsZXRlIGl0IGZyb20gdGhlIGZpbHRlcnMgbWFwXG4gICAqL1xuICBwcml2YXRlIHVuZmlsdGVyU3RvcmUoc3RvcmU6IEVudGl0eVN0b3JlKSB7XG4gICAgY29uc3QgZmlsdGVySWQgPSB0aGlzLmZpbHRlcnMuZ2V0KHN0b3JlKTtcbiAgICBpZiAoZmlsdGVySWQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHN0b3JlLnN0YXRlVmlldy5yZW1vdmVGaWx0ZXIoZmlsdGVySWQpO1xuICAgIHRoaXMuZmlsdGVycy5kZWxldGUoc3RvcmUpO1xuICB9XG59XG4iXX0=
@@ -1,4 +0,0 @@
1
- export * from './strategy';
2
- export * from './filter-custom-function';
3
- export * from './filter-selection';
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vc3JjL2xpYi9lbnRpdHkvc2hhcmVkL3N0cmF0ZWdpZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxZQUFZLENBQUM7QUFDM0IsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLG9CQUFvQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9zdHJhdGVneSc7XG5leHBvcnQgKiBmcm9tICcuL2ZpbHRlci1jdXN0b20tZnVuY3Rpb24nO1xuZXhwb3J0ICogZnJvbSAnLi9maWx0ZXItc2VsZWN0aW9uJztcbiJdfQ==
@@ -1,78 +0,0 @@
1
- import { BehaviorSubject } from 'rxjs';
2
- /**
3
- * Entity store strategies. They can do pretty much anything during a store's
4
- * lifetime. For example, they may act as triggers when something happens.
5
- * Sharing a strategy is a good idea when multiple strategies would have
6
- * on cancelling effect on each other.
7
- *
8
- * At creation, strategy is inactive and needs to be manually activated.
9
- */
10
- export class EntityStoreStrategy {
11
- options;
12
- /**
13
- * Feature store
14
- * @internal
15
- */
16
- stores = [];
17
- /**
18
- * Whether this strategy is active
19
- * @internal
20
- */
21
- get active() {
22
- return this.active$.value;
23
- }
24
- active$ = new BehaviorSubject(false);
25
- constructor(options = {}) {
26
- this.options = options;
27
- this.options = options;
28
- }
29
- /**
30
- * Activate the strategy. If it's already active, it'll be deactivated
31
- * and activated again.
32
- */
33
- activate() {
34
- if (this.active === true) {
35
- this.doDeactivate();
36
- }
37
- this.active$.next(true);
38
- this.doActivate();
39
- }
40
- /**
41
- * Activate the strategy. If it's already active, it'll be deactivated
42
- * and activated again.
43
- */
44
- deactivate() {
45
- this.active$.next(false);
46
- this.doDeactivate();
47
- }
48
- /**
49
- * Bind this strategy to a store
50
- * @param store Feature store
51
- */
52
- bindStore(store) {
53
- if (this.stores.indexOf(store) < 0) {
54
- this.stores.push(store);
55
- }
56
- }
57
- /**
58
- * Unbind this strategy from store
59
- * @param store Feature store
60
- */
61
- unbindStore(store) {
62
- const index = this.stores.indexOf(store);
63
- if (index >= 0) {
64
- this.stores.splice(index, 1);
65
- }
66
- }
67
- /**
68
- * Do the stataegy activation
69
- * @internal
70
- */
71
- doActivate() { }
72
- /**
73
- * Do the strategy deactivation
74
- * @internal
75
- */
76
- doDeactivate() { }
77
- }
78
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyYXRlZ3kuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vc3JjL2xpYi9lbnRpdHkvc2hhcmVkL3N0cmF0ZWdpZXMvc3RyYXRlZ3kudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUt2Qzs7Ozs7OztHQU9HO0FBQ0gsTUFBTSxPQUFPLG1CQUFtQjtJQWdCUjtJQWZ0Qjs7O09BR0c7SUFDTyxNQUFNLEdBQWtCLEVBQUUsQ0FBQztJQUVyQzs7O09BR0c7SUFDSCxJQUFJLE1BQU07UUFDUixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO0lBQzVCLENBQUM7SUFDUSxPQUFPLEdBQTZCLElBQUksZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBRXhFLFlBQXNCLFVBQXNDLEVBQUU7UUFBeEMsWUFBTyxHQUFQLE9BQU8sQ0FBaUM7UUFDNUQsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7SUFDekIsQ0FBQztJQUVEOzs7T0FHRztJQUNILFFBQVE7UUFDTixJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssSUFBSSxFQUFFLENBQUM7WUFDekIsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3RCLENBQUM7UUFDRCxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN4QixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDcEIsQ0FBQztJQUVEOzs7T0FHRztJQUNILFVBQVU7UUFDUixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN6QixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVEOzs7T0FHRztJQUNILFNBQVMsQ0FBQyxLQUFrQjtRQUMxQixJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ25DLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzFCLENBQUM7SUFDSCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsV0FBVyxDQUFDLEtBQWtCO1FBQzVCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3pDLElBQUksS0FBSyxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQ2YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQy9CLENBQUM7SUFDSCxDQUFDO0lBRUQ7OztPQUdHO0lBQ08sVUFBVSxLQUFJLENBQUM7SUFFekI7OztPQUdHO0lBQ08sWUFBWSxLQUFJLENBQUM7Q0FDNUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgRW50aXR5U3RvcmVTdHJhdGVneU9wdGlvbnMgfSBmcm9tICcuLi9lbnRpdHkuaW50ZXJmYWNlcyc7XG5pbXBvcnQgdHlwZSB7IEVudGl0eVN0b3JlIH0gZnJvbSAnLi4vc3RvcmUnO1xuXG4vKipcbiAqIEVudGl0eSBzdG9yZSBzdHJhdGVnaWVzLiBUaGV5IGNhbiBkbyBwcmV0dHkgbXVjaCBhbnl0aGluZyBkdXJpbmcgYSBzdG9yZSdzXG4gKiBsaWZldGltZS4gRm9yIGV4YW1wbGUsIHRoZXkgbWF5IGFjdCBhcyB0cmlnZ2VycyB3aGVuIHNvbWV0aGluZyBoYXBwZW5zLlxuICogU2hhcmluZyBhIHN0cmF0ZWd5IGlzIGEgZ29vZCBpZGVhIHdoZW4gbXVsdGlwbGUgc3RyYXRlZ2llcyB3b3VsZCBoYXZlXG4gKiBvbiBjYW5jZWxsaW5nIGVmZmVjdCBvbiBlYWNoIG90aGVyLlxuICpcbiAqIEF0IGNyZWF0aW9uLCBzdHJhdGVneSBpcyBpbmFjdGl2ZSBhbmQgbmVlZHMgdG8gYmUgbWFudWFsbHkgYWN0aXZhdGVkLlxuICovXG5leHBvcnQgY2xhc3MgRW50aXR5U3RvcmVTdHJhdGVneSB7XG4gIC8qKlxuICAgKiBGZWF0dXJlIHN0b3JlXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcHJvdGVjdGVkIHN0b3JlczogRW50aXR5U3RvcmVbXSA9IFtdO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoaXMgc3RyYXRlZ3kgaXMgYWN0aXZlXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgZ2V0IGFjdGl2ZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5hY3RpdmUkLnZhbHVlO1xuICB9XG4gIHJlYWRvbmx5IGFjdGl2ZSQ6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPiA9IG5ldyBCZWhhdmlvclN1YmplY3QoZmFsc2UpO1xuXG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBvcHRpb25zOiBFbnRpdHlTdG9yZVN0cmF0ZWd5T3B0aW9ucyA9IHt9KSB7XG4gICAgdGhpcy5vcHRpb25zID0gb3B0aW9ucztcbiAgfVxuXG4gIC8qKlxuICAgKiBBY3RpdmF0ZSB0aGUgc3RyYXRlZ3kuIElmIGl0J3MgYWxyZWFkeSBhY3RpdmUsIGl0J2xsIGJlIGRlYWN0aXZhdGVkXG4gICAqIGFuZCBhY3RpdmF0ZWQgYWdhaW4uXG4gICAqL1xuICBhY3RpdmF0ZSgpIHtcbiAgICBpZiAodGhpcy5hY3RpdmUgPT09IHRydWUpIHtcbiAgICAgIHRoaXMuZG9EZWFjdGl2YXRlKCk7XG4gICAgfVxuICAgIHRoaXMuYWN0aXZlJC5uZXh0KHRydWUpO1xuICAgIHRoaXMuZG9BY3RpdmF0ZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFjdGl2YXRlIHRoZSBzdHJhdGVneS4gSWYgaXQncyBhbHJlYWR5IGFjdGl2ZSwgaXQnbGwgYmUgZGVhY3RpdmF0ZWRcbiAgICogYW5kIGFjdGl2YXRlZCBhZ2Fpbi5cbiAgICovXG4gIGRlYWN0aXZhdGUoKSB7XG4gICAgdGhpcy5hY3RpdmUkLm5leHQoZmFsc2UpO1xuICAgIHRoaXMuZG9EZWFjdGl2YXRlKCk7XG4gIH1cblxuICAvKipcbiAgICogQmluZCB0aGlzIHN0cmF0ZWd5IHRvIGEgc3RvcmVcbiAgICogQHBhcmFtIHN0b3JlIEZlYXR1cmUgc3RvcmVcbiAgICovXG4gIGJpbmRTdG9yZShzdG9yZTogRW50aXR5U3RvcmUpIHtcbiAgICBpZiAodGhpcy5zdG9yZXMuaW5kZXhPZihzdG9yZSkgPCAwKSB7XG4gICAgICB0aGlzLnN0b3Jlcy5wdXNoKHN0b3JlKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVW5iaW5kIHRoaXMgc3RyYXRlZ3kgZnJvbSBzdG9yZVxuICAgKiBAcGFyYW0gc3RvcmUgRmVhdHVyZSBzdG9yZVxuICAgKi9cbiAgdW5iaW5kU3RvcmUoc3RvcmU6IEVudGl0eVN0b3JlKSB7XG4gICAgY29uc3QgaW5kZXggPSB0aGlzLnN0b3Jlcy5pbmRleE9mKHN0b3JlKTtcbiAgICBpZiAoaW5kZXggPj0gMCkge1xuICAgICAgdGhpcy5zdG9yZXMuc3BsaWNlKGluZGV4LCAxKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogRG8gdGhlIHN0YXRhZWd5IGFjdGl2YXRpb25cbiAgICogQGludGVybmFsXG4gICAqL1xuICBwcm90ZWN0ZWQgZG9BY3RpdmF0ZSgpIHt9XG5cbiAgLyoqXG4gICAqIERvIHRoZSBzdHJhdGVneSBkZWFjdGl2YXRpb25cbiAgICogQGludGVybmFsXG4gICAqL1xuICBwcm90ZWN0ZWQgZG9EZWFjdGl2YXRlKCkge31cbn1cbiJdfQ==
@@ -1,329 +0,0 @@
1
- import { of } from 'rxjs';
2
- import { BehaviorSubject } from 'rxjs';
3
- import { catchError, tap } from 'rxjs/operators';
4
- import { EntityOperationType } from './entity.enums';
5
- import { getEntityId } from './entity.utils';
6
- import { EntityStore } from './store';
7
- /**
8
- * This class holds a reference to the insert, update and delete
9
- * operations performed on a store. This is useful to commit
10
- * these operations in a single pass or to cancel them.
11
- */
12
- export class EntityTransaction {
13
- /**
14
- * Store holding the operations on another store
15
- */
16
- operations;
17
- /**
18
- * Method to get an entity's id
19
- */
20
- getKey;
21
- /**
22
- * Whether there are pending operations
23
- */
24
- get empty$() {
25
- return this.operations.empty$;
26
- }
27
- /**
28
- * Whether there are pending operations
29
- */
30
- get empty() {
31
- return this.empty$.value;
32
- }
33
- /**
34
- * Whether thise store is in commit phase
35
- */
36
- get inCommitPhase() {
37
- return this.inCommitPhase$.value;
38
- }
39
- inCommitPhase$ = new BehaviorSubject(false);
40
- constructor(options = {}) {
41
- this.getKey = options.getKey ? options.getKey : getEntityId;
42
- this.operations = new EntityStore([], {
43
- getKey: (operation) => operation.key
44
- });
45
- }
46
- destroy() {
47
- this.operations.destroy();
48
- }
49
- /**
50
- * Insert an entity into a store. If no store is specified, an insert
51
- * operation is still created but the transaction won't add the new
52
- * entity to the store.
53
- * @param current The entity to insert
54
- * @param store Optional: The store to insert the entity into
55
- * @param meta Optional: Any metadata on the operation
56
- */
57
- insert(current, store, meta) {
58
- const existingOperation = this.getOperationByEntity(current);
59
- if (existingOperation !== undefined) {
60
- this.removeOperation(existingOperation);
61
- }
62
- this.doInsert(current, store, meta);
63
- }
64
- /**
65
- * Update an entity in a store. If no store is specified, an update
66
- * operation is still created but the transaction won't update the
67
- * entity into the store.
68
- * @param previous The entity before update
69
- * @param current The entity after update
70
- * @param store Optional: The store to update the entity into
71
- * @param meta Optional: Any metadata on the operation
72
- */
73
- update(previous, current, store, meta) {
74
- const existingOperation = this.getOperationByEntity(current);
75
- if (existingOperation !== undefined) {
76
- this.removeOperation(existingOperation);
77
- if (existingOperation.type === EntityOperationType.Insert) {
78
- this.doInsert(current, store, meta);
79
- return;
80
- }
81
- else if (existingOperation.type === EntityOperationType.Update) {
82
- previous = existingOperation.previous;
83
- }
84
- }
85
- this.doUpdate(previous, current, store, meta);
86
- }
87
- /**
88
- * Delete an entity from a store. If no store is specified, a delete
89
- * operation is still created but the transaction won't remove the
90
- * entity from the store.
91
- * @param previous The entity before delete
92
- * @param store Optional: The store to delete the entity from
93
- * @param meta Optional: Any metadata on the operation
94
- */
95
- delete(previous, store, meta) {
96
- const existingOperation = this.getOperationByEntity(previous);
97
- if (existingOperation !== undefined) {
98
- this.removeOperation(existingOperation);
99
- if (existingOperation.type === EntityOperationType.Insert) {
100
- if (store !== undefined) {
101
- store.delete(previous);
102
- }
103
- return;
104
- }
105
- }
106
- this.doDelete(previous, store, meta);
107
- }
108
- /**
109
- * Commit operations the transaction. This method doesn't do much
110
- * in itself. The handler it receives does the hard work and it's
111
- * implementation is left to the caller. This method simply wraps
112
- * the handler into an error catching mechanism to update
113
- * the transaction afterward. The caller needs to subscribe to this
114
- * method's output (observable) for the commit to be performed.
115
- * @param operations Operations to commit
116
- * @param handler Function that handles the commit operation
117
- * @returns The handler output (observable)
118
- */
119
- commit(operations, handler) {
120
- this.inCommitPhase$.next(true);
121
- return handler(this, operations).pipe(catchError(() => of(new Error())), tap((result) => {
122
- if (result instanceof Error) {
123
- this.onCommitError(operations);
124
- }
125
- else {
126
- this.onCommitSuccess(operations);
127
- }
128
- }));
129
- }
130
- /**
131
- * Commit all the operations of the transaction.
132
- * @param handler Function that handles the commit operation
133
- * @returns The handler output (observable)
134
- */
135
- commitAll(handler) {
136
- const operations = this.getOperationsInCommit();
137
- return this.commit(operations, handler);
138
- }
139
- /**
140
- * Rollback this transaction
141
- */
142
- rollback() {
143
- this.rollbackOperations(this.operations.all());
144
- }
145
- /**
146
- * Rollback specific operations
147
- */
148
- rollbackOperations(operations) {
149
- this.checkInCommitPhase();
150
- const operationsFactory = () => new Map([
151
- [EntityOperationType.Delete, []],
152
- [EntityOperationType.Update, []],
153
- [EntityOperationType.Insert, []]
154
- ]);
155
- const storesOperations = new Map();
156
- // Group operations by store and by operation type.
157
- // Grouping operations allows us to revert them in bacth, thus, triggering
158
- // observables only one per operation type.
159
- for (const operation of operations) {
160
- const store = operation.store;
161
- if (operation.store === undefined) {
162
- continue;
163
- }
164
- let storeOperations = storesOperations.get(store);
165
- if (storeOperations === undefined) {
166
- storeOperations = operationsFactory();
167
- storesOperations.set(store, storeOperations);
168
- }
169
- storeOperations.get(operation.type).push(operation);
170
- }
171
- Array.from(storesOperations.keys()).forEach((store) => {
172
- const storeOperations = storesOperations.get(store);
173
- const deletes = storeOperations.get(EntityOperationType.Delete);
174
- store.insertMany(deletes.map((_delete) => _delete.previous));
175
- const updates = storeOperations.get(EntityOperationType.Update);
176
- store.updateMany(updates.map((_update) => _update.previous));
177
- const inserts = storeOperations.get(EntityOperationType.Insert);
178
- store.deleteMany(inserts.map((_insert) => _insert.current));
179
- });
180
- this.operations.deleteMany(operations);
181
- this.inCommitPhase$.next(false);
182
- }
183
- /**
184
- * Clear this transaction
185
- * @todo Raise event and synchronize stores?
186
- */
187
- clear() {
188
- this.operations.clear();
189
- this.inCommitPhase$.next(false);
190
- }
191
- /**
192
- * Get any existing operation on an entity
193
- * @param entity Entity
194
- * @returns Either an insert, update or delete operation
195
- */
196
- getOperationByEntity(entity) {
197
- return this.operations.get(this.getKey(entity));
198
- }
199
- /**
200
- * Merge another transaction in this one
201
- * @param transaction Another transaction
202
- */
203
- mergeTransaction(transaction) {
204
- this.checkInCommitPhase();
205
- const operations = transaction.operations.all();
206
- operations.forEach((operation) => {
207
- this.addOperation(operation);
208
- });
209
- }
210
- /**
211
- * Create an insert operation and add an entity to the store
212
- * @param current The entity to insert
213
- * @param store Optional: The store to insert the entity into
214
- * @param meta Optional: Any metadata on the operation
215
- */
216
- doInsert(current, store, meta) {
217
- this.addOperation({
218
- key: this.getKey(current),
219
- type: EntityOperationType.Insert,
220
- previous: undefined,
221
- current,
222
- store,
223
- meta
224
- });
225
- if (store !== undefined) {
226
- store.insert(current);
227
- }
228
- }
229
- /**
230
- * Create an update operation and update an entity into the store
231
- * @param previous The entity before update
232
- * @param current The entity after update
233
- * @param store Optional: The store to update the entity into
234
- * @param meta Optional: Any metadata on the operation
235
- */
236
- doUpdate(previous, current, store, meta) {
237
- this.addOperation({
238
- key: this.getKey(current),
239
- type: EntityOperationType.Update,
240
- previous,
241
- current,
242
- store,
243
- meta
244
- });
245
- if (store !== undefined) {
246
- store.update(current);
247
- }
248
- }
249
- /**
250
- * Create a delete operation and delete an entity from the store
251
- * @param previous The entity before delete
252
- * @param store Optional: The store to delete the entity from
253
- * @param meta Optional: Any metadata on the operation
254
- */
255
- doDelete(previous, store, meta) {
256
- this.addOperation({
257
- key: this.getKey(previous),
258
- type: EntityOperationType.Delete,
259
- previous,
260
- current: undefined,
261
- store,
262
- meta
263
- });
264
- if (store !== undefined) {
265
- store.delete(previous);
266
- }
267
- }
268
- /**
269
- * Remove committed operations from store
270
- * @param operations Commited operations
271
- * @todo Raise event and synchronize stores?
272
- */
273
- resolveOperations(operations) {
274
- this.operations.deleteMany(operations);
275
- }
276
- /**
277
- * On commit success, resolve commited operations and exit commit phase
278
- * @param operations Commited operations
279
- */
280
- onCommitSuccess(operations) {
281
- this.resolveOperations(operations);
282
- this.inCommitPhase$.next(false);
283
- }
284
- /**
285
- * On commit error, abort transaction
286
- * @param operations Commited operations
287
- */
288
- onCommitError(operations) {
289
- this.inCommitPhase$.next(false);
290
- }
291
- /**
292
- * Add an operation to the operations store
293
- * @param operation Operation to add
294
- */
295
- addOperation(operation) {
296
- this.checkInCommitPhase();
297
- this.operations.insert(operation);
298
- this.operations.state.update(operation, { added: true });
299
- }
300
- /**
301
- * Remove an operation from the operations store
302
- * @param operation Operation to remove
303
- */
304
- removeOperation(operation) {
305
- this.checkInCommitPhase();
306
- this.operations.delete(operation);
307
- this.operations.state.update(operation, { added: false });
308
- }
309
- /**
310
- * Get all the operations to commit
311
- * @returns Operations to commit
312
- */
313
- getOperationsInCommit() {
314
- return this.operations.stateView
315
- .manyBy((value) => {
316
- return value.state.added === true;
317
- })
318
- .map((value) => value.entity);
319
- }
320
- /**
321
- * Check if the transaction is in the commit phase and throw an error if it is
322
- */
323
- checkInCommitPhase() {
324
- if (this.inCommitPhase === true) {
325
- throw new Error('This transaction is in the commit phase. Cannot complete this operation.');
326
- }
327
- }
328
- }
329
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vc3JjL2xpYi9lbnRpdHkvc2hhcmVkL3RyYW5zYWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdEMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN2QyxPQUFPLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWpELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBTXJELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBZ0J0Qzs7OztHQUlHO0FBQ0gsTUFBTSxPQUFPLGlCQUFpQjtJQUM1Qjs7T0FFRztJQUNNLFVBQVUsQ0FBcUQ7SUFFeEU7O09BRUc7SUFDTSxNQUFNLENBQW1CO0lBRWxDOztPQUVHO0lBQ0gsSUFBSSxNQUFNO1FBQ1IsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQztJQUNoQyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFJLEtBQUs7UUFDUCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDO0lBQzNCLENBQUM7SUFFRDs7T0FFRztJQUNILElBQUksYUFBYTtRQUNmLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUM7SUFDbkMsQ0FBQztJQUNRLGNBQWMsR0FBNkIsSUFBSSxlQUFlLENBQ3JFLEtBQUssQ0FDTixDQUFDO0lBRUYsWUFBWSxVQUFvQyxFQUFFO1FBQ2hELElBQUksQ0FBQyxNQUFNLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENB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QUksRUFBRSxDQUFDO1lBQ2hDLE1BQU0sSUFBSSxLQUFLLENBQ2IsMEVBQTBFLENBQzNFLENBQUM7UUFDSixDQUFDO0lBQ0gsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBFbnRpdHlPcGVyYXRpb25UeXBlIH0gZnJvbSAnLi9lbnRpdHkuZW51bXMnO1xuaW1wb3J0IHtcbiAgRW50aXR5S2V5LFxuICBFbnRpdHlPcGVyYXRpb25TdGF0ZSxcbiAgRW50aXR5VHJhbnNhY3Rpb25PcHRpb25zXG59IGZyb20gJy4vZW50aXR5LmludGVyZmFjZXMnO1xuaW1wb3J0IHsgZ2V0RW50aXR5SWQgfSBmcm9tICcuL2VudGl0eS51dGlscyc7XG5pbXBvcnQgeyBFbnRpdHlTdG9yZSB9IGZyb20gJy4vc3RvcmUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEVudGl0eU9wZXJhdGlvbjxFIGV4dGVuZHMgb2JqZWN0ID0gb2JqZWN0PiB7XG4gIGtleTogRW50aXR5S2V5O1xuICB0eXBlOiBFbnRpdHlPcGVyYXRpb25UeXBlO1xuICBwcmV2aW91czogRSB8IHVuZGVmaW5lZDtcbiAgY3VycmVudDogRSB8IHVuZGVmaW5lZDtcbiAgc3RvcmU/OiBFbnRpdHlTdG9yZTxFPjtcbiAgbWV0YT86IHsgW2tleTogc3RyaW5nXTogYW55IH07XG59XG5cbmV4cG9ydCB0eXBlIEVudGl0eVRyYW5zYWN0aW9uQ29tbWl0SGFuZGxlciA9IChcbiAgdHJhbnNhY3Rpb246IEVudGl0eVRyYW5zYWN0aW9uLFxuICBvcGVyYXRpb25zOiBFbnRpdHlPcGVyYXRpb25bXVxuKSA9PiBPYnNlcnZhYmxlPGFueT47XG5cbi8qKlxuICogVGhpcyBjbGFzcyBob2xkcyBhIHJlZmVyZW5jZSB0byB0aGUgaW5zZXJ0LCB1cGRhdGUgYW5kIGRlbGV0ZVxuICogb3BlcmF0aW9ucyBwZXJmb3JtZWQgb24gYSBzdG9yZS4gVGhpcyBpcyB1c2VmdWwgdG8gY29tbWl0XG4gKiB0aGVzZSBvcGVyYXRpb25zIGluIGEgc2luZ2xlIHBhc3Mgb3IgdG8gY2FuY2VsIHRoZW0uXG4gKi9cbmV4cG9ydCBjbGFzcyBFbnRpdHlUcmFuc2FjdGlvbiB7XG4gIC8qKlxuICAgKiBTdG9yZSBob2xkaW5nIHRoZSBvcGVyYXRpb25zIG9uIGFub3RoZXIgc3RvcmVcbiAgICovXG4gIHJlYWRvbmx5IG9wZXJhdGlvbnM6IEVudGl0eVN0b3JlPEVudGl0eU9wZXJhdGlvbiwgRW50aXR5T3BlcmF0aW9uU3RhdGU+O1xuXG4gIC8qKlxuICAgKiBNZXRob2QgdG8gZ2V0IGFuIGVudGl0eSdzIGlkXG4gICAqL1xuICByZWFkb25seSBnZXRLZXk6IChFKSA9PiBFbnRpdHlLZXk7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlcmUgYXJlIHBlbmRpbmcgb3BlcmF0aW9uc1xuICAgKi9cbiAgZ2V0IGVtcHR5JCgpOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLm9wZXJhdGlvbnMuZW1wdHkkO1xuICB9XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlcmUgYXJlIHBlbmRpbmcgb3BlcmF0aW9uc1xuICAgKi9cbiAgZ2V0IGVtcHR5KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmVtcHR5JC52YWx1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoaXNlIHN0b3JlIGlzIGluIGNvbW1pdCBwaGFzZVxuICAgKi9cbiAgZ2V0IGluQ29tbWl0UGhhc2UoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaW5Db21taXRQaGFzZSQudmFsdWU7XG4gIH1cbiAgcmVhZG9ubHkgaW5Db21taXRQaGFzZSQ6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPiA9IG5ldyBCZWhhdmlvclN1YmplY3QoXG4gICAgZmFsc2VcbiAgKTtcblxuICBjb25zdHJ1Y3RvcihvcHRpb25zOiBFbnRpdHlUcmFuc2FjdGlvbk9wdGlvbnMgPSB7fSkge1xuICAgIHRoaXMuZ2V0S2V5ID0gb3B0aW9ucy5nZXRLZXkgPyBvcHRpb25zLmdldEtleSA6IGdldEVudGl0eUlkO1xuICAgIHRoaXMub3BlcmF0aW9ucyA9IG5ldyBFbnRpdHlTdG9yZTxFbnRpdHlPcGVyYXRpb24sIEVudGl0eU9wZXJhdGlvblN0YXRlPihcbiAgICAgIFtdLFxuICAgICAge1xuICAgICAgICBnZXRLZXk6IChvcGVyYXRpb246IEVudGl0eU9wZXJhdGlvbikgPT4gb3BlcmF0aW9uLmtleVxuICAgICAgfVxuICAgICk7XG4gIH1cblxuICBkZXN0cm95KCkge1xuICAgIHRoaXMub3BlcmF0aW9ucy5kZXN0cm95KCk7XG4gIH1cblxuICAvKipcbiAgICogSW5zZXJ0IGFuIGVudGl0eSBpbnRvIGEgc3RvcmUuIElmIG5vIHN0b3JlIGlzIHNwZWNpZmllZCwgYW4gaW5zZXJ0XG4gICAqIG9wZXJhdGlvbiBpcyBzdGlsbCBjcmVhdGVkIGJ1dCB0aGUgdHJhbnNhY3Rpb24gd29uJ3QgYWRkIHRoZSBuZXdcbiAgICogZW50aXR5IHRvIHRoZSBzdG9yZS5cbiAgICogQHBhcmFtIGN1cnJlbnQgVGhlIGVudGl0eSB0byBpbnNlcnRcbiAgICogQHBhcmFtIHN0b3JlIE9wdGlvbmFsOiBUaGUgc3RvcmUgdG8gaW5zZXJ0IHRoZSBlbnRpdHkgaW50b1xuICAgKiBAcGFyYW0gbWV0YSBPcHRpb25hbDogQW55IG1ldGFkYXRhIG9uIHRoZSBvcGVyYXRpb25cbiAgICovXG4gIGluc2VydChcbiAgICBjdXJyZW50OiBvYmplY3QsXG4gICAgc3RvcmU/OiBFbnRpdHlTdG9yZTxvYmplY3Q+LFxuICAgIG1ldGE/OiB7IFtrZXk6IHN0cmluZ106IGFueSB9XG4gICkge1xuICAgIGNvbnN0IGV4aXN0aW5nT3BlcmF0aW9uID0gdGhpcy5nZXRPcGVyYXRpb25CeUVudGl0eShjdXJyZW50KTtcbiAgICBpZiAoZXhpc3RpbmdPcGVyYXRpb24gIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5yZW1vdmVPcGVyYXRpb24oZXhpc3RpbmdPcGVyYXRpb24pO1xuICAgIH1cblxuICAgIHRoaXMuZG9JbnNlcnQoY3VycmVudCwgc3RvcmUsIG1ldGEpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZSBhbiBlbnRpdHkgaW4gYSBzdG9yZS4gSWYgbm8gc3RvcmUgaXMgc3BlY2lmaWVkLCBhbiB1cGRhdGVcbiAgICogb3BlcmF0aW9uIGlzIHN0aWxsIGNyZWF0ZWQgYnV0IHRoZSB0cmFuc2FjdGlvbiB3b24ndCB1cGRhdGUgdGhlXG4gICAqIGVudGl0eSBpbnRvIHRoZSBzdG9yZS5cbiAgICogQHBhcmFtIHByZXZpb3VzIFRoZSBlbnRpdHkgYmVmb3JlIHVwZGF0ZVxuICAgKiBAcGFyYW0gY3VycmVudCBUaGUgZW50aXR5IGFmdGVyIHVwZGF0ZVxuICAgKiBAcGFyYW0gc3RvcmUgT3B0aW9uYWw6IFRoZSBzdG9yZSB0byB1cGRhdGUgdGhlIGVudGl0eSBpbnRvXG4gICAqIEBwYXJhbSBtZXRhIE9wdGlvbmFsOiBBbnkgbWV0YWRhdGEgb24gdGhlIG9wZXJhdGlvblxuICAgKi9cbiAgdXBkYXRlKFxuICAgIHByZXZpb3VzOiBvYmplY3QsXG4gICAgY3VycmVudDogb2JqZWN0LFxuICAgIHN0b3JlPzogRW50aXR5U3RvcmU8b2JqZWN0PixcbiAgICBtZXRhPzogeyBba2V5OiBzdHJpbmddOiBhbnkgfVxuICApIHtcbiAgICBjb25zdCBleGlzdGluZ09wZXJhdGlvbiA9IHRoaXMuZ2V0T3BlcmF0aW9uQnlFbnRpdHkoY3VycmVudCk7XG4gICAgaWYgKGV4aXN0aW5nT3BlcmF0aW9uICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMucmVtb3ZlT3BlcmF0aW9uKGV4aXN0aW5nT3BlcmF0aW9uKTtcbiAgICAgIGlmIChleGlzdGluZ09wZXJhdGlvbi50eXBlID09PSBFbnRpdHlPcGVyYXRpb25UeXBlLkluc2VydCkge1xuICAgICAgICB0aGlzLmRvSW5zZXJ0KGN1cnJlbnQsIHN0b3JlLCBtZXRhKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfSBlbHNlIGlmIChleGlzdGluZ09wZXJhdGlvbi50eXBlID09PSBFbnRpdHlPcGVyYXRpb25UeXBlLlVwZGF0ZSkge1xuICAgICAgICBwcmV2aW91cyA9IGV4aXN0aW5nT3BlcmF0aW9uLnByZXZpb3VzO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuZG9VcGRhdGUocHJldmlvdXMsIGN1cnJlbnQsIHN0b3JlLCBtZXRhKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZWxldGUgYW4gZW50aXR5IGZyb20gYSBzdG9yZS4gSWYgbm8gc3RvcmUgaXMgc3BlY2lmaWVkLCBhIGRlbGV0ZVxuICAgKiBvcGVyYXRpb24gaXMgc3RpbGwgY3JlYXRlZCBidXQgdGhlIHRyYW5zYWN0aW9uIHdvbid0IHJlbW92ZSB0aGVcbiAgICogZW50aXR5IGZyb20gdGhlIHN0b3JlLlxuICAgKiBAcGFyYW0gcHJldmlvdXMgVGhlIGVudGl0eSBiZWZvcmUgZGVsZXRlXG4gICAqIEBwYXJhbSBzdG9yZSBPcHRpb25hbDogVGhlIHN0b3JlIHRvIGRlbGV0ZSB0aGUgZW50aXR5IGZyb21cbiAgICogQHBhcmFtIG1ldGEgT3B0aW9uYWw6IEFueSBtZXRhZGF0YSBvbiB0aGUgb3BlcmF0aW9uXG4gICAqL1xuICBkZWxldGUoXG4gICAgcHJldmlvdXM6IG9iamVjdCxcbiAgICBzdG9yZT86IEVudGl0eVN0b3JlPG9iamVjdD4sXG4gICAgbWV0YT86IHsgW2tleTogc3RyaW5nXTogYW55IH1cbiAgKSB7XG4gICAgY29uc3QgZXhpc3RpbmdPcGVyYXRpb24gPSB0aGlzLmdldE9wZXJhdGlvbkJ5RW50aXR5KHByZXZpb3VzKTtcbiAgICBpZiAoZXhpc3RpbmdPcGVyYXRpb24gIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5yZW1vdmVPcGVyYXRpb24oZXhpc3RpbmdPcGVyYXRpb24pO1xuICAgICAgaWYgKGV4aXN0aW5nT3BlcmF0aW9uLnR5cGUgPT09IEVudGl0eU9wZXJhdGlvblR5cGUuSW5zZXJ0KSB7XG4gICAgICAgIGlmIChzdG9yZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgc3RvcmUuZGVsZXRlKHByZXZpb3VzKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5kb0RlbGV0ZShwcmV2aW91cywgc3RvcmUsIG1ldGEpO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbW1pdCBvcGVyYXRpb25zIHRoZSB0cmFuc2FjdGlvbi4gVGhpcyBtZXRob2QgZG9lc24ndCBkbyBtdWNoXG4gICAqIGluIGl0c2VsZi4gVGhlIGhhbmRsZXIgaXQgcmVjZWl2ZXMgZG9lcyB0aGUgaGFyZCB3b3JrIGFuZCBpdCdzXG4gICAqIGltcGxlbWVudGF0aW9uIGlzIGxlZnQgdG8gdGhlIGNhbGxlci4gVGhpcyBtZXRob2Qgc2ltcGx5IHdyYXBzXG4gICAqIHRoZSBoYW5kbGVyIGludG8gYW4gZXJyb3IgY2F0Y2hpbmcgbWVjaGFuaXNtIHRvIHVwZGF0ZVxuICAgKiB0aGUgdHJhbnNhY3Rpb24gYWZ0ZXJ3YXJkLiBUaGUgY2FsbGVyIG5lZWRzIHRvIHN1YnNjcmliZSB0byB0aGlzXG4gICAqIG1ldGhvZCdzIG91dHB1dCAob2JzZXJ2YWJsZSkgZm9yIHRoZSBjb21taXQgdG8gYmUgcGVyZm9ybWVkLlxuICAgKiBAcGFyYW0gb3BlcmF0aW9ucyBPcGVyYXRpb25zIHRvIGNvbW1pdFxuICAgKiBAcGFyYW0gaGFuZGxlciBGdW5jdGlvbiB0aGF0IGhhbmRsZXMgdGhlIGNvbW1pdCBvcGVyYXRpb25cbiAgICogQHJldHVybnMgVGhlIGhhbmRsZXIgb3V0cHV0IChvYnNlcnZhYmxlKVxuICAgKi9cbiAgY29tbWl0KFxuICAgIG9wZXJhdGlvbnM6IEVudGl0eU9wZXJhdGlvbltdLFxuICAgIGhhbmRsZXI6IEVudGl0eVRyYW5zYWN0aW9uQ29tbWl0SGFuZGxlclxuICApOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHRoaXMuaW5Db21taXRQaGFzZSQubmV4dCh0cnVlKTtcblxuICAgIHJldHVybiBoYW5kbGVyKHRoaXMsIG9wZXJhdGlvbnMpLnBpcGUoXG4gICAgICBjYXRjaEVycm9yKCgpID0+IG9mKG5ldyBFcnJvcigpKSksXG4gICAgICB0YXAoKHJlc3VsdDogYW55KSA9PiB7XG4gICAgICAgIGlmIChyZXN1bHQgaW5zdGFuY2VvZiBFcnJvcikge1xuICAgICAgICAgIHRoaXMub25Db21taXRFcnJvcihvcGVyYXRpb25zKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLm9uQ29tbWl0U3VjY2VzcyhvcGVyYXRpb25zKTtcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbW1pdCBhbGwgdGhlIG9wZXJhdGlvbnMgb2YgdGhlIHRyYW5zYWN0aW9uLlxuICAgKiBAcGFyYW0gaGFuZGxlciBGdW5jdGlvbiB0aGF0IGhhbmRsZXMgdGhlIGNvbW1pdCBvcGVyYXRpb25cbiAgICogQHJldHVybnMgVGhlIGhhbmRsZXIgb3V0cHV0IChvYnNlcnZhYmxlKVxuICAgKi9cbiAgY29tbWl0QWxsKGhhbmRsZXI6IEVudGl0eVRyYW5zYWN0aW9uQ29tbWl0SGFuZGxlcik6IE9ic2VydmFibGU8YW55PiB7XG4gICAgY29uc3Qgb3BlcmF0aW9ucyA9IHRoaXMuZ2V0T3BlcmF0aW9uc0luQ29tbWl0KCk7XG4gICAgcmV0dXJuIHRoaXMuY29tbWl0KG9wZXJhdGlvbnMsIGhhbmRsZXIpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJvbGxiYWNrIHRoaXMgdHJhbnNhY3Rpb25cbiAgICovXG4gIHJvbGxiYWNrKCkge1xuICAgIHRoaXMucm9sbGJhY2tPcGVyYXRpb25zKHRoaXMub3BlcmF0aW9ucy5hbGwoKSk7XG4gIH1cblxuICAvKipcbiAgICogUm9sbGJhY2sgc3BlY2lmaWMgb3BlcmF0aW9uc1xuICAgKi9cbiAgcm9sbGJhY2tPcGVyYXRpb25zKG9wZXJhdGlvbnM6IEVudGl0eU9wZXJhdGlvbltdKSB7XG4gICAgdGhpcy5jaGVja0luQ29tbWl0UGhhc2UoKTtcblxuICAgIGNvbnN0IG9wZXJhdGlvbnNGYWN0b3J5ID0gKCkgPT5cbiAgICAgIG5ldyBNYXAoW1xuICAgICAgICBbRW50aXR5T3BlcmF0aW9uVHlwZS5EZWxldGUsIFtdXSxcbiAgICAgICAgW0VudGl0eU9wZXJhdGlvblR5cGUuVXBkYXRlLCBbXV0sXG4gICAgICAgIFtFbnRpdHlPcGVyYXRpb25UeXBlLkluc2VydCwgW11dXG4gICAgICBdKTtcbiAgICBjb25zdCBzdG9yZXNPcGVyYXRpb25zID0gbmV3IE1hcCgpO1xuXG4gICAgLy8gR3JvdXAgb3BlcmF0aW9ucyBieSBzdG9yZSBhbmQgYnkgb3BlcmF0aW9uIHR5cGUuXG4gICAgLy8gR3JvdXBpbmcgb3BlcmF0aW9ucyBhbGxvd3MgdXMgdG8gcmV2ZXJ0IHRoZW0gaW4gYmFjdGgsIHRodXMsIHRyaWdnZXJpbmdcbiAgICAvLyBvYnNlcnZhYmxlcyBvbmx5IG9uZSBwZXIgb3BlcmF0aW9uIHR5cGUuXG4gICAgZm9yIChjb25zdCBvcGVyYXRpb24gb2Ygb3BlcmF0aW9ucykge1xuICAgICAgY29uc3Qgc3RvcmUgPSBvcGVyYXRpb24uc3RvcmU7XG4gICAgICBpZiAob3BlcmF0aW9uLnN0b3JlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIGxldCBzdG9yZU9wZXJhdGlvbnMgPSBzdG9yZXNPcGVyYXRpb25zLmdldChzdG9yZSk7XG4gICAgICBpZiAoc3RvcmVPcGVyYXRpb25zID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgc3RvcmVPcGVyYXRpb25zID0gb3BlcmF0aW9uc0ZhY3RvcnkoKTtcbiAgICAgICAgc3RvcmVzT3BlcmF0aW9ucy5zZXQoc3RvcmUsIHN0b3JlT3BlcmF0aW9ucyk7XG4gICAgICB9XG4gICAgICBzdG9yZU9wZXJhdGlvbnMuZ2V0KG9wZXJhdGlvbi50eXBlKS5wdXNoKG9wZXJhdGlvbik7XG4gICAgfVxuXG4gICAgQXJyYXkuZnJvbShzdG9yZXNPcGVyYXRpb25zLmtleXMoKSkuZm9yRWFjaChcbiAgICAgIChzdG9yZTogRW50aXR5U3RvcmU8b2JqZWN0PikgPT4ge1xuICAgICAgICBjb25zdCBzdG9yZU9wZXJhdGlvbnMgPSBzdG9yZXNPcGVyYXRpb25zLmdldChzdG9yZSk7XG5cbiAgICAgICAgY29uc3QgZGVsZXRlcyA9IHN0b3JlT3BlcmF0aW9ucy5nZXQoRW50aXR5T3BlcmF0aW9uVHlwZS5EZWxldGUpO1xuICAgICAgICBzdG9yZS5pbnNlcnRNYW55KFxuICAgICAgICAgIGRlbGV0ZXMubWFwKChfZGVsZXRlOiBFbnRpdHlPcGVyYXRpb24pID0+IF9kZWxldGUucHJldmlvdXMpXG4gICAgICAgICk7XG5cbiAgICAgICAgY29uc3QgdXBkYXRlcyA9IHN0b3JlT3BlcmF0aW9ucy5nZXQoRW50aXR5T3BlcmF0aW9uVHlwZS5VcGRhdGUpO1xuICAgICAgICBzdG9yZS51cGRhdGVNYW55KFxuICAgICAgICAgIHVwZGF0ZXMubWFwKChfdXBkYXRlOiBFbnRpdHlPcGVyYXRpb24pID0+IF91cGRhdGUucHJldmlvdXMpXG4gICAgICAgICk7XG5cbiAgICAgICAgY29uc3QgaW5zZXJ0cyA9IHN0b3JlT3BlcmF0aW9ucy5nZXQoRW50aXR5T3BlcmF0aW9uVHlwZS5JbnNlcnQpO1xuICAgICAgICBzdG9yZS5kZWxldGVNYW55KFxuICAgICAgICAgIGluc2VydHMubWFwKChfaW5zZXJ0OiBFbnRpdHlPcGVyYXRpb24pID0+IF9pbnNlcnQuY3VycmVudClcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICApO1xuXG4gICAgdGhpcy5vcGVyYXRpb25zLmRlbGV0ZU1hbnkob3BlcmF0aW9ucyk7XG4gICAgdGhpcy5pbkNvbW1pdFBoYXNlJC5uZXh0KGZhbHNlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDbGVhciB0aGlzIHRyYW5zYWN0aW9uXG4gICAqIEB0b2RvIFJhaXNlIGV2ZW50IGFuZCBzeW5jaHJvbml6ZSBzdG9yZXM/XG4gICAqL1xuICBjbGVhcigpIHtcbiAgICB0aGlzLm9wZXJhdGlvbnMuY2xlYXIoKTtcbiAgICB0aGlzLmluQ29tbWl0UGhhc2UkLm5leHQoZmFsc2UpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBhbnkgZXhpc3Rpbmcgb3BlcmF0aW9uIG9uIGFuIGVudGl0eVxuICAgKiBAcGFyYW0gZW50aXR5IEVudGl0eVxuICAgKiBAcmV0dXJucyBFaXRoZXIgYW4gaW5zZXJ0LCB1cGRhdGUgb3IgZGVsZXRlIG9wZXJhdGlvblxuICAgKi9cbiAgZ2V0T3BlcmF0aW9uQnlFbnRpdHkoZW50aXR5OiBvYmplY3QpOiBFbnRpdHlPcGVyYXRpb24ge1xuICAgIHJldHVybiB0aGlzLm9wZXJhdGlvbnMuZ2V0KHRoaXMuZ2V0S2V5KGVudGl0eSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIE1lcmdlIGFub3RoZXIgdHJhbnNhY3Rpb24gaW4gdGhpcyBvbmVcbiAgICogQHBhcmFtIHRyYW5zYWN0aW9uIEFub3RoZXIgdHJhbnNhY3Rpb25cbiAgICovXG4gIG1lcmdlVHJhbnNhY3Rpb24odHJhbnNhY3Rpb246IEVudGl0eVRyYW5zYWN0aW9uKSB7XG4gICAgdGhpcy5jaGVja0luQ29tbWl0UGhhc2UoKTtcblxuICAgIGNvbnN0IG9wZXJhdGlvbnMgPSB0cmFuc2FjdGlvbi5vcGVyYXRpb25zLmFsbCgpO1xuICAgIG9wZXJhdGlvbnMuZm9yRWFjaCgob3BlcmF0aW9uOiBFbnRpdHlPcGVyYXRpb24pID0+IHtcbiAgICAgIHRoaXMuYWRkT3BlcmF0aW9uKG9wZXJhdGlvbik7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGFuIGluc2VydCBvcGVyYXRpb24gYW5kIGFkZCBhbiBlbnRpdHkgdG8gdGhlIHN0b3JlXG4gICAqIEBwYXJhbSBjdXJyZW50IFRoZSBlbnRpdHkgdG8gaW5zZXJ0XG4gICAqIEBwYXJhbSBzdG9yZSBPcHRpb25hbDogVGhlIHN0b3JlIHRvIGluc2VydCB0aGUgZW50aXR5IGludG9cbiAgICogQHBhcmFtIG1ldGEgT3B0aW9uYWw6IEFueSBtZXRhZGF0YSBvbiB0aGUgb3BlcmF0aW9uXG4gICAqL1xuICBwcml2YXRlIGRvSW5zZXJ0KFxuICAgIGN1cnJlbnQ6IG9iamVjdCxcbiAgICBzdG9yZT86IEVudGl0eVN0b3JlPG9iamVjdD4sXG4gICAgbWV0YT86IHsgW2tleTogc3RyaW5nXTogYW55IH1cbiAgKSB7XG4gICAgdGhpcy5hZGRPcGVyYXRpb24oe1xuICAgICAga2V5OiB0aGlzLmdldEtleShjdXJyZW50KSxcbiAgICAgIHR5cGU6IEVudGl0eU9wZXJhdGlvblR5cGUuSW5zZXJ0LFxuICAgICAgcHJldmlvdXM6IHVuZGVmaW5lZCxcbiAgICAgIGN1cnJlbnQsXG4gICAgICBzdG9yZSxcbiAgICAgIG1ldGFcbiAgICB9KTtcblxuICAgIGlmIChzdG9yZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBzdG9yZS5pbnNlcnQoY3VycmVudCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhbiB1cGRhdGUgb3BlcmF0aW9uIGFuZCB1cGRhdGUgYW4gZW50aXR5IGludG8gdGhlIHN0b3JlXG4gICAqIEBwYXJhbSBwcmV2aW91cyBUaGUgZW50aXR5IGJlZm9yZSB1cGRhdGVcbiAgICogQHBhcmFtIGN1cnJlbnQgVGhlIGVudGl0eSBhZnRlciB1cGRhdGVcbiAgICogQHBhcmFtIHN0b3JlIE9wdGlvbmFsOiBUaGUgc3RvcmUgdG8gdXBkYXRlIHRoZSBlbnRpdHkgaW50b1xuICAgKiBAcGFyYW0gbWV0YSBPcHRpb25hbDogQW55IG1ldGFkYXRhIG9uIHRoZSBvcGVyYXRpb25cbiAgICovXG4gIHByaXZhdGUgZG9VcGRhdGUoXG4gICAgcHJldmlvdXM6IG9iamVjdCxcbiAgICBjdXJyZW50OiBvYmplY3QsXG4gICAgc3RvcmU/OiBFbnRpdHlTdG9yZTxvYmplY3Q+LFxuICAgIG1ldGE/OiB7IFtrZXk6IHN0cmluZ106IGFueSB9XG4gICkge1xuICAgIHRoaXMuYWRkT3BlcmF0aW9uKHtcbiAgICAgIGtleTogdGhpcy5nZXRLZXkoY3VycmVudCksXG4gICAgICB0eXBlOiBFbnRpdHlPcGVyYXRpb25UeXBlLlVwZGF0ZSxcbiAgICAgIHByZXZpb3VzLFxuICAgICAgY3VycmVudCxcbiAgICAgIHN0b3JlLFxuICAgICAgbWV0YVxuICAgIH0pO1xuXG4gICAgaWYgKHN0b3JlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHN0b3JlLnVwZGF0ZShjdXJyZW50KTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgZGVsZXRlIG9wZXJhdGlvbiBhbmQgZGVsZXRlIGFuIGVudGl0eSBmcm9tIHRoZSBzdG9yZVxuICAgKiBAcGFyYW0gcHJldmlvdXMgVGhlIGVudGl0eSBiZWZvcmUgZGVsZXRlXG4gICAqIEBwYXJhbSBzdG9yZSBPcHRpb25hbDogVGhlIHN0b3JlIHRvIGRlbGV0ZSB0aGUgZW50aXR5IGZyb21cbiAgICogQHBhcmFtIG1ldGEgT3B0aW9uYWw6IEFueSBtZXRhZGF0YSBvbiB0aGUgb3BlcmF0aW9uXG4gICAqL1xuICBwcml2YXRlIGRvRGVsZXRlKFxuICAgIHByZXZpb3VzOiBvYmplY3QsXG4gICAgc3RvcmU/OiBFbnRpdHlTdG9yZTxvYmplY3Q+LFxuICAgIG1ldGE/OiB7IFtrZXk6IHN0cmluZ106IGFueSB9XG4gICkge1xuICAgIHRoaXMuYWRkT3BlcmF0aW9uKHtcbiAgICAgIGtleTogdGhpcy5nZXRLZXkocHJldmlvdXMpLFxuICAgICAgdHlwZTogRW50aXR5T3BlcmF0aW9uVHlwZS5EZWxldGUsXG4gICAgICBwcmV2aW91cyxcbiAgICAgIGN1cnJlbnQ6IHVuZGVmaW5lZCxcbiAgICAgIHN0b3JlLFxuICAgICAgbWV0YVxuICAgIH0pO1xuXG4gICAgaWYgKHN0b3JlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHN0b3JlLmRlbGV0ZShwcmV2aW91cyk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZSBjb21taXR0ZWQgb3BlcmF0aW9ucyBmcm9tIHN0b3JlXG4gICAqIEBwYXJhbSBvcGVyYXRpb25zIENvbW1pdGVkIG9wZXJhdGlvbnNcbiAgICogQHRvZG8gUmFpc2UgZXZlbnQgYW5kIHN5bmNocm9uaXplIHN0b3Jlcz9cbiAgICovXG4gIHByaXZhdGUgcmVzb2x2ZU9wZXJhdGlvbnMob3BlcmF0aW9uczogRW50aXR5T3BlcmF0aW9uW10pIHtcbiAgICB0aGlzLm9wZXJhdGlvbnMuZGVsZXRlTWFueShvcGVyYXRpb25zKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBPbiBjb21taXQgc3VjY2VzcywgcmVzb2x2ZSBjb21taXRlZCBvcGVyYXRpb25zIGFuZCBleGl0IGNvbW1pdCBwaGFzZVxuICAgKiBAcGFyYW0gb3BlcmF0aW9ucyBDb21taXRlZCBvcGVyYXRpb25zXG4gICAqL1xuICBwcml2YXRlIG9uQ29tbWl0U3VjY2VzcyhvcGVyYXRpb25zOiBFbnRpdHlPcGVyYXRpb25bXSkge1xuICAgIHRoaXMucmVzb2x2ZU9wZXJhdGlvbnMob3BlcmF0aW9ucyk7XG4gICAgdGhpcy5pbkNvbW1pdFBoYXNlJC5uZXh0KGZhbHNlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBPbiBjb21taXQgZXJyb3IsIGFib3J0IHRyYW5zYWN0aW9uXG4gICAqIEBwYXJhbSBvcGVyYXRpb25zIENvbW1pdGVkIG9wZXJhdGlvbnNcbiAgICovXG4gIHByaXZhdGUgb25Db21taXRFcnJvcihvcGVyYXRpb25zOiBFbnRpdHlPcGVyYXRpb25bXSkge1xuICAgIHRoaXMuaW5Db21taXRQaGFzZSQubmV4dChmYWxzZSk7XG4gIH1cblxuICAvKipcbiAgICogQWRkIGFuIG9wZXJhdGlvbiB0byB0aGUgb3BlcmF0aW9ucyBzdG9yZVxuICAgKiBAcGFyYW0gb3BlcmF0aW9uIE9wZXJhdGlvbiB0byBhZGRcbiAgICovXG4gIHByaXZhdGUgYWRkT3BlcmF0aW9uKG9wZXJhdGlvbjogRW50aXR5T3BlcmF0aW9uKSB7XG4gICAgdGhpcy5jaGVja0luQ29tbWl0UGhhc2UoKTtcblxuICAgIHRoaXMub3BlcmF0aW9ucy5pbnNlcnQob3BlcmF0aW9uKTtcbiAgICB0aGlzLm9wZXJhdGlvbnMuc3RhdGUudXBkYXRlKG9wZXJhdGlvbiwgeyBhZGRlZDogdHJ1ZSB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW1vdmUgYW4gb3BlcmF0aW9uIGZyb20gdGhlIG9wZXJhdGlvbnMgc3RvcmVcbiAgICogQHBhcmFtIG9wZXJhdGlvbiBPcGVyYXRpb24gdG8gcmVtb3ZlXG4gICAqL1xuICBwcml2YXRlIHJlbW92ZU9wZXJhdGlvbihvcGVyYXRpb246IEVudGl0eU9wZXJhdGlvbikge1xuICAgIHRoaXMuY2hlY2tJbkNvbW1pdFBoYXNlKCk7XG5cbiAgICB0aGlzLm9wZXJhdGlvbnMuZGVsZXRlKG9wZXJhdGlvbik7XG4gICAgdGhpcy5vcGVyYXRpb25zLnN0YXRlLnVwZGF0ZShvcGVyYXRpb24sIHsgYWRkZWQ6IGZhbHNlIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBhbGwgdGhlIG9wZXJhdGlvbnMgdG8gY29tbWl0XG4gICAqIEByZXR1cm5zIE9wZXJhdGlvbnMgdG8gY29tbWl0XG4gICAqL1xuICBwcml2YXRlIGdldE9wZXJhdGlvbnNJbkNvbW1pdCgpOiBFbnRpdHlPcGVyYXRpb25bXSB7XG4gICAgcmV0dXJuIHRoaXMub3BlcmF0aW9ucy5zdGF0ZVZpZXdcbiAgICAgIC5tYW55QnkoXG4gICAgICAgICh2YWx1ZTogeyBlbnRpdHk6IEVudGl0eU9wZXJhdGlvbjsgc3RhdGU6IEVudGl0eU9wZXJhdGlvblN0YXRlIH0pID0+IHtcbiAgICAgICAgICByZXR1cm4gdmFsdWUuc3RhdGUuYWRkZWQgPT09IHRydWU7XG4gICAgICAgIH1cbiAgICAgIClcbiAgICAgIC5tYXAoXG4gICAgICAgICh2YWx1ZTogeyBlbnRpdHk6IEVudGl0eU9wZXJhdGlvbjsgc3RhdGU6IEVudGl0eU9wZXJhdGlvblN0YXRlIH0pID0+XG4gICAgICAgICAgdmFsdWUuZW50aXR5XG4gICAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrIGlmIHRoZSB0cmFuc2FjdGlvbiBpcyBpbiB0aGUgY29tbWl0IHBoYXNlIGFuZCB0aHJvdyBhbiBlcnJvciBpZiBpdCBpc1xuICAgKi9cbiAgcHJpdmF0ZSBjaGVja0luQ29tbWl0UGhhc2UoKSB7XG4gICAgaWYgKHRoaXMuaW5Db21taXRQaGFzZSA9PT0gdHJ1ZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAnVGhpcyB0cmFuc2FjdGlvbiBpcyBpbiB0aGUgY29tbWl0IHBoYXNlLiBDYW5ub3QgY29tcGxldGUgdGhpcyBvcGVyYXRpb24uJ1xuICAgICAgKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==