@coolon/angular-ui-powerups 16.1.0-aplpha.189 → 16.1.0-aplpha.2

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 (357) hide show
  1. package/README.md +0 -4
  2. package/assets/activities/activities.scss +6 -8
  3. package/assets/activities/input-activities.scss +6 -14
  4. package/assets/form.scss +23 -77
  5. package/assets/icons.scss +1 -2
  6. package/assets/interaction/editor/inline-string-editor.scss +0 -4
  7. package/assets/interaction.scss +1 -1
  8. package/assets/styles.scss +0 -4
  9. package/assets/table.scss +30 -55
  10. package/assets/tabs.scss +2 -15
  11. package/esm2022/lib/angular-ui-powerups.module.mjs +9 -9
  12. package/esm2022/lib/animations/slide-animations.mjs +10 -15
  13. package/esm2022/lib/components/alignment.mjs +1 -1
  14. package/esm2022/lib/components/busy-overlay/busy-overlay.component.mjs +12 -7
  15. package/esm2022/lib/components/cards/abstract-card-container.component.mjs +7 -30
  16. package/esm2022/lib/components/cards/card-container/card-container.component.mjs +6 -6
  17. package/esm2022/lib/components/cards/card-stack/card-stack.component.mjs +81 -0
  18. package/esm2022/lib/components/commands/command/command.component.mjs +33 -35
  19. package/esm2022/lib/components/commands/command-face/command-face.component.mjs +5 -13
  20. package/esm2022/lib/components/commands/command-face.mjs +11 -12
  21. package/esm2022/lib/components/commands/flex.component.mjs +4 -4
  22. package/esm2022/lib/components/commands/group/command-container.mjs +1 -1
  23. package/esm2022/lib/components/commands/group/popup-aware.component.mjs +8 -31
  24. package/esm2022/lib/components/commands/group/popup-container.mjs +1 -1
  25. package/esm2022/lib/components/commands/group/popup-menu/abstract-popup-menu.component.mjs +25 -27
  26. package/esm2022/lib/components/commands/group/popup-menu/more-menu.component.mjs +22 -13
  27. package/esm2022/lib/components/commands/group/popup-menu/popup-menu-renderer/popup-menu-renderer.component.mjs +12 -17
  28. package/esm2022/lib/components/commands/group/popup-menu/popup-menu.component.mjs +23 -14
  29. package/esm2022/lib/components/commands/group/tool-bar/tool-bar.component.mjs +19 -12
  30. package/esm2022/lib/components/commands/separator.component.mjs +14 -8
  31. package/esm2022/lib/components/components.module.mjs +59 -79
  32. package/esm2022/lib/components/disposable-component.mjs +42 -38
  33. package/esm2022/lib/components/empty-state/empty-state.component.mjs +9 -5
  34. package/esm2022/lib/components/exports.mjs +7 -15
  35. package/esm2022/lib/components/focus-container/focus-container.component.mjs +4 -4
  36. package/esm2022/lib/components/focusable.component.mjs +5 -5
  37. package/esm2022/lib/components/forms/abstract-input.component.mjs +18 -66
  38. package/esm2022/lib/components/forms/abstract-list-input.component.mjs +4 -4
  39. package/esm2022/lib/components/forms/abstract-value-input.component.mjs +4 -4
  40. package/esm2022/lib/components/forms/autocomplete-input/autocomplete-input.component.mjs +13 -12
  41. package/esm2022/lib/components/forms/checkbox-input/checkbox-input.component.mjs +8 -10
  42. package/esm2022/lib/components/forms/multiple-select-input/multiple-select-input.component.mjs +10 -10
  43. package/esm2022/lib/components/forms/number-input/number-input.component.mjs +13 -90
  44. package/esm2022/lib/components/forms/password-input/password-input.component.mjs +7 -44
  45. package/esm2022/lib/components/forms/select-input/select-input.component.mjs +16 -17
  46. package/esm2022/lib/components/forms/string-input/string-input.component.mjs +16 -35
  47. package/esm2022/lib/components/forms/text-input/text-input.component.mjs +8 -12
  48. package/esm2022/lib/components/icon/icon.component.mjs +7 -10
  49. package/esm2022/lib/components/labelled-value/labelled-value.component.mjs +4 -4
  50. package/esm2022/lib/components/loading-container/loading-container.component.mjs +12 -7
  51. package/esm2022/lib/components/noop/noop.component.mjs +7 -5
  52. package/esm2022/lib/components/resize-aware.component.mjs +27 -64
  53. package/esm2022/lib/components/scroll-container/scroll-container.component.mjs +5 -5
  54. package/esm2022/lib/components/section-header/section-header.component.mjs +4 -4
  55. package/esm2022/lib/components/switch-case/switch-case.component.mjs +17 -15
  56. package/esm2022/lib/components/tables/abstract-table-model.mjs +63 -112
  57. package/esm2022/lib/components/tables/abstract-table.component.mjs +8 -22
  58. package/esm2022/lib/components/tables/column/column-list-model.mjs +44 -0
  59. package/esm2022/lib/components/tables/column/column-model.mjs +10 -21
  60. package/esm2022/lib/components/tables/column/column-template/column-template.directive.mjs +4 -4
  61. package/esm2022/lib/components/tables/column/custom-template-column-model.mjs +3 -3
  62. package/esm2022/lib/components/tables/column/custom-value-column-model.mjs +5 -5
  63. package/esm2022/lib/components/tables/column/editor-controls-column-model.mjs +5 -5
  64. package/esm2022/lib/components/tables/column/list-propery-column-model.mjs +5 -6
  65. package/esm2022/lib/components/tables/column/property-column-model.mjs +5 -5
  66. package/esm2022/lib/components/tables/column/selection-column-model.mjs +13 -35
  67. package/esm2022/lib/components/tables/editor/edit-row-controls/edit-row-controls.component.mjs +7 -7
  68. package/esm2022/lib/components/tables/editor/edit-session.mjs +2 -4
  69. package/esm2022/lib/components/tables/editor/editable-cell-renderer.mjs +1 -1
  70. package/esm2022/lib/components/tables/filter/column-text-search-formatter.mjs +1 -1
  71. package/esm2022/lib/components/tables/filter/enable-cell-text-search.decorator.mjs +2 -3
  72. package/esm2022/lib/components/tables/filter/table-filter-model.mjs +9 -14
  73. package/esm2022/lib/components/tables/filter/text-search-predicate.mjs +2 -16
  74. package/esm2022/lib/components/tables/paginator/paginator.component.mjs +5 -5
  75. package/esm2022/lib/components/tables/renderer/cell-editors.mjs +1 -1
  76. package/esm2022/lib/components/tables/renderer/cell-portal-ref.mjs +7 -23
  77. package/esm2022/lib/components/tables/renderer/default-cell-renderer/default-cell-renderer.component.mjs +8 -6
  78. package/esm2022/lib/components/tables/renderer/default-header-cell-renderer/default-header-cell-renderer.component.mjs +7 -5
  79. package/esm2022/lib/components/tables/renderer/select-header-cell/selection-header-cell.component.mjs +8 -18
  80. package/esm2022/lib/components/tables/renderer/selection-cell/selection-cell.component.mjs +8 -11
  81. package/esm2022/lib/components/tables/renderer/table-body/table-body.component.mjs +51 -161
  82. package/esm2022/lib/components/tables/renderer/table-cell/table-cell.component.mjs +9 -9
  83. package/esm2022/lib/components/tables/renderer/table-header-cell/table-header-cell.component.mjs +7 -5
  84. package/esm2022/lib/components/tables/renderer/table-more-menu/table-more-menu-popup/table-more-menu-popup.component.mjs +33 -0
  85. package/esm2022/lib/components/tables/renderer/table-more-menu/table-more-menu.component.mjs +60 -0
  86. package/esm2022/lib/components/tables/table/table-model.mjs +3 -12
  87. package/esm2022/lib/components/tables/table/table.component.mjs +64 -42
  88. package/esm2022/lib/components/tables/table-row-menu/table-row-menu.component.mjs +84 -0
  89. package/esm2022/lib/components/tables/tree-table/decorated-tree-node.mjs +4 -5
  90. package/esm2022/lib/components/tables/tree-table/flattened-tree-list-model.mjs +1 -1
  91. package/esm2022/lib/components/tables/tree-table/tree-expansion-model.mjs +1 -1
  92. package/esm2022/lib/components/tables/tree-table/tree-inheritance-icon/tree-inheritance-icon.component.mjs +7 -5
  93. package/esm2022/lib/components/tables/tree-table/tree-label-cell-renderer/tree-label-cell-renderer.component.mjs +5 -5
  94. package/esm2022/lib/components/tables/tree-table/tree-label-column-model.mjs +4 -4
  95. package/esm2022/lib/components/tables/tree-table/tree-table-component.mjs +8 -15
  96. package/esm2022/lib/components/tables/tree-table/tree-table-model.mjs +7 -4
  97. package/esm2022/lib/components/text/markdown/markdown.component.mjs +6 -6
  98. package/esm2022/lib/components/track.mjs +1 -1
  99. package/esm2022/lib/components/types/bounds.class.mjs +1 -1
  100. package/esm2022/lib/components/types/loadable.mjs +2 -0
  101. package/esm2022/lib/components/vertical-focus-container/vertical-focus-container.component.mjs +4 -4
  102. package/esm2022/lib/directives/command.directive.mjs +14 -25
  103. package/esm2022/lib/directives/directives.module.mjs +10 -10
  104. package/esm2022/lib/directives/exports.mjs +1 -2
  105. package/esm2022/lib/directives/focus-binding-factory.mjs +4 -4
  106. package/esm2022/lib/directives/focus-binding.directive.mjs +5 -5
  107. package/esm2022/lib/directives/focus-binding.mjs +1 -1
  108. package/esm2022/lib/directives/garbage-collector.directive.mjs +4 -5
  109. package/esm2022/lib/directives/highlight-text-model.directive.mjs +4 -4
  110. package/esm2022/lib/directives/highlight.pipe.mjs +11 -12
  111. package/esm2022/lib/interaction/abstract-interaction-context.mjs +7 -6
  112. package/esm2022/lib/interaction/activity-ref.mjs +2 -2
  113. package/esm2022/lib/interaction/activity.mjs +23 -23
  114. package/esm2022/lib/interaction/alert.mjs +2 -2
  115. package/esm2022/lib/interaction/components/abstract-confirm-dialog.component.mjs +10 -13
  116. package/esm2022/lib/interaction/components/abstract-dialog.component.mjs +45 -4
  117. package/esm2022/lib/interaction/components/activity-actions/activity-actions.component.mjs +17 -29
  118. package/esm2022/lib/interaction/components/activity-body/activity-body.component.mjs +4 -10
  119. package/esm2022/lib/interaction/components/activity-container/activity-container.component.mjs +19 -50
  120. package/esm2022/lib/interaction/components/activity-container/activity-outlet/activity-outlet.component.mjs +19 -55
  121. package/esm2022/lib/interaction/components/activity-title/activity-title.component.mjs +6 -6
  122. package/esm2022/lib/interaction/components/activity-triggers/abstract-activity-trigger.component.mjs +3 -3
  123. package/esm2022/lib/interaction/components/activity-triggers/inline-activity-trigger/inline-activity-trigger.component.mjs +4 -4
  124. package/esm2022/lib/interaction/components/activity-triggers/modal-activity-trigger/modal-activity-trigger.component.mjs +4 -4
  125. package/esm2022/lib/interaction/components/activity-triggers/popup-activity-trigger/popup-activity-trigger.component.mjs +4 -4
  126. package/esm2022/lib/interaction/components/add-card-activity/add-card-activity.component.mjs +4 -4
  127. package/esm2022/lib/interaction/components/add-item-interaction-context/add-item-interaction-context.component.mjs +4 -4
  128. package/esm2022/lib/interaction/components/alert-dialog/alert-dialog.component.mjs +12 -12
  129. package/esm2022/lib/interaction/components/confirm-then-dialog/confirm-then-dialog.component.mjs +10 -6
  130. package/esm2022/lib/interaction/components/confirm-then-execute-dialog/confirm-then-execute-dialog.component.mjs +10 -6
  131. package/esm2022/lib/interaction/components/confirmation-dialog/confirmation-dialog.component.mjs +11 -9
  132. package/esm2022/lib/interaction/components/editors/edit-context.mjs +1 -1
  133. package/esm2022/lib/interaction/components/editors/inline-string-editor/inline-editor-model.mjs +2 -2
  134. package/esm2022/lib/interaction/components/editors/inline-string-editor/inline-string-editor.component.mjs +9 -9
  135. package/esm2022/lib/interaction/components/inplace-interaction-context/in-place-interaction-context.component.mjs +9 -25
  136. package/esm2022/lib/interaction/components/input-activities/input-activity.mjs +5 -6
  137. package/esm2022/lib/interaction/components/input-activities/select-input-activity.mjs +38 -44
  138. package/esm2022/lib/interaction/components/input-activities/string-input-activity.mjs +12 -14
  139. package/esm2022/lib/interaction/components/popup-interaction-context/popup-interaction-context.component.mjs +5 -6
  140. package/esm2022/lib/interaction/confirm.mjs +2 -26
  141. package/esm2022/lib/interaction/directives/interaction-context-trigger-for.directive.mjs +6 -6
  142. package/esm2022/lib/interaction/exports.mjs +1 -6
  143. package/esm2022/lib/interaction/in-place-interaction-context.mjs +1 -1
  144. package/esm2022/lib/interaction/interaction-context.mjs +2 -3
  145. package/esm2022/lib/interaction/interaction.module.mjs +36 -44
  146. package/esm2022/lib/interaction/route-synchronisation-adapter.mjs +1 -1
  147. package/esm2022/lib/interaction/services/interaction-service-routing-adapter.mjs +4 -4
  148. package/esm2022/lib/interaction/services/interaction.service.mjs +10 -22
  149. package/esm2022/lib/interaction/services/mat-dialog-interaction/dialog-interaction-context-factory.mjs +10 -9
  150. package/esm2022/lib/interaction/services/mat-dialog-interaction/dialog-interaction-context.mjs +5 -23
  151. package/esm2022/lib/interaction/services/modal-interaction-context.factory.mjs +1 -1
  152. package/esm2022/lib/place/components/abstract-place-navigation.component.mjs +5 -15
  153. package/esm2022/lib/place/components/list-place-nav/list-place-nav.component.mjs +9 -8
  154. package/esm2022/lib/place/components/not-authorised-notice/not-authorised-notice.component.mjs +7 -5
  155. package/esm2022/lib/place/components/place-outlet/place-outlet.component.mjs +12 -10
  156. package/esm2022/lib/place/components/place-outlet/route-animations.mjs +1 -1
  157. package/esm2022/lib/place/components/side-place-navigation/side-place-navigation.component.mjs +10 -15
  158. package/esm2022/lib/place/components/tabbed-place-navigation/tabbed-place-navigation.component.mjs +7 -7
  159. package/esm2022/lib/place/guards/consolidated-param-map.mjs +4 -4
  160. package/esm2022/lib/place/guards/noop-auth-guard.service.mjs +7 -5
  161. package/esm2022/lib/place/guards/place.guard.mjs +9 -10
  162. package/esm2022/lib/place/navigation/place-component-deactivation-handler.mjs +2 -2
  163. package/esm2022/lib/place/navigation/session/abstract-pop-state-navigation.mjs +1 -1
  164. package/esm2022/lib/place/navigation/session/event-cleanup/event-clean-up-session.mjs +1 -1
  165. package/esm2022/lib/place/navigation/session/event-cleanup/wait-until-leaving-interaction-transition-cancelled.mjs +1 -1
  166. package/esm2022/lib/place/navigation/session/event-cleanup/wait-until-link-triggered-navigation-interaction-cancelation-type-determined.mjs +1 -1
  167. package/esm2022/lib/place/navigation/session/event-cleanup/wait-until-popstate-during-can-deactivate-transition-finishes.mjs +1 -1
  168. package/esm2022/lib/place/navigation/session/interactions/navigating-during-interaction.mjs +2 -2
  169. package/esm2022/lib/place/navigation/session/interactions/pop-state-during-interaction-navigation.mjs +1 -1
  170. package/esm2022/lib/place/navigation/session/interactions/remove-last-interaction-from-url-navigation-session.mjs +3 -3
  171. package/esm2022/lib/place/navigation/session/interactions/synchronise-interaction-context-ids-with-route.mjs +6 -3
  172. package/esm2022/lib/place/navigation/session/navigating.mjs +2 -2
  173. package/esm2022/lib/place/navigation/session/navigation-context.mjs +1 -1
  174. package/esm2022/lib/place/navigation/session/navigation-session.mjs +2 -2
  175. package/esm2022/lib/place/navigation/session/pop-state-navigation.mjs +1 -1
  176. package/esm2022/lib/place/place-access-guard.mjs +1 -1
  177. package/esm2022/lib/place/place-auth-service.mjs +6 -7
  178. package/esm2022/lib/place/place-component.mjs +58 -54
  179. package/esm2022/lib/place/place-config.mjs +1 -1
  180. package/esm2022/lib/place/place-definition.mjs +4 -15
  181. package/esm2022/lib/place/place-history.mjs +8 -6
  182. package/esm2022/lib/place/place-router.mjs +68 -84
  183. package/esm2022/lib/place/place.decorator.mjs +2 -2
  184. package/esm2022/lib/place/place.module.mjs +16 -16
  185. package/esm2022/lib/place/route/formatter.mjs +2 -2
  186. package/esm2022/lib/place/route/json-types.mjs +1 -1
  187. package/esm2022/lib/place/route/parameter-decorators.mjs +50 -54
  188. package/esm2022/lib/place/route/parameter-definition.mjs +2 -6
  189. package/esm2022/lib/place/route/parameter-sanitiser.mjs +2 -7
  190. package/esm2022/lib/place/route/parameter-snapshot.mjs +1 -1
  191. package/esm2022/lib/place/route/visit-segment-sanitiser.mjs +1 -1
  192. package/esm2022/lib/place/url-service.mjs +4 -4
  193. package/esm2022/lib/place/url-snapshot.mjs +3 -3
  194. package/esm2022/lib/place/visit-segment.mjs +2 -2
  195. package/esm2022/lib/place/visit.mjs +2 -2
  196. package/esm2022/lib/services/markdown/markdown.service.mjs +7 -5
  197. package/esm2022/lib/services/markdown/pill-plugin.mjs +3 -1
  198. package/esm2022/lib/services/visibility-service.mjs +7 -7
  199. package/fesm2022/coolon-angular-ui-powerups.mjs +3003 -4341
  200. package/fesm2022/coolon-angular-ui-powerups.mjs.map +1 -1
  201. package/lib/angular-ui-powerups.module.d.ts +5 -5
  202. package/lib/animations/slide-animations.d.ts +0 -1
  203. package/lib/components/busy-overlay/busy-overlay.component.d.ts +4 -1
  204. package/lib/components/cards/abstract-card-container.component.d.ts +3 -6
  205. package/lib/components/cards/card-container/card-container.component.d.ts +1 -1
  206. package/lib/components/cards/card-stack/card-stack.component.d.ts +68 -0
  207. package/lib/components/commands/command/command.component.d.ts +10 -9
  208. package/lib/components/commands/command-face/command-face.component.d.ts +0 -2
  209. package/lib/components/commands/command-face.d.ts +9 -8
  210. package/lib/components/commands/group/popup-aware.component.d.ts +4 -9
  211. package/lib/components/commands/group/popup-menu/abstract-popup-menu.component.d.ts +5 -5
  212. package/lib/components/commands/group/popup-menu/more-menu.component.d.ts +4 -2
  213. package/lib/components/commands/group/popup-menu/popup-menu-renderer/popup-menu-renderer.component.d.ts +1 -3
  214. package/lib/components/commands/group/popup-menu/popup-menu.component.d.ts +4 -2
  215. package/lib/components/commands/group/tool-bar/tool-bar.component.d.ts +7 -3
  216. package/lib/components/commands/separator.component.d.ts +4 -2
  217. package/lib/components/components.module.d.ts +53 -57
  218. package/lib/components/disposable-component.d.ts +9 -17
  219. package/lib/components/empty-state/empty-state.component.d.ts +4 -1
  220. package/lib/components/exports.d.ts +6 -14
  221. package/lib/components/forms/abstract-input.component.d.ts +7 -16
  222. package/lib/components/forms/autocomplete-input/autocomplete-input.component.d.ts +2 -2
  223. package/lib/components/forms/checkbox-input/checkbox-input.component.d.ts +0 -2
  224. package/lib/components/forms/number-input/number-input.component.d.ts +4 -16
  225. package/lib/components/forms/password-input/password-input.component.d.ts +1 -7
  226. package/lib/components/forms/select-input/select-input.component.d.ts +3 -4
  227. package/lib/components/forms/string-input/string-input.component.d.ts +1 -7
  228. package/lib/components/forms/text-input/text-input.component.d.ts +0 -3
  229. package/lib/components/loading-container/loading-container.component.d.ts +4 -1
  230. package/lib/components/noop/noop.component.d.ts +1 -0
  231. package/lib/components/resize-aware.component.d.ts +6 -25
  232. package/lib/components/switch-case/switch-case.component.d.ts +7 -6
  233. package/lib/components/tables/abstract-table-model.d.ts +25 -50
  234. package/lib/components/tables/abstract-table.component.d.ts +5 -6
  235. package/lib/components/tables/column/column-list-model.d.ts +13 -0
  236. package/lib/components/tables/column/column-model.d.ts +4 -8
  237. package/lib/components/tables/column/custom-template-column-model.d.ts +2 -3
  238. package/lib/components/tables/column/custom-value-column-model.d.ts +2 -3
  239. package/lib/components/tables/column/editor-controls-column-model.d.ts +2 -3
  240. package/lib/components/tables/column/list-propery-column-model.d.ts +2 -3
  241. package/lib/components/tables/column/property-column-model.d.ts +2 -3
  242. package/lib/components/tables/column/selection-column-model.d.ts +4 -10
  243. package/lib/components/tables/editor/edit-row-controls/edit-row-controls.component.d.ts +3 -3
  244. package/lib/components/tables/editor/edit-session.d.ts +1 -1
  245. package/lib/components/tables/editor/editable-cell-renderer.d.ts +1 -1
  246. package/lib/components/tables/filter/enable-cell-text-search.decorator.d.ts +1 -1
  247. package/lib/components/tables/filter/text-search-predicate.d.ts +0 -9
  248. package/lib/components/tables/renderer/cell-portal-ref.d.ts +14 -21
  249. package/lib/components/tables/renderer/default-cell-renderer/default-cell-renderer.component.d.ts +1 -0
  250. package/lib/components/tables/renderer/default-header-cell-renderer/default-header-cell-renderer.component.d.ts +1 -0
  251. package/lib/components/tables/renderer/select-header-cell/selection-header-cell.component.d.ts +1 -2
  252. package/lib/components/tables/renderer/table-body/table-body.component.d.ts +19 -43
  253. package/lib/components/tables/renderer/table-cell/table-cell.component.d.ts +3 -2
  254. package/lib/components/tables/renderer/table-header-cell/table-header-cell.component.d.ts +1 -0
  255. package/lib/components/tables/renderer/table-more-menu/table-more-menu-popup/table-more-menu-popup.component.d.ts +15 -0
  256. package/lib/components/tables/renderer/{table-custom-more-menu/table-custom-more-menu.component.d.ts → table-more-menu/table-more-menu.component.d.ts} +8 -9
  257. package/lib/components/tables/table/table-model.d.ts +4 -4
  258. package/lib/components/tables/table/table.component.d.ts +11 -15
  259. package/lib/components/tables/table-row-menu/table-row-menu.component.d.ts +28 -0
  260. package/lib/components/tables/tree-table/tree-expansion-model.d.ts +2 -2
  261. package/lib/components/tables/tree-table/tree-inheritance-icon/tree-inheritance-icon.component.d.ts +1 -0
  262. package/lib/components/tables/tree-table/tree-label-cell-renderer/tree-label-cell-renderer.component.d.ts +1 -1
  263. package/lib/components/tables/tree-table/tree-label-column-model.d.ts +2 -3
  264. package/lib/components/tables/tree-table/tree-table-component.d.ts +2 -5
  265. package/lib/components/tables/tree-table/tree-table-model.d.ts +5 -4
  266. package/lib/components/text/markdown/markdown.component.d.ts +1 -1
  267. package/lib/components/types/loadable.d.ts +5 -0
  268. package/lib/directives/command.directive.d.ts +5 -7
  269. package/lib/directives/directives.module.d.ts +5 -5
  270. package/lib/directives/exports.d.ts +0 -1
  271. package/lib/interaction/abstract-interaction-context.d.ts +1 -1
  272. package/lib/interaction/activity-ref.d.ts +2 -2
  273. package/lib/interaction/activity.d.ts +7 -7
  274. package/lib/interaction/components/abstract-confirm-dialog.component.d.ts +1 -2
  275. package/lib/interaction/components/abstract-dialog.component.d.ts +14 -5
  276. package/lib/interaction/components/activity-actions/activity-actions.component.d.ts +9 -12
  277. package/lib/interaction/components/activity-body/activity-body.component.d.ts +1 -2
  278. package/lib/interaction/components/activity-container/activity-container.component.d.ts +5 -11
  279. package/lib/interaction/components/activity-container/activity-outlet/activity-outlet.component.d.ts +5 -4
  280. package/lib/interaction/components/activity-title/activity-title.component.d.ts +1 -1
  281. package/lib/interaction/components/alert-dialog/alert-dialog.component.d.ts +1 -6
  282. package/lib/interaction/components/editors/edit-context.d.ts +1 -1
  283. package/lib/interaction/components/inplace-interaction-context/in-place-interaction-context.component.d.ts +4 -6
  284. package/lib/interaction/components/input-activities/string-input-activity.d.ts +1 -1
  285. package/lib/interaction/confirm.d.ts +0 -4
  286. package/lib/interaction/directives/interaction-context-trigger-for.directive.d.ts +3 -3
  287. package/lib/interaction/exports.d.ts +0 -5
  288. package/lib/interaction/interaction-context.d.ts +1 -7
  289. package/lib/interaction/interaction.module.d.ts +33 -35
  290. package/lib/interaction/services/interaction-service-routing-adapter.d.ts +2 -2
  291. package/lib/interaction/services/interaction.service.d.ts +1 -2
  292. package/lib/interaction/services/mat-dialog-interaction/dialog-interaction-context-factory.d.ts +3 -2
  293. package/lib/interaction/services/mat-dialog-interaction/dialog-interaction-context.d.ts +3 -4
  294. package/lib/place/components/abstract-place-navigation.component.d.ts +0 -1
  295. package/lib/place/components/not-authorised-notice/not-authorised-notice.component.d.ts +1 -0
  296. package/lib/place/components/place-outlet/place-outlet.component.d.ts +4 -3
  297. package/lib/place/components/side-place-navigation/side-place-navigation.component.d.ts +1 -2
  298. package/lib/place/guards/noop-auth-guard.service.d.ts +1 -0
  299. package/lib/place/navigation/session/interactions/remove-last-interaction-from-url-navigation-session.d.ts +1 -0
  300. package/lib/place/place-auth-service.d.ts +4 -4
  301. package/lib/place/place-component.d.ts +16 -8
  302. package/lib/place/place-definition.d.ts +0 -2
  303. package/lib/place/place-history.d.ts +1 -0
  304. package/lib/place/place-router.d.ts +5 -10
  305. package/lib/place/place.decorator.d.ts +1 -1
  306. package/lib/place/place.module.d.ts +8 -8
  307. package/lib/place/route/json-types.d.ts +3 -1
  308. package/lib/place/route/parameter-decorators.d.ts +4 -3
  309. package/lib/place/route/parameter-definition.d.ts +2 -2
  310. package/lib/place/route/parameter-sanitiser.d.ts +0 -7
  311. package/lib/place/visit-segment.d.ts +4 -4
  312. package/lib/place/visit.d.ts +2 -2
  313. package/lib/services/markdown/markdown.service.d.ts +1 -0
  314. package/lib/services/visibility-service.d.ts +1 -1
  315. package/package.json +19 -18
  316. package/assets/draw.scss +0 -20
  317. package/assets/layout.scss +0 -3
  318. package/assets/place.scss +0 -31
  319. package/esm2022/lib/components/commands/button-renderer/button-renderer.component.mjs +0 -115
  320. package/esm2022/lib/components/file/file-download/file-download.component.mjs +0 -89
  321. package/esm2022/lib/components/forms/form-field.mjs +0 -2
  322. package/esm2022/lib/components/forms/search-input/search-input.component.mjs +0 -33
  323. package/esm2022/lib/components/loadable-component.mjs +0 -69
  324. package/esm2022/lib/components/tables/column/column-manager.mjs +0 -81
  325. package/esm2022/lib/components/tables/column/column-order-manager.mjs +0 -19
  326. package/esm2022/lib/components/tables/footer/footer-row-model.mjs +0 -38
  327. package/esm2022/lib/components/tables/renderer/abstract-cell-renderer.mjs +0 -7
  328. package/esm2022/lib/components/tables/renderer/table-action-column/menu-builder.mjs +0 -2
  329. package/esm2022/lib/components/tables/renderer/table-action-column/table-action-column.component.mjs +0 -153
  330. package/esm2022/lib/components/tables/renderer/table-custom-more-menu/table-custom-more-menu-popup.component.mjs +0 -45
  331. package/esm2022/lib/components/tables/renderer/table-custom-more-menu/table-custom-more-menu.component.mjs +0 -71
  332. package/esm2022/lib/components/tables/renderer/table-footer-row/table-footer-row.component.mjs +0 -30
  333. package/esm2022/lib/directives/resize-observer.directive.mjs +0 -40
  334. package/esm2022/lib/interaction/activity-context.mjs +0 -4
  335. package/esm2022/lib/interaction/components/alert-renderer/alert-renderer.component.mjs +0 -55
  336. package/esm2022/lib/interaction/components/confirm-renderer/confirm-renderer.component.mjs +0 -54
  337. package/esm2022/lib/interaction/components/slide-down-interaction-context/slide-down-interaction-context.component.mjs +0 -134
  338. package/esm2022/lib/interaction/interaction-context-provider.mjs +0 -17
  339. package/lib/components/commands/button-renderer/button-renderer.component.d.ts +0 -30
  340. package/lib/components/file/file-download/file-download.component.d.ts +0 -45
  341. package/lib/components/forms/form-field.d.ts +0 -5
  342. package/lib/components/forms/search-input/search-input.component.d.ts +0 -10
  343. package/lib/components/loadable-component.d.ts +0 -20
  344. package/lib/components/tables/column/column-manager.d.ts +0 -19
  345. package/lib/components/tables/column/column-order-manager.d.ts +0 -20
  346. package/lib/components/tables/footer/footer-row-model.d.ts +0 -22
  347. package/lib/components/tables/renderer/abstract-cell-renderer.d.ts +0 -6
  348. package/lib/components/tables/renderer/table-action-column/menu-builder.d.ts +0 -7
  349. package/lib/components/tables/renderer/table-action-column/table-action-column.component.d.ts +0 -42
  350. package/lib/components/tables/renderer/table-custom-more-menu/table-custom-more-menu-popup.component.d.ts +0 -19
  351. package/lib/components/tables/renderer/table-footer-row/table-footer-row.component.d.ts +0 -11
  352. package/lib/directives/resize-observer.directive.d.ts +0 -16
  353. package/lib/interaction/activity-context.d.ts +0 -9
  354. package/lib/interaction/components/alert-renderer/alert-renderer.component.d.ts +0 -17
  355. package/lib/interaction/components/confirm-renderer/confirm-renderer.component.d.ts +0 -15
  356. package/lib/interaction/components/slide-down-interaction-context/slide-down-interaction-context.component.d.ts +0 -53
  357. package/lib/interaction/interaction-context-provider.d.ts +0 -11
package/package.json CHANGED
@@ -1,30 +1,31 @@
1
1
  {
2
2
  "name": "@coolon/angular-ui-powerups",
3
- "version": "16.1.0-aplpha.189",
3
+ "version": "16.1.0-aplpha.2",
4
+ "schematics": "./schematics/collection.json",
4
5
  "peerDependencies": {
5
- "@angular/animations": "^16.2.9",
6
- "@angular/common": "^16.2.9",
7
- "@angular/core": "^16.2.9",
8
- "@angular/cdk": "^16.2.10",
9
- "@angular/forms": "^16.2.9",
10
- "@angular/material": "^16.2.10",
11
- "@angular/platform-browser": "^16.2.9",
12
- "@angular/platform-browser-dynamic": "^16.2.9",
13
- "@angular/material-moment-adapter": "^16.2.10",
14
- "@angular/router": "^16.2.9",
15
- "@coolon/pectin": "^5.0.0-alpha.94",
16
- "fast-typescript-memoize": "^1.1.1",
6
+ "@angular/animations": "^16.2.1",
7
+ "@angular/common": "^16.2.1",
8
+ "@angular/core": "^16.2.1",
9
+ "@angular/cdk": "^16.2.1",
10
+ "@angular/forms": "^16.2.1",
11
+ "@angular/material": "^16.2.1",
12
+ "@angular/platform-browser": "^16.2.1",
13
+ "@angular/router": "^16.2.1",
14
+ "@coolon/pectin": "^5.0.0-alpha.0",
15
+ "@typescript-plus/fast-memoize-decorator": "^0.2.1",
17
16
  "lodash-es": "^4.17.21",
18
17
  "marked": "4.0.10",
19
18
  "reflect-metadata": "^0.1.13",
20
19
  "resize-observer-polyfill": "^1.5.1",
21
20
  "typescript-string-enums": "^1.0.0",
22
21
  "json5": "^2.1.0",
23
- "immer": ">=10.0.3",
22
+ "immer": ">=7.0.15",
24
23
  "escape-string-regexp": "^5.0.0",
25
- "@coolon/typescript-utilities": "^5.0.0-alpha.14",
26
- "fractional-indexing": "^3.2.0",
27
- "ng-table-virtual-scroll": "^1.6.1"
24
+ "@coolon/typescript-utilities": "^5.0.0-alpha.1",
25
+ "ts-morph": "9.1.0",
26
+ "@angular/flex-layout": "15.0.0-beta.42",
27
+ "@teppeis/multimaps": "2.0.0",
28
+ "zone.js": "0.13.1"
28
29
  },
29
30
  "optionalDependencies": {
30
31
  "@fortawesome/fontawesome-free": "^6.0.0"
@@ -46,4 +47,4 @@
46
47
  }
47
48
  },
48
49
  "sideEffects": false
49
- }
50
+ }
package/assets/draw.scss DELETED
@@ -1,20 +0,0 @@
1
- mat-drawer-container {
2
- background-color: white;
3
- &.flex, &[flex] {
4
- flex: 1;
5
- ::ng-deep {
6
- .mat-drawer-inner-container {
7
- display:flex;
8
- flex-direction: column;
9
- align-items: stretch;
10
- }
11
- }
12
-
13
- mat-drawer-content {
14
- display:flex;
15
- flex-direction: column;
16
- align-items: stretch;
17
- }
18
-
19
- }
20
- }
@@ -1,3 +0,0 @@
1
- [flex], .flex {
2
- flex:1;
3
- }
package/assets/place.scss DELETED
@@ -1,31 +0,0 @@
1
- @use 'sass:map';
2
- @use '@angular/material' as mat;
3
-
4
- @mixin apply-theme($color-config, $typography-config) {
5
-
6
- //// Define a dark theme
7
- //$dark-theme: mat.define-dark-theme((
8
- // color: (
9
- // primary: mat.define-palette(mat.$indigo-palette),
10
- // accent: mat.define-palette(mat.$pink-palette, A200, A100, A400),
11
- // warn: map.get($color-config, "warn"),
12
- // ),
13
- // //color: (
14
- // // primary: map.get($color-config, "primary"),
15
- // // accent: map.get($color-config, "accent"),
16
- // // warn: map.get($color-config, "warn"),
17
- // //),
18
- // // Only include `typography` and `density` in the default dark theme.
19
- // typography: $typography-config,
20
- // density: 0,
21
- //));
22
- //
23
- //
24
- //aup-side-place-navigation {
25
- // @include mat.all-component-themes($dark-theme);
26
- // background-color: var(--mdc-elevated-card-container-color);
27
- //
28
- //}
29
-
30
- }
31
-
@@ -1,115 +0,0 @@
1
- import { __decorate, __metadata } from "tslib";
2
- import { Component, HostBinding, Input, ViewChild } from '@angular/core';
3
- import { Dsl, ListModel, Proxify, proxify, StoreInListModel, StoreInValueModel, ValueModel } from "@coolon/pectin";
4
- import { isEmpty } from "lodash-es";
5
- import { HorizontalAlignment } from "../../alignment";
6
- import { CommandFace as CommandFaceUtils } from '../command-face';
7
- import { PopupAwareComponent } from "../group/popup-aware.component";
8
- import * as i0 from "@angular/core";
9
- import * as i1 from "@angular/common";
10
- import * as i2 from "@angular/material/button";
11
- import * as i3 from "@angular/material/tooltip";
12
- import * as i4 from "@angular/material/menu";
13
- import * as i5 from "../command-face/command-face.component";
14
- export class ButtonRendererComponent extends PopupAwareComponent {
15
- #faces$_accessor_storage = proxify((ListModel));
16
- get faces$() { return this.#faces$_accessor_storage; }
17
- set faces$(value) { this.#faces$_accessor_storage = value; }
18
- #faces_accessor_storage;
19
- get faces() { return this.#faces_accessor_storage; }
20
- set faces(value) { this.#faces_accessor_storage = value; }
21
- #enabled$_accessor_storage = proxify((ValueModel));
22
- get enabled$() { return this.#enabled$_accessor_storage; }
23
- set enabled$(value) { this.#enabled$_accessor_storage = value; }
24
- #enabled_accessor_storage = true;
25
- get enabled() { return this.#enabled_accessor_storage; }
26
- set enabled(value) { this.#enabled_accessor_storage = value; }
27
- #busy$_accessor_storage = proxify((ValueModel));
28
- get busy$() { return this.#busy$_accessor_storage; }
29
- set busy$(value) { this.#busy$_accessor_storage = value; }
30
- #busy_accessor_storage;
31
- get busy() { return this.#busy_accessor_storage; }
32
- set busy(value) { this.#busy_accessor_storage = value; }
33
- alignFace = HorizontalAlignment.CENTER;
34
- forceRenderAsButton = false;
35
- matControl;
36
- buttonStyle$;
37
- color$;
38
- activeFace$;
39
- iconOnly$;
40
- tooltip$;
41
- CommandFaceUtils = CommandFaceUtils;
42
- constructor() {
43
- super();
44
- const { chain, when } = Dsl.disposeWith(this);
45
- this.activeFace$ = chain(this.faces$).first();
46
- this.buttonStyle$ = chain(this.activeFace$).map(f => CommandFaceUtils.getStyleOf(f));
47
- this.color$ = chain(this.activeFace$).map(f => CommandFaceUtils.getColorOf(f));
48
- this.tooltip$ = chain(this.activeFace$).map(f => CommandFaceUtils.getTooltipOf(f));
49
- this.iconOnly$ = chain(this.faces$).select(face => {
50
- return isEmpty(CommandFaceUtils.getTextOf(face)) && !isEmpty(CommandFaceUtils.getIconOf(face));
51
- }).count().equals(chain(this.faces$).count());
52
- }
53
- get renderAsMenuItem() {
54
- return this.inPopup && !this.forceRenderAsButton;
55
- }
56
- focus() {
57
- this.matControl.focus();
58
- }
59
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: ButtonRendererComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
60
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: ButtonRendererComponent, selector: "aup-button-renderer", inputs: { faces$: "faces$", faces: "faces", enabled$: "enabled$", enabled: "enabled", busy$: "busy$", busy: "busy", alignFace: "alignFace", forceRenderAsButton: "forceRenderAsButton" }, host: { properties: { "class": "this.alignFace", "class.in-popup": "this.renderAsMenuItem" } }, viewQueries: [{ propertyName: "matControl", first: true, predicate: ["button"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"!renderAsMenuItem\">\n <ng-container *ngIf=\"iconOnly$.value\">\n <button #button mat-icon-button [color]=\"color$.value\" [disabled]=\"!enabled\" [matTooltip]=\"tooltip$.value\">\n <aup-command-face [class]=\"alignFace\" [faces]=\"faces$.value\"></aup-command-face>\n </button>\n </ng-container>\n <ng-container *ngIf=\"!iconOnly$.value\">\n <ng-container [ngSwitch]=\"buttonStyle$.value\">\n <ng-container *ngSwitchCase=\"CommandFaceUtils.Style.STROKED\">\n <button #button mat-stroked-button [color]=\"color$.value\" [disabled]=\"!enabled\"\n [matTooltip]=\"tooltip$.value\">\n <aup-command-face [class]=\"alignFace\" [faces]=\"faces$.value\"></aup-command-face>\n </button>\n </ng-container>\n <ng-container *ngSwitchCase=\"CommandFaceUtils.Style.RAISED\">\n <button #button mat-raised-button [color]=\"color$.value\" [disabled]=\"!enabled\"\n [matTooltip]=\"tooltip$.value\">\n <aup-command-face [class]=\"alignFace\" [faces]=\"faces$.value\"></aup-command-face>\n </button>\n </ng-container>\n <ng-container *ngSwitchDefault>\n <button #button mat-button [color]=\"color$.value\" [disabled]=\"!enabled\"\n [matTooltip]=\"tooltip$.value\">\n <aup-command-face [class]=\"alignFace\" [faces]=\"faces$.value\"></aup-command-face>\n </button>\n </ng-container>\n </ng-container>\n </ng-container>\n</ng-container>\n\n<ng-container *ngIf=\"renderAsMenuItem\">\n <button #button mat-menu-item [disabled]=\"!enabled\" [matTooltip]=\"tooltip$.value\">\n <aup-command-face [class]=\"alignFace\" [faces]=\"faces$.value\"></aup-command-face>\n </button>\n</ng-container>\n", styles: [":host{display:inline-flex;flex-direction:row;justify-content:stretch}:host.in-popup{display:contents}:host button{flex:1}:host.centered button{text-align:center}:host.start button{text-align:start}:host.end button{text-align:end}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i1.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "component", type: i2.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i2.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i3.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "component", type: i4.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { kind: "component", type: i5.CommandFaceComponent, selector: "aup-command-face", inputs: ["faces", "face", "ignoreIcon", "ignoreText", "includeMissingIconInLayout"] }] });
61
- }
62
- __decorate([
63
- Proxify(),
64
- __metadata("design:type", ListModel)
65
- ], ButtonRendererComponent.prototype, "faces$", null);
66
- __decorate([
67
- StoreInListModel(),
68
- __metadata("design:type", Array)
69
- ], ButtonRendererComponent.prototype, "faces", null);
70
- __decorate([
71
- Proxify(),
72
- __metadata("design:type", ValueModel)
73
- ], ButtonRendererComponent.prototype, "enabled$", null);
74
- __decorate([
75
- StoreInValueModel(),
76
- __metadata("design:type", Boolean)
77
- ], ButtonRendererComponent.prototype, "enabled", null);
78
- __decorate([
79
- Proxify(),
80
- __metadata("design:type", ValueModel)
81
- ], ButtonRendererComponent.prototype, "busy$", null);
82
- __decorate([
83
- StoreInValueModel(),
84
- __metadata("design:type", Boolean)
85
- ], ButtonRendererComponent.prototype, "busy", null);
86
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: ButtonRendererComponent, decorators: [{
87
- type: Component,
88
- args: [{ selector: 'aup-button-renderer', template: "<ng-container *ngIf=\"!renderAsMenuItem\">\n <ng-container *ngIf=\"iconOnly$.value\">\n <button #button mat-icon-button [color]=\"color$.value\" [disabled]=\"!enabled\" [matTooltip]=\"tooltip$.value\">\n <aup-command-face [class]=\"alignFace\" [faces]=\"faces$.value\"></aup-command-face>\n </button>\n </ng-container>\n <ng-container *ngIf=\"!iconOnly$.value\">\n <ng-container [ngSwitch]=\"buttonStyle$.value\">\n <ng-container *ngSwitchCase=\"CommandFaceUtils.Style.STROKED\">\n <button #button mat-stroked-button [color]=\"color$.value\" [disabled]=\"!enabled\"\n [matTooltip]=\"tooltip$.value\">\n <aup-command-face [class]=\"alignFace\" [faces]=\"faces$.value\"></aup-command-face>\n </button>\n </ng-container>\n <ng-container *ngSwitchCase=\"CommandFaceUtils.Style.RAISED\">\n <button #button mat-raised-button [color]=\"color$.value\" [disabled]=\"!enabled\"\n [matTooltip]=\"tooltip$.value\">\n <aup-command-face [class]=\"alignFace\" [faces]=\"faces$.value\"></aup-command-face>\n </button>\n </ng-container>\n <ng-container *ngSwitchDefault>\n <button #button mat-button [color]=\"color$.value\" [disabled]=\"!enabled\"\n [matTooltip]=\"tooltip$.value\">\n <aup-command-face [class]=\"alignFace\" [faces]=\"faces$.value\"></aup-command-face>\n </button>\n </ng-container>\n </ng-container>\n </ng-container>\n</ng-container>\n\n<ng-container *ngIf=\"renderAsMenuItem\">\n <button #button mat-menu-item [disabled]=\"!enabled\" [matTooltip]=\"tooltip$.value\">\n <aup-command-face [class]=\"alignFace\" [faces]=\"faces$.value\"></aup-command-face>\n </button>\n</ng-container>\n", styles: [":host{display:inline-flex;flex-direction:row;justify-content:stretch}:host.in-popup{display:contents}:host button{flex:1}:host.centered button{text-align:center}:host.start button{text-align:start}:host.end button{text-align:end}\n"] }]
89
- }], ctorParameters: function () { return []; }, propDecorators: { faces$: [{
90
- type: Input
91
- }], faces: [{
92
- type: Input
93
- }], enabled$: [{
94
- type: Input
95
- }], enabled: [{
96
- type: Input
97
- }], busy$: [{
98
- type: Input
99
- }], busy: [{
100
- type: Input
101
- }], alignFace: [{
102
- type: Input
103
- }, {
104
- type: HostBinding,
105
- args: ["class"]
106
- }], forceRenderAsButton: [{
107
- type: Input
108
- }], matControl: [{
109
- type: ViewChild,
110
- args: ["button"]
111
- }], renderAsMenuItem: [{
112
- type: HostBinding,
113
- args: ["class.in-popup"]
114
- }] } });
115
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLXJlbmRlcmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci11aS1wb3dlcnVwcy9zcmMvbGliL2NvbXBvbmVudHMvY29tbWFuZHMvYnV0dG9uLXJlbmRlcmVyL2J1dHRvbi1yZW5kZXJlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdWktcG93ZXJ1cHMvc3JjL2xpYi9jb21wb25lbnRzL2NvbW1hbmRzL2J1dHRvbi1yZW5kZXJlci9idXR0b24tcmVuZGVyZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFJdkUsT0FBTyxFQUdMLEdBQUcsRUFDSCxTQUFTLEVBQ1QsT0FBTyxFQUNQLE9BQU8sRUFDUCxnQkFBZ0IsRUFDaEIsaUJBQWlCLEVBQ2pCLFVBQVUsRUFFWCxNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSxXQUFXLENBQUM7QUFDbEMsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDcEQsT0FBTyxFQUFDLFdBQVcsSUFBSSxnQkFBZ0IsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ2hFLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLGdDQUFnQyxDQUFDOzs7Ozs7O0FBT25FLE1BQU0sT0FBTyx1QkFBd0IsU0FBUSxtQkFBbUI7SUFHckQsMkJBQWlDLE9BQU8sQ0FBQyxDQUFBLFNBQXNCLENBQUEsQ0FBQyxDQUFDO0lBQWpFLElBQUEsTUFBTSw0Q0FBMkQ7SUFBakUsSUFBQSxNQUFNLGtEQUEyRDtJQUdqRSx3QkFBcUI7SUFBckIsSUFBQSxLQUFLLDJDQUFnQjtJQUFyQixJQUFBLEtBQUssaURBQWdCO0lBR3JCLDZCQUFnQyxPQUFPLENBQUMsQ0FBQSxVQUFtQixDQUFBLENBQUMsQ0FBQztJQUE3RCxJQUFBLFFBQVEsOENBQXFEO0lBQTdELElBQUEsUUFBUSxvREFBcUQ7SUFHN0QsNEJBQW1CLElBQUksQ0FBQztJQUF4QixJQUFBLE9BQU8sNkNBQWlCO0lBQXhCLElBQUEsT0FBTyxtREFBaUI7SUFHeEIsMEJBQTZCLE9BQU8sQ0FBQyxDQUFBLFVBQW1CLENBQUEsQ0FBQyxDQUFDO0lBQTFELElBQUEsS0FBSywyQ0FBcUQ7SUFBMUQsSUFBQSxLQUFLLGlEQUFxRDtJQUcxRCx1QkFBYztJQUFkLElBQUEsSUFBSSwwQ0FBVTtJQUFkLElBQUEsSUFBSSxnREFBVTtJQUl2QixTQUFTLEdBQXdCLG1CQUFtQixDQUFDLE1BQU0sQ0FBQztJQUc1RCxtQkFBbUIsR0FBRyxLQUFLLENBQUE7SUFHM0IsVUFBVSxDQUEwQjtJQUczQixZQUFZLENBQTBCO0lBQ3RDLE1BQU0sQ0FBK0I7SUFDdEMsV0FBVyxDQUErQjtJQUV6QyxTQUFTLENBQXlCO0lBQ2xDLFFBQVEsQ0FBMEI7SUFFM0MsZ0JBQWdCLEdBQUcsZ0JBQWdCLENBQUE7SUFHbkM7UUFDRSxLQUFLLEVBQUUsQ0FBQztRQUNSLE1BQU0sRUFBQyxLQUFLLEVBQUUsSUFBSSxFQUFDLEdBQUcsR0FBRyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUU1QyxJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDOUMsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3JGLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMvRSxJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbkYsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUNoRCxPQUFPLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUNqRyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBRWhELENBQUM7SUFFRCxJQUNJLGdCQUFnQjtRQUNsQixPQUFPLElBQUksQ0FBQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUM7SUFDbkQsQ0FBQztJQUVELEtBQUs7UUFDSCxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQzFCLENBQUM7dUdBOURVLHVCQUF1QjsyRkFBdkIsdUJBQXVCLGtkQzFCcEMsZ3VEQW1DQTs7QUROVztJQURDLE9BQU8sRUFBRTs4QkFDRixTQUFTO3FEQUFnRDtBQUdqRTtJQURDLGdCQUFnQixFQUFFOztvREFDRTtBQUdyQjtJQURDLE9BQU8sRUFBRTs4QkFDQSxVQUFVO3VEQUF5QztBQUc3RDtJQURDLGlCQUFpQixFQUFFOztzREFDSTtBQUd4QjtJQURDLE9BQU8sRUFBRTs4QkFDSCxVQUFVO29EQUF5QztBQUcxRDtJQURDLGlCQUFpQixFQUFFOzttREFDTjsyRkFsQlosdUJBQXVCO2tCQUxuQyxTQUFTOytCQUNFLHFCQUFxQjswRUFPdEIsTUFBTTtzQkFEZCxLQUFLO2dCQUlHLEtBQUs7c0JBRGIsS0FBSztnQkFJRyxRQUFRO3NCQURoQixLQUFLO2dCQUlHLE9BQU87c0JBRGYsS0FBSztnQkFJRyxLQUFLO3NCQURiLEtBQUs7Z0JBSUcsSUFBSTtzQkFEWixLQUFLO2dCQUtOLFNBQVM7c0JBRlIsS0FBSzs7c0JBQ0wsV0FBVzt1QkFBQyxPQUFPO2dCQUlwQixtQkFBbUI7c0JBRGxCLEtBQUs7Z0JBSU4sVUFBVTtzQkFEVCxTQUFTO3VCQUFDLFFBQVE7Z0JBNkJmLGdCQUFnQjtzQkFEbkIsV0FBVzt1QkFBQyxnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgSG9zdEJpbmRpbmcsIElucHV0LCBWaWV3Q2hpbGR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtNYXRCdXR0b259IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9idXR0b25cIjtcbmltcG9ydCB7VGhlbWVQYWxldHRlfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZVwiO1xuaW1wb3J0IHtNYXRNZW51SXRlbX0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL21lbnVcIjtcbmltcG9ydCB7XG4gIEJvb2xlYW5WYWx1ZU1vZGVsQ2hhaW4sXG4gIENvbW1hbmRGYWNlLFxuICBEc2wsXG4gIExpc3RNb2RlbCxcbiAgUHJveGlmeSxcbiAgcHJveGlmeSxcbiAgU3RvcmVJbkxpc3RNb2RlbCxcbiAgU3RvcmVJblZhbHVlTW9kZWwsXG4gIFZhbHVlTW9kZWwsXG4gIFZhbHVlTW9kZWxDaGFpblxufSBmcm9tIFwiQGNvb2xvbi9wZWN0aW5cIjtcbmltcG9ydCB7aXNFbXB0eX0gZnJvbSBcImxvZGFzaC1lc1wiO1xuaW1wb3J0IHtIb3Jpem9udGFsQWxpZ25tZW50fSBmcm9tIFwiLi4vLi4vYWxpZ25tZW50XCI7XG5pbXBvcnQge0NvbW1hbmRGYWNlIGFzIENvbW1hbmRGYWNlVXRpbHN9IGZyb20gJy4uL2NvbW1hbmQtZmFjZSc7XG5pbXBvcnQge1BvcHVwQXdhcmVDb21wb25lbnR9IGZyb20gXCIuLi9ncm91cC9wb3B1cC1hd2FyZS5jb21wb25lbnRcIjtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXVwLWJ1dHRvbi1yZW5kZXJlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9idXR0b24tcmVuZGVyZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9idXR0b24tcmVuZGVyZXIuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgQnV0dG9uUmVuZGVyZXJDb21wb25lbnQgZXh0ZW5kcyBQb3B1cEF3YXJlQ29tcG9uZW50IHtcblxuICBASW5wdXQoKSBAUHJveGlmeSgpXG4gIGFjY2Vzc29yIGZhY2VzJDogTGlzdE1vZGVsPENvbW1hbmRGYWNlPiA9IHByb3hpZnkoTGlzdE1vZGVsPENvbW1hbmRGYWNlPik7XG5cbiAgQElucHV0KCkgQFN0b3JlSW5MaXN0TW9kZWwoKVxuICBhY2Nlc3NvciBmYWNlczogQ29tbWFuZEZhY2VbXTtcblxuICBASW5wdXQoKSBAUHJveGlmeSgpXG4gIGFjY2Vzc29yIGVuYWJsZWQkOiBWYWx1ZU1vZGVsPGJvb2xlYW4+ID0gcHJveGlmeShWYWx1ZU1vZGVsPGJvb2xlYW4+KTtcblxuICBASW5wdXQoKSBAU3RvcmVJblZhbHVlTW9kZWwoKVxuICBhY2Nlc3NvciBlbmFibGVkOiBib29sZWFuID0gdHJ1ZTtcblxuICBASW5wdXQoKSBAUHJveGlmeSgpXG4gIGFjY2Vzc29yIGJ1c3kkOiBWYWx1ZU1vZGVsPGJvb2xlYW4+ID0gcHJveGlmeShWYWx1ZU1vZGVsPGJvb2xlYW4+KTtcblxuICBASW5wdXQoKSBAU3RvcmVJblZhbHVlTW9kZWwoKVxuICBhY2Nlc3NvciBidXN5OiBib29sZWFuO1xuXG4gIEBJbnB1dCgpXG4gIEBIb3N0QmluZGluZyhcImNsYXNzXCIpXG4gIGFsaWduRmFjZTogSG9yaXpvbnRhbEFsaWdubWVudCA9IEhvcml6b250YWxBbGlnbm1lbnQuQ0VOVEVSO1xuXG4gIEBJbnB1dCgpXG4gIGZvcmNlUmVuZGVyQXNCdXR0b24gPSBmYWxzZVxuXG4gIEBWaWV3Q2hpbGQoXCJidXR0b25cIilcbiAgbWF0Q29udHJvbDogTWF0TWVudUl0ZW0gfCBNYXRCdXR0b247XG5cblxuICByZWFkb25seSBidXR0b25TdHlsZSQ6IFZhbHVlTW9kZWxDaGFpbjxzdHJpbmc+O1xuICByZWFkb25seSBjb2xvciQ6IFZhbHVlTW9kZWxDaGFpbjxUaGVtZVBhbGV0dGU+XG4gIHByaXZhdGUgYWN0aXZlRmFjZSQ6IFZhbHVlTW9kZWxDaGFpbjxDb21tYW5kRmFjZT47XG5cbiAgcmVhZG9ubHkgaWNvbk9ubHkkOiBCb29sZWFuVmFsdWVNb2RlbENoYWluO1xuICByZWFkb25seSB0b29sdGlwJDogVmFsdWVNb2RlbENoYWluPHN0cmluZz47XG5cbiAgQ29tbWFuZEZhY2VVdGlscyA9IENvbW1hbmRGYWNlVXRpbHNcblxuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gICAgY29uc3Qge2NoYWluLCB3aGVufSA9IERzbC5kaXNwb3NlV2l0aCh0aGlzKTtcblxuICAgIHRoaXMuYWN0aXZlRmFjZSQgPSBjaGFpbih0aGlzLmZhY2VzJCkuZmlyc3QoKTtcbiAgICB0aGlzLmJ1dHRvblN0eWxlJCA9IGNoYWluKHRoaXMuYWN0aXZlRmFjZSQpLm1hcChmID0+IENvbW1hbmRGYWNlVXRpbHMuZ2V0U3R5bGVPZihmKSk7XG4gICAgdGhpcy5jb2xvciQgPSBjaGFpbih0aGlzLmFjdGl2ZUZhY2UkKS5tYXAoZiA9PiBDb21tYW5kRmFjZVV0aWxzLmdldENvbG9yT2YoZikpO1xuICAgIHRoaXMudG9vbHRpcCQgPSBjaGFpbih0aGlzLmFjdGl2ZUZhY2UkKS5tYXAoZiA9PiBDb21tYW5kRmFjZVV0aWxzLmdldFRvb2x0aXBPZihmKSk7XG4gICAgdGhpcy5pY29uT25seSQgPSBjaGFpbih0aGlzLmZhY2VzJCkuc2VsZWN0KGZhY2UgPT4ge1xuICAgICAgcmV0dXJuIGlzRW1wdHkoQ29tbWFuZEZhY2VVdGlscy5nZXRUZXh0T2YoZmFjZSkpICYmICFpc0VtcHR5KENvbW1hbmRGYWNlVXRpbHMuZ2V0SWNvbk9mKGZhY2UpKTtcbiAgICB9KS5jb3VudCgpLmVxdWFscyhjaGFpbih0aGlzLmZhY2VzJCkuY291bnQoKSk7XG5cbiAgfVxuXG4gIEBIb3N0QmluZGluZyhcImNsYXNzLmluLXBvcHVwXCIpXG4gIGdldCByZW5kZXJBc01lbnVJdGVtKCkge1xuICAgIHJldHVybiB0aGlzLmluUG9wdXAgJiYgIXRoaXMuZm9yY2VSZW5kZXJBc0J1dHRvbjtcbiAgfVxuXG4gIGZvY3VzKCkge1xuICAgIHRoaXMubWF0Q29udHJvbC5mb2N1cygpO1xuICB9XG5cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCIhcmVuZGVyQXNNZW51SXRlbVwiPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiaWNvbk9ubHkkLnZhbHVlXCI+XG4gICAgPGJ1dHRvbiAjYnV0dG9uIG1hdC1pY29uLWJ1dHRvbiBbY29sb3JdPVwiY29sb3IkLnZhbHVlXCIgW2Rpc2FibGVkXT1cIiFlbmFibGVkXCIgW21hdFRvb2x0aXBdPVwidG9vbHRpcCQudmFsdWVcIj5cbiAgICAgIDxhdXAtY29tbWFuZC1mYWNlIFtjbGFzc109XCJhbGlnbkZhY2VcIiBbZmFjZXNdPVwiZmFjZXMkLnZhbHVlXCI+PC9hdXAtY29tbWFuZC1mYWNlPlxuICAgIDwvYnV0dG9uPlxuICA8L25nLWNvbnRhaW5lcj5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpY29uT25seSQudmFsdWVcIj5cbiAgICA8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJidXR0b25TdHlsZSQudmFsdWVcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIkNvbW1hbmRGYWNlVXRpbHMuU3R5bGUuU1RST0tFRFwiPlxuICAgICAgICA8YnV0dG9uICNidXR0b24gbWF0LXN0cm9rZWQtYnV0dG9uIFtjb2xvcl09XCJjb2xvciQudmFsdWVcIiBbZGlzYWJsZWRdPVwiIWVuYWJsZWRcIlxuICAgICAgICAgICAgICAgIFttYXRUb29sdGlwXT1cInRvb2x0aXAkLnZhbHVlXCI+XG4gICAgICAgICAgPGF1cC1jb21tYW5kLWZhY2UgW2NsYXNzXT1cImFsaWduRmFjZVwiIFtmYWNlc109XCJmYWNlcyQudmFsdWVcIj48L2F1cC1jb21tYW5kLWZhY2U+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCJDb21tYW5kRmFjZVV0aWxzLlN0eWxlLlJBSVNFRFwiPlxuICAgICAgICA8YnV0dG9uICNidXR0b24gbWF0LXJhaXNlZC1idXR0b24gW2NvbG9yXT1cImNvbG9yJC52YWx1ZVwiIFtkaXNhYmxlZF09XCIhZW5hYmxlZFwiXG4gICAgICAgICAgICAgICAgW21hdFRvb2x0aXBdPVwidG9vbHRpcCQudmFsdWVcIj5cbiAgICAgICAgICA8YXVwLWNvbW1hbmQtZmFjZSBbY2xhc3NdPVwiYWxpZ25GYWNlXCIgW2ZhY2VzXT1cImZhY2VzJC52YWx1ZVwiPjwvYXVwLWNvbW1hbmQtZmFjZT5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoRGVmYXVsdD5cbiAgICAgICAgPGJ1dHRvbiAjYnV0dG9uIG1hdC1idXR0b24gW2NvbG9yXT1cImNvbG9yJC52YWx1ZVwiIFtkaXNhYmxlZF09XCIhZW5hYmxlZFwiXG4gICAgICAgICAgICAgICAgW21hdFRvb2x0aXBdPVwidG9vbHRpcCQudmFsdWVcIj5cbiAgICAgICAgICA8YXVwLWNvbW1hbmQtZmFjZSBbY2xhc3NdPVwiYWxpZ25GYWNlXCIgW2ZhY2VzXT1cImZhY2VzJC52YWx1ZVwiPjwvYXVwLWNvbW1hbmQtZmFjZT5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9uZy1jb250YWluZXI+XG48L25nLWNvbnRhaW5lcj5cblxuPG5nLWNvbnRhaW5lciAqbmdJZj1cInJlbmRlckFzTWVudUl0ZW1cIj5cbiAgPGJ1dHRvbiAjYnV0dG9uIG1hdC1tZW51LWl0ZW0gW2Rpc2FibGVkXT1cIiFlbmFibGVkXCIgW21hdFRvb2x0aXBdPVwidG9vbHRpcCQudmFsdWVcIj5cbiAgICA8YXVwLWNvbW1hbmQtZmFjZSBbY2xhc3NdPVwiYWxpZ25GYWNlXCIgW2ZhY2VzXT1cImZhY2VzJC52YWx1ZVwiPjwvYXVwLWNvbW1hbmQtZmFjZT5cbiAgPC9idXR0b24+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
@@ -1,89 +0,0 @@
1
- import { __decorate, __metadata } from "tslib";
2
- import { DOCUMENT } from '@angular/common';
3
- import { Component, HostBinding, Input } from '@angular/core';
4
- import { Dsl, proxify, Proxify, StoreInValueModel, ValueModel } from '@coolon/pectin';
5
- import { HorizontalAlignment } from '../../alignment';
6
- import { CommandFace as CommandFaceUtil } from '../../commands/command-face';
7
- import { PopupAwareComponent } from '../../commands/group/popup-aware.component';
8
- import * as i0 from "@angular/core";
9
- import * as i1 from "@angular/common";
10
- import * as i2 from "@angular/material/button";
11
- import * as i3 from "@angular/material/tooltip";
12
- import * as i4 from "@angular/material/menu";
13
- import * as i5 from "../../commands/command-face/command-face.component";
14
- // TODO: this is an ugly copy and paste hack from the Command component.
15
- /**
16
- *
17
- */
18
- export class FileDownloadComponent extends PopupAwareComponent {
19
- CommandFaceUtil = CommandFaceUtil;
20
- #download$_accessor_storage = proxify((ValueModel));
21
- get download$() { return this.#download$_accessor_storage; }
22
- set download$(value) { this.#download$_accessor_storage = value; }
23
- #download_accessor_storage;
24
- get download() { return this.#download_accessor_storage; }
25
- set download(value) { this.#download_accessor_storage = value; }
26
- alignFace = HorizontalAlignment.CENTER;
27
- faces$;
28
- buttonStyle$;
29
- color$;
30
- tooltip$;
31
- document = this.inject(DOCUMENT);
32
- constructor() {
33
- super();
34
- const { chain } = Dsl.disposeWith(this);
35
- this.faces$ = chain(this.download$).map(it => {
36
- return it.icon ? it : {
37
- ...it,
38
- icon() {
39
- return 'mat:file_download';
40
- }
41
- };
42
- }).mapToList();
43
- this.buttonStyle$ = chain(this.download$).map(f => CommandFaceUtil.getStyleOf(f));
44
- this.color$ = chain(this.download$).map(f => CommandFaceUtil.getColorOf(f));
45
- this.tooltip$ = chain(this.download$).map(f => CommandFaceUtil.getTooltipOf(f));
46
- }
47
- downloadFile() {
48
- // Create an invisible link attached to the main document body, not the menu
49
- const link = this.document.createElement('a');
50
- link.href = this.download$.value.url;
51
- link.download = this.download$.value.saveAs;
52
- document.body.appendChild(link);
53
- link.click();
54
- document.body.removeChild(link);
55
- }
56
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: FileDownloadComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
57
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: FileDownloadComponent, selector: "aup-file-download", inputs: { download$: "download$", download: "download", alignFace: "alignFace" }, host: { properties: { "class": "this.alignFace" } }, usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"!inPopup\">\n <ng-container [ngSwitch]=\"buttonStyle$.value\">\n <ng-container *ngSwitchCase=\"CommandFaceUtil.Style.STROKED\">\n <a mat-stroked-button [href]=\"download?.url\" [download]=\"download?.saveAs\"\n [matTooltip]=\"tooltip$.value\">\n <aup-command-face [class]=\"alignFace\" [faces]=\"faces$.value\"></aup-command-face>\n </a>\n </ng-container>\n <ng-container *ngSwitchCase=\"CommandFaceUtil.Style.RAISED\">\n <a mat-raised-button [href]=\"download?.url\" [download]=\"download?.saveAs\"\n [matTooltip]=\"tooltip$.value\">\n <aup-command-face [class]=\"alignFace\" [faces]=\"faces$.value\"></aup-command-face>\n </a>\n </ng-container>\n <ng-container *ngSwitchDefault>\n <a mat-button [href]=\"download?.url\" [download]=\"download?.saveAs\"\n [matTooltip]=\"tooltip$.value\">\n <aup-command-face [class]=\"alignFace\" [faces]=\"faces$.value\"></aup-command-face>\n </a>\n </ng-container>\n </ng-container>\n\n</ng-container>\n\n<ng-container *ngIf=\"inPopup\">\n <a mat-menu-item (click)=\"downloadFile()\" [matTooltip]=\"tooltip$.value\">\n <aup-command-face [class]=\"alignFace\" [faces]=\"faces$.value\"></aup-command-face>\n </a>\n</ng-container>\n\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i1.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "component", type: i2.MatAnchor, selector: "a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button]", inputs: ["disabled", "disableRipple", "color", "tabIndex"], exportAs: ["matButton", "matAnchor"] }, { kind: "directive", type: i3.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "component", type: i4.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { kind: "component", type: i5.CommandFaceComponent, selector: "aup-command-face", inputs: ["faces", "face", "ignoreIcon", "ignoreText", "includeMissingIconInLayout"] }] });
58
- }
59
- __decorate([
60
- Proxify(),
61
- __metadata("design:type", ValueModel)
62
- ], FileDownloadComponent.prototype, "download$", null);
63
- __decorate([
64
- StoreInValueModel(),
65
- __metadata("design:type", Object)
66
- ], FileDownloadComponent.prototype, "download", null);
67
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: FileDownloadComponent, decorators: [{
68
- type: Component,
69
- args: [{ selector: 'aup-file-download', template: "<ng-container *ngIf=\"!inPopup\">\n <ng-container [ngSwitch]=\"buttonStyle$.value\">\n <ng-container *ngSwitchCase=\"CommandFaceUtil.Style.STROKED\">\n <a mat-stroked-button [href]=\"download?.url\" [download]=\"download?.saveAs\"\n [matTooltip]=\"tooltip$.value\">\n <aup-command-face [class]=\"alignFace\" [faces]=\"faces$.value\"></aup-command-face>\n </a>\n </ng-container>\n <ng-container *ngSwitchCase=\"CommandFaceUtil.Style.RAISED\">\n <a mat-raised-button [href]=\"download?.url\" [download]=\"download?.saveAs\"\n [matTooltip]=\"tooltip$.value\">\n <aup-command-face [class]=\"alignFace\" [faces]=\"faces$.value\"></aup-command-face>\n </a>\n </ng-container>\n <ng-container *ngSwitchDefault>\n <a mat-button [href]=\"download?.url\" [download]=\"download?.saveAs\"\n [matTooltip]=\"tooltip$.value\">\n <aup-command-face [class]=\"alignFace\" [faces]=\"faces$.value\"></aup-command-face>\n </a>\n </ng-container>\n </ng-container>\n\n</ng-container>\n\n<ng-container *ngIf=\"inPopup\">\n <a mat-menu-item (click)=\"downloadFile()\" [matTooltip]=\"tooltip$.value\">\n <aup-command-face [class]=\"alignFace\" [faces]=\"faces$.value\"></aup-command-face>\n </a>\n</ng-container>\n\n" }]
70
- }], ctorParameters: function () { return []; }, propDecorators: { download$: [{
71
- type: Input
72
- }], download: [{
73
- type: Input
74
- }], alignFace: [{
75
- type: Input
76
- }, {
77
- type: HostBinding,
78
- args: ['class']
79
- }] } });
80
- (function (FileDownloadComponent) {
81
- function createInfo(options) {
82
- return {
83
- ...options,
84
- ...options.face
85
- };
86
- }
87
- FileDownloadComponent.createInfo = createInfo;
88
- })(FileDownloadComponent || (FileDownloadComponent = {}));
89
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1kb3dubG9hZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdWktcG93ZXJ1cHMvc3JjL2xpYi9jb21wb25lbnRzL2ZpbGUvZmlsZS1kb3dubG9hZC9maWxlLWRvd25sb2FkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci11aS1wb3dlcnVwcy9zcmMvbGliL2NvbXBvbmVudHMvZmlsZS9maWxlLWRvd25sb2FkL2ZpbGUtZG93bmxvYWQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFOUQsT0FBTyxFQUVMLEdBQUcsRUFFSCxPQUFPLEVBQ1AsT0FBTyxFQUNQLGlCQUFpQixFQUNqQixVQUFVLEVBRVgsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsV0FBVyxJQUFJLGVBQWUsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzdFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDRDQUE0QyxDQUFDOzs7Ozs7O0FBRWpGLHdFQUF3RTtBQUN4RTs7R0FFRztBQU1ILE1BQU0sT0FBTyxxQkFBc0IsU0FBUSxtQkFBbUI7SUFFekMsZUFBZSxHQUFHLGVBQWUsQ0FBQztJQUc1Qyw4QkFBNEQsT0FBTyxDQUFDLENBQUEsVUFBOEMsQ0FBQSxDQUFDLENBQUM7SUFBcEgsSUFBQSxTQUFTLCtDQUEyRztJQUFwSCxJQUFBLFNBQVMscURBQTJHO0lBR3BILDJCQUE2QztJQUE3QyxJQUFBLFFBQVEsOENBQXFDO0lBQTdDLElBQUEsUUFBUSxvREFBcUM7SUFJdEQsU0FBUyxHQUF3QixtQkFBbUIsQ0FBQyxNQUFNLENBQUM7SUFFbkQsTUFBTSxDQUFnRDtJQUU1QyxZQUFZLENBQTBCO0lBQ3RDLE1BQU0sQ0FBZ0M7SUFDdEMsUUFBUSxDQUEwQjtJQUVsQyxRQUFRLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUVwRDtRQUNFLEtBQUssRUFBRSxDQUFDO1FBQ1IsTUFBTSxFQUFFLEtBQUssRUFBRSxHQUFHLEdBQUcsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFeEMsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRTtZQUMzQyxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7Z0JBQ3BCLEdBQUcsRUFBRTtnQkFDTCxJQUFJO29CQUNGLE9BQU8sbUJBQW1CLENBQUM7Z0JBQzdCLENBQUM7YUFDRixDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDZixJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsZUFBZSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2xGLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDNUUsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLGVBQWUsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNsRixDQUFDO0lBRUQsWUFBWTtRQUNWLDRFQUE0RTtRQUM1RSxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUM5QyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQztRQUNyQyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQztRQUU1QyxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNoQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDYixRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNsQyxDQUFDO3VHQWhEVSxxQkFBcUI7MkZBQXJCLHFCQUFxQix1TkMxQmxDLDJ3Q0E4QkE7O0FEQ1c7SUFEQyxPQUFPLEVBQUU7OEJBQ0MsVUFBVTtzREFBK0Y7QUFHcEg7SUFEQyxpQkFBaUIsRUFBRTs7cURBQ3lCOzJGQVIzQyxxQkFBcUI7a0JBTGpDLFNBQVM7K0JBQ0UsbUJBQW1COzBFQVNwQixTQUFTO3NCQURqQixLQUFLO2dCQUlHLFFBQVE7c0JBRGhCLEtBQUs7Z0JBS04sU0FBUztzQkFGUixLQUFLOztzQkFDTCxXQUFXO3VCQUFDLE9BQU87O0FBeUN0QixXQUFpQixxQkFBcUI7SUFFcEMsU0FBZ0IsVUFBVSxDQUFDLE9BQTJEO1FBQ3BGLE9BQU87WUFDTCxHQUFHLE9BQU87WUFDVixHQUFHLE9BQU8sQ0FBQyxJQUFJO1NBQ2hCLENBQUM7SUFDSixDQUFDO0lBTGUsZ0NBQVUsYUFLekIsQ0FBQTtBQU1ILENBQUMsRUFiZ0IscUJBQXFCLEtBQXJCLHFCQUFxQixRQWFyQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgSG9zdEJpbmRpbmcsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUaGVtZVBhbGV0dGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcbmltcG9ydCB7XG4gIENvbW1hbmRGYWNlLFxuICBEc2wsXG4gIExpc3RNb2RlbCxcbiAgcHJveGlmeSxcbiAgUHJveGlmeSxcbiAgU3RvcmVJblZhbHVlTW9kZWwsXG4gIFZhbHVlTW9kZWwsXG4gIFZhbHVlTW9kZWxDaGFpblxufSBmcm9tICdAY29vbG9uL3BlY3Rpbic7XG5pbXBvcnQgeyBIb3Jpem9udGFsQWxpZ25tZW50IH0gZnJvbSAnLi4vLi4vYWxpZ25tZW50JztcbmltcG9ydCB7IENvbW1hbmRGYWNlIGFzIENvbW1hbmRGYWNlVXRpbCB9IGZyb20gJy4uLy4uL2NvbW1hbmRzL2NvbW1hbmQtZmFjZSc7XG5pbXBvcnQgeyBQb3B1cEF3YXJlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29tbWFuZHMvZ3JvdXAvcG9wdXAtYXdhcmUuY29tcG9uZW50JztcblxuLy8gVE9ETzogdGhpcyBpcyBhbiB1Z2x5IGNvcHkgYW5kIHBhc3RlIGhhY2sgZnJvbSB0aGUgQ29tbWFuZCBjb21wb25lbnQuXG4vKipcbiAqXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F1cC1maWxlLWRvd25sb2FkJyxcbiAgdGVtcGxhdGVVcmw6ICdmaWxlLWRvd25sb2FkLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJ2ZpbGUtZG93bmxvYWQuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBGaWxlRG93bmxvYWRDb21wb25lbnQgZXh0ZW5kcyBQb3B1cEF3YXJlQ29tcG9uZW50IHtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgQ29tbWFuZEZhY2VVdGlsID0gQ29tbWFuZEZhY2VVdGlsO1xuXG4gIEBJbnB1dCgpIEBQcm94aWZ5KClcbiAgYWNjZXNzb3IgZG93bmxvYWQkOiBWYWx1ZU1vZGVsPEZpbGVEb3dubG9hZENvbXBvbmVudC5Eb3dubG9hZEluZm8+ID0gcHJveGlmeShWYWx1ZU1vZGVsPEZpbGVEb3dubG9hZENvbXBvbmVudC5Eb3dubG9hZEluZm8+KTtcblxuICBASW5wdXQoKSBAU3RvcmVJblZhbHVlTW9kZWwoKVxuICBhY2Nlc3NvciBkb3dubG9hZDogRmlsZURvd25sb2FkQ29tcG9uZW50LkRvd25sb2FkSW5mbztcblxuICBASW5wdXQoKVxuICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcbiAgYWxpZ25GYWNlOiBIb3Jpem9udGFsQWxpZ25tZW50ID0gSG9yaXpvbnRhbEFsaWdubWVudC5DRU5URVI7XG5cbiAgcmVhZG9ubHkgZmFjZXMkOiBMaXN0TW9kZWw8RmlsZURvd25sb2FkQ29tcG9uZW50LkRvd25sb2FkSW5mbz47XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGJ1dHRvblN0eWxlJDogVmFsdWVNb2RlbENoYWluPHN0cmluZz47XG4gIHByb3RlY3RlZCByZWFkb25seSBjb2xvciQ6IFZhbHVlTW9kZWxDaGFpbjxUaGVtZVBhbGV0dGU+O1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgdG9vbHRpcCQ6IFZhbHVlTW9kZWxDaGFpbjxzdHJpbmc+O1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBkb2N1bWVudCA9IHRoaXMuaW5qZWN0KERPQ1VNRU5UKTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICAgIGNvbnN0IHsgY2hhaW4gfSA9IERzbC5kaXNwb3NlV2l0aCh0aGlzKTtcblxuICAgIHRoaXMuZmFjZXMkID0gY2hhaW4odGhpcy5kb3dubG9hZCQpLm1hcChpdCA9PiB7XG4gICAgICByZXR1cm4gaXQuaWNvbiA/IGl0IDoge1xuICAgICAgICAuLi5pdCxcbiAgICAgICAgaWNvbigpIHtcbiAgICAgICAgICByZXR1cm4gJ21hdDpmaWxlX2Rvd25sb2FkJztcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICB9KS5tYXBUb0xpc3QoKTtcbiAgICB0aGlzLmJ1dHRvblN0eWxlJCA9IGNoYWluKHRoaXMuZG93bmxvYWQkKS5tYXAoZiA9PiBDb21tYW5kRmFjZVV0aWwuZ2V0U3R5bGVPZihmKSk7XG4gICAgdGhpcy5jb2xvciQgPSBjaGFpbih0aGlzLmRvd25sb2FkJCkubWFwKGYgPT4gQ29tbWFuZEZhY2VVdGlsLmdldENvbG9yT2YoZikpO1xuICAgIHRoaXMudG9vbHRpcCQgPSBjaGFpbih0aGlzLmRvd25sb2FkJCkubWFwKGYgPT4gQ29tbWFuZEZhY2VVdGlsLmdldFRvb2x0aXBPZihmKSk7XG4gIH1cblxuICBkb3dubG9hZEZpbGUoKSB7XG4gICAgLy8gQ3JlYXRlIGFuIGludmlzaWJsZSBsaW5rIGF0dGFjaGVkIHRvIHRoZSBtYWluIGRvY3VtZW50IGJvZHksIG5vdCB0aGUgbWVudVxuICAgIGNvbnN0IGxpbmsgPSB0aGlzLmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKTtcbiAgICBsaW5rLmhyZWYgPSB0aGlzLmRvd25sb2FkJC52YWx1ZS51cmw7XG4gICAgbGluay5kb3dubG9hZCA9IHRoaXMuZG93bmxvYWQkLnZhbHVlLnNhdmVBcztcblxuICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQobGluayk7XG4gICAgbGluay5jbGljaygpO1xuICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQobGluayk7XG4gIH1cblxufVxuXG5leHBvcnQgbmFtZXNwYWNlIEZpbGVEb3dubG9hZENvbXBvbmVudCB7XG5cbiAgZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUluZm8ob3B0aW9uczogeyBmYWNlOiBDb21tYW5kRmFjZSwgdXJsOiBzdHJpbmcsIHNhdmVBczogc3RyaW5nIH0pIHtcbiAgICByZXR1cm4ge1xuICAgICAgLi4ub3B0aW9ucyxcbiAgICAgIC4uLm9wdGlvbnMuZmFjZVxuICAgIH07XG4gIH1cblxuICBleHBvcnQgaW50ZXJmYWNlIERvd25sb2FkSW5mbyBleHRlbmRzIENvbW1hbmRGYWNlIHtcbiAgICBzYXZlQXM6IHN0cmluZztcbiAgICB1cmw6IHN0cmluZztcbiAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpblBvcHVwXCI+XG4gIDxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cImJ1dHRvblN0eWxlJC52YWx1ZVwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIkNvbW1hbmRGYWNlVXRpbC5TdHlsZS5TVFJPS0VEXCI+XG4gICAgICA8YSBtYXQtc3Ryb2tlZC1idXR0b24gW2hyZWZdPVwiZG93bmxvYWQ/LnVybFwiIFtkb3dubG9hZF09XCJkb3dubG9hZD8uc2F2ZUFzXCJcbiAgICAgICAgIFttYXRUb29sdGlwXT1cInRvb2x0aXAkLnZhbHVlXCI+XG4gICAgICAgIDxhdXAtY29tbWFuZC1mYWNlIFtjbGFzc109XCJhbGlnbkZhY2VcIiBbZmFjZXNdPVwiZmFjZXMkLnZhbHVlXCI+PC9hdXAtY29tbWFuZC1mYWNlPlxuICAgICAgPC9hPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIkNvbW1hbmRGYWNlVXRpbC5TdHlsZS5SQUlTRURcIj5cbiAgICAgIDxhIG1hdC1yYWlzZWQtYnV0dG9uIFtocmVmXT1cImRvd25sb2FkPy51cmxcIiBbZG93bmxvYWRdPVwiZG93bmxvYWQ/LnNhdmVBc1wiXG4gICAgICAgICBbbWF0VG9vbHRpcF09XCJ0b29sdGlwJC52YWx1ZVwiPlxuICAgICAgICA8YXVwLWNvbW1hbmQtZmFjZSBbY2xhc3NdPVwiYWxpZ25GYWNlXCIgW2ZhY2VzXT1cImZhY2VzJC52YWx1ZVwiPjwvYXVwLWNvbW1hbmQtZmFjZT5cbiAgICAgIDwvYT5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaERlZmF1bHQ+XG4gICAgICA8YSBtYXQtYnV0dG9uIFtocmVmXT1cImRvd25sb2FkPy51cmxcIiBbZG93bmxvYWRdPVwiZG93bmxvYWQ/LnNhdmVBc1wiXG4gICAgICAgICBbbWF0VG9vbHRpcF09XCJ0b29sdGlwJC52YWx1ZVwiPlxuICAgICAgICA8YXVwLWNvbW1hbmQtZmFjZSBbY2xhc3NdPVwiYWxpZ25GYWNlXCIgW2ZhY2VzXT1cImZhY2VzJC52YWx1ZVwiPjwvYXVwLWNvbW1hbmQtZmFjZT5cbiAgICAgIDwvYT5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9uZy1jb250YWluZXI+XG5cbjwvbmctY29udGFpbmVyPlxuXG48bmctY29udGFpbmVyICpuZ0lmPVwiaW5Qb3B1cFwiPlxuICA8YSBtYXQtbWVudS1pdGVtIChjbGljayk9XCJkb3dubG9hZEZpbGUoKVwiIFttYXRUb29sdGlwXT1cInRvb2x0aXAkLnZhbHVlXCI+XG4gICAgPGF1cC1jb21tYW5kLWZhY2UgW2NsYXNzXT1cImFsaWduRmFjZVwiIFtmYWNlc109XCJmYWNlcyQudmFsdWVcIj48L2F1cC1jb21tYW5kLWZhY2U+XG4gIDwvYT5cbjwvbmctY29udGFpbmVyPlxuXG4iXX0=
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci11aS1wb3dlcnVwcy9zcmMvbGliL2NvbXBvbmVudHMvZm9ybXMvZm9ybS1maWVsZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBGb3JtRmllbGQge1xuICBsYWJlbCgpOnN0cmluZztcbiAgaGludD8oKTpzdHJpbmc7XG4gIHBsYWNlaG9sZGVyPygpOnN0cmluZztcbn1cbiJdfQ==
@@ -1,33 +0,0 @@
1
- import { Component, Input } from '@angular/core';
2
- import { Command, Dsl } from '@coolon/pectin';
3
- import { AbstractValueInputComponent } from '../abstract-value-input.component';
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "@angular/forms";
6
- import * as i2 from "@angular/material/input";
7
- import * as i3 from "@angular/material/form-field";
8
- import * as i4 from "../../../directives/command.directive";
9
- import * as i5 from "../../../directives/focus-binding.directive";
10
- import * as i6 from "@angular/material/button";
11
- import * as i7 from "../../icon/icon.component";
12
- export class SearchInputComponent extends AbstractValueInputComponent {
13
- autocomplete;
14
- clearCommand;
15
- constructor() {
16
- super();
17
- this.dense = true;
18
- const { chain, valueOf, before, when, after, observe, switchOn } = Dsl.disposeWith(this);
19
- this.clearCommand = Command.create(() => {
20
- this.componentValue$.value = "";
21
- });
22
- this.clearCommand.disableWhile(chain.stringValue(this.componentValue$).isBlank());
23
- }
24
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: SearchInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
25
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: SearchInputComponent, selector: "aup-search-input", inputs: { autocomplete: "autocomplete" }, usesInheritance: true, ngImport: i0, template: "<mat-form-field [floatLabel]=\"floatLabel\">\n\n <input matInput\n placeholder=\"{{placeholder}}\"\n [attr.autocomplete]=\"autocomplete\"\n [(ngModel)]=\"componentValue$.value\"\n [disabled]=\"!enabled$.value\"\n (keydown.enter)=\"notifyEnterKey()\"\n (keydown.escape)=\"notifyEscapeKey()\"\n [pectinFocusBinding]=\"focusContext\"\n [errorStateMatcher]=\"errorStateMatcher\"\n >\n <aup-icon matPrefix icon=\"mat:search\"></aup-icon>\n <button mat-icon-button matSuffix [pectinCommand]=\"clearCommand\">\n <aup-icon icon=\"mat:close\"></aup-icon>\n </button>\n</mat-form-field>\n\n", styles: ["button[disabled]{visibility:hidden}\n"], dependencies: [{ kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i2.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatPrefix, selector: "[matPrefix], [matIconPrefix], [matTextPrefix]", inputs: ["matTextPrefix"] }, { kind: "directive", type: i3.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "directive", type: i4.CommandDirective, selector: "[pectinCommand]", inputs: ["pectinCommand", "commandParameter", "preventDefault"] }, { kind: "directive", type: i5.FocusBindingDirective, selector: "[pectinFocusBinding]", inputs: ["pectinFocusBinding", "focusBindingTarget"] }, { kind: "component", type: i6.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i7.IconComponent, selector: "aup-icon", inputs: ["icon"] }] });
26
- }
27
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: SearchInputComponent, decorators: [{
28
- type: Component,
29
- args: [{ selector: 'aup-search-input', template: "<mat-form-field [floatLabel]=\"floatLabel\">\n\n <input matInput\n placeholder=\"{{placeholder}}\"\n [attr.autocomplete]=\"autocomplete\"\n [(ngModel)]=\"componentValue$.value\"\n [disabled]=\"!enabled$.value\"\n (keydown.enter)=\"notifyEnterKey()\"\n (keydown.escape)=\"notifyEscapeKey()\"\n [pectinFocusBinding]=\"focusContext\"\n [errorStateMatcher]=\"errorStateMatcher\"\n >\n <aup-icon matPrefix icon=\"mat:search\"></aup-icon>\n <button mat-icon-button matSuffix [pectinCommand]=\"clearCommand\">\n <aup-icon icon=\"mat:close\"></aup-icon>\n </button>\n</mat-form-field>\n\n", styles: ["button[disabled]{visibility:hidden}\n"] }]
30
- }], ctorParameters: function () { return []; }, propDecorators: { autocomplete: [{
31
- type: Input
32
- }] } });
33
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLWlucHV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci11aS1wb3dlcnVwcy9zcmMvbGliL2NvbXBvbmVudHMvZm9ybXMvc2VhcmNoLWlucHV0L3NlYXJjaC1pbnB1dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdWktcG93ZXJ1cHMvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm1zL3NlYXJjaC1pbnB1dC9zZWFyY2gtaW5wdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDL0MsT0FBTyxFQUFDLE9BQU8sRUFBRSxHQUFHLEVBQWtELE1BQU0sZ0JBQWdCLENBQUM7QUFDN0YsT0FBTyxFQUFDLDJCQUEyQixFQUFDLE1BQU0sbUNBQW1DLENBQUM7Ozs7Ozs7OztBQU85RSxNQUFNLE9BQU8sb0JBQXFCLFNBQVEsMkJBQW1DO0lBRWxFLFlBQVksQ0FBUztJQUVyQixZQUFZLENBQWdCO0lBRXJDO1FBQ0UsS0FBSyxFQUFFLENBQUM7UUFDUixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQTtRQUNqQixNQUFNLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLEdBQUcsR0FBRyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN6RixJQUFJLENBQUMsWUFBWSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFO1lBQ3RDLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQztRQUNsQyxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDcEYsQ0FBQzt1R0FkVSxvQkFBb0I7MkZBQXBCLG9CQUFvQix5SENUakMsOG9CQWtCQTs7MkZEVGEsb0JBQW9CO2tCQUxoQyxTQUFTOytCQUNFLGtCQUFrQjswRUFNbkIsWUFBWTtzQkFBcEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBJbnB1dH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0NvbW1hbmQsIERzbCwgUHJveGlmeSwgcHJveGlmeSwgU3RvcmVJblZhbHVlTW9kZWwsIFZhbHVlTW9kZWx9IGZyb20gJ0Bjb29sb24vcGVjdGluJztcbmltcG9ydCB7QWJzdHJhY3RWYWx1ZUlucHV0Q29tcG9uZW50fSBmcm9tICcuLi9hYnN0cmFjdC12YWx1ZS1pbnB1dC5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhdXAtc2VhcmNoLWlucHV0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NlYXJjaC1pbnB1dC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3NlYXJjaC1pbnB1dC5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFNlYXJjaElucHV0Q29tcG9uZW50IGV4dGVuZHMgQWJzdHJhY3RWYWx1ZUlucHV0Q29tcG9uZW50PHN0cmluZz4ge1xuXG4gIEBJbnB1dCgpIGF1dG9jb21wbGV0ZTogc3RyaW5nO1xuXG4gIHJlYWRvbmx5IGNsZWFyQ29tbWFuZDogQ29tbWFuZDx2b2lkPjtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuZGVuc2UgPSB0cnVlXG4gICAgY29uc3QgeyBjaGFpbiwgdmFsdWVPZiwgYmVmb3JlLCB3aGVuLCBhZnRlciwgb2JzZXJ2ZSwgc3dpdGNoT24gfSA9IERzbC5kaXNwb3NlV2l0aCh0aGlzKTtcbiAgICB0aGlzLmNsZWFyQ29tbWFuZCA9IENvbW1hbmQuY3JlYXRlKCgpID0+IHtcbiAgICAgIHRoaXMuY29tcG9uZW50VmFsdWUkLnZhbHVlID0gXCJcIjtcbiAgICB9KTtcbiAgICB0aGlzLmNsZWFyQ29tbWFuZC5kaXNhYmxlV2hpbGUoY2hhaW4uc3RyaW5nVmFsdWUodGhpcy5jb21wb25lbnRWYWx1ZSQpLmlzQmxhbmsoKSk7XG4gIH1cblxufVxuIiwiPG1hdC1mb3JtLWZpZWxkIFtmbG9hdExhYmVsXT1cImZsb2F0TGFiZWxcIj5cblxuICA8aW5wdXQgbWF0SW5wdXRcbiAgICAgICAgIHBsYWNlaG9sZGVyPVwie3twbGFjZWhvbGRlcn19XCJcbiAgICAgICAgIFthdHRyLmF1dG9jb21wbGV0ZV09XCJhdXRvY29tcGxldGVcIlxuICAgICAgICAgWyhuZ01vZGVsKV09XCJjb21wb25lbnRWYWx1ZSQudmFsdWVcIlxuICAgICAgICAgW2Rpc2FibGVkXT1cIiFlbmFibGVkJC52YWx1ZVwiXG4gICAgICAgICAoa2V5ZG93bi5lbnRlcik9XCJub3RpZnlFbnRlcktleSgpXCJcbiAgICAgICAgIChrZXlkb3duLmVzY2FwZSk9XCJub3RpZnlFc2NhcGVLZXkoKVwiXG4gICAgICAgICBbcGVjdGluRm9jdXNCaW5kaW5nXT1cImZvY3VzQ29udGV4dFwiXG4gICAgICAgICBbZXJyb3JTdGF0ZU1hdGNoZXJdPVwiZXJyb3JTdGF0ZU1hdGNoZXJcIlxuICA+XG4gIDxhdXAtaWNvbiBtYXRQcmVmaXggaWNvbj1cIm1hdDpzZWFyY2hcIj48L2F1cC1pY29uPlxuICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiBtYXRTdWZmaXggW3BlY3RpbkNvbW1hbmRdPVwiY2xlYXJDb21tYW5kXCI+XG4gICAgPGF1cC1pY29uIGljb249XCJtYXQ6Y2xvc2VcIj48L2F1cC1pY29uPlxuICA8L2J1dHRvbj5cbjwvbWF0LWZvcm0tZmllbGQ+XG5cbiJdfQ==
@@ -1,69 +0,0 @@
1
- import { Directive, inject } from '@angular/core';
2
- import { LoadingStateTracker, MutableValueModel } from '@coolon/pectin';
3
- import { DisposableComponent } from './disposable-component';
4
- import * as i0 from "@angular/core";
5
- export class LoadableComponent extends DisposableComponent {
6
- #_loaded$ = new MutableValueModel();
7
- #asyncLoadables = [];
8
- #awaitedLoadables = [];
9
- loadTracker;
10
- constructor() {
11
- super();
12
- this.loadTracker = inject(LoadingStateTracker, { optional: true })?.register(this);
13
- }
14
- get loaded$() {
15
- return this.#_loaded$.readonly$;
16
- }
17
- ngOnInit() {
18
- super.ngOnInit();
19
- this.loadDependencies();
20
- }
21
- loadDependencies() {
22
- this.loadTracker?.triggered();
23
- if (this.#awaitedLoadables.length > 0) {
24
- Promise.all(this.#awaitedLoadables.map((it) => {
25
- this.loadTracker?.dependencyTriggered(it);
26
- return it
27
- .ensureLoaded()
28
- .then(() => this.loadTracker?.dependencyFinished(it))
29
- .catch((e) => this.loadTracker?.dependencyFailed(it, e));
30
- })).then(() => {
31
- this.#_loaded$.value = true;
32
- this.loadTracker?.finished();
33
- }).catch(e => {
34
- this.loadTracker.failed(e);
35
- throw e;
36
- });
37
- }
38
- else {
39
- this.#_loaded$.value = true;
40
- this.loadTracker?.finished();
41
- }
42
- }
43
- injectLoadable(token, options) {
44
- return this.registerLoadable(inject(token, options), options);
45
- }
46
- registerLoadable(loadable, options) {
47
- const shouldWait = !options || options.wait === true;
48
- if (shouldWait)
49
- this.loadTracker?.registerDependency(loadable);
50
- if (this.loaded$.value) {
51
- loadable.ensureLoaded();
52
- }
53
- else {
54
- if (shouldWait) {
55
- this.#awaitedLoadables.push(loadable);
56
- }
57
- else {
58
- this.#asyncLoadables.push(loadable);
59
- }
60
- }
61
- return loadable;
62
- }
63
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: LoadableComponent, deps: [], target: i0.ɵɵFactoryTarget.Directive });
64
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.9", type: LoadableComponent, usesInheritance: true, ngImport: i0 });
65
- }
66
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: LoadableComponent, decorators: [{
67
- type: Directive
68
- }], ctorParameters: function () { return []; } });
69
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZGFibGUtY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXVpLXBvd2VydXBzL3NyYy9saWIvY29tcG9uZW50cy9sb2FkYWJsZS1jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQXdDLE1BQU0sZUFBZSxDQUFDO0FBQ3hGLE9BQU8sRUFBWSxtQkFBbUIsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDOztBQUc3RCxNQUFNLE9BQU8saUJBQWtCLFNBQVEsbUJBQW1CO0lBRS9DLFNBQVMsR0FBRyxJQUFJLGlCQUFpQixFQUFXLENBQUM7SUFDN0MsZUFBZSxHQUFlLEVBQUUsQ0FBQztJQUNqQyxpQkFBaUIsR0FBZSxFQUFFLENBQUM7SUFFekIsV0FBVyxDQUEwQztJQUV4RTtRQUNFLEtBQUssRUFBRSxDQUFDO1FBQ1IsSUFBSSxDQUFDLFdBQVcsR0FBRyxNQUFNLENBQUMsbUJBQW1CLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDckYsQ0FBQztJQUVELElBQUksT0FBTztRQUNULE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUM7SUFDbEMsQ0FBQztJQUVRLFFBQVE7UUFDZixLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDakIsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVPLGdCQUFnQjtRQUN0QixJQUFJLENBQUMsV0FBVyxFQUFFLFNBQVMsRUFBRSxDQUFDO1FBQzlCLElBQUksSUFBSSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDckMsT0FBTyxDQUFDLEdBQUcsQ0FDVCxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUU7Z0JBQ2hDLElBQUksQ0FBQyxXQUFXLEVBQUUsbUJBQW1CLENBQUMsRUFBRSxDQUFDLENBQUE7Z0JBQ3pDLE9BQU8sRUFBRTtxQkFDTixZQUFZLEVBQUU7cUJBQ2QsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsa0JBQWtCLENBQUMsRUFBRSxDQUFDLENBQUM7cUJBQ3BELEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxnQkFBZ0IsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUM3RCxDQUFDLENBQUMsQ0FDSCxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUU7Z0JBQ1YsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO2dCQUM1QixJQUFJLENBQUMsV0FBVyxFQUFFLFFBQVEsRUFBRSxDQUFDO1lBQy9CLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRTtnQkFDWCxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDM0IsTUFBTSxDQUFDLENBQUM7WUFDVixDQUFDLENBQUMsQ0FBQztTQUNKO2FBQU07WUFDTCxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7WUFDNUIsSUFBSSxDQUFDLFdBQVcsRUFBRSxRQUFRLEVBQUUsQ0FBQztTQUM5QjtJQUNILENBQUM7SUFFUyxjQUFjLENBQXFCLEtBQXVCLEVBQUUsT0FFckU7UUFDQyxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ2hFLENBQUM7SUFFRCxnQkFBZ0IsQ0FBcUIsUUFBVyxFQUFFLE9BQTJCO1FBQzNFLE1BQU0sVUFBVSxHQUFHLENBQUMsT0FBTyxJQUFJLE9BQU8sQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDO1FBQ3JELElBQUksVUFBVTtZQUFFLElBQUksQ0FBQyxXQUFXLEVBQUUsa0JBQWtCLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFL0QsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRTtZQUN0QixRQUFRLENBQUMsWUFBWSxFQUFFLENBQUM7U0FDekI7YUFBTTtZQUNMLElBQUksVUFBVSxFQUFFO2dCQUNkLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7YUFDdkM7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7YUFDckM7U0FDRjtRQUNELE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUM7dUdBbEVVLGlCQUFpQjsyRkFBakIsaUJBQWlCOzsyRkFBakIsaUJBQWlCO2tCQUQ3QixTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBpbmplY3QsIEluamVjdE9wdGlvbnMsIE9uSW5pdCwgUHJvdmlkZXJUb2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTG9hZGFibGUsIExvYWRpbmdTdGF0ZVRyYWNrZXIsIE11dGFibGVWYWx1ZU1vZGVsIH0gZnJvbSAnQGNvb2xvbi9wZWN0aW4nO1xuaW1wb3J0IHsgRGlzcG9zYWJsZUNvbXBvbmVudCB9IGZyb20gJy4vZGlzcG9zYWJsZS1jb21wb25lbnQnO1xuXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBjbGFzcyBMb2FkYWJsZUNvbXBvbmVudCBleHRlbmRzIERpc3Bvc2FibGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIHJlYWRvbmx5ICNfbG9hZGVkJCA9IG5ldyBNdXRhYmxlVmFsdWVNb2RlbDxib29sZWFuPigpO1xuICByZWFkb25seSAjYXN5bmNMb2FkYWJsZXM6IExvYWRhYmxlW10gPSBbXTtcbiAgcmVhZG9ubHkgI2F3YWl0ZWRMb2FkYWJsZXM6IExvYWRhYmxlW10gPSBbXTtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgbG9hZFRyYWNrZXI6IExvYWRpbmdTdGF0ZVRyYWNrZXIuVHJhY2tlciB8IHVuZGVmaW5lZDtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMubG9hZFRyYWNrZXIgPSBpbmplY3QoTG9hZGluZ1N0YXRlVHJhY2tlciwgeyBvcHRpb25hbDogdHJ1ZSB9KT8ucmVnaXN0ZXIodGhpcyk7XG4gIH1cblxuICBnZXQgbG9hZGVkJCgpIHtcbiAgICByZXR1cm4gdGhpcy4jX2xvYWRlZCQucmVhZG9ubHkkO1xuICB9XG5cbiAgb3ZlcnJpZGUgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICB0aGlzLmxvYWREZXBlbmRlbmNpZXMoKTtcbiAgfVxuXG4gIHByaXZhdGUgbG9hZERlcGVuZGVuY2llcygpIHtcbiAgICB0aGlzLmxvYWRUcmFja2VyPy50cmlnZ2VyZWQoKTtcbiAgICBpZiAodGhpcy4jYXdhaXRlZExvYWRhYmxlcy5sZW5ndGggPiAwKSB7XG4gICAgICBQcm9taXNlLmFsbChcbiAgICAgICAgdGhpcy4jYXdhaXRlZExvYWRhYmxlcy5tYXAoKGl0KSA9PiB7XG4gICAgICAgICAgdGhpcy5sb2FkVHJhY2tlcj8uZGVwZW5kZW5jeVRyaWdnZXJlZChpdClcbiAgICAgICAgICByZXR1cm4gaXRcbiAgICAgICAgICAgIC5lbnN1cmVMb2FkZWQoKVxuICAgICAgICAgICAgLnRoZW4oKCkgPT4gdGhpcy5sb2FkVHJhY2tlcj8uZGVwZW5kZW5jeUZpbmlzaGVkKGl0KSlcbiAgICAgICAgICAgIC5jYXRjaCgoZSkgPT4gdGhpcy5sb2FkVHJhY2tlcj8uZGVwZW5kZW5jeUZhaWxlZChpdCwgZSkpO1xuICAgICAgICB9KVxuICAgICAgKS50aGVuKCgpID0+IHtcbiAgICAgICAgdGhpcy4jX2xvYWRlZCQudmFsdWUgPSB0cnVlO1xuICAgICAgICB0aGlzLmxvYWRUcmFja2VyPy5maW5pc2hlZCgpO1xuICAgICAgfSkuY2F0Y2goZSA9PntcbiAgICAgICAgdGhpcy5sb2FkVHJhY2tlci5mYWlsZWQoZSk7XG4gICAgICAgIHRocm93IGU7XG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy4jX2xvYWRlZCQudmFsdWUgPSB0cnVlO1xuICAgICAgdGhpcy5sb2FkVHJhY2tlcj8uZmluaXNoZWQoKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgaW5qZWN0TG9hZGFibGU8VCBleHRlbmRzIExvYWRhYmxlPih0b2tlbjogUHJvdmlkZXJUb2tlbjxUPiwgb3B0aW9ucz86IEluamVjdE9wdGlvbnMgJiB7XG4gICAgd2FpdDogYm9vbGVhblxuICB9KTogVCB7XG4gICAgcmV0dXJuIHRoaXMucmVnaXN0ZXJMb2FkYWJsZShpbmplY3QodG9rZW4sIG9wdGlvbnMpLCBvcHRpb25zKTtcbiAgfVxuXG4gIHJlZ2lzdGVyTG9hZGFibGU8VCBleHRlbmRzIExvYWRhYmxlPihsb2FkYWJsZTogVCwgb3B0aW9ucz86IHsgd2FpdDogYm9vbGVhbiB9KSB7XG4gICAgY29uc3Qgc2hvdWxkV2FpdCA9ICFvcHRpb25zIHx8IG9wdGlvbnMud2FpdCA9PT0gdHJ1ZTtcbiAgICBpZiAoc2hvdWxkV2FpdCkgdGhpcy5sb2FkVHJhY2tlcj8ucmVnaXN0ZXJEZXBlbmRlbmN5KGxvYWRhYmxlKTtcblxuICAgIGlmICh0aGlzLmxvYWRlZCQudmFsdWUpIHtcbiAgICAgIGxvYWRhYmxlLmVuc3VyZUxvYWRlZCgpO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoc2hvdWxkV2FpdCkge1xuICAgICAgICB0aGlzLiNhd2FpdGVkTG9hZGFibGVzLnB1c2gobG9hZGFibGUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy4jYXN5bmNMb2FkYWJsZXMucHVzaChsb2FkYWJsZSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBsb2FkYWJsZTtcbiAgfVxufVxuIl19
@@ -1,81 +0,0 @@
1
- import { Dsl, GarbageCollector, lang, MutableListModel, WatchList } from '@coolon/pectin';
2
- import { generateKeyBetween } from "fractional-indexing";
3
- import { ColumnOrderManager } from "./column-order-manager";
4
- class ColumnRef {
5
- column;
6
- position;
7
- constructor(column, position) {
8
- this.column = column;
9
- this.position = position;
10
- }
11
- }
12
- export class ColumnManager extends GarbageCollector {
13
- _columnRefs$ = new MutableListModel();
14
- orderedColumnRefs$;
15
- _columnsById$;
16
- allColumns$;
17
- columnVisibilities$ = new WatchList();
18
- visibleColumns$;
19
- constructor() {
20
- super();
21
- const { chain } = Dsl.disposeWith(this);
22
- this.orderedColumnRefs$ = chain(this._columnRefs$).orderBy("position", "asc");
23
- this.allColumns$ = this.orderedColumnRefs$.pluck("column");
24
- this._columnsById$ = chain(this.allColumns$).indexBy('columnId');
25
- this.visibleColumns$ = chain(this.allColumns$).select(it => it.visible$.value, {
26
- dependsOn: this.columnVisibilities$
27
- });
28
- }
29
- position(column, newPosition) {
30
- const target = this._columnRefs$.query().findMatching(it => it.column === column);
31
- const position = this.computePosition(newPosition);
32
- this._columnRefs$.replace(target, { with: new ColumnRef(target.column, position) });
33
- }
34
- getColumn(id) {
35
- return this._columnsById$.get(id);
36
- }
37
- hasColumn(id) {
38
- return !!this._columnsById$.get(id);
39
- }
40
- hasMatchingColumn(row, regex) {
41
- // only search the visible columns
42
- return !!this.visibleColumns$.value.find(c => regex.test(c.getSearchTextFor(row)));
43
- }
44
- addColumn(column, position) {
45
- if (this.hasColumn(column.columnId)) {
46
- lang.illegalState(`Column with id=${column.columnId} already exists`);
47
- }
48
- this.registerDisposable(column);
49
- this._columnRefs$.push(new ColumnRef(column, this.computePosition(position)));
50
- this.columnVisibilities$.add(column.visible$);
51
- return column;
52
- }
53
- computePosition(position) {
54
- const q = this.orderedColumnRefs$.query();
55
- return ColumnOrderManager.processPosition(position, {
56
- before(col) {
57
- const index = q.findIndex(ref => ref.column === col);
58
- const beforeCol = q.value[index];
59
- const afterCol = index - 1 >= 0 ? q.value[index - 1] : undefined;
60
- return generateKeyBetween(afterCol?.position, beforeCol.position);
61
- },
62
- after(col) {
63
- const index = q.findIndex(ref => ref.column === col);
64
- const afterCol = q.value[index];
65
- const beforeCol = index + 1 < q.length ? q.value[index + 1] : undefined;
66
- return generateKeyBetween(afterCol.position, beforeCol?.position);
67
- },
68
- first() {
69
- return generateKeyBetween(null, q.first()?.position);
70
- },
71
- last() {
72
- // add it to the end of the list
73
- return generateKeyBetween(q.last()?.position, null);
74
- }
75
- });
76
- }
77
- doComputeValue() {
78
- return this.allColumns$.value.filter(c => c.visible$.value);
79
- }
80
- }
81
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1uLW1hbmFnZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdWktcG93ZXJ1cHMvc3JjL2xpYi9jb21wb25lbnRzL3RhYmxlcy9jb2x1bW4vY29sdW1uLW1hbmFnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLEdBQUcsRUFDSCxnQkFBZ0IsRUFDaEIsSUFBSSxFQUlKLGdCQUFnQixFQUNoQixTQUFTLEVBQ1YsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUV2RCxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUUxRCxNQUFNLFNBQVM7SUFDUTtJQUFtQztJQUF4RCxZQUFxQixNQUF3QixFQUFXLFFBQWdCO1FBQW5ELFdBQU0sR0FBTixNQUFNLENBQWtCO1FBQVcsYUFBUSxHQUFSLFFBQVEsQ0FBUTtJQUN4RSxDQUFDO0NBQ0Y7QUFFRCxNQUFNLE9BQU8sYUFBa0MsU0FBUSxnQkFBZ0I7SUFFcEQsWUFBWSxHQUFHLElBQUksZ0JBQWdCLEVBQWtCLENBQUM7SUFDdEQsa0JBQWtCLENBQWlDO0lBQ25ELGFBQWEsQ0FBMEM7SUFDL0QsV0FBVyxDQUE4QjtJQUN6QyxtQkFBbUIsR0FBRyxJQUFJLFNBQVMsRUFBVyxDQUFBO0lBQzlDLGVBQWUsQ0FBOEI7SUFFdEQ7UUFDRSxLQUFLLEVBQUUsQ0FBQztRQUNSLE1BQU0sRUFBQyxLQUFLLEVBQUMsR0FBRyxHQUFHLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3RDLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDOUUsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMs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bnRlbnQiOlsiaW1wb3J0IHtcbiAgRHNsLFxuICBHYXJiYWdlQ29sbGVjdG9yLFxuICBsYW5nLFxuICBMaXN0TW9kZWwsXG4gIExpc3RNb2RlbENoYWluLFxuICBNYXBNb2RlbENoYWluLFxuICBNdXRhYmxlTGlzdE1vZGVsLFxuICBXYXRjaExpc3Rcbn0gZnJvbSAnQGNvb2xvbi9wZWN0aW4nO1xuaW1wb3J0IHtnZW5lcmF0ZUtleUJldHdlZW59IGZyb20gXCJmcmFjdGlvbmFsLWluZGV4aW5nXCI7XG5pbXBvcnQge0NvbHVtbk1vZGVsfSBmcm9tICcuL2NvbHVtbi1tb2RlbCc7XG5pbXBvcnQge0NvbHVtbk9yZGVyTWFuYWdlcn0gZnJvbSBcIi4vY29sdW1uLW9yZGVyLW1hbmFnZXJcIjtcblxuY2xhc3MgQ29sdW1uUmVmPFJvdyBleHRlbmRzIG9iamVjdD4ge1xuICBjb25zdHJ1Y3RvcihyZWFkb25seSBjb2x1bW46IENvbHVtbk1vZGVsPFJvdz4sIHJlYWRvbmx5IHBvc2l0aW9uOiBzdHJpbmcpIHtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgQ29sdW1uTWFuYWdlcjxSb3cgZXh0ZW5kcyBvYmplY3Q+IGV4dGVuZHMgR2FyYmFnZUNvbGxlY3RvciBpbXBsZW1lbnRzIENvbHVtbk9yZGVyTWFuYWdlciB7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfY29sdW1uUmVmcyQgPSBuZXcgTXV0YWJsZUxpc3RNb2RlbDxDb2x1bW5SZWY8Um93Pj4oKTtcbiAgcHJpdmF0ZSByZWFkb25seSBvcmRlcmVkQ29sdW1uUmVmcyQ6IExpc3RNb2RlbENoYWluPENvbHVtblJlZjxSb3c+PjtcbiAgcHJpdmF0ZSByZWFkb25seSBfY29sdW1uc0J5SWQkOiBNYXBNb2RlbENoYWluPHN0cmluZywgQ29sdW1uTW9kZWw8Um93Pj47XG4gIHJlYWRvbmx5IGFsbENvbHVtbnMkOiBMaXN0TW9kZWw8Q29sdW1uTW9kZWw8Um93Pj47XG4gIHJlYWRvbmx5IGNvbHVtblZpc2liaWxpdGllcyQgPSBuZXcgV2F0Y2hMaXN0PGJvb2xlYW4+KClcbiAgcmVhZG9ubHkgdmlzaWJsZUNvbHVtbnMkOiBMaXN0TW9kZWw8Q29sdW1uTW9kZWw8Um93Pj47XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICBjb25zdCB7Y2hhaW59ID0gRHNsLmRpc3Bvc2VXaXRoKHRoaXMpO1xuICAgIHRoaXMub3JkZXJlZENvbHVtblJlZnMkID0gY2hhaW4odGhpcy5fY29sdW1uUmVmcyQpLm9yZGVyQnkoXCJwb3NpdGlvblwiLCBcImFzY1wiKTtcbiAgICB0aGlzLmFsbENvbHVtbnMkID0gdGhpcy5vcmRlcmVkQ29sdW1uUmVmcyQucGx1Y2soXCJjb2x1bW5cIik7XG5cbiAgICB0aGlzLl9jb2x1bW5zQnlJZCQgPSBjaGFpbih0aGlzLmFsbENvbHVtbnMkKS5pbmRleEJ5KCdjb2x1bW5JZCcpO1xuICAgIHRoaXMudmlzaWJsZUNvbHVtbnMkID0gY2hhaW4odGhpcy5hbGxDb2x1bW5zJCkuc2VsZWN0KGl0ID0+IGl0LnZpc2libGUkLnZhbHVlLCB7XG4gICAgICBkZXBlbmRzT246IHRoaXMuY29sdW1uVmlzaWJpbGl0aWVzJFxuICAgIH0pXG4gIH1cblxuICBwb3NpdGlvbihjb2x1bW46IENvbHVtbk1vZGVsPGFueT4sIG5ld1Bvc2l0aW9uOiBDb2x1bW5PcmRlck1hbmFnZXIuUG9zaXRpb24pIHtcbiAgICBjb25zdCB0YXJnZXQgPSB0aGlzLl9jb2x1bW5SZWZzJC5xdWVyeSgpLmZpbmRNYXRjaGluZyhpdCA9PiBpdC5jb2x1bW4gPT09IGNvbHVtbilcbiAgICBjb25zdCBwb3NpdGlvbiA9IHRoaXMuY29tcHV0ZVBvc2l0aW9uKG5ld1Bvc2l0aW9uKTtcbiAgICB0aGlzLl9jb2x1bW5SZWZzJC5yZXBsYWNlKHRhcmdldCwge3dpdGg6IG5ldyBDb2x1bW5SZWY8Um93Pih0YXJnZXQuY29sdW1uLCBwb3NpdGlvbil9KTtcbiAgfVxuXG4gIGdldENvbHVtbihpZDogc3RyaW5nKTogQ29sdW1uTW9kZWw8Um93PiB7XG4gICAgcmV0dXJuIHRoaXMuX2NvbHVtbnNCeUlkJC5nZXQoaWQpO1xuICB9XG5cbiAgaGFzQ29sdW1uKGlkOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLl9jb2x1bW5zQnlJZCQuZ2V0KGlkKTtcbiAgfVxuXG4gIGhhc01hdGNoaW5nQ29sdW1uKHJvdzogUm93LCByZWdleDogUmVnRXhwKTogYm9vbGVhbiB7XG4gICAgLy8gb25seSBzZWFyY2ggdGhlIHZpc2libGUgY29sdW1uc1xuICAgIHJldHVybiAhIXRoaXMudmlzaWJsZUNvbHVtbnMkLnZhbHVlLmZpbmQoYyA9PiByZWdleC50ZXN0KGMuZ2V0U2VhcmNoVGV4dEZvcihyb3cpKSk7XG4gIH1cblxuICBhZGRDb2x1bW48QyBleHRlbmRzIENvbHVtbk1vZGVsPFJvdz4+KGNvbHVtbjogQywgcG9zaXRpb24/OiBDb2x1bW5PcmRlck1hbmFnZXIuUG9zaXRpb24pOiBDIHtcbiAgICBpZiAodGhpcy5oYXNDb2x1bW4oY29sdW1uLmNvbHVtbklkKSkge1xuICAgICAgbGFuZy5pbGxlZ2FsU3RhdGUoYENvbHVtbiB3aXRoIGlkPSR7Y29sdW1uLmNvbHVtbklkfSBhbHJlYWR5IGV4aXN0c2ApO1xuICAgIH1cbiAgICB0aGlzLnJlZ2lzdGVyRGlzcG9zYWJsZShjb2x1bW4pO1xuICAgIHRoaXMuX2NvbHVtblJlZnMkLnB1c2gobmV3IENvbHVtblJlZjxSb3c+KGNvbHVtbiwgdGhpcy5jb21wdXRlUG9zaXRpb24ocG9zaXRpb24pKSk7XG4gICAgdGhpcy5jb2x1bW5WaXNpYmlsaXRpZXMkLmFkZChjb2x1bW4udmlzaWJsZSQpO1xuICAgIHJldHVybiBjb2x1bW47XG4gIH1cblxuICBjb21wdXRlUG9zaXRpb24ocG9zaXRpb24/OiBDb2x1bW5PcmRlck1hbmFnZXIuUG9zaXRpb24pOiBzdHJpbmcge1xuICAgIGNvbnN0IHEgPSB0aGlzLm9yZGVyZWRDb2x1bW5SZWZzJC5xdWVyeSgpO1xuICAgIHJldHVybiBDb2x1bW5PcmRlck1hbmFnZXIucHJvY2Vzc1Bvc2l0aW9uKHBvc2l0aW9uLCB7XG4gICAgICBiZWZvcmUoY29sOiBDb2x1bW5Nb2RlbDxhbnk+KTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgaW5kZXggPSBxLmZpbmRJbmRleChyZWYgPT4gcmVmLmNvbHVtbiA9PT0gY29sKVxuICAgICAgICBjb25zdCBiZWZvcmVDb2wgPSBxLnZhbHVlW2luZGV4XTtcbiAgICAgICAgY29uc3QgYWZ0ZXJDb2wgPSBpbmRleCAtIDEgPj0gMCA/IHEudmFsdWVbaW5kZXggLSAxXSA6IHVuZGVmaW5lZDtcbiAgICAgICAgcmV0dXJuIGdlbmVyYXRlS2V5QmV0d2VlbihhZnRlckNvbD8ucG9zaXRpb24sIGJlZm9yZUNvbC5wb3NpdGlvbik7XG4gICAgICB9LFxuICAgICAgYWZ0ZXIoY29sOiBDb2x1bW5Nb2RlbDxhbnk+KTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgaW5kZXggPSBxLmZpbmRJbmRleChyZWYgPT4gcmVmLmNvbHVtbiA9PT0gY29sKVxuICAgICAgICBjb25zdCBhZnRlckNvbCA9IHEudmFsdWVbaW5kZXhdO1xuICAgICAgICBjb25zdCBiZWZvcmVDb2wgPSBpbmRleCArIDEgPCBxLmxlbmd0aCA/IHEudmFsdWVbaW5kZXggKyAxXSA6IHVuZGVmaW5lZDtcbiAgICAgICAgcmV0dXJuIGdlbmVyYXRlS2V5QmV0d2VlbihhZnRlckNvbC5wb3NpdGlvbiwgYmVmb3JlQ29sPy5wb3NpdGlvbilcbiAgICAgIH0sXG4gICAgICBmaXJzdCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gZ2VuZXJhdGVLZXlCZXR3ZWVuKG51bGwsIHEuZmlyc3QoKT8ucG9zaXRpb24pO1xuICAgICAgfSxcbiAgICAgIGxhc3QoKSB7XG4gICAgICAgIC8vIGFkZCBpdCB0byB0aGUgZW5kIG9mIHRoZSBsaXN0XG4gICAgICAgIHJldHVybiBnZW5lcmF0ZUtleUJldHdlZW4ocS5sYXN0KCk/LnBvc2l0aW9uLCBudWxsKTtcbiAgICAgIH1cbiAgICB9KVxuICB9XG5cblxuICBkb0NvbXB1dGVWYWx1ZSgpOiBDb2x1bW5Nb2RlbDxSb3c+W10ge1xuICAgIHJldHVybiB0aGlzLmFsbENvbHVtbnMkLnZhbHVlLmZpbHRlcihjID0+IGMudmlzaWJsZSQudmFsdWUpO1xuICB9XG59XG4iXX0=