@coolon/angular-ui-powerups 16.1.0-alpha.238 → 16.1.0-aplpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (400) hide show
  1. package/assets/activities/activities.scss +6 -8
  2. package/assets/activities/input-activities.scss +6 -14
  3. package/assets/form.scss +23 -77
  4. package/assets/icons.scss +1 -2
  5. package/assets/interaction/editor/inline-string-editor.scss +0 -4
  6. package/assets/interaction.scss +1 -1
  7. package/assets/styles.scss +0 -4
  8. package/assets/table.scss +31 -84
  9. package/assets/tabs.scss +2 -15
  10. package/esm2022/lib/angular-ui-powerups.module.mjs +9 -9
  11. package/esm2022/lib/animations/slide-animations.mjs +10 -15
  12. package/esm2022/lib/components/alignment.mjs +1 -1
  13. package/esm2022/lib/components/busy-overlay/busy-overlay.component.mjs +12 -7
  14. package/esm2022/lib/components/cards/abstract-card-container.component.mjs +7 -31
  15. package/esm2022/lib/components/cards/card-container/card-container.component.mjs +6 -6
  16. package/esm2022/lib/components/cards/card-stack/card-stack.component.mjs +81 -0
  17. package/esm2022/lib/components/commands/command/command.component.mjs +33 -35
  18. package/esm2022/lib/components/commands/command-face/command-face.component.mjs +5 -13
  19. package/esm2022/lib/components/commands/command-face.mjs +11 -12
  20. package/esm2022/lib/components/commands/flex.component.mjs +4 -4
  21. package/esm2022/lib/components/commands/group/command-container.mjs +1 -1
  22. package/esm2022/lib/components/commands/group/popup-aware.component.mjs +8 -31
  23. package/esm2022/lib/components/commands/group/popup-container.mjs +1 -1
  24. package/esm2022/lib/components/commands/group/popup-menu/abstract-popup-menu.component.mjs +25 -27
  25. package/esm2022/lib/components/commands/group/popup-menu/more-menu.component.mjs +24 -15
  26. package/esm2022/lib/components/commands/group/popup-menu/popup-menu-renderer/popup-menu-renderer.component.mjs +12 -18
  27. package/esm2022/lib/components/commands/group/popup-menu/popup-menu.component.mjs +23 -14
  28. package/esm2022/lib/components/commands/group/tool-bar/tool-bar.component.mjs +19 -12
  29. package/esm2022/lib/components/commands/separator.component.mjs +14 -8
  30. package/esm2022/lib/components/components.module.mjs +58 -73
  31. package/esm2022/lib/components/disposable-component.mjs +40 -74
  32. package/esm2022/lib/components/empty-state/empty-state.component.mjs +9 -5
  33. package/esm2022/lib/components/exports.mjs +12 -16
  34. package/esm2022/lib/components/focus-container/focus-container.component.mjs +4 -4
  35. package/esm2022/lib/components/focusable.component.mjs +5 -5
  36. package/esm2022/lib/components/forms/abstract-input.component.mjs +18 -67
  37. package/esm2022/lib/components/forms/abstract-list-input.component.mjs +4 -4
  38. package/esm2022/lib/components/forms/abstract-value-input.component.mjs +4 -4
  39. package/esm2022/lib/components/forms/autocomplete-input/autocomplete-input.component.mjs +15 -18
  40. package/esm2022/lib/components/forms/checkbox-input/checkbox-input.component.mjs +8 -10
  41. package/esm2022/lib/components/forms/multiple-select-input/multiple-select-input.component.mjs +11 -12
  42. package/esm2022/lib/components/forms/number-input/number-input.component.mjs +13 -94
  43. package/esm2022/lib/components/forms/password-input/password-input.component.mjs +7 -44
  44. package/esm2022/lib/components/forms/select-input/select-input.component.mjs +19 -21
  45. package/esm2022/lib/components/forms/string-input/string-input.component.mjs +16 -35
  46. package/esm2022/lib/components/forms/text-input/text-input.component.mjs +8 -12
  47. package/esm2022/lib/components/icon/icon.component.mjs +7 -10
  48. package/esm2022/lib/components/labelled-value/labelled-value.component.mjs +4 -4
  49. package/esm2022/lib/components/loading-container/loading-container.component.mjs +12 -7
  50. package/esm2022/lib/components/noop/noop.component.mjs +7 -5
  51. package/esm2022/lib/components/resize-aware.component.mjs +27 -64
  52. package/esm2022/lib/components/scroll-container/scroll-container.component.mjs +5 -5
  53. package/esm2022/lib/components/section-header/section-header.component.mjs +4 -4
  54. package/esm2022/lib/components/switch-case/switch-case.component.mjs +17 -15
  55. package/esm2022/lib/components/tables/abstract-table-model.mjs +113 -116
  56. package/esm2022/lib/components/tables/abstract-table.component.mjs +8 -23
  57. package/esm2022/lib/components/tables/column/column-list-model.mjs +44 -0
  58. package/esm2022/lib/components/tables/column/column-model.mjs +23 -20
  59. package/esm2022/lib/components/tables/column/column-template/column-template.directive.mjs +4 -5
  60. package/esm2022/lib/components/tables/column/custom-template-column-model.mjs +3 -4
  61. package/esm2022/lib/components/tables/column/custom-value-column-model.mjs +5 -5
  62. package/esm2022/lib/components/tables/column/editor-controls-column-model.mjs +21 -0
  63. package/esm2022/lib/components/tables/column/list-propery-column-model.mjs +21 -8
  64. package/esm2022/lib/components/tables/column/property-column-model.mjs +20 -7
  65. package/esm2022/lib/components/tables/column/selection-column-model.mjs +13 -35
  66. package/esm2022/lib/components/tables/editor/edit-row-controls/edit-row-controls.component.mjs +60 -0
  67. package/esm2022/lib/components/tables/editor/edit-session.mjs +26 -0
  68. package/esm2022/lib/components/tables/editor/editable-cell-renderer.mjs +2 -0
  69. package/esm2022/lib/components/tables/filter/column-text-search-formatter.mjs +1 -1
  70. package/esm2022/lib/components/tables/filter/enable-cell-text-search.decorator.mjs +2 -3
  71. package/esm2022/lib/components/tables/filter/table-filter-model.mjs +12 -16
  72. package/esm2022/lib/components/tables/filter/text-search-predicate.mjs +2 -17
  73. package/esm2022/lib/components/tables/paginator/paginator.component.mjs +5 -5
  74. package/esm2022/lib/components/tables/renderer/cell-editors.mjs +2 -0
  75. package/esm2022/lib/components/tables/renderer/cell-portal-ref.mjs +26 -22
  76. package/esm2022/lib/components/tables/renderer/default-cell-renderer/default-cell-renderer.component.mjs +8 -6
  77. package/esm2022/lib/components/tables/renderer/default-header-cell-renderer/default-header-cell-renderer.component.mjs +7 -5
  78. package/esm2022/lib/components/tables/renderer/select-header-cell/selection-header-cell.component.mjs +8 -19
  79. package/esm2022/lib/components/tables/renderer/selection-cell/selection-cell.component.mjs +9 -18
  80. package/esm2022/lib/components/tables/renderer/table-body/table-body.component.mjs +53 -266
  81. package/esm2022/lib/components/tables/renderer/table-cell/table-cell.component.mjs +50 -9
  82. package/esm2022/lib/components/tables/renderer/table-header-cell/table-header-cell.component.mjs +7 -5
  83. package/esm2022/lib/components/tables/renderer/table-more-menu/table-more-menu-popup/table-more-menu-popup.component.mjs +33 -0
  84. package/esm2022/lib/components/tables/renderer/table-more-menu/table-more-menu.component.mjs +60 -0
  85. package/esm2022/lib/components/tables/table/table-model.mjs +35 -18
  86. package/esm2022/lib/components/tables/table/table.component.mjs +64 -42
  87. package/esm2022/lib/components/tables/table-row-menu/table-row-menu.component.mjs +84 -0
  88. package/esm2022/lib/components/tables/tree-table/decorated-tree-node.mjs +4 -5
  89. package/esm2022/lib/components/tables/tree-table/flattened-tree-list-model.mjs +1 -1
  90. package/esm2022/lib/components/tables/tree-table/tree-expansion-model.mjs +1 -1
  91. package/esm2022/lib/components/tables/tree-table/tree-inheritance-icon/tree-inheritance-icon.component.mjs +7 -5
  92. package/esm2022/lib/components/tables/tree-table/tree-label-cell-renderer/tree-label-cell-renderer.component.mjs +6 -6
  93. package/esm2022/lib/components/tables/tree-table/tree-label-column-model.mjs +4 -4
  94. package/esm2022/lib/components/tables/tree-table/tree-table-component.mjs +8 -15
  95. package/esm2022/lib/components/tables/tree-table/tree-table-model.mjs +7 -4
  96. package/esm2022/lib/components/text/markdown/markdown.component.mjs +6 -6
  97. package/esm2022/lib/components/track.mjs +1 -1
  98. package/esm2022/lib/components/types/bounds.class.mjs +1 -1
  99. package/esm2022/lib/components/types/loadable.mjs +2 -0
  100. package/esm2022/lib/components/vertical-focus-container/vertical-focus-container.component.mjs +4 -4
  101. package/esm2022/lib/directives/command.directive.mjs +14 -26
  102. package/esm2022/lib/directives/directives.module.mjs +10 -10
  103. package/esm2022/lib/directives/exports.mjs +1 -2
  104. package/esm2022/lib/directives/focus-binding-factory.mjs +4 -5
  105. package/esm2022/lib/directives/focus-binding.directive.mjs +5 -5
  106. package/esm2022/lib/directives/focus-binding.mjs +2 -22
  107. package/esm2022/lib/directives/garbage-collector.directive.mjs +4 -5
  108. package/esm2022/lib/directives/highlight-text-model.directive.mjs +4 -4
  109. package/esm2022/lib/directives/highlight.pipe.mjs +13 -22
  110. package/esm2022/lib/interaction/abstract-interaction-context.mjs +8 -6
  111. package/esm2022/lib/interaction/activity-ref.mjs +2 -2
  112. package/esm2022/lib/interaction/activity.mjs +23 -24
  113. package/esm2022/lib/interaction/alert.mjs +2 -2
  114. package/esm2022/lib/interaction/components/abstract-confirm-dialog.component.mjs +10 -14
  115. package/esm2022/lib/interaction/components/abstract-dialog.component.mjs +45 -5
  116. package/esm2022/lib/interaction/components/activity-actions/activity-actions.component.mjs +17 -30
  117. package/esm2022/lib/interaction/components/activity-body/activity-body.component.mjs +4 -10
  118. package/esm2022/lib/interaction/components/activity-container/activity-container.component.mjs +25 -119
  119. package/esm2022/lib/interaction/components/activity-container/activity-outlet/activity-outlet.component.mjs +19 -55
  120. package/esm2022/lib/interaction/components/activity-title/activity-title.component.mjs +6 -6
  121. package/esm2022/lib/interaction/components/activity-triggers/abstract-activity-trigger.component.mjs +4 -5
  122. package/esm2022/lib/interaction/components/activity-triggers/inline-activity-trigger/inline-activity-trigger.component.mjs +4 -5
  123. package/esm2022/lib/interaction/components/activity-triggers/modal-activity-trigger/modal-activity-trigger.component.mjs +4 -5
  124. package/esm2022/lib/interaction/components/activity-triggers/popup-activity-trigger/popup-activity-trigger.component.mjs +4 -5
  125. package/esm2022/lib/interaction/components/add-card-activity/add-card-activity.component.mjs +4 -4
  126. package/esm2022/lib/interaction/components/add-item-interaction-context/add-item-interaction-context.component.mjs +4 -5
  127. package/esm2022/lib/interaction/components/alert-dialog/alert-dialog.component.mjs +12 -12
  128. package/esm2022/lib/interaction/components/confirm-then-dialog/confirm-then-dialog.component.mjs +10 -6
  129. package/esm2022/lib/interaction/components/confirm-then-execute-dialog/confirm-then-execute-dialog.component.mjs +10 -6
  130. package/esm2022/lib/interaction/components/confirmation-dialog/confirmation-dialog.component.mjs +11 -9
  131. package/esm2022/lib/interaction/components/editors/edit-context.mjs +1 -1
  132. package/esm2022/lib/interaction/components/editors/inline-string-editor/inline-editor-model.mjs +2 -2
  133. package/esm2022/lib/interaction/components/editors/inline-string-editor/inline-string-editor.component.mjs +13 -13
  134. package/esm2022/lib/interaction/components/inplace-interaction-context/in-place-interaction-context.component.mjs +9 -25
  135. package/esm2022/lib/interaction/components/input-activities/input-activity.mjs +5 -6
  136. package/esm2022/lib/interaction/components/input-activities/select-input-activity.mjs +38 -44
  137. package/esm2022/lib/interaction/components/input-activities/string-input-activity.mjs +12 -14
  138. package/esm2022/lib/interaction/components/popup-interaction-context/popup-interaction-context.component.mjs +5 -6
  139. package/esm2022/lib/interaction/confirm.mjs +2 -26
  140. package/esm2022/lib/interaction/directives/interaction-context-trigger-for.directive.mjs +6 -6
  141. package/esm2022/lib/interaction/exports.mjs +1 -6
  142. package/esm2022/lib/interaction/in-place-interaction-context.mjs +1 -1
  143. package/esm2022/lib/interaction/interaction-context.mjs +2 -3
  144. package/esm2022/lib/interaction/interaction.module.mjs +36 -44
  145. package/esm2022/lib/interaction/route-synchronisation-adapter.mjs +1 -1
  146. package/esm2022/lib/interaction/services/interaction-service-routing-adapter.mjs +4 -4
  147. package/esm2022/lib/interaction/services/interaction.service.mjs +10 -23
  148. package/esm2022/lib/interaction/services/mat-dialog-interaction/dialog-interaction-context-factory.mjs +10 -16
  149. package/esm2022/lib/interaction/services/mat-dialog-interaction/dialog-interaction-context.mjs +5 -29
  150. package/esm2022/lib/interaction/services/modal-interaction-context.factory.mjs +1 -1
  151. package/esm2022/lib/place/components/abstract-place-navigation.component.mjs +5 -15
  152. package/esm2022/lib/place/components/list-place-nav/list-place-nav.component.mjs +9 -8
  153. package/esm2022/lib/place/components/not-authorised-notice/not-authorised-notice.component.mjs +7 -5
  154. package/esm2022/lib/place/components/place-outlet/place-outlet.component.mjs +21 -23
  155. package/esm2022/lib/place/components/place-outlet/route-animations.mjs +1 -1
  156. package/esm2022/lib/place/components/side-place-navigation/side-place-navigation.component.mjs +11 -19
  157. package/esm2022/lib/place/components/tabbed-place-navigation/tabbed-place-navigation.component.mjs +7 -7
  158. package/esm2022/lib/place/guards/consolidated-param-map.mjs +4 -4
  159. package/esm2022/lib/place/guards/noop-auth-guard.service.mjs +7 -5
  160. package/esm2022/lib/place/guards/place.guard.mjs +14 -30
  161. package/esm2022/lib/place/navigation/place-component-deactivation-handler.mjs +2 -2
  162. package/esm2022/lib/place/navigation/session/abstract-pop-state-navigation.mjs +1 -1
  163. package/esm2022/lib/place/navigation/session/event-cleanup/event-clean-up-session.mjs +1 -1
  164. package/esm2022/lib/place/navigation/session/event-cleanup/wait-until-leaving-interaction-transition-cancelled.mjs +1 -1
  165. package/esm2022/lib/place/navigation/session/event-cleanup/wait-until-link-triggered-navigation-interaction-cancelation-type-determined.mjs +1 -1
  166. package/esm2022/lib/place/navigation/session/event-cleanup/wait-until-popstate-during-can-deactivate-transition-finishes.mjs +1 -1
  167. package/esm2022/lib/place/navigation/session/interactions/navigating-during-interaction.mjs +2 -2
  168. package/esm2022/lib/place/navigation/session/interactions/pop-state-during-interaction-navigation.mjs +1 -1
  169. package/esm2022/lib/place/navigation/session/interactions/remove-last-interaction-from-url-navigation-session.mjs +4 -39
  170. package/esm2022/lib/place/navigation/session/interactions/synchronise-interaction-context-ids-with-route.mjs +9 -9
  171. package/esm2022/lib/place/navigation/session/navigating.mjs +2 -2
  172. package/esm2022/lib/place/navigation/session/navigation-context.mjs +1 -1
  173. package/esm2022/lib/place/navigation/session/navigation-session.mjs +2 -11
  174. package/esm2022/lib/place/navigation/session/pop-state-navigation.mjs +1 -1
  175. package/esm2022/lib/place/place-access-guard.mjs +1 -1
  176. package/esm2022/lib/place/place-auth-service.mjs +7 -8
  177. package/esm2022/lib/place/place-component.mjs +79 -82
  178. package/esm2022/lib/place/place-config.mjs +1 -1
  179. package/esm2022/lib/place/place-definition.mjs +5 -18
  180. package/esm2022/lib/place/place-history.mjs +8 -17
  181. package/esm2022/lib/place/place-router.mjs +70 -191
  182. package/esm2022/lib/place/place.decorator.mjs +3 -4
  183. package/esm2022/lib/place/place.module.mjs +17 -17
  184. package/esm2022/lib/place/route/formatter.mjs +2 -2
  185. package/esm2022/lib/place/route/json-types.mjs +1 -1
  186. package/esm2022/lib/place/route/parameter-decorators.mjs +51 -55
  187. package/esm2022/lib/place/route/parameter-definition.mjs +2 -6
  188. package/esm2022/lib/place/route/parameter-sanitiser.mjs +2 -7
  189. package/esm2022/lib/place/route/parameter-snapshot.mjs +1 -1
  190. package/esm2022/lib/place/route/visit-segment-sanitiser.mjs +1 -1
  191. package/esm2022/lib/place/url-service.mjs +4 -4
  192. package/esm2022/lib/place/url-snapshot.mjs +3 -3
  193. package/esm2022/lib/place/visit-segment.mjs +2 -3
  194. package/esm2022/lib/place/visit.mjs +5 -5
  195. package/esm2022/lib/services/markdown/markdown.service.mjs +7 -5
  196. package/esm2022/lib/services/markdown/pill-plugin.mjs +3 -1
  197. package/esm2022/lib/services/visibility-service.mjs +7 -7
  198. package/fesm2022/coolon-angular-ui-powerups.mjs +3634 -5281
  199. package/fesm2022/coolon-angular-ui-powerups.mjs.map +1 -1
  200. package/lib/angular-ui-powerups.module.d.ts +5 -5
  201. package/lib/animations/slide-animations.d.ts +0 -1
  202. package/lib/components/busy-overlay/busy-overlay.component.d.ts +4 -1
  203. package/lib/components/cards/abstract-card-container.component.d.ts +3 -6
  204. package/lib/components/cards/card-container/card-container.component.d.ts +1 -1
  205. package/lib/components/cards/card-stack/card-stack.component.d.ts +68 -0
  206. package/lib/components/commands/command/command.component.d.ts +10 -9
  207. package/lib/components/commands/command-face/command-face.component.d.ts +0 -2
  208. package/lib/components/commands/command-face.d.ts +9 -8
  209. package/lib/components/commands/group/popup-aware.component.d.ts +5 -10
  210. package/lib/components/commands/group/popup-container.d.ts +1 -1
  211. package/lib/components/commands/group/popup-menu/abstract-popup-menu.component.d.ts +6 -6
  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 +2 -4
  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 +30 -33
  218. package/lib/components/disposable-component.d.ts +9 -26
  219. package/lib/components/empty-state/empty-state.component.d.ts +4 -1
  220. package/lib/components/exports.d.ts +11 -15
  221. package/lib/components/forms/abstract-input.component.d.ts +7 -16
  222. package/lib/components/forms/abstract-list-input.component.d.ts +1 -1
  223. package/lib/components/forms/abstract-value-input.component.d.ts +1 -1
  224. package/lib/components/forms/autocomplete-input/autocomplete-input.component.d.ts +2 -2
  225. package/lib/components/forms/checkbox-input/checkbox-input.component.d.ts +0 -2
  226. package/lib/components/forms/number-input/number-input.component.d.ts +4 -16
  227. package/lib/components/forms/password-input/password-input.component.d.ts +1 -7
  228. package/lib/components/forms/select-input/select-input.component.d.ts +3 -4
  229. package/lib/components/forms/string-input/string-input.component.d.ts +1 -7
  230. package/lib/components/forms/text-input/text-input.component.d.ts +0 -3
  231. package/lib/components/loading-container/loading-container.component.d.ts +4 -1
  232. package/lib/components/noop/noop.component.d.ts +1 -0
  233. package/lib/components/resize-aware.component.d.ts +7 -26
  234. package/lib/components/switch-case/switch-case.component.d.ts +7 -6
  235. package/lib/components/tables/abstract-table-model.d.ts +37 -51
  236. package/lib/components/tables/abstract-table.component.d.ts +7 -8
  237. package/lib/components/tables/column/column-list-model.d.ts +13 -0
  238. package/lib/components/tables/column/column-model.d.ts +17 -14
  239. package/lib/components/tables/column/custom-template-column-model.d.ts +2 -3
  240. package/lib/components/tables/column/custom-value-column-model.d.ts +3 -4
  241. package/lib/components/tables/column/editor-controls-column-model.d.ts +13 -0
  242. package/lib/components/tables/column/list-propery-column-model.d.ts +7 -5
  243. package/lib/components/tables/column/property-column-model.d.ts +9 -7
  244. package/lib/components/tables/column/selection-column-model.d.ts +4 -10
  245. package/lib/components/tables/editor/edit-row-controls/edit-row-controls.component.d.ts +17 -0
  246. package/lib/components/tables/editor/edit-session.d.ts +9 -0
  247. package/lib/components/tables/{renderer → editor}/editable-cell-renderer.d.ts +1 -1
  248. package/lib/components/tables/filter/enable-cell-text-search.decorator.d.ts +1 -1
  249. package/lib/components/tables/filter/table-filter-model.d.ts +1 -1
  250. package/lib/components/tables/filter/text-search-predicate.d.ts +0 -9
  251. package/lib/components/tables/renderer/cell-editors.d.ts +9 -0
  252. package/lib/components/tables/renderer/cell-portal-ref.d.ts +25 -22
  253. package/lib/components/tables/renderer/default-cell-renderer/default-cell-renderer.component.d.ts +2 -1
  254. package/lib/components/tables/renderer/default-header-cell-renderer/default-header-cell-renderer.component.d.ts +1 -0
  255. package/lib/components/tables/renderer/select-header-cell/selection-header-cell.component.d.ts +2 -3
  256. package/lib/components/tables/renderer/selection-cell/selection-cell.component.d.ts +0 -1
  257. package/lib/components/tables/renderer/table-body/table-body.component.d.ts +21 -55
  258. package/lib/components/tables/renderer/table-cell/table-cell.component.d.ts +14 -5
  259. package/lib/components/tables/renderer/table-header-cell/table-header-cell.component.d.ts +1 -0
  260. package/lib/components/tables/renderer/table-more-menu/table-more-menu-popup/table-more-menu-popup.component.d.ts +15 -0
  261. package/lib/components/tables/renderer/table-more-menu/table-more-menu.component.d.ts +23 -0
  262. package/lib/components/tables/table/table-model.d.ts +36 -10
  263. package/lib/components/tables/table/table.component.d.ts +13 -17
  264. package/lib/components/tables/table-row-menu/table-row-menu.component.d.ts +28 -0
  265. package/lib/components/tables/tree-table/flattened-tree-list-model.d.ts +1 -1
  266. package/lib/components/tables/tree-table/tree-expansion-model.d.ts +2 -2
  267. package/lib/components/tables/tree-table/tree-inheritance-icon/tree-inheritance-icon.component.d.ts +1 -0
  268. package/lib/components/tables/tree-table/tree-label-cell-renderer/tree-label-cell-renderer.component.d.ts +3 -3
  269. package/lib/components/tables/tree-table/tree-label-column-model.d.ts +3 -4
  270. package/lib/components/tables/tree-table/tree-table-component.d.ts +3 -6
  271. package/lib/components/tables/tree-table/tree-table-model.d.ts +6 -5
  272. package/lib/components/text/markdown/markdown.component.d.ts +1 -1
  273. package/lib/components/types/loadable.d.ts +5 -0
  274. package/lib/directives/command.directive.d.ts +5 -7
  275. package/lib/directives/directives.module.d.ts +5 -5
  276. package/lib/directives/exports.d.ts +0 -1
  277. package/lib/directives/focus-binding.d.ts +0 -1
  278. package/lib/directives/highlight.pipe.d.ts +2 -8
  279. package/lib/interaction/abstract-interaction-context.d.ts +5 -5
  280. package/lib/interaction/activity-ref.d.ts +4 -4
  281. package/lib/interaction/activity.d.ts +8 -8
  282. package/lib/interaction/components/abstract-confirm-dialog.component.d.ts +2 -3
  283. package/lib/interaction/components/abstract-dialog.component.d.ts +15 -6
  284. package/lib/interaction/components/activity-actions/activity-actions.component.d.ts +9 -12
  285. package/lib/interaction/components/activity-body/activity-body.component.d.ts +1 -2
  286. package/lib/interaction/components/activity-container/activity-container.component.d.ts +13 -32
  287. package/lib/interaction/components/activity-container/activity-outlet/activity-outlet.component.d.ts +7 -6
  288. package/lib/interaction/components/activity-title/activity-title.component.d.ts +1 -1
  289. package/lib/interaction/components/activity-triggers/abstract-activity-trigger.component.d.ts +2 -2
  290. package/lib/interaction/components/activity-triggers/inline-activity-trigger/inline-activity-trigger.component.d.ts +1 -1
  291. package/lib/interaction/components/activity-triggers/modal-activity-trigger/modal-activity-trigger.component.d.ts +1 -1
  292. package/lib/interaction/components/activity-triggers/popup-activity-trigger/popup-activity-trigger.component.d.ts +1 -1
  293. package/lib/interaction/components/add-card-activity/add-card-activity.component.d.ts +2 -2
  294. package/lib/interaction/components/add-item-interaction-context/add-item-interaction-context.component.d.ts +3 -3
  295. package/lib/interaction/components/alert-dialog/alert-dialog.component.d.ts +1 -6
  296. package/lib/interaction/components/confirm-then-dialog/confirm-then-dialog.component.d.ts +2 -2
  297. package/lib/interaction/components/confirm-then-execute-dialog/confirm-then-execute-dialog.component.d.ts +2 -2
  298. package/lib/interaction/components/editors/edit-context.d.ts +1 -1
  299. package/lib/interaction/components/editors/inline-string-editor/inline-editor-model.d.ts +1 -1
  300. package/lib/interaction/components/editors/inline-string-editor/inline-string-editor.component.d.ts +2 -2
  301. package/lib/interaction/components/inplace-interaction-context/in-place-interaction-context.component.d.ts +10 -12
  302. package/lib/interaction/components/input-activities/input-activity.d.ts +1 -1
  303. package/lib/interaction/components/input-activities/select-input-activity.d.ts +2 -2
  304. package/lib/interaction/components/input-activities/string-input-activity.d.ts +1 -1
  305. package/lib/interaction/components/popup-interaction-context/popup-interaction-context.component.d.ts +2 -2
  306. package/lib/interaction/confirm.d.ts +0 -4
  307. package/lib/interaction/directives/interaction-context-trigger-for.directive.d.ts +5 -5
  308. package/lib/interaction/exports.d.ts +0 -5
  309. package/lib/interaction/in-place-interaction-context.d.ts +2 -2
  310. package/lib/interaction/interaction-context.d.ts +4 -10
  311. package/lib/interaction/interaction.module.d.ts +33 -35
  312. package/lib/interaction/route-synchronisation-adapter.d.ts +3 -3
  313. package/lib/interaction/services/interaction-service-routing-adapter.d.ts +4 -4
  314. package/lib/interaction/services/interaction.service.d.ts +4 -5
  315. package/lib/interaction/services/mat-dialog-interaction/dialog-interaction-context-factory.d.ts +5 -4
  316. package/lib/interaction/services/mat-dialog-interaction/dialog-interaction-context.d.ts +5 -6
  317. package/lib/interaction/services/modal-interaction-context.factory.d.ts +2 -2
  318. package/lib/place/components/abstract-place-navigation.component.d.ts +2 -3
  319. package/lib/place/components/not-authorised-notice/not-authorised-notice.component.d.ts +1 -0
  320. package/lib/place/components/place-outlet/place-outlet.component.d.ts +7 -6
  321. package/lib/place/components/side-place-navigation/side-place-navigation.component.d.ts +1 -2
  322. package/lib/place/guards/noop-auth-guard.service.d.ts +1 -0
  323. package/lib/place/guards/place.guard.d.ts +1 -8
  324. package/lib/place/navigation/place-component-deactivation-handler.d.ts +4 -4
  325. package/lib/place/navigation/session/abstract-pop-state-navigation.d.ts +1 -1
  326. package/lib/place/navigation/session/event-cleanup/wait-until-leaving-interaction-transition-cancelled.d.ts +3 -3
  327. package/lib/place/navigation/session/event-cleanup/wait-until-link-triggered-navigation-interaction-cancelation-type-determined.d.ts +3 -3
  328. package/lib/place/navigation/session/event-cleanup/wait-until-popstate-during-can-deactivate-transition-finishes.d.ts +3 -3
  329. package/lib/place/navigation/session/interactions/pop-state-during-interaction-navigation.d.ts +1 -1
  330. package/lib/place/navigation/session/interactions/remove-last-interaction-from-url-navigation-session.d.ts +3 -16
  331. package/lib/place/navigation/session/interactions/synchronise-interaction-context-ids-with-route.d.ts +1 -1
  332. package/lib/place/navigation/session/navigation-context.d.ts +5 -5
  333. package/lib/place/navigation/session/navigation-session.d.ts +8 -15
  334. package/lib/place/place-access-guard.d.ts +1 -1
  335. package/lib/place/place-auth-service.d.ts +8 -8
  336. package/lib/place/place-component.d.ts +23 -15
  337. package/lib/place/place-definition.d.ts +3 -6
  338. package/lib/place/place-history.d.ts +4 -5
  339. package/lib/place/place-router.d.ts +10 -41
  340. package/lib/place/place.decorator.d.ts +1 -9
  341. package/lib/place/place.module.d.ts +8 -8
  342. package/lib/place/route/json-types.d.ts +3 -1
  343. package/lib/place/route/parameter-decorators.d.ts +6 -5
  344. package/lib/place/route/parameter-definition.d.ts +5 -5
  345. package/lib/place/route/parameter-sanitiser.d.ts +1 -8
  346. package/lib/place/route/parameter-snapshot.d.ts +2 -2
  347. package/lib/place/route/visit-segment-sanitiser.d.ts +3 -3
  348. package/lib/place/url-service.d.ts +1 -1
  349. package/lib/place/url-snapshot.d.ts +1 -1
  350. package/lib/place/visit-segment.d.ts +6 -6
  351. package/lib/place/visit.d.ts +4 -4
  352. package/lib/services/markdown/markdown.service.d.ts +1 -0
  353. package/lib/services/visibility-service.d.ts +1 -1
  354. package/package.json +20 -19
  355. package/assets/draw.scss +0 -20
  356. package/assets/layout.scss +0 -3
  357. package/assets/place.scss +0 -31
  358. package/esm2022/lib/components/commands/button-renderer/button-renderer.component.mjs +0 -115
  359. package/esm2022/lib/components/file/file-download/file-download.component.mjs +0 -89
  360. package/esm2022/lib/components/forms/form-field.mjs +0 -2
  361. package/esm2022/lib/components/forms/search-input/search-input.component.mjs +0 -33
  362. package/esm2022/lib/components/loadable-component.mjs +0 -69
  363. package/esm2022/lib/components/tables/column/column-manager.mjs +0 -82
  364. package/esm2022/lib/components/tables/column/column-order-manager.mjs +0 -19
  365. package/esm2022/lib/components/tables/footer/footer-row-model.mjs +0 -135
  366. package/esm2022/lib/components/tables/renderer/abstract-cell-renderer.mjs +0 -7
  367. package/esm2022/lib/components/tables/renderer/editable-cell-renderer.mjs +0 -2
  368. package/esm2022/lib/components/tables/renderer/table-action-column/menu-builder.mjs +0 -2
  369. package/esm2022/lib/components/tables/renderer/table-action-column/table-action-column.component.mjs +0 -153
  370. package/esm2022/lib/components/tables/renderer/table-custom-more-menu/table-custom-more-menu-popup.component.mjs +0 -45
  371. package/esm2022/lib/components/tables/renderer/table-custom-more-menu/table-custom-more-menu.component.mjs +0 -71
  372. package/esm2022/lib/components/tables/renderer/table-footer-row/table-footer-row.component.mjs +0 -32
  373. package/esm2022/lib/directives/resize-observer.directive.mjs +0 -40
  374. package/esm2022/lib/interaction/activity-context.mjs +0 -4
  375. package/esm2022/lib/interaction/components/alert-renderer/alert-renderer.component.mjs +0 -55
  376. package/esm2022/lib/interaction/components/confirm-renderer/confirm-renderer.component.mjs +0 -54
  377. package/esm2022/lib/interaction/components/slide-down-interaction-context/slide-down-interaction-context.component.mjs +0 -134
  378. package/esm2022/lib/interaction/interaction-context-provider.mjs +0 -17
  379. package/esm2022/lib/place/place-metadata.mjs +0 -16
  380. package/lib/components/commands/button-renderer/button-renderer.component.d.ts +0 -30
  381. package/lib/components/file/file-download/file-download.component.d.ts +0 -45
  382. package/lib/components/forms/form-field.d.ts +0 -5
  383. package/lib/components/forms/search-input/search-input.component.d.ts +0 -10
  384. package/lib/components/loadable-component.d.ts +0 -20
  385. package/lib/components/tables/column/column-manager.d.ts +0 -19
  386. package/lib/components/tables/column/column-order-manager.d.ts +0 -20
  387. package/lib/components/tables/footer/footer-row-model.d.ts +0 -72
  388. package/lib/components/tables/renderer/abstract-cell-renderer.d.ts +0 -6
  389. package/lib/components/tables/renderer/table-action-column/menu-builder.d.ts +0 -7
  390. package/lib/components/tables/renderer/table-action-column/table-action-column.component.d.ts +0 -42
  391. package/lib/components/tables/renderer/table-custom-more-menu/table-custom-more-menu-popup.component.d.ts +0 -19
  392. package/lib/components/tables/renderer/table-custom-more-menu/table-custom-more-menu.component.d.ts +0 -24
  393. package/lib/components/tables/renderer/table-footer-row/table-footer-row.component.d.ts +0 -10
  394. package/lib/directives/resize-observer.directive.d.ts +0 -16
  395. package/lib/interaction/activity-context.d.ts +0 -9
  396. package/lib/interaction/components/alert-renderer/alert-renderer.component.d.ts +0 -17
  397. package/lib/interaction/components/confirm-renderer/confirm-renderer.component.d.ts +0 -15
  398. package/lib/interaction/components/slide-down-interaction-context/slide-down-interaction-context.component.d.ts +0 -53
  399. package/lib/interaction/interaction-context-provider.d.ts +0 -11
  400. package/lib/place/place-metadata.d.ts +0 -8
@@ -1,16 +1,16 @@
1
1
  import { Location } from "@angular/common";
2
2
  import { ActivatedRouteSnapshot, NavigationCancel, NavigationEnd, NavigationError, NavigationExtras, NavigationStart, Router, RouterStateSnapshot } from "@angular/router";
3
- import { Disposable, DisposedWith, GarbageCollector, ListModel, MutableValueModel, Transaction, ValueModel, ValueModelChain } from '@coolon/pectin';
3
+ import { GarbageCollector, MutableValueModel, ValueModel, ValueModelChain } from "@coolon/pectin";
4
4
  import { Constructable } from "@coolon/typescript-utilities";
5
5
  import { InteractionService } from "../interaction/services/interaction.service";
6
- import type { NavigationSession } from "./navigation/session/navigation-session";
7
6
  import { PlaceAuthService } from "./place-auth-service";
8
- import type { PlaceComponent } from "./place-component";
7
+ import { NavigationSession } from "./navigation/session/navigation-session";
8
+ import { PlaceComponent } from "./place-component";
9
9
  import { PlaceHistory } from "./place-history";
10
10
  import { UrlService } from "./url-service";
11
- import type { UrlSnapshot } from "./url-snapshot";
11
+ import { UrlSnapshot } from "./url-snapshot";
12
12
  import { Visit } from "./visit";
13
- import type { VisitSegment } from "./visit-segment";
13
+ import { VisitSegment } from "./visit-segment";
14
14
  import * as i0 from "@angular/core";
15
15
  export declare class PlaceRouter extends GarbageCollector {
16
16
  private readonly angularRouter;
@@ -26,29 +26,13 @@ export declare class PlaceRouter extends GarbageCollector {
26
26
  private readonly _activeVisit$;
27
27
  private readonly routerInteractionAdapter;
28
28
  private sessionFinishedJobs;
29
- private readonly skipHistoryPredicates;
30
- private pendingNavigation?;
31
- private queuedNavigationDepth;
32
- private static readonly MAX_QUEUED_NAVIGATION_DEPTH;
33
29
  readonly authService: PlaceAuthService;
34
- private readonly _ready$;
35
- readonly ready$: ValueModel<boolean>;
36
30
  constructor(angularRouter: Router, angularLocation: Location, interactionService: InteractionService, urlService: UrlService, placeHistory: PlaceHistory);
37
- /**
38
- * Register a predicate that decides, from the originating change's transaction metadata, whether an
39
- * in-place visit-parameter change should replace the current history entry instead of pushing a new
40
- * one. Use this to suppress history for programmatic/automatic changes while leaving deliberate
41
- * user navigations as pushes. Returns a {@link Disposable} that removes the predicate.
42
- */
43
- skipHistoryIf(predicate: (metadata: Transaction.MetaData) => boolean): Disposable;
44
- private shouldReplaceHistory;
45
- postponeRoutingUntil(condition$: ValueModel<boolean>): void;
46
- getAuthenticationFailureRedirect(activatedRoute: ActivatedRouteSnapshot, state: RouterStateSnapshot): Promise<Visit>;
47
- getAuthorisationFailureRedirectOptions(component: Constructable<PlaceComponent>): Promise<Visit[]>;
31
+ getAuthenticationFailureRedirect(activatedRoute: ActivatedRouteSnapshot, state: RouterStateSnapshot): Visit;
32
+ getAuthorisationFailureRedirectOptions(component: Constructable<PlaceComponent>): Visit[];
48
33
  get navigationSession(): NavigationSession;
49
34
  get currentSession(): NavigationSession;
50
35
  isNavigating(): boolean;
51
- waitUntilRouterReady(): Promise<this>;
52
36
  waitUntilIdle(): Promise<this>;
53
37
  waitActivitiesSynchronised(): Promise<this>;
54
38
  onPopState(event: NavigationStart): void;
@@ -58,26 +42,11 @@ export declare class PlaceRouter extends GarbageCollector {
58
42
  onRouterError(event: NavigationError): void;
59
43
  onRouterEnd(event: NavigationEnd): void;
60
44
  navigate(visit: Visit): any;
61
- navigate(placeComponent: Constructable<PlaceComponent>, params?: Record<string, unknown>): any;
62
- doNavigation(visit: Visit, runNavigationCommands: (router: Router) => unknown): Promise<void>;
63
- /**
64
- * Handles a navigation triggered while another is already in flight.
65
- *
66
- * This used to throw `illegalState('Navigation already in progress')`, which killed the
67
- * triggering action - occasionally seen in production when a user click collided with an
68
- * in-flight interaction-id sync. Instead we warn with diagnostic context and decide based on the
69
- * in-progress session:
70
- * - interruptible session in progress (internal housekeeping, e.g. interaction-id sync) -> queue
71
- * the incoming navigation and run it once the current session finishes (coalescing to latest).
72
- * - real navigation in progress -> keep it and drop the incoming one (logging full context).
73
- */
74
- private handleOverlappingNavigation;
75
- private queueNavigation;
76
- private flushPendingNavigation;
45
+ navigate(placeComponent: Constructable<PlaceComponent>, params?: Record<string, any>): any;
46
+ doNavigation(visit: Visit, runNavigationCommands: (router: Router) => any): Promise<void>;
77
47
  navigateByUrl(urlSnapshot: UrlSnapshot, navigationExtras?: NavigationExtras): Promise<boolean>;
78
48
  get activeVisit$(): ValueModel<Visit>;
79
- filterAuthorizedPlaces(places: ReadonlyArray<Constructable<PlaceComponent>>, options: DisposedWith): ListModel<Constructable<PlaceComponent>>;
80
- notifyVisitSegmentChanged(is: VisitSegment, was: VisitSegment, metadata?: Transaction.MetaData): Promise<void>;
49
+ notifyVisitSegmentChanged(is: VisitSegment, was: VisitSegment): Promise<void>;
81
50
  private createNavigationSession;
82
51
  protected transitionTo(next: NavigationSession): void;
83
52
  private routingSessionFinished;
@@ -1,6 +1,6 @@
1
1
  import { Constructable } from '@coolon/pectin';
2
2
  import { PlaceComponent } from './place-component';
3
- export declare function Place(options: Place.Options): (target: Constructable<any>) => void;
3
+ export declare function Place(options: Place.Options): (target: Function) => void;
4
4
  export declare namespace Place {
5
5
  interface Options {
6
6
  path: string;
@@ -19,13 +19,5 @@ export declare namespace Place {
19
19
  */
20
20
  defaultChild?: Constructable<PlaceComponent>;
21
21
  redirectToFirstChild?: boolean;
22
- /**
23
- * When redirecting to a child (see {@link redirectToFirstChild}), return to the child that was
24
- * active on the last visit rather than always the first child. Falls back to the first
25
- * authorised child when there is no history (e.g. the first visit or after a page reload).
26
- *
27
- * Only meaningful alongside `redirectToFirstChild: true`. Defaults to `true`.
28
- */
29
- rememberLastChild?: boolean;
30
22
  }
31
23
  }
@@ -7,18 +7,18 @@ import * as i5 from "./components/abstract-place-navigation.component";
7
7
  import * as i6 from "./components/not-authorised-notice/not-authorised-notice.component";
8
8
  import * as i7 from "@angular/common";
9
9
  import * as i8 from "@angular/platform-browser/animations";
10
- import * as i9 from "@angular/material/progress-spinner";
10
+ import * as i9 from "@angular/material/legacy-progress-spinner";
11
11
  import * as i10 from "@angular/router";
12
- import * as i11 from "@angular/material/tabs";
13
- import * as i12 from "@angular/material/list";
14
- import * as i13 from "@angular/material/tooltip";
12
+ import * as i11 from "@angular/material/legacy-tabs";
13
+ import * as i12 from "@angular/material/legacy-list";
14
+ import * as i13 from "@angular/material/legacy-tooltip";
15
15
  import * as i14 from "@angular/material/icon";
16
16
  import * as i15 from "../directives/directives.module";
17
- import * as i16 from "../components/components.module";
18
- import * as i17 from "@angular/cdk/portal";
19
- import * as i18 from "@angular/material/card";
17
+ import * as i16 from "@angular/flex-layout";
18
+ import * as i17 from "../components/components.module";
19
+ import * as i18 from "@angular/cdk/portal";
20
20
  export declare class PlaceModule {
21
21
  static ɵfac: i0.ɵɵFactoryDeclaration<PlaceModule, never>;
22
- static ɵmod: i0.ɵɵNgModuleDeclaration<PlaceModule, [typeof i1.PlaceOutletComponent, typeof i2.TabbedPlaceNavigationComponent, typeof i3.ListPlaceNavComponent, typeof i4.SidePlaceNavigationComponent, typeof i5.AbstractPlaceNavigationComponent, typeof i6.NotAuthorisedNoticeComponent], [typeof i7.CommonModule, typeof i8.BrowserAnimationsModule, typeof i9.MatProgressSpinnerModule, typeof i10.RouterModule, typeof i11.MatTabsModule, typeof i12.MatListModule, typeof i13.MatTooltipModule, typeof i14.MatIconModule, typeof i15.DirectivesModule, typeof i16.ComponentsModule, typeof i17.PortalModule, typeof i18.MatCardModule], [typeof i1.PlaceOutletComponent, typeof i2.TabbedPlaceNavigationComponent, typeof i3.ListPlaceNavComponent, typeof i4.SidePlaceNavigationComponent, typeof i5.AbstractPlaceNavigationComponent]>;
22
+ static ɵmod: i0.ɵɵNgModuleDeclaration<PlaceModule, [typeof i1.PlaceOutletComponent, typeof i2.TabbedPlaceNavigationComponent, typeof i3.ListPlaceNavComponent, typeof i4.SidePlaceNavigationComponent, typeof i5.AbstractPlaceNavigationComponent, typeof i6.NotAuthorisedNoticeComponent], [typeof i7.CommonModule, typeof i8.BrowserAnimationsModule, typeof i9.MatLegacyProgressSpinnerModule, typeof i10.RouterModule, typeof i11.MatLegacyTabsModule, typeof i12.MatLegacyListModule, typeof i13.MatLegacyTooltipModule, typeof i14.MatIconModule, typeof i15.DirectivesModule, typeof i16.FlexModule, typeof i17.ComponentsModule, typeof i18.PortalModule], [typeof i1.PlaceOutletComponent, typeof i2.TabbedPlaceNavigationComponent, typeof i3.ListPlaceNavComponent, typeof i4.SidePlaceNavigationComponent, typeof i5.AbstractPlaceNavigationComponent]>;
23
23
  static ɵinj: i0.ɵɵInjectorDeclaration<PlaceModule>;
24
24
  }
@@ -1,5 +1,7 @@
1
1
  export type JsonPrimitive = boolean | number | string;
2
- export type AnyJson = JsonPrimitive | null | Array<AnyJson> | JsonMap;
2
+ export type AnyJson = JsonPrimitive | null | JsonArray | JsonMap;
3
+ export interface JsonArray extends Array<AnyJson> {
4
+ }
3
5
  export interface JsonMap {
4
6
  [key: string]: AnyJson;
5
7
  }
@@ -1,11 +1,12 @@
1
- import type { Formatter } from './formatter';
2
- import type { ParameterSanitiser } from './parameter-sanitiser';
1
+ import { Constructable } from '@coolon/pectin';
2
+ import { Formatter } from './formatter';
3
+ import { ParameterSanitiser } from './parameter-sanitiser';
3
4
  export interface RouteIdOptions<T> {
4
5
  as?: string;
5
6
  optional?: boolean;
6
7
  remember?: boolean;
7
8
  defaultValue?: T;
8
- sanitiser?: ParameterSanitiser.Def<T>;
9
+ sanitiser?: Constructable<ParameterSanitiser<T>> | ParameterSanitiser<T>;
9
10
  }
10
11
  export interface RouteParameterOptions<T> {
11
12
  as?: string;
@@ -13,7 +14,7 @@ export interface RouteParameterOptions<T> {
13
14
  remember?: boolean;
14
15
  defaultValue?: T;
15
16
  storeInUrl?: Formatter<T>;
16
- sanitiser?: ParameterSanitiser.Def<T>;
17
+ sanitiser?: Constructable<ParameterSanitiser<T>> | ParameterSanitiser<T>;
17
18
  }
18
19
  export interface RouteListParameterOptions<T> {
19
20
  as?: string;
@@ -21,7 +22,7 @@ export interface RouteListParameterOptions<T> {
21
22
  remember?: boolean;
22
23
  defaultValue?: T[];
23
24
  storeInUrl?: Formatter<T>;
24
- sanitiser?: ParameterSanitiser.Def<T[]>;
25
+ sanitiser?: Constructable<ParameterSanitiser<T[]>> | ParameterSanitiser<T[]>;
25
26
  }
26
27
  export declare function RouteId<T extends string | number>(formatter: Formatter<T>, options?: RouteIdOptions<T>): PropertyDecorator;
27
28
  export declare function VisitParameter<T>(options?: RouteParameterOptions<T>): PropertyDecorator;
@@ -1,8 +1,8 @@
1
1
  import { Injector } from '@angular/core';
2
- import { HasValue, ListModel, MutableListModel, MutableValueModel, ValueModel } from '@coolon/pectin';
3
- import type { PlaceHistory } from '../place-history';
4
- import type { VisitSegment } from '../visit-segment';
5
- import type { Formatter } from './formatter';
2
+ import { Constructable, HasValue, ListModel, MutableListModel, MutableValueModel, ValueModel } from '@coolon/pectin';
3
+ import { PlaceHistory } from '../place-history';
4
+ import { VisitSegment } from '../visit-segment';
5
+ import { Formatter } from './formatter';
6
6
  import { ParameterSanitiser } from './parameter-sanitiser';
7
7
  export declare abstract class ParameterDefinition<T, E = T> {
8
8
  readonly propertyName: string;
@@ -32,7 +32,7 @@ export declare namespace ParameterDefinition {
32
32
  optional?: boolean;
33
33
  remember?: boolean;
34
34
  defaultValue?: T;
35
- sanitiser?: ParameterSanitiser.Def<T>;
35
+ sanitiser?: Constructable<ParameterSanitiser<T>> | ParameterSanitiser<T>;
36
36
  }
37
37
  class RouteId<T> extends ParameterDefinition<T> {
38
38
  readonly isRouteId = true;
@@ -1,12 +1,5 @@
1
1
  import { Injector } from '@angular/core';
2
- import { Constructable } from '@coolon/pectin';
3
- import type { VisitSegment } from '../visit-segment';
2
+ import { VisitSegment } from '../visit-segment';
4
3
  export interface ParameterSanitiser<T> {
5
4
  sanitise(parameterValue: T, visit?: VisitSegment, injector?: Injector): Promise<T> | T;
6
5
  }
7
- export declare namespace ParameterSanitiser {
8
- abstract class Factory<T> {
9
- abstract create(injector: Injector): ParameterSanitiser<T>;
10
- }
11
- type Def<T> = ParameterSanitiser<T> | Constructable<ParameterSanitiser<T>> | Factory<T>;
12
- }
@@ -1,6 +1,6 @@
1
- import type { ParameterDefinition } from './parameter-definition';
1
+ import { ParameterDefinition } from './parameter-definition';
2
2
  export interface ParameterSnapshot<T> {
3
- definition: ParameterDefinition<T, unknown>;
3
+ definition: ParameterDefinition<T, any>;
4
4
  readonly value: T;
5
5
  isMissing(): boolean;
6
6
  }
@@ -1,8 +1,8 @@
1
1
  import { Injector } from '@angular/core';
2
2
  import { ActivatedRouteSnapshot, Router } from '@angular/router';
3
- import type { NavigationSession } from '../navigation/session/navigation-session';
4
- import type { PlaceHistory } from '../place-history';
5
- import type { VisitSegment } from '../visit-segment';
3
+ import { NavigationSession } from '../navigation/session/navigation-session';
4
+ import { PlaceHistory } from '../place-history';
5
+ import { VisitSegment } from '../visit-segment';
6
6
  export declare class VisitSegmentSanitiser {
7
7
  private navigationSession;
8
8
  private activatedRoute;
@@ -1,7 +1,7 @@
1
1
  import { Location } from '@angular/common';
2
2
  import { Router, UrlSerializer } from '@angular/router';
3
3
  import { UrlSnapshot } from './url-snapshot';
4
- import type { VisitSegment } from './visit-segment';
4
+ import { VisitSegment } from './visit-segment';
5
5
  import * as i0 from "@angular/core";
6
6
  export declare class UrlService {
7
7
  private readonly angularRouter;
@@ -1,5 +1,5 @@
1
1
  import { UrlSegment, UrlSerializer, UrlTree } from '@angular/router';
2
- import type { PlaceDefinition } from './place-definition';
2
+ import { PlaceDefinition } from './place-definition';
3
3
  import { VisitSegment } from './visit-segment';
4
4
  export declare class UrlSnapshot {
5
5
  readonly urlSerializer: UrlSerializer;
@@ -1,10 +1,10 @@
1
- import type { PlaceDefinition } from './place-definition';
2
- import type { ParameterDefinition } from './route/parameter-definition';
1
+ import { PlaceDefinition } from './place-definition';
2
+ import { ParameterDefinition } from './route/parameter-definition';
3
3
  export declare class VisitSegment {
4
4
  readonly placeDefinition: PlaceDefinition;
5
5
  readonly visitParameters: Record<string, any>;
6
6
  constructor(placeDefinition: PlaceDefinition, visitParameters?: Record<string, any>);
7
- getRouteId(): string | null;
7
+ getRouteId(): any;
8
8
  hasRouteId(): boolean;
9
9
  /**
10
10
  * Returns the value of the place parameter with the specified name. The parameter
@@ -13,9 +13,9 @@ export declare class VisitSegment {
13
13
  * @param parameter the visit parameter definition
14
14
  */
15
15
  getParameterValue<T, S>(parameter: ParameterDefinition<T, S> | string): T;
16
- hasParameter(parameterDef: ParameterDefinition<unknown>): boolean;
17
- replace<T>(parameter: ParameterDefinition<T, unknown>, value: T): VisitSegment;
18
- mergeRouteParameters(routeParams: Record<string, unknown>): VisitSegment;
16
+ hasParameter(parameterDef: ParameterDefinition<any>): boolean;
17
+ replace<T>(parameter: ParameterDefinition<T, any>, value: T): VisitSegment;
18
+ mergeRouteParameters<S>(routeParams: Record<string, any>): VisitSegment;
19
19
  hasRoutingChangedFrom(other: VisitSegment): boolean;
20
20
  hasChangedFrom(other: VisitSegment): boolean;
21
21
  createRouterCommands(): string[];
@@ -1,17 +1,17 @@
1
1
  import { Constructable } from "@coolon/typescript-utilities";
2
- import type { PlaceAccessGuard } from "./place-access-guard";
3
- import type { PlaceComponent } from "./place-component";
2
+ import { PlaceAccessGuard } from "./place-access-guard";
3
+ import { PlaceComponent } from "./place-component";
4
4
  import { PlaceDefinition } from "./place-definition";
5
5
  import { VisitSegment } from "./visit-segment";
6
6
  export declare class Visit {
7
7
  protected segmentsByPlaceComponent: Map<Constructable<PlaceComponent>, VisitSegment>;
8
8
  protected readonly destinationSegment: VisitSegment;
9
9
  protected readonly destinationPlaceDef: PlaceDefinition;
10
- static goto(placeComponent: Constructable<PlaceComponent>, visitParameters?: Record<string, unknown>): Visit;
10
+ static goto(placeComponent: Constructable<PlaceComponent>, visitParameters?: Record<string, any>): Visit;
11
11
  static fromSegments(segments: VisitSegment[]): Visit;
12
12
  protected constructor(segments: VisitSegment[]);
13
13
  protected get definedSegments(): Map<Constructable<PlaceComponent>, VisitSegment>;
14
- withAncestorParameters(placeComponent: Constructable<PlaceComponent>, parameters: Record<string, unknown>): this;
14
+ withAncestorParameters(placeComponent: Constructable<PlaceComponent>, parameters: Record<string, any>): this;
15
15
  get segments(): VisitSegment[];
16
16
  private resolveSegments;
17
17
  copyWithDefaultsFrom(other: Visit | undefined): Visit;
@@ -1,5 +1,6 @@
1
1
  import * as i0 from "@angular/core";
2
2
  export declare class MarkdownService {
3
+ constructor();
3
4
  render(content: string): string;
4
5
  renderInline(content: string): string;
5
6
  usePillExtension(renderer?: (content: string) => string): void;
@@ -5,7 +5,7 @@ export declare class VisibilityService extends GarbageCollector {
5
5
  private readonly attributeName;
6
6
  private readonly eventName;
7
7
  private _visible$;
8
- constructor(document: Document);
8
+ constructor(document: any);
9
9
  protected updateVisibilityState(): void;
10
10
  /**
11
11
  * @deprecated use visible$ instead.
package/package.json CHANGED
@@ -1,36 +1,37 @@
1
1
  {
2
2
  "name": "@coolon/angular-ui-powerups",
3
- "version": "16.1.0-alpha.238",
3
+ "version": "16.1.0-aplpha.0",
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.124",
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.16",
26
- "fractional-indexing": "^3.2.0",
27
- "ng-table-virtual-scroll": "^1.6.1"
24
+ "ts-morph": "9.1.0",
25
+ "@angular/flex-layout": "15.0.0-beta.42",
26
+ "@teppeis/multimaps": "2.0.0",
27
+ "zone.js": "0.13.1"
28
28
  },
29
29
  "optionalDependencies": {
30
30
  "@fortawesome/fontawesome-free": "^6.0.0"
31
31
  },
32
32
  "dependencies": {
33
- "tslib": "^2.3.0"
33
+ "tslib": "^2.3.0",
34
+ "@coolon/typescript-utilities": "^2.9.0"
34
35
  },
35
36
  "module": "fesm2022/coolon-angular-ui-powerups.mjs",
36
37
  "typings": "index.d.ts",
@@ -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==