@igo2/common 1.15.4 → 16.0.0-rc.0

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 (473) hide show
  1. package/common-theme.scss +19 -0
  2. package/{esm2020 → esm2022}/igo2-common.mjs +4 -4
  3. package/esm2022/lib/action/action.module.mjs +20 -0
  4. package/esm2022/lib/action/actionbar/actionbar-item.component.mjs +270 -0
  5. package/esm2022/lib/action/actionbar/actionbar.component.mjs +389 -0
  6. package/{esm2020 → esm2022}/lib/action/actionbar/actionbar.module.mjs +57 -57
  7. package/{esm2020 → esm2022}/lib/action/index.mjs +3 -3
  8. package/{esm2020 → esm2022}/lib/action/shared/action.enums.mjs +7 -7
  9. package/{esm2020 → esm2022}/lib/action/shared/action.interfaces.mjs +2 -2
  10. package/{esm2020 → esm2022}/lib/action/shared/index.mjs +4 -4
  11. package/{esm2020 → esm2022}/lib/action/shared/store.mjs +8 -8
  12. package/esm2022/lib/backdrop/backdrop.component.mjs +27 -0
  13. package/{esm2020 → esm2022}/lib/backdrop/backdrop.module.mjs +25 -25
  14. package/{esm2020 → esm2022}/lib/backdrop/index.mjs +2 -2
  15. package/esm2022/lib/badge-icon/badge-icon.directive.mjs +150 -0
  16. package/{esm2020 → esm2022}/lib/badge-icon/badge-icon.module.mjs +26 -26
  17. package/{esm2020 → esm2022}/lib/badge-icon/index.mjs +2 -2
  18. package/esm2022/lib/clickout/clickout.directive.mjs +33 -0
  19. package/{esm2020 → esm2022}/lib/clickout/clickout.module.mjs +24 -24
  20. package/{esm2020 → esm2022}/lib/clickout/index.mjs +2 -2
  21. package/{esm2020 → esm2022}/lib/clone/clone.module.mjs +24 -24
  22. package/esm2022/lib/clone/clone.pipe.mjs +24 -0
  23. package/{esm2020 → esm2022}/lib/clone/index.mjs +2 -2
  24. package/esm2022/lib/collapsible/collapse.directive.mjs +58 -0
  25. package/esm2022/lib/collapsible/collapsible.component.mjs +54 -0
  26. package/{esm2020 → esm2022}/lib/collapsible/collapsible.module.mjs +27 -27
  27. package/{esm2020 → esm2022}/lib/collapsible/index.mjs +3 -3
  28. package/esm2022/lib/color-picker-form-field/color-picker-form-field.component.mjs +121 -0
  29. package/esm2022/lib/color-picker-form-field/color-picker-form-field.module.mjs +32 -0
  30. package/esm2022/lib/color-picker-form-field/index.mjs +2 -0
  31. package/esm2022/lib/confirm-dialog/confirm-dialog.component.mjs +47 -0
  32. package/{esm2020 → esm2022}/lib/confirm-dialog/confirm-dialog.module.mjs +29 -29
  33. package/esm2022/lib/confirm-dialog/confirm-dialog.service.mjs +29 -0
  34. package/{esm2020 → esm2022}/lib/confirm-dialog/index.mjs +3 -3
  35. package/esm2022/lib/context-menu/context-menu.directive.mjs +110 -0
  36. package/{esm2020 → esm2022}/lib/context-menu/context-menu.module.mjs +25 -25
  37. package/{esm2020 → esm2022}/lib/context-menu/index.mjs +3 -3
  38. package/esm2022/lib/context-menu/long-press.directive.mjs +67 -0
  39. package/esm2022/lib/custom-html/custom-html.component.mjs +27 -0
  40. package/{esm2020 → esm2022}/lib/custom-html/custom-html.module.mjs +47 -47
  41. package/{esm2020 → esm2022}/lib/custom-html/custom-html.pipe.mjs +20 -18
  42. package/{esm2020 → esm2022}/lib/custom-html/index.mjs +3 -3
  43. package/{esm2020 → esm2022}/lib/dom/dom.interfaces.mjs +2 -2
  44. package/{esm2020 → esm2022}/lib/dom/dom.module.mjs +21 -23
  45. package/esm2022/lib/dom/dom.service.mjs +35 -0
  46. package/{esm2020 → esm2022}/lib/dom/index.mjs +3 -3
  47. package/esm2022/lib/drag-drop/drag-drop.directive.mjs +85 -0
  48. package/{esm2020 → esm2022}/lib/drag-drop/drag-drop.module.mjs +24 -24
  49. package/{esm2020 → esm2022}/lib/drag-drop/index.mjs +2 -2
  50. package/esm2022/lib/dynamic-component/dynamic-component.module.mjs +20 -0
  51. package/esm2022/lib/dynamic-component/dynamic-outlet/dynamic-outlet.component.mjs +138 -0
  52. package/esm2022/lib/dynamic-component/dynamic-outlet/dynamic-outlet.module.mjs +22 -0
  53. package/{esm2020 → esm2022}/lib/dynamic-component/index.mjs +3 -3
  54. package/{esm2020 → esm2022}/lib/dynamic-component/shared/dynamic-component.interfaces.mjs +2 -2
  55. package/esm2022/lib/dynamic-component/shared/dynamic-component.mjs +183 -0
  56. package/{esm2020 → esm2022}/lib/dynamic-component/shared/dynamic-component.service.mjs +30 -29
  57. package/{esm2020 → esm2022}/lib/dynamic-component/shared/index.mjs +4 -4
  58. package/esm2022/lib/entity/entity-selector/entity-selector.component.mjs +214 -0
  59. package/esm2022/lib/entity/entity-selector/entity-selector.module.mjs +24 -0
  60. package/esm2022/lib/entity/entity-table/entity-table-row.directive.mjs +139 -0
  61. package/esm2022/lib/entity/entity-table/entity-table.component.mjs +1455 -0
  62. package/esm2022/lib/entity/entity-table/entity-table.module.mjs +96 -0
  63. package/esm2022/lib/entity/entity-table-paginator/entity-table-paginator.component.mjs +167 -0
  64. package/esm2022/lib/entity/entity-table-paginator/entity-table-paginator.interface.mjs +2 -0
  65. package/esm2022/lib/entity/entity-table-paginator/entity-table-paginator.module.mjs +22 -0
  66. package/{esm2020 → esm2022}/lib/entity/entity.module.mjs +29 -31
  67. package/{esm2020 → esm2022}/lib/entity/index.mjs +6 -6
  68. package/{esm2020 → esm2022}/lib/entity/shared/entity.enums.mjs +28 -28
  69. package/esm2022/lib/entity/shared/entity.interfaces.mjs +2 -0
  70. package/esm2022/lib/entity/shared/entity.utils.mjs +73 -0
  71. package/esm2022/lib/entity/shared/index.mjs +11 -0
  72. package/esm2022/lib/entity/shared/state.mjs +194 -0
  73. package/esm2022/lib/entity/shared/store-strategy.mjs +73 -0
  74. package/esm2022/lib/entity/shared/store.mjs +256 -0
  75. package/esm2022/lib/entity/shared/strategies/filter-custom-function.mjs +80 -0
  76. package/esm2022/lib/entity/shared/strategies/filter-selection.mjs +81 -0
  77. package/{esm2020 → esm2022}/lib/entity/shared/strategies/index.mjs +4 -4
  78. package/esm2022/lib/entity/shared/strategies/strategy.mjs +78 -0
  79. package/esm2022/lib/entity/shared/transaction.mjs +329 -0
  80. package/esm2022/lib/entity/shared/view.mjs +330 -0
  81. package/esm2022/lib/entity/shared/watcher.mjs +135 -0
  82. package/esm2022/lib/flexible/flexible.component.mjs +153 -0
  83. package/{esm2020 → esm2022}/lib/flexible/flexible.module.mjs +24 -24
  84. package/{esm2020 → esm2022}/lib/flexible/flexible.type.mjs +2 -2
  85. package/{esm2020 → esm2022}/lib/flexible/index.mjs +3 -3
  86. package/esm2022/lib/form/form/form.component.mjs +125 -0
  87. package/esm2022/lib/form/form/form.module.mjs +23 -0
  88. package/esm2022/lib/form/form-field/form-field-select.component.mjs +140 -0
  89. package/esm2022/lib/form/form-field/form-field-text.component.mjs +113 -0
  90. package/esm2022/lib/form/form-field/form-field-textarea.component.mjs +114 -0
  91. package/esm2022/lib/form/form-field/form-field.component.mjs +78 -0
  92. package/{esm2020 → esm2022}/lib/form/form-field/form-field.module.mjs +74 -74
  93. package/{esm2020 → esm2022}/lib/form/form-field/index.mjs +5 -5
  94. package/esm2022/lib/form/form-group/form-group.component.mjs +115 -0
  95. package/esm2022/lib/form/form-group/form-group.module.mjs +36 -0
  96. package/esm2022/lib/form/form.module.mjs +27 -0
  97. package/{esm2020 → esm2022}/lib/form/index.mjs +5 -5
  98. package/{esm2020 → esm2022}/lib/form/shared/form-field-component.mjs +7 -7
  99. package/esm2022/lib/form/shared/form-field.service.mjs +29 -0
  100. package/esm2022/lib/form/shared/form.interfaces.mjs +2 -0
  101. package/esm2022/lib/form/shared/form.service.mjs +82 -0
  102. package/esm2022/lib/form/shared/form.utils.mjs +40 -0
  103. package/{esm2020 → esm2022}/lib/form/shared/index.mjs +6 -6
  104. package/esm2022/lib/home-button/home-button.component.mjs +30 -0
  105. package/{esm2020 → esm2022}/lib/home-button/home-button.module.mjs +41 -41
  106. package/{esm2020 → esm2022}/lib/home-button/index.mjs +2 -2
  107. package/esm2022/lib/image/image-error.directive.mjs +36 -0
  108. package/{esm2020 → esm2022}/lib/image/image.module.mjs +25 -25
  109. package/{esm2020 → esm2022}/lib/image/index.mjs +3 -3
  110. package/esm2022/lib/image/secure-image.pipe.mjs +65 -0
  111. package/{esm2020 → esm2022}/lib/interactive-tour/index.mjs +5 -5
  112. package/esm2022/lib/interactive-tour/interactive-tour.component.mjs +161 -0
  113. package/esm2022/lib/interactive-tour/interactive-tour.interface.mjs +2 -0
  114. package/esm2022/lib/interactive-tour/interactive-tour.loader.mjs +49 -0
  115. package/{esm2020 → esm2022}/lib/interactive-tour/interactive-tour.module.mjs +40 -40
  116. package/esm2022/lib/interactive-tour/interactive-tour.service.mjs +297 -0
  117. package/{esm2020 → esm2022}/lib/json-dialog/index.mjs +3 -3
  118. package/esm2022/lib/json-dialog/json-dialog.component.mjs +114 -0
  119. package/{esm2020 → esm2022}/lib/json-dialog/json-dialog.module.mjs +29 -29
  120. package/{esm2020 → esm2022}/lib/json-dialog/json-dialog.service.mjs +26 -24
  121. package/{esm2020 → esm2022}/lib/keyvalue/index.mjs +2 -2
  122. package/{esm2020 → esm2022}/lib/keyvalue/keyvalue.module.mjs +24 -24
  123. package/{esm2020 → esm2022}/lib/keyvalue/keyvalue.pipe.mjs +18 -18
  124. package/{esm2020 → esm2022}/lib/list/index.mjs +3 -3
  125. package/esm2022/lib/list/list-item.directive.mjs +167 -0
  126. package/esm2022/lib/list/list.component.mjs +268 -0
  127. package/{esm2020 → esm2022}/lib/list/list.module.mjs +29 -29
  128. package/{esm2020 → esm2022}/lib/panel/index.mjs +2 -2
  129. package/esm2022/lib/panel/panel.component.mjs +60 -0
  130. package/{esm2020 → esm2022}/lib/panel/panel.module.mjs +19 -19
  131. package/{esm2020 → esm2022}/lib/sidenav/index.mjs +2 -2
  132. package/esm2022/lib/sidenav/sidenav-shim.directive.mjs +59 -0
  133. package/{esm2020 → esm2022}/lib/sidenav/sidenav.module.mjs +24 -24
  134. package/{esm2020 → esm2022}/lib/spinner/index.mjs +3 -3
  135. package/esm2022/lib/spinner/spinner-activity.directive.mjs +55 -0
  136. package/esm2022/lib/spinner/spinner.component.mjs +38 -0
  137. package/{esm2020 → esm2022}/lib/spinner/spinner.module.mjs +21 -21
  138. package/{esm2020 → esm2022}/lib/stop-propagation/index.mjs +3 -3
  139. package/{esm2020 → esm2022}/lib/stop-propagation/stop-drop-propagation.directive.mjs +22 -22
  140. package/{esm2020 → esm2022}/lib/stop-propagation/stop-propagation.directive.mjs +21 -21
  141. package/{esm2020 → esm2022}/lib/stop-propagation/stop-propagation.module.mjs +25 -25
  142. package/{esm2020 → esm2022}/lib/table/index.mjs +6 -6
  143. package/{esm2020 → esm2022}/lib/table/table-action-color.enum.mjs +7 -7
  144. package/esm2022/lib/table/table-database.mjs +28 -0
  145. package/esm2022/lib/table/table-datasource.mjs +64 -0
  146. package/esm2022/lib/table/table-model.interface.mjs +2 -0
  147. package/esm2022/lib/table/table.component.mjs +302 -0
  148. package/{esm2020 → esm2022}/lib/table/table.module.mjs +67 -67
  149. package/{esm2020 → esm2022}/lib/tool/index.mjs +3 -3
  150. package/{esm2020 → esm2022}/lib/tool/shared/index.mjs +6 -6
  151. package/esm2022/lib/tool/shared/tool-component.mjs +9 -0
  152. package/esm2022/lib/tool/shared/tool.interface.mjs +2 -0
  153. package/esm2022/lib/tool/shared/tool.service.mjs +43 -0
  154. package/{esm2020 → esm2022}/lib/tool/shared/toolbox.enums.mjs +7 -7
  155. package/esm2022/lib/tool/shared/toolbox.mjs +184 -0
  156. package/esm2022/lib/tool/tool.module.mjs +26 -0
  157. package/{esm2020 → esm2022}/lib/tool/toolbox/toolbox.animation.mjs +10 -10
  158. package/esm2022/lib/tool/toolbox/toolbox.component.mjs +273 -0
  159. package/esm2022/lib/tool/toolbox/toolbox.module.mjs +24 -0
  160. package/{esm2020 → esm2022}/lib/widget/index.mjs +3 -3
  161. package/{esm2020 → esm2022}/lib/widget/shared/index.mjs +4 -4
  162. package/esm2022/lib/widget/shared/widget.interfaces.mjs +2 -0
  163. package/{esm2020 → esm2022}/lib/widget/shared/widget.mjs +4 -4
  164. package/esm2022/lib/widget/shared/widget.service.mjs +22 -0
  165. package/esm2022/lib/widget/widget-outlet/widget-outlet.component.mjs +124 -0
  166. package/esm2022/lib/widget/widget-outlet/widget-outlet.module.mjs +23 -0
  167. package/esm2022/lib/widget/widget.module.mjs +21 -0
  168. package/{esm2020 → esm2022}/lib/workspace/index.mjs +4 -4
  169. package/{esm2020 → esm2022}/lib/workspace/shared/index.mjs +4 -4
  170. package/esm2022/lib/workspace/shared/store.mjs +37 -0
  171. package/{esm2020 → esm2022}/lib/workspace/shared/workspace.interfaces.mjs +2 -2
  172. package/esm2022/lib/workspace/shared/workspace.mjs +143 -0
  173. package/esm2022/lib/workspace/workspace-selector/workspace-selector.component.mjs +58 -0
  174. package/esm2022/lib/workspace/workspace-selector/workspace-selector.module.mjs +23 -0
  175. package/esm2022/lib/workspace/workspace-widget-outlet/workspace-widget-outlet.component.mjs +94 -0
  176. package/esm2022/lib/workspace/workspace-widget-outlet/workspace-widget-outlet.module.mjs +23 -0
  177. package/esm2022/lib/workspace/workspace.module.mjs +20 -0
  178. package/esm2022/public_api.mjs +76 -0
  179. package/{fesm2020 → fesm2022}/igo2-common.mjs +9837 -9345
  180. package/fesm2022/igo2-common.mjs.map +1 -0
  181. package/index.d.ts +5 -5
  182. package/lib/action/action.module.d.ts +8 -8
  183. package/lib/action/action.theming.scss +5 -0
  184. package/lib/action/actionbar/actionbar-item.component.d.ts +78 -78
  185. package/lib/action/actionbar/actionbar-item.theming.scss +32 -0
  186. package/lib/action/actionbar/actionbar.component.d.ts +147 -146
  187. package/lib/action/actionbar/actionbar.module.d.ts +20 -20
  188. package/lib/action/actionbar/actionbar.theming.scss +22 -0
  189. package/lib/action/index.d.ts +2 -2
  190. package/lib/action/shared/action.enums.d.ts +5 -5
  191. package/lib/action/shared/action.interfaces.d.ts +17 -17
  192. package/lib/action/shared/index.d.ts +3 -3
  193. package/lib/action/shared/store.d.ts +8 -8
  194. package/lib/backdrop/backdrop.component.d.ts +9 -9
  195. package/lib/backdrop/backdrop.module.d.ts +10 -10
  196. package/lib/backdrop/index.d.ts +1 -1
  197. package/lib/badge-icon/badge-icon.directive.d.ts +36 -36
  198. package/lib/badge-icon/badge-icon.module.d.ts +11 -11
  199. package/lib/badge-icon/index.d.ts +1 -1
  200. package/lib/clickout/clickout.directive.d.ts +10 -10
  201. package/lib/clickout/clickout.module.d.ts +9 -9
  202. package/lib/clickout/index.d.ts +1 -1
  203. package/lib/clone/clone.module.d.ts +9 -9
  204. package/lib/clone/clone.pipe.d.ts +7 -7
  205. package/lib/clone/index.d.ts +1 -1
  206. package/lib/collapsible/collapse.directive.d.ts +19 -19
  207. package/lib/collapsible/collapsible.component.d.ts +13 -13
  208. package/lib/collapsible/collapsible.module.d.ts +12 -12
  209. package/lib/collapsible/collapsible.theming.scss +22 -0
  210. package/lib/collapsible/index.d.ts +2 -2
  211. package/lib/color-picker-form-field/color-picker-form-field.component.d.ts +26 -0
  212. package/lib/color-picker-form-field/color-picker-form-field.module.d.ts +10 -0
  213. package/lib/color-picker-form-field/index.d.ts +1 -0
  214. package/lib/confirm-dialog/confirm-dialog.component.d.ts +9 -9
  215. package/lib/confirm-dialog/confirm-dialog.module.d.ts +12 -12
  216. package/lib/confirm-dialog/confirm-dialog.service.d.ts +12 -12
  217. package/lib/confirm-dialog/index.d.ts +2 -2
  218. package/lib/context-menu/context-menu.directive.d.ts +21 -21
  219. package/lib/context-menu/context-menu.module.d.ts +10 -10
  220. package/lib/context-menu/index.d.ts +2 -2
  221. package/lib/context-menu/long-press.directive.d.ts +20 -20
  222. package/lib/custom-html/custom-html.component.d.ts +9 -9
  223. package/lib/custom-html/custom-html.module.d.ts +16 -16
  224. package/lib/custom-html/custom-html.pipe.d.ts +10 -10
  225. package/lib/custom-html/index.d.ts +2 -2
  226. package/lib/dom/dom.interfaces.d.ts +10 -10
  227. package/lib/dom/dom.module.d.ts +8 -8
  228. package/lib/dom/dom.service.d.ts +10 -10
  229. package/lib/dom/index.d.ts +2 -2
  230. package/lib/drag-drop/drag-drop.directive.d.ts +14 -14
  231. package/lib/drag-drop/drag-drop.module.d.ts +9 -9
  232. package/lib/drag-drop/index.d.ts +1 -1
  233. package/lib/dynamic-component/dynamic-component.module.d.ts +8 -8
  234. package/lib/dynamic-component/dynamic-outlet/dynamic-outlet.component.d.ts +70 -70
  235. package/lib/dynamic-component/dynamic-outlet/dynamic-outlet.module.d.ts +11 -11
  236. package/lib/dynamic-component/index.d.ts +2 -2
  237. package/lib/dynamic-component/shared/dynamic-component.d.ts +88 -88
  238. package/lib/dynamic-component/shared/dynamic-component.interfaces.d.ts +3 -3
  239. package/lib/dynamic-component/shared/dynamic-component.service.d.ts +18 -18
  240. package/lib/dynamic-component/shared/index.d.ts +3 -3
  241. package/lib/entity/entity-selector/entity-selector.component.d.ts +92 -92
  242. package/lib/entity/entity-selector/entity-selector.module.d.ts +13 -13
  243. package/lib/entity/entity-selector/entity-selector.theming.scss +21 -0
  244. package/lib/entity/entity-table/entity-table-row.directive.d.ts +69 -69
  245. package/lib/entity/entity-table/entity-table.component.d.ts +327 -333
  246. package/lib/entity/entity-table/entity-table.module.d.ts +29 -29
  247. package/lib/entity/entity-table/entity-table.theming.scss +34 -0
  248. package/lib/entity/entity-table-paginator/entity-table-paginator.component.d.ts +49 -49
  249. package/lib/entity/entity-table-paginator/entity-table-paginator.interface.d.ts +8 -8
  250. package/lib/entity/entity-table-paginator/entity-table-paginator.module.d.ts +11 -11
  251. package/lib/entity/entity-table-paginator/entity-table-paginator.theming.scss +21 -0
  252. package/lib/entity/entity.module.d.ts +10 -10
  253. package/lib/entity/entity.theming.scss +10 -0
  254. package/lib/entity/index.d.ts +5 -5
  255. package/lib/entity/shared/entity.enums.d.ts +23 -23
  256. package/lib/entity/shared/entity.interfaces.d.ts +95 -114
  257. package/lib/entity/shared/entity.utils.d.ts +49 -49
  258. package/lib/entity/shared/index.d.ts +10 -9
  259. package/lib/entity/shared/state.d.ts +108 -103
  260. package/lib/entity/shared/store-strategy.d.ts +38 -0
  261. package/lib/entity/shared/store.d.ts +147 -176
  262. package/lib/entity/shared/strategies/filter-custom-function.d.ts +51 -51
  263. package/lib/entity/shared/strategies/filter-selection.d.ts +48 -48
  264. package/lib/entity/shared/strategies/index.d.ts +3 -3
  265. package/lib/entity/shared/strategies/strategy.d.ts +56 -56
  266. package/lib/entity/shared/transaction.d.ts +180 -168
  267. package/lib/entity/shared/view.d.ts +193 -193
  268. package/lib/entity/shared/watcher.d.ts +72 -72
  269. package/lib/flexible/flexible.component.d.ts +41 -41
  270. package/lib/flexible/flexible.module.d.ts +9 -9
  271. package/lib/flexible/flexible.type.d.ts +2 -2
  272. package/lib/flexible/index.d.ts +2 -2
  273. package/lib/form/form/form.component.d.ts +53 -53
  274. package/lib/form/form/form.module.d.ts +12 -12
  275. package/lib/form/form-field/form-field-select.component.d.ts +48 -48
  276. package/lib/form/form-field/form-field-text.component.d.ts +41 -41
  277. package/lib/form/form-field/form-field-textarea.component.d.ts +41 -41
  278. package/lib/form/form-field/form-field.component.d.ts +29 -34
  279. package/lib/form/form-field/form-field.module.d.ts +21 -21
  280. package/lib/form/form-field/index.d.ts +4 -4
  281. package/lib/form/form-group/form-group.component.d.ts +49 -49
  282. package/lib/form/form-group/form-group.module.d.ts +14 -14
  283. package/lib/form/form.module.d.ts +13 -13
  284. package/lib/form/index.d.ts +4 -4
  285. package/lib/form/shared/form-field-component.d.ts +1 -1
  286. package/lib/form/shared/form-field.service.d.ts +19 -19
  287. package/lib/form/shared/form.interfaces.d.ts +61 -57
  288. package/lib/form/shared/form.service.d.ts +15 -15
  289. package/lib/form/shared/form.utils.d.ts +11 -11
  290. package/lib/form/shared/index.d.ts +5 -5
  291. package/lib/home-button/home-button.component.d.ts +9 -9
  292. package/lib/home-button/home-button.module.d.ts +15 -15
  293. package/lib/home-button/home-button.theming.scss +18 -0
  294. package/lib/home-button/index.d.ts +1 -1
  295. package/lib/image/image-error.directive.d.ts +11 -11
  296. package/lib/image/image.module.d.ts +10 -10
  297. package/lib/image/index.d.ts +2 -2
  298. package/lib/image/secure-image.pipe.d.ts +13 -13
  299. package/lib/interactive-tour/index.d.ts +4 -4
  300. package/lib/interactive-tour/interactive-tour.component.d.ts +30 -30
  301. package/lib/interactive-tour/interactive-tour.interface.d.ts +32 -32
  302. package/lib/interactive-tour/interactive-tour.loader.d.ts +18 -18
  303. package/lib/interactive-tour/interactive-tour.module.d.ts +12 -12
  304. package/lib/interactive-tour/interactive-tour.service.d.ts +29 -29
  305. package/lib/interactive-tour/interactive-tour.theming.scss +32 -0
  306. package/lib/json-dialog/index.d.ts +2 -2
  307. package/lib/json-dialog/json-dialog.component.d.ts +13 -13
  308. package/lib/json-dialog/json-dialog.module.d.ts +13 -13
  309. package/lib/json-dialog/json-dialog.service.d.ts +10 -10
  310. package/lib/keyvalue/index.d.ts +1 -1
  311. package/lib/keyvalue/keyvalue.module.d.ts +9 -9
  312. package/lib/keyvalue/keyvalue.pipe.d.ts +7 -7
  313. package/lib/list/index.d.ts +2 -2
  314. package/lib/list/list-item.directive.d.ts +43 -43
  315. package/lib/list/list.component.d.ts +51 -51
  316. package/lib/list/list.module.d.ts +14 -14
  317. package/lib/list/list.theming.scss +40 -0
  318. package/lib/panel/index.d.ts +1 -1
  319. package/lib/panel/panel.component.d.ts +10 -10
  320. package/lib/panel/panel.module.d.ts +8 -8
  321. package/lib/panel/panel.theming.scss +30 -0
  322. package/lib/sidenav/index.d.ts +1 -1
  323. package/lib/sidenav/sidenav-shim.directive.d.ts +20 -20
  324. package/lib/sidenav/sidenav.module.d.ts +9 -9
  325. package/lib/spinner/index.d.ts +2 -2
  326. package/lib/spinner/spinner-activity.directive.d.ts +32 -32
  327. package/lib/spinner/spinner.component.d.ts +12 -12
  328. package/lib/spinner/spinner.module.d.ts +10 -10
  329. package/lib/stop-propagation/index.d.ts +2 -2
  330. package/lib/stop-propagation/stop-drop-propagation.directive.d.ts +6 -6
  331. package/lib/stop-propagation/stop-propagation.directive.d.ts +6 -6
  332. package/lib/stop-propagation/stop-propagation.module.d.ts +10 -10
  333. package/lib/table/index.d.ts +5 -5
  334. package/lib/table/table-action-color.enum.d.ts +5 -5
  335. package/lib/table/table-database.d.ts +10 -10
  336. package/lib/table/table-datasource.d.ts +18 -17
  337. package/lib/table/table-model.interface.d.ts +28 -28
  338. package/lib/table/table.component.d.ts +40 -40
  339. package/lib/table/table.module.d.ts +20 -20
  340. package/lib/tool/index.d.ts +2 -2
  341. package/lib/tool/shared/index.d.ts +5 -5
  342. package/lib/tool/shared/tool-component.d.ts +2 -2
  343. package/lib/tool/shared/tool.interface.d.ts +18 -18
  344. package/lib/tool/shared/tool.service.d.ts +30 -30
  345. package/lib/tool/shared/toolbox.d.ts +95 -95
  346. package/lib/tool/shared/toolbox.enums.d.ts +5 -5
  347. package/lib/tool/tool.module.d.ts +10 -10
  348. package/lib/tool/tool.theming.scss +5 -0
  349. package/lib/tool/toolbox/toolbox.animation.d.ts +2 -2
  350. package/lib/tool/toolbox/toolbox.component.d.ts +128 -127
  351. package/lib/tool/toolbox/toolbox.module.d.ts +13 -13
  352. package/lib/tool/toolbox/toolbox.theming.scss +105 -0
  353. package/lib/widget/index.d.ts +2 -2
  354. package/lib/widget/shared/index.d.ts +3 -3
  355. package/lib/widget/shared/widget.d.ts +4 -4
  356. package/lib/widget/shared/widget.interfaces.d.ts +12 -12
  357. package/lib/widget/shared/widget.service.d.ts +10 -10
  358. package/lib/widget/widget-outlet/widget-outlet.component.d.ts +71 -71
  359. package/lib/widget/widget-outlet/widget-outlet.module.d.ts +12 -12
  360. package/lib/widget/widget.module.d.ts +8 -8
  361. package/lib/workspace/index.d.ts +3 -3
  362. package/lib/workspace/shared/index.d.ts +3 -3
  363. package/lib/workspace/shared/store.d.ts +20 -20
  364. package/lib/workspace/shared/workspace.d.ts +108 -108
  365. package/lib/workspace/shared/workspace.interfaces.d.ts +11 -11
  366. package/lib/workspace/workspace-selector/workspace-selector.component.d.ts +39 -39
  367. package/lib/workspace/workspace-selector/workspace-selector.module.d.ts +12 -12
  368. package/lib/workspace/workspace-widget-outlet/workspace-widget-outlet.component.d.ts +57 -57
  369. package/lib/workspace/workspace-widget-outlet/workspace-widget-outlet.module.d.ts +12 -12
  370. package/lib/workspace/workspace.module.d.ts +9 -9
  371. package/locale/en.common.json +43 -0
  372. package/locale/fr.common.json +43 -0
  373. package/package.json +30 -28
  374. package/public_api.d.ts +72 -70
  375. package/style/partial/common-utils.scss +9 -0
  376. package/style/partial/common.variables.scss +8 -8
  377. package/style/style.css +204 -0
  378. package/esm2020/lib/action/action.module.mjs +0 -27
  379. package/esm2020/lib/action/actionbar/actionbar-item.component.mjs +0 -252
  380. package/esm2020/lib/action/actionbar/actionbar.component.mjs +0 -370
  381. package/esm2020/lib/backdrop/backdrop.component.mjs +0 -26
  382. package/esm2020/lib/badge-icon/badge-icon.directive.mjs +0 -141
  383. package/esm2020/lib/clickout/clickout.directive.mjs +0 -32
  384. package/esm2020/lib/clone/clone.pipe.mjs +0 -24
  385. package/esm2020/lib/collapsible/collapse.directive.mjs +0 -55
  386. package/esm2020/lib/collapsible/collapsible.component.mjs +0 -57
  387. package/esm2020/lib/confirm-dialog/confirm-dialog.component.mjs +0 -44
  388. package/esm2020/lib/confirm-dialog/confirm-dialog.service.mjs +0 -24
  389. package/esm2020/lib/context-menu/context-menu.directive.mjs +0 -103
  390. package/esm2020/lib/context-menu/long-press.directive.mjs +0 -67
  391. package/esm2020/lib/custom-html/custom-html.component.mjs +0 -28
  392. package/esm2020/lib/dom/dom.service.mjs +0 -30
  393. package/esm2020/lib/drag-drop/drag-drop.directive.mjs +0 -88
  394. package/esm2020/lib/dynamic-component/dynamic-component.module.mjs +0 -31
  395. package/esm2020/lib/dynamic-component/dynamic-outlet/dynamic-outlet.component.mjs +0 -122
  396. package/esm2020/lib/dynamic-component/dynamic-outlet/dynamic-outlet.module.mjs +0 -28
  397. package/esm2020/lib/dynamic-component/shared/dynamic-component.mjs +0 -174
  398. package/esm2020/lib/entity/entity-selector/entity-selector.component.mjs +0 -194
  399. package/esm2020/lib/entity/entity-selector/entity-selector.module.mjs +0 -32
  400. package/esm2020/lib/entity/entity-table/entity-table-row.directive.mjs +0 -137
  401. package/esm2020/lib/entity/entity-table/entity-table.component.mjs +0 -1376
  402. package/esm2020/lib/entity/entity-table/entity-table.module.mjs +0 -102
  403. package/esm2020/lib/entity/entity-table-paginator/entity-table-paginator.component.mjs +0 -132
  404. package/esm2020/lib/entity/entity-table-paginator/entity-table-paginator.interface.mjs +0 -2
  405. package/esm2020/lib/entity/entity-table-paginator/entity-table-paginator.module.mjs +0 -28
  406. package/esm2020/lib/entity/shared/entity.interfaces.mjs +0 -2
  407. package/esm2020/lib/entity/shared/entity.utils.mjs +0 -67
  408. package/esm2020/lib/entity/shared/index.mjs +0 -10
  409. package/esm2020/lib/entity/shared/state.mjs +0 -191
  410. package/esm2020/lib/entity/shared/store.mjs +0 -288
  411. package/esm2020/lib/entity/shared/strategies/filter-custom-function.mjs +0 -79
  412. package/esm2020/lib/entity/shared/strategies/filter-selection.mjs +0 -84
  413. package/esm2020/lib/entity/shared/strategies/strategy.mjs +0 -75
  414. package/esm2020/lib/entity/shared/transaction.mjs +0 -316
  415. package/esm2020/lib/entity/shared/view.mjs +0 -315
  416. package/esm2020/lib/entity/shared/watcher.mjs +0 -120
  417. package/esm2020/lib/flexible/flexible.component.mjs +0 -148
  418. package/esm2020/lib/form/form/form.component.mjs +0 -117
  419. package/esm2020/lib/form/form/form.module.mjs +0 -40
  420. package/esm2020/lib/form/form-field/form-field-select.component.mjs +0 -127
  421. package/esm2020/lib/form/form-field/form-field-text.component.mjs +0 -104
  422. package/esm2020/lib/form/form-field/form-field-textarea.component.mjs +0 -105
  423. package/esm2020/lib/form/form-field/form-field.component.mjs +0 -72
  424. package/esm2020/lib/form/form-group/form-group.component.mjs +0 -105
  425. package/esm2020/lib/form/form-group/form-group.module.mjs +0 -40
  426. package/esm2020/lib/form/form.module.mjs +0 -49
  427. package/esm2020/lib/form/shared/form-field.service.mjs +0 -29
  428. package/esm2020/lib/form/shared/form.interfaces.mjs +0 -2
  429. package/esm2020/lib/form/shared/form.service.mjs +0 -81
  430. package/esm2020/lib/form/shared/form.utils.mjs +0 -40
  431. package/esm2020/lib/home-button/home-button.component.mjs +0 -31
  432. package/esm2020/lib/image/image-error.directive.mjs +0 -35
  433. package/esm2020/lib/image/secure-image.pipe.mjs +0 -59
  434. package/esm2020/lib/interactive-tour/interactive-tour.component.mjs +0 -135
  435. package/esm2020/lib/interactive-tour/interactive-tour.interface.mjs +0 -2
  436. package/esm2020/lib/interactive-tour/interactive-tour.loader.mjs +0 -44
  437. package/esm2020/lib/interactive-tour/interactive-tour.service.mjs +0 -285
  438. package/esm2020/lib/json-dialog/json-dialog.component.mjs +0 -109
  439. package/esm2020/lib/list/list-item.directive.mjs +0 -165
  440. package/esm2020/lib/list/list.component.mjs +0 -262
  441. package/esm2020/lib/panel/panel.component.mjs +0 -59
  442. package/esm2020/lib/sidenav/sidenav-shim.directive.mjs +0 -55
  443. package/esm2020/lib/spinner/spinner-activity.directive.mjs +0 -47
  444. package/esm2020/lib/spinner/spinner.component.mjs +0 -35
  445. package/esm2020/lib/table/table-database.mjs +0 -28
  446. package/esm2020/lib/table/table-datasource.mjs +0 -61
  447. package/esm2020/lib/table/table-model.interface.mjs +0 -2
  448. package/esm2020/lib/table/table.component.mjs +0 -297
  449. package/esm2020/lib/tool/shared/tool-component.mjs +0 -9
  450. package/esm2020/lib/tool/shared/tool.interface.mjs +0 -2
  451. package/esm2020/lib/tool/shared/tool.service.mjs +0 -43
  452. package/esm2020/lib/tool/shared/toolbox.mjs +0 -179
  453. package/esm2020/lib/tool/tool.module.mjs +0 -32
  454. package/esm2020/lib/tool/toolbox/toolbox.component.mjs +0 -255
  455. package/esm2020/lib/tool/toolbox/toolbox.module.mjs +0 -36
  456. package/esm2020/lib/widget/shared/widget.interfaces.mjs +0 -2
  457. package/esm2020/lib/widget/shared/widget.service.mjs +0 -20
  458. package/esm2020/lib/widget/widget-outlet/widget-outlet.component.mjs +0 -116
  459. package/esm2020/lib/widget/widget-outlet/widget-outlet.module.mjs +0 -32
  460. package/esm2020/lib/widget/widget.module.mjs +0 -32
  461. package/esm2020/lib/workspace/shared/store.mjs +0 -40
  462. package/esm2020/lib/workspace/shared/workspace.mjs +0 -117
  463. package/esm2020/lib/workspace/workspace-selector/workspace-selector.component.mjs +0 -51
  464. package/esm2020/lib/workspace/workspace-selector/workspace-selector.module.mjs +0 -32
  465. package/esm2020/lib/workspace/workspace-widget-outlet/workspace-widget-outlet.component.mjs +0 -88
  466. package/esm2020/lib/workspace/workspace-widget-outlet/workspace-widget-outlet.module.mjs +0 -32
  467. package/esm2020/lib/workspace/workspace.module.mjs +0 -27
  468. package/esm2020/public_api.mjs +0 -74
  469. package/fesm2015/igo2-common.mjs +0 -10329
  470. package/fesm2015/igo2-common.mjs.map +0 -1
  471. package/fesm2020/igo2-common.mjs.map +0 -1
  472. package/style/common.theming.scss +0 -12
  473. package/style/partial/action.scss +0 -18
@@ -1,297 +0,0 @@
1
- import { Component, ViewChild, Input, Output, EventEmitter } from '@angular/core';
2
- import { MatSort } from '@angular/material/sort';
3
- import { SelectionModel } from '@angular/cdk/collections';
4
- import { debounceTime, distinctUntilChanged } from 'rxjs/operators';
5
- import { fromEvent } from 'rxjs';
6
- import { ObjectUtils } from '@igo2/utils';
7
- import { TableDataSource } from './table-datasource';
8
- import { TableActionColor } from './table-action-color.enum';
9
- import * as i0 from "@angular/core";
10
- import * as i1 from "@angular/common";
11
- import * as i2 from "@angular/material/icon";
12
- import * as i3 from "@angular/material/button";
13
- import * as i4 from "@angular/material/table";
14
- import * as i5 from "@angular/material/form-field";
15
- import * as i6 from "@angular/material/input";
16
- import * as i7 from "@angular/material/sort";
17
- import * as i8 from "@angular/material/checkbox";
18
- import * as i9 from "@ngx-translate/core";
19
- const _c0 = ["filter"];
20
- function TableComponent_div_1_Template(rf, ctx) { if (rf & 1) {
21
- i0.ɵɵelementStart(0, "div", 12)(1, "mat-form-field", 13);
22
- i0.ɵɵelement(2, "input", 14, 15);
23
- i0.ɵɵpipe(4, "translate");
24
- i0.ɵɵelementEnd()();
25
- } if (rf & 2) {
26
- i0.ɵɵadvance(2);
27
- i0.ɵɵproperty("placeholder", i0.ɵɵpipeBind1(4, 1, "igo.common.table.filter"));
28
- } }
29
- function TableComponent_th_6_Template(rf, ctx) { if (rf & 1) {
30
- const _r11 = i0.ɵɵgetCurrentView();
31
- i0.ɵɵelementStart(0, "th", 16)(1, "mat-checkbox", 17);
32
- i0.ɵɵlistener("change", function TableComponent_th_6_Template_mat_checkbox_change_1_listener($event) { i0.ɵɵrestoreView(_r11); const ctx_r10 = i0.ɵɵnextContext(); return i0.ɵɵresetView($event ? ctx_r10.masterToggle() : null); });
33
- i0.ɵɵelementEnd()();
34
- } if (rf & 2) {
35
- const ctx_r2 = i0.ɵɵnextContext();
36
- i0.ɵɵadvance(1);
37
- i0.ɵɵproperty("checked", ctx_r2.selection.hasValue() && ctx_r2.isAllSelected())("indeterminate", ctx_r2.selection.hasValue() && !ctx_r2.isAllSelected());
38
- } }
39
- function TableComponent_td_7_Template(rf, ctx) { if (rf & 1) {
40
- const _r15 = i0.ɵɵgetCurrentView();
41
- i0.ɵɵelementStart(0, "td", 18)(1, "mat-checkbox", 19);
42
- i0.ɵɵlistener("click", function TableComponent_td_7_Template_mat_checkbox_click_1_listener($event) { return $event.stopPropagation(); })("change", function TableComponent_td_7_Template_mat_checkbox_change_1_listener($event) { const restoredCtx = i0.ɵɵrestoreView(_r15); const row_r12 = restoredCtx.$implicit; const ctx_r14 = i0.ɵɵnextContext(); return i0.ɵɵresetView($event ? ctx_r14.selection.toggle(row_r12) : null); });
43
- i0.ɵɵelementEnd()();
44
- } if (rf & 2) {
45
- const row_r12 = ctx.$implicit;
46
- const ctx_r3 = i0.ɵɵnextContext();
47
- i0.ɵɵadvance(1);
48
- i0.ɵɵproperty("checked", ctx_r3.selection.isSelected(row_r12));
49
- } }
50
- function TableComponent_ng_container_8_ng_container_1_th_1_Template(rf, ctx) { if (rf & 1) {
51
- i0.ɵɵelementStart(0, "th", 25);
52
- i0.ɵɵtext(1);
53
- i0.ɵɵelementEnd();
54
- } if (rf & 2) {
55
- const column_r16 = i0.ɵɵnextContext(2).$implicit;
56
- i0.ɵɵadvance(1);
57
- i0.ɵɵtextInterpolate1(" ", column_r16.title, " ");
58
- } }
59
- function TableComponent_ng_container_8_ng_container_1_Template(rf, ctx) { if (rf & 1) {
60
- i0.ɵɵelementContainerStart(0);
61
- i0.ɵɵtemplate(1, TableComponent_ng_container_8_ng_container_1_th_1_Template, 2, 1, "th", 24);
62
- i0.ɵɵelementContainerEnd();
63
- } }
64
- function TableComponent_ng_container_8_ng_container_2_th_1_Template(rf, ctx) { if (rf & 1) {
65
- i0.ɵɵelementStart(0, "th", 16);
66
- i0.ɵɵtext(1);
67
- i0.ɵɵelementEnd();
68
- } if (rf & 2) {
69
- const column_r16 = i0.ɵɵnextContext(2).$implicit;
70
- i0.ɵɵadvance(1);
71
- i0.ɵɵtextInterpolate1(" ", column_r16.title, " ");
72
- } }
73
- function TableComponent_ng_container_8_ng_container_2_Template(rf, ctx) { if (rf & 1) {
74
- i0.ɵɵelementContainerStart(0);
75
- i0.ɵɵtemplate(1, TableComponent_ng_container_8_ng_container_2_th_1_Template, 2, 1, "th", 6);
76
- i0.ɵɵelementContainerEnd();
77
- } }
78
- const _c1 = function () { return {}; };
79
- function TableComponent_ng_container_8_ng_container_3_td_1_Template(rf, ctx) { if (rf & 1) {
80
- i0.ɵɵelementStart(0, "td", 27);
81
- i0.ɵɵtext(1);
82
- i0.ɵɵelementEnd();
83
- } if (rf & 2) {
84
- const row_r27 = ctx.$implicit;
85
- const column_r16 = i0.ɵɵnextContext(2).$implicit;
86
- const ctx_r26 = i0.ɵɵnextContext();
87
- i0.ɵɵproperty("ngClass", ctx_r26.model.cellClassFunc ? ctx_r26.model.cellClassFunc(row_r27, column_r16) : i0.ɵɵpureFunction0(2, _c1));
88
- i0.ɵɵadvance(1);
89
- i0.ɵɵtextInterpolate1(" ", ctx_r26.getValue(row_r27, column_r16.name), " ");
90
- } }
91
- function TableComponent_ng_container_8_ng_container_3_Template(rf, ctx) { if (rf & 1) {
92
- i0.ɵɵelementContainerStart(0);
93
- i0.ɵɵtemplate(1, TableComponent_ng_container_8_ng_container_3_td_1_Template, 2, 3, "td", 26);
94
- i0.ɵɵelementContainerEnd();
95
- } }
96
- function TableComponent_ng_container_8_ng_template_4_td_0_Template(rf, ctx) { if (rf & 1) {
97
- i0.ɵɵelement(0, "td", 29);
98
- } if (rf & 2) {
99
- const row_r30 = ctx.$implicit;
100
- const column_r16 = i0.ɵɵnextContext(2).$implicit;
101
- const ctx_r29 = i0.ɵɵnextContext();
102
- i0.ɵɵproperty("ngClass", ctx_r29.model.cellClassFunc ? ctx_r29.model.cellClassFunc(row_r30, column_r16) : i0.ɵɵpureFunction0(2, _c1))("innerHTML", ctx_r29.getValue(row_r30, column_r16.name), i0.ɵɵsanitizeHtml);
103
- } }
104
- function TableComponent_ng_container_8_ng_template_4_Template(rf, ctx) { if (rf & 1) {
105
- i0.ɵɵtemplate(0, TableComponent_ng_container_8_ng_template_4_td_0_Template, 1, 3, "td", 28);
106
- } }
107
- function TableComponent_ng_container_8_Template(rf, ctx) { if (rf & 1) {
108
- i0.ɵɵelementContainerStart(0, 20);
109
- i0.ɵɵtemplate(1, TableComponent_ng_container_8_ng_container_1_Template, 2, 0, "ng-container", 21);
110
- i0.ɵɵtemplate(2, TableComponent_ng_container_8_ng_container_2_Template, 2, 0, "ng-container", 21);
111
- i0.ɵɵtemplate(3, TableComponent_ng_container_8_ng_container_3_Template, 2, 0, "ng-container", 22);
112
- i0.ɵɵtemplate(4, TableComponent_ng_container_8_ng_template_4_Template, 1, 0, "ng-template", null, 23, i0.ɵɵtemplateRefExtractor);
113
- i0.ɵɵelementContainerEnd();
114
- } if (rf & 2) {
115
- const column_r16 = ctx.$implicit;
116
- const _r20 = i0.ɵɵreference(5);
117
- i0.ɵɵproperty("matColumnDef", column_r16.name);
118
- i0.ɵɵadvance(1);
119
- i0.ɵɵproperty("ngIf", column_r16.sortable);
120
- i0.ɵɵadvance(1);
121
- i0.ɵɵproperty("ngIf", !column_r16.sortable);
122
- i0.ɵɵadvance(1);
123
- i0.ɵɵproperty("ngIf", !column_r16.html)("ngIfElse", _r20);
124
- } }
125
- function TableComponent_th_10_Template(rf, ctx) { if (rf & 1) {
126
- i0.ɵɵelement(0, "th", 16);
127
- } }
128
- function TableComponent_td_11_button_1_Template(rf, ctx) { if (rf & 1) {
129
- const _r36 = i0.ɵɵgetCurrentView();
130
- i0.ɵɵelementStart(0, "button", 31);
131
- i0.ɵɵlistener("click", function TableComponent_td_11_button_1_Template_button_click_0_listener($event) { const restoredCtx = i0.ɵɵrestoreView(_r36); const action_r34 = restoredCtx.$implicit; const row_r32 = i0.ɵɵnextContext().$implicit; const ctx_r35 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r35.handleClickAction($event, action_r34, row_r32)); });
132
- i0.ɵɵelement(1, "mat-icon", 32);
133
- i0.ɵɵelementEnd();
134
- } if (rf & 2) {
135
- const action_r34 = ctx.$implicit;
136
- const ctx_r33 = i0.ɵɵnextContext(2);
137
- i0.ɵɵproperty("color", ctx_r33.getActionColor(action_r34.color));
138
- i0.ɵɵadvance(1);
139
- i0.ɵɵpropertyInterpolate("svgIcon", action_r34.icon);
140
- } }
141
- function TableComponent_td_11_Template(rf, ctx) { if (rf & 1) {
142
- i0.ɵɵelementStart(0, "td", 18);
143
- i0.ɵɵtemplate(1, TableComponent_td_11_button_1_Template, 2, 2, "button", 30);
144
- i0.ɵɵelementEnd();
145
- } if (rf & 2) {
146
- const ctx_r6 = i0.ɵɵnextContext();
147
- i0.ɵɵadvance(1);
148
- i0.ɵɵproperty("ngForOf", ctx_r6.model.actions);
149
- } }
150
- function TableComponent_tr_12_Template(rf, ctx) { if (rf & 1) {
151
- i0.ɵɵelement(0, "tr", 33);
152
- } }
153
- function TableComponent_tr_13_Template(rf, ctx) { if (rf & 1) {
154
- const _r40 = i0.ɵɵgetCurrentView();
155
- i0.ɵɵelementStart(0, "tr", 34);
156
- i0.ɵɵlistener("click", function TableComponent_tr_13_Template_tr_click_0_listener() { const restoredCtx = i0.ɵɵrestoreView(_r40); const row_r38 = restoredCtx.$implicit; const ctx_r39 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r39.selection.toggle(row_r38)); });
157
- i0.ɵɵelementEnd();
158
- } if (rf & 2) {
159
- const row_r38 = ctx.$implicit;
160
- const ctx_r8 = i0.ɵɵnextContext();
161
- i0.ɵɵproperty("ngClass", ctx_r8.model.rowClassFunc ? ctx_r8.model.rowClassFunc(row_r38) : i0.ɵɵpureFunction0(1, _c1));
162
- } }
163
- export class TableComponent {
164
- constructor() {
165
- this._hasFIlterInput = true;
166
- this.selection = new SelectionModel(true, []);
167
- this.select = new EventEmitter();
168
- }
169
- get database() {
170
- return this._database;
171
- }
172
- set database(value) {
173
- this._database = value;
174
- }
175
- get model() {
176
- return this._model;
177
- }
178
- set model(value) {
179
- this._model = value;
180
- }
181
- get hasFilterInput() {
182
- return this._hasFIlterInput;
183
- }
184
- set hasFilterInput(value) {
185
- this._hasFIlterInput = value;
186
- }
187
- ngOnInit() {
188
- this.dataSource = new TableDataSource(this.database, this.model, this.sort);
189
- if (this.model) {
190
- this.displayedColumns = this.model.columns
191
- .filter(c => c.displayed !== false)
192
- .map(c => c.name);
193
- if (this.model.selectionCheckbox) {
194
- this.displayedColumns.unshift('selectionCheckbox');
195
- }
196
- if (this.model.actions && this.model.actions.length) {
197
- this.displayedColumns.push('action');
198
- }
199
- }
200
- this.selection.changed.subscribe(e => this.select.emit(e));
201
- }
202
- ngAfterViewInit() {
203
- if (this.filter) {
204
- fromEvent(this.filter.nativeElement, 'keyup')
205
- .pipe(debounceTime(150), distinctUntilChanged())
206
- .subscribe(() => {
207
- if (!this.dataSource) {
208
- return;
209
- }
210
- this.dataSource.filter = this.filter.nativeElement.value;
211
- });
212
- }
213
- }
214
- ngOnChanges(change) {
215
- if (change.database) {
216
- this.dataSource = new TableDataSource(this.database, this.model, this.sort);
217
- this.selection.clear();
218
- }
219
- }
220
- getActionColor(colorId) {
221
- return TableActionColor[colorId];
222
- }
223
- getValue(row, key) {
224
- return ObjectUtils.resolve(row, key);
225
- }
226
- /** Whether the number of selected elements matches the total number of rows. */
227
- isAllSelected() {
228
- const numSelected = this.selection.selected.length;
229
- const numRows = this.database.data.length;
230
- return numSelected === numRows;
231
- }
232
- /** Selects all rows if they are not all selected; otherwise clear selection. */
233
- masterToggle() {
234
- this.isAllSelected()
235
- ? this.selection.clear()
236
- : this.database.data.forEach(row => this.selection.select(row));
237
- }
238
- handleClickAction(event, action, row) {
239
- event.stopPropagation();
240
- action.click(row);
241
- }
242
- }
243
- TableComponent.ɵfac = function TableComponent_Factory(t) { return new (t || TableComponent)(); };
244
- TableComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: TableComponent, selectors: [["igo-table"]], viewQuery: function TableComponent_Query(rf, ctx) { if (rf & 1) {
245
- i0.ɵɵviewQuery(_c0, 5);
246
- i0.ɵɵviewQuery(MatSort, 7);
247
- } if (rf & 2) {
248
- let _t;
249
- i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.filter = _t.first);
250
- i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.sort = _t.first);
251
- } }, inputs: { database: "database", model: "model", hasFilterInput: "hasFilterInput" }, outputs: { select: "select" }, features: [i0.ɵɵNgOnChangesFeature], decls: 14, vars: 5, consts: [[1, "table-box"], ["class", "table-header", 4, "ngIf"], [1, "table-container"], ["mat-table", "", "matSort", "", 3, "dataSource"], ["table", ""], ["matColumnDef", "selectionCheckbox"], ["mat-header-cell", "", 4, "matHeaderCellDef"], ["mat-cell", "", 4, "matCellDef"], [3, "matColumnDef", 4, "ngFor", "ngForOf"], ["matColumnDef", "action"], ["mat-header-row", "", 4, "matHeaderRowDef"], ["mat-row", "", 3, "ngClass", "click", 4, "matRowDef", "matRowDefColumns"], [1, "table-header"], ["floatPlaceholder", "never"], ["matInput", "", 3, "placeholder"], ["filter", ""], ["mat-header-cell", ""], [3, "checked", "indeterminate", "change"], ["mat-cell", ""], [3, "checked", "click", "change"], [3, "matColumnDef"], [4, "ngIf"], [4, "ngIf", "ngIfElse"], ["cellHTML", ""], ["mat-header-cell", "", "mat-sort-header", "", 4, "matHeaderCellDef"], ["mat-header-cell", "", "mat-sort-header", ""], ["mat-cell", "", "class", "mat-cell-text", 3, "ngClass", 4, "matCellDef"], ["mat-cell", "", 1, "mat-cell-text", 3, "ngClass"], ["mat-cell", "", "class", "mat-cell-text", 3, "ngClass", "innerHTML", 4, "matCellDef"], ["mat-cell", "", 1, "mat-cell-text", 3, "ngClass", "innerHTML"], ["mat-mini-fab", "", 3, "color", "click", 4, "ngFor", "ngForOf"], ["mat-mini-fab", "", 3, "color", "click"], [3, "svgIcon"], ["mat-header-row", ""], ["mat-row", "", 3, "ngClass", "click"]], template: function TableComponent_Template(rf, ctx) { if (rf & 1) {
252
- i0.ɵɵelementStart(0, "div", 0);
253
- i0.ɵɵtemplate(1, TableComponent_div_1_Template, 5, 3, "div", 1);
254
- i0.ɵɵelementStart(2, "div", 2)(3, "table", 3, 4);
255
- i0.ɵɵelementContainerStart(5, 5);
256
- i0.ɵɵtemplate(6, TableComponent_th_6_Template, 2, 2, "th", 6);
257
- i0.ɵɵtemplate(7, TableComponent_td_7_Template, 2, 1, "td", 7);
258
- i0.ɵɵelementContainerEnd();
259
- i0.ɵɵtemplate(8, TableComponent_ng_container_8_Template, 6, 5, "ng-container", 8);
260
- i0.ɵɵelementContainerStart(9, 9);
261
- i0.ɵɵtemplate(10, TableComponent_th_10_Template, 1, 0, "th", 6);
262
- i0.ɵɵtemplate(11, TableComponent_td_11_Template, 2, 1, "td", 7);
263
- i0.ɵɵelementContainerEnd();
264
- i0.ɵɵtemplate(12, TableComponent_tr_12_Template, 1, 0, "tr", 10);
265
- i0.ɵɵtemplate(13, TableComponent_tr_13_Template, 1, 2, "tr", 11);
266
- i0.ɵɵelementEnd()()();
267
- } if (rf & 2) {
268
- i0.ɵɵadvance(1);
269
- i0.ɵɵproperty("ngIf", ctx.hasFilterInput);
270
- i0.ɵɵadvance(2);
271
- i0.ɵɵproperty("dataSource", ctx.dataSource);
272
- i0.ɵɵadvance(5);
273
- i0.ɵɵproperty("ngForOf", ctx.model.columns);
274
- i0.ɵɵadvance(4);
275
- i0.ɵɵproperty("matHeaderRowDef", ctx.displayedColumns);
276
- i0.ɵɵadvance(1);
277
- i0.ɵɵproperty("matRowDefColumns", ctx.displayedColumns);
278
- } }, dependencies: [i1.NgClass, i1.NgForOf, i1.NgIf, i2.MatIcon, i3.MatButton, i4.MatTable, i4.MatHeaderCellDef, i4.MatHeaderRowDef, i4.MatColumnDef, i4.MatCellDef, i4.MatRowDef, i4.MatHeaderCell, i4.MatCell, i4.MatHeaderRow, i4.MatRow, i5.MatFormField, i6.MatInput, i7.MatSort, i7.MatSortHeader, i8.MatCheckbox, i9.TranslatePipe], styles: ["[_nghost-%COMP%]{width:100%;height:100%;display:block}.table-container[_ngcontent-%COMP%]{display:flex;flex-direction:column;height:100%;overflow:auto;flex:1 1 auto}.table-box[_ngcontent-%COMP%]{height:100%;display:flex;flex-direction:column}.table-header[_ngcontent-%COMP%]{min-height:64px;max-width:500px;display:flex;flex:0 1 auto;align-items:baseline;padding:8px 24px 0;font-size:20px;justify-content:space-between}tr[mat-header-row][_ngcontent-%COMP%], tr[mat-row][_ngcontent-%COMP%]{height:60px}.mat-cell-text[_ngcontent-%COMP%]{overflow:hidden;word-wrap:break-word}td[mat-cell][_ngcontent-%COMP%]{padding-right:15px}th.mat-header-cell[_ngcontent-%COMP%]{padding-right:5px}button[_ngcontent-%COMP%]{margin-right:10px}"] });
279
- (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TableComponent, [{
280
- type: Component,
281
- args: [{ selector: 'igo-table', template: "<div class='table-box'>\r\n <div class='table-header' *ngIf=\"hasFilterInput\">\r\n <mat-form-field floatPlaceholder='never'>\r\n <input matInput #filter [placeholder]=\"'igo.common.table.filter' | translate\">\r\n </mat-form-field>\r\n </div>\r\n\r\n <div class='table-container'>\r\n <table mat-table #table [dataSource]='dataSource' matSort>\r\n\r\n <!-- Checkbox Column -->\r\n <ng-container matColumnDef=\"selectionCheckbox\">\r\n <th mat-header-cell *matHeaderCellDef>\r\n <mat-checkbox (change)=\"$event ? masterToggle() : null\"\r\n [checked]=\"selection.hasValue() && isAllSelected()\"\r\n [indeterminate]=\"selection.hasValue() && !isAllSelected()\">\r\n </mat-checkbox>\r\n </th>\r\n <td mat-cell *matCellDef=\"let row\">\r\n <mat-checkbox (click)=\"$event.stopPropagation()\"\r\n (change)=\"$event ? selection.toggle(row) : null\"\r\n [checked]=\"selection.isSelected(row)\">\r\n </mat-checkbox>\r\n </td>\r\n </ng-container>\r\n\r\n <ng-container [matColumnDef]='column.name' *ngFor='let column of model.columns'>\r\n <ng-container *ngIf='column.sortable'>\r\n <th mat-header-cell *matHeaderCellDef mat-sort-header> {{column.title}} </th>\r\n </ng-container>\r\n\r\n <ng-container *ngIf='!column.sortable'>\r\n <th mat-header-cell *matHeaderCellDef> {{column.title}} </th>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"!column.html; else cellHTML\">\r\n <td mat-cell *matCellDef='let row' class=\"mat-cell-text\"\r\n [ngClass]=\"model.cellClassFunc ? model.cellClassFunc(row, column) : {}\">\r\n {{getValue(row, column.name)}}\r\n </td>\r\n </ng-container>\r\n\r\n <ng-template #cellHTML>\r\n <td mat-cell *matCellDef='let row' class=\"mat-cell-text\"\r\n [ngClass]=\"model.cellClassFunc ? model.cellClassFunc(row, column) : {}\"\r\n [innerHTML]=\"getValue(row, column.name)\">\r\n </td>\r\n </ng-template>\r\n </ng-container>\r\n\r\n <!-- Action Column -->\r\n <ng-container matColumnDef='action'>\r\n <th mat-header-cell *matHeaderCellDef></th>\r\n <td mat-cell *matCellDef='let row'>\r\n <button *ngFor='let action of model.actions'\r\n mat-mini-fab\r\n [color]='getActionColor(action.color)'\r\n (click)='handleClickAction($event, action, row)'>\r\n <mat-icon svgIcon=\"{{action.icon}}\"></mat-icon>\r\n </button>\r\n </td>\r\n </ng-container>\r\n\r\n <tr mat-header-row *matHeaderRowDef='displayedColumns;'></tr>\r\n <tr mat-row\r\n *matRowDef='let row; columns: displayedColumns;'\r\n [ngClass]=\"model.rowClassFunc ? model.rowClassFunc(row) : {}\"\r\n (click)=\"selection.toggle(row)\">\r\n </tr>\r\n\r\n </table>\r\n </div>\r\n\r\n</div>\r\n", styles: [":host{width:100%;height:100%;display:block}.table-container{display:flex;flex-direction:column;height:100%;overflow:auto;flex:1 1 auto}.table-box{height:100%;display:flex;flex-direction:column}.table-header{min-height:64px;max-width:500px;display:flex;flex:0 1 auto;align-items:baseline;padding:8px 24px 0;font-size:20px;justify-content:space-between}tr[mat-header-row],tr[mat-row]{height:60px}.mat-cell-text{overflow:hidden;word-wrap:break-word}td[mat-cell]{padding-right:15px}th.mat-header-cell{padding-right:5px}button{margin-right:10px}\n"] }]
282
- }], null, { database: [{
283
- type: Input
284
- }], model: [{
285
- type: Input
286
- }], hasFilterInput: [{
287
- type: Input
288
- }], select: [{
289
- type: Output
290
- }], filter: [{
291
- type: ViewChild,
292
- args: ['filter']
293
- }], sort: [{
294
- type: ViewChild,
295
- args: [MatSort, { static: true }]
296
- }] }); })();
297
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tbW9uL3NyYy9saWIvdGFibGUvdGFibGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tbW9uL3NyYy9saWIvdGFibGUvdGFibGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFFVCxTQUFTLEVBQ1QsS0FBSyxFQUNMLE1BQU0sRUFJTixZQUFZLEVBQ2IsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2pELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUUxRCxPQUFPLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDcEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUVqQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBSTFDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7Ozs7Ozs7Ozs7OztJQ3JCM0QsK0JBQWlELHlCQUFBO0lBRTdDLGdDQUE4RTs7SUFDaEYsaUJBQWlCLEVBQUE7O0lBRFMsZUFBcUQ7SUFBckQsNkVBQXFEOzs7O0lBUzNFLDhCQUFzQyx1QkFBQTtJQUN0QiwwS0FBVSx3QkFBUyxzQkFBYyxHQUFHLElBQUksQ0FBQSxJQUFDO0lBR3ZELGlCQUFlLEVBQUE7OztJQUZELGVBQW1EO0lBQW5ELCtFQUFtRCx5RUFBQTs7OztJQUluRSw4QkFBbUMsdUJBQUE7SUFDbkIsNEdBQVMsd0JBQXdCLElBQUMsd05BQ3hCLHdCQUFTLGlDQUFxQixHQUFHLElBQUksQ0FB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N0QsZ0VBSUs7UUFFUCxpQkFBUSxFQUFBLEVBQUE7O1FBckVpQixlQUFvQjtRQUFwQix5Q0FBb0I7UUFPckIsZUFBeUI7UUFBekIsMkNBQXlCO1FBa0JlLGVBQWdCO1FBQWhCLDJDQUFnQjtRQXFDMUQsZUFBa0M7UUFBbEMsc0RBQWtDO1FBRS9CLGVBQTBCO1FBQTFCLHVEQUEwQjs7dUZEcEMxQyxjQUFjO2NBTDFCLFNBQVM7MkJBQ0UsV0FBVztnQkFNakIsUUFBUTtrQkFEWCxLQUFLO1lBVUYsS0FBSztrQkFEUixLQUFLO1lBVUYsY0FBYztrQkFEakIsS0FBSztZQWNOLE1BQU07a0JBREwsTUFBTTtZQU9jLE1BQU07a0JBQTFCLFNBQVM7bUJBQUMsUUFBUTtZQUNtQixJQUFJO2tCQUF6QyxTQUFTO21CQUFDLE9BQU8sRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBFbGVtZW50UmVmLFxyXG4gIFZpZXdDaGlsZCxcclxuICBJbnB1dCxcclxuICBPdXRwdXQsXHJcbiAgT25DaGFuZ2VzLFxyXG4gIE9uSW5pdCxcclxuICBBZnRlclZpZXdJbml0LFxyXG4gIEV2ZW50RW1pdHRlclxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXRTb3J0IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc29ydCc7XHJcbmltcG9ydCB7IFNlbGVjdGlvbk1vZGVsIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvbGxlY3Rpb25zJztcclxuXHJcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgZGlzdGluY3RVbnRpbENoYW5nZWQgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IGZyb21FdmVudCB9IGZyb20gJ3J4anMnO1xyXG5cclxuaW1wb3J0IHsgT2JqZWN0VXRpbHMgfSBmcm9tICdAaWdvMi91dGlscyc7XHJcblxyXG5pbXBvcnQgeyBUYWJsZU1vZGVsIH0gZnJvbSAnLi90YWJsZS1tb2RlbC5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBUYWJsZURhdGFiYXNlIH0gZnJvbSAnLi90YWJsZS1kYXRhYmFzZSc7XHJcbmltcG9ydCB7IFRhYmxlRGF0YVNvdXJjZSB9IGZyb20gJy4vdGFibGUtZGF0YXNvdXJjZSc7XHJcbmltcG9ydCB7IFRhYmxlQWN0aW9uQ29sb3IgfSBmcm9tICcuL3RhYmxlLWFjdGlvbi1jb2xvci5lbnVtJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnaWdvLXRhYmxlJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vdGFibGUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3RhYmxlLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFRhYmxlQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzLCBPbkluaXQsIEFmdGVyVmlld0luaXQge1xyXG4gIEBJbnB1dCgpXHJcbiAgZ2V0IGRhdGFiYXNlKCk6IFRhYmxlRGF0YWJhc2Uge1xyXG4gICAgcmV0dXJuIHRoaXMuX2RhdGFiYXNlO1xyXG4gIH1cclxuICBzZXQgZGF0YWJhc2UodmFsdWU6IFRhYmxlRGF0YWJhc2UpIHtcclxuICAgIHRoaXMuX2RhdGFiYXNlID0gdmFsdWU7XHJcbiAgfVxyXG4gIHByaXZhdGUgX2RhdGFiYXNlOiBUYWJsZURhdGFiYXNlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIGdldCBtb2RlbCgpOiBUYWJsZU1vZGVsIHtcclxuICAgIHJldHVybiB0aGlzLl9tb2RlbDtcclxuICB9XHJcbiAgc2V0IG1vZGVsKHZhbHVlOiBUYWJsZU1vZGVsKSB7XHJcbiAgICB0aGlzLl9tb2RlbCA9IHZhbHVlO1xyXG4gIH1cclxuICBwcml2YXRlIF9tb2RlbDogVGFibGVNb2RlbDtcclxuXHJcbiAgQElucHV0KClcclxuICBnZXQgaGFzRmlsdGVySW5wdXQoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5faGFzRklsdGVySW5wdXQ7XHJcbiAgfVxyXG4gIHNldCBoYXNGaWx0ZXJJbnB1dCh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgdGhpcy5faGFzRklsdGVySW5wdXQgPSB2YWx1ZTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfaGFzRklsdGVySW5wdXQgPSB0cnVlO1xyXG5cclxuICBwdWJsaWMgZGlzcGxheWVkQ29sdW1ucztcclxuICBwdWJsaWMgZGF0YVNvdXJjZTogVGFibGVEYXRhU291cmNlIHwgbnVsbDtcclxuICBwdWJsaWMgc2VsZWN0aW9uID0gbmV3IFNlbGVjdGlvbk1vZGVsPGFueT4odHJ1ZSwgW10pO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBzZWxlY3QgPSBuZXcgRXZlbnRFbWl0dGVyPHtcclxuICAgIGFkZGVkOiBhbnlbXTtcclxuICAgIHJlbW92ZWQ6IGFueVtdO1xyXG4gICAgc291cmNlOiBTZWxlY3Rpb25Nb2RlbDxhbnk+O1xyXG4gIH0+KCk7XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ2ZpbHRlcicpIGZpbHRlcjogRWxlbWVudFJlZjtcclxuICBAVmlld0NoaWxkKE1hdFNvcnQsIHsgc3RhdGljOiB0cnVlIH0pIHNvcnQ6IE1hdFNvcnQ7XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5kYXRhU291cmNlID0gbmV3IFRhYmxlRGF0YVNvdXJjZSh0aGlzLmRhdGFiYXNlLCB0aGlzLm1vZGVsLCB0aGlzLnNvcnQpO1xyXG5cclxuICAgIGlmICh0aGlzLm1vZGVsKSB7XHJcbiAgICAgIHRoaXMuZGlzcGxheWVkQ29sdW1ucyA9IHRoaXMubW9kZWwuY29sdW1uc1xyXG4gICAgICAgIC5maWx0ZXIoYyA9PiBjLmRpc3BsYXllZCAhPT0gZmFsc2UpXHJcbiAgICAgICAgLm1hcChjID0+IGMubmFtZSk7XHJcblxyXG4gICAgICBpZiAodGhpcy5tb2RlbC5zZWxlY3Rpb25DaGVja2JveCkge1xyXG4gICAgICAgIHRoaXMuZGlzcGxheWVkQ29sdW1ucy51bnNoaWZ0KCdzZWxlY3Rpb25DaGVja2JveCcpO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh0aGlzLm1vZGVsLmFjdGlvbnMgJiYgdGhpcy5tb2RlbC5hY3Rpb25zLmxlbmd0aCkge1xyXG4gICAgICAgIHRoaXMuZGlzcGxheWVkQ29sdW1ucy5wdXNoKCdhY3Rpb24nKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuc2VsZWN0aW9uLmNoYW5nZWQuc3Vic2NyaWJlKGUgPT4gdGhpcy5zZWxlY3QuZW1pdChlKSk7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICBpZiAodGhpcy5maWx0ZXIpIHtcclxuICAgICAgZnJvbUV2ZW50KHRoaXMuZmlsdGVyLm5hdGl2ZUVsZW1lbnQsICdrZXl1cCcpXHJcbiAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICBkZWJvdW5jZVRpbWUoMTUwKSxcclxuICAgICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKClcclxuICAgICAgICApXHJcbiAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgICBpZiAoIXRoaXMuZGF0YVNvdXJjZSkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICB0aGlzLmRhdGFTb3VyY2UuZmlsdGVyID0gdGhpcy5maWx0ZXIubmF0aXZlRWxlbWVudC52YWx1ZTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZSkge1xyXG4gICAgaWYgKGNoYW5nZS5kYXRhYmFzZSkge1xyXG4gICAgICB0aGlzLmRhdGFTb3VyY2UgPSBuZXcgVGFibGVEYXRhU291cmNlKFxyXG4gICAgICAgIHRoaXMuZGF0YWJhc2UsXHJcbiAgICAgICAgdGhpcy5tb2RlbCxcclxuICAgICAgICB0aGlzLnNvcnRcclxuICAgICAgKTtcclxuICAgICAgdGhpcy5zZWxlY3Rpb24uY2xlYXIoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldEFjdGlvbkNvbG9yKGNvbG9ySWQ6IG51bWJlcik6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gVGFibGVBY3Rpb25Db2xvcltjb2xvcklkXTtcclxuICB9XHJcblxyXG4gIGdldFZhbHVlKHJvdywga2V5KSB7XHJcbiAgICByZXR1cm4gT2JqZWN0VXRpbHMucmVzb2x2ZShyb3csIGtleSk7XHJcbiAgfVxyXG5cclxuICAvKiogV2hldGhlciB0aGUgbnVtYmVyIG9mIHNlbGVjdGVkIGVsZW1lbnRzIG1hdGNoZXMgdGhlIHRvdGFsIG51bWJlciBvZiByb3dzLiAqL1xyXG4gIGlzQWxsU2VsZWN0ZWQoKSB7XHJcbiAgICBjb25zdCBudW1TZWxlY3RlZCA9IHRoaXMuc2VsZWN0aW9uLnNlbGVjdGVkLmxlbmd0aDtcclxuICAgIGNvbnN0IG51bVJvd3MgPSB0aGlzLmRhdGFiYXNlLmRhdGEubGVuZ3RoO1xyXG4gICAgcmV0dXJuIG51bVNlbGVjdGVkID09PSBudW1Sb3dzO1xyXG4gIH1cclxuXHJcbiAgLyoqIFNlbGVjdHMgYWxsIHJvd3MgaWYgdGhleSBhcmUgbm90IGFsbCBzZWxlY3RlZDsgb3RoZXJ3aXNlIGNsZWFyIHNlbGVjdGlvbi4gKi9cclxuICBtYXN0ZXJUb2dnbGUoKSB7XHJcbiAgICB0aGlzLmlzQWxsU2VsZWN0ZWQoKVxyXG4gICAgICA/IHRoaXMuc2VsZWN0aW9uLmNsZWFyKClcclxuICAgICAgOiB0aGlzLmRhdGFiYXNlLmRhdGEuZm9yRWFjaChyb3cgPT4gdGhpcy5zZWxlY3Rpb24uc2VsZWN0KHJvdykpO1xyXG4gIH1cclxuXHJcbiAgaGFuZGxlQ2xpY2tBY3Rpb24oZXZlbnQsIGFjdGlvbiwgcm93KSB7XHJcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIGFjdGlvbi5jbGljayhyb3cpO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPSd0YWJsZS1ib3gnPlxyXG4gIDxkaXYgY2xhc3M9J3RhYmxlLWhlYWRlcicgKm5nSWY9XCJoYXNGaWx0ZXJJbnB1dFwiPlxyXG4gICAgPG1hdC1mb3JtLWZpZWxkIGZsb2F0UGxhY2Vob2xkZXI9J25ldmVyJz5cclxuICAgICAgPGlucHV0IG1hdElucHV0ICNmaWx0ZXIgW3BsYWNlaG9sZGVyXT1cIidpZ28uY29tbW9uLnRhYmxlLmZpbHRlcicgfCB0cmFuc2xhdGVcIj5cclxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDxkaXYgY2xhc3M9J3RhYmxlLWNvbnRhaW5lcic+XHJcbiAgICA8dGFibGUgbWF0LXRhYmxlICN0YWJsZSBbZGF0YVNvdXJjZV09J2RhdGFTb3VyY2UnIG1hdFNvcnQ+XHJcblxyXG4gICAgICA8IS0tIENoZWNrYm94IENvbHVtbiAtLT5cclxuICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJzZWxlY3Rpb25DaGVja2JveFwiPlxyXG4gICAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWY+XHJcbiAgICAgICAgICA8bWF0LWNoZWNrYm94IChjaGFuZ2UpPVwiJGV2ZW50ID8gbWFzdGVyVG9nZ2xlKCkgOiBudWxsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2NoZWNrZWRdPVwic2VsZWN0aW9uLmhhc1ZhbHVlKCkgJiYgaXNBbGxTZWxlY3RlZCgpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2luZGV0ZXJtaW5hdGVdPVwic2VsZWN0aW9uLmhhc1ZhbHVlKCkgJiYgIWlzQWxsU2VsZWN0ZWQoKVwiPlxyXG4gICAgICAgICAgPC9tYXQtY2hlY2tib3g+XHJcbiAgICAgICAgPC90aD5cclxuICAgICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgcm93XCI+XHJcbiAgICAgICAgICA8bWF0LWNoZWNrYm94IChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2hhbmdlKT1cIiRldmVudCA/IHNlbGVjdGlvbi50b2dnbGUocm93KSA6IG51bGxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbY2hlY2tlZF09XCJzZWxlY3Rpb24uaXNTZWxlY3RlZChyb3cpXCI+XHJcbiAgICAgICAgICA8L21hdC1jaGVja2JveD5cclxuICAgICAgICA8L3RkPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgIDxuZy1jb250YWluZXIgW21hdENvbHVtbkRlZl09J2NvbHVtbi5uYW1lJyAqbmdGb3I9J2xldCBjb2x1bW4gb2YgbW9kZWwuY29sdW1ucyc+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj0nY29sdW1uLnNvcnRhYmxlJz5cclxuICAgICAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWYgbWF0LXNvcnQtaGVhZGVyPiB7e2NvbHVtbi50aXRsZX19IDwvdGg+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9JyFjb2x1bW4uc29ydGFibGUnPlxyXG4gICAgICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj4ge3tjb2x1bW4udGl0bGV9fSA8L3RoPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWNvbHVtbi5odG1sOyBlbHNlIGNlbGxIVE1MXCI+XHJcbiAgICAgICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9J2xldCByb3cnIGNsYXNzPVwibWF0LWNlbGwtdGV4dFwiXHJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cIm1vZGVsLmNlbGxDbGFzc0Z1bmMgPyBtb2RlbC5jZWxsQ2xhc3NGdW5jKHJvdywgY29sdW1uKSA6IHt9XCI+XHJcbiAgICAgICAgICAgIHt7Z2V0VmFsdWUocm93LCBjb2x1bW4ubmFtZSl9fVxyXG4gICAgICAgICAgPC90ZD5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgPG5nLXRlbXBsYXRlICNjZWxsSFRNTD5cclxuICAgICAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj0nbGV0IHJvdycgY2xhc3M9XCJtYXQtY2VsbC10ZXh0XCJcclxuICAgICAgICAgICAgW25nQ2xhc3NdPVwibW9kZWwuY2VsbENsYXNzRnVuYyA/IG1vZGVsLmNlbGxDbGFzc0Z1bmMocm93LCBjb2x1bW4pIDoge31cIlxyXG4gICAgICAgICAgICBbaW5uZXJIVE1MXT1cImdldFZhbHVlKHJvdywgY29sdW1uLm5hbWUpXCI+XHJcbiAgICAgICAgICA8L3RkPlxyXG4gICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgPCEtLSBBY3Rpb24gQ29sdW1uIC0tPlxyXG4gICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj0nYWN0aW9uJz5cclxuICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPjwvdGg+XHJcbiAgICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPSdsZXQgcm93Jz5cclxuICAgICAgICAgIDxidXR0b24gKm5nRm9yPSdsZXQgYWN0aW9uIG9mIG1vZGVsLmFjdGlvbnMnXHJcbiAgICAgICAgICBtYXQtbWluaS1mYWJcclxuICAgICAgICAgIFtjb2xvcl09J2dldEFjdGlvbkNvbG9yKGFjdGlvbi5jb2xvciknXHJcbiAgICAgICAgICAoY2xpY2spPSdoYW5kbGVDbGlja0FjdGlvbigkZXZlbnQsIGFjdGlvbiwgcm93KSc+XHJcbiAgICAgICAgICAgIDxtYXQtaWNvbiBzdmdJY29uPVwie3thY3Rpb24uaWNvbn19XCI+PC9tYXQtaWNvbj5cclxuICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDwvdGQ+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgPHRyIG1hdC1oZWFkZXItcm93ICptYXRIZWFkZXJSb3dEZWY9J2Rpc3BsYXllZENvbHVtbnM7Jz48L3RyPlxyXG4gICAgICA8dHIgbWF0LXJvd1xyXG4gICAgICAgICptYXRSb3dEZWY9J2xldCByb3c7IGNvbHVtbnM6IGRpc3BsYXllZENvbHVtbnM7J1xyXG4gICAgICAgIFtuZ0NsYXNzXT1cIm1vZGVsLnJvd0NsYXNzRnVuYyA/IG1vZGVsLnJvd0NsYXNzRnVuYyhyb3cpIDoge31cIlxyXG4gICAgICAgIChjbGljayk9XCJzZWxlY3Rpb24udG9nZ2xlKHJvdylcIj5cclxuICAgICAgPC90cj5cclxuXHJcbiAgICA8L3RhYmxlPlxyXG4gIDwvZGl2PlxyXG5cclxuPC9kaXY+XHJcbiJdfQ==
@@ -1,9 +0,0 @@
1
- import { ToolService } from './tool.service';
2
- export function ToolComponent(tool) {
3
- return (compType) => {
4
- ToolService.register(Object.assign({}, tool, {
5
- component: compType
6
- }));
7
- };
8
- }
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbC1jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vc3JjL2xpYi90b29sL3NoYXJlZC90b29sLWNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFN0MsTUFBTSxVQUFVLGFBQWEsQ0FBQyxJQUFtQjtJQUMvQyxPQUFPLENBQUMsUUFBYSxFQUFFLEVBQUU7UUFDdkIsV0FBVyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUU7WUFDM0MsU0FBUyxFQUFFLFFBQVE7U0FDWixDQUFDLENBQUMsQ0FBQztJQUNkLENBQUMsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUb29sIH0gZnJvbSAnLi90b29sLmludGVyZmFjZSc7XHJcbmltcG9ydCB7IFRvb2xTZXJ2aWNlIH0gZnJvbSAnLi90b29sLnNlcnZpY2UnO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIFRvb2xDb21wb25lbnQodG9vbDogUGFydGlhbDxUb29sPik6IChjbHM6IGFueSkgPT4gYW55IHtcclxuICByZXR1cm4gKGNvbXBUeXBlOiBhbnkpID0+IHtcclxuICAgIFRvb2xTZXJ2aWNlLnJlZ2lzdGVyKE9iamVjdC5hc3NpZ24oe30sIHRvb2wsIHtcclxuICAgICAgY29tcG9uZW50OiBjb21wVHlwZVxyXG4gICAgfSBhcyBUb29sKSk7XHJcbiAgfTtcclxufVxyXG4iXX0=
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbC5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vc3JjL2xpYi90b29sL3NoYXJlZC90b29sLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBUb29sIHtcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgY29tcG9uZW50OiBhbnk7XHJcbiAgdGl0bGU/OiBzdHJpbmc7XHJcbiAgaWNvbj86IHN0cmluZztcclxuICBpY29uSW1hZ2U/OiBzdHJpbmc7XHJcbiAgdG9vbHRpcD86IHN0cmluZztcclxuICBnbG9iYWw/OiBib29sZWFuO1xyXG4gIG9wdGlvbnM/OiB7IFtrZXk6IHN0cmluZ106IGFueSB9O1xyXG5cclxuICBwYXJlbnQ/OiBzdHJpbmc7XHJcbiAgY2hpbGRyZW4/OiBzdHJpbmdbXTtcclxuXHJcbiAgLy8gVGhpcyBpcyBzdGlsbCB1c2VkIHdpdGggdGhlIEFQSSBidXQgc2hvdWxkIGJlIHJlbW92ZWQgdWx0aW1hdGVseVxyXG4gIGlkPzogc3RyaW5nO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFRvb2xib3hPcHRpb25zIHtcclxuICB0b29sYmFyPzogc3RyaW5nW107XHJcbn1cclxuIl19
@@ -1,43 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { Toolbox } from './toolbox';
3
- import * as i0 from "@angular/core";
4
- /**
5
- * Service where runtime tool configurations are registered
6
- */
7
- export class ToolService {
8
- constructor() {
9
- /**
10
- * Toolbox that holds main tools
11
- */
12
- this.toolbox = new Toolbox();
13
- this.toolbox.setTools(this.getTools());
14
- }
15
- static register(tool) {
16
- ToolService.tools[tool.name] = tool;
17
- }
18
- /**
19
- * Return a tool
20
- * @param name Tool name
21
- * @returns tool Tool
22
- */
23
- getTool(name) {
24
- return ToolService.tools[name];
25
- }
26
- /**
27
- * Return all tools
28
- * @returns tTols
29
- */
30
- getTools() {
31
- return Object.values(ToolService.tools);
32
- }
33
- }
34
- ToolService.tools = {};
35
- ToolService.ɵfac = function ToolService_Factory(t) { return new (t || ToolService)(); };
36
- ToolService.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: ToolService, factory: ToolService.ɵfac, providedIn: 'root' });
37
- (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ToolService, [{
38
- type: Injectable,
39
- args: [{
40
- providedIn: 'root'
41
- }]
42
- }], function () { return []; }, null); })();
43
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tbW9uL3NyYy9saWIvdG9vbC9zaGFyZWQvdG9vbC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHM0MsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQzs7QUFFcEM7O0dBRUc7QUFJSCxNQUFNLE9BQU8sV0FBVztJQVl0QjtRQVRBOztXQUVHO1FBQ0ksWUFBTyxHQUFZLElBQUksT0FBTyxFQUFFLENBQUM7UUFPdEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDekMsQ0FBQztJQU5ELE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBVTtRQUN4QixXQUFXLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUM7SUFDdEMsQ0FBQztJQU1EOzs7O09BSUc7SUFDSCxPQUFPLENBQUMsSUFBWTtRQUNsQixPQUFPLFdBQVcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVEOzs7T0FHRztJQUNILFFBQVE7UUFDTixPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzFDLENBQUM7O0FBOUJNLGlCQUFLLEdBQTRCLEVBQUcsQ0FBQTtzRUFEaEMsV0FBVztpRUFBWCxXQUFXLFdBQVgsV0FBVyxtQkFGVixNQUFNO3VGQUVQLFdBQVc7Y0FIdkIsVUFBVTtlQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgVG9vbCB9IGZyb20gJy4vdG9vbC5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBUb29sYm94IH0gZnJvbSAnLi90b29sYm94JztcclxuXHJcbi8qKlxyXG4gKiBTZXJ2aWNlIHdoZXJlIHJ1bnRpbWUgdG9vbCBjb25maWd1cmF0aW9ucyBhcmUgcmVnaXN0ZXJlZFxyXG4gKi9cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgVG9vbFNlcnZpY2Uge1xyXG4gIHN0YXRpYyB0b29sczogeyBba2V5OiBzdHJpbmddOiBUb29sIH0gPSB7fTtcclxuXHJcbiAgLyoqXHJcbiAgICogVG9vbGJveCB0aGF0IGhvbGRzIG1haW4gdG9vbHNcclxuICAgKi9cclxuICBwdWJsaWMgdG9vbGJveDogVG9vbGJveCA9IG5ldyBUb29sYm94KCk7XHJcblxyXG4gIHN0YXRpYyByZWdpc3Rlcih0b29sOiBUb29sKSB7XHJcbiAgICBUb29sU2VydmljZS50b29sc1t0b29sLm5hbWVdID0gdG9vbDtcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgdGhpcy50b29sYm94LnNldFRvb2xzKHRoaXMuZ2V0VG9vbHMoKSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXR1cm4gYSB0b29sXHJcbiAgICogQHBhcmFtIG5hbWUgVG9vbCBuYW1lXHJcbiAgICogQHJldHVybnMgdG9vbCBUb29sXHJcbiAgICovXHJcbiAgZ2V0VG9vbChuYW1lOiBzdHJpbmcpOiBUb29sIHtcclxuICAgIHJldHVybiBUb29sU2VydmljZS50b29sc1tuYW1lXTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHVybiBhbGwgdG9vbHNcclxuICAgKiBAcmV0dXJucyB0VG9sc1xyXG4gICAqL1xyXG4gIGdldFRvb2xzKCk6IFRvb2xbXSB7XHJcbiAgICByZXR1cm4gT2JqZWN0LnZhbHVlcyhUb29sU2VydmljZS50b29scyk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -1,179 +0,0 @@
1
- import { EntityStore } from '../../entity';
2
- import { BehaviorSubject } from 'rxjs';
3
- /**
4
- * Service where all available tools and their component are registered.
5
- */
6
- export class Toolbox {
7
- constructor(options = {}) {
8
- this.options = options;
9
- /**
10
- * Observable of the active tool
11
- */
12
- this.activeTool$ = new BehaviorSubject(undefined);
13
- /**
14
- * Ordered list of tool names to display in a toolbar
15
- */
16
- this.toolbar$ = new BehaviorSubject([]);
17
- /**
18
- * Active tool history. Useful for activating the previous tool.
19
- */
20
- this.activeToolHistory = [];
21
- /**
22
- * Tool store
23
- */
24
- this.store = new EntityStore([], {
25
- getKey: (tool) => tool.name
26
- });
27
- this.setToolbar(options.toolbar);
28
- this.initStore();
29
- }
30
- get tools$() {
31
- return this.store.entities$;
32
- }
33
- /**
34
- * Destroy the toolbox
35
- */
36
- destroy() {
37
- this.activeTool$$.unsubscribe();
38
- this.store.destroy();
39
- }
40
- /**
41
- * Return a tool
42
- * @param name Tool name
43
- * @returns tool Tool
44
- */
45
- getTool(name) {
46
- return this.store.get(name);
47
- }
48
- /**
49
- * Return all tools
50
- * @returns Array of tools
51
- */
52
- getTools() {
53
- return this.store.all();
54
- }
55
- /**
56
- * Set tool configurations
57
- * @param tools Tools
58
- */
59
- setTools(tools) {
60
- this.store.load(tools);
61
- }
62
- /**
63
- * Get toolbar
64
- * @returns Toolbar value
65
- */
66
- getToolbar() {
67
- return this.toolbar$.getValue();
68
- }
69
- /**
70
- * Set toolbar
71
- * @param toolbar A list of tool names
72
- */
73
- setToolbar(toolbar) {
74
- this.toolbar$.next(toolbar || []);
75
- }
76
- /**
77
- * Activate a tool (and deactivate other tools)
78
- * @param name Tool name
79
- * @param options Tool options
80
- */
81
- activateTool(name, options = {}) {
82
- const tool = this.getTool(name);
83
- if (tool === undefined) {
84
- return;
85
- }
86
- this.store.state.update(tool, { active: true, options }, true);
87
- }
88
- /**
89
- * Activate the previous tool, if any
90
- */
91
- activatePreviousTool() {
92
- if (this.activeToolHistory.length <= 1) {
93
- this.deactivateTool();
94
- return;
95
- }
96
- const [previous, current] = this.activeToolHistory.splice(-2, 2);
97
- this.activateTool(previous);
98
- }
99
- /**
100
- * Activate the tool below, if any
101
- */
102
- /* activateBelowTool() {
103
- const arrayTools = this.getToolbar();
104
- const index = arrayTools.findIndex(t => t === this.activeTool$.getValue().name);
105
- if (arrayTools[index + 1] !== undefined) {
106
- this.deactivateTool();
107
- const below = arrayTools[index + 1];
108
- this.activateTool(below);
109
- } else {
110
- this.deactivateTool();
111
- const below = arrayTools[0];
112
- this.activateTool(below);
113
- }
114
- } */
115
- /**
116
- * Activate the tool above, if any
117
- */
118
- /* activateAboveTool() {
119
- const arrayTools = this.getToolbar();
120
- const index = arrayTools.findIndex(t => t === this.activeTool$.getValue().name);
121
- if (arrayTools[index - 1] !== undefined) {
122
- this.deactivateTool();
123
- const above = arrayTools[index - 1];
124
- this.activateTool(above);
125
- } else {
126
- this.deactivateTool();
127
- const above = arrayTools[arrayTools.length - 1];
128
- this.activateTool(above);
129
- }
130
- } */
131
- /**
132
- * Deactivate the active tool
133
- */
134
- deactivateTool() {
135
- this.clearActiveToolHistory();
136
- this.store.state.updateAll({ active: false });
137
- }
138
- /**
139
- * Initialize the tool store and start observing the active tool
140
- */
141
- initStore() {
142
- this.store = new EntityStore([], {
143
- getKey: (entity) => entity.name
144
- });
145
- this.activeTool$$ = this.store.stateView
146
- .firstBy$((record) => record.state.active === true)
147
- .subscribe((record) => {
148
- if (record === undefined) {
149
- this.setActiveTool(undefined);
150
- return;
151
- }
152
- const tool = record.entity;
153
- const options = Object.assign({}, tool.options || {}, record.state.options || {});
154
- this.setActiveTool(Object.assign({}, tool, { options }));
155
- });
156
- }
157
- /**
158
- * Set the active tool and update the tool history
159
- * @param tool Tool
160
- */
161
- setActiveTool(tool) {
162
- this.activeTool$.next(tool);
163
- if (tool === undefined) {
164
- this.clearActiveToolHistory();
165
- }
166
- else {
167
- this.activeToolHistory = this.activeToolHistory
168
- .filter((name) => name !== tool.name)
169
- .concat([tool.name]);
170
- }
171
- }
172
- /**
173
- * Clear the tool history
174
- */
175
- clearActiveToolHistory() {
176
- this.activeToolHistory = [];
177
- }
178
- }
179
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbGJveC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbW1vbi9zcmMvbGliL3Rvb2wvc2hhcmVkL3Rvb2xib3gudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFnQixXQUFXLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFekQsT0FBTyxFQUFFLGVBQWUsRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFFckQ7O0dBRUc7QUFDSCxNQUFNLE9BQU8sT0FBTztJQWdDbEIsWUFBb0IsVUFBMEIsRUFBRTtRQUE1QixZQUFPLEdBQVAsT0FBTyxDQUFxQjtRQS9CaEQ7O1dBRUc7UUFDSCxnQkFBVyxHQUEwQixJQUFJLGVBQWUsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUVwRTs7V0FFRztRQUNILGFBQVEsR0FBOEIsSUFBSSxlQUFlLENBQUMsRUFBRSxDQUFDLENBQUM7UUFPOUQ7O1dBRUc7UUFDSyxzQkFBaUIsR0FBYSxFQUFFLENBQUM7UUFFekM7O1dBRUc7UUFDSyxVQUFLLEdBQUcsSUFBSSxXQUFXLENBQU8sRUFBRSxFQUFFO1lBQ3hDLE1BQU0sRUFBRSxDQUFDLElBQVUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUk7U0FDbEMsQ0FBQyxDQUFDO1FBT0QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDakMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ25CLENBQUM7SUFQRCxJQUFJLE1BQU07UUFDUixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDO0lBQzlCLENBQUM7SUFPRDs7T0FFRztJQUNILE9BQU87UUFDTCxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ2hDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxPQUFPLENBQUMsSUFBWTtRQUNsQixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFRDs7O09BR0c7SUFDSCxRQUFRO1FBQ04sT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFRDs7O09BR0c7SUFDSCxRQUFRLENBQUMsS0FBYTtRQUNwQixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN6QixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsVUFBVTtRQUNSLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNsQyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsVUFBVSxDQUFDLE9BQWlCO1FBQzFCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILFlBQVksQ0FBQyxJQUFZLEVBQUUsVUFBa0MsRUFBRTtRQUM3RCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2hDLElBQUksSUFBSSxLQUFLLFNBQVMsRUFBRTtZQUN0QixPQUFPO1NBQ1I7UUFFRCxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNqRSxDQUFDO0lBRUQ7O09BRUc7SUFDSCxvQkFBb0I7UUFDbEIsSUFBSSxJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTSxJQUFJLENBQUMsRUFBRTtZQUN0QyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDdEIsT0FBTztTQUNSO1FBQ0QsTUFBTSxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ2pFLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVEOztPQUVHO0lBQ0g7Ozs7Ozs7Ozs7OztRQVlJO0lBRUo7O09BRUc7SUFDSDs7Ozs7Ozs7Ozs7O1FBWUk7SUFFSjs7T0FFRztJQUNILGNBQWM7UUFDWixJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztRQUM5QixJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBRUQ7O09BRUc7SUFDSyxTQUFTO1FBQ2YsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLFdBQVcsQ0FBTyxFQUFFLEVBQUU7WUFDckMsTUFBTSxFQUFFLENBQUMsTUFBWSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSTtTQUN0QyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUzthQUNyQyxRQUFRLENBQUMsQ0FBQyxNQUEwQixFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sS0FBSyxJQUFJLENBQUM7YUFDdEUsU0FBUyxDQUFDLENBQUMsTUFBMEIsRUFBRSxFQUFFO1lBQ3hDLElBQUksTUFBTSxLQUFLLFNBQVMsRUFBRTtnQkFDeEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQztnQkFDOUIsT0FBTzthQUNSO1lBRUQsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQztZQUMzQixNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUMzQixFQUFFLEVBQ0YsSUFBSSxDQUFDLE9BQU8sSUFBSSxFQUFFLEVBQ2xCLE1BQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FDM0IsQ0FBQztZQUNGLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQzNELENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVEOzs7T0FHRztJQUNLLGFBQWEsQ0FBQyxJQUFzQjtRQUMxQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM1QixJQUFJLElBQUksS0FBSyxTQUFTLEVBQUU7WUFDdEIsSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7U0FDL0I7YUFBTTtZQUNMLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUMsaUJBQWlCO2lCQUM1QyxNQUFNLENBQUMsQ0FBQyxJQUFZLEVBQUUsRUFBRSxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsSUFBSSxDQUFDO2lCQUM1QyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztTQUN4QjtJQUNILENBQUM7SUFFRDs7T0FFRztJQUNLLHNCQUFzQjtRQUM1QixJQUFJLENBQUMsaUJBQWlCLEdBQUcsRUFBRSxDQUFDO0lBQzlCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVudGl0eVJlY29yZCwgRW50aXR5U3RvcmUgfSBmcm9tICcuLi8uLi9lbnRpdHknO1xyXG5pbXBvcnQgeyBUb29sLCBUb29sYm94T3B0aW9ucyB9IGZyb20gJy4vdG9vbC5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5cclxuLyoqXHJcbiAqIFNlcnZpY2Ugd2hlcmUgYWxsIGF2YWlsYWJsZSB0b29scyBhbmQgdGhlaXIgY29tcG9uZW50IGFyZSByZWdpc3RlcmVkLlxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIFRvb2xib3gge1xyXG4gIC8qKlxyXG4gICAqIE9ic2VydmFibGUgb2YgdGhlIGFjdGl2ZSB0b29sXHJcbiAgICovXHJcbiAgYWN0aXZlVG9vbCQ6IEJlaGF2aW9yU3ViamVjdDxUb29sPiA9IG5ldyBCZWhhdmlvclN1YmplY3QodW5kZWZpbmVkKTtcclxuXHJcbiAgLyoqXHJcbiAgICogT3JkZXJlZCBsaXN0IG9mIHRvb2wgbmFtZXMgdG8gZGlzcGxheSBpbiBhIHRvb2xiYXJcclxuICAgKi9cclxuICB0b29sYmFyJDogQmVoYXZpb3JTdWJqZWN0PHN0cmluZ1tdPiA9IG5ldyBCZWhhdmlvclN1YmplY3QoW10pO1xyXG5cclxuICAvKipcclxuICAgKiBPYnNlcnZhYmxlIG9mIHRoZSBhY3RpdmUgdG9vbFxyXG4gICAqL1xyXG4gIHByaXZhdGUgYWN0aXZlVG9vbCQkOiBTdWJzY3JpcHRpb247XHJcblxyXG4gIC8qKlxyXG4gICAqIEFjdGl2ZSB0b29sIGhpc3RvcnkuIFVzZWZ1bCBmb3IgYWN0aXZhdGluZyB0aGUgcHJldmlvdXMgdG9vbC5cclxuICAgKi9cclxuICBwcml2YXRlIGFjdGl2ZVRvb2xIaXN0b3J5OiBzdHJpbmdbXSA9IFtdO1xyXG5cclxuICAvKipcclxuICAgKiBUb29sIHN0b3JlXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBzdG9yZSA9IG5ldyBFbnRpdHlTdG9yZTxUb29sPihbXSwge1xyXG4gICAgZ2V0S2V5OiAodG9vbDogVG9vbCkgPT4gdG9vbC5uYW1lXHJcbiAgfSk7XHJcblxyXG4gIGdldCB0b29scyQoKTogQmVoYXZpb3JTdWJqZWN0PFRvb2xbXT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuc3RvcmUuZW50aXRpZXMkO1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBvcHRpb25zOiBUb29sYm94T3B0aW9ucyA9IHt9KSB7XHJcbiAgICB0aGlzLnNldFRvb2xiYXIob3B0aW9ucy50b29sYmFyKTtcclxuICAgIHRoaXMuaW5pdFN0b3JlKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBEZXN0cm95IHRoZSB0b29sYm94XHJcbiAgICovXHJcbiAgZGVzdHJveSgpIHtcclxuICAgIHRoaXMuYWN0aXZlVG9vbCQkLnVuc3Vic2NyaWJlKCk7XHJcbiAgICB0aGlzLnN0b3JlLmRlc3Ryb3koKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHVybiBhIHRvb2xcclxuICAgKiBAcGFyYW0gbmFtZSBUb29sIG5hbWVcclxuICAgKiBAcmV0dXJucyB0b29sIFRvb2xcclxuICAgKi9cclxuICBnZXRUb29sKG5hbWU6IHN0cmluZyk6IFRvb2wge1xyXG4gICAgcmV0dXJuIHRoaXMuc3RvcmUuZ2V0KG5hbWUpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0dXJuIGFsbCB0b29sc1xyXG4gICAqIEByZXR1cm5zIEFycmF5IG9mIHRvb2xzXHJcbiAgICovXHJcbiAgZ2V0VG9vbHMoKTogVG9vbFtdIHtcclxuICAgIHJldHVybiB0aGlzLnN0b3JlLmFsbCgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2V0IHRvb2wgY29uZmlndXJhdGlvbnNcclxuICAgKiBAcGFyYW0gdG9vbHMgVG9vbHNcclxuICAgKi9cclxuICBzZXRUb29scyh0b29sczogVG9vbFtdKSB7XHJcbiAgICB0aGlzLnN0b3JlLmxvYWQodG9vbHMpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2V0IHRvb2xiYXJcclxuICAgKiBAcmV0dXJucyBUb29sYmFyIHZhbHVlXHJcbiAgICovXHJcbiAgZ2V0VG9vbGJhcigpOiBzdHJpbmdbXSB7XHJcbiAgICByZXR1cm4gdGhpcy50b29sYmFyJC5nZXRWYWx1ZSgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2V0IHRvb2xiYXJcclxuICAgKiBAcGFyYW0gdG9vbGJhciBBIGxpc3Qgb2YgdG9vbCBuYW1lc1xyXG4gICAqL1xyXG4gIHNldFRvb2xiYXIodG9vbGJhcjogc3RyaW5nW10pIHtcclxuICAgIHRoaXMudG9vbGJhciQubmV4dCh0b29sYmFyIHx8IFtdKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEFjdGl2YXRlIGEgdG9vbCAoYW5kIGRlYWN0aXZhdGUgb3RoZXIgdG9vbHMpXHJcbiAgICogQHBhcmFtIG5hbWUgVG9vbCBuYW1lXHJcbiAgICogQHBhcmFtIG9wdGlvbnMgVG9vbCBvcHRpb25zXHJcbiAgICovXHJcbiAgYWN0aXZhdGVUb29sKG5hbWU6IHN0cmluZywgb3B0aW9uczogeyBba2V5OiBzdHJpbmddOiBhbnkgfSA9IHt9KSB7XHJcbiAgICBjb25zdCB0b29sID0gdGhpcy5nZXRUb29sKG5hbWUpO1xyXG4gICAgaWYgKHRvb2wgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5zdG9yZS5zdGF0ZS51cGRhdGUodG9vbCwgeyBhY3RpdmU6IHRydWUsIG9wdGlvbnMgfSwgdHJ1ZSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBBY3RpdmF0ZSB0aGUgcHJldmlvdXMgdG9vbCwgaWYgYW55XHJcbiAgICovXHJcbiAgYWN0aXZhdGVQcmV2aW91c1Rvb2woKSB7XHJcbiAgICBpZiAodGhpcy5hY3RpdmVUb29sSGlzdG9yeS5sZW5ndGggPD0gMSkge1xyXG4gICAgICB0aGlzLmRlYWN0aXZhdGVUb29sKCk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGNvbnN0IFtwcmV2aW91cywgY3VycmVudF0gPSB0aGlzLmFjdGl2ZVRvb2xIaXN0b3J5LnNwbGljZSgtMiwgMik7XHJcbiAgICB0aGlzLmFjdGl2YXRlVG9vbChwcmV2aW91cyk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBBY3RpdmF0ZSB0aGUgdG9vbCBiZWxvdywgaWYgYW55XHJcbiAgICovXHJcbiAgLyogYWN0aXZhdGVCZWxvd1Rvb2woKSB7XHJcbiAgICBjb25zdCBhcnJheVRvb2xzID0gdGhpcy5nZXRUb29sYmFyKCk7XHJcbiAgICBjb25zdCBpbmRleCA9IGFycmF5VG9vbHMuZmluZEluZGV4KHQgPT4gdCA9PT0gdGhpcy5hY3RpdmVUb29sJC5nZXRWYWx1ZSgpLm5hbWUpO1xyXG4gICAgaWYgKGFycmF5VG9vbHNbaW5kZXggKyAxXSAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIHRoaXMuZGVhY3RpdmF0ZVRvb2woKTtcclxuICAgICAgY29uc3QgYmVsb3cgPSBhcnJheVRvb2xzW2luZGV4ICsgMV07XHJcbiAgICAgIHRoaXMuYWN0aXZhdGVUb29sKGJlbG93KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZGVhY3RpdmF0ZVRvb2woKTtcclxuICAgICAgY29uc3QgYmVsb3cgPSBhcnJheVRvb2xzWzBdO1xyXG4gICAgICB0aGlzLmFjdGl2YXRlVG9vbChiZWxvdyk7XHJcbiAgICB9XHJcbiAgfSAqL1xyXG5cclxuICAvKipcclxuICAgKiBBY3RpdmF0ZSB0aGUgdG9vbCBhYm92ZSwgaWYgYW55XHJcbiAgICovXHJcbiAgLyogYWN0aXZhdGVBYm92ZVRvb2woKSB7XHJcbiAgICBjb25zdCBhcnJheVRvb2xzID0gdGhpcy5nZXRUb29sYmFyKCk7XHJcbiAgICBjb25zdCBpbmRleCA9IGFycmF5VG9vbHMuZmluZEluZGV4KHQgPT4gdCA9PT0gdGhpcy5hY3RpdmVUb29sJC5nZXRWYWx1ZSgpLm5hbWUpO1xyXG4gICAgaWYgKGFycmF5VG9vbHNbaW5kZXggLSAxXSAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIHRoaXMuZGVhY3RpdmF0ZVRvb2woKTtcclxuICAgICAgY29uc3QgYWJvdmUgPSBhcnJheVRvb2xzW2luZGV4IC0gMV07XHJcbiAgICAgIHRoaXMuYWN0aXZhdGVUb29sKGFib3ZlKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZGVhY3RpdmF0ZVRvb2woKTtcclxuICAgICAgY29uc3QgYWJvdmUgPSBhcnJheVRvb2xzW2FycmF5VG9vbHMubGVuZ3RoIC0gMV07XHJcbiAgICAgIHRoaXMuYWN0aXZhdGVUb29sKGFib3ZlKTtcclxuICAgIH1cclxuICB9ICovXHJcblxyXG4gIC8qKlxyXG4gICAqIERlYWN0aXZhdGUgdGhlIGFjdGl2ZSB0b29sXHJcbiAgICovXHJcbiAgZGVhY3RpdmF0ZVRvb2woKSB7XHJcbiAgICB0aGlzLmNsZWFyQWN0aXZlVG9vbEhpc3RvcnkoKTtcclxuICAgIHRoaXMuc3RvcmUuc3RhdGUudXBkYXRlQWxsKHsgYWN0aXZlOiBmYWxzZSB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEluaXRpYWxpemUgdGhlIHRvb2wgc3RvcmUgYW5kIHN0YXJ0IG9ic2VydmluZyB0aGUgYWN0aXZlIHRvb2xcclxuICAgKi9cclxuICBwcml2YXRlIGluaXRTdG9yZSgpIHtcclxuICAgIHRoaXMuc3RvcmUgPSBuZXcgRW50aXR5U3RvcmU8VG9vbD4oW10sIHtcclxuICAgICAgZ2V0S2V5OiAoZW50aXR5OiBUb29sKSA9PiBlbnRpdHkubmFtZVxyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5hY3RpdmVUb29sJCQgPSB0aGlzLnN0b3JlLnN0YXRlVmlld1xyXG4gICAgICAuZmlyc3RCeSQoKHJlY29yZDogRW50aXR5UmVjb3JkPFRvb2w+KSA9PiByZWNvcmQuc3RhdGUuYWN0aXZlID09PSB0cnVlKVxyXG4gICAgICAuc3Vic2NyaWJlKChyZWNvcmQ6IEVudGl0eVJlY29yZDxUb29sPikgPT4ge1xyXG4gICAgICAgIGlmIChyZWNvcmQgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgdGhpcy5zZXRBY3RpdmVUb29sKHVuZGVmaW5lZCk7XHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjb25zdCB0b29sID0gcmVjb3JkLmVudGl0eTtcclxuICAgICAgICBjb25zdCBvcHRpb25zID0gT2JqZWN0LmFzc2lnbihcclxuICAgICAgICAgIHt9LFxyXG4gICAgICAgICAgdG9vbC5vcHRpb25zIHx8IHt9LFxyXG4gICAgICAgICAgcmVjb3JkLnN0YXRlLm9wdGlvbnMgfHwge31cclxuICAgICAgICApO1xyXG4gICAgICAgIHRoaXMuc2V0QWN0aXZlVG9vbChPYmplY3QuYXNzaWduKHt9LCB0b29sLCB7IG9wdGlvbnMgfSkpO1xyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNldCB0aGUgYWN0aXZlIHRvb2wgYW5kIHVwZGF0ZSB0aGUgdG9vbCBoaXN0b3J5XHJcbiAgICogQHBhcmFtIHRvb2wgVG9vbFxyXG4gICAqL1xyXG4gIHByaXZhdGUgc2V0QWN0aXZlVG9vbCh0b29sOiBUb29sIHwgdW5kZWZpbmVkKSB7XHJcbiAgICB0aGlzLmFjdGl2ZVRvb2wkLm5leHQodG9vbCk7XHJcbiAgICBpZiAodG9vbCA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIHRoaXMuY2xlYXJBY3RpdmVUb29sSGlzdG9yeSgpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5hY3RpdmVUb29sSGlzdG9yeSA9IHRoaXMuYWN0aXZlVG9vbEhpc3RvcnlcclxuICAgICAgICAuZmlsdGVyKChuYW1lOiBzdHJpbmcpID0+IG5hbWUgIT09IHRvb2wubmFtZSlcclxuICAgICAgICAuY29uY2F0KFt0b29sLm5hbWVdKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENsZWFyIHRoZSB0b29sIGhpc3RvcnlcclxuICAgKi9cclxuICBwcml2YXRlIGNsZWFyQWN0aXZlVG9vbEhpc3RvcnkoKSB7XHJcbiAgICB0aGlzLmFjdGl2ZVRvb2xIaXN0b3J5ID0gW107XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -1,32 +0,0 @@
1
- import { NgModule } from '@angular/core';
2
- import { CommonModule } from '@angular/common';
3
- import { ToolService } from './shared/tool.service';
4
- import { IgoToolboxModule } from './toolbox/toolbox.module';
5
- import * as i0 from "@angular/core";
6
- export class IgoToolModule {
7
- static forRoot() {
8
- return {
9
- ngModule: IgoToolModule,
10
- providers: [
11
- ToolService
12
- ]
13
- };
14
- }
15
- }
16
- IgoToolModule.ɵfac = function IgoToolModule_Factory(t) { return new (t || IgoToolModule)(); };
17
- IgoToolModule.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: IgoToolModule });
18
- IgoToolModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [CommonModule, IgoToolboxModule] });
19
- (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(IgoToolModule, [{
20
- type: NgModule,
21
- args: [{
22
- imports: [
23
- CommonModule
24
- ],
25
- exports: [
26
- IgoToolboxModule
27
- ],
28
- declarations: []
29
- }]
30
- }], null, null); })();
31
- (function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(IgoToolModule, { imports: [CommonModule], exports: [IgoToolboxModule] }); })();
32
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vc3JjL2xpYi90b29sL3Rvb2wubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQXVCLE1BQU0sZUFBZSxDQUFDO0FBQzlELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUvQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDcEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7O0FBVzVELE1BQU0sT0FBTyxhQUFhO0lBQ3hCLE1BQU0sQ0FBQyxPQUFPO1FBQ1osT0FBTztZQUNMLFFBQVEsRUFBRSxhQUFhO1lBQ3ZCLFNBQVMsRUFBRTtnQkFDVCxXQUFXO2FBQ1o7U0FDRixDQUFDO0lBQ0osQ0FBQzs7MEVBUlUsYUFBYTsrREFBYixhQUFhO21FQVB0QixZQUFZLEVBR1osZ0JBQWdCO3VGQUlQLGFBQWE7Y0FUekIsUUFBUTtlQUFDO2dCQUNSLE9BQU8sRUFBRTtvQkFDUCxZQUFZO2lCQUNiO2dCQUNELE9BQU8sRUFBRTtvQkFDUCxnQkFBZ0I7aUJBQ2pCO2dCQUNELFlBQVksRUFBRSxFQUFFO2FBQ2pCOzt3RkFDWSxhQUFhLGNBUHRCLFlBQVksYUFHWixnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSwgTW9kdWxlV2l0aFByb3ZpZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5cclxuaW1wb3J0IHsgVG9vbFNlcnZpY2UgfSBmcm9tICcuL3NoYXJlZC90b29sLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBJZ29Ub29sYm94TW9kdWxlIH0gZnJvbSAnLi90b29sYm94L3Rvb2xib3gubW9kdWxlJztcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlXHJcbiAgXSxcclxuICBleHBvcnRzOiBbXHJcbiAgICBJZ29Ub29sYm94TW9kdWxlXHJcbiAgXSxcclxuICBkZWNsYXJhdGlvbnM6IFtdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBJZ29Ub29sTW9kdWxlIHtcclxuICBzdGF0aWMgZm9yUm9vdCgpOiBNb2R1bGVXaXRoUHJvdmlkZXJzPElnb1Rvb2xNb2R1bGU+IHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIG5nTW9kdWxlOiBJZ29Ub29sTW9kdWxlLFxyXG4gICAgICBwcm92aWRlcnM6IFtcclxuICAgICAgICBUb29sU2VydmljZVxyXG4gICAgICBdXHJcbiAgICB9O1xyXG4gIH1cclxufVxyXG4iXX0=