@igo2/common 1.15.3 → 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,24 +1,24 @@
1
- import { NgModule } from '@angular/core';
2
- import { KeyValuePipe } from './keyvalue.pipe';
3
- import * as i0 from "@angular/core";
4
- export class IgoKeyValueModule {
5
- static forRoot() {
6
- return {
7
- ngModule: IgoKeyValueModule,
8
- providers: []
9
- };
10
- }
11
- }
12
- IgoKeyValueModule.ɵfac = function IgoKeyValueModule_Factory(t) { return new (t || IgoKeyValueModule)(); };
13
- IgoKeyValueModule.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: IgoKeyValueModule });
14
- IgoKeyValueModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({});
15
- (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(IgoKeyValueModule, [{
16
- type: NgModule,
17
- args: [{
18
- imports: [],
19
- declarations: [KeyValuePipe],
20
- exports: [KeyValuePipe]
21
- }]
22
- }], null, null); })();
23
- (function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(IgoKeyValueModule, { declarations: [KeyValuePipe], exports: [KeyValuePipe] }); })();
24
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5dmFsdWUubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tbW9uL3NyYy9saWIva2V5dmFsdWUva2V5dmFsdWUubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQXVCLE1BQU0sZUFBZSxDQUFDO0FBQzlELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7QUFPL0MsTUFBTSxPQUFPLGlCQUFpQjtJQUM1QixNQUFNLENBQUMsT0FBTztRQUNaLE9BQU87WUFDTCxRQUFRLEVBQUUsaUJBQWlCO1lBQzNCLFNBQVMsRUFBRSxFQUFFO1NBQ2QsQ0FBQztJQUNKLENBQUM7O2tGQU5VLGlCQUFpQjttRUFBakIsaUJBQWlCOzt1RkFBakIsaUJBQWlCO2NBTDdCLFFBQVE7ZUFBQztnQkFDUixPQUFPLEVBQUUsRUFBRTtnQkFDWCxZQUFZLEVBQUUsQ0FBQyxZQUFZLENBQUM7Z0JBQzVCLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQzthQUN4Qjs7d0ZBQ1ksaUJBQWlCLG1CQUhiLFlBQVksYUFDakIsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlLCBNb2R1bGVXaXRoUHJvdmlkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEtleVZhbHVlUGlwZSB9IGZyb20gJy4va2V5dmFsdWUucGlwZSc7XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGltcG9ydHM6IFtdLFxyXG4gIGRlY2xhcmF0aW9uczogW0tleVZhbHVlUGlwZV0sXHJcbiAgZXhwb3J0czogW0tleVZhbHVlUGlwZV1cclxufSlcclxuZXhwb3J0IGNsYXNzIElnb0tleVZhbHVlTW9kdWxlIHtcclxuICBzdGF0aWMgZm9yUm9vdCgpOiBNb2R1bGVXaXRoUHJvdmlkZXJzPElnb0tleVZhbHVlTW9kdWxlPiB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBuZ01vZHVsZTogSWdvS2V5VmFsdWVNb2R1bGUsXHJcbiAgICAgIHByb3ZpZGVyczogW11cclxuICAgIH07XHJcbiAgfVxyXG59XHJcbiJdfQ==
1
+ import { NgModule } from '@angular/core';
2
+ import { KeyValuePipe } from './keyvalue.pipe';
3
+ import * as i0 from "@angular/core";
4
+ export class IgoKeyValueModule {
5
+ static forRoot() {
6
+ return {
7
+ ngModule: IgoKeyValueModule,
8
+ providers: []
9
+ };
10
+ }
11
+ static ɵfac = function IgoKeyValueModule_Factory(t) { return new (t || IgoKeyValueModule)(); };
12
+ static ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: IgoKeyValueModule });
13
+ static ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({});
14
+ }
15
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(IgoKeyValueModule, [{
16
+ type: NgModule,
17
+ args: [{
18
+ imports: [],
19
+ declarations: [KeyValuePipe],
20
+ exports: [KeyValuePipe]
21
+ }]
22
+ }], null, null); })();
23
+ (function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(IgoKeyValueModule, { declarations: [KeyValuePipe], exports: [KeyValuePipe] }); })();
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5dmFsdWUubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tbW9uL3NyYy9saWIva2V5dmFsdWUva2V5dmFsdWUubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQXVCLE1BQU0sZUFBZSxDQUFDO0FBQzlELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7QUFPL0MsTUFBTSxPQUFPLGlCQUFpQjtJQUM1QixNQUFNLENBQUMsT0FBTztRQUNaLE9BQU87WUFDTCxRQUFRLEVBQUUsaUJBQWlCO1lBQzNCLFNBQVMsRUFBRSxFQUFFO1NBQ2QsQ0FBQztJQUNKLENBQUM7MkVBTlUsaUJBQWlCOzREQUFqQixpQkFBaUI7Ozt1RkFBakIsaUJBQWlCO2NBTDdCLFFBQVE7ZUFBQztnQkFDUixPQUFPLEVBQUUsRUFBRTtnQkFDWCxZQUFZLEVBQUUsQ0FBQyxZQUFZLENBQUM7Z0JBQzVCLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQzthQUN4Qjs7d0ZBQ1ksaUJBQWlCLG1CQUhiLFlBQVksYUFDakIsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlLCBNb2R1bGVXaXRoUHJvdmlkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBLZXlWYWx1ZVBpcGUgfSBmcm9tICcuL2tleXZhbHVlLnBpcGUnO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXSxcbiAgZGVjbGFyYXRpb25zOiBbS2V5VmFsdWVQaXBlXSxcbiAgZXhwb3J0czogW0tleVZhbHVlUGlwZV1cbn0pXG5leHBvcnQgY2xhc3MgSWdvS2V5VmFsdWVNb2R1bGUge1xuICBzdGF0aWMgZm9yUm9vdCgpOiBNb2R1bGVXaXRoUHJvdmlkZXJzPElnb0tleVZhbHVlTW9kdWxlPiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5nTW9kdWxlOiBJZ29LZXlWYWx1ZU1vZHVsZSxcbiAgICAgIHByb3ZpZGVyczogW11cbiAgICB9O1xuICB9XG59XG4iXX0=
@@ -1,18 +1,18 @@
1
- import { Pipe } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- export class KeyValuePipe {
4
- transform(value, args) {
5
- const keyValues = [];
6
- Object.getOwnPropertyNames(value).forEach((key) => keyValues.push({ key, value: value[key] }));
7
- return keyValues;
8
- }
9
- }
10
- KeyValuePipe.ɵfac = function KeyValuePipe_Factory(t) { return new (t || KeyValuePipe)(); };
11
- KeyValuePipe.ɵpipe = /*@__PURE__*/ i0.ɵɵdefinePipe({ name: "keyvalue", type: KeyValuePipe, pure: true });
12
- (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(KeyValuePipe, [{
13
- type: Pipe,
14
- args: [{
15
- name: 'keyvalue'
16
- }]
17
- }], null, null); })();
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5dmFsdWUucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbW1vbi9zcmMvbGliL2tleXZhbHVlL2tleXZhbHVlLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7O0FBS3BELE1BQU0sT0FBTyxZQUFZO0lBQ3ZCLFNBQVMsQ0FBQyxLQUFVLEVBQUUsSUFBVTtRQUM5QixNQUFNLFNBQVMsR0FBRyxFQUFFLENBQUM7UUFDckIsTUFBTSxDQUFDLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQVcsRUFBRSxFQUFFLENBQ3hELFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQzNDLENBQUM7UUFFRixPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDOzt3RUFSVSxZQUFZOzZFQUFaLFlBQVk7dUZBQVosWUFBWTtjQUh4QixJQUFJO2VBQUM7Z0JBQ0osSUFBSSxFQUFFLFVBQVU7YUFDakIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5AUGlwZSh7XHJcbiAgbmFtZTogJ2tleXZhbHVlJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgS2V5VmFsdWVQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XHJcbiAgdHJhbnNmb3JtKHZhbHVlOiBhbnksIGFyZ3M/OiBhbnkpOiBhbnkge1xyXG4gICAgY29uc3Qga2V5VmFsdWVzID0gW107XHJcbiAgICBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyh2YWx1ZSkuZm9yRWFjaCgoa2V5OiBzdHJpbmcpID0+XHJcbiAgICAgIGtleVZhbHVlcy5wdXNoKHsga2V5LCB2YWx1ZTogdmFsdWVba2V5XSB9KVxyXG4gICAgKTtcclxuXHJcbiAgICByZXR1cm4ga2V5VmFsdWVzO1xyXG4gIH1cclxufVxyXG4iXX0=
1
+ import { Pipe } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class KeyValuePipe {
4
+ transform(value, args) {
5
+ const keyValues = [];
6
+ Object.getOwnPropertyNames(value).forEach((key) => keyValues.push({ key, value: value[key] }));
7
+ return keyValues;
8
+ }
9
+ static ɵfac = function KeyValuePipe_Factory(t) { return new (t || KeyValuePipe)(); };
10
+ static ɵpipe = /*@__PURE__*/ i0.ɵɵdefinePipe({ name: "keyvalue", type: KeyValuePipe, pure: true });
11
+ }
12
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(KeyValuePipe, [{
13
+ type: Pipe,
14
+ args: [{
15
+ name: 'keyvalue'
16
+ }]
17
+ }], null, null); })();
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5dmFsdWUucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbW1vbi9zcmMvbGliL2tleXZhbHVlL2tleXZhbHVlLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7O0FBS3BELE1BQU0sT0FBTyxZQUFZO0lBQ3ZCLFNBQVMsQ0FBQyxLQUFVLEVBQUUsSUFBVTtRQUM5QixNQUFNLFNBQVMsR0FBRyxFQUFFLENBQUM7UUFDckIsTUFBTSxDQUFDLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQVcsRUFBRSxFQUFFLENBQ3hELFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQzNDLENBQUM7UUFFRixPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO3NFQVJVLFlBQVk7MkVBQVosWUFBWTs7dUZBQVosWUFBWTtjQUh4QixJQUFJO2VBQUM7Z0JBQ0osSUFBSSxFQUFFLFVBQVU7YUFDakIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBQaXBlKHtcbiAgbmFtZTogJ2tleXZhbHVlJ1xufSlcbmV4cG9ydCBjbGFzcyBLZXlWYWx1ZVBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgdHJhbnNmb3JtKHZhbHVlOiBhbnksIGFyZ3M/OiBhbnkpOiBhbnkge1xuICAgIGNvbnN0IGtleVZhbHVlcyA9IFtdO1xuICAgIE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHZhbHVlKS5mb3JFYWNoKChrZXk6IHN0cmluZykgPT5cbiAgICAgIGtleVZhbHVlcy5wdXNoKHsga2V5LCB2YWx1ZTogdmFsdWVba2V5XSB9KVxuICAgICk7XG5cbiAgICByZXR1cm4ga2V5VmFsdWVzO1xuICB9XG59XG4iXX0=
@@ -1,3 +1,3 @@
1
- export * from './list.component';
2
- export * from './list-item.directive';
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vc3JjL2xpYi9saXN0L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYyx1QkFBdUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbGlzdC5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpc3QtaXRlbS5kaXJlY3RpdmUnO1xyXG4iXX0=
1
+ export * from './list.component';
2
+ export * from './list-item.directive';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vc3JjL2xpYi9saXN0L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYyx1QkFBdUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbGlzdC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saXN0LWl0ZW0uZGlyZWN0aXZlJztcbiJdfQ==
@@ -0,0 +1,167 @@
1
+ import { Directive, Input, Output, ElementRef, Renderer2, HostListener, EventEmitter } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class ListItemDirective {
4
+ renderer;
5
+ el;
6
+ static focusedCls = 'igo-list-item-focused';
7
+ static selectedCls = 'igo-list-item-selected';
8
+ static disabledCls = 'igo-list-item-disabled';
9
+ get color() {
10
+ return this._color;
11
+ }
12
+ set color(value) {
13
+ this._color = value;
14
+ }
15
+ _color = 'primary';
16
+ get focused() {
17
+ return this._focused;
18
+ }
19
+ set focused(value) {
20
+ if (value === this._focused) {
21
+ return;
22
+ }
23
+ if (this.disabled) {
24
+ return;
25
+ }
26
+ value ? this.beforeFocus.emit(this) : this.beforeUnfocus.emit(this);
27
+ this._focused = value;
28
+ if (this.selected !== true) {
29
+ this.toggleFocusedClass();
30
+ }
31
+ value ? this.focus.emit(this) : this.unfocus.emit(this);
32
+ }
33
+ _focused = false;
34
+ get selected() {
35
+ return this._selected;
36
+ }
37
+ set selected(value) {
38
+ if (value === this._selected) {
39
+ return;
40
+ }
41
+ if (this.disabled) {
42
+ return;
43
+ }
44
+ value ? this.beforeSelect.emit(this) : this.beforeUnselect.emit(this);
45
+ this._selected = value;
46
+ this._focused = value;
47
+ this.toggleSelectedClass();
48
+ value ? this.select.emit(this) : this.unselect.emit(this);
49
+ }
50
+ _selected = false;
51
+ get disabled() {
52
+ return this._disabled;
53
+ }
54
+ set disabled(value) {
55
+ if (value === this._disabled) {
56
+ return;
57
+ }
58
+ if (value === true) {
59
+ this.selected = false;
60
+ }
61
+ value ? this.beforeDisable.emit(this) : this.beforeEnable.emit(this);
62
+ this._disabled = value;
63
+ this.toggleDisabledClass();
64
+ value ? this.disable.emit(this) : this.enable.emit(this);
65
+ }
66
+ _disabled = false;
67
+ beforeSelect = new EventEmitter();
68
+ beforeFocus = new EventEmitter();
69
+ beforeUnselect = new EventEmitter();
70
+ beforeUnfocus = new EventEmitter();
71
+ beforeDisable = new EventEmitter();
72
+ beforeEnable = new EventEmitter();
73
+ focus = new EventEmitter();
74
+ unfocus = new EventEmitter();
75
+ select = new EventEmitter();
76
+ unselect = new EventEmitter();
77
+ disable = new EventEmitter();
78
+ enable = new EventEmitter();
79
+ onClick() {
80
+ this.selected = true;
81
+ }
82
+ constructor(renderer, el) {
83
+ this.renderer = renderer;
84
+ this.el = el;
85
+ }
86
+ getOffsetTop() {
87
+ const padding = 5;
88
+ return this.el.nativeElement.offsetTop - padding;
89
+ }
90
+ toggleFocusedClass() {
91
+ if (this.focused) {
92
+ this.addCls(ListItemDirective.focusedCls);
93
+ }
94
+ else {
95
+ this.removeCls(ListItemDirective.focusedCls);
96
+ }
97
+ }
98
+ toggleSelectedClass() {
99
+ if (this.selected) {
100
+ this.addCls(ListItemDirective.selectedCls);
101
+ this.removeCls(ListItemDirective.focusedCls);
102
+ }
103
+ else {
104
+ this.removeCls(ListItemDirective.selectedCls);
105
+ }
106
+ }
107
+ toggleDisabledClass() {
108
+ if (this.disabled) {
109
+ this.addCls(ListItemDirective.disabledCls);
110
+ }
111
+ else {
112
+ this.removeCls(ListItemDirective.disabledCls);
113
+ }
114
+ }
115
+ addCls(cls) {
116
+ this.renderer.addClass(this.el.nativeElement, cls);
117
+ }
118
+ removeCls(cls) {
119
+ this.renderer.removeClass(this.el.nativeElement, cls);
120
+ }
121
+ static ɵfac = function ListItemDirective_Factory(t) { return new (t || ListItemDirective)(i0.ɵɵdirectiveInject(i0.Renderer2), i0.ɵɵdirectiveInject(i0.ElementRef)); };
122
+ static ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: ListItemDirective, selectors: [["", "igoListItem", ""]], hostBindings: function ListItemDirective_HostBindings(rf, ctx) { if (rf & 1) {
123
+ i0.ɵɵlistener("click", function ListItemDirective_click_HostBindingHandler() { return ctx.onClick(); });
124
+ } }, inputs: { color: "color", focused: "focused", selected: "selected", disabled: "disabled" }, outputs: { beforeSelect: "beforeSelect", beforeFocus: "beforeFocus", beforeUnselect: "beforeUnselect", beforeUnfocus: "beforeUnfocus", beforeDisable: "beforeDisable", beforeEnable: "beforeEnable", focus: "focus", unfocus: "unfocus", select: "select", unselect: "unselect", disable: "disable", enable: "enable" } });
125
+ }
126
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ListItemDirective, [{
127
+ type: Directive,
128
+ args: [{
129
+ selector: '[igoListItem]'
130
+ }]
131
+ }], function () { return [{ type: i0.Renderer2 }, { type: i0.ElementRef }]; }, { color: [{
132
+ type: Input
133
+ }], focused: [{
134
+ type: Input
135
+ }], selected: [{
136
+ type: Input
137
+ }], disabled: [{
138
+ type: Input
139
+ }], beforeSelect: [{
140
+ type: Output
141
+ }], beforeFocus: [{
142
+ type: Output
143
+ }], beforeUnselect: [{
144
+ type: Output
145
+ }], beforeUnfocus: [{
146
+ type: Output
147
+ }], beforeDisable: [{
148
+ type: Output
149
+ }], beforeEnable: [{
150
+ type: Output
151
+ }], focus: [{
152
+ type: Output
153
+ }], unfocus: [{
154
+ type: Output
155
+ }], select: [{
156
+ type: Output
157
+ }], unselect: [{
158
+ type: Output
159
+ }], disable: [{
160
+ type: Output
161
+ }], enable: [{
162
+ type: Output
163
+ }], onClick: [{
164
+ type: HostListener,
165
+ args: ['click']
166
+ }] }); })();
167
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1pdGVtLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbW1vbi9zcmMvbGliL2xpc3QvbGlzdC1pdGVtLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULEtBQUssRUFDTCxNQUFNLEVBQ04sVUFBVSxFQUNWLFNBQVMsRUFDVCxZQUFZLEVBQ1osWUFBWSxFQUNiLE1BQU0sZUFBZSxDQUFDOztBQUt2QixNQUFNLE9BQU8saUJBQWlCO0lBb0duQjtJQUNBO0lBcEdULE1BQU0sQ0FBQyxVQUFVLEdBQUcsdUJBQXVCLENBQUM7SUFDNUMsTUFBTSxDQUFDLFdBQVcsR0FBRyx3QkFBd0IsQ0FBQztJQUM5QyxNQUFNLENBQUMsV0FBVyxHQUFHLHdCQUF3QixDQUFDO0lBRTlDLElBQ0ksS0FBSztRQUNQLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUNyQixDQUFDO0lBQ0QsSUFBSSxLQUFLLENBQUMsS0FBYTtRQUNyQixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztJQUN0QixDQUFDO0lBQ08sTUFBTSxHQUFHLFNBQVMsQ0FBQztJQUUzQixJQUNJLE9BQU87UUFDVCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDdkIsQ0FBQztJQUNELElBQUksT0FBTyxDQUFDLEtBQWM7UUFDeEIsSUFBSSxLQUFLLEtBQUssSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUMzQixPQUFPO1NBQ1I7UUFDRCxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDakIsT0FBTztTQUNSO1FBRUQsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFcEUsSUFBSSxDQUFDLFFBQVEs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UUFDeEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUVPLFNBQVMsQ0FBQyxHQUFXO1FBQzNCLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ3hELENBQUM7MkVBN0lVLGlCQUFpQjs2REFBakIsaUJBQWlCO2tHQUFqQixhQUFTOzs7dUZBQVQsaUJBQWlCO2NBSDdCLFNBQVM7ZUFBQztnQkFDVCxRQUFRLEVBQUUsZUFBZTthQUMxQjtxRkFPSyxLQUFLO2tCQURSLEtBQUs7WUFVRixPQUFPO2tCQURWLEtBQUs7WUF3QkYsUUFBUTtrQkFEWCxLQUFLO1lBdUJGLFFBQVE7a0JBRFgsS0FBSztZQXNCSSxZQUFZO2tCQUFyQixNQUFNO1lBQ0csV0FBVztrQkFBcEIsTUFBTTtZQUNHLGNBQWM7a0JBQXZCLE1BQU07WUFDRyxhQUFhO2tCQUF0QixNQUFNO1lBQ0csYUFBYTtrQkFBdEIsTUFBTTtZQUNHLFlBQVk7a0JBQXJCLE1BQU07WUFDRyxLQUFLO2tCQUFkLE1BQU07WUFDRyxPQUFPO2tCQUFoQixNQUFNO1lBQ0csTUFBTTtrQkFBZixNQUFNO1lBQ0csUUFBUTtrQkFBakIsTUFBTTtZQUNHLE9BQU87a0JBQWhCLE1BQU07WUFDRyxNQUFNO2tCQUFmLE1BQU07WUFHUCxPQUFPO2tCQUROLFlBQVk7bUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgRGlyZWN0aXZlLFxyXG4gIElucHV0LFxyXG4gIE91dHB1dCxcclxuICBFbGVtZW50UmVmLFxyXG4gIFJlbmRlcmVyMixcclxuICBIb3N0TGlzdGVuZXIsXHJcbiAgRXZlbnRFbWl0dGVyXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICBzZWxlY3RvcjogJ1tpZ29MaXN0SXRlbV0nXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBMaXN0SXRlbURpcmVjdGl2ZSB7XHJcbiAgc3RhdGljIGZvY3VzZWRDbHMgPSAnaWdvLWxpc3QtaXRlbS1mb2N1c2VkJztcclxuICBzdGF0aWMgc2VsZWN0ZWRDbHMgPSAnaWdvLWxpc3QtaXRlbS1zZWxlY3RlZCc7XHJcbiAgc3RhdGljIGRpc2FibGVkQ2xzID0gJ2lnby1saXN0LWl0ZW0tZGlzYWJsZWQnO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIGdldCBjb2xvcigpIHtcclxuICAgIHJldHVybiB0aGlzLl9jb2xvcjtcclxuICB9XHJcbiAgc2V0IGNvbG9yKHZhbHVlOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuX2NvbG9yID0gdmFsdWU7XHJcbiAgfVxyXG4gIHByaXZhdGUgX2NvbG9yID0gJ3ByaW1hcnknO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIGdldCBmb2N1c2VkKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX2ZvY3VzZWQ7XHJcbiAgfVxyXG4gIHNldCBmb2N1c2VkKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICBpZiAodmFsdWUgPT09IHRoaXMuX2ZvY3VzZWQpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuZGlzYWJsZWQpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHZhbHVlID8gdGhpcy5iZWZvcmVGb2N1cy5lbWl0KHRoaXMpIDogdGhpcy5iZWZvcmVVbmZvY3VzLmVtaXQodGhpcyk7XHJcblxyXG4gICAgdGhpcy5fZm9jdXNlZCA9IHZhbHVlO1xyXG4gICAgaWYgKHRoaXMuc2VsZWN0ZWQgIT09IHRydWUpIHtcclxuICAgICAgdGhpcy50b2dnbGVGb2N1c2VkQ2xhc3MoKTtcclxuICAgIH1cclxuXHJcbiAgICB2YWx1ZSA/IHRoaXMuZm9jdXMuZW1pdCh0aGlzKSA6IHRoaXMudW5mb2N1cy5lbWl0KHRoaXMpO1xyXG4gIH1cclxuICBwcml2YXRlIF9mb2N1c2VkID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgZ2V0IHNlbGVjdGVkKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX3NlbGVjdGVkO1xyXG4gIH1cclxuICBzZXQgc2VsZWN0ZWQodmFsdWU6IGJvb2xlYW4pIHtcclxuICAgIGlmICh2YWx1ZSA9PT0gdGhpcy5fc2VsZWN0ZWQpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuZGlzYWJsZWQpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHZhbHVlID8gdGhpcy5iZWZvcmVTZWxlY3QuZW1pdCh0aGlzKSA6IHRoaXMuYmVmb3JlVW5zZWxlY3QuZW1pdCh0aGlzKTtcclxuXHJcbiAgICB0aGlzLl9zZWxlY3RlZCA9IHZhbHVlO1xyXG4gICAgdGhpcy5fZm9jdXNlZCA9IHZhbHVlO1xyXG4gICAgdGhpcy50b2dnbGVTZWxlY3RlZENsYXNzKCk7XHJcblxyXG4gICAgdmFsdWUgPyB0aGlzLnNlbGVjdC5lbWl0KHRoaXMpIDogdGhpcy51bnNlbGVjdC5lbWl0KHRoaXMpO1xyXG4gIH1cclxuICBwcml2YXRlIF9zZWxlY3RlZCA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIGdldCBkaXNhYmxlZCgpIHtcclxuICAgIHJldHVybiB0aGlzLl9kaXNhYmxlZDtcclxuICB9XHJcbiAgc2V0IGRpc2FibGVkKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICBpZiAodmFsdWUgPT09IHRoaXMuX2Rpc2FibGVkKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodmFsdWUgPT09IHRydWUpIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZCA9IGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIHZhbHVlID8gdGhpcy5iZWZvcmVEaXNhYmxlLmVtaXQodGhpcykgOiB0aGlzLmJlZm9yZUVuYWJsZS5lbWl0KHRoaXMpO1xyXG5cclxuICAgIHRoaXMuX2Rpc2FibGVkID0gdmFsdWU7XHJcbiAgICB0aGlzLnRvZ2dsZURpc2FibGVkQ2xhc3MoKTtcclxuXHJcbiAgICB2YWx1ZSA/IHRoaXMuZGlzYWJsZS5lbWl0KHRoaXMpIDogdGhpcy5lbmFibGUuZW1pdCh0aGlzKTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfZGlzYWJsZWQgPSBmYWxzZTtcclxuXHJcbiAgQE91dHB1dCgpIGJlZm9yZVNlbGVjdCA9IG5ldyBFdmVudEVtaXR0ZXI8TGlzdEl0ZW1EaXJlY3RpdmU+KCk7XHJcbiAgQE91dHB1dCgpIGJlZm9yZUZvY3VzID0gbmV3IEV2ZW50RW1pdHRlcjxMaXN0SXRlbURpcmVjdGl2ZT4oKTtcclxuICBAT3V0cHV0KCkgYmVmb3JlVW5zZWxlY3QgPSBuZXcgRXZlbnRFbWl0dGVyPExpc3RJdGVtRGlyZWN0aXZlPigpO1xyXG4gIEBPdXRwdXQoKSBiZWZvcmVVbmZvY3VzID0gbmV3IEV2ZW50RW1pdHRlcjxMaXN0SXRlbURpcmVjdGl2ZT4oKTtcclxuICBAT3V0cHV0KCkgYmVmb3JlRGlzYWJsZSA9IG5ldyBFdmVudEVtaXR0ZXI8TGlzdEl0ZW1EaXJlY3RpdmU+KCk7XHJcbiAgQE91dHB1dCgpIGJlZm9yZUVuYWJsZSA9IG5ldyBFdmVudEVtaXR0ZXI8TGlzdEl0ZW1EaXJlY3RpdmU+KCk7XHJcbiAgQE91dHB1dCgpIGZvY3VzID0gbmV3IEV2ZW50RW1pdHRlcjxMaXN0SXRlbURpcmVjdGl2ZT4oKTtcclxuICBAT3V0cHV0KCkgdW5mb2N1cyA9IG5ldyBFdmVudEVtaXR0ZXI8TGlzdEl0ZW1EaXJlY3RpdmU+KCk7XHJcbiAgQE91dHB1dCgpIHNlbGVjdCA9IG5ldyBFdmVudEVtaXR0ZXI8TGlzdEl0ZW1EaXJlY3RpdmU+KCk7XHJcbiAgQE91dHB1dCgpIHVuc2VsZWN0ID0gbmV3IEV2ZW50RW1pdHRlcjxMaXN0SXRlbURpcmVjdGl2ZT4oKTtcclxuICBAT3V0cHV0KCkgZGlzYWJsZSA9IG5ldyBFdmVudEVtaXR0ZXI8TGlzdEl0ZW1EaXJlY3RpdmU+KCk7XHJcbiAgQE91dHB1dCgpIGVuYWJsZSA9IG5ldyBFdmVudEVtaXR0ZXI8TGlzdEl0ZW1EaXJlY3RpdmU+KCk7XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJylcclxuICBvbkNsaWNrKCkge1xyXG4gICAgdGhpcy5zZWxlY3RlZCA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyByZW5kZXJlcjogUmVuZGVyZXIyLFxyXG4gICAgcHVibGljIGVsOiBFbGVtZW50UmVmXHJcbiAgKSB7fVxyXG5cclxuICBnZXRPZmZzZXRUb3AoKTogbnVtYmVyIHtcclxuICAgIGNvbnN0IHBhZGRpbmcgPSA1O1xyXG5cclxuICAgIHJldHVybiB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQub2Zmc2V0VG9wIC0gcGFkZGluZztcclxuICB9XHJcblxyXG4gIHByaXZhdGUgdG9nZ2xlRm9jdXNlZENsYXNzKCkge1xyXG4gICAgaWYgKHRoaXMuZm9jdXNlZCkge1xyXG4gICAgICB0aGlzLmFkZENscyhMaXN0SXRlbURpcmVjdGl2ZS5mb2N1c2VkQ2xzKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMucmVtb3ZlQ2xzKExpc3RJdGVtRGlyZWN0aXZlLmZvY3VzZWRDbHMpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSB0b2dnbGVTZWxlY3RlZENsYXNzKCkge1xyXG4gICAgaWYgKHRoaXMuc2VsZWN0ZWQpIHtcclxuICAgICAgdGhpcy5hZGRDbHMoTGlzdEl0ZW1EaXJlY3RpdmUuc2VsZWN0ZWRDbHMpO1xyXG4gICAgICB0aGlzLnJlbW92ZUNscyhMaXN0SXRlbURpcmVjdGl2ZS5mb2N1c2VkQ2xzKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMucmVtb3ZlQ2xzKExpc3RJdGVtRGlyZWN0aXZlLnNlbGVjdGVkQ2xzKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgdG9nZ2xlRGlzYWJsZWRDbGFzcygpIHtcclxuICAgIGlmICh0aGlzLmRpc2FibGVkKSB7XHJcbiAgICAgIHRoaXMuYWRkQ2xzKExpc3RJdGVtRGlyZWN0aXZlLmRpc2FibGVkQ2xzKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMucmVtb3ZlQ2xzKExpc3RJdGVtRGlyZWN0aXZlLmRpc2FibGVkQ2xzKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgYWRkQ2xzKGNsczogc3RyaW5nKSB7XHJcbiAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuZWwubmF0aXZlRWxlbWVudCwgY2xzKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgcmVtb3ZlQ2xzKGNsczogc3RyaW5nKSB7XHJcbiAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMuZWwubmF0aXZlRWxlbWVudCwgY2xzKTtcclxuICB9XHJcbn1cclxuIl19
@@ -0,0 +1,268 @@
1
+ import { Component, Input, ContentChildren, HostListener, ElementRef } from '@angular/core';
2
+ import { ListItemDirective } from './list-item.directive';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/common";
5
+ import * as i2 from "@angular/material/list";
6
+ import * as i3 from "../clickout/clickout.directive";
7
+ const _c0 = function (a0) { return { selectable: a0 }; };
8
+ const _c1 = ["*"];
9
+ export class ListComponent {
10
+ el;
11
+ get navigation() {
12
+ return this._navigation;
13
+ }
14
+ set navigation(value) {
15
+ this._navigation = value;
16
+ }
17
+ _navigation = true;
18
+ get selection() {
19
+ return this._selection;
20
+ }
21
+ set selection(value) {
22
+ this._selection = value;
23
+ }
24
+ _selection = true;
25
+ get selectedItem() {
26
+ return this._selectedItem;
27
+ }
28
+ set selectedItem(value) {
29
+ this.focusedItem = value;
30
+ this._selectedItem = value;
31
+ }
32
+ _selectedItem;
33
+ get focusedItem() {
34
+ return this._focusedItem;
35
+ }
36
+ set focusedItem(value) {
37
+ this._focusedItem = value;
38
+ }
39
+ _focusedItem;
40
+ navigationEnabled;
41
+ listItems$$;
42
+ subscriptions = [];
43
+ listItems;
44
+ handleKeyboardEvent(event) {
45
+ // It would be nice to be able to unsubscribe to the event
46
+ // completely but until ES7 this won't be possible because
47
+ // document events are not observables
48
+ if (this.navigationEnabled) {
49
+ if (event.key === 'ArrowUp' || event.key === 'ArrowDown') {
50
+ event.preventDefault();
51
+ this.navigate(event.key);
52
+ }
53
+ else if (event.key === 'Enter') {
54
+ this.select(this.focusedItem);
55
+ }
56
+ }
57
+ }
58
+ constructor(el) {
59
+ this.el = el;
60
+ }
61
+ ngOnInit() {
62
+ this.enableNavigation();
63
+ }
64
+ ngAfterViewInit() {
65
+ if (this.listItems.length) {
66
+ this.init();
67
+ }
68
+ this.listItems$$ = this.listItems.changes.subscribe((items) => this.init());
69
+ }
70
+ ngOnDestroy() {
71
+ this.listItems$$.unsubscribe();
72
+ }
73
+ focus(item) {
74
+ if (!this.selection) {
75
+ return;
76
+ }
77
+ this.unfocus();
78
+ // We need to make this check because dynamic
79
+ // lists such as in the search results list may fail
80
+ if (item !== undefined) {
81
+ item.focused = true;
82
+ }
83
+ }
84
+ unfocus() {
85
+ if (this.focusedItem !== undefined) {
86
+ this.focusedItem.focused = false;
87
+ }
88
+ this.focusedItem = undefined;
89
+ }
90
+ focusNext() {
91
+ const items = this.listItems.toArray();
92
+ let item;
93
+ const igoList = this.el.nativeElement;
94
+ let disabled = true;
95
+ let index = this.getFocusedIndex();
96
+ if (index === undefined) {
97
+ index = -1;
98
+ }
99
+ while (disabled && index < items.length - 1) {
100
+ index += 1;
101
+ item = items[index];
102
+ disabled = item.disabled;
103
+ }
104
+ if (item !== undefined) {
105
+ this.focus(item);
106
+ }
107
+ if (!items[index + 1]) {
108
+ igoList.scrollTop = igoList.scrollHeight - igoList.clientHeight;
109
+ return;
110
+ }
111
+ if (item !== undefined && !this.isScrolledIntoView(item.el.nativeElement)) {
112
+ igoList.scrollTop =
113
+ item.el.nativeElement.offsetTop +
114
+ item.el.nativeElement.children[0].offsetHeight -
115
+ igoList.clientHeight;
116
+ }
117
+ }
118
+ focusPrevious() {
119
+ const items = this.listItems.toArray();
120
+ let item;
121
+ const igoList = this.el.nativeElement;
122
+ let disabled = true;
123
+ let index = this.getFocusedIndex();
124
+ while (disabled && index > 0) {
125
+ index -= 1;
126
+ item = items[index];
127
+ disabled = item.disabled;
128
+ }
129
+ if (item !== undefined) {
130
+ this.focus(item);
131
+ }
132
+ if (!items[index - 1]) {
133
+ igoList.scrollTop = 0;
134
+ return;
135
+ }
136
+ if (item !== undefined && !this.isScrolledIntoView(item.el.nativeElement)) {
137
+ const padding = 3;
138
+ igoList.scrollTop = item.el.nativeElement.offsetTop - padding;
139
+ }
140
+ }
141
+ select(item) {
142
+ if (!this.selection) {
143
+ return;
144
+ }
145
+ this.unselect();
146
+ if (item !== undefined) {
147
+ item.selected = true;
148
+ }
149
+ }
150
+ unselect() {
151
+ this.unfocus();
152
+ if (this.selectedItem !== undefined) {
153
+ this.selectedItem.selected = false;
154
+ }
155
+ this.selectedItem = undefined;
156
+ }
157
+ enableNavigation() {
158
+ if (this.navigation) {
159
+ this.navigationEnabled = true;
160
+ }
161
+ }
162
+ disableNavigation() {
163
+ this.navigationEnabled = false;
164
+ }
165
+ scrollToItem(item) {
166
+ this.el.nativeElement.scrollTop = item.getOffsetTop();
167
+ }
168
+ isScrolledIntoView(elem) {
169
+ const docViewTop = this.el.nativeElement.scrollTop + this.el.nativeElement.offsetTop;
170
+ const docViewBottom = docViewTop + this.el.nativeElement.clientHeight;
171
+ const elemTop = elem.offsetTop;
172
+ const elemBottom = elemTop + elem.children[0].offsetHeight;
173
+ return elemBottom <= docViewBottom && elemTop >= docViewTop;
174
+ }
175
+ init() {
176
+ this.subscribe();
177
+ this.selectedItem = this.findSelectedItem();
178
+ this.focusedItem = this.findFocusedItem();
179
+ this.enableNavigation();
180
+ }
181
+ subscribe() {
182
+ this.unsubscribe();
183
+ this.listItems.toArray().forEach((item) => {
184
+ this.subscriptions.push(item.beforeSelect.subscribe((item2) => this.handleItemBeforeSelect(item2)));
185
+ this.subscriptions.push(item.select.subscribe((item2) => this.handleItemSelect(item2)));
186
+ this.subscriptions.push(item.beforeFocus.subscribe((item2) => this.handleItemBeforeFocus(item2)));
187
+ this.subscriptions.push(item.focus.subscribe((item2) => this.handleItemFocus(item2)));
188
+ }, this);
189
+ }
190
+ unsubscribe() {
191
+ this.subscriptions.forEach((sub) => sub.unsubscribe());
192
+ this.subscriptions = [];
193
+ }
194
+ handleItemBeforeFocus(item) {
195
+ if (item !== this.focusedItem) {
196
+ this.unfocus();
197
+ }
198
+ }
199
+ handleItemFocus(item) {
200
+ this.focusedItem = item;
201
+ }
202
+ handleItemBeforeSelect(item) {
203
+ if (item !== this.focusedItem) {
204
+ this.unselect();
205
+ }
206
+ }
207
+ handleItemSelect(item) {
208
+ this.selectedItem = item;
209
+ }
210
+ findSelectedItem() {
211
+ return this.listItems.toArray().find((item) => item.selected);
212
+ }
213
+ findFocusedItem() {
214
+ return this.listItems.toArray().find((item) => item.focused);
215
+ }
216
+ getFocusedIndex() {
217
+ return this.listItems
218
+ .toArray()
219
+ .findIndex((item) => item === this.focusedItem);
220
+ }
221
+ navigate(key) {
222
+ switch (key) {
223
+ case 'ArrowUp':
224
+ this.focusPrevious();
225
+ break;
226
+ case 'ArrowDown':
227
+ this.focusNext();
228
+ break;
229
+ default:
230
+ break;
231
+ }
232
+ }
233
+ static ɵfac = function ListComponent_Factory(t) { return new (t || ListComponent)(i0.ɵɵdirectiveInject(i0.ElementRef)); };
234
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ListComponent, selectors: [["igo-list"]], contentQueries: function ListComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {
235
+ i0.ɵɵcontentQuery(dirIndex, ListItemDirective, 5);
236
+ } if (rf & 2) {
237
+ let _t;
238
+ i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.listItems = _t);
239
+ } }, hostBindings: function ListComponent_HostBindings(rf, ctx) { if (rf & 1) {
240
+ i0.ɵɵlistener("keydown", function ListComponent_keydown_HostBindingHandler($event) { return ctx.handleKeyboardEvent($event); }, false, i0.ɵɵresolveDocument)("enter", function ListComponent_enter_HostBindingHandler($event) { return ctx.handleKeyboardEvent($event); }, false, i0.ɵɵresolveDocument);
241
+ } }, inputs: { navigation: "navigation", selection: "selection" }, ngContentSelectors: _c1, decls: 2, vars: 3, consts: [["igoClickout", "", 3, "ngClass", "clickout", "click"]], template: function ListComponent_Template(rf, ctx) { if (rf & 1) {
242
+ i0.ɵɵprojectionDef();
243
+ i0.ɵɵelementStart(0, "mat-list", 0);
244
+ i0.ɵɵlistener("clickout", function ListComponent_Template_mat_list_clickout_0_listener() { return ctx.disableNavigation(); })("click", function ListComponent_Template_mat_list_click_0_listener() { return ctx.enableNavigation(); });
245
+ i0.ɵɵprojection(1);
246
+ i0.ɵɵelementEnd();
247
+ } if (rf & 2) {
248
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(1, _c0, ctx.selection));
249
+ } }, dependencies: [i1.NgClass, i2.MatList, i3.ClickoutDirective], styles: ["[_nghost-%COMP%]{display:block;height:100%;overflow:auto;position:relative}[_nghost-%COMP%] mat-list[_ngcontent-%COMP%]{padding-top:0}[_nghost-%COMP%] .mat-mdc-list .mat-mdc-list-item .mdc-list-item__primary-text>*{white-space:normal;overflow:hidden;text-overflow:ellipsis;line-height:18px}[_nghost-%COMP%] .mat-mdc-list .mat-mdc-list-item.mdc-list-item--with-leading-icon{height:48px}[_nghost-%COMP%] .mat-mdc-list igo-collapsible>.mat-mdc-list-item>.mdc-list-item__primary-text>.mat-mdc-list-item{font-weight:700;opacity:.9}[_nghost-%COMP%] mat-list.selectable[_ngcontent-%COMP%] [igolistitem]:not(.igo-list-item-disabled) mat-list-item:hover{cursor:pointer}[_nghost-%COMP%] [igolistitem]:focus{outline:none}"] });
250
+ }
251
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ListComponent, [{
252
+ type: Component,
253
+ args: [{ selector: 'igo-list', template: "<mat-list\r\n igoClickout\r\n [ngClass]=\"{ selectable: selection }\"\r\n (clickout)=\"disableNavigation()\"\r\n (click)=\"enableNavigation()\"\r\n>\r\n <ng-content></ng-content>\r\n</mat-list>\r\n", styles: [":host{display:block;height:100%;overflow:auto;position:relative}:host mat-list{padding-top:0}:host ::ng-deep .mat-mdc-list .mat-mdc-list-item .mdc-list-item__primary-text>*{white-space:normal;overflow:hidden;text-overflow:ellipsis;line-height:18px}:host ::ng-deep .mat-mdc-list .mat-mdc-list-item.mdc-list-item--with-leading-icon{height:48px}:host ::ng-deep .mat-mdc-list ::ng-deep igo-collapsible>.mat-mdc-list-item>.mdc-list-item__primary-text>.mat-mdc-list-item{font-weight:700;opacity:.9}:host mat-list.selectable ::ng-deep [igolistitem]:not(.igo-list-item-disabled) mat-list-item:hover{cursor:pointer}:host ::ng-deep [igolistitem]:focus{outline:none}\n"] }]
254
+ }], function () { return [{ type: i0.ElementRef }]; }, { navigation: [{
255
+ type: Input
256
+ }], selection: [{
257
+ type: Input
258
+ }], listItems: [{
259
+ type: ContentChildren,
260
+ args: [ListItemDirective, { descendants: true }]
261
+ }], handleKeyboardEvent: [{
262
+ type: HostListener,
263
+ args: ['document:keydown', ['$event']]
264
+ }, {
265
+ type: HostListener,
266
+ args: ['document:enter', ['$event']]
267
+ }] }); })();
268
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vc3JjL2xpYi9saXN0L2xpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tbW9uL3NyYy9saWIvbGlzdC9saXN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBSVQsS0FBSyxFQUNMLGVBQWUsRUFDZixZQUFZLEVBQ1osVUFBVSxFQUNYLE1BQU0sZUFBZSxDQUFDO0FBS3ZCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDOzs7Ozs7O0FBTzFELE1BQU0sT0FBTyxhQUFhO0lBMkRKO0lBMURwQixJQUNJLFVBQVU7UUFDWixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDMUIsQ0FBQztJQUNELElBQUksVUFBVSxDQUFDLEtBQWM7UUFDM0IsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7SUFDM0IsQ0FBQztJQUNPLFdBQVcsR0FBRyxJQUFJLENBQUM7SUFFM0IsSUFDSSxTQUFTO1FBQ1gsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQ3pCLENBQUM7SUFDRCxJQUFJLFNBQVMsQ0FBQyxLQUFjO1FBQzFCLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO0lBQzFCLENBQUM7SUFDTyxVQUFVLEdBQUcsSUFBSSxDQUFDO0lBRTFCLElBQUksWUFBWTtRQUNkLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQztJQUM1QixDQUFDO0lBQ0QsSUFBSSxZQUFZLENBQUMsS0FBd0I7UUFDdkMsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7UUFDekIsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUM7SUFDN0IsQ0FBQztJQUNPLGFBQWEsQ0FBb0I7SUFFekMsSUFBSSxXQUFXO1FBQ2IsT0FBTyxJQUFJ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O2tCQUZsQixZQUFZO21CQUFDLGtCQUFrQixFQUFFLENBQUMsUUFBUSxDQUFDOztrQkFDM0MsWUFBWTttQkFBQyxnQkFBZ0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIEFmdGVyVmlld0luaXQsXHJcbiAgT25Jbml0LFxyXG4gIE9uRGVzdHJveSxcclxuICBJbnB1dCxcclxuICBDb250ZW50Q2hpbGRyZW4sXHJcbiAgSG9zdExpc3RlbmVyLFxyXG4gIEVsZW1lbnRSZWZcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHR5cGUgeyBRdWVyeUxpc3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5cclxuaW1wb3J0IHsgTGlzdEl0ZW1EaXJlY3RpdmUgfSBmcm9tICcuL2xpc3QtaXRlbS5kaXJlY3RpdmUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdpZ28tbGlzdCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2xpc3QuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2xpc3QuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgTGlzdENvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICBASW5wdXQoKVxyXG4gIGdldCBuYXZpZ2F0aW9uKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX25hdmlnYXRpb247XHJcbiAgfVxyXG4gIHNldCBuYXZpZ2F0aW9uKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLl9uYXZpZ2F0aW9uID0gdmFsdWU7XHJcbiAgfVxyXG4gIHByaXZhdGUgX25hdmlnYXRpb24gPSB0cnVlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIGdldCBzZWxlY3Rpb24oKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fc2VsZWN0aW9uO1xyXG4gIH1cclxuICBzZXQgc2VsZWN0aW9uKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLl9zZWxlY3Rpb24gPSB2YWx1ZTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfc2VsZWN0aW9uID0gdHJ1ZTtcclxuXHJcbiAgZ2V0IHNlbGVjdGVkSXRlbSgpIHtcclxuICAgIHJldHVybiB0aGlzLl9zZWxlY3RlZEl0ZW07XHJcbiAgfVxyXG4gIHNldCBzZWxlY3RlZEl0ZW0odmFsdWU6IExpc3RJdGVtRGlyZWN0aXZlKSB7XHJcbiAgICB0aGlzLmZvY3VzZWRJdGVtID0gdmFsdWU7XHJcbiAgICB0aGlzLl9zZWxlY3RlZEl0ZW0gPSB2YWx1ZTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfc2VsZWN0ZWRJdGVtOiBMaXN0SXRlbURpcmVjdGl2ZTtcclxuXHJcbiAgZ2V0IGZvY3VzZWRJdGVtKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX2ZvY3VzZWRJdGVtO1xyXG4gIH1cclxuICBzZXQgZm9jdXNlZEl0ZW0odmFsdWU6IExpc3RJdGVtRGlyZWN0aXZlKSB7XHJcbiAgICB0aGlzLl9mb2N1c2VkSXRlbSA9IHZhbHVlO1xyXG4gIH1cclxuICBwcml2YXRlIF9mb2N1c2VkSXRlbTogTGlzdEl0ZW1EaXJlY3RpdmU7XHJcblxyXG4gIHByaXZhdGUgbmF2aWdhdGlvbkVuYWJsZWQ6IGJvb2xlYW47XHJcbiAgcHJpdmF0ZSBsaXN0SXRlbXMkJDogU3Vic2NyaXB0aW9uO1xyXG4gIHByaXZhdGUgc3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9uW10gPSBbXTtcclxuXHJcbiAgQENvbnRlbnRDaGlsZHJlbihMaXN0SXRlbURpcmVjdGl2ZSwgeyBkZXNjZW5kYW50czogdHJ1ZSB9KVxyXG4gIGxpc3RJdGVtczogUXVlcnlMaXN0PExpc3RJdGVtRGlyZWN0aXZlPjtcclxuXHJcbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6a2V5ZG93bicsIFsnJGV2ZW50J10pXHJcbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6ZW50ZXInLCBbJyRldmVudCddKVxyXG4gIGhhbmRsZUtleWJvYXJkRXZlbnQoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcclxuICAgIC8vIEl0IHdvdWxkIGJlIG5pY2UgdG8gYmUgYWJsZSB0byB1bnN1YnNjcmliZSB0byB0aGUgZXZlbnRcclxuICAgIC8vIGNvbXBsZXRlbHkgYnV0IHVudGlsIEVTNyB0aGlzIHdvbid0IGJlIHBvc3NpYmxlIGJlY2F1c2VcclxuICAgIC8vIGRvY3VtZW50IGV2ZW50cyBhcmUgbm90IG9ic2VydmFibGVzXHJcbiAgICBpZiAodGhpcy5uYXZpZ2F0aW9uRW5hYmxlZCkge1xyXG4gICAgICBpZiAoZXZlbnQua2V5ID09PSAnQXJyb3dVcCcgfHwgZXZlbnQua2V5ID09PSAnQXJyb3dEb3duJykge1xyXG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgdGhpcy5uYXZpZ2F0ZShldmVudC5rZXkpO1xyXG4gICAgICB9IGVsc2UgaWYgKGV2ZW50LmtleSA9PT0gJ0VudGVyJykge1xyXG4gICAgICAgIHRoaXMuc2VsZWN0KHRoaXMuZm9jdXNlZEl0ZW0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVsOiBFbGVtZW50UmVmKSB7fVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuZW5hYmxlTmF2aWdhdGlvbigpO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgaWYgKHRoaXMubGlzdEl0ZW1zLmxlbmd0aCkge1xyXG4gICAgICB0aGlzLmluaXQoKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmxpc3RJdGVtcyQkID0gdGhpcy5saXN0SXRlbXMuY2hhbmdlcy5zdWJzY3JpYmUoXHJcbiAgICAgIChpdGVtczogTGlzdEl0ZW1EaXJlY3RpdmVbXSkgPT4gdGhpcy5pbml0KClcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMubGlzdEl0ZW1zJCQudW5zdWJzY3JpYmUoKTtcclxuICB9XHJcblxyXG4gIGZvY3VzKGl0ZW0/OiBMaXN0SXRlbURpcmVjdGl2ZSkge1xyXG4gICAgaWYgKCF0aGlzLnNlbGVjdGlvbikge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy51bmZvY3VzKCk7XHJcblxyXG4gICAgLy8gV2UgbmVlZCB0byBtYWtlIHRoaXMgY2hlY2sgYmVjYXVzZSBkeW5hbWljXHJcbiAgICAvLyBsaXN0cyBzdWNoIGFzIGluIHRoZSBzZWFyY2ggcmVzdWx0cyBsaXN0IG1heSBmYWlsXHJcbiAgICBpZiAoaXRlbSAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIGl0ZW0uZm9jdXNlZCA9IHRydWU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICB1bmZvY3VzKCkge1xyXG4gICAgaWYgKHRoaXMuZm9jdXNlZEl0ZW0gIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICB0aGlzLmZvY3VzZWRJdGVtLmZvY3VzZWQgPSBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmZvY3VzZWRJdGVtID0gdW5kZWZpbmVkO1xyXG4gIH1cclxuXHJcbiAgZm9jdXNOZXh0KCkge1xyXG4gICAgY29uc3QgaXRlbXMgPSB0aGlzLmxpc3RJdGVtcy50b0FycmF5KCk7XHJcbiAgICBsZXQgaXRlbTtcclxuICAgIGNvbnN0IGlnb0xpc3QgPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQ7XHJcbiAgICBsZXQgZGlzYWJsZWQgPSB0cnVlO1xyXG4gICAgbGV0IGluZGV4ID0gdGhpcy5nZXRGb2N1c2VkSW5kZXgoKTtcclxuICAgIGlmIChpbmRleCA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIGluZGV4ID0gLTE7XHJcbiAgICB9XHJcblxyXG4gICAgd2hpbGUgKGRpc2FibGVkICYmIGluZGV4IDwgaXRlbXMubGVuZ3RoIC0gMSkge1xyXG4gICAgICBpbmRleCArPSAxO1xyXG4gICAgICBpdGVtID0gaXRlbXNbaW5kZXhdO1xyXG4gICAgICBkaXNhYmxlZCA9IGl0ZW0uZGlzYWJsZWQ7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGl0ZW0gIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICB0aGlzLmZvY3VzKGl0ZW0pO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICghaXRlbXNbaW5kZXggKyAxXSkge1xyXG4gICAgICBpZ29MaXN0LnNjcm9sbFRvcCA9IGlnb0xpc3Quc2Nyb2xsSGVpZ2h0IC0gaWdvTGlzdC5jbGllbnRIZWlnaHQ7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoaXRlbSAhPT0gdW5kZWZpbmVkICYmICF0aGlzLmlzU2Nyb2xsZWRJbnRvVmlldyhpdGVtLmVsLm5hdGl2ZUVsZW1lbnQpKSB7XHJcbiAgICAgIGlnb0xpc3Quc2Nyb2xsVG9wID1cclxuICAgICAgICBpdGVtLmVsLm5hdGl2ZUVsZW1lbnQub2Zmc2V0VG9wICtcclxuICAgICAgICBpdGVtLmVsLm5hdGl2ZUVsZW1lbnQuY2hpbGRyZW5bMF0ub2Zmc2V0SGVpZ2h0IC1cclxuICAgICAgICBpZ29MaXN0LmNsaWVudEhlaWdodDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGZvY3VzUHJldmlvdXMoKSB7XHJcbiAgICBjb25zdCBpdGVtcyA9IHRoaXMubGlzdEl0ZW1zLnRvQXJyYXkoKTtcclxuICAgIGxldCBpdGVtOiBMaXN0SXRlbURpcmVjdGl2ZTtcclxuICAgIGNvbnN0IGlnb0xpc3QgPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQ7XHJcbiAgICBsZXQgZGlzYWJsZWQgPSB0cnVlO1xyXG4gICAgbGV0IGluZGV4ID0gdGhpcy5nZXRGb2N1c2VkSW5kZXgoKTtcclxuXHJcbiAgICB3aGlsZSAoZGlzYWJsZWQgJiYgaW5kZXggPiAwKSB7XHJcbiAgICAgIGluZGV4IC09IDE7XHJcbiAgICAgIGl0ZW0gPSBpdGVtc1tpbmRleF07XHJcbiAgICAgIGRpc2FibGVkID0gaXRlbS5kaXNhYmxlZDtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoaXRlbSAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIHRoaXMuZm9jdXMoaXRlbSk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKCFpdGVtc1tpbmRleCAtIDFdKSB7XHJcbiAgICAgIGlnb0xpc3Quc2Nyb2xsVG9wID0gMDtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChpdGVtICE9PSB1bmRlZmluZWQgJiYgIXRoaXMuaXNTY3JvbGxlZEludG9WaWV3KGl0ZW0uZWwubmF0aXZlRWxlbWVudCkpIHtcclxuICAgICAgY29uc3QgcGFkZGluZyA9IDM7XHJcbiAgICAgIGlnb0xpc3Quc2Nyb2xsVG9wID0gaXRlbS5lbC5uYXRpdmVFbGVtZW50Lm9mZnNldFRvcCAtIHBhZGRpbmc7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZWxlY3QoaXRlbT86IExpc3RJdGVtRGlyZWN0aXZlKSB7XHJcbiAgICBpZiAoIXRoaXMuc2VsZWN0aW9uKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnVuc2VsZWN0KCk7XHJcblxyXG4gICAgaWYgKGl0ZW0gIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICBpdGVtLnNlbGVjdGVkID0gdHJ1ZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHVuc2VsZWN0KCkge1xyXG4gICAgdGhpcy51bmZvY3VzKCk7XHJcblxyXG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRJdGVtICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZEl0ZW0uc2VsZWN0ZWQgPSBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnNlbGVjdGVkSXRlbSA9IHVuZGVmaW5lZDtcclxuICB9XHJcblxyXG4gIGVuYWJsZU5hdmlnYXRpb24oKSB7XHJcbiAgICBpZiAodGhpcy5uYXZpZ2F0aW9uKSB7XHJcbiAgICAgIHRoaXMubmF2aWdhdGlvbkVuYWJsZWQgPSB0cnVlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZGlzYWJsZU5hdmlnYXRpb24oKSB7XHJcbiAgICB0aGlzLm5hdmlnYXRpb25FbmFibGVkID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBzY3JvbGxUb0l0ZW0oaXRlbTogTGlzdEl0ZW1EaXJlY3RpdmUpIHtcclxuICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5zY3JvbGxUb3AgPSBpdGVtLmdldE9mZnNldFRvcCgpO1xyXG4gIH1cclxuXHJcbiAgaXNTY3JvbGxlZEludG9WaWV3KGVsZW0pIHtcclxuICAgIGNvbnN0IGRvY1ZpZXdUb3AgPVxyXG4gICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsVG9wICsgdGhpcy5lbC5uYXRpdmVFbGVtZW50Lm9mZnNldFRvcDtcclxuICAgIGNvbnN0IGRvY1ZpZXdCb3R0b20gPSBkb2NWaWV3VG9wICsgdGhpcy5lbC5uYXRpdmVFbGVtZW50LmNsaWVudEhlaWdodDtcclxuXHJcbiAgICBjb25zdCBlbGVtVG9wID0gZWxlbS5vZmZzZXRUb3A7XHJcbiAgICBjb25zdCBlbGVtQm90dG9tID0gZWxlbVRvcCArIGVsZW0uY2hpbGRyZW5bMF0ub2Zmc2V0SGVpZ2h0O1xyXG4gICAgcmV0dXJuIGVsZW1Cb3R0b20gPD0gZG9jVmlld0JvdHRvbSAmJiBlbGVtVG9wID49IGRvY1ZpZXdUb3A7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGluaXQoKSB7XHJcbiAgICB0aGlzLnN1YnNjcmliZSgpO1xyXG5cclxuICAgIHRoaXMuc2VsZWN0ZWRJdGVtID0gdGhpcy5maW5kU2VsZWN0ZWRJdGVtKCk7XHJcbiAgICB0aGlzLmZvY3VzZWRJdGVtID0gdGhpcy5maW5kRm9jdXNlZEl0ZW0oKTtcclxuXHJcbiAgICB0aGlzLmVuYWJsZU5hdmlnYXRpb24oKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc3Vic2NyaWJlKCkge1xyXG4gICAgdGhpcy51bnN1YnNjcmliZSgpO1xyXG5cclxuICAgIHRoaXMubGlzdEl0ZW1zLnRvQXJyYXkoKS5mb3JFYWNoKChpdGVtKSA9PiB7XHJcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxyXG4gICAgICAgIGl0ZW0uYmVmb3JlU2VsZWN0LnN1YnNjcmliZSgoaXRlbTI6IExpc3RJdGVtRGlyZWN0aXZlKSA9PlxyXG4gICAgICAgICAgdGhpcy5oYW5kbGVJdGVtQmVmb3JlU2VsZWN0KGl0ZW0yKVxyXG4gICAgICAgIClcclxuICAgICAgKTtcclxuXHJcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxyXG4gICAgICAgIGl0ZW0uc2VsZWN0LnN1YnNjcmliZSgoaXRlbTI6IExpc3RJdGVtRGlyZWN0aXZlKSA9PlxyXG4gICAgICAgICAgdGhpcy5oYW5kbGVJdGVtU2VsZWN0KGl0ZW0yKVxyXG4gICAgICAgIClcclxuICAgICAgKTtcclxuXHJcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxyXG4gICAgICAgIGl0ZW0uYmVmb3JlRm9jdXMuc3Vic2NyaWJlKChpdGVtMjogTGlzdEl0ZW1EaXJlY3RpdmUpID0+XHJcbiAgICAgICAgICB0aGlzLmhhbmRsZUl0ZW1CZWZvcmVGb2N1cyhpdGVtMilcclxuICAgICAgICApXHJcbiAgICAgICk7XHJcblxyXG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcclxuICAgICAgICBpdGVtLmZvY3VzLnN1YnNjcmliZSgoaXRlbTI6IExpc3RJdGVtRGlyZWN0aXZlKSA9PlxyXG4gICAgICAgICAgdGhpcy5oYW5kbGVJdGVtRm9jdXMoaXRlbTIpXHJcbiAgICAgICAgKVxyXG4gICAgICApO1xyXG4gICAgfSwgdGhpcyk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHVuc3Vic2NyaWJlKCkge1xyXG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmZvckVhY2goKHN1YjogU3Vic2NyaXB0aW9uKSA9PiBzdWIudW5zdWJzY3JpYmUoKSk7XHJcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMgPSBbXTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaGFuZGxlSXRlbUJlZm9yZUZvY3VzKGl0ZW06IExpc3RJdGVtRGlyZWN0aXZlKSB7XHJcbiAgICBpZiAoaXRlbSAhPT0gdGhpcy5mb2N1c2VkSXRlbSkge1xyXG4gICAgICB0aGlzLnVuZm9jdXMoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgaGFuZGxlSXRlbUZvY3VzKGl0ZW06IExpc3RJdGVtRGlyZWN0aXZlKSB7XHJcbiAgICB0aGlzLmZvY3VzZWRJdGVtID0gaXRlbTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaGFuZGxlSXRlbUJlZm9yZVNlbGVjdChpdGVtOiBMaXN0SXRlbURpcmVjdGl2ZSkge1xyXG4gICAgaWYgKGl0ZW0gIT09IHRoaXMuZm9jdXNlZEl0ZW0pIHtcclxuICAgICAgdGhpcy51bnNlbGVjdCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBoYW5kbGVJdGVtU2VsZWN0KGl0ZW06IExpc3RJdGVtRGlyZWN0aXZlKSB7XHJcbiAgICB0aGlzLnNlbGVjdGVkSXRlbSA9IGl0ZW07XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGZpbmRTZWxlY3RlZEl0ZW0oKSB7XHJcbiAgICByZXR1cm4gdGhpcy5saXN0SXRlbXMudG9BcnJheSgpLmZpbmQoKGl0ZW0pID0+IGl0ZW0uc2VsZWN0ZWQpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBmaW5kRm9jdXNlZEl0ZW0oKSB7XHJcbiAgICByZXR1cm4gdGhpcy5saXN0SXRlbXMudG9BcnJheSgpLmZpbmQoKGl0ZW0pID0+IGl0ZW0uZm9jdXNlZCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldEZvY3VzZWRJbmRleCgpIHtcclxuICAgIHJldHVybiB0aGlzLmxpc3RJdGVtc1xyXG4gICAgICAudG9BcnJheSgpXHJcbiAgICAgIC5maW5kSW5kZXgoKGl0ZW0pID0+IGl0ZW0gPT09IHRoaXMuZm9jdXNlZEl0ZW0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBuYXZpZ2F0ZShrZXk6IHN0cmluZykge1xyXG4gICAgc3dpdGNoIChrZXkpIHtcclxuICAgICAgY2FzZSAnQXJyb3dVcCc6XHJcbiAgICAgICAgdGhpcy5mb2N1c1ByZXZpb3VzKCk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ0Fycm93RG93bic6XHJcbiAgICAgICAgdGhpcy5mb2N1c05leHQoKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiPG1hdC1saXN0XHJcbiAgaWdvQ2xpY2tvdXRcclxuICBbbmdDbGFzc109XCJ7IHNlbGVjdGFibGU6IHNlbGVjdGlvbiB9XCJcclxuICAoY2xpY2tvdXQpPVwiZGlzYWJsZU5hdmlnYXRpb24oKVwiXHJcbiAgKGNsaWNrKT1cImVuYWJsZU5hdmlnYXRpb24oKVwiXHJcbj5cclxuICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XHJcbjwvbWF0LWxpc3Q+XHJcbiJdfQ==