@coolon/angular-ui-powerups 16.1.0-aplpha.18 → 16.1.0-aplpha.181

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 (251) hide show
  1. package/assets/activities/activities.scss +5 -3
  2. package/assets/activities/input-activities.scss +14 -6
  3. package/assets/draw.scss +20 -0
  4. package/assets/form.scss +74 -27
  5. package/assets/icons.scss +1 -0
  6. package/assets/layout.scss +3 -0
  7. package/assets/styles.scss +2 -0
  8. package/assets/table.scss +41 -19
  9. package/assets/tabs.scss +15 -5
  10. package/esm2022/lib/animations/slide-animations.mjs +15 -10
  11. package/esm2022/lib/components/cards/abstract-card-container.component.mjs +28 -5
  12. package/esm2022/lib/components/cards/card-container/card-container.component.mjs +4 -4
  13. package/esm2022/lib/components/commands/button-renderer/button-renderer.component.mjs +115 -0
  14. package/esm2022/lib/components/commands/command/command.component.mjs +34 -29
  15. package/esm2022/lib/components/commands/command-face/command-face.component.mjs +11 -3
  16. package/esm2022/lib/components/commands/command-face.mjs +12 -11
  17. package/esm2022/lib/components/commands/group/popup-aware.component.mjs +31 -8
  18. package/esm2022/lib/components/commands/group/popup-menu/abstract-popup-menu.component.mjs +25 -23
  19. package/esm2022/lib/components/commands/group/popup-menu/more-menu.component.mjs +11 -20
  20. package/esm2022/lib/components/commands/group/popup-menu/popup-menu-renderer/popup-menu-renderer.component.mjs +12 -7
  21. package/esm2022/lib/components/commands/group/popup-menu/popup-menu.component.mjs +11 -20
  22. package/esm2022/lib/components/commands/group/tool-bar/tool-bar.component.mjs +8 -6
  23. package/esm2022/lib/components/commands/separator.component.mjs +6 -12
  24. package/esm2022/lib/components/components.module.mjs +55 -30
  25. package/esm2022/lib/components/disposable-component.mjs +32 -7
  26. package/esm2022/lib/components/exports.mjs +14 -5
  27. package/esm2022/lib/components/file/file-download/file-download.component.mjs +78 -0
  28. package/esm2022/lib/components/forms/abstract-input.component.mjs +55 -12
  29. package/esm2022/lib/components/forms/autocomplete-input/autocomplete-input.component.mjs +4 -4
  30. package/esm2022/lib/components/forms/checkbox-input/checkbox-input.component.mjs +8 -6
  31. package/esm2022/lib/components/forms/form-field.mjs +2 -0
  32. package/esm2022/lib/components/forms/multiple-select-input/multiple-select-input.component.mjs +4 -4
  33. package/esm2022/lib/components/forms/number-input/number-input.component.mjs +86 -9
  34. package/esm2022/lib/components/forms/password-input/password-input.component.mjs +40 -3
  35. package/esm2022/lib/components/forms/search-input/search-input.component.mjs +33 -0
  36. package/esm2022/lib/components/forms/select-input/select-input.component.mjs +11 -10
  37. package/esm2022/lib/components/forms/string-input/string-input.component.mjs +36 -11
  38. package/esm2022/lib/components/forms/text-input/text-input.component.mjs +8 -4
  39. package/esm2022/lib/components/icon/icon.component.mjs +7 -4
  40. package/esm2022/lib/components/loadable-component.mjs +21 -10
  41. package/esm2022/lib/components/resize-aware.component.mjs +61 -24
  42. package/esm2022/lib/components/switch-case/switch-case.component.mjs +5 -7
  43. package/esm2022/lib/components/tables/abstract-table-model.mjs +112 -63
  44. package/esm2022/lib/components/tables/abstract-table.component.mjs +19 -5
  45. package/esm2022/lib/components/tables/column/column-manager.mjs +81 -0
  46. package/esm2022/lib/components/tables/column/column-model.mjs +16 -6
  47. package/esm2022/lib/components/tables/column/column-order-manager.mjs +19 -0
  48. package/esm2022/lib/components/tables/column/custom-template-column-model.mjs +3 -3
  49. package/esm2022/lib/components/tables/column/custom-value-column-model.mjs +3 -3
  50. package/esm2022/lib/components/tables/column/editor-controls-column-model.mjs +3 -3
  51. package/esm2022/lib/components/tables/column/list-propery-column-model.mjs +3 -3
  52. package/esm2022/lib/components/tables/column/property-column-model.mjs +3 -3
  53. package/esm2022/lib/components/tables/column/selection-column-model.mjs +35 -13
  54. package/esm2022/lib/components/tables/editor/edit-row-controls/edit-row-controls.component.mjs +2 -2
  55. package/esm2022/lib/components/tables/editor/edit-session.mjs +1 -1
  56. package/esm2022/lib/components/tables/filter/table-filter-model.mjs +4 -2
  57. package/esm2022/lib/components/tables/filter/text-search-predicate.mjs +16 -2
  58. package/esm2022/lib/components/tables/footer/footer-row-model.mjs +38 -0
  59. package/esm2022/lib/components/tables/paginator/paginator.component.mjs +1 -1
  60. package/esm2022/lib/components/tables/renderer/abstract-cell-renderer.mjs +7 -0
  61. package/esm2022/lib/components/tables/renderer/cell-portal-ref.mjs +23 -5
  62. package/esm2022/lib/components/tables/renderer/default-cell-renderer/default-cell-renderer.component.mjs +3 -3
  63. package/esm2022/lib/components/tables/renderer/select-header-cell/selection-header-cell.component.mjs +7 -4
  64. package/esm2022/lib/components/tables/renderer/table-action-column/menu-builder.mjs +2 -0
  65. package/esm2022/lib/components/tables/renderer/table-action-column/table-action-column.component.mjs +153 -0
  66. package/esm2022/lib/components/tables/renderer/table-body/table-body.component.mjs +150 -40
  67. package/esm2022/lib/components/tables/renderer/table-cell/table-cell.component.mjs +6 -6
  68. package/esm2022/lib/components/tables/renderer/table-custom-more-menu/table-custom-more-menu-popup.component.mjs +45 -0
  69. package/esm2022/lib/components/tables/renderer/table-custom-more-menu/table-custom-more-menu.component.mjs +71 -0
  70. package/esm2022/lib/components/tables/renderer/table-footer-row/table-footer-row.component.mjs +30 -0
  71. package/esm2022/lib/components/tables/table/table-model.mjs +12 -3
  72. package/esm2022/lib/components/tables/table/table.component.mjs +39 -61
  73. package/esm2022/lib/components/tables/tree-table/decorated-tree-node.mjs +5 -4
  74. package/esm2022/lib/components/tables/tree-table/tree-label-cell-renderer/tree-label-cell-renderer.component.mjs +1 -1
  75. package/esm2022/lib/components/tables/tree-table/tree-label-column-model.mjs +3 -3
  76. package/esm2022/lib/components/tables/tree-table/tree-table-component.mjs +12 -5
  77. package/esm2022/lib/components/tables/tree-table/tree-table-model.mjs +4 -7
  78. package/esm2022/lib/components/text/markdown/markdown.component.mjs +2 -2
  79. package/esm2022/lib/directives/command.directive.mjs +18 -7
  80. package/esm2022/lib/directives/directives.module.mjs +1 -1
  81. package/esm2022/lib/directives/exports.mjs +2 -1
  82. package/esm2022/lib/directives/highlight.pipe.mjs +9 -8
  83. package/esm2022/lib/directives/resize-observer.directive.mjs +40 -0
  84. package/esm2022/lib/interaction/abstract-interaction-context.mjs +6 -7
  85. package/esm2022/lib/interaction/activity-context.mjs +4 -0
  86. package/esm2022/lib/interaction/activity.mjs +20 -21
  87. package/esm2022/lib/interaction/alert.mjs +2 -2
  88. package/esm2022/lib/interaction/components/abstract-confirm-dialog.component.mjs +11 -8
  89. package/esm2022/lib/interaction/components/abstract-dialog.component.mjs +1 -41
  90. package/esm2022/lib/interaction/components/activity-actions/activity-actions.component.mjs +28 -16
  91. package/esm2022/lib/interaction/components/activity-body/activity-body.component.mjs +8 -2
  92. package/esm2022/lib/interaction/components/activity-container/activity-container.component.mjs +46 -15
  93. package/esm2022/lib/interaction/components/activity-container/activity-outlet/activity-outlet.component.mjs +53 -15
  94. package/esm2022/lib/interaction/components/activity-title/activity-title.component.mjs +4 -4
  95. package/esm2022/lib/interaction/components/activity-triggers/inline-activity-trigger/inline-activity-trigger.component.mjs +1 -1
  96. package/esm2022/lib/interaction/components/add-card-activity/add-card-activity.component.mjs +1 -1
  97. package/esm2022/lib/interaction/components/add-item-interaction-context/add-item-interaction-context.component.mjs +1 -1
  98. package/esm2022/lib/interaction/components/alert-dialog/alert-dialog.component.mjs +10 -10
  99. package/esm2022/lib/interaction/components/alert-renderer/alert-renderer.component.mjs +55 -0
  100. package/esm2022/lib/interaction/components/confirm-renderer/confirm-renderer.component.mjs +54 -0
  101. package/esm2022/lib/interaction/components/confirm-then-dialog/confirm-then-dialog.component.mjs +4 -8
  102. package/esm2022/lib/interaction/components/confirm-then-execute-dialog/confirm-then-execute-dialog.component.mjs +4 -8
  103. package/esm2022/lib/interaction/components/confirmation-dialog/confirmation-dialog.component.mjs +7 -9
  104. package/esm2022/lib/interaction/components/editors/edit-context.mjs +1 -1
  105. package/esm2022/lib/interaction/components/editors/inline-string-editor/inline-string-editor.component.mjs +4 -4
  106. package/esm2022/lib/interaction/components/inplace-interaction-context/in-place-interaction-context.component.mjs +21 -5
  107. package/esm2022/lib/interaction/components/input-activities/input-activity.mjs +2 -2
  108. package/esm2022/lib/interaction/components/input-activities/select-input-activity.mjs +4 -2
  109. package/esm2022/lib/interaction/components/input-activities/string-input-activity.mjs +8 -4
  110. package/esm2022/lib/interaction/components/slide-down-interaction-context/slide-down-interaction-context.component.mjs +134 -0
  111. package/esm2022/lib/interaction/confirm.mjs +26 -2
  112. package/esm2022/lib/interaction/directives/interaction-context-trigger-for.directive.mjs +2 -2
  113. package/esm2022/lib/interaction/exports.mjs +6 -1
  114. package/esm2022/lib/interaction/interaction-context-provider.mjs +17 -0
  115. package/esm2022/lib/interaction/interaction-context.mjs +3 -2
  116. package/esm2022/lib/interaction/interaction.module.mjs +22 -14
  117. package/esm2022/lib/interaction/services/interaction-service-routing-adapter.mjs +4 -4
  118. package/esm2022/lib/interaction/services/interaction.service.mjs +18 -6
  119. package/esm2022/lib/interaction/services/mat-dialog-interaction/dialog-interaction-context-factory.mjs +2 -2
  120. package/esm2022/lib/interaction/services/mat-dialog-interaction/dialog-interaction-context.mjs +23 -4
  121. package/esm2022/lib/place/components/list-place-nav/list-place-nav.component.mjs +4 -5
  122. package/esm2022/lib/place/components/place-outlet/place-outlet.component.mjs +7 -9
  123. package/esm2022/lib/place/components/side-place-navigation/side-place-navigation.component.mjs +2 -2
  124. package/esm2022/lib/place/components/tabbed-place-navigation/tabbed-place-navigation.component.mjs +1 -1
  125. package/esm2022/lib/place/guards/consolidated-param-map.mjs +4 -4
  126. package/esm2022/lib/place/guards/place.guard.mjs +6 -5
  127. package/esm2022/lib/place/navigation/place-component-deactivation-handler.mjs +2 -2
  128. package/esm2022/lib/place/navigation/session/interactions/synchronise-interaction-context-ids-with-route.mjs +3 -6
  129. package/esm2022/lib/place/navigation/session/navigation-session.mjs +2 -2
  130. package/esm2022/lib/place/place-auth-service.mjs +7 -6
  131. package/esm2022/lib/place/place-component.mjs +29 -19
  132. package/esm2022/lib/place/place-definition.mjs +15 -4
  133. package/esm2022/lib/place/place-history.mjs +2 -2
  134. package/esm2022/lib/place/place-router.mjs +67 -53
  135. package/esm2022/lib/place/place.decorator.mjs +2 -2
  136. package/esm2022/lib/place/place.module.mjs +1 -5
  137. package/esm2022/lib/place/route/formatter.mjs +2 -2
  138. package/esm2022/lib/place/route/parameter-decorators.mjs +54 -50
  139. package/esm2022/lib/place/route/parameter-definition.mjs +2 -2
  140. package/esm2022/lib/place/url-snapshot.mjs +3 -3
  141. package/esm2022/lib/place/visit-segment.mjs +2 -2
  142. package/esm2022/lib/place/visit.mjs +2 -2
  143. package/esm2022/lib/services/exports.mjs +2 -1
  144. package/esm2022/lib/services/loading-monitor.mjs +83 -0
  145. package/fesm2022/coolon-angular-ui-powerups.mjs +2586 -1113
  146. package/fesm2022/coolon-angular-ui-powerups.mjs.map +1 -1
  147. package/lib/animations/slide-animations.d.ts +1 -0
  148. package/lib/components/cards/abstract-card-container.component.d.ts +6 -3
  149. package/lib/components/cards/card-container/card-container.component.d.ts +1 -1
  150. package/lib/components/commands/button-renderer/button-renderer.component.d.ts +30 -0
  151. package/lib/components/commands/command/command.component.d.ts +8 -8
  152. package/lib/components/commands/command-face/command-face.component.d.ts +2 -0
  153. package/lib/components/commands/command-face.d.ts +8 -9
  154. package/lib/components/commands/group/popup-aware.component.d.ts +9 -4
  155. package/lib/components/commands/group/popup-menu/abstract-popup-menu.component.d.ts +4 -4
  156. package/lib/components/commands/group/popup-menu/more-menu.component.d.ts +2 -4
  157. package/lib/components/commands/group/popup-menu/popup-menu-renderer/popup-menu-renderer.component.d.ts +2 -0
  158. package/lib/components/commands/group/popup-menu/popup-menu.component.d.ts +2 -4
  159. package/lib/components/commands/group/tool-bar/tool-bar.component.d.ts +1 -1
  160. package/lib/components/commands/separator.component.d.ts +2 -4
  161. package/lib/components/components.module.d.ts +60 -55
  162. package/lib/components/disposable-component.d.ts +16 -3
  163. package/lib/components/exports.d.ts +13 -4
  164. package/lib/components/file/file-download/file-download.component.d.ts +43 -0
  165. package/lib/components/forms/abstract-input.component.d.ts +13 -5
  166. package/lib/components/forms/checkbox-input/checkbox-input.component.d.ts +2 -0
  167. package/lib/components/forms/form-field.d.ts +5 -0
  168. package/lib/components/forms/number-input/number-input.component.d.ts +16 -4
  169. package/lib/components/forms/password-input/password-input.component.d.ts +7 -1
  170. package/lib/components/forms/search-input/search-input.component.d.ts +10 -0
  171. package/lib/components/forms/select-input/select-input.component.d.ts +4 -3
  172. package/lib/components/forms/string-input/string-input.component.d.ts +9 -1
  173. package/lib/components/forms/text-input/text-input.component.d.ts +3 -0
  174. package/lib/components/loadable-component.d.ts +10 -5
  175. package/lib/components/resize-aware.component.d.ts +24 -5
  176. package/lib/components/switch-case/switch-case.component.d.ts +2 -3
  177. package/lib/components/tables/abstract-table-model.d.ts +50 -25
  178. package/lib/components/tables/abstract-table.component.d.ts +4 -3
  179. package/lib/components/tables/column/column-manager.d.ts +19 -0
  180. package/lib/components/tables/column/column-model.d.ts +7 -3
  181. package/lib/components/tables/column/column-order-manager.d.ts +20 -0
  182. package/lib/components/tables/column/custom-template-column-model.d.ts +3 -2
  183. package/lib/components/tables/column/custom-value-column-model.d.ts +3 -2
  184. package/lib/components/tables/column/editor-controls-column-model.d.ts +3 -2
  185. package/lib/components/tables/column/list-propery-column-model.d.ts +3 -2
  186. package/lib/components/tables/column/property-column-model.d.ts +3 -2
  187. package/lib/components/tables/column/selection-column-model.d.ts +10 -4
  188. package/lib/components/tables/editor/edit-row-controls/edit-row-controls.component.d.ts +1 -1
  189. package/lib/components/tables/editor/edit-session.d.ts +1 -1
  190. package/lib/components/tables/filter/text-search-predicate.d.ts +9 -0
  191. package/lib/components/tables/footer/footer-row-model.d.ts +22 -0
  192. package/lib/components/tables/renderer/abstract-cell-renderer.d.ts +6 -0
  193. package/lib/components/tables/renderer/cell-portal-ref.d.ts +20 -12
  194. package/lib/components/tables/renderer/select-header-cell/selection-header-cell.component.d.ts +1 -1
  195. package/lib/components/tables/renderer/table-action-column/menu-builder.d.ts +7 -0
  196. package/lib/components/tables/renderer/table-action-column/table-action-column.component.d.ts +42 -0
  197. package/lib/components/tables/renderer/table-body/table-body.component.d.ts +40 -16
  198. package/lib/components/tables/renderer/table-cell/table-cell.component.d.ts +2 -3
  199. package/lib/components/tables/renderer/table-custom-more-menu/table-custom-more-menu-popup.component.d.ts +19 -0
  200. package/lib/components/tables/renderer/{table-more-menu/table-more-menu.component.d.ts → table-custom-more-menu/table-custom-more-menu.component.d.ts} +8 -7
  201. package/lib/components/tables/renderer/table-footer-row/table-footer-row.component.d.ts +11 -0
  202. package/lib/components/tables/table/table-model.d.ts +4 -4
  203. package/lib/components/tables/table/table.component.d.ts +14 -10
  204. package/lib/components/tables/tree-table/tree-label-cell-renderer/tree-label-cell-renderer.component.d.ts +1 -1
  205. package/lib/components/tables/tree-table/tree-label-column-model.d.ts +3 -2
  206. package/lib/components/tables/tree-table/tree-table-component.d.ts +3 -0
  207. package/lib/components/tables/tree-table/tree-table-model.d.ts +4 -5
  208. package/lib/directives/command.directive.d.ts +6 -4
  209. package/lib/directives/exports.d.ts +1 -0
  210. package/lib/directives/resize-observer.directive.d.ts +16 -0
  211. package/lib/interaction/abstract-interaction-context.d.ts +1 -1
  212. package/lib/interaction/activity-context.d.ts +9 -0
  213. package/lib/interaction/activity.d.ts +7 -7
  214. package/lib/interaction/components/abstract-confirm-dialog.component.d.ts +2 -1
  215. package/lib/interaction/components/abstract-dialog.component.d.ts +5 -14
  216. package/lib/interaction/components/activity-actions/activity-actions.component.d.ts +12 -9
  217. package/lib/interaction/components/activity-body/activity-body.component.d.ts +2 -1
  218. package/lib/interaction/components/activity-container/activity-container.component.d.ts +10 -4
  219. package/lib/interaction/components/activity-container/activity-outlet/activity-outlet.component.d.ts +3 -3
  220. package/lib/interaction/components/activity-title/activity-title.component.d.ts +1 -1
  221. package/lib/interaction/components/alert-dialog/alert-dialog.component.d.ts +6 -1
  222. package/lib/interaction/components/alert-renderer/alert-renderer.component.d.ts +17 -0
  223. package/lib/interaction/components/confirm-renderer/confirm-renderer.component.d.ts +15 -0
  224. package/lib/interaction/components/editors/edit-context.d.ts +1 -1
  225. package/lib/interaction/components/inplace-interaction-context/in-place-interaction-context.component.d.ts +5 -3
  226. package/lib/interaction/components/slide-down-interaction-context/slide-down-interaction-context.component.d.ts +53 -0
  227. package/lib/interaction/confirm.d.ts +4 -0
  228. package/lib/interaction/exports.d.ts +5 -0
  229. package/lib/interaction/interaction-context-provider.d.ts +11 -0
  230. package/lib/interaction/interaction-context.d.ts +7 -1
  231. package/lib/interaction/interaction.module.d.ts +35 -33
  232. package/lib/interaction/services/interaction-service-routing-adapter.d.ts +2 -2
  233. package/lib/interaction/services/interaction.service.d.ts +2 -1
  234. package/lib/interaction/services/mat-dialog-interaction/dialog-interaction-context-factory.d.ts +1 -1
  235. package/lib/interaction/services/mat-dialog-interaction/dialog-interaction-context.d.ts +3 -1
  236. package/lib/place/components/place-outlet/place-outlet.component.d.ts +3 -4
  237. package/lib/place/place-auth-service.d.ts +4 -4
  238. package/lib/place/place-component.d.ts +7 -5
  239. package/lib/place/place-definition.d.ts +2 -0
  240. package/lib/place/place-router.d.ts +8 -3
  241. package/lib/place/place.module.d.ts +4 -5
  242. package/lib/services/exports.d.ts +1 -0
  243. package/lib/services/loading-monitor.d.ts +29 -0
  244. package/package.json +6 -4
  245. package/esm2022/lib/components/tables/column/column-list-model.mjs +0 -44
  246. package/esm2022/lib/components/tables/renderer/table-more-menu/table-more-menu-popup/table-more-menu-popup.component.mjs +0 -33
  247. package/esm2022/lib/components/tables/renderer/table-more-menu/table-more-menu.component.mjs +0 -60
  248. package/esm2022/lib/components/tables/table-row-menu/table-row-menu.component.mjs +0 -84
  249. package/lib/components/tables/column/column-list-model.d.ts +0 -13
  250. package/lib/components/tables/renderer/table-more-menu/table-more-menu-popup/table-more-menu-popup.component.d.ts +0 -15
  251. package/lib/components/tables/table-row-menu/table-row-menu.component.d.ts +0 -28
@@ -14,6 +14,7 @@ export * from "./cards/card-container/card-container.component";
14
14
  export * from "./commands/command-face";
15
15
  export * from "./commands/flex.component";
16
16
  export * from "./commands/separator.component";
17
+ export * from "./commands/button-renderer/button-renderer.component";
17
18
  export * from "./commands/command/command.component";
18
19
  export * from "./commands/command-face/command-face.component";
19
20
  export * from "./commands/group/command-container";
@@ -25,15 +26,18 @@ export * from "./commands/group/popup-menu/popup-menu.component";
25
26
  export * from "./commands/group/popup-menu/popup-menu-renderer/popup-menu-renderer.component";
26
27
  export * from "./commands/group/tool-bar/tool-bar.component";
27
28
  export * from "./empty-state/empty-state.component";
29
+ export * from "./file/file-download/file-download.component";
28
30
  export * from "./focus-container/focus-container.component";
29
31
  export * from "./forms/abstract-input.component";
30
32
  export * from "./forms/abstract-list-input.component";
31
33
  export * from "./forms/abstract-value-input.component";
34
+ export * from "./forms/form-field";
32
35
  export * from "./forms/autocomplete-input/autocomplete-input.component";
33
36
  export * from "./forms/checkbox-input/checkbox-input.component";
34
37
  export * from "./forms/multiple-select-input/multiple-select-input.component";
35
38
  export * from "./forms/number-input/number-input.component";
36
39
  export * from "./forms/password-input/password-input.component";
40
+ export * from "./forms/search-input/search-input.component";
37
41
  export * from "./forms/select-input/select-input.component";
38
42
  export * from "./forms/string-input/string-input.component";
39
43
  export * from "./forms/text-input/text-input.component";
@@ -46,8 +50,9 @@ export * from "./section-header/section-header.component";
46
50
  export * from "./switch-case/switch-case.component";
47
51
  export * from "./tables/abstract-table-model";
48
52
  export * from "./tables/abstract-table.component";
49
- export * from "./tables/column/column-list-model";
53
+ export * from "./tables/column/column-manager";
50
54
  export * from "./tables/column/column-model";
55
+ export * from "./tables/column/column-order-manager";
51
56
  export * from "./tables/column/column-text-properties";
52
57
  export * from "./tables/column/custom-template-column-model";
53
58
  export * from "./tables/column/custom-value-column-model";
@@ -63,7 +68,9 @@ export * from "./tables/filter/column-text-search-formatter";
63
68
  export * from "./tables/filter/enable-cell-text-search.decorator";
64
69
  export * from "./tables/filter/table-filter-model";
65
70
  export * from "./tables/filter/text-search-predicate";
71
+ export * from "./tables/footer/footer-row-model";
66
72
  export * from "./tables/paginator/paginator.component";
73
+ export * from "./tables/renderer/abstract-cell-renderer";
67
74
  export * from "./tables/renderer/cell-editors";
68
75
  export * from "./tables/renderer/cell-portal-ref";
69
76
  export * from "./tables/renderer/cell-renderer";
@@ -71,14 +78,16 @@ export * from "./tables/renderer/default-cell-renderer/default-cell-renderer.com
71
78
  export * from "./tables/renderer/default-header-cell-renderer/default-header-cell-renderer.component";
72
79
  export * from "./tables/renderer/select-header-cell/selection-header-cell.component";
73
80
  export * from "./tables/renderer/selection-cell/selection-cell.component";
81
+ export * from "./tables/renderer/table-action-column/menu-builder";
82
+ export * from "./tables/renderer/table-action-column/table-action-column.component";
74
83
  export * from "./tables/renderer/table-body/table-body.component";
75
84
  export * from "./tables/renderer/table-cell/table-cell.component";
85
+ export * from "./tables/renderer/table-custom-more-menu/table-custom-more-menu-popup.component";
86
+ export * from "./tables/renderer/table-custom-more-menu/table-custom-more-menu.component";
87
+ export * from "./tables/renderer/table-footer-row/table-footer-row.component";
76
88
  export * from "./tables/renderer/table-header-cell/table-header-cell.component";
77
- export * from "./tables/renderer/table-more-menu/table-more-menu.component";
78
- export * from "./tables/renderer/table-more-menu/table-more-menu-popup/table-more-menu-popup.component";
79
89
  export * from "./tables/table/table-model";
80
90
  export * from "./tables/table/table.component";
81
- export * from "./tables/table-row-menu/table-row-menu.component";
82
91
  export * from "./tables/tree-table/decorated-tree-node";
83
92
  export * from "./tables/tree-table/flattened-tree-list-model";
84
93
  export * from "./tables/tree-table/tree-expansion-model";
@@ -93,4 +102,4 @@ export * from "./types/dimension.class";
93
102
  export * from "./types/loadable";
94
103
  export * from "./types/point.class";
95
104
  export * from "./vertical-focus-container/vertical-focus-container.component";
96
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwb3J0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci11aS1wb3dlcnVwcy9zcmMvbGliL2NvbXBvbmVudHMvZXhwb3J0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLFNBQVMsQ0FBQztBQUN4QixjQUFjLHVDQUF1QyxDQUFDO0FBQ3RELGNBQWMsMkNBQTJDLENBQUM7QUFDMUQsY0FBYyxpREFBaUQsQ0FBQztBQUNoRSxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYyxnQ0FBZ0MsQ0FBQztBQUMvQyxjQUFjLHNDQUFzQyxDQUFDO0FBQ3JELGNBQWMsZ0RBQWdELENBQUM7QUFDL0QsY0FBYyxvQ0FBb0MsQ0FBQztBQUNuRCxjQUFjLHdDQUF3QyxDQUFDO0FBQ3ZELGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYywyREFBMkQsQ0FBQztBQUMxRSxjQUFjLGlEQUFpRCxDQUFDO0FBQ2hFLGNBQWMsa0RBQWtELENBQUM7QUFDakUsY0FBYywrRUFBK0UsQ0FBQztBQUM5RixjQUFjLDhDQUE4QyxDQUFDO0FBQzdELGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYyw2Q0FBNkMsQ0FBQztBQUM1RCxjQUFjLGtDQUFrQyxDQUFDO0FBQ2pELGNBQWMsdUNBQXVDLENBQUM7QUFDdEQsY0FBYyx3Q0FBd0MsQ0FBQztBQUN2RCxjQUFjLHlEQUF5RCxDQUFDO0FBQ3hFLGNBQWMsaURBQWlELENBQUM7QUFDaEUsY0FBYywrREFBK0QsQ0FBQztBQUM5RSxjQUFjLDZDQUE2QyxDQUFDO0FBQzVELGNBQWMsaURBQWlELENBQUM7QUFDaEUsY0FBYyw2Q0FBNkMsQ0FBQztBQUM1RCxjQUFjLDZDQUE2QyxDQUFDO0FBQzVELGNBQWMseUNBQXlDLENBQUM7QUFDeEQsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLDJDQUEyQyxDQUFDO0FBQzFELGNBQWMsaURBQWlELENBQUM7QUFDaEUsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLCtDQUErQyxDQUFDO0FBQzlELGNBQWMsMkNBQTJDLENBQUM7QUFDMUQsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsbUNBQW1DLENBQUM7QUFDbEQsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGNBQWMsd0NBQXdDLENBQUM7QUFDdkQsY0FBYyw4Q0FBOEMsQ0FBQztBQUM3RCxjQUFjLDJDQUEyQyxDQUFDO0FBQzFELGNBQWMsOENBQThDLENBQUM7QUFDN0QsY0FBYywyQ0FBMkMsQ0FBQztBQUMxRCxjQUFjLHVDQUF1QyxDQUFDO0FBQ3RELGNBQWMsd0NBQXdDLENBQUM7QUFDdkQsY0FBYywyREFBMkQsQ0FBQztBQUMxRSxjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGNBQWMsd0NBQXdDLENBQUM7QUFDdkQsY0FBYywrREFBK0QsQ0FBQztBQUM5RSxjQUFjLDhDQUE4QyxDQUFDO0FBQzdELGNBQWMsbURBQW1ELENBQUM7QUFDbEUsY0FBYyxvQ0FBb0MsQ0FBQztBQUNuRCxjQUFjLHVDQUF1QyxDQUFDO0FBQ3RELGNBQWMsd0NBQXdDLENBQUM7QUFDdkQsY0FBYyxnQ0FBZ0MsQ0FBQztBQUMvQyxjQUFjLG1DQUFtQyxDQUFDO0FBQ2xELGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYyx5RUFBeUUsQ0FBQztBQUN4RixjQUFjLHVGQUF1RixDQUFDO0FBQ3RHLGNBQWMsc0VBQXNFLENBQUM7QUFDckYsY0FBYywyREFBMkQsQ0FBQztBQUMxRSxjQUFjLG1EQUFtRCxDQUFDO0FBQ2xFLGNBQWMsbURBQW1ELENBQUM7QUFDbEUsY0FBYyxpRUFBaUUsQ0FBQztBQUNoRixjQUFjLDZEQUE2RCxDQUFDO0FBQzVFLGNBQWMseUZBQXlGLENBQUM7QUFDeEcsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMsa0RBQWtELENBQUM7QUFDakUsY0FBYyx5Q0FBeUMsQ0FBQztBQUN4RCxjQUFjLCtDQUErQyxDQUFDO0FBQzlELGNBQWMsMENBQTBDLENBQUM7QUFDekQsY0FBYyw2Q0FBNkMsQ0FBQztBQUM1RCxjQUFjLDBDQUEwQyxDQUFDO0FBQ3pELGNBQWMsc0NBQXNDLENBQUM7QUFDckQsY0FBYywyRUFBMkUsQ0FBQztBQUMxRixjQUFjLGlGQUFpRixDQUFDO0FBQ2hHLGNBQWMsb0NBQW9DLENBQUM7QUFDbkQsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLCtEQUErRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAZmlsZSBBdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBieSBiYXJyZWxzYnkuXG4gKi9cblxuZXhwb3J0ICogZnJvbSBcIi4vYWxpZ25tZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9jb21wb25lbnRzLm1vZHVsZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vZGlzcG9zYWJsZS1jb21wb25lbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2ZvY3VzYWJsZS5jb21wb25lbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2xvYWRhYmxlLWNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vcmVzaXplLWF3YXJlLmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vdHJhY2tcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2J1c3ktb3ZlcmxheS9idXN5LW92ZXJsYXkuY29tcG9uZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9jYXJkcy9hYnN0cmFjdC1jYXJkLWNvbnRhaW5lci5jb21wb25lbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2NhcmRzL2NhcmQtY29udGFpbmVyL2NhcmQtY29udGFpbmVyLmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vY29tbWFuZHMvY29tbWFuZC1mYWNlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9jb21tYW5kcy9mbGV4LmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vY29tbWFuZHMvc2VwYXJhdG9yLmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vY29tbWFuZHMvY29tbWFuZC9jb21tYW5kLmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vY29tbWFuZHMvY29tbWFuZC1mYWNlL2NvbW1hbmQtZmFjZS5jb21wb25lbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2NvbW1hbmRzL2dyb3VwL2NvbW1hbmQtY29udGFpbmVyXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9jb21tYW5kcy9ncm91cC9wb3B1cC1hd2FyZS5jb21wb25lbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2NvbW1hbmRzL2dyb3VwL3BvcHVwLWNvbnRhaW5lclwiO1xuZXhwb3J0ICogZnJvbSBcIi4vY29tbWFuZHMvZ3JvdXAvcG9wdXAtbWVudS9hYnN0cmFjdC1wb3B1cC1tZW51LmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vY29tbWFuZHMvZ3JvdXAvcG9wdXAtbWVudS9tb3JlLW1lbnUuY29tcG9uZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9jb21tYW5kcy9ncm91cC9wb3B1cC1tZW51L3BvcHVwLW1lbnUuY29tcG9uZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9jb21tYW5kcy9ncm91cC9wb3B1cC1tZW51L3BvcHVwLW1lbnUtcmVuZGVyZXIvcG9wdXAtbWVudS1yZW5kZXJlci5jb21wb25lbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2NvbW1hbmRzL2dyb3VwL3Rvb2wtYmFyL3Rvb2wtYmFyLmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vZW1wdHktc3RhdGUvZW1wdHktc3RhdGUuY29tcG9uZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9mb2N1cy1jb250YWluZXIvZm9jdXMtY29udGFpbmVyLmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vZm9ybXMvYWJzdHJhY3QtaW5wdXQuY29tcG9uZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9mb3Jtcy9hYnN0cmFjdC1saXN0LWlucHV0LmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vZm9ybXMvYWJzdHJhY3QtdmFsdWUtaW5wdXQuY29tcG9uZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9mb3Jtcy9hdXRvY29tcGxldGUtaW5wdXQvYXV0b2NvbXBsZXRlLWlucHV0LmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vZm9ybXMvY2hlY2tib3gtaW5wdXQvY2hlY2tib3gtaW5wdXQuY29tcG9uZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9mb3Jtcy9tdWx0aXBsZS1zZWxlY3QtaW5wdXQvbXVsdGlwbGUtc2VsZWN0LWlucHV0LmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vZm9ybXMvbnVtYmVyLWlucHV0L251bWJlci1pbnB1dC5jb21wb25lbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2Zvcm1zL3Bhc3N3b3JkLWlucHV0L3Bhc3N3b3JkLWlucHV0LmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vZm9ybXMvc2VsZWN0LWlucHV0L3NlbGVjdC1pbnB1dC5jb21wb25lbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2Zvcm1zL3N0cmluZy1pbnB1dC9zdHJpbmctaW5wdXQuY29tcG9uZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9mb3Jtcy90ZXh0LWlucHV0L3RleHQtaW5wdXQuY29tcG9uZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9pY29uL2ljb24uY29tcG9uZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9sYWJlbGxlZC12YWx1ZS9sYWJlbGxlZC12YWx1ZS5jb21wb25lbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2xvYWRpbmctY29udGFpbmVyL2xvYWRpbmctY29udGFpbmVyLmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbm9vcC9ub29wLmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc2Nyb2xsLWNvbnRhaW5lci9zY3JvbGwtY29udGFpbmVyLmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc2VjdGlvbi1oZWFkZXIvc2VjdGlvbi1oZWFkZXIuY29tcG9uZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zd2l0Y2gtY2FzZS9zd2l0Y2gtY2FzZS5jb21wb25lbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3RhYmxlcy9hYnN0cmFjdC10YWJsZS1tb2RlbFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vdGFibGVzL2Fic3RyYWN0LXRhYmxlLmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vdGFibGVzL2NvbHVtbi9jb2x1bW4tbGlzdC1tb2RlbFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vdGFibGVzL2NvbHVtbi9jb2x1bW4tbW9kZWxcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3RhYmxlcy9jb2x1bW4vY29sdW1uLXRleHQtcHJvcGVydGllc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vdGFibGVzL2NvbHVtbi9jdXN0b20tdGVtcGxhdGUtY29sdW1uLW1vZGVsXCI7XG5leHBvcnQgKiBmcm9tIFwiLi90YWJsZXMvY29sdW1uL2N1c3RvbS12YWx1ZS1jb2x1bW4tbW9kZWxcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3RhYmxlcy9jb2x1bW4vZWRpdG9yLWNvbnRyb2xzLWNvbHVtbi1tb2RlbFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vdGFibGVzL2NvbHVtbi9saXN0LXByb3BlcnktY29sdW1uLW1vZGVsXCI7XG5leHBvcnQgKiBmcm9tIFwiLi90YWJsZXMvY29sdW1uL3Byb3BlcnR5LWNvbHVtbi1tb2RlbFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vdGFibGVzL2NvbHVtbi9zZWxlY3Rpb24tY29sdW1uLW1vZGVsXCI7XG5leHBvcnQgKiBmcm9tIFwiLi90YWJsZXMvY29sdW1uL2NvbHVtbi10ZW1wbGF0ZS9jb2x1bW4tdGVtcGxhdGUuZGlyZWN0aXZlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi90YWJsZXMvZWRpdG9yL2VkaXQtc2Vzc2lvblwiO1xuZXhwb3J0ICogZnJvbSBcIi4vdGFibGVzL2VkaXRvci9lZGl0YWJsZS1jZWxsLXJlbmRlcmVyXCI7XG5leHBvcnQgKiBmcm9tIFwiLi90YWJsZXMvZWRpdG9yL2VkaXQtcm93LWNvbnRyb2xzL2VkaXQtcm93LWNvbnRyb2xzLmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vdGFibGVzL2ZpbHRlci9jb2x1bW4tdGV4dC1zZWFyY2gtZm9ybWF0dGVyXCI7XG5leHBvcnQgKiBmcm9tIFwiLi90YWJsZXMvZmlsdGVyL2VuYWJsZS1jZWxsLXRleHQtc2VhcmNoLmRlY29yYXRvclwiO1xuZXhwb3J0ICogZnJvbSBcIi4vdGFibGVzL2ZpbHRlci90YWJsZS1maWx0ZXItbW9kZWxcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3RhYmxlcy9maWx0ZXIvdGV4dC1zZWFyY2gtcHJlZGljYXRlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi90YWJsZXMvcGFnaW5hdG9yL3BhZ2luYXRvci5jb21wb25lbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3RhYmxlcy9yZW5kZXJlci9jZWxsLWVkaXRvcnNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3RhYmxlcy9yZW5kZXJlci9jZWxsLXBvcnRhbC1yZWZcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3RhYmxlcy9yZW5kZXJlci9jZWxsLXJlbmRlcmVyXCI7XG5leHBvcnQgKiBmcm9tIFwiLi90YWJsZXMvcmVuZGVyZXIvZGVmYXVsdC1jZWxsLXJlbmRlcmVyL2RlZmF1bHQtY2VsbC1yZW5kZXJlci5jb21wb25lbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3RhYmxlcy9yZW5kZXJlci9kZWZhdWx0LWhlYWRlci1jZWxsLXJlbmRlcmVyL2RlZmF1bHQtaGVhZGVyLWNlbGwtcmVuZGVyZXIuY29tcG9uZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi90YWJsZXMvcmVuZGVyZXIvc2VsZWN0LWhlYWRlci1jZWxsL3NlbGVjdGlvbi1oZWFkZXItY2VsbC5jb21wb25lbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3RhYmxlcy9yZW5kZXJlci9zZWxlY3Rpb24tY2VsbC9zZWxlY3Rpb24tY2VsbC5jb21wb25lbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3RhYmxlcy9yZW5kZXJlci90YWJsZS1ib2R5L3RhYmxlLWJvZHkuY29tcG9uZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi90YWJsZXMvcmVuZGVyZXIvdGFibGUtY2VsbC90YWJsZS1jZWxsLmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vdGFibGVzL3JlbmRlcmVyL3RhYmxlLWhlYWRlci1jZWxsL3RhYmxlLWhlYWRlci1jZWxsLmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vdGFibGVzL3JlbmRlcmVyL3RhYmxlLW1vcmUtbWVudS90YWJsZS1tb3JlLW1lbnUuY29tcG9uZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi90YWJsZXMvcmVuZGVyZXIvdGFibGUtbW9yZS1tZW51L3RhYmxlLW1vcmUtbWVudS1wb3B1cC90YWJsZS1tb3JlLW1lbnUtcG9wdXAuY29tcG9uZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi90YWJsZXMvdGFibGUvdGFibGUtbW9kZWxcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3RhYmxlcy90YWJsZS90YWJsZS5jb21wb25lbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3RhYmxlcy90YWJsZS1yb3ctbWVudS90YWJsZS1yb3ctbWVudS5jb21wb25lbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3RhYmxlcy90cmVlLXRhYmxlL2RlY29yYXRlZC10cmVlLW5vZGVcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3RhYmxlcy90cmVlLXRhYmxlL2ZsYXR0ZW5lZC10cmVlLWxpc3QtbW9kZWxcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3RhYmxlcy90cmVlLXRhYmxlL3RyZWUtZXhwYW5zaW9uLW1vZGVsXCI7XG5leHBvcnQgKiBmcm9tIFwiLi90YWJsZXMvdHJlZS10YWJsZS90cmVlLWxhYmVsLWNvbHVtbi1tb2RlbFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vdGFibGVzL3RyZWUtdGFibGUvdHJlZS10YWJsZS1jb21wb25lbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3RhYmxlcy90cmVlLXRhYmxlL3RyZWUtdGFibGUtbW9kZWxcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3RhYmxlcy90cmVlLXRhYmxlL3RyZWUtaW5oZXJpdGFuY2UtaWNvbi90cmVlLWluaGVyaXRhbmNlLWljb24uY29tcG9uZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi90YWJsZXMvdHJlZS10YWJsZS90cmVlLWxhYmVsLWNlbGwtcmVuZGVyZXIvdHJlZS1sYWJlbC1jZWxsLXJlbmRlcmVyLmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vdGV4dC9tYXJrZG93bi9tYXJrZG93bi5jb21wb25lbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3R5cGVzL2JvdW5kcy5jbGFzc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vdHlwZXMvZGltZW5zaW9uLmNsYXNzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi90eXBlcy9sb2FkYWJsZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vdHlwZXMvcG9pbnQuY2xhc3NcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3ZlcnRpY2FsLWZvY3VzLWNvbnRhaW5lci92ZXJ0aWNhbC1mb2N1cy1jb250YWluZXIuY29tcG9uZW50XCI7XG4iXX0=
105
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwb3J0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci11aS1wb3dlcnVwcy9zcmMvbGliL2NvbXBvbmVudHMvZXhwb3J0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLFNBQVMsQ0FBQztBQUN4QixjQUFjLHVDQUF1QyxDQUFDO0FBQ3RELGNBQWMsMkNBQTJDLENBQUM7QUFDMUQsY0FBYyxpREFBaUQsQ0FBQztBQUNoRSxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYyxnQ0FBZ0MsQ0FBQztBQUMvQyxjQUFjLHNEQUFzRCxDQUFDO0FBQ3JFLGNBQWMsc0NBQXNDLENBQUM7QUFDckQsY0FBYyxnREFBZ0QsQ0FBQztBQUMvRCxjQUFjLG9DQUFvQyxDQUFDO0FBQ25ELGNBQWMsd0NBQXdDLENBQUM7QUFDdkQsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLDJEQUEyRCxDQUFDO0FBQzFFLGNBQWMsaURBQWlELENBQUM7QUFDaEUsY0FBYyxrREFBa0QsQ0FBQztBQUNqRSxjQUFjLCtFQUErRSxDQUFDO0FBQzlGLGNBQWMsOENBQThDLENBQUM7QUFDN0QsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLDhDQUE4QyxDQUFDO0FBQzdELGNBQWMsNkNBQTZDLENBQUM7QUFDNUQsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLHVDQUF1QyxDQUFDO0FBQ3RELGNBQWMsd0NBQXdDLENBQUM7QUFDdkQsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLHlEQUF5RCxDQUFDO0FBQ3hFLGNBQWMsaURBQWlELENBQUM7QUFDaEUsY0FBYywrREFBK0QsQ0FBQztBQUM5RSxjQUFjLDZDQUE2QyxDQUFDO0FBQzVELGNBQWMsaURBQWlELENBQUM7QUFDaEUsY0FBYyw2Q0FBNkMsQ0FBQztBQUM1RCxjQUFjLDZDQUE2QyxDQUFDO0FBQzVELGNBQWMsNkNBQTZDLENBQUM7QUFDNUQsY0FBYyx5Q0FBeUMsQ0FBQztBQUN4RCxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsMkNBQTJDLENBQUM7QUFDMUQsY0FBYyxpREFBaUQsQ0FBQztBQUNoRSxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsK0NBQStDLENBQUM7QUFDOUQsY0FBYywyQ0FBMkMsQ0FBQztBQUMxRCxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYyxzQ0FBc0MsQ0FBQztBQUNyRCxjQUFjLHdDQUF3QyxDQUFDO0FBQ3ZELGNBQWMsOENBQThDLENBQUM7QUFDN0QsY0FBYywyQ0FBMkMsQ0FBQztBQUMxRCxjQUFjLDhDQUE4QyxDQUFDO0FBQzdELGNBQWMsMkNBQTJDLENBQUM7QUFDMUQsY0FBYyx1Q0FBdUMsQ0FBQztBQUN0RCxjQUFjLHdDQUF3QyxDQUFDO0FBQ3ZELGNBQWMsMkRBQTJELENBQUM7QUFDMUUsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLHdDQUF3QyxDQUFDO0FBQ3ZELGNBQWMsK0RBQStELENBQUM7QUFDOUUsY0FBYyw4Q0FBOEMsQ0FBQztBQUM3RCxjQUFjLG1EQUFtRCxDQUFDO0FBQ2xFLGNBQWMsb0NBQW9DLENBQUM7QUFDbkQsY0FBYyx1Q0FBdUMsQ0FBQztBQUN0RCxjQUFjLGtDQUFrQyxDQUFDO0FBQ2pELGNBQWMsd0NBQXdDLENBQUM7QUFDdkQsY0FBYywwQ0FBMEMsQ0FBQztBQUN6RCxjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMsbUNBQW1DLENBQUM7QUFDbEQsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLHlFQUF5RSxDQUFDO0FBQ3hGLGNBQWMsdUZBQXVGLENBQUM7QUFDdEcsY0FBYyxzRUFBc0UsQ0FBQztBQUNyRixjQUFjLDJEQUEyRCxDQUFDO0FBQzFFLGNBQWMsb0RBQW9ELENBQUM7QUFDbkUsY0FBYyxxRUFBcUUsQ0FBQztBQUNwRixjQUFjLG1EQUFtRCxDQUFDO0FBQ2xFLGNBQWMsbURBQW1ELENBQUM7QUFDbEUsY0FBYyxpRkFBaUYsQ0FBQztBQUNoRyxjQUFjLDJFQUEyRSxDQUFDO0FBQzFGLGNBQWMsK0RBQStELENBQUM7QUFDOUUsY0FBYyxpRUFBaUUsQ0FBQztBQUNoRixjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsZ0NBQWdDLENBQUM7QUFDL0MsY0FBYyx5Q0FBeUMsQ0FBQztBQUN4RCxjQUFjLCtDQUErQyxDQUFDO0FBQzlELGNBQWMsMENBQTBDLENBQUM7QUFDekQsY0FBYyw2Q0FBNkMsQ0FBQztBQUM1RCxjQUFjLDBDQUEwQyxDQUFDO0FBQ3pELGNBQWMsc0NBQXNDLENBQUM7QUFDckQsY0FBYywyRUFBMkUsQ0FBQztBQUMxRixjQUFjLGlGQUFpRixDQUFDO0FBQ2hHLGNBQWMsb0NBQW9DLENBQUM7QUFDbkQsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLCtEQUErRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAZmlsZSBBdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBieSBiYXJyZWxzYnkuXG4gKi9cblxuZXhwb3J0ICogZnJvbSBcIi4vYWxpZ25tZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9jb21wb25lbnRzLm1vZHVsZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vZGlzcG9zYWJsZS1jb21wb25lbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2ZvY3VzYWJsZS5jb21wb25lbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2xvYWRhYmxlLWNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vcmVzaXplLWF3YXJlLmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vdHJhY2tcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2J1c3ktb3ZlcmxheS9idXN5LW92ZXJsYXkuY29tcG9uZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9jYXJkcy9hYnN0cmFjdC1jYXJkLWNvbnRhaW5lci5jb21wb25lbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2NhcmRzL2NhcmQtY29udGFpbmVyL2NhcmQtY29udGFpbmVyLmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vY29tbWFuZHMvY29tbWFuZC1mYWNlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9jb21tYW5kcy9mbGV4LmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vY29tbWFuZHMvc2VwYXJhdG9yLmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vY29tbWFuZHMvYnV0dG9uLXJlbmRlcmVyL2J1dHRvbi1yZW5kZXJlci5jb21wb25lbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2NvbW1hbmRzL2NvbW1hbmQvY29tbWFuZC5jb21wb25lbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2NvbW1hbmRzL2NvbW1hbmQtZmFjZS9jb21tYW5kLWZhY2UuY29tcG9uZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9jb21tYW5kcy9ncm91cC9jb21tYW5kLWNvbnRhaW5lclwiO1xuZXhwb3J0ICogZnJvbSBcIi4vY29tbWFuZHMvZ3JvdXAvcG9wdXAtYXdhcmUuY29tcG9uZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9jb21tYW5kcy9ncm91cC9wb3B1cC1jb250YWluZXJcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2NvbW1hbmRzL2dyb3VwL3BvcHVwLW1lbnUvYWJzdHJhY3QtcG9wdXAtbWVudS5jb21wb25lbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2NvbW1hbmRzL2dyb3VwL3BvcHVwLW1lbnUvbW9yZS1tZW51LmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vY29tbWFuZHMvZ3JvdXAvcG9wdXAtbWVudS9wb3B1cC1tZW51LmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vY29tbWFuZHMvZ3JvdXAvcG9wdXAtbWVudS9wb3B1cC1tZW51LXJlbmRlcmVyL3BvcHVwLW1lbnUtcmVuZGVyZXIuY29tcG9uZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9jb21tYW5kcy9ncm91cC90b29sLWJhci90b29sLWJhci5jb21wb25lbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2VtcHR5LXN0YXRlL2VtcHR5LXN0YXRlLmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vZmlsZS9maWxlLWRvd25sb2FkL2ZpbGUtZG93bmxvYWQuY29tcG9uZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9mb2N1cy1jb250YWluZXIvZm9jdXMtY29udGFpbmVyLmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vZm9ybXMvYWJzdHJhY3QtaW5wdXQuY29tcG9uZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9mb3Jtcy9hYnN0cmFjdC1saXN0LWlucHV0LmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vZm9ybXMvYWJzdHJhY3QtdmFsdWUtaW5wdXQuY29tcG9uZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9mb3Jtcy9mb3JtLWZpZWxkXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9mb3Jtcy9hdXRvY29tcGxldGUtaW5wdXQvYXV0b2NvbXBsZXRlLWlucHV0LmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vZm9ybXMvY2hlY2tib3gtaW5wdXQvY2hlY2tib3gtaW5wdXQuY29tcG9uZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9mb3Jtcy9tdWx0aXBsZS1zZWxlY3QtaW5wdXQvbXVsdGlwbGUtc2VsZWN0LWlucHV0LmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vZm9ybXMvbnVtYmVyLWlucHV0L251bWJlci1pbnB1dC5jb21wb25lbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2Zvcm1zL3Bhc3N3b3JkLWlucHV0L3Bhc3N3b3JkLWlucHV0LmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vZm9ybXMvc2VhcmNoLWlucHV0L3NlYXJjaC1pbnB1dC5jb21wb25lbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2Zvcm1zL3NlbGVjdC1pbnB1dC9zZWxlY3QtaW5wdXQuY29tcG9uZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9mb3Jtcy9zdHJpbmctaW5wdXQvc3RyaW5nLWlucHV0LmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vZm9ybXMvdGV4dC1pbnB1dC90ZXh0LWlucHV0LmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vaWNvbi9pY29uLmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbGFiZWxsZWQtdmFsdWUvbGFiZWxsZWQtdmFsdWUuY29tcG9uZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9sb2FkaW5nLWNvbnRhaW5lci9sb2FkaW5nLWNvbnRhaW5lci5jb21wb25lbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL25vb3Avbm9vcC5jb21wb25lbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3Njcm9sbC1jb250YWluZXIvc2Nyb2xsLWNvbnRhaW5lci5jb21wb25lbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NlY3Rpb24taGVhZGVyL3NlY3Rpb24taGVhZGVyLmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3dpdGNoLWNhc2Uvc3dpdGNoLWNhc2UuY29tcG9uZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi90YWJsZXMvYWJzdHJhY3QtdGFibGUtbW9kZWxcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3RhYmxlcy9hYnN0cmFjdC10YWJsZS5jb21wb25lbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3RhYmxlcy9jb2x1bW4vY29sdW1uLW1hbmFnZXJcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3RhYmxlcy9jb2x1bW4vY29sdW1uLW1vZGVsXCI7XG5leHBvcnQgKiBmcm9tIFwiLi90YWJsZXMvY29sdW1uL2NvbHVtbi1vcmRlci1tYW5hZ2VyXCI7XG5leHBvcnQgKiBmcm9tIFwiLi90YWJsZXMvY29sdW1uL2NvbHVtbi10ZXh0LXByb3BlcnRpZXNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3RhYmxlcy9jb2x1bW4vY3VzdG9tLXRlbXBsYXRlLWNvbHVtbi1tb2RlbFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vdGFibGVzL2NvbHVtbi9jdXN0b20tdmFsdWUtY29sdW1uLW1vZGVsXCI7XG5leHBvcnQgKiBmcm9tIFwiLi90YWJsZXMvY29sdW1uL2VkaXRvci1jb250cm9scy1jb2x1bW4tbW9kZWxcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3RhYmxlcy9jb2x1bW4vbGlzdC1wcm9wZXJ5LWNvbHVtbi1tb2RlbFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vdGFibGVzL2NvbHVtbi9wcm9wZXJ0eS1jb2x1bW4tbW9kZWxcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3RhYmxlcy9jb2x1bW4vc2VsZWN0aW9uLWNvbHVtbi1tb2RlbFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vdGFibGVzL2NvbHVtbi9jb2x1bW4tdGVtcGxhdGUvY29sdW1uLXRlbXBsYXRlLmRpcmVjdGl2ZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vdGFibGVzL2VkaXRvci9lZGl0LXNlc3Npb25cIjtcbmV4cG9ydCAqIGZyb20gXCIuL3RhYmxlcy9lZGl0b3IvZWRpdGFibGUtY2VsbC1yZW5kZXJlclwiO1xuZXhwb3J0ICogZnJvbSBcIi4vdGFibGVzL2VkaXRvci9lZGl0LXJvdy1jb250cm9scy9lZGl0LXJvdy1jb250cm9scy5jb21wb25lbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3RhYmxlcy9maWx0ZXIvY29sdW1uLXRleHQtc2VhcmNoLWZvcm1hdHRlclwiO1xuZXhwb3J0ICogZnJvbSBcIi4vdGFibGVzL2ZpbHRlci9lbmFibGUtY2VsbC10ZXh0LXNlYXJjaC5kZWNvcmF0b3JcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3RhYmxlcy9maWx0ZXIvdGFibGUtZmlsdGVyLW1vZGVsXCI7XG5leHBvcnQgKiBmcm9tIFwiLi90YWJsZXMvZmlsdGVyL3RleHQtc2VhcmNoLXByZWRpY2F0ZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vdGFibGVzL2Zvb3Rlci9mb290ZXItcm93LW1vZGVsXCI7XG5leHBvcnQgKiBmcm9tIFwiLi90YWJsZXMvcGFnaW5hdG9yL3BhZ2luYXRvci5jb21wb25lbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3RhYmxlcy9yZW5kZXJlci9hYnN0cmFjdC1jZWxsLXJlbmRlcmVyXCI7XG5leHBvcnQgKiBmcm9tIFwiLi90YWJsZXMvcmVuZGVyZXIvY2VsbC1lZGl0b3JzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi90YWJsZXMvcmVuZGVyZXIvY2VsbC1wb3J0YWwtcmVmXCI7XG5leHBvcnQgKiBmcm9tIFwiLi90YWJsZXMvcmVuZGVyZXIvY2VsbC1yZW5kZXJlclwiO1xuZXhwb3J0ICogZnJvbSBcIi4vdGFibGVzL3JlbmRlcmVyL2RlZmF1bHQtY2VsbC1yZW5kZXJlci9kZWZhdWx0LWNlbGwtcmVuZGVyZXIuY29tcG9uZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi90YWJsZXMvcmVuZGVyZXIvZGVmYXVsdC1oZWFkZXItY2VsbC1yZW5kZXJlci9kZWZhdWx0LWhlYWRlci1jZWxsLXJlbmRlcmVyLmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vdGFibGVzL3JlbmRlcmVyL3NlbGVjdC1oZWFkZXItY2VsbC9zZWxlY3Rpb24taGVhZGVyLWNlbGwuY29tcG9uZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi90YWJsZXMvcmVuZGVyZXIvc2VsZWN0aW9uLWNlbGwvc2VsZWN0aW9uLWNlbGwuY29tcG9uZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi90YWJsZXMvcmVuZGVyZXIvdGFibGUtYWN0aW9uLWNvbHVtbi9tZW51LWJ1aWxkZXJcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3RhYmxlcy9yZW5kZXJlci90YWJsZS1hY3Rpb24tY29sdW1uL3RhYmxlLWFjdGlvbi1jb2x1bW4uY29tcG9uZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi90YWJsZXMvcmVuZGVyZXIvdGFibGUtYm9keS90YWJsZS1ib2R5LmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vdGFibGVzL3JlbmRlcmVyL3RhYmxlLWNlbGwvdGFibGUtY2VsbC5jb21wb25lbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3RhYmxlcy9yZW5kZXJlci90YWJsZS1jdXN0b20tbW9yZS1tZW51L3RhYmxlLWN1c3RvbS1tb3JlLW1lbnUtcG9wdXAuY29tcG9uZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi90YWJsZXMvcmVuZGVyZXIvdGFibGUtY3VzdG9tLW1vcmUtbWVudS90YWJsZS1jdXN0b20tbW9yZS1tZW51LmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vdGFibGVzL3JlbmRlcmVyL3RhYmxlLWZvb3Rlci1yb3cvdGFibGUtZm9vdGVyLXJvdy5jb21wb25lbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3RhYmxlcy9yZW5kZXJlci90YWJsZS1oZWFkZXItY2VsbC90YWJsZS1oZWFkZXItY2VsbC5jb21wb25lbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3RhYmxlcy90YWJsZS90YWJsZS1tb2RlbFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vdGFibGVzL3RhYmxlL3RhYmxlLmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vdGFibGVzL3RyZWUtdGFibGUvZGVjb3JhdGVkLXRyZWUtbm9kZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vdGFibGVzL3RyZWUtdGFibGUvZmxhdHRlbmVkLXRyZWUtbGlzdC1tb2RlbFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vdGFibGVzL3RyZWUtdGFibGUvdHJlZS1leHBhbnNpb24tbW9kZWxcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3RhYmxlcy90cmVlLXRhYmxlL3RyZWUtbGFiZWwtY29sdW1uLW1vZGVsXCI7XG5leHBvcnQgKiBmcm9tIFwiLi90YWJsZXMvdHJlZS10YWJsZS90cmVlLXRhYmxlLWNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vdGFibGVzL3RyZWUtdGFibGUvdHJlZS10YWJsZS1tb2RlbFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vdGFibGVzL3RyZWUtdGFibGUvdHJlZS1pbmhlcml0YW5jZS1pY29uL3RyZWUtaW5oZXJpdGFuY2UtaWNvbi5jb21wb25lbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3RhYmxlcy90cmVlLXRhYmxlL3RyZWUtbGFiZWwtY2VsbC1yZW5kZXJlci90cmVlLWxhYmVsLWNlbGwtcmVuZGVyZXIuY29tcG9uZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi90ZXh0L21hcmtkb3duL21hcmtkb3duLmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vdHlwZXMvYm91bmRzLmNsYXNzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi90eXBlcy9kaW1lbnNpb24uY2xhc3NcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3R5cGVzL2xvYWRhYmxlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi90eXBlcy9wb2ludC5jbGFzc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vdmVydGljYWwtZm9jdXMtY29udGFpbmVyL3ZlcnRpY2FsLWZvY3VzLWNvbnRhaW5lci5jb21wb25lbnRcIjtcbiJdfQ==
@@ -0,0 +1,78 @@
1
+ import { __decorate, __metadata } from "tslib";
2
+ import { Component, HostBinding, Input } from '@angular/core';
3
+ import { Dsl, proxify, Proxify, StoreInValueModel, ValueModel } from '@coolon/pectin';
4
+ import { HorizontalAlignment } from "../../alignment";
5
+ import { CommandFace as CommandFaceUtil } from '../../commands/command-face';
6
+ import { PopupAwareComponent } from '../../commands/group/popup-aware.component';
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "@angular/common";
9
+ import * as i2 from "@angular/material/button";
10
+ import * as i3 from "@angular/material/tooltip";
11
+ import * as i4 from "@angular/material/menu";
12
+ import * as i5 from "../../commands/command-face/command-face.component";
13
+ // TODO: this is an ugly copy and paste hack from the Command component.
14
+ /**
15
+ *
16
+ */
17
+ export class FileDownloadComponent extends PopupAwareComponent {
18
+ CommandFaceUtil = CommandFaceUtil;
19
+ #download$_accessor_storage = proxify((ValueModel));
20
+ get download$() { return this.#download$_accessor_storage; }
21
+ set download$(value) { this.#download$_accessor_storage = value; }
22
+ #download_accessor_storage;
23
+ get download() { return this.#download_accessor_storage; }
24
+ set download(value) { this.#download_accessor_storage = value; }
25
+ alignFace = HorizontalAlignment.CENTER;
26
+ faces$;
27
+ buttonStyle$;
28
+ color$;
29
+ tooltip$;
30
+ constructor() {
31
+ super();
32
+ const { chain } = Dsl.disposeWith(this);
33
+ this.faces$ = chain(this.download$).map(it => {
34
+ return it.icon ? it : {
35
+ ...it,
36
+ icon() {
37
+ return 'mat:file_download';
38
+ },
39
+ };
40
+ }).mapToList();
41
+ this.buttonStyle$ = chain(this.download$).map(f => CommandFaceUtil.getStyleOf(f));
42
+ this.color$ = chain(this.download$).map(f => CommandFaceUtil.getColorOf(f));
43
+ this.tooltip$ = chain(this.download$).map(f => CommandFaceUtil.getTooltipOf(f));
44
+ }
45
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: FileDownloadComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
46
+ 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 [href]=\"download?.url\" [download]=\"download?.saveAs\" [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"] }] });
47
+ }
48
+ __decorate([
49
+ Proxify(),
50
+ __metadata("design:type", ValueModel)
51
+ ], FileDownloadComponent.prototype, "download$", null);
52
+ __decorate([
53
+ StoreInValueModel(),
54
+ __metadata("design:type", Object)
55
+ ], FileDownloadComponent.prototype, "download", null);
56
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: FileDownloadComponent, decorators: [{
57
+ type: Component,
58
+ 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 [href]=\"download?.url\" [download]=\"download?.saveAs\" [matTooltip]=\"tooltip$.value\">\n <aup-command-face [class]=\"alignFace\" [faces]=\"faces$.value\"></aup-command-face>\n </a>\n</ng-container>\n\n" }]
59
+ }], ctorParameters: function () { return []; }, propDecorators: { download$: [{
60
+ type: Input
61
+ }], download: [{
62
+ type: Input
63
+ }], alignFace: [{
64
+ type: Input
65
+ }, {
66
+ type: HostBinding,
67
+ args: ["class"]
68
+ }] } });
69
+ (function (FileDownloadComponent) {
70
+ function createInfo(options) {
71
+ return {
72
+ ...options,
73
+ ...options.face,
74
+ };
75
+ }
76
+ FileDownloadComponent.createInfo = createInfo;
77
+ })(FileDownloadComponent || (FileDownloadComponent = {}));
78
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1kb3dubG9hZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdWktcG93ZXJ1cHMvc3JjL2xpYi9jb21wb25lbnRzL2ZpbGUvZmlsZS1kb3dubG9hZC9maWxlLWRvd25sb2FkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci11aS1wb3dlcnVwcy9zcmMvbGliL2NvbXBvbmVudHMvZmlsZS9maWxlLWRvd25sb2FkL2ZpbGUtZG93bmxvYWQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQWMsV0FBVyxFQUFVLEtBQUssRUFBVyxNQUFNLGVBQWUsQ0FBQztBQUcxRixPQUFPLEVBRUwsR0FBRyxFQUVILE9BQU8sRUFDUCxPQUFPLEVBQ1AsaUJBQWlCLEVBQ2pCLFVBQVUsRUFFWCxNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ3BELE9BQU8sRUFBQyxXQUFXLElBQUksZUFBZSxFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFFM0UsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sNENBQTRDLENBQUM7Ozs7Ozs7QUFHL0Usd0VBQXdFO0FBQ3hFOztHQUVHO0FBTUgsTUFBTSxPQUFPLHFCQUFzQixTQUFRLG1CQUFtQjtJQUV6QyxlQUFlLEdBQUcsZUFBZSxDQUFDO0lBRzVDLDhCQUE0RCxPQUFPLENBQUMsQ0FBQSxVQUE4QyxDQUFBLENBQUMsQ0FBQztJQUFwSCxJQUFBLFNBQVMsK0NBQTJHO0lBQXBILElBQUEsU0FBUyxxREFBMkc7SUFHcEgsMkJBQTZDO0lBQTdDLElBQUEsUUFBUSw4Q0FBcUM7SUFBN0MsSUFBQSxRQUFRLG9EQUFxQztJQUl0RCxTQUFTLEdBQXdCLG1CQUFtQixDQUFDLE1BQU0sQ0FBQztJQUVuRCxNQUFNLENBQWdEO0lBRTVDLFlBQVksQ0FBMEI7SUFDdEMsTUFBTSxDQUFnQztJQUN0QyxRQUFRLENBQTBCO0lBRXJEO1FBQ0UsS0FBSyxFQUFFLENBQUM7UUFDUixNQUFNLEVBQUMsS0FBSyxFQUFDLEdBQUcsR0FBRyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUV0QyxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFO1lBQzNDLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztnQkFDcEIsR0FBRyxFQUFFO2dCQUNMLElBQUk7b0JBQ0YsT0FBTyxtQkFBbUIsQ0FBQTtnQkFDNUIsQ0FBQzthQUNGLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNmLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbEYsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLGVBQWUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM1RSxJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsZUFBZSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2xGLENBQUM7dUdBbkNVLHFCQUFxQjsyRkFBckIscUJBQXFCLHVOQzVCbEMseXlDQThCQTs7QURHVztJQURDLE9BQU8sRUFBRTs4QkFDQyxVQUFVO3NEQUErRjtBQUdwSDtJQURDLGlCQUFpQixFQUFFOztxREFDeUI7MkZBUjNDLHFCQUFxQjtrQkFMakMsU0FBUzsrQkFDRSxtQkFBbUI7MEVBU3BCLFNBQVM7c0JBRGpCLEtBQUs7Z0JBSUcsUUFBUTtzQkFEaEIsS0FBSztnQkFLTixTQUFTO3NCQUZSLEtBQUs7O3NCQUNMLFdBQVc7dUJBQUMsT0FBTzs7QUE0QnRCLFdBQWlCLHFCQUFxQjtJQUVwQyxTQUFnQixVQUFVLENBQUMsT0FBMkQ7UUFDcEYsT0FBTztZQUNMLEdBQUcsT0FBTztZQUNWLEdBQUcsT0FBTyxDQUFDLElBQUk7U0FDaEIsQ0FBQTtJQUNILENBQUM7SUFMZSxnQ0FBVSxhQUt6QixDQUFBO0FBTUgsQ0FBQyxFQWJnQixxQkFBcUIsS0FBckIscUJBQXFCLFFBYXJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEVsZW1lbnRSZWYsIEhvc3RCaW5kaW5nLCBJbmplY3QsIElucHV0LCBPcHRpb25hbH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1RoZW1lUGFsZXR0ZX0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2NvcmVcIjtcbmltcG9ydCB7TWF0TWVudX0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL21lbnVcIjtcbmltcG9ydCB7XG4gIENvbW1hbmRGYWNlLFxuICBEc2wsXG4gIExpc3RNb2RlbCxcbiAgcHJveGlmeSxcbiAgUHJveGlmeSxcbiAgU3RvcmVJblZhbHVlTW9kZWwsXG4gIFZhbHVlTW9kZWwsXG4gIFZhbHVlTW9kZWxDaGFpblxufSBmcm9tICdAY29vbG9uL3BlY3Rpbic7XG5pbXBvcnQge0hvcml6b250YWxBbGlnbm1lbnR9IGZyb20gXCIuLi8uLi9hbGlnbm1lbnRcIjtcbmltcG9ydCB7Q29tbWFuZEZhY2UgYXMgQ29tbWFuZEZhY2VVdGlsfSBmcm9tICcuLi8uLi9jb21tYW5kcy9jb21tYW5kLWZhY2UnO1xuaW1wb3J0IHtDb21tYW5kQ29udGFpbmVyfSBmcm9tICcuLi8uLi9jb21tYW5kcy9ncm91cC9jb21tYW5kLWNvbnRhaW5lcic7XG5pbXBvcnQge1BvcHVwQXdhcmVDb21wb25lbnR9IGZyb20gJy4uLy4uL2NvbW1hbmRzL2dyb3VwL3BvcHVwLWF3YXJlLmNvbXBvbmVudCc7XG5pbXBvcnQge1BPUFVQX0NPTlRBSU5FUiwgUG9wdXBDb250YWluZXJ9IGZyb20gJy4uLy4uL2NvbW1hbmRzL2dyb3VwL3BvcHVwLWNvbnRhaW5lcic7XG5cbi8vIFRPRE86IHRoaXMgaXMgYW4gdWdseSBjb3B5IGFuZCBwYXN0ZSBoYWNrIGZyb20gdGhlIENvbW1hbmQgY29tcG9uZW50LlxuLyoqXG4gKlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhdXAtZmlsZS1kb3dubG9hZCcsXG4gIHRlbXBsYXRlVXJsOiBcImZpbGUtZG93bmxvYWQuY29tcG9uZW50Lmh0bWxcIixcbiAgc3R5bGVVcmxzOiBbXCJmaWxlLWRvd25sb2FkLmNvbXBvbmVudC5zY3NzXCJdXG59KVxuZXhwb3J0IGNsYXNzIEZpbGVEb3dubG9hZENvbXBvbmVudCBleHRlbmRzIFBvcHVwQXdhcmVDb21wb25lbnQge1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBDb21tYW5kRmFjZVV0aWwgPSBDb21tYW5kRmFjZVV0aWw7XG5cbiAgQElucHV0KCkgQFByb3hpZnkoKVxuICBhY2Nlc3NvciBkb3dubG9hZCQ6IFZhbHVlTW9kZWw8RmlsZURvd25sb2FkQ29tcG9uZW50LkRvd25sb2FkSW5mbz4gPSBwcm94aWZ5KFZhbHVlTW9kZWw8RmlsZURvd25sb2FkQ29tcG9uZW50LkRvd25sb2FkSW5mbz4pO1xuXG4gIEBJbnB1dCgpIEBTdG9yZUluVmFsdWVNb2RlbCgpXG4gIGFjY2Vzc29yIGRvd25sb2FkOiBGaWxlRG93bmxvYWRDb21wb25lbnQuRG93bmxvYWRJbmZvO1xuXG4gIEBJbnB1dCgpXG4gIEBIb3N0QmluZGluZyhcImNsYXNzXCIpXG4gIGFsaWduRmFjZTogSG9yaXpvbnRhbEFsaWdubWVudCA9IEhvcml6b250YWxBbGlnbm1lbnQuQ0VOVEVSO1xuXG4gIHJlYWRvbmx5IGZhY2VzJDogTGlzdE1vZGVsPEZpbGVEb3dubG9hZENvbXBvbmVudC5Eb3dubG9hZEluZm8+O1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBidXR0b25TdHlsZSQ6IFZhbHVlTW9kZWxDaGFpbjxzdHJpbmc+O1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgY29sb3IkOiBWYWx1ZU1vZGVsQ2hhaW48VGhlbWVQYWxldHRlPjtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHRvb2x0aXAkOiBWYWx1ZU1vZGVsQ2hhaW48c3RyaW5nPjtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICAgIGNvbnN0IHtjaGFpbn0gPSBEc2wuZGlzcG9zZVdpdGgodGhpcyk7XG5cbiAgICB0aGlzLmZhY2VzJCA9IGNoYWluKHRoaXMuZG93bmxvYWQkKS5tYXAoaXQgPT4ge1xuICAgICAgcmV0dXJuIGl0Lmljb24gPyBpdCA6IHtcbiAgICAgICAgLi4uaXQsXG4gICAgICAgIGljb24oKSB7XG4gICAgICAgICAgcmV0dXJuICdtYXQ6ZmlsZV9kb3dubG9hZCdcbiAgICAgICAgfSxcbiAgICAgIH07XG4gICAgfSkubWFwVG9MaXN0KCk7XG4gICAgdGhpcy5idXR0b25TdHlsZSQgPSBjaGFpbih0aGlzLmRvd25sb2FkJCkubWFwKGYgPT4gQ29tbWFuZEZhY2VVdGlsLmdldFN0eWxlT2YoZikpO1xuICAgIHRoaXMuY29sb3IkID0gY2hhaW4odGhpcy5kb3dubG9hZCQpLm1hcChmID0+IENvbW1hbmRGYWNlVXRpbC5nZXRDb2xvck9mKGYpKTtcbiAgICB0aGlzLnRvb2x0aXAkID0gY2hhaW4odGhpcy5kb3dubG9hZCQpLm1hcChmID0+IENvbW1hbmRGYWNlVXRpbC5nZXRUb29sdGlwT2YoZikpO1xuICB9XG5cbn1cblxuZXhwb3J0IG5hbWVzcGFjZSBGaWxlRG93bmxvYWRDb21wb25lbnQge1xuXG4gIGV4cG9ydCBmdW5jdGlvbiBjcmVhdGVJbmZvKG9wdGlvbnM6IHsgZmFjZTogQ29tbWFuZEZhY2UsIHVybDogc3RyaW5nLCBzYXZlQXM6IHN0cmluZyB9KSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgICAuLi5vcHRpb25zLmZhY2UsXG4gICAgfVxuICB9XG5cbiAgZXhwb3J0IGludGVyZmFjZSBEb3dubG9hZEluZm8gZXh0ZW5kcyBDb21tYW5kRmFjZSB7XG4gICAgc2F2ZUFzOiBzdHJpbmc7XG4gICAgdXJsOiBzdHJpbmc7XG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCIhaW5Qb3B1cFwiPlxuICA8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJidXR0b25TdHlsZSQudmFsdWVcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCJDb21tYW5kRmFjZVV0aWwuU3R5bGUuU1RST0tFRFwiPlxuICAgICAgPGEgbWF0LXN0cm9rZWQtYnV0dG9uIFtocmVmXT1cImRvd25sb2FkPy51cmxcIiBbZG93bmxvYWRdPVwiZG93bmxvYWQ/LnNhdmVBc1wiXG4gICAgICAgICBbbWF0VG9vbHRpcF09XCJ0b29sdGlwJC52YWx1ZVwiPlxuICAgICAgICA8YXVwLWNvbW1hbmQtZmFjZSBbY2xhc3NdPVwiYWxpZ25GYWNlXCIgW2ZhY2VzXT1cImZhY2VzJC52YWx1ZVwiPjwvYXVwLWNvbW1hbmQtZmFjZT5cbiAgICAgIDwvYT5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCJDb21tYW5kRmFjZVV0aWwuU3R5bGUuUkFJU0VEXCI+XG4gICAgICA8YSBtYXQtcmFpc2VkLWJ1dHRvbiBbaHJlZl09XCJkb3dubG9hZD8udXJsXCIgW2Rvd25sb2FkXT1cImRvd25sb2FkPy5zYXZlQXNcIlxuICAgICAgICAgW21hdFRvb2x0aXBdPVwidG9vbHRpcCQudmFsdWVcIj5cbiAgICAgICAgPGF1cC1jb21tYW5kLWZhY2UgW2NsYXNzXT1cImFsaWduRmFjZVwiIFtmYWNlc109XCJmYWNlcyQudmFsdWVcIj48L2F1cC1jb21tYW5kLWZhY2U+XG4gICAgICA8L2E+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hEZWZhdWx0PlxuICAgICAgPGEgbWF0LWJ1dHRvbiBbaHJlZl09XCJkb3dubG9hZD8udXJsXCIgW2Rvd25sb2FkXT1cImRvd25sb2FkPy5zYXZlQXNcIlxuICAgICAgICAgW21hdFRvb2x0aXBdPVwidG9vbHRpcCQudmFsdWVcIj5cbiAgICAgICAgPGF1cC1jb21tYW5kLWZhY2UgW2NsYXNzXT1cImFsaWduRmFjZVwiIFtmYWNlc109XCJmYWNlcyQudmFsdWVcIj48L2F1cC1jb21tYW5kLWZhY2U+XG4gICAgICA8L2E+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvbmctY29udGFpbmVyPlxuXG48L25nLWNvbnRhaW5lcj5cblxuPG5nLWNvbnRhaW5lciAqbmdJZj1cImluUG9wdXBcIj5cbiAgPGEgbWF0LW1lbnUtaXRlbSBbaHJlZl09XCJkb3dubG9hZD8udXJsXCIgW2Rvd25sb2FkXT1cImRvd25sb2FkPy5zYXZlQXNcIiBbbWF0VG9vbHRpcF09XCJ0b29sdGlwJC52YWx1ZVwiPlxuICAgIDxhdXAtY29tbWFuZC1mYWNlIFtjbGFzc109XCJhbGlnbkZhY2VcIiBbZmFjZXNdPVwiZmFjZXMkLnZhbHVlXCI+PC9hdXAtY29tbWFuZC1mYWNlPlxuICA8L2E+XG48L25nLWNvbnRhaW5lcj5cblxuIl19
@@ -1,6 +1,8 @@
1
+ import { __decorate, __metadata } from "tslib";
2
+ /* eslint-disable @angular-eslint/no-input-rename */
1
3
  /* tslint:disable:no-input-rename */
2
4
  import { Component, EventEmitter, HostBinding, HostListener, Inject, InjectionToken, Input, Output } from '@angular/core';
3
- import { Command, DelegatingValueModel, EventListenerList, ValueModel } from '@coolon/pectin';
5
+ import { Command, DelegatingValueModel, EventListenerList, MutableValueModel, proxify, Proxify, StoreInValueModel, ValueModel } from '@coolon/pectin';
4
6
  import { DisposableComponent } from '../disposable-component';
5
7
  import * as i0 from "@angular/core";
6
8
  const INPUT_TOKEN_HACK = new InjectionToken("INPUT_TOKEN_HACK");
@@ -17,11 +19,16 @@ export class AbstractInputComponent extends DisposableComponent {
17
19
  * gets told it's an Object and can't scan for a base type annotated with @DelegateUsing(..).
18
20
  */
19
21
  formValue$;
20
- label;
21
- // eslint-disable-next-line @angular-eslint/no-input-rename
22
+ #i18n$_accessor_storage = proxify((MutableValueModel));
23
+ get i18n$() { return this.#i18n$_accessor_storage; }
24
+ set i18n$(value) { this.#i18n$_accessor_storage = value; }
25
+ #i18n_accessor_storage;
26
+ get i18n() { return this.#i18n_accessor_storage; }
27
+ set i18n(value) { this.#i18n_accessor_storage = value; }
28
+ _label;
22
29
  userFloatLabel = 'always'; // TODO: make this an injectable default
23
- hint;
24
- placeholder;
30
+ _hint;
31
+ _placeholder;
25
32
  dense = false;
26
33
  _enabled$ = this.registerDisposable(new DelegatingValueModel());
27
34
  set enabled$(condition$) {
@@ -88,6 +95,9 @@ export class AbstractInputComponent extends DisposableComponent {
88
95
  isEnabled() {
89
96
  return this.enabled$.value;
90
97
  }
98
+ get disabled() {
99
+ return !this.isEnabled();
100
+ }
91
101
  hasErrors() {
92
102
  return !this.errorList$.query().isEmpty();
93
103
  }
@@ -100,6 +110,15 @@ export class AbstractInputComponent extends DisposableComponent {
100
110
  get focusContext() {
101
111
  return this.formValue$.focusContext;
102
112
  }
113
+ get label() {
114
+ return this._label ?? this.i18n?.label();
115
+ }
116
+ get hint() {
117
+ return this._hint ?? this.hackyGetI18n("hint");
118
+ }
119
+ get placeholder() {
120
+ return this._placeholder ?? this.hackyGetI18n("placeholder");
121
+ }
103
122
  get floatLabel() {
104
123
  // return this.dense ? 'never' : this.userFloatLabel;
105
124
  return this.userFloatLabel;
@@ -114,24 +133,45 @@ export class AbstractInputComponent extends DisposableComponent {
114
133
  onValueEdited(callback) {
115
134
  return this.onValueEditedListeners.add(callback);
116
135
  }
136
+ hackyGetI18n(key) {
137
+ // TODO: update I18n to make it possible to get an optional value with return the missing key message.
138
+ const i18nFn = this.i18n ? this.i18n[key] : undefined;
139
+ const i18nValue = i18nFn && i18nFn();
140
+ return i18nValue?.startsWith("missing key") ? undefined : i18nValue;
141
+ }
117
142
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: AbstractInputComponent, deps: [{ token: INPUT_TOKEN_HACK }], target: i0.ɵɵFactoryTarget.Component });
118
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: AbstractInputComponent, selector: "ng-component", inputs: { label: "label", userFloatLabel: ["floatLabel", "userFloatLabel"], hint: "hint", placeholder: "placeholder", dense: "dense", enabled$: "enabled$", focusCommand: ["command.focus", "focusCommand"], blurCommand: ["command.blur", "blurCommand"], enterCommand: ["command.enter", "enterCommand"], escapeCommand: ["command.escape", "escapeCommand"], clickCommand: ["command.click", "clickCommand"] }, outputs: { focus: "focus", blur: "blur", enterKey: "enterKey", escapeKey: "escapeKey" }, host: { listeners: { "click": "notifyClick()", "focusin": "notifyFocusIn()", "focusout": "notifyFocusOut()" }, properties: { "class.dense": "this.dense", "class": "this.baseClassName" } }, usesInheritance: true, ngImport: i0, template: '', isInline: true });
143
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: AbstractInputComponent, selector: "ng-component", inputs: { i18n$: "i18n$", i18n: "i18n", _label: ["label", "_label"], userFloatLabel: ["floatLabel", "userFloatLabel"], _hint: ["hint", "_hint"], _placeholder: ["placeholder", "_placeholder"], dense: "dense", enabled$: "enabled$", focusCommand: ["command.focus", "focusCommand"], blurCommand: ["command.blur", "blurCommand"], enterCommand: ["command.enter", "enterCommand"], escapeCommand: ["command.escape", "escapeCommand"], clickCommand: ["command.click", "clickCommand"] }, outputs: { focus: "focus", blur: "blur", enterKey: "enterKey", escapeKey: "escapeKey" }, host: { listeners: { "click": "notifyClick()", "focusin": "notifyFocusIn()", "focusout": "notifyFocusOut()" }, properties: { "class.dense": "this.dense", "class": "this.baseClassName", "class.disabled": "this.disabled" } }, usesInheritance: true, ngImport: i0, template: '', isInline: true });
119
144
  }
145
+ __decorate([
146
+ Proxify(),
147
+ __metadata("design:type", Object)
148
+ ], AbstractInputComponent.prototype, "i18n$", null);
149
+ __decorate([
150
+ StoreInValueModel(),
151
+ __metadata("design:type", Object)
152
+ ], AbstractInputComponent.prototype, "i18n", null);
120
153
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: AbstractInputComponent, decorators: [{
121
154
  type: Component,
122
155
  args: [{ template: '' }]
123
156
  }], ctorParameters: function () { return [{ type: undefined, decorators: [{
124
157
  type: Inject,
125
158
  args: [INPUT_TOKEN_HACK]
126
- }] }]; }, propDecorators: { label: [{
159
+ }] }]; }, propDecorators: { i18n$: [{
160
+ type: Input
161
+ }], i18n: [{
127
162
  type: Input
163
+ }], _label: [{
164
+ type: Input,
165
+ args: ["label"]
128
166
  }], userFloatLabel: [{
129
167
  type: Input,
130
168
  args: ['floatLabel']
131
- }], hint: [{
132
- type: Input
133
- }], placeholder: [{
134
- type: Input
169
+ }], _hint: [{
170
+ type: Input,
171
+ args: ['hint']
172
+ }], _placeholder: [{
173
+ type: Input,
174
+ args: ['placeholder']
135
175
  }], dense: [{
136
176
  type: HostBinding,
137
177
  args: ['class.dense']
@@ -174,5 +214,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
174
214
  }], notifyFocusOut: [{
175
215
  type: HostListener,
176
216
  args: ['focusout']
217
+ }], disabled: [{
218
+ type: HostBinding,
219
+ args: ["class.disabled"]
177
220
  }] } });
178
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QtaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXVpLXBvd2VydXBzL3NyYy9saWIvY29tcG9uZW50cy9mb3Jtcy9hYnN0cmFjdC1pbnB1dC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsb0NBQW9DO0FBQ3BDLE9BQU8sRUFBQyxTQUFTLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLGNBQWMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBSXhILE9BQU8sRUFDTCxPQUFPLEVBQ1Asb0JBQW9CLEVBRXBCLGlCQUFpQixFQUlqQixVQUFVLEVBQ1gsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQzs7QUFTNUQsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLGNBQWMsQ0FBa0Isa0JBQWtCLENBQUMsQ0FBQTtBQUdoRixNQUFNLE9BQU8sc0JBQTBCLFNBQVEsbUJBQW1CO0lBRXRELHNCQUFzQixHQUFHLElBQUksaUJBQWlCLEVBQTJCLENBQUM7SUFFcEY7Ozs7Ozs7OztPQVNHO0lBQ2dCLFVBQVUsQ0FBZTtJQUVuQyxLQUFLLENBQVM7SUFDdkIsMkRBQTJEO0lBQ3RDLGNBQWMsR0FBbUIsUUFBUSxDQUFDLENBQUMsd0NBQXdDO0lBQy9GLElBQUksQ0FBUztJQUNiLFdBQVcsQ0FBUztJQUdwQixLQUFLLEdBQUcsS0FBSyxDQUFDO0lBRU4sU0FBUyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLG9CQUFvQixFQUFXLENBQUMsQ0FBQTtJQUV6RixJQUNJLFFBQVEsQ0FBQyxVQUErQjtRQUMxQyxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRUQs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QUFXO3VCQUFDLE9BQU87Z0JBSXBCLFdBQVc7c0JBRFYsWUFBWTt1QkFBQyxPQUFPO2dCQU1yQixhQUFhO3NCQURaLFlBQVk7dUJBQUMsU0FBUztnQkFPdkIsY0FBYztzQkFEYixZQUFZO3VCQUFDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyIvKiB0c2xpbnQ6ZGlzYWJsZTpuby1pbnB1dC1yZW5hbWUgKi9cbmltcG9ydCB7Q29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIEhvc3RCaW5kaW5nLCBIb3N0TGlzdGVuZXIsIEluamVjdCwgSW5qZWN0aW9uVG9rZW4sIElucHV0LCBPdXRwdXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtGb3JtR3JvdXBEaXJlY3RpdmUsIE5nRm9ybSwgVW50eXBlZEZvcm1Db250cm9sfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge0Vycm9yU3RhdGVNYXRjaGVyfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcbmltcG9ydCB7RmxvYXRMYWJlbFR5cGV9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkXCI7XG5pbXBvcnQge1xuICBDb21tYW5kLFxuICBEZWxlZ2F0aW5nVmFsdWVNb2RlbCxcbiAgRGlzcG9zYWJsZSxcbiAgRXZlbnRMaXN0ZW5lckxpc3QsXG4gIEZvY3VzTWFuYWdlcixcbiAgSU11dGFibGVIYXNWYWx1ZSxcbiAgTGlzdE1vZGVsLFxuICBWYWx1ZU1vZGVsXG59IGZyb20gJ0Bjb29sb24vcGVjdGluJztcbmltcG9ydCB7RGlzcG9zYWJsZUNvbXBvbmVudH0gZnJvbSAnLi4vZGlzcG9zYWJsZS1jb21wb25lbnQnO1xuXG5pbnRlcmZhY2UgSW5wdXRNb2RlbDxUPiBleHRlbmRzIElNdXRhYmxlSGFzVmFsdWU8VD4sIERpc3Bvc2FibGUge1xuICB2YWx1ZTogVDtcbiAgZW5hYmxlZCQ6IFZhbHVlTW9kZWw8Ym9vbGVhbj47XG4gIGVycm9ycyQ6IExpc3RNb2RlbDxzdHJpbmc+O1xuICBmb2N1c0NvbnRleHQ6IEZvY3VzTWFuYWdlci5Db250ZXh0O1xufVxuXG5jb25zdCBJTlBVVF9UT0tFTl9IQUNLID0gbmV3IEluamVjdGlvblRva2VuPElucHV0TW9kZWw8YW55Pj4oXCJJTlBVVF9UT0tFTl9IQUNLXCIpXG5cbkBDb21wb25lbnQoe3RlbXBsYXRlOiAnJ30pXG5leHBvcnQgY2xhc3MgQWJzdHJhY3RJbnB1dENvbXBvbmVudDxUPiBleHRlbmRzIERpc3Bvc2FibGVDb21wb25lbnQge1xuXG4gIHByb3RlY3RlZCBvblZhbHVlRWRpdGVkTGlzdGVuZXJzID0gbmV3IEV2ZW50TGlzdGVuZXJMaXN0PChpczogVCwgd2FzOiBUKSA9PiB2b2lkPigpO1xuXG4gIC8qKlxuICAgKiBBIGJhY2tpbmcgbW9kZWwgZm9yIGFsbCBvdXIgQElucHV0KCkgdmFsdWVNb2RlbCBwcm9wZXJ0aWVzIHdoaWNoIHNob3VsZCBiZSBkZWZpbmVkIGFzIGZvbGxvd3MuXG4gICAqXG4gICAqICAgIEBJbnB1dCgpIEBQcm94aWZ5KHt1c2VFeGlzdGluZzogXCJvdGhlck1vZGVsJFwifSlcbiAgICogICAgdmFsdWUkOiAgRGlydHlUcmFja2luZ0Zvcm0uVmFsdWVNb2RlbDxzdHJpbmc+IHwgTXV0YWJsZVZhbHVlTW9kZWw8c3RyaW5nPjtcbiAgICpcbiAgICogVGhpcyBhcHByb2FjaCBhbGxvd3MgdGhlIGlucHV0IHRvIGFjY2VwdCBwbGFpbiBvciBmb3JtIG1vZGVscyBidXQgYWxsIGJhY2tlZCBieSBhIGZvcm1cbiAgICogZnJpZW5kbHkgZGVsZWdhdGUuICBXZSBoYXZlIHRvIHVzZSBhbiBleGlzdGluZyBkZWxlZ2F0ZSBmb3IgdW5pb24gdHlwZXMgYXMgcGVjdGluIGp1c3RcbiAgICogZ2V0cyB0b2xkIGl0J3MgYW4gT2JqZWN0IGFuZCBjYW4ndCBzY2FuIGZvciBhIGJhc2UgdHlwZSBhbm5vdGF0ZWQgd2l0aCBARGVsZWdhdGVVc2luZyguLikuXG4gICAqL1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZm9ybVZhbHVlJDogSW5wdXRNb2RlbDxUPlxuXG4gIEBJbnB1dCgpIGxhYmVsOiBzdHJpbmc7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXQtcmVuYW1lXG4gIEBJbnB1dCgnZmxvYXRMYWJlbCcpIHVzZXJGbG9hdExhYmVsOiBGbG9hdExhYmVsVHlwZSA9ICdhbHdheXMnOyAvLyBUT0RPOiBtYWtlIHRoaXMgYW4gaW5qZWN0YWJsZSBkZWZhdWx0XG4gIEBJbnB1dCgpIGhpbnQ6IHN0cmluZztcbiAgQElucHV0KCkgcGxhY2Vob2xkZXI6IHN0cmluZztcblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmRlbnNlJylcbiAgQElucHV0KCkgZGVuc2UgPSBmYWxzZTtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9lbmFibGVkJCA9IHRoaXMucmVnaXN0ZXJEaXNwb3NhYmxlKG5ldyBEZWxlZ2F0aW5nVmFsdWVNb2RlbDxib29sZWFuPigpKVxuXG4gIEBJbnB1dCgpXG4gIHNldCBlbmFibGVkJChjb25kaXRpb24kOiBWYWx1ZU1vZGVsPGJvb2xlYW4+KSB7XG4gICAgdGhpcy5fZW5hYmxlZCQuc2V0RGVsZWdhdGUoY29uZGl0aW9uJCk7XG4gIH1cblxuICBnZXQgZW5hYmxlZCQoKTogVmFsdWVNb2RlbDxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMuX2VuYWJsZWQkLnJlYWRvbmx5JDtcbiAgfVxuXG4gIC8vIE5vdGU6IEkgZG9uJ3QgbmVlZCB0byB1c2UgZGVsZWdhdGVzIGhlcmUgYXMgSSBuZXZlciBzdWJzY3JpYmUgdG8gdGhlIGNvbW1hbmRzIG1vZGVsc1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0LXJlbmFtZVxuICBASW5wdXQoJ2NvbW1hbmQuZm9jdXMnKSBmb2N1c0NvbW1hbmQ6IENvbW1hbmQ8YW55PjtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dC1yZW5hbWVcbiAgQElucHV0KCdjb21tYW5kLmJsdXInKSBibHVyQ29tbWFuZDogQ29tbWFuZDxhbnk+O1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0LXJlbmFtZVxuICBASW5wdXQoJ2NvbW1hbmQuZW50ZXInKSBlbnRlckNvbW1hbmQ6IENvbW1hbmQ8YW55PjtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dC1yZW5hbWVcbiAgQElucHV0KCdjb21tYW5kLmVzY2FwZScpIGVzY2FwZUNvbW1hbmQ6IENvbW1hbmQ8YW55PjtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dC1yZW5hbWVcbiAgQElucHV0KCdjb21tYW5kLmNsaWNrJykgY2xpY2tDb21tYW5kOiBDb21tYW5kPGFueT47XG5cbiAgLy8gVE9ETzogZml4IHRoaXMuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8tb3V0cHV0LW5hdGl2ZVxuICBAT3V0cHV0KCkgZm9jdXMgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8tb3V0cHV0LW5hdGl2ZVxuICBAT3V0cHV0KCkgYmx1ciA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIGVudGVyS2V5ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgZXNjYXBlS2V5ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIHJlYWRvbmx5IGVycm9yU3RhdGVNYXRjaGVyOiBFcnJvclN0YXRlTWF0Y2hlcjtcblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcbiAgYmFzZUNsYXNzTmFtZSA9ICdhdXAtaW5wdXQtY29tcG9uZW50JztcblxuICBASG9zdExpc3RlbmVyKCdjbGljaycpXG4gIG5vdGlmeUNsaWNrKCkge1xuICAgIHRoaXMuc2FmZWx5SW52b2tlKHRoaXMuY2xpY2tDb21tYW5kKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2ZvY3VzaW4nKVxuICBub3RpZnlGb2N1c0luKCkge1xuICAgIHRoaXMuc2FmZWx5SW52b2tlKHRoaXMuZm9jdXNDb21tYW5kKTtcbiAgICB0aGlzLmZvY3VzLmVtaXQoKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2ZvY3Vzb3V0JylcbiAgbm90aWZ5Rm9jdXNPdXQoKSB7XG4gICAgdGhpcy5zYWZlbHlJbnZva2UodGhpcy5ibHVyQ29tbWFuZCk7XG4gICAgdGhpcy5ibHVyLmVtaXQoKTtcbiAgfVxuXG4gIG5vdGlmeUVudGVyS2V5KCkge1xuICAgIHRoaXMuc2FmZWx5SW52b2tlKHRoaXMuZW50ZXJDb21tYW5kKTtcbiAgICB0aGlzLmVudGVyS2V5LmVtaXQoKTtcbiAgfVxuXG4gIG5vdGlmeUVzY2FwZUtleSgpIHtcbiAgICB0aGlzLnNhZmVseUludm9rZSh0aGlzLmVzY2FwZUNvbW1hbmQpO1xuICAgIHRoaXMuZXNjYXBlS2V5LmVtaXQoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBzYWZlbHlJbnZva2UoY29tbWFuZDogQ29tbWFuZDxhbnk+KSB7XG4gICAgaWYgKGNvbW1hbmQgJiYgY29tbWFuZC5lbmFibGVkJC52YWx1ZSkge1xuICAgICAgY29tbWFuZC5leGVjdXRlKCk7XG4gICAgfVxuICB9XG5cbiAgY29uc3RydWN0b3IoQEluamVjdChJTlBVVF9UT0tFTl9IQUNLKSBmb3JtVmFsdWUkOiBJbnB1dE1vZGVsPFQ+KSB7XG4gICAgc3VwZXIoKTtcbiAgICBjb25zdCBzZWxmID0gdGhpcztcbiAgICB0aGlzLmZvcm1WYWx1ZSQgPSB0aGlzLnJlZ2lzdGVyRGlzcG9zYWJsZShmb3JtVmFsdWUkKTtcbiAgICB0aGlzLl9lbmFibGVkJC5zZXREZWZhdWx0KGZvcm1WYWx1ZSQuZW5hYmxlZCQpXG4gICAgdGhpcy5lcnJvclN0YXRlTWF0Y2hlciA9IHtcbiAgICAgIGlzRXJyb3JTdGF0ZShjb250cm9sOiBVbnR5cGVkRm9ybUNvbnRyb2wgfCBudWxsLCBmb3JtOiBGb3JtR3JvdXBEaXJlY3RpdmUgfCBOZ0Zvcm0gfCBudWxsKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBzZWxmLmhhc0Vycm9ycygpO1xuICAgICAgfVxuICAgIH07XG4gIH1cblxuICBpc0VuYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZW5hYmxlZCQudmFsdWU7XG4gIH1cblxuXG4gIGhhc0Vycm9ycygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIXRoaXMuZXJyb3JMaXN0JC5xdWVyeSgpLmlzRW1wdHkoKTtcbiAgfVxuXG4gIGdldCBlcnJvckxpc3QkKCk6IExpc3RNb2RlbDxzdHJpbmc+IHtcbiAgICByZXR1cm4gdGhpcy5mb3JtVmFsdWUkLmVycm9ycyQ7XG4gIH1cblxuICBnZXQgZmlyc3RFcnJvcigpIHtcbiAgICByZXR1cm4gdGhpcy5oYXNFcnJvcnMoKSA/IHRoaXMuZXJyb3JMaXN0JC52YWx1ZVswXSA6IG51bGw7XG4gIH1cblxuICBnZXQgZm9jdXNDb250ZXh0KCkge1xuICAgIHJldHVybiB0aGlzLmZvcm1WYWx1ZSQuZm9jdXNDb250ZXh0O1xuICB9XG5cbiAgZ2V0IGZsb2F0TGFiZWwoKTogRmxvYXRMYWJlbFR5cGUge1xuICAgIC8vIHJldHVybiB0aGlzLmRlbnNlID8gJ25ldmVyJyA6IHRoaXMudXNlckZsb2F0TGFiZWw7XG4gICAgcmV0dXJuICB0aGlzLnVzZXJGbG9hdExhYmVsO1xuICB9XG5cbiAgZ2V0IHNob3dIaW50KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmRlbnNlID8gZmFsc2UgOiAhIXRoaXMuaGludDtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbnZva2VzIHRoZSBjYWxsYmFjayB3aGVuIHRoaXMgY29tcG9uZW50cyB2YWx1ZSBpcyBjaGFuZ2VkIGJ5IGEgdXNlciBlZGl0LlxuICAgKiBAcGFyYW0gY2FsbGJhY2tcbiAgICovXG4gIG9uVmFsdWVFZGl0ZWQoY2FsbGJhY2s6IChpczogVCwgd2FzOiBUKSA9PiB2b2lkKTogRGlzcG9zYWJsZSB7XG4gICAgcmV0dXJuIHRoaXMub25WYWx1ZUVkaXRlZExpc3RlbmVycy5hZGQoY2FsbGJhY2spO1xuICB9XG5cbn1cbiJdfQ==
221
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QtaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXVpLXBvd2VydXBzL3NyYy9saWIvY29tcG9uZW50cy9mb3Jtcy9hYnN0cmFjdC1pbnB1dC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLG9EQUFvRDtBQUNwRCxvQ0FBb0M7QUFDcEMsT0FBTyxFQUFDLFNBQVMsRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsY0FBYyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFJeEgsT0FBTyxFQUNMLE9BQU8sRUFDUCxvQkFBb0IsRUFFcEIsaUJBQWlCLEVBSWpCLGlCQUFpQixFQUNqQixPQUFPLEVBQ1AsT0FBTyxFQUNQLGlCQUFpQixFQUNqQixVQUFVLEVBQ1gsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQzs7QUFVNUQsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLGNBQWMsQ0FBa0Isa0JBQWtCLENBQUMsQ0FBQTtBQUdoRixNQUFNLE9BQU8sc0JBQTBCLFNBQVEsbUJBQW1CO0lBRXRELHNCQUFzQixHQUFHLElBQUksaUJBQWlCLEVBQTJCLENBQUM7SUFFcEY7Ozs7Ozs7OztPQVNHO0lBQ2dCLFVBQVUsQ0FBZTtJQUduQywwQkFBUSxPQUFPLENBQUMsQ0FBQSxpQkFBNEIsQ0FBQSxDQUFDLENBQUM7SUFBOUMsSUFBQSxLQUFLLDJDQUF5QztJQUE5QyxJQUFBLEtBQUssaURBQXlDO0lBRTlDLHVCQUFnQjtJQUFoQixJQUFBLElBQUksMENBQVk7SUFBaEIsSUFBQSxJQUFJLGdEQUFZO0lBRVQsTUFBTSxDQUFTO0lBQ1YsY0FBYyxHQUFtQixRQUFRLENBQUMsQ0FBQyx3Q0FBd0M7SUFDekYsS0FBSyxDQUFVO0lB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UUFBUTtzQkFBakIsTUFBTTtnQkFDRyxTQUFTO3NCQUFsQixNQUFNO2dCQUtQLGFBQWE7c0JBRFosV0FBVzt1QkFBQyxPQUFPO2dCQUlwQixXQUFXO3NCQURWLFlBQVk7dUJBQUMsT0FBTztnQkFNckIsYUFBYTtzQkFEWixZQUFZO3VCQUFDLFNBQVM7Z0JBT3ZCLGNBQWM7c0JBRGIsWUFBWTt1QkFBQyxVQUFVO2dCQXVDcEIsUUFBUTtzQkFEWCxXQUFXO3VCQUFDLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dC1yZW5hbWUgKi9cbi8qIHRzbGludDpkaXNhYmxlOm5vLWlucHV0LXJlbmFtZSAqL1xuaW1wb3J0IHtDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSG9zdEJpbmRpbmcsIEhvc3RMaXN0ZW5lciwgSW5qZWN0LCBJbmplY3Rpb25Ub2tlbiwgSW5wdXQsIE91dHB1dH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0Zvcm1Hcm91cERpcmVjdGl2ZSwgTmdGb3JtLCBVbnR5cGVkRm9ybUNvbnRyb2x9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7RXJyb3JTdGF0ZU1hdGNoZXJ9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xuaW1wb3J0IHtGbG9hdExhYmVsVHlwZX0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGRcIjtcbmltcG9ydCB7XG4gIENvbW1hbmQsXG4gIERlbGVnYXRpbmdWYWx1ZU1vZGVsLFxuICBEaXNwb3NhYmxlLFxuICBFdmVudExpc3RlbmVyTGlzdCxcbiAgRm9jdXNNYW5hZ2VyLFxuICBJTXV0YWJsZUhhc1ZhbHVlLFxuICBMaXN0TW9kZWwsXG4gIE11dGFibGVWYWx1ZU1vZGVsLFxuICBwcm94aWZ5LFxuICBQcm94aWZ5LFxuICBTdG9yZUluVmFsdWVNb2RlbCxcbiAgVmFsdWVNb2RlbFxufSBmcm9tICdAY29vbG9uL3BlY3Rpbic7XG5pbXBvcnQge0Rpc3Bvc2FibGVDb21wb25lbnR9IGZyb20gJy4uL2Rpc3Bvc2FibGUtY29tcG9uZW50JztcbmltcG9ydCB7Rm9ybUZpZWxkfSBmcm9tIFwiLi9mb3JtLWZpZWxkXCI7XG5cbmludGVyZmFjZSBJbnB1dE1vZGVsPFQ+IGV4dGVuZHMgSU11dGFibGVIYXNWYWx1ZTxUPiwgRGlzcG9zYWJsZSB7XG4gIHZhbHVlOiBUO1xuICBlbmFibGVkJDogVmFsdWVNb2RlbDxib29sZWFuPjtcbiAgZXJyb3JzJDogTGlzdE1vZGVsPHN0cmluZz47XG4gIGZvY3VzQ29udGV4dDogRm9jdXNNYW5hZ2VyLkNvbnRleHQ7XG59XG5cbmNvbnN0IElOUFVUX1RPS0VOX0hBQ0sgPSBuZXcgSW5qZWN0aW9uVG9rZW48SW5wdXRNb2RlbDxhbnk+PihcIklOUFVUX1RPS0VOX0hBQ0tcIilcblxuQENvbXBvbmVudCh7dGVtcGxhdGU6ICcnfSlcbmV4cG9ydCBjbGFzcyBBYnN0cmFjdElucHV0Q29tcG9uZW50PFQ+IGV4dGVuZHMgRGlzcG9zYWJsZUNvbXBvbmVudCB7XG5cbiAgcHJvdGVjdGVkIG9uVmFsdWVFZGl0ZWRMaXN0ZW5lcnMgPSBuZXcgRXZlbnRMaXN0ZW5lckxpc3Q8KGlzOiBULCB3YXM6IFQpID0+IHZvaWQ+KCk7XG5cbiAgLyoqXG4gICAqIEEgYmFja2luZyBtb2RlbCBmb3IgYWxsIG91ciBASW5wdXQoKSB2YWx1ZU1vZGVsIHByb3BlcnRpZXMgd2hpY2ggc2hvdWxkIGJlIGRlZmluZWQgYXMgZm9sbG93cy5cbiAgICpcbiAgICogICAgQElucHV0KCkgQFByb3hpZnkoe3VzZUV4aXN0aW5nOiBcIm90aGVyTW9kZWwkXCJ9KVxuICAgKiAgICB2YWx1ZSQ6ICBEaXJ0eVRyYWNraW5nRm9ybS5WYWx1ZU1vZGVsPHN0cmluZz4gfCBNdXRhYmxlVmFsdWVNb2RlbDxzdHJpbmc+O1xuICAgKlxuICAgKiBUaGlzIGFwcHJvYWNoIGFsbG93cyB0aGUgaW5wdXQgdG8gYWNjZXB0IHBsYWluIG9yIGZvcm0gbW9kZWxzIGJ1dCBhbGwgYmFja2VkIGJ5IGEgZm9ybVxuICAgKiBmcmllbmRseSBkZWxlZ2F0ZS4gIFdlIGhhdmUgdG8gdXNlIGFuIGV4aXN0aW5nIGRlbGVnYXRlIGZvciB1bmlvbiB0eXBlcyBhcyBwZWN0aW4ganVzdFxuICAgKiBnZXRzIHRvbGQgaXQncyBhbiBPYmplY3QgYW5kIGNhbid0IHNjYW4gZm9yIGEgYmFzZSB0eXBlIGFubm90YXRlZCB3aXRoIEBEZWxlZ2F0ZVVzaW5nKC4uKS5cbiAgICovXG4gIHByb3RlY3RlZCByZWFkb25seSBmb3JtVmFsdWUkOiBJbnB1dE1vZGVsPFQ+XG5cbiAgQElucHV0KCkgQFByb3hpZnkoKVxuICBhY2Nlc3NvciBpMThuJCA9IHByb3hpZnkoTXV0YWJsZVZhbHVlTW9kZWw8Rm9ybUZpZWxkPik7XG4gIEBJbnB1dCgpIEBTdG9yZUluVmFsdWVNb2RlbCgpXG4gIGFjY2Vzc29yIGkxOG46IEZvcm1GaWVsZDtcblxuICBASW5wdXQoXCJsYWJlbFwiKSBfbGFiZWw6IHN0cmluZztcbiAgQElucHV0KCdmbG9hdExhYmVsJykgdXNlckZsb2F0TGFiZWw6IEZsb2F0TGFiZWxUeXBlID0gJ2Fsd2F5cyc7IC8vIFRPRE86IG1ha2UgdGhpcyBhbiBpbmplY3RhYmxlIGRlZmF1bHRcbiAgQElucHV0KCdoaW50JykgX2hpbnQ/OiBzdHJpbmc7XG4gIEBJbnB1dCgncGxhY2Vob2xkZXInKSBfcGxhY2Vob2xkZXI/OiBzdHJpbmc7XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5kZW5zZScpXG4gIEBJbnB1dCgpIGRlbnNlID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfZW5hYmxlZCQgPSB0aGlzLnJlZ2lzdGVyRGlzcG9zYWJsZShuZXcgRGVsZWdhdGluZ1ZhbHVlTW9kZWw8Ym9vbGVhbj4oKSlcblxuICBASW5wdXQoKVxuICBzZXQgZW5hYmxlZCQoY29uZGl0aW9uJDogVmFsdWVNb2RlbDxib29sZWFuPikge1xuICAgIHRoaXMuX2VuYWJsZWQkLnNldERlbGVnYXRlKGNvbmRpdGlvbiQpO1xuICB9XG5cbiAgZ2V0IGVuYWJsZWQkKCk6IFZhbHVlTW9kZWw8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLl9lbmFibGVkJC5yZWFkb25seSQ7XG4gIH1cblxuICAvLyBOb3RlOiBJIGRvbid0IG5lZWQgdG8gdXNlIGRlbGVnYXRlcyBoZXJlIGFzIEkgbmV2ZXIgc3Vic2NyaWJlIHRvIHRoZSBjb21tYW5kcyBtb2RlbHNcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dC1yZW5hbWVcbiAgQElucHV0KCdjb21tYW5kLmZvY3VzJykgZm9jdXNDb21tYW5kOiBDb21tYW5kPGFueT47XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXQtcmVuYW1lXG4gIEBJbnB1dCgnY29tbWFuZC5ibHVyJykgYmx1ckNvbW1hbmQ6IENvbW1hbmQ8YW55PjtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dC1yZW5hbWVcbiAgQElucHV0KCdjb21tYW5kLmVudGVyJykgZW50ZXJDb21tYW5kOiBDb21tYW5kPGFueT47XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXQtcmVuYW1lXG4gIEBJbnB1dCgnY29tbWFuZC5lc2NhcGUnKSBlc2NhcGVDb21tYW5kOiBDb21tYW5kPGFueT47XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXQtcmVuYW1lXG4gIEBJbnB1dCgnY29tbWFuZC5jbGljaycpIGNsaWNrQ29tbWFuZDogQ29tbWFuZDxhbnk+O1xuXG4gIC8vIFRPRE86IGZpeCB0aGlzLlxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLW91dHB1dC1uYXRpdmVcbiAgQE91dHB1dCgpIGZvY3VzID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLW91dHB1dC1uYXRpdmVcbiAgQE91dHB1dCgpIGJsdXIgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBlbnRlcktleSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIGVzY2FwZUtleSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICByZWFkb25seSBlcnJvclN0YXRlTWF0Y2hlcjogRXJyb3JTdGF0ZU1hdGNoZXI7XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcycpXG4gIGJhc2VDbGFzc05hbWUgPSAnYXVwLWlucHV0LWNvbXBvbmVudCc7XG5cbiAgQEhvc3RMaXN0ZW5lcignY2xpY2snKVxuICBub3RpZnlDbGljaygpIHtcbiAgICB0aGlzLnNhZmVseUludm9rZSh0aGlzLmNsaWNrQ29tbWFuZCk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdmb2N1c2luJylcbiAgbm90aWZ5Rm9jdXNJbigpIHtcbiAgICB0aGlzLnNhZmVseUludm9rZSh0aGlzLmZvY3VzQ29tbWFuZCk7XG4gICAgdGhpcy5mb2N1cy5lbWl0KCk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdmb2N1c291dCcpXG4gIG5vdGlmeUZvY3VzT3V0KCkge1xuICAgIHRoaXMuc2FmZWx5SW52b2tlKHRoaXMuYmx1ckNvbW1hbmQpO1xuICAgIHRoaXMuYmx1ci5lbWl0KCk7XG4gIH1cblxuICBub3RpZnlFbnRlcktleSgpIHtcbiAgICB0aGlzLnNhZmVseUludm9rZSh0aGlzLmVudGVyQ29tbWFuZCk7XG4gICAgdGhpcy5lbnRlcktleS5lbWl0KCk7XG4gIH1cblxuICBub3RpZnlFc2NhcGVLZXkoKSB7XG4gICAgdGhpcy5zYWZlbHlJbnZva2UodGhpcy5lc2NhcGVDb21tYW5kKTtcbiAgICB0aGlzLmVzY2FwZUtleS5lbWl0KCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgc2FmZWx5SW52b2tlKGNvbW1hbmQ6IENvbW1hbmQ8YW55Pikge1xuICAgIGlmIChjb21tYW5kICYmIGNvbW1hbmQuZW5hYmxlZCQudmFsdWUpIHtcbiAgICAgIGNvbW1hbmQuZXhlY3V0ZSgpO1xuICAgIH1cbiAgfVxuXG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoSU5QVVRfVE9LRU5fSEFDSykgZm9ybVZhbHVlJDogSW5wdXRNb2RlbDxUPikge1xuICAgIHN1cGVyKCk7XG4gICAgY29uc3Qgc2VsZiA9IHRoaXM7XG4gICAgdGhpcy5mb3JtVmFsdWUkID0gdGhpcy5yZWdpc3RlckRpc3Bvc2FibGUoZm9ybVZhbHVlJCk7XG4gICAgdGhpcy5fZW5hYmxlZCQuc2V0RGVmYXVsdChmb3JtVmFsdWUkLmVuYWJsZWQkKVxuICAgIHRoaXMuZXJyb3JTdGF0ZU1hdGNoZXIgPSB7XG4gICAgICBpc0Vycm9yU3RhdGUoY29udHJvbDogVW50eXBlZEZvcm1Db250cm9sIHwgbnVsbCwgZm9ybTogRm9ybUdyb3VwRGlyZWN0aXZlIHwgTmdGb3JtIHwgbnVsbCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gc2VsZi5oYXNFcnJvcnMoKTtcbiAgICAgIH1cbiAgICB9O1xuICB9XG5cbiAgaXNFbmFibGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmVuYWJsZWQkLnZhbHVlO1xuICB9XG5cbiAgQEhvc3RCaW5kaW5nKFwiY2xhc3MuZGlzYWJsZWRcIilcbiAgZ2V0IGRpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhdGhpcy5pc0VuYWJsZWQoKVxuICB9XG5cbiAgaGFzRXJyb3JzKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhdGhpcy5lcnJvckxpc3QkLnF1ZXJ5KCkuaXNFbXB0eSgpO1xuICB9XG5cbiAgZ2V0IGVycm9yTGlzdCQoKTogTGlzdE1vZGVsPHN0cmluZz4ge1xuICAgIHJldHVybiB0aGlzLmZvcm1WYWx1ZSQuZXJyb3JzJDtcbiAgfVxuXG4gIGdldCBmaXJzdEVycm9yKCkge1xuICAgIHJldHVybiB0aGlzLmhhc0Vycm9ycygpID8gdGhpcy5lcnJvckxpc3QkLnZhbHVlWzBdIDogbnVsbDtcbiAgfVxuXG4gIGdldCBmb2N1c0NvbnRleHQoKSB7XG4gICAgcmV0dXJuIHRoaXMuZm9ybVZhbHVlJC5mb2N1c0NvbnRleHQ7XG4gIH1cblxuICBnZXQgbGFiZWwoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2xhYmVsID8/IHRoaXMuaTE4bj8ubGFiZWwoKVxuICB9XG5cbiAgZ2V0IGhpbnQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2hpbnQgPz8gdGhpcy5oYWNreUdldEkxOG4oXCJoaW50XCIpO1xuICB9XG5cbiAgZ2V0IHBsYWNlaG9sZGVyKCkge1xuICAgIHJldHVybiB0aGlzLl9wbGFjZWhvbGRlciA/PyB0aGlzLmhhY2t5R2V0STE4bihcInBsYWNlaG9sZGVyXCIpO1xuICB9XG5cbiAgZ2V0IGZsb2F0TGFiZWwoKTogRmxvYXRMYWJlbFR5cGUge1xuICAgIC8vIHJldHVybiB0aGlzLmRlbnNlID8gJ25ldmVyJyA6IHRoaXMudXNlckZsb2F0TGFiZWw7XG4gICAgcmV0dXJuIHRoaXMudXNlckZsb2F0TGFiZWw7XG4gIH1cblxuICBnZXQgc2hvd0hpbnQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZGVuc2UgPyBmYWxzZSA6ICEhdGhpcy5oaW50O1xuICB9XG5cbiAgLyoqXG4gICAqIEludm9rZXMgdGhlIGNhbGxiYWNrIHdoZW4gdGhpcyBjb21wb25lbnRzIHZhbHVlIGlzIGNoYW5nZWQgYnkgYSB1c2VyIGVkaXQuXG4gICAqIEBwYXJhbSBjYWxsYmFja1xuICAgKi9cbiAgb25WYWx1ZUVkaXRlZChjYWxsYmFjazogKGlzOiBULCB3YXM6IFQpID0+IHZvaWQpOiBEaXNwb3NhYmxlIHtcbiAgICByZXR1cm4gdGhpcy5vblZhbHVlRWRpdGVkTGlzdGVuZXJzLmFkZChjYWxsYmFjayk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFja3lHZXRJMThuKGtleToga2V5b2YgRm9ybUZpZWxkKTogc3RyaW5nIHtcbiAgICAvLyBUT0RPOiB1cGRhdGUgSTE4biB0byBtYWtlIGl0IHBvc3NpYmxlIHRvIGdldCBhbiBvcHRpb25hbCB2YWx1ZSB3aXRoIHJldHVybiB0aGUgbWlzc2luZyBrZXkgbWVzc2FnZS5cbiAgICBjb25zdCBpMThuRm4gPSB0aGlzLmkxOG4gPyB0aGlzLmkxOG5ba2V5XSA6IHVuZGVmaW5lZDtcbiAgICBjb25zdCBpMThuVmFsdWUgPSBpMThuRm4gJiYgaTE4bkZuKClcbiAgICByZXR1cm4gaTE4blZhbHVlPy5zdGFydHNXaXRoKFwibWlzc2luZyBrZXlcIikgPyB1bmRlZmluZWQgOiBpMThuVmFsdWU7XG4gIH1cblxufVxuIl19
@@ -2,7 +2,7 @@ import { __decorate, __metadata } from "tslib";
2
2
  import { Component, ContentChild, Input, TemplateRef, ViewChild } from "@angular/core";
3
3
  import { MatInput } from "@angular/material/input";
4
4
  import { Dsl, Guard, ListModel, MutableValueModel, Proxify, proxify, StoreInListModel } from "@coolon/pectin";
5
- import { isEmpty, isString } from 'lodash';
5
+ import { isEmpty, isString } from 'lodash-es';
6
6
  import { AbstractValueInputComponent } from '../abstract-value-input.component';
7
7
  import * as i0 from "@angular/core";
8
8
  import * as i1 from "@angular/common";
@@ -77,7 +77,7 @@ export class AutocompleteInputComponent extends AbstractValueInputComponent {
77
77
  });
78
78
  }
79
79
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: AutocompleteInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
80
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: AutocompleteInputComponent, selector: "aup-autocomplete-input", inputs: { rawTextContent$: "rawTextContent$", options$: "options$", options: "options", optionLabel: "optionLabel", allowNil: "allowNil", autoActiveFirstOption: "autoActiveFirstOption", autoFilter: "autoFilter", optionLabelFormat: "optionLabelFormat", filterFactory: "filterFactory" }, queries: [{ propertyName: "optionTemplateRef", first: true, predicate: ["optionTemplate"], descendants: true }, { propertyName: "nilOptionTemplateRef", first: true, predicate: ["nilOptionTemplate"], descendants: true }], viewQueries: [{ propertyName: "matInputComponent", first: true, predicate: MatInput, descendants: true }], usesInheritance: true, ngImport: i0, template: "<mat-form-field [floatLabel]=\"floatLabel\">\n <mat-label *ngIf=\"label\">{{label}}</mat-label>\n <input type=\"string\"\n matInput\n [matAutocomplete]=\"autocomplete\"\n placeholder=\"{{placeholder}}\"\n [ngModel]=\"componentValue$.value\"\n (ngModelChange)=\"updateFilter($event)\"\n [disabled]=\"!enabled$.value\"\n (keydown.enter)=\"notifyEnterKey()\"\n (keydown.escape)=\"notifyEscapeKey()\"\n [pectinFocusBinding]=\"focusContext\"\n [errorStateMatcher]=\"errorStateMatcher\"\n >\n <mat-autocomplete #autocomplete [displayWith]=\"optionLabelFormat\"\n [autoActiveFirstOption]=\"autoActiveFirstOption\"\n (optionSelected)=\"onSelect($event)\">\n <mat-option *ngFor=\"let option of filteredOptions.value; let i = index\"\n [value]=\"option\">\n <ng-container *ngIf=\"!optionTemplateRef\">{{formatOption(option)}}</ng-container>\n <ng-container *ngIf=\"optionTemplateRef\"\n [ngTemplateOutlet]=\"optionTemplateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: option, index: i }\"\n >\n </ng-container>\n </mat-option>\n <mat-option *ngIf=\"allowNil\">{{placeholder}}</mat-option>\n </mat-autocomplete>\n\n <mat-hint *ngIf=\"showHint\">{{hint}}</mat-hint>\n <mat-error *ngIf=\"hasErrors\">{{firstError}}</mat-error>\n</mat-form-field>\n<div class=\"width-strut\">\n <mat-label *ngIf=\"label\">{{label}}</mat-label>\n <div>{{placeholder}}</div>\n <div class=\"item\" *ngFor=\"let item of options\">\n <ng-container *ngIf=\"!optionTemplateRef\">{{formatOption(item)}}</ng-container>\n <ng-container *ngIf=\"optionTemplateRef\"\n [ngTemplateOutlet]=\"optionTemplateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: item, index: 0 }\"\n >\n </ng-container>\n </div>\n</div>\n", styles: [":host{display:inline-block}mat-form-field{width:100%}.width-strut{display:block;height:0;max-height:0;width:auto;visibility:hidden;overflow:hidden;padding-right:35px}.width-strut mat-label{font-size:75%}.width-strut>.item{font-size:16px;padding-left:0}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.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: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i3.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: i4.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4.MatLabel, selector: "mat-label" }, { kind: "directive", type: i4.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i4.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "component", type: i5.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "directive", type: i6.FocusBindingDirective, selector: "[pectinFocusBinding]", inputs: ["pectinFocusBinding", "focusBindingTarget"] }, { kind: "component", type: i7.MatAutocomplete, selector: "mat-autocomplete", inputs: ["disableRipple", "hideSingleSelectionIndicator"], exportAs: ["matAutocomplete"] }, { kind: "directive", type: i7.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", exportAs: ["matAutocompleteTrigger"] }] });
80
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: AutocompleteInputComponent, selector: "aup-autocomplete-input", inputs: { rawTextContent$: "rawTextContent$", options$: "options$", options: "options", optionLabel: "optionLabel", allowNil: "allowNil", autoActiveFirstOption: "autoActiveFirstOption", autoFilter: "autoFilter", optionLabelFormat: "optionLabelFormat", filterFactory: "filterFactory" }, queries: [{ propertyName: "optionTemplateRef", first: true, predicate: ["optionTemplate"], descendants: true }, { propertyName: "nilOptionTemplateRef", first: true, predicate: ["nilOptionTemplate"], descendants: true }], viewQueries: [{ propertyName: "matInputComponent", first: true, predicate: MatInput, descendants: true }], usesInheritance: true, ngImport: i0, template: "<mat-form-field [floatLabel]=\"floatLabel\">\n <mat-label *ngIf=\"label\">{{label}}</mat-label>\n <input type=\"string\"\n matInput\n [matAutocomplete]=\"autocomplete\"\n placeholder=\"{{placeholder}}\"\n [ngModel]=\"componentValue$.value\"\n (ngModelChange)=\"updateFilter($event)\"\n [disabled]=\"!enabled$.value\"\n (keydown.enter)=\"notifyEnterKey()\"\n (keydown.escape)=\"notifyEscapeKey()\"\n [pectinFocusBinding]=\"focusContext\"\n [errorStateMatcher]=\"errorStateMatcher\"\n >\n <mat-autocomplete #autocomplete [displayWith]=\"optionLabelFormat\"\n [autoActiveFirstOption]=\"autoActiveFirstOption\"\n (optionSelected)=\"onSelect($event)\">\n <mat-option *ngFor=\"let option of filteredOptions.value; let i = index\"\n [value]=\"option\">\n <ng-container *ngIf=\"!optionTemplateRef\">{{formatOption(option)}}</ng-container>\n <ng-container *ngIf=\"optionTemplateRef\"\n [ngTemplateOutlet]=\"optionTemplateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: option, index: i }\"\n >\n </ng-container>\n </mat-option>\n <mat-option *ngIf=\"allowNil\">{{placeholder}}</mat-option>\n </mat-autocomplete>\n\n <mat-hint *ngIf=\"showHint\">{{hint}}</mat-hint>\n <mat-error *ngIf=\"hasErrors()\">{{firstError}}</mat-error>\n</mat-form-field>\n<div class=\"width-strut\">\n <mat-label *ngIf=\"label\">{{label}}</mat-label>\n <div>{{placeholder}}</div>\n <div class=\"item\" *ngFor=\"let item of options\">\n <ng-container *ngIf=\"!optionTemplateRef\">{{formatOption(item)}}</ng-container>\n <ng-container *ngIf=\"optionTemplateRef\"\n [ngTemplateOutlet]=\"optionTemplateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: item, index: 0 }\"\n >\n </ng-container>\n </div>\n</div>\n", styles: [":host{display:inline-block}mat-form-field{width:100%}.width-strut{display:block;height:0;max-height:0;width:auto;visibility:hidden;overflow:hidden;padding-right:35px}.width-strut mat-label{font-size:75%}.width-strut>.item{font-size:16px;padding-left:0}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.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: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i3.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: i4.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4.MatLabel, selector: "mat-label" }, { kind: "directive", type: i4.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i4.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "component", type: i5.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "directive", type: i6.FocusBindingDirective, selector: "[pectinFocusBinding]", inputs: ["pectinFocusBinding", "focusBindingTarget"] }, { kind: "component", type: i7.MatAutocomplete, selector: "mat-autocomplete", inputs: ["disableRipple", "hideSingleSelectionIndicator"], exportAs: ["matAutocomplete"] }, { kind: "directive", type: i7.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", exportAs: ["matAutocompleteTrigger"] }] });
81
81
  }
82
82
  __decorate([
83
83
  Proxify(),
@@ -93,7 +93,7 @@ __decorate([
93
93
  ], AutocompleteInputComponent.prototype, "options", null);
94
94
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: AutocompleteInputComponent, decorators: [{
95
95
  type: Component,
96
- args: [{ selector: 'aup-autocomplete-input', template: "<mat-form-field [floatLabel]=\"floatLabel\">\n <mat-label *ngIf=\"label\">{{label}}</mat-label>\n <input type=\"string\"\n matInput\n [matAutocomplete]=\"autocomplete\"\n placeholder=\"{{placeholder}}\"\n [ngModel]=\"componentValue$.value\"\n (ngModelChange)=\"updateFilter($event)\"\n [disabled]=\"!enabled$.value\"\n (keydown.enter)=\"notifyEnterKey()\"\n (keydown.escape)=\"notifyEscapeKey()\"\n [pectinFocusBinding]=\"focusContext\"\n [errorStateMatcher]=\"errorStateMatcher\"\n >\n <mat-autocomplete #autocomplete [displayWith]=\"optionLabelFormat\"\n [autoActiveFirstOption]=\"autoActiveFirstOption\"\n (optionSelected)=\"onSelect($event)\">\n <mat-option *ngFor=\"let option of filteredOptions.value; let i = index\"\n [value]=\"option\">\n <ng-container *ngIf=\"!optionTemplateRef\">{{formatOption(option)}}</ng-container>\n <ng-container *ngIf=\"optionTemplateRef\"\n [ngTemplateOutlet]=\"optionTemplateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: option, index: i }\"\n >\n </ng-container>\n </mat-option>\n <mat-option *ngIf=\"allowNil\">{{placeholder}}</mat-option>\n </mat-autocomplete>\n\n <mat-hint *ngIf=\"showHint\">{{hint}}</mat-hint>\n <mat-error *ngIf=\"hasErrors\">{{firstError}}</mat-error>\n</mat-form-field>\n<div class=\"width-strut\">\n <mat-label *ngIf=\"label\">{{label}}</mat-label>\n <div>{{placeholder}}</div>\n <div class=\"item\" *ngFor=\"let item of options\">\n <ng-container *ngIf=\"!optionTemplateRef\">{{formatOption(item)}}</ng-container>\n <ng-container *ngIf=\"optionTemplateRef\"\n [ngTemplateOutlet]=\"optionTemplateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: item, index: 0 }\"\n >\n </ng-container>\n </div>\n</div>\n", styles: [":host{display:inline-block}mat-form-field{width:100%}.width-strut{display:block;height:0;max-height:0;width:auto;visibility:hidden;overflow:hidden;padding-right:35px}.width-strut mat-label{font-size:75%}.width-strut>.item{font-size:16px;padding-left:0}\n"] }]
96
+ args: [{ selector: 'aup-autocomplete-input', template: "<mat-form-field [floatLabel]=\"floatLabel\">\n <mat-label *ngIf=\"label\">{{label}}</mat-label>\n <input type=\"string\"\n matInput\n [matAutocomplete]=\"autocomplete\"\n placeholder=\"{{placeholder}}\"\n [ngModel]=\"componentValue$.value\"\n (ngModelChange)=\"updateFilter($event)\"\n [disabled]=\"!enabled$.value\"\n (keydown.enter)=\"notifyEnterKey()\"\n (keydown.escape)=\"notifyEscapeKey()\"\n [pectinFocusBinding]=\"focusContext\"\n [errorStateMatcher]=\"errorStateMatcher\"\n >\n <mat-autocomplete #autocomplete [displayWith]=\"optionLabelFormat\"\n [autoActiveFirstOption]=\"autoActiveFirstOption\"\n (optionSelected)=\"onSelect($event)\">\n <mat-option *ngFor=\"let option of filteredOptions.value; let i = index\"\n [value]=\"option\">\n <ng-container *ngIf=\"!optionTemplateRef\">{{formatOption(option)}}</ng-container>\n <ng-container *ngIf=\"optionTemplateRef\"\n [ngTemplateOutlet]=\"optionTemplateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: option, index: i }\"\n >\n </ng-container>\n </mat-option>\n <mat-option *ngIf=\"allowNil\">{{placeholder}}</mat-option>\n </mat-autocomplete>\n\n <mat-hint *ngIf=\"showHint\">{{hint}}</mat-hint>\n <mat-error *ngIf=\"hasErrors()\">{{firstError}}</mat-error>\n</mat-form-field>\n<div class=\"width-strut\">\n <mat-label *ngIf=\"label\">{{label}}</mat-label>\n <div>{{placeholder}}</div>\n <div class=\"item\" *ngFor=\"let item of options\">\n <ng-container *ngIf=\"!optionTemplateRef\">{{formatOption(item)}}</ng-container>\n <ng-container *ngIf=\"optionTemplateRef\"\n [ngTemplateOutlet]=\"optionTemplateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: item, index: 0 }\"\n >\n </ng-container>\n </div>\n</div>\n", styles: [":host{display:inline-block}mat-form-field{width:100%}.width-strut{display:block;height:0;max-height:0;width:auto;visibility:hidden;overflow:hidden;padding-right:35px}.width-strut mat-label{font-size:75%}.width-strut>.item{font-size:16px;padding-left:0}\n"] }]
97
97
  }], ctorParameters: function () { return []; }, propDecorators: { rawTextContent$: [{
98
98
  type: Input
99
99
  }], options$: [{
@@ -122,4 +122,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
122
122
  }], filterFactory: [{
123
123
  type: Input
124
124
  }] } });
125
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLWlucHV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci11aS1wb3dlcnVwcy9zcmMvbGliL2NvbXBvbmVudHMvZm9ybXMvYXV0b2NvbXBsZXRlLWlucHV0L2F1dG9jb21wbGV0ZS1pbnB1dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdWktcG93ZXJ1cHMvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm1zL2F1dG9jb21wbGV0ZS1pbnB1dC9hdXRvY29tcGxldGUtaW5wdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBZ0IsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUVwRyxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDakQsT0FBTyxFQUNMLEdBQUcsRUFDSCxLQUFLLEVBQ0wsU0FBUyxFQUVULGlCQUFpQixFQUVqQixPQUFPLEVBQ1AsT0FBTyxFQUNQLGdCQUFnQixFQUNqQixNQUFNLGdCQUFnQixDQUFDO0FBRXhCLE9BQU8sRUFBQyxPQUFPLEVBQUUsUUFBUSxFQUFDLE1BQU0sUUFBUSxDQUFDO0FBQ3pDLE9BQU8sRUFBQywyQkFBMkIsRUFBQyxNQUFNLG1DQUFtQyxDQUFDOzs7Ozs7Ozs7QUFFOUU7Ozs7O0dBS0c7QUFNSCxNQUFNLE9BQU8sMEJBQW9DLFNBQVEsMkJBQThCO0lBRzVFLG9DQUFrQixPQUFPLENBQUMsQ0FBQSxpQkFBeUIsQ0FBQSxDQUFDLENBQUM7SUFBckQsSUFBQSxlQUFlLHFEQUFzQztJQUFyRCxJQUFBLGVBQWUsMkRBQXNDO0lBR3JELDZCQUFXLE9BQU8sQ0FBQyxDQUFBLFNBQVksQ0FBQSxDQUFDLENBQUM7SUFBakMsSUFB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QUssR0FBRyxNQUFNLENBQUM7WUFDcEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDO1FBQ2xDLENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUVELFFBQVEsQ0FBQyxNQUFvQztRQUMzQyxJQUFJLENBQUMsZUFBZSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDbEMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLEdBQUcsU0FBUyxDQUFDO1lBQ3ZDLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7UUFDN0MsQ0FBQyxDQUFDLENBQUE7SUFDSixDQUFDO3VHQWxGVSwwQkFBMEI7MkZBQTFCLDBCQUEwQiw0bUJBdUIxQixRQUFRLHVFQ3BEckIsMDREQTRDQTs7QURaVztJQURDLE9BQU8sRUFBRTs7aUVBQzJDO0FBR3JEO0lBREMsT0FBTyxFQUFFOzswREFDdUI7QUFHakM7SUFEQyxnQkFBZ0IsRUFBRTs7eURBQ047MkZBVFgsMEJBQTBCO2tCQUx0QyxTQUFTOytCQUNFLHdCQUF3QjswRUFPekIsZUFBZTtzQkFEdkIsS0FBSztnQkFJRyxRQUFRO3NCQURoQixLQUFLO2dCQUlHLE9BQU87c0JBRGYsS0FBSztnQkFJTixXQUFXO3NCQURWLEtBQUs7Z0JBSU4sUUFBUTtzQkFEUCxLQUFLO2dCQUlOLHFCQUFxQjtzQkFEcEIsS0FBSztnQkFJTixVQUFVO3NCQURULEtBQUs7Z0JBSU4saUJBQWlCO3NCQURoQixTQUFTO3VCQUFDLFFBQVE7Z0JBSW5CLGlCQUFpQjtzQkFEaEIsWUFBWTt1QkFBQyxnQkFBZ0I7Z0JBSTlCLG9CQUFvQjtzQkFEbkIsWUFBWTt1QkFBQyxtQkFBbUI7Z0JBU2pDLGlCQUFpQjtzQkFEaEIsS0FBSztnQkFJTixhQUFhO3NCQURaLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0FmdGVyVmlld0luaXQsIENvbXBvbmVudCwgQ29udGVudENoaWxkLCBJbnB1dCwgVGVtcGxhdGVSZWYsIFZpZXdDaGlsZH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7TWF0QXV0b2NvbXBsZXRlU2VsZWN0ZWRFdmVudH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYXV0b2NvbXBsZXRlJztcbmltcG9ydCB7TWF0SW5wdXR9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9pbnB1dFwiO1xuaW1wb3J0IHtcbiAgRHNsLFxuICBHdWFyZCxcbiAgTGlzdE1vZGVsLFxuICBMaXN0TW9kZWxDaGFpbixcbiAgTXV0YWJsZVZhbHVlTW9kZWwsXG4gIFByZWRpY2F0ZSxcbiAgUHJveGlmeSxcbiAgcHJveGlmeSxcbiAgU3RvcmVJbkxpc3RNb2RlbFxufSBmcm9tIFwiQGNvb2xvbi9wZWN0aW5cIjtcblxuaW1wb3J0IHtpc0VtcHR5LCBpc1N0cmluZ30gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7QWJzdHJhY3RWYWx1ZUlucHV0Q29tcG9uZW50fSBmcm9tICcuLi9hYnN0cmFjdC12YWx1ZS1pbnB1dC5jb21wb25lbnQnO1xuXG4vKipcbiAqIFVzaW5nIHRlbXBsYXRlcyAobm90IG9ubHkgc3VwcG9ydGVkIGZvciBuaWwgdmFsdWVzOlxuICogPGF1cC1hdXRvY29tcGxldGUtaW5wdXQgW3ZhbHVlTW9kZWxdPVwibXlNb2RlbFwiIFtvcHRpb25zXT1cIm15T3B0aW9uc1wiPlxuICogICA8bmctdGVtcGxhdGUgI25pbE9wdGlvblRlbXBsYXRlIGxldC1vcHRpb24+e3tvcHRpb24udGhlUHJvcGVydHlZb3VXYW50fX08L25nLXRlbXBsYXRlPlxuICogPC9hdXAtYXV0b2NvbXBsZXRlLWlucHV0PlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhdXAtYXV0b2NvbXBsZXRlLWlucHV0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2F1dG9jb21wbGV0ZS1pbnB1dC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2F1dG9jb21wbGV0ZS1pbnB1dC5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIEF1dG9jb21wbGV0ZUlucHV0Q29tcG9uZW50PFQgPSBhbnk+IGV4dGVuZHMgQWJzdHJhY3RWYWx1ZUlucHV0Q29tcG9uZW50PFQ+IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG5cbiAgQElucHV0KCkgQFByb3hpZnkoKVxuICBhY2Nlc3NvciByYXdUZXh0Q29udGVudCQgPSBwcm94aWZ5KE11dGFibGVWYWx1ZU1vZGVsPHN0cmluZz4pO1xuXG4gIEBJbnB1dCgpIEBQcm94aWZ5KClcbiAgYWNjZXNzb3Igb3B0aW9ucyQgPSBwcm94aWZ5KExpc3RNb2RlbDxUPik7XG5cbiAgQElucHV0KCkgQFN0b3JlSW5MaXN0TW9kZWwoKVxuICBhY2Nlc3NvciBvcHRpb25zOiBUW107XG5cbiAgQElucHV0KClcbiAgb3B0aW9uTGFiZWw6IGtleW9mIFQ7XG5cbiAgQElucHV0KClcbiAgYWxsb3dOaWw6IGJvb2xlYW47XG5cbiAgQElucHV0KClcbiAgYXV0b0FjdGl2ZUZpcnN0T3B0aW9uID0gdHJ1ZTtcblxuICBASW5wdXQoKVxuICBhdXRvRmlsdGVyID0gdHJ1ZTtcblxuICBAVmlld0NoaWxkKE1hdElucHV0KVxuICBtYXRJbnB1dENvbXBvbmVudDogTWF0SW5wdXQ7XG5cbiAgQENvbnRlbnRDaGlsZCgnb3B0aW9uVGVtcGxhdGUnKVxuICBvcHRpb25UZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8YW55PjtcblxuICBAQ29udGVudENoaWxkKCduaWxPcHRpb25UZW1wbGF0ZScpXG4gIG5pbE9wdGlvblRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgaW5TZWFyY2hVcGRhdGUkID0gbmV3IEd1YXJkKClcblxuICBwcml2YXRlIGZpbHRlclZhbHVlID0gbmV3IE11dGFibGVWYWx1ZU1vZGVsPHN0cmluZz4oKTtcbiAgcmVhZG9ubHkgZmlsdGVyZWRPcHRpb25zOiBMaXN0TW9kZWxDaGFpbjxUPjtcblxuICBASW5wdXQoKVxuICBvcHRpb25MYWJlbEZvcm1hdDogKG9wdGlvbjogVCkgPT4gYW55ID0gKG9wdGlvbikgPT4gKG9wdGlvbiAmJiB0aGlzLm9wdGlvbkxhYmVsKSA/IG9wdGlvblt0aGlzLm9wdGlvbkxhYmVsXSA6IG9wdGlvbjtcblxuICBASW5wdXQoKVxuICBmaWx0ZXJGYWN0b3J5OiAoZmlsdGVyVGV4dDpzdHJpbmcpID0+IFByZWRpY2F0ZTxUPiA9IChmaWx0ZXJUZXh0OiBzdHJpbmcpID0+IHtcbiAgICBjb25zdCBsb3dlckNhc2VGaWx0ZXJWYWx1ZSA9ICBpc1N0cmluZyhmaWx0ZXJUZXh0KSA/IGZpbHRlclRleHQudG9Mb3dlckNhc2UoKSA6ICcnO1xuICAgIHJldHVybiAob3B0aW9uOiBUKSA9PiB7XG4gICAgICBjb25zdCBtYXRjaGVzID0gIWlzRW1wdHkodGhpcy5maWx0ZXJWYWx1ZS52YWx1ZSkgJiYgdGhpcy5vcHRpb25MYWJlbEZvcm1hdChvcHRpb24pLnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhsb3dlckNhc2VGaWx0ZXJWYWx1ZSk7XG4gICAgICByZXR1cm4gbWF0Y2hlcztcbiAgICB9XG4gIH07XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICBjb25zdCB7IGNoYWluLCB2YWx1ZU9mLCBiZWZvcmUsIHdoZW4sIGFmdGVyLCBvYnNlcnZlLCBzd2l0Y2hPbiB9ID0gRHNsLmRpc3Bvc2VXaXRoKHRoaXMpO1xuICAgIGNvbnN0ICBmaWx0ZXIkID0gY2hhaW4odGhpcy5maWx0ZXJWYWx1ZSkubWFwKHYgPT4gdGhpcy5maWx0ZXJGYWN0b3J5KHYpLCB7YWxsb3dOaWw6IHRydWV9KTtcbiAgICB0aGlzLmZpbHRlcmVkT3B0aW9ucyA9IGNoYWluKHRoaXMub3B0aW9ucyQpXG4gICAgICAuc2VsZWN0KG9wdGlvbiA9PiAhdGhpcy5hdXRvRmlsdGVyIHx8IGZpbHRlciQudmFsdWUob3B0aW9uKSwgeyBkZXBlbmRzT246IGZpbHRlciQgfSk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgY29uc3QgeyB3aGVuIH0gPSBEc2wuZGlzcG9zZVdpdGgodGhpcyk7XG4gICAgd2hlbih0aGlzLnJhd1RleHRDb250ZW50JCkuY2hhbmdlcyhjb250ZW50ID0+IHtcbiAgICAgIHRoaXMubWF0SW5wdXRDb21wb25lbnQudmFsdWUgPSBjb250ZW50O1xuICAgIH0sIHtcbiAgICAgIHVubGVzczogdGhpcy5pblNlYXJjaFVwZGF0ZSRcbiAgICB9KTtcbiAgfVxuXG4gIGZvcm1hdE9wdGlvbihvcHRpb246IFQpIHtcbiAgICByZXR1cm4gdGhpcy5vcHRpb25MYWJlbEZvcm1hdChvcHRpb24pO1xuICB9XG5cbiAgdXBkYXRlRmlsdGVyKCRldmVudDogc3RyaW5nKSB7XG4gICAgdGhpcy5pblNlYXJjaFVwZGF0ZSQud2hpbGVUcnVlKCgpID0+IHtcbiAgICAgIHRoaXMucmF3VGV4dENvbnRlbnQkLnZhbHVlID0gJGV2ZW50O1xuICAgICAgdGhpcy5maWx0ZXJWYWx1ZS52YWx1ZSA9ICRldmVudDtcbiAgICB9KVxuICB9XG5cbiAgb25TZWxlY3QoJGV2ZW50OiBNYXRBdXRvY29tcGxldGVTZWxlY3RlZEV2ZW50KSB7XG4gICAgdGhpcy5pblNlYXJjaFVwZGF0ZSQud2hpbGVUcnVlKCgpID0+IHtcbiAgICAgIHRoaXMucmF3VGV4dENvbnRlbnQkLnZhbHVlID0gdW5kZWZpbmVkO1xuICAgICAgdGhpcy52YWx1ZSRbXCJ2YWx1ZVwiXSA9ICRldmVudC5vcHRpb24udmFsdWU7XG4gICAgfSlcbiAgfVxufVxuIiwiPG1hdC1mb3JtLWZpZWxkIFtmbG9hdExhYmVsXT1cImZsb2F0TGFiZWxcIj5cbiAgPG1hdC1sYWJlbCAqbmdJZj1cImxhYmVsXCI+e3tsYWJlbH19PC9tYXQtbGFiZWw+XG4gIDxpbnB1dCB0eXBlPVwic3RyaW5nXCJcbiAgICAgICAgIG1hdElucHV0XG4gICAgICAgICBbbWF0QXV0b2NvbXBsZXRlXT1cImF1dG9jb21wbGV0ZVwiXG4gICAgICAgICBwbGFjZWhvbGRlcj1cInt7cGxhY2Vob2xkZXJ9fVwiXG4gICAgICAgICBbbmdNb2RlbF09XCJjb21wb25lbnRWYWx1ZSQudmFsdWVcIlxuICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwidXBkYXRlRmlsdGVyKCRldmVudClcIlxuICAgICAgICAgW2Rpc2FibGVkXT1cIiFlbmFibGVkJC52YWx1ZVwiXG4gICAgICAgICAoa2V5ZG93bi5lbnRlcik9XCJub3RpZnlFbnRlcktleSgpXCJcbiAgICAgICAgIChrZXlkb3duLmVzY2FwZSk9XCJub3RpZnlFc2NhcGVLZXkoKVwiXG4gICAgICAgICBbcGVjdGluRm9jdXNCaW5kaW5nXT1cImZvY3VzQ29udGV4dFwiXG4gICAgICAgICBbZXJyb3JTdGF0ZU1hdGNoZXJdPVwiZXJyb3JTdGF0ZU1hdGNoZXJcIlxuICA+XG4gIDxtYXQtYXV0b2NvbXBsZXRlICNhdXRvY29tcGxldGUgW2Rpc3BsYXlXaXRoXT1cIm9wdGlvbkxhYmVsRm9ybWF0XCJcbiAgICAgICAgICAgICAgICAgICAgW2F1dG9BY3RpdmVGaXJzdE9wdGlvbl09XCJhdXRvQWN0aXZlRmlyc3RPcHRpb25cIlxuICAgICAgICAgICAgICAgICAgICAob3B0aW9uU2VsZWN0ZWQpPVwib25TZWxlY3QoJGV2ZW50KVwiPlxuICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCBvcHRpb24gb2YgZmlsdGVyZWRPcHRpb25zLnZhbHVlOyBsZXQgaSA9IGluZGV4XCJcbiAgICAgICAgICAgICAgICBbdmFsdWVdPVwib3B0aW9uXCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIW9wdGlvblRlbXBsYXRlUmVmXCI+e3tmb3JtYXRPcHRpb24ob3B0aW9uKX19PC9uZy1jb250YWluZXI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwib3B0aW9uVGVtcGxhdGVSZWZcIlxuICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJvcHRpb25UZW1wbGF0ZVJlZlwiXG4gICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogb3B0aW9uLCBpbmRleDogaSB9XCJcbiAgICAgID5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvbWF0LW9wdGlvbj5cbiAgICA8bWF0LW9wdGlvbiAqbmdJZj1cImFsbG93TmlsXCI+e3twbGFjZWhvbGRlcn19PC9tYXQtb3B0aW9uPlxuICA8L21hdC1hdXRvY29tcGxldGU+XG5cbiAgPG1hdC1oaW50ICpuZ0lmPVwic2hvd0hpbnRcIj57e2hpbnR9fTwvbWF0LWhpbnQ+XG4gIDxtYXQtZXJyb3IgKm5nSWY9XCJoYXNFcnJvcnNcIj57e2ZpcnN0RXJyb3J9fTwvbWF0LWVycm9yPlxuPC9tYXQtZm9ybS1maWVsZD5cbjxkaXYgY2xhc3M9XCJ3aWR0aC1zdHJ1dFwiPlxuICA8bWF0LWxhYmVsICpuZ0lmPVwibGFiZWxcIj57e2xhYmVsfX08L21hdC1sYWJlbD5cbiAgPGRpdj57e3BsYWNlaG9sZGVyfX08L2Rpdj5cbiAgPGRpdiBjbGFzcz1cIml0ZW1cIiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBvcHRpb25zXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFvcHRpb25UZW1wbGF0ZVJlZlwiPnt7Zm9ybWF0T3B0aW9uKGl0ZW0pfX08L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwib3B0aW9uVGVtcGxhdGVSZWZcIlxuICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwib3B0aW9uVGVtcGxhdGVSZWZcIlxuICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiBpdGVtLCBpbmRleDogMCB9XCJcbiAgICA+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
125
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLWlucHV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci11aS1wb3dlcnVwcy9zcmMvbGliL2NvbXBvbmVudHMvZm9ybXMvYXV0b2NvbXBsZXRlLWlucHV0L2F1dG9jb21wbGV0ZS1pbnB1dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdWktcG93ZXJ1cHMvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm1zL2F1dG9jb21wbGV0ZS1pbnB1dC9hdXRvY29tcGxldGUtaW5wdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBZ0IsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUVwRyxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDakQsT0FBTyxFQUNMLEdBQUcsRUFDSCxLQUFLLEVBQ0wsU0FBUyxFQUVULGlCQUFpQixFQUVqQixPQUFPLEVBQ1AsT0FBTyxFQUNQLGdCQUFnQixFQUNqQixNQUFNLGdCQUFnQixDQUFDO0FBRXhCLE9BQU8sRUFBQyxPQUFPLEVBQUUsUUFBUSxFQUFDLE1BQU0sV0FBVyxDQUFDO0FBQzVDLE9BQU8sRUFBQywyQkFBMkIsRUFBQyxNQUFNLG1DQUFtQyxDQUFDOzs7Ozs7Ozs7QUFFOUU7Ozs7O0dBS0c7QUFNSCxNQUFNLE9BQU8sMEJBQW9DLFNBQVEsMkJBQThCO0lBRzVFLG9DQUFrQixPQUFPLENBQUMsQ0FBQSxpQkFBeUIsQ0FBQSxDQUFDLENBQUM7SUFBckQsSUFBQSxlQUFlLHFEQUFzQztJQUFyRCxJQUFBLGVBQWUsMkRBQXNDO0lBR3JELDZCQUFXLE9BQU8sQ0FBQyxDQUFBLFNBQVksQ0FBQSxDQUFDLENBQUM7SUFBakMsSUFB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QUssR0FBRyxNQUFNLENBQUM7WUFDcEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDO1FBQ2xDLENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUVELFFBQVEsQ0FBQyxNQUFvQztRQUMzQyxJQUFJLENBQUMsZUFBZSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDbEMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLEdBQUcsU0FBUyxDQUFDO1lBQ3ZDLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7UUFDN0MsQ0FBQyxDQUFDLENBQUE7SUFDSixDQUFDO3VHQWxGVSwwQkFBMEI7MkZBQTFCLDBCQUEwQiw0bUJBdUIxQixRQUFRLHVFQ3BEckIsNDREQTRDQTs7QURaVztJQURDLE9BQU8sRUFBRTs7aUVBQzJDO0FBR3JEO0lBREMsT0FBTyxFQUFFOzswREFDdUI7QUFHakM7SUFEQyxnQkFBZ0IsRUFBRTs7eURBQ047MkZBVFgsMEJBQTBCO2tCQUx0QyxTQUFTOytCQUNFLHdCQUF3QjswRUFPekIsZUFBZTtzQkFEdkIsS0FBSztnQkFJRyxRQUFRO3NCQURoQixLQUFLO2dCQUlHLE9BQU87c0JBRGYsS0FBSztnQkFJTixXQUFXO3NCQURWLEtBQUs7Z0JBSU4sUUFBUTtzQkFEUCxLQUFLO2dCQUlOLHFCQUFxQjtzQkFEcEIsS0FBSztnQkFJTixVQUFVO3NCQURULEtBQUs7Z0JBSU4saUJBQWlCO3NCQURoQixTQUFTO3VCQUFDLFFBQVE7Z0JBSW5CLGlCQUFpQjtzQkFEaEIsWUFBWTt1QkFBQyxnQkFBZ0I7Z0JBSTlCLG9CQUFvQjtzQkFEbkIsWUFBWTt1QkFBQyxtQkFBbUI7Z0JBU2pDLGlCQUFpQjtzQkFEaEIsS0FBSztnQkFJTixhQUFhO3NCQURaLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0FmdGVyVmlld0luaXQsIENvbXBvbmVudCwgQ29udGVudENoaWxkLCBJbnB1dCwgVGVtcGxhdGVSZWYsIFZpZXdDaGlsZH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7TWF0QXV0b2NvbXBsZXRlU2VsZWN0ZWRFdmVudH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYXV0b2NvbXBsZXRlJztcbmltcG9ydCB7TWF0SW5wdXR9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9pbnB1dFwiO1xuaW1wb3J0IHtcbiAgRHNsLFxuICBHdWFyZCxcbiAgTGlzdE1vZGVsLFxuICBMaXN0TW9kZWxDaGFpbixcbiAgTXV0YWJsZVZhbHVlTW9kZWwsXG4gIFByZWRpY2F0ZSxcbiAgUHJveGlmeSxcbiAgcHJveGlmeSxcbiAgU3RvcmVJbkxpc3RNb2RlbFxufSBmcm9tIFwiQGNvb2xvbi9wZWN0aW5cIjtcblxuaW1wb3J0IHtpc0VtcHR5LCBpc1N0cmluZ30gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7QWJzdHJhY3RWYWx1ZUlucHV0Q29tcG9uZW50fSBmcm9tICcuLi9hYnN0cmFjdC12YWx1ZS1pbnB1dC5jb21wb25lbnQnO1xuXG4vKipcbiAqIFVzaW5nIHRlbXBsYXRlcyAobm90IG9ubHkgc3VwcG9ydGVkIGZvciBuaWwgdmFsdWVzOlxuICogPGF1cC1hdXRvY29tcGxldGUtaW5wdXQgW3ZhbHVlTW9kZWxdPVwibXlNb2RlbFwiIFtvcHRpb25zXT1cIm15T3B0aW9uc1wiPlxuICogICA8bmctdGVtcGxhdGUgI25pbE9wdGlvblRlbXBsYXRlIGxldC1vcHRpb24+e3tvcHRpb24udGhlUHJvcGVydHlZb3VXYW50fX08L25nLXRlbXBsYXRlPlxuICogPC9hdXAtYXV0b2NvbXBsZXRlLWlucHV0PlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhdXAtYXV0b2NvbXBsZXRlLWlucHV0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2F1dG9jb21wbGV0ZS1pbnB1dC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2F1dG9jb21wbGV0ZS1pbnB1dC5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIEF1dG9jb21wbGV0ZUlucHV0Q29tcG9uZW50PFQgPSBhbnk+IGV4dGVuZHMgQWJzdHJhY3RWYWx1ZUlucHV0Q29tcG9uZW50PFQ+IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG5cbiAgQElucHV0KCkgQFByb3hpZnkoKVxuICBhY2Nlc3NvciByYXdUZXh0Q29udGVudCQgPSBwcm94aWZ5KE11dGFibGVWYWx1ZU1vZGVsPHN0cmluZz4pO1xuXG4gIEBJbnB1dCgpIEBQcm94aWZ5KClcbiAgYWNjZXNzb3Igb3B0aW9ucyQgPSBwcm94aWZ5KExpc3RNb2RlbDxUPik7XG5cbiAgQElucHV0KCkgQFN0b3JlSW5MaXN0TW9kZWwoKVxuICBhY2Nlc3NvciBvcHRpb25zOiBUW107XG5cbiAgQElucHV0KClcbiAgb3B0aW9uTGFiZWw6IGtleW9mIFQ7XG5cbiAgQElucHV0KClcbiAgYWxsb3dOaWw6IGJvb2xlYW47XG5cbiAgQElucHV0KClcbiAgYXV0b0FjdGl2ZUZpcnN0T3B0aW9uID0gdHJ1ZTtcblxuICBASW5wdXQoKVxuICBhdXRvRmlsdGVyID0gdHJ1ZTtcblxuICBAVmlld0NoaWxkKE1hdElucHV0KVxuICBtYXRJbnB1dENvbXBvbmVudDogTWF0SW5wdXQ7XG5cbiAgQENvbnRlbnRDaGlsZCgnb3B0aW9uVGVtcGxhdGUnKVxuICBvcHRpb25UZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8YW55PjtcblxuICBAQ29udGVudENoaWxkKCduaWxPcHRpb25UZW1wbGF0ZScpXG4gIG5pbE9wdGlvblRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgaW5TZWFyY2hVcGRhdGUkID0gbmV3IEd1YXJkKClcblxuICBwcml2YXRlIGZpbHRlclZhbHVlID0gbmV3IE11dGFibGVWYWx1ZU1vZGVsPHN0cmluZz4oKTtcbiAgcmVhZG9ubHkgZmlsdGVyZWRPcHRpb25zOiBMaXN0TW9kZWxDaGFpbjxUPjtcblxuICBASW5wdXQoKVxuICBvcHRpb25MYWJlbEZvcm1hdDogKG9wdGlvbjogVCkgPT4gYW55ID0gKG9wdGlvbikgPT4gKG9wdGlvbiAmJiB0aGlzLm9wdGlvbkxhYmVsKSA/IG9wdGlvblt0aGlzLm9wdGlvbkxhYmVsXSA6IG9wdGlvbjtcblxuICBASW5wdXQoKVxuICBmaWx0ZXJGYWN0b3J5OiAoZmlsdGVyVGV4dDpzdHJpbmcpID0+IFByZWRpY2F0ZTxUPiA9IChmaWx0ZXJUZXh0OiBzdHJpbmcpID0+IHtcbiAgICBjb25zdCBsb3dlckNhc2VGaWx0ZXJWYWx1ZSA9ICBpc1N0cmluZyhmaWx0ZXJUZXh0KSA/IGZpbHRlclRleHQudG9Mb3dlckNhc2UoKSA6ICcnO1xuICAgIHJldHVybiAob3B0aW9uOiBUKSA9PiB7XG4gICAgICBjb25zdCBtYXRjaGVzID0gIWlzRW1wdHkodGhpcy5maWx0ZXJWYWx1ZS52YWx1ZSkgJiYgdGhpcy5vcHRpb25MYWJlbEZvcm1hdChvcHRpb24pLnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhsb3dlckNhc2VGaWx0ZXJWYWx1ZSk7XG4gICAgICByZXR1cm4gbWF0Y2hlcztcbiAgICB9XG4gIH07XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICBjb25zdCB7IGNoYWluLCB2YWx1ZU9mLCBiZWZvcmUsIHdoZW4sIGFmdGVyLCBvYnNlcnZlLCBzd2l0Y2hPbiB9ID0gRHNsLmRpc3Bvc2VXaXRoKHRoaXMpO1xuICAgIGNvbnN0ICBmaWx0ZXIkID0gY2hhaW4odGhpcy5maWx0ZXJWYWx1ZSkubWFwKHYgPT4gdGhpcy5maWx0ZXJGYWN0b3J5KHYpLCB7YWxsb3dOaWw6IHRydWV9KTtcbiAgICB0aGlzLmZpbHRlcmVkT3B0aW9ucyA9IGNoYWluKHRoaXMub3B0aW9ucyQpXG4gICAgICAuc2VsZWN0KG9wdGlvbiA9PiAhdGhpcy5hdXRvRmlsdGVyIHx8IGZpbHRlciQudmFsdWUob3B0aW9uKSwgeyBkZXBlbmRzT246IGZpbHRlciQgfSk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgY29uc3QgeyB3aGVuIH0gPSBEc2wuZGlzcG9zZVdpdGgodGhpcyk7XG4gICAgd2hlbih0aGlzLnJhd1RleHRDb250ZW50JCkuY2hhbmdlcyhjb250ZW50ID0+IHtcbiAgICAgIHRoaXMubWF0SW5wdXRDb21wb25lbnQudmFsdWUgPSBjb250ZW50O1xuICAgIH0sIHtcbiAgICAgIHVubGVzczogdGhpcy5pblNlYXJjaFVwZGF0ZSRcbiAgICB9KTtcbiAgfVxuXG4gIGZvcm1hdE9wdGlvbihvcHRpb246IFQpIHtcbiAgICByZXR1cm4gdGhpcy5vcHRpb25MYWJlbEZvcm1hdChvcHRpb24pO1xuICB9XG5cbiAgdXBkYXRlRmlsdGVyKCRldmVudDogc3RyaW5nKSB7XG4gICAgdGhpcy5pblNlYXJjaFVwZGF0ZSQud2hpbGVUcnVlKCgpID0+IHtcbiAgICAgIHRoaXMucmF3VGV4dENvbnRlbnQkLnZhbHVlID0gJGV2ZW50O1xuICAgICAgdGhpcy5maWx0ZXJWYWx1ZS52YWx1ZSA9ICRldmVudDtcbiAgICB9KVxuICB9XG5cbiAgb25TZWxlY3QoJGV2ZW50OiBNYXRBdXRvY29tcGxldGVTZWxlY3RlZEV2ZW50KSB7XG4gICAgdGhpcy5pblNlYXJjaFVwZGF0ZSQud2hpbGVUcnVlKCgpID0+IHtcbiAgICAgIHRoaXMucmF3VGV4dENvbnRlbnQkLnZhbHVlID0gdW5kZWZpbmVkO1xuICAgICAgdGhpcy52YWx1ZSRbXCJ2YWx1ZVwiXSA9ICRldmVudC5vcHRpb24udmFsdWU7XG4gICAgfSlcbiAgfVxufVxuIiwiPG1hdC1mb3JtLWZpZWxkIFtmbG9hdExhYmVsXT1cImZsb2F0TGFiZWxcIj5cbiAgPG1hdC1sYWJlbCAqbmdJZj1cImxhYmVsXCI+e3tsYWJlbH19PC9tYXQtbGFiZWw+XG4gIDxpbnB1dCB0eXBlPVwic3RyaW5nXCJcbiAgICAgICAgIG1hdElucHV0XG4gICAgICAgICBbbWF0QXV0b2NvbXBsZXRlXT1cImF1dG9jb21wbGV0ZVwiXG4gICAgICAgICBwbGFjZWhvbGRlcj1cInt7cGxhY2Vob2xkZXJ9fVwiXG4gICAgICAgICBbbmdNb2RlbF09XCJjb21wb25lbnRWYWx1ZSQudmFsdWVcIlxuICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwidXBkYXRlRmlsdGVyKCRldmVudClcIlxuICAgICAgICAgW2Rpc2FibGVkXT1cIiFlbmFibGVkJC52YWx1ZVwiXG4gICAgICAgICAoa2V5ZG93bi5lbnRlcik9XCJub3RpZnlFbnRlcktleSgpXCJcbiAgICAgICAgIChrZXlkb3duLmVzY2FwZSk9XCJub3RpZnlFc2NhcGVLZXkoKVwiXG4gICAgICAgICBbcGVjdGluRm9jdXNCaW5kaW5nXT1cImZvY3VzQ29udGV4dFwiXG4gICAgICAgICBbZXJyb3JTdGF0ZU1hdGNoZXJdPVwiZXJyb3JTdGF0ZU1hdGNoZXJcIlxuICA+XG4gIDxtYXQtYXV0b2NvbXBsZXRlICNhdXRvY29tcGxldGUgW2Rpc3BsYXlXaXRoXT1cIm9wdGlvbkxhYmVsRm9ybWF0XCJcbiAgICAgICAgICAgICAgICAgICAgW2F1dG9BY3RpdmVGaXJzdE9wdGlvbl09XCJhdXRvQWN0aXZlRmlyc3RPcHRpb25cIlxuICAgICAgICAgICAgICAgICAgICAob3B0aW9uU2VsZWN0ZWQpPVwib25TZWxlY3QoJGV2ZW50KVwiPlxuICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCBvcHRpb24gb2YgZmlsdGVyZWRPcHRpb25zLnZhbHVlOyBsZXQgaSA9IGluZGV4XCJcbiAgICAgICAgICAgICAgICBbdmFsdWVdPVwib3B0aW9uXCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIW9wdGlvblRlbXBsYXRlUmVmXCI+e3tmb3JtYXRPcHRpb24ob3B0aW9uKX19PC9uZy1jb250YWluZXI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwib3B0aW9uVGVtcGxhdGVSZWZcIlxuICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJvcHRpb25UZW1wbGF0ZVJlZlwiXG4gICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogb3B0aW9uLCBpbmRleDogaSB9XCJcbiAgICAgID5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvbWF0LW9wdGlvbj5cbiAgICA8bWF0LW9wdGlvbiAqbmdJZj1cImFsbG93TmlsXCI+e3twbGFjZWhvbGRlcn19PC9tYXQtb3B0aW9uPlxuICA8L21hdC1hdXRvY29tcGxldGU+XG5cbiAgPG1hdC1oaW50ICpuZ0lmPVwic2hvd0hpbnRcIj57e2hpbnR9fTwvbWF0LWhpbnQ+XG4gIDxtYXQtZXJyb3IgKm5nSWY9XCJoYXNFcnJvcnMoKVwiPnt7Zmlyc3RFcnJvcn19PC9tYXQtZXJyb3I+XG48L21hdC1mb3JtLWZpZWxkPlxuPGRpdiBjbGFzcz1cIndpZHRoLXN0cnV0XCI+XG4gIDxtYXQtbGFiZWwgKm5nSWY9XCJsYWJlbFwiPnt7bGFiZWx9fTwvbWF0LWxhYmVsPlxuICA8ZGl2Pnt7cGxhY2Vob2xkZXJ9fTwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiaXRlbVwiICpuZ0Zvcj1cImxldCBpdGVtIG9mIG9wdGlvbnNcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIW9wdGlvblRlbXBsYXRlUmVmXCI+e3tmb3JtYXRPcHRpb24oaXRlbSl9fTwvbmctY29udGFpbmVyPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJvcHRpb25UZW1wbGF0ZVJlZlwiXG4gICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJvcHRpb25UZW1wbGF0ZVJlZlwiXG4gICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQ6IGl0ZW0sIGluZGV4OiAwIH1cIlxuICAgID5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
@@ -2,9 +2,8 @@ import { Component, Input } from '@angular/core';
2
2
  import { AbstractValueInputComponent } from '../abstract-value-input.component';
3
3
  import * as i0 from "@angular/core";
4
4
  import * as i1 from "@angular/common";
5
- import * as i2 from "@angular/forms";
6
- import * as i3 from "@angular/material/form-field";
7
- import * as i4 from "@angular/material/checkbox";
5
+ import * as i2 from "@angular/material/form-field";
6
+ import * as i3 from "@angular/material/checkbox";
8
7
  export class CheckboxInputComponent extends AbstractValueInputComponent {
9
8
  // @Input() @Proxify({ delegateTo: 'inputModel' })
10
9
  // valueModel: Form.ValueModelBase<boolean> | MutableValueModel<boolean>;
@@ -13,15 +12,18 @@ export class CheckboxInputComponent extends AbstractValueInputComponent {
13
12
  constructor() {
14
13
  super();
15
14
  }
15
+ select($event) {
16
+ this.componentValue$.value = $event.checked;
17
+ }
16
18
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: CheckboxInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
17
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: CheckboxInputComponent, selector: "aup-checkbox-input", inputs: { color: "color", labelPosition: "labelPosition" }, usesInheritance: true, ngImport: i0, template: "<!-- TODO: add focus binding -->\n<mat-checkbox\n [(ngModel)]=\"componentValue$.value\"\n [color]=\"color\"\n [labelPosition]=\"labelPosition\"\n [disabled]=\"!isEnabled()\"\n>{{label}}</mat-checkbox>\n<mat-hint *ngIf=\"showHint\">{{hint}}</mat-hint>\n<mat-error *ngIf=\"hasErrors\">{{firstError}}</mat-error>\n", styles: [":host{display:inline-flex;flex-direction:column;padding:24px 0 16px}:host.dense{padding:6px 0 2px}mat-hint,mat-error{margin-top:4px;margin-left:24px;font-size:12px;font-weight:400;line-height:13.5px}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i3.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i3.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "component", type: i4.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex"], exportAs: ["matCheckbox"] }] });
19
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: CheckboxInputComponent, selector: "aup-checkbox-input", inputs: { color: "color", labelPosition: "labelPosition" }, usesInheritance: true, ngImport: i0, template: "<!-- TODO: add focus binding -->\n<!-- NOTE: using [(ngModel)] affects how material renders the component and makes it harder to test so we're using [checked] and (change) -->\n<mat-checkbox\n [checked]=\"componentValue$.value\"\n (change)=\"select($event)\"\n [color]=\"color\"\n [labelPosition]=\"labelPosition\"\n [disabled]=\"!isEnabled()\"\n>{{ label }}\n</mat-checkbox>\n<ng-container *ngIf=\"!dense\">\n <mat-hint *ngIf=\"showHint\">{{ hint }}</mat-hint>\n <mat-error *ngIf=\"hasErrors()\">{{ firstError }}</mat-error>\n</ng-container>\n", styles: [":host{display:inline-flex;flex-direction:column;padding:10px 0 0}:host.dense{padding:4px 0 2px}mat-hint,mat-error{margin-top:4px;margin-left:24px;font-size:12px;font-weight:400;line-height:13.5px}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i2.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "component", type: i3.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex"], exportAs: ["matCheckbox"] }] });
18
20
  }
19
21
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: CheckboxInputComponent, decorators: [{
20
22
  type: Component,
21
- args: [{ selector: 'aup-checkbox-input', template: "<!-- TODO: add focus binding -->\n<mat-checkbox\n [(ngModel)]=\"componentValue$.value\"\n [color]=\"color\"\n [labelPosition]=\"labelPosition\"\n [disabled]=\"!isEnabled()\"\n>{{label}}</mat-checkbox>\n<mat-hint *ngIf=\"showHint\">{{hint}}</mat-hint>\n<mat-error *ngIf=\"hasErrors\">{{firstError}}</mat-error>\n", styles: [":host{display:inline-flex;flex-direction:column;padding:24px 0 16px}:host.dense{padding:6px 0 2px}mat-hint,mat-error{margin-top:4px;margin-left:24px;font-size:12px;font-weight:400;line-height:13.5px}\n"] }]
23
+ args: [{ selector: 'aup-checkbox-input', template: "<!-- TODO: add focus binding -->\n<!-- NOTE: using [(ngModel)] affects how material renders the component and makes it harder to test so we're using [checked] and (change) -->\n<mat-checkbox\n [checked]=\"componentValue$.value\"\n (change)=\"select($event)\"\n [color]=\"color\"\n [labelPosition]=\"labelPosition\"\n [disabled]=\"!isEnabled()\"\n>{{ label }}\n</mat-checkbox>\n<ng-container *ngIf=\"!dense\">\n <mat-hint *ngIf=\"showHint\">{{ hint }}</mat-hint>\n <mat-error *ngIf=\"hasErrors()\">{{ firstError }}</mat-error>\n</ng-container>\n", styles: [":host{display:inline-flex;flex-direction:column;padding:10px 0 0}:host.dense{padding:4px 0 2px}mat-hint,mat-error{margin-top:4px;margin-left:24px;font-size:12px;font-weight:400;line-height:13.5px}\n"] }]
22
24
  }], ctorParameters: function () { return []; }, propDecorators: { color: [{
23
25
  type: Input
24
26
  }], labelPosition: [{
25
27
  type: Input
26
28
  }] } });
27
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3gtaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXVpLXBvd2VydXBzL3NyYy9saWIvY29tcG9uZW50cy9mb3Jtcy9jaGVja2JveC1pbnB1dC9jaGVja2JveC1pbnB1dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdWktcG93ZXJ1cHMvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm1zL2NoZWNrYm94LWlucHV0L2NoZWNrYm94LWlucHV0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsS0FBSyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQy9DLE9BQU8sRUFBQywyQkFBMkIsRUFBQyxNQUFNLG1DQUFtQyxDQUFDOzs7Ozs7QUFPOUUsTUFBTSxPQUFPLHNCQUF1QixTQUFRLDJCQUFvQztJQUU5RSxrREFBa0Q7SUFDbEQseUVBQXlFO0lBR3pFLEtBQUssR0FBa0MsUUFBUSxDQUFDO0lBR2hELGFBQWEsR0FBdUIsT0FBTyxDQUFDO0lBRTVDO1FBQ0UsS0FBSyxFQUFFLENBQUM7SUFDVixDQUFDO3VHQWJVLHNCQUFzQjsyRkFBdEIsc0JBQXNCLDZJQ1JuQyw2VEFTQTs7MkZERGEsc0JBQXNCO2tCQUxsQyxTQUFTOytCQUNFLG9CQUFvQjswRUFVOUIsS0FBSztzQkFESixLQUFLO2dCQUlOLGFBQWE7c0JBRFosS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBJbnB1dH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0Fic3RyYWN0VmFsdWVJbnB1dENvbXBvbmVudH0gZnJvbSAnLi4vYWJzdHJhY3QtdmFsdWUtaW5wdXQuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXVwLWNoZWNrYm94LWlucHV0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NoZWNrYm94LWlucHV0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY2hlY2tib3gtaW5wdXQuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBDaGVja2JveElucHV0Q29tcG9uZW50IGV4dGVuZHMgQWJzdHJhY3RWYWx1ZUlucHV0Q29tcG9uZW50PGJvb2xlYW4+IHtcblxuICAvLyBASW5wdXQoKSBAUHJveGlmeSh7IGRlbGVnYXRlVG86ICdpbnB1dE1vZGVsJyB9KVxuICAvLyB2YWx1ZU1vZGVsOiBGb3JtLlZhbHVlTW9kZWxCYXNlPGJvb2xlYW4+IHwgTXV0YWJsZVZhbHVlTW9kZWw8Ym9vbGVhbj47XG5cbiAgQElucHV0KClcbiAgY29sb3I6ICdwcmltYXJ5JyB8ICd3YXJuJyB8ICdhY2NlbnQnID0gJ2FjY2VudCc7XG5cbiAgQElucHV0KClcbiAgbGFiZWxQb3NpdGlvbjogJ2JlZm9yZScgfCAnYWZ0ZXInID0gJ2FmdGVyJztcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbn1cbiIsIjwhLS0gVE9ETzogYWRkIGZvY3VzIGJpbmRpbmcgLS0+XG48bWF0LWNoZWNrYm94XG4gIFsobmdNb2RlbCldPVwiY29tcG9uZW50VmFsdWUkLnZhbHVlXCJcbiAgW2NvbG9yXT1cImNvbG9yXCJcbiAgW2xhYmVsUG9zaXRpb25dPVwibGFiZWxQb3NpdGlvblwiXG4gIFtkaXNhYmxlZF09XCIhaXNFbmFibGVkKClcIlxuPnt7bGFiZWx9fTwvbWF0LWNoZWNrYm94PlxuPG1hdC1oaW50ICpuZ0lmPVwic2hvd0hpbnRcIj57e2hpbnR9fTwvbWF0LWhpbnQ+XG48bWF0LWVycm9yICpuZ0lmPVwiaGFzRXJyb3JzXCI+e3tmaXJzdEVycm9yfX08L21hdC1lcnJvcj5cbiJdfQ==
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3gtaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXVpLXBvd2VydXBzL3NyYy9saWIvY29tcG9uZW50cy9mb3Jtcy9jaGVja2JveC1pbnB1dC9jaGVja2JveC1pbnB1dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdWktcG93ZXJ1cHMvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm1zL2NoZWNrYm94LWlucHV0L2NoZWNrYm94LWlucHV0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsS0FBSyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQy9DLE9BQU8sRUFBQywyQkFBMkIsRUFBQyxNQUFNLG1DQUFtQyxDQUFDOzs7OztBQVE5RSxNQUFNLE9BQU8sc0JBQXVCLFNBQVEsMkJBQW9DO0lBRTlFLGtEQUFrRDtJQUNsRCx5RUFBeUU7SUFHekUsS0FBSyxHQUFrQyxRQUFRLENBQUM7SUFHaEQsYUFBYSxHQUF1QixPQUFPLENBQUM7SUFFNUM7UUFDRSxLQUFLLEVBQUUsQ0FBQztJQUNWLENBQUM7SUFFRCxNQUFNLENBQUMsTUFBeUI7UUFDOUIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQTtJQUM3QyxDQUFDO3VHQWpCVSxzQkFBc0I7MkZBQXRCLHNCQUFzQiw2SUNUbkMseWlCQWNBOzsyRkRMYSxzQkFBc0I7a0JBTGxDLFNBQVM7K0JBQ0Usb0JBQW9COzBFQVU5QixLQUFLO3NCQURKLEtBQUs7Z0JBSU4sYUFBYTtzQkFEWixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIElucHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QWJzdHJhY3RWYWx1ZUlucHV0Q29tcG9uZW50fSBmcm9tICcuLi9hYnN0cmFjdC12YWx1ZS1pbnB1dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWF0Q2hlY2tib3hDaGFuZ2UgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jaGVja2JveCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F1cC1jaGVja2JveC1pbnB1dCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9jaGVja2JveC1pbnB1dC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NoZWNrYm94LWlucHV0LmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQ2hlY2tib3hJbnB1dENvbXBvbmVudCBleHRlbmRzIEFic3RyYWN0VmFsdWVJbnB1dENvbXBvbmVudDxib29sZWFuPiB7XG5cbiAgLy8gQElucHV0KCkgQFByb3hpZnkoeyBkZWxlZ2F0ZVRvOiAnaW5wdXRNb2RlbCcgfSlcbiAgLy8gdmFsdWVNb2RlbDogRm9ybS5WYWx1ZU1vZGVsQmFzZTxib29sZWFuPiB8IE11dGFibGVWYWx1ZU1vZGVsPGJvb2xlYW4+O1xuXG4gIEBJbnB1dCgpXG4gIGNvbG9yOiAncHJpbWFyeScgfCAnd2FybicgfCAnYWNjZW50JyA9ICdhY2NlbnQnO1xuXG4gIEBJbnB1dCgpXG4gIGxhYmVsUG9zaXRpb246ICdiZWZvcmUnIHwgJ2FmdGVyJyA9ICdhZnRlcic7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIHNlbGVjdCgkZXZlbnQ6IE1hdENoZWNrYm94Q2hhbmdlKSB7XG4gICAgdGhpcy5jb21wb25lbnRWYWx1ZSQudmFsdWUgPSAkZXZlbnQuY2hlY2tlZFxuICB9XG59XG4iLCI8IS0tIFRPRE86IGFkZCBmb2N1cyBiaW5kaW5nIC0tPlxuPCEtLSBOT1RFOiB1c2luZyBbKG5nTW9kZWwpXSBhZmZlY3RzIGhvdyBtYXRlcmlhbCByZW5kZXJzIHRoZSBjb21wb25lbnQgYW5kIG1ha2VzIGl0IGhhcmRlciB0byB0ZXN0IHNvIHdlJ3JlIHVzaW5nIFtjaGVja2VkXSBhbmQgKGNoYW5nZSkgLS0+XG48bWF0LWNoZWNrYm94XG4gIFtjaGVja2VkXT1cImNvbXBvbmVudFZhbHVlJC52YWx1ZVwiXG4gIChjaGFuZ2UpPVwic2VsZWN0KCRldmVudClcIlxuICBbY29sb3JdPVwiY29sb3JcIlxuICBbbGFiZWxQb3NpdGlvbl09XCJsYWJlbFBvc2l0aW9uXCJcbiAgW2Rpc2FibGVkXT1cIiFpc0VuYWJsZWQoKVwiXG4+e3sgbGFiZWwgfX1cbjwvbWF0LWNoZWNrYm94PlxuPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFkZW5zZVwiPlxuICA8bWF0LWhpbnQgKm5nSWY9XCJzaG93SGludFwiPnt7IGhpbnQgfX08L21hdC1oaW50PlxuICA8bWF0LWVycm9yICpuZ0lmPVwiaGFzRXJyb3JzKClcIj57eyBmaXJzdEVycm9yIH19PC9tYXQtZXJyb3I+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci11aS1wb3dlcnVwcy9zcmMvbGliL2NvbXBvbmVudHMvZm9ybXMvZm9ybS1maWVsZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBGb3JtRmllbGQge1xuICBsYWJlbCgpOnN0cmluZztcbiAgaGludD8oKTpzdHJpbmc7XG4gIHBsYWNlaG9sZGVyPygpOnN0cmluZztcbn1cbiJdfQ==