@coolon/angular-ui-powerups 12.4.9 → 13.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (315) hide show
  1. package/assets/activities/activities.scss +1 -1
  2. package/assets/cards.scss +1 -1
  3. package/assets/form.scss +1 -1
  4. package/assets/interaction/editor/inline-string-editor.scss +1 -1
  5. package/assets/interaction.scss +1 -1
  6. package/assets/mixins.scss +2 -2
  7. package/assets/pills.scss +1 -1
  8. package/assets/styles.scss +1 -1
  9. package/{esm2015/lib/angular-ui-powerups.module.js → esm2020/lib/angular-ui-powerups.module.mjs} +5 -5
  10. package/esm2020/lib/components/busy-overlay/busy-overlay.component.mjs +32 -0
  11. package/{esm2015/lib/components/cards/abstract-card-container.component.js → esm2020/lib/components/cards/abstract-card-container.component.mjs} +4 -4
  12. package/esm2020/lib/components/cards/card-container/card-container.component.mjs +129 -0
  13. package/esm2020/lib/components/cards/card-stack/card-stack.component.mjs +81 -0
  14. package/esm2020/lib/components/commands/command/command.component.mjs +96 -0
  15. package/{esm2015/lib/components/commands/command-face/command-face.component.js → esm2020/lib/components/commands/command-face/command-face.component.mjs} +5 -10
  16. package/esm2020/lib/components/commands/command-face.mjs +112 -0
  17. package/{esm2015/lib/components/commands/flex.component.js → esm2020/lib/components/commands/flex.component.mjs} +4 -4
  18. package/esm2020/lib/components/commands/group/popup-menu/abstract-popup-menu.component.mjs +84 -0
  19. package/esm2020/lib/components/commands/group/popup-menu/more-menu.component.mjs +57 -0
  20. package/esm2020/lib/components/commands/group/popup-menu/popup-menu-renderer/popup-menu-renderer.component.mjs +101 -0
  21. package/esm2020/lib/components/commands/group/popup-menu/popup-menu.component.mjs +53 -0
  22. package/esm2020/lib/components/commands/group/tool-bar/tool-bar.component.mjs +31 -0
  23. package/{esm2015/lib/components/commands/separator.component.js → esm2020/lib/components/commands/separator.component.mjs} +5 -5
  24. package/{esm2015/lib/components/components.module.js → esm2020/lib/components/components.module.mjs} +6 -6
  25. package/{esm2015/lib/components/disposable-component.js → esm2020/lib/components/disposable-component.mjs} +4 -4
  26. package/{esm2015/lib/components/empty-state/empty-state.component.js → esm2020/lib/components/empty-state/empty-state.component.mjs} +6 -10
  27. package/{esm2015/lib/components/focus-container/focus-container.component.js → esm2020/lib/components/focus-container/focus-container.component.mjs} +6 -11
  28. package/{esm2015/lib/components/focusable.component.js → esm2020/lib/components/focusable.component.mjs} +6 -8
  29. package/{esm2015/lib/components/forms/abstract-input.component.js → esm2020/lib/components/forms/abstract-input.component.mjs} +4 -4
  30. package/{esm2015/lib/components/forms/abstract-list-input.component.js → esm2020/lib/components/forms/abstract-list-input.component.mjs} +4 -4
  31. package/{esm2015/lib/components/forms/abstract-value-input.component.js → esm2020/lib/components/forms/abstract-value-input.component.mjs} +4 -4
  32. package/esm2020/lib/components/forms/autocomplete-input/autocomplete-input.component.mjs +72 -0
  33. package/esm2020/lib/components/forms/checkbox-input/checkbox-input.component.mjs +29 -0
  34. package/esm2020/lib/components/forms/multiple-select-input/multiple-select-input.component.mjs +52 -0
  35. package/esm2020/lib/components/forms/number-input/number-input.component.mjs +33 -0
  36. package/esm2020/lib/components/forms/password-input/password-input.component.mjs +24 -0
  37. package/esm2020/lib/components/forms/select-input/select-input.component.mjs +57 -0
  38. package/esm2020/lib/components/forms/string-input/string-input.component.mjs +48 -0
  39. package/esm2020/lib/components/forms/text-input/text-input.component.mjs +30 -0
  40. package/esm2020/lib/components/icon/icon.component.mjs +52 -0
  41. package/esm2020/lib/components/labelled-value/labelled-value.component.mjs +20 -0
  42. package/esm2020/lib/components/loading-container/loading-container.component.mjs +50 -0
  43. package/esm2020/lib/components/noop/noop.component.mjs +13 -0
  44. package/{esm2015/lib/components/resize-aware.component.js → esm2020/lib/components/resize-aware.component.mjs} +4 -4
  45. package/esm2020/lib/components/scroll-container/scroll-container.component.mjs +15 -0
  46. package/esm2020/lib/components/section-header/section-header.component.mjs +36 -0
  47. package/{esm2015/lib/components/switch-case/switch-case.component.js → esm2020/lib/components/switch-case/switch-case.component.mjs} +11 -15
  48. package/esm2020/lib/components/tables/abstract-table-model.mjs +185 -0
  49. package/esm2020/lib/components/tables/abstract-table.component.mjs +168 -0
  50. package/{esm2015/lib/components/tables/table/cell-portal-ref.js → esm2020/lib/components/tables/table/cell-portal-ref.mjs} +2 -2
  51. package/esm2020/lib/components/tables/table/column-model.mjs +392 -0
  52. package/esm2020/lib/components/tables/table/column-template/column-template.directive.mjs +35 -0
  53. package/esm2020/lib/components/tables/table/default-cell-renderer/default-cell-renderer.component.mjs +22 -0
  54. package/esm2020/lib/components/tables/table/default-header-cell-renderer/default-header-cell-renderer.component.mjs +15 -0
  55. package/esm2020/lib/components/tables/table/edit-row-controls/edit-row-controls.component.mjs +55 -0
  56. package/esm2020/lib/components/tables/table/paginator/paginator.component.mjs +40 -0
  57. package/esm2020/lib/components/tables/table/select-cell-renderer/select-cell-renderer.component.mjs +26 -0
  58. package/esm2020/lib/components/tables/table/select-header-cell-renderer/select-header-cell-renderer.component.mjs +31 -0
  59. package/esm2020/lib/components/tables/table/table-cell-renderer/table-cell-renderer.component.mjs +93 -0
  60. package/esm2020/lib/components/tables/table/table-header-cell-renderer/table-header-cell-renderer.component.mjs +32 -0
  61. package/{esm2015/lib/components/tables/table/table-row-menu/table-row-menu.component.js → esm2020/lib/components/tables/table/table-row-menu/table-row-menu.component.mjs} +5 -5
  62. package/esm2020/lib/components/tables/table/table.component.mjs +95 -0
  63. package/esm2020/lib/components/tables/tree-table/decorated-tree-node.mjs +171 -0
  64. package/esm2020/lib/components/tables/tree-table/tree-inheritance-icon/tree-inheritance-icon.component.mjs +72 -0
  65. package/esm2020/lib/components/tables/tree-table/tree-label-cell-renderer/tree-label-cell-renderer.component.mjs +91 -0
  66. package/esm2020/lib/components/tables/tree-table/tree-table-component.mjs +95 -0
  67. package/{esm2015/lib/components/text/markdown/markdown.component.js → esm2020/lib/components/text/markdown/markdown.component.mjs} +5 -9
  68. package/{esm2015/lib/components/vertical-focus-container/vertical-focus-container.component.js → esm2020/lib/components/vertical-focus-container/vertical-focus-container.component.mjs} +6 -11
  69. package/{esm2015/lib/directives/command.directive.js → esm2020/lib/directives/command.directive.mjs} +4 -4
  70. package/{esm2015/lib/directives/directives.module.js → esm2020/lib/directives/directives.module.mjs} +5 -5
  71. package/{esm2015/lib/directives/focus-binding-factory.js → esm2020/lib/directives/focus-binding-factory.mjs} +4 -4
  72. package/{esm2015/lib/directives/focus-binding.directive.js → esm2020/lib/directives/focus-binding.directive.mjs} +4 -4
  73. package/{esm2015/lib/directives/highlight-text-model.directive.js → esm2020/lib/directives/highlight-text-model.directive.mjs} +4 -4
  74. package/{esm2015/lib/directives/highlight.pipe.js → esm2020/lib/directives/highlight.pipe.mjs} +6 -7
  75. package/esm2020/lib/interaction/activity.mjs +87 -0
  76. package/{esm2015/lib/interaction/components/abstract-confirm-dialog.component.js → esm2020/lib/interaction/components/abstract-confirm-dialog.component.mjs} +4 -4
  77. package/{esm2015/lib/interaction/components/abstract-dialog.component.js → esm2020/lib/interaction/components/abstract-dialog.component.mjs} +4 -4
  78. package/esm2020/lib/interaction/components/activity-actions/activity-actions.component.mjs +109 -0
  79. package/esm2020/lib/interaction/components/activity-body/activity-body.component.mjs +23 -0
  80. package/esm2020/lib/interaction/components/activity-container/activity-container.component.mjs +205 -0
  81. package/{esm2015/lib/interaction/components/activity-container/activity-outlet/activity-outlet.component.js → esm2020/lib/interaction/components/activity-container/activity-outlet/activity-outlet.component.mjs} +5 -9
  82. package/esm2020/lib/interaction/components/activity-title/activity-title.component.mjs +41 -0
  83. package/{esm2015/lib/interaction/components/activity-triggers/abstract-activity-trigger.component.js → esm2020/lib/interaction/components/activity-triggers/abstract-activity-trigger.component.mjs} +5 -6
  84. package/esm2020/lib/interaction/components/activity-triggers/inline-activity-trigger/inline-activity-trigger.component.mjs +24 -0
  85. package/esm2020/lib/interaction/components/activity-triggers/modal-activity-trigger/modal-activity-trigger.component.mjs +22 -0
  86. package/esm2020/lib/interaction/components/activity-triggers/popup-activity-trigger/popup-activity-trigger.component.mjs +30 -0
  87. package/esm2020/lib/interaction/components/add-card-activity/add-card-activity.component.mjs +91 -0
  88. package/esm2020/lib/interaction/components/add-item-interaction-context/add-item-interaction-context.component.mjs +73 -0
  89. package/esm2020/lib/interaction/components/alert-dialog/alert-dialog.component.mjs +30 -0
  90. package/esm2020/lib/interaction/components/confirm-then-dialog/confirm-then-dialog.component.mjs +30 -0
  91. package/esm2020/lib/interaction/components/confirm-then-execute-dialog/confirm-then-execute-dialog.component.mjs +34 -0
  92. package/esm2020/lib/interaction/components/confirmation-dialog/confirmation-dialog.component.mjs +29 -0
  93. package/esm2020/lib/interaction/components/editors/inline-string-editor/inline-string-editor.component.mjs +173 -0
  94. package/esm2020/lib/interaction/components/inplace-interaction-context/in-place-interaction-context.component.mjs +91 -0
  95. package/esm2020/lib/interaction/components/input-activities/input-activity.mjs +103 -0
  96. package/{esm2015/lib/interaction/components/input-activities/select-input-activity.js → esm2020/lib/interaction/components/input-activities/select-input-activity.mjs} +6 -8
  97. package/{esm2015/lib/interaction/components/input-activities/string-input-activity.js → esm2020/lib/interaction/components/input-activities/string-input-activity.mjs} +4 -4
  98. package/{esm2015/lib/interaction/components/popup-interaction-context/popup-interaction-context.component.js → esm2020/lib/interaction/components/popup-interaction-context/popup-interaction-context.component.mjs} +5 -9
  99. package/{esm2015/lib/interaction/directives/interaction-context-trigger-for.directive.js → esm2020/lib/interaction/directives/interaction-context-trigger-for.directive.mjs} +4 -4
  100. package/{esm2015/lib/interaction/interaction.module.js → esm2020/lib/interaction/interaction.module.mjs} +5 -11
  101. package/{esm2015/lib/interaction/services/interaction.service.js → esm2020/lib/interaction/services/interaction.service.mjs} +4 -4
  102. package/esm2020/lib/interaction/services/mat-dialog-interaction/dialog-interaction-context-factory.mjs +47 -0
  103. package/esm2020/lib/interaction/services/mat-dialog-interaction/dialog-interaction-context.mjs +61 -0
  104. package/{esm2015/lib/place/components/abstract-place-navigation.component.js → esm2020/lib/place/components/abstract-place-navigation.component.mjs} +4 -4
  105. package/esm2020/lib/place/components/list-place-nav/list-place-nav.component.mjs +23 -0
  106. package/esm2020/lib/place/components/not-authorised-notice/not-authorised-notice.component.mjs +13 -0
  107. package/esm2020/lib/place/components/place-outlet/place-outlet.component.mjs +256 -0
  108. package/esm2020/lib/place/components/side-place-navigation/side-place-navigation.component.mjs +93 -0
  109. package/esm2020/lib/place/components/tabbed-place-navigation/tabbed-place-navigation.component.mjs +22 -0
  110. package/esm2020/lib/place/guards/noop-auth-guard.service.mjs +18 -0
  111. package/esm2020/lib/place/guards/place.guard.mjs +109 -0
  112. package/esm2020/lib/place/navigation/place-component-deactivation-handler.mjs +83 -0
  113. package/esm2020/lib/place/navigation/session/event-cleanup/wait-until-leaving-interaction-transition-cancelled.mjs +43 -0
  114. package/esm2020/lib/place/navigation/session/event-cleanup/wait-until-link-triggered-navigation-interaction-cancelation-type-determined.mjs +152 -0
  115. package/esm2020/lib/place/navigation/session/event-cleanup/wait-until-popstate-during-can-deactivate-transition-finishes.mjs +62 -0
  116. package/esm2020/lib/place/navigation/session/navigation-session.mjs +157 -0
  117. package/esm2020/lib/place/place-component.mjs +198 -0
  118. package/esm2020/lib/place/place-history.mjs +138 -0
  119. package/esm2020/lib/place/place-router.mjs +331 -0
  120. package/esm2020/lib/place/place.decorator.mjs +18 -0
  121. package/{esm2015/lib/place/place.module.js → esm2020/lib/place/place.module.mjs} +5 -6
  122. package/esm2020/lib/place/route/parameter-definition.mjs +123 -0
  123. package/esm2020/lib/place/route/visit-sanitiser.mjs +41 -0
  124. package/{esm2015/lib/place/url-service.js → esm2020/lib/place/url-service.mjs} +4 -4
  125. package/esm2020/lib/place/visit.mjs +69 -0
  126. package/{esm2015/lib/services/markdown/markdown.service.js → esm2020/lib/services/markdown/markdown.service.mjs} +5 -5
  127. package/esm2020/lib/services/markdown/pill-plugin.mjs +37 -0
  128. package/{esm2015/lib/services/visibility-service.js → esm2020/lib/services/visibility-service.mjs} +4 -4
  129. package/fesm2015/{coolon-angular-ui-powerups.js → coolon-angular-ui-powerups.mjs} +1201 -1415
  130. package/fesm2015/coolon-angular-ui-powerups.mjs.map +1 -0
  131. package/fesm2020/coolon-angular-ui-powerups.mjs +9891 -0
  132. package/fesm2020/coolon-angular-ui-powerups.mjs.map +1 -0
  133. package/package.json +37 -24
  134. package/schematics/activity/index.js +3 -3
  135. package/schematics/activity/index.js.map +1 -1
  136. package/schematics/aup-i18n/index.js +7 -7
  137. package/schematics/aup-i18n/index.js.map +1 -1
  138. package/schematics/bootstrap-app/index.js +9 -9
  139. package/schematics/bootstrap-app/index.js.map +1 -1
  140. package/schematics/bootstrap-app/templates/src/styles.scss.template +2 -2
  141. package/schematics/component/index.js +3 -3
  142. package/schematics/component/index.js.map +1 -1
  143. package/schematics/ng-add/index.js +2 -2
  144. package/schematics/ng-add/index.js.map +1 -1
  145. package/schematics/place-add/index.js +3 -3
  146. package/schematics/place-add/index.js.map +1 -1
  147. package/schematics/place-bootstrap/index.js +1 -1
  148. package/schematics/place-bootstrap/index.js.map +1 -1
  149. package/schematics/place-routes/place-builder.js +6 -6
  150. package/schematics/place-routes/place-builder.js.map +1 -1
  151. package/schematics/place-routes/place-class-scanner.js +3 -3
  152. package/schematics/place-routes/place-class-scanner.js.map +1 -1
  153. package/schematics/place-routes/place-def.js +4 -4
  154. package/schematics/place-routes/place-def.js.map +1 -1
  155. package/schematics/utils/decorators/decorated-class.js +1 -1
  156. package/schematics/utils/decorators/decorated-class.js.map +1 -1
  157. package/schematics/utils/import-def.js +3 -3
  158. package/schematics/utils/import-def.js.map +1 -1
  159. package/schematics/utils/method-scanner.js +4 -4
  160. package/schematics/utils/method-scanner.js.map +1 -1
  161. package/schematics/utils/path-helper.js +3 -3
  162. package/schematics/utils/path-helper.js.map +1 -1
  163. package/schematics/utils/source-file-scanner.js +5 -5
  164. package/schematics/utils/source-file-scanner.js.map +1 -1
  165. package/schematics/utils/source-file-utilities.js +1 -1
  166. package/schematics/utils/source-file-utilities.js.map +1 -1
  167. package/schematics/utils/template-utilities.js +4 -4
  168. package/schematics/utils/template-utilities.js.map +1 -1
  169. package/bundles/coolon-angular-ui-powerups.umd.js +0 -11847
  170. package/bundles/coolon-angular-ui-powerups.umd.js.map +0 -1
  171. package/esm2015/lib/components/busy-overlay/busy-overlay.component.js +0 -36
  172. package/esm2015/lib/components/cards/card-container/card-container.component.js +0 -133
  173. package/esm2015/lib/components/cards/card-stack/card-stack.component.js +0 -85
  174. package/esm2015/lib/components/commands/command/command.component.js +0 -100
  175. package/esm2015/lib/components/commands/command-face.js +0 -112
  176. package/esm2015/lib/components/commands/group/popup-menu/abstract-popup-menu.component.js +0 -89
  177. package/esm2015/lib/components/commands/group/popup-menu/more-menu.component.js +0 -61
  178. package/esm2015/lib/components/commands/group/popup-menu/popup-menu-renderer/popup-menu-renderer.component.js +0 -104
  179. package/esm2015/lib/components/commands/group/popup-menu/popup-menu.component.js +0 -58
  180. package/esm2015/lib/components/commands/group/tool-bar/tool-bar.component.js +0 -36
  181. package/esm2015/lib/components/forms/autocomplete-input/autocomplete-input.component.js +0 -76
  182. package/esm2015/lib/components/forms/checkbox-input/checkbox-input.component.js +0 -33
  183. package/esm2015/lib/components/forms/multiple-select-input/multiple-select-input.component.js +0 -56
  184. package/esm2015/lib/components/forms/number-input/number-input.component.js +0 -37
  185. package/esm2015/lib/components/forms/password-input/password-input.component.js +0 -28
  186. package/esm2015/lib/components/forms/select-input/select-input.component.js +0 -61
  187. package/esm2015/lib/components/forms/string-input/string-input.component.js +0 -52
  188. package/esm2015/lib/components/forms/text-input/text-input.component.js +0 -34
  189. package/esm2015/lib/components/icon/icon.component.js +0 -56
  190. package/esm2015/lib/components/labelled-value/labelled-value.component.js +0 -24
  191. package/esm2015/lib/components/loading-container/loading-container.component.js +0 -54
  192. package/esm2015/lib/components/noop/noop.component.js +0 -17
  193. package/esm2015/lib/components/scroll-container/scroll-container.component.js +0 -19
  194. package/esm2015/lib/components/section-header/section-header.component.js +0 -40
  195. package/esm2015/lib/components/tables/abstract-table-model.js +0 -188
  196. package/esm2015/lib/components/tables/abstract-table.component.js +0 -170
  197. package/esm2015/lib/components/tables/table/column-model.js +0 -389
  198. package/esm2015/lib/components/tables/table/column-template/column-template.directive.js +0 -36
  199. package/esm2015/lib/components/tables/table/default-cell-renderer/default-cell-renderer.component.js +0 -26
  200. package/esm2015/lib/components/tables/table/default-header-cell-renderer/default-header-cell-renderer.component.js +0 -19
  201. package/esm2015/lib/components/tables/table/edit-row-controls/edit-row-controls.component.js +0 -60
  202. package/esm2015/lib/components/tables/table/paginator/paginator.component.js +0 -44
  203. package/esm2015/lib/components/tables/table/select-cell-renderer/select-cell-renderer.component.js +0 -32
  204. package/esm2015/lib/components/tables/table/select-header-cell-renderer/select-header-cell-renderer.component.js +0 -37
  205. package/esm2015/lib/components/tables/table/table-cell-renderer/table-cell-renderer.component.js +0 -98
  206. package/esm2015/lib/components/tables/table/table-header-cell-renderer/table-header-cell-renderer.component.js +0 -36
  207. package/esm2015/lib/components/tables/table/table.component.js +0 -100
  208. package/esm2015/lib/components/tables/tree-table/decorated-tree-node.js +0 -171
  209. package/esm2015/lib/components/tables/tree-table/tree-inheritance-icon/tree-inheritance-icon.component.js +0 -76
  210. package/esm2015/lib/components/tables/tree-table/tree-label-cell-renderer/tree-label-cell-renderer.component.js +0 -96
  211. package/esm2015/lib/components/tables/tree-table/tree-table-component.js +0 -100
  212. package/esm2015/lib/interaction/activity.js +0 -88
  213. package/esm2015/lib/interaction/components/activity-actions/activity-actions.component.js +0 -113
  214. package/esm2015/lib/interaction/components/activity-body/activity-body.component.js +0 -27
  215. package/esm2015/lib/interaction/components/activity-container/activity-container.component.js +0 -214
  216. package/esm2015/lib/interaction/components/activity-title/activity-title.component.js +0 -45
  217. package/esm2015/lib/interaction/components/activity-triggers/inline-activity-trigger/inline-activity-trigger.component.js +0 -28
  218. package/esm2015/lib/interaction/components/activity-triggers/modal-activity-trigger/modal-activity-trigger.component.js +0 -26
  219. package/esm2015/lib/interaction/components/activity-triggers/popup-activity-trigger/popup-activity-trigger.component.js +0 -34
  220. package/esm2015/lib/interaction/components/add-card-activity/add-card-activity.component.js +0 -95
  221. package/esm2015/lib/interaction/components/add-item-interaction-context/add-item-interaction-context.component.js +0 -77
  222. package/esm2015/lib/interaction/components/alert-dialog/alert-dialog.component.js +0 -34
  223. package/esm2015/lib/interaction/components/confirm-then-dialog/confirm-then-dialog.component.js +0 -34
  224. package/esm2015/lib/interaction/components/confirm-then-execute-dialog/confirm-then-execute-dialog.component.js +0 -39
  225. package/esm2015/lib/interaction/components/confirmation-dialog/confirmation-dialog.component.js +0 -33
  226. package/esm2015/lib/interaction/components/editors/inline-string-editor/inline-string-editor.component.js +0 -176
  227. package/esm2015/lib/interaction/components/inplace-interaction-context/in-place-interaction-context.component.js +0 -96
  228. package/esm2015/lib/interaction/components/input-activities/input-activity.js +0 -107
  229. package/esm2015/lib/interaction/services/mat-dialog-interaction/dialog-interaction-context-factory.js +0 -41
  230. package/esm2015/lib/interaction/services/mat-dialog-interaction/dialog-interaction-context.js +0 -58
  231. package/esm2015/lib/place/components/list-place-nav/list-place-nav.component.js +0 -27
  232. package/esm2015/lib/place/components/not-authorised-notice/not-authorised-notice.component.js +0 -17
  233. package/esm2015/lib/place/components/place-outlet/place-outlet.component.js +0 -263
  234. package/esm2015/lib/place/components/side-place-navigation/side-place-navigation.component.js +0 -97
  235. package/esm2015/lib/place/components/tabbed-place-navigation/tabbed-place-navigation.component.js +0 -26
  236. package/esm2015/lib/place/guards/noop-auth-guard.service.js +0 -21
  237. package/esm2015/lib/place/guards/place.guard.js +0 -116
  238. package/esm2015/lib/place/navigation/place-component-deactivation-handler.js +0 -88
  239. package/esm2015/lib/place/navigation/session/event-cleanup/wait-until-leaving-interaction-transition-cancelled.js +0 -46
  240. package/esm2015/lib/place/navigation/session/event-cleanup/wait-until-link-triggered-navigation-interaction-cancelation-type-determined.js +0 -159
  241. package/esm2015/lib/place/navigation/session/event-cleanup/wait-until-popstate-during-can-deactivate-transition-finishes.js +0 -65
  242. package/esm2015/lib/place/navigation/session/navigation-session.js +0 -160
  243. package/esm2015/lib/place/place-component.js +0 -204
  244. package/esm2015/lib/place/place-history.js +0 -139
  245. package/esm2015/lib/place/place-router.js +0 -336
  246. package/esm2015/lib/place/place.decorator.js +0 -19
  247. package/esm2015/lib/place/route/parameter-definition.js +0 -128
  248. package/esm2015/lib/place/route/visit-sanitiser.js +0 -44
  249. package/esm2015/lib/place/visit.js +0 -69
  250. package/esm2015/lib/services/markdown/pill-plugin.js +0 -38
  251. package/fesm2015/coolon-angular-ui-powerups.js.map +0 -1
  252. /package/{esm2015/coolon-angular-ui-powerups.js → esm2020/coolon-angular-ui-powerups.mjs} +0 -0
  253. /package/{esm2015/index.js → esm2020/index.mjs} +0 -0
  254. /package/{esm2015/lib/animations/exports.js → esm2020/lib/animations/exports.mjs} +0 -0
  255. /package/{esm2015/lib/animations/slide-animations.js → esm2020/lib/animations/slide-animations.mjs} +0 -0
  256. /package/{esm2015/lib/components/alignment.js → esm2020/lib/components/alignment.mjs} +0 -0
  257. /package/{esm2015/lib/components/commands/group/command-container.js → esm2020/lib/components/commands/group/command-container.mjs} +0 -0
  258. /package/{esm2015/lib/components/commands/group/popup-aware.component.js → esm2020/lib/components/commands/group/popup-aware.component.mjs} +0 -0
  259. /package/{esm2015/lib/components/commands/group/popup-container.js → esm2020/lib/components/commands/group/popup-container.mjs} +0 -0
  260. /package/{esm2015/lib/components/exports.js → esm2020/lib/components/exports.mjs} +0 -0
  261. /package/{esm2015/lib/components/tables/column-list-model.js → esm2020/lib/components/tables/column-list-model.mjs} +0 -0
  262. /package/{esm2015/lib/components/tables/edit-session.js → esm2020/lib/components/tables/edit-session.mjs} +0 -0
  263. /package/{esm2015/lib/components/tables/table/cell-editors.js → esm2020/lib/components/tables/table/cell-editors.mjs} +0 -0
  264. /package/{esm2015/lib/components/tables/table/cell-renderer.js → esm2020/lib/components/tables/table/cell-renderer.mjs} +0 -0
  265. /package/{esm2015/lib/components/tables/table/column-text-properties.js → esm2020/lib/components/tables/table/column-text-properties.mjs} +0 -0
  266. /package/{esm2015/lib/components/tables/table/mutable-cell-renderer.js → esm2020/lib/components/tables/table/mutable-cell-renderer.mjs} +0 -0
  267. /package/{esm2015/lib/components/tables/table/table-def.js → esm2020/lib/components/tables/table/table-def.mjs} +0 -0
  268. /package/{esm2015/lib/components/tables/table/table-model.js → esm2020/lib/components/tables/table/table-model.mjs} +0 -0
  269. /package/{esm2015/lib/components/tables/table/text-search-predicate.js → esm2020/lib/components/tables/table/text-search-predicate.mjs} +0 -0
  270. /package/{esm2015/lib/components/tables/tree-table/flattened-tree-list-model.js → esm2020/lib/components/tables/tree-table/flattened-tree-list-model.mjs} +0 -0
  271. /package/{esm2015/lib/components/tables/tree-table/tree-expansion-model.js → esm2020/lib/components/tables/tree-table/tree-expansion-model.mjs} +0 -0
  272. /package/{esm2015/lib/components/tables/tree-table/tree-label-column-model.js → esm2020/lib/components/tables/tree-table/tree-label-column-model.mjs} +0 -0
  273. /package/{esm2015/lib/components/tables/tree-table/tree-table-model.js → esm2020/lib/components/tables/tree-table/tree-table-model.mjs} +0 -0
  274. /package/{esm2015/lib/components/track-by.js → esm2020/lib/components/track-by.mjs} +0 -0
  275. /package/{esm2015/lib/components/types/bounds.class.js → esm2020/lib/components/types/bounds.class.mjs} +0 -0
  276. /package/{esm2015/lib/components/types/dimension.class.js → esm2020/lib/components/types/dimension.class.mjs} +0 -0
  277. /package/{esm2015/lib/components/types/point.class.js → esm2020/lib/components/types/point.class.mjs} +0 -0
  278. /package/{esm2015/lib/directives/exports.js → esm2020/lib/directives/exports.mjs} +0 -0
  279. /package/{esm2015/lib/directives/focus-binding.js → esm2020/lib/directives/focus-binding.mjs} +0 -0
  280. /package/{esm2015/lib/interaction/abstract-interaction-context.js → esm2020/lib/interaction/abstract-interaction-context.mjs} +0 -0
  281. /package/{esm2015/lib/interaction/activity-ref.js → esm2020/lib/interaction/activity-ref.mjs} +0 -0
  282. /package/{esm2015/lib/interaction/alert.js → esm2020/lib/interaction/alert.mjs} +0 -0
  283. /package/{esm2015/lib/interaction/components/editors/edit-context.js → esm2020/lib/interaction/components/editors/edit-context.mjs} +0 -0
  284. /package/{esm2015/lib/interaction/components/editors/inline-string-editor/inline-editor-model.js → esm2020/lib/interaction/components/editors/inline-string-editor/inline-editor-model.mjs} +0 -0
  285. /package/{esm2015/lib/interaction/confirm.js → esm2020/lib/interaction/confirm.mjs} +0 -0
  286. /package/{esm2015/lib/interaction/exports.js → esm2020/lib/interaction/exports.mjs} +0 -0
  287. /package/{esm2015/lib/interaction/in-place-interaction-context.js → esm2020/lib/interaction/in-place-interaction-context.mjs} +0 -0
  288. /package/{esm2015/lib/interaction/interaction-context.js → esm2020/lib/interaction/interaction-context.mjs} +0 -0
  289. /package/{esm2015/lib/interaction/route-synchronisation-adapter.js → esm2020/lib/interaction/route-synchronisation-adapter.mjs} +0 -0
  290. /package/{esm2015/lib/interaction/services/interaction-service-routing-adapter.js → esm2020/lib/interaction/services/interaction-service-routing-adapter.mjs} +0 -0
  291. /package/{esm2015/lib/interaction/services/modal-interaction-context.factory.js → esm2020/lib/interaction/services/modal-interaction-context.factory.mjs} +0 -0
  292. /package/{esm2015/lib/place/components/place-outlet/route-animations.js → esm2020/lib/place/components/place-outlet/route-animations.mjs} +0 -0
  293. /package/{esm2015/lib/place/exports.js → esm2020/lib/place/exports.mjs} +0 -0
  294. /package/{esm2015/lib/place/guards/consolidated-param-map.js → esm2020/lib/place/guards/consolidated-param-map.mjs} +0 -0
  295. /package/{esm2015/lib/place/nav-item.js → esm2020/lib/place/nav-item.mjs} +0 -0
  296. /package/{esm2015/lib/place/navigation/session/abstract-pop-state-navigation.js → esm2020/lib/place/navigation/session/abstract-pop-state-navigation.mjs} +0 -0
  297. /package/{esm2015/lib/place/navigation/session/event-cleanup/event-clean-up-session.js → esm2020/lib/place/navigation/session/event-cleanup/event-clean-up-session.mjs} +0 -0
  298. /package/{esm2015/lib/place/navigation/session/interactions/navigating-during-interaction.js → esm2020/lib/place/navigation/session/interactions/navigating-during-interaction.mjs} +0 -0
  299. /package/{esm2015/lib/place/navigation/session/interactions/pop-state-during-interaction-navigation.js → esm2020/lib/place/navigation/session/interactions/pop-state-during-interaction-navigation.mjs} +0 -0
  300. /package/{esm2015/lib/place/navigation/session/interactions/remove-last-interaction-from-url-navigation-session.js → esm2020/lib/place/navigation/session/interactions/remove-last-interaction-from-url-navigation-session.mjs} +0 -0
  301. /package/{esm2015/lib/place/navigation/session/interactions/synchronise-interaction-context-ids-with-route.js → esm2020/lib/place/navigation/session/interactions/synchronise-interaction-context-ids-with-route.mjs} +0 -0
  302. /package/{esm2015/lib/place/navigation/session/navigating.js → esm2020/lib/place/navigation/session/navigating.mjs} +0 -0
  303. /package/{esm2015/lib/place/navigation/session/navigation-context.js → esm2020/lib/place/navigation/session/navigation-context.mjs} +0 -0
  304. /package/{esm2015/lib/place/navigation/session/pop-state-navigation.js → esm2020/lib/place/navigation/session/pop-state-navigation.mjs} +0 -0
  305. /package/{esm2015/lib/place/place-access-guard.js → esm2020/lib/place/place-access-guard.mjs} +0 -0
  306. /package/{esm2015/lib/place/place-config.js → esm2020/lib/place/place-config.mjs} +0 -0
  307. /package/{esm2015/lib/place/place-definition.js → esm2020/lib/place/place-definition.mjs} +0 -0
  308. /package/{esm2015/lib/place/route/formatter.js → esm2020/lib/place/route/formatter.mjs} +0 -0
  309. /package/{esm2015/lib/place/route/json-types.js → esm2020/lib/place/route/json-types.mjs} +0 -0
  310. /package/{esm2015/lib/place/route/parameter-decorators.js → esm2020/lib/place/route/parameter-decorators.mjs} +0 -0
  311. /package/{esm2015/lib/place/route/parameter-sanitiser.js → esm2020/lib/place/route/parameter-sanitiser.mjs} +0 -0
  312. /package/{esm2015/lib/place/route/parameter-snapshot.js → esm2020/lib/place/route/parameter-snapshot.mjs} +0 -0
  313. /package/{esm2015/lib/place/url-snapshot.js → esm2020/lib/place/url-snapshot.mjs} +0 -0
  314. /package/{esm2015/lib/services/exports.js → esm2020/lib/services/exports.mjs} +0 -0
  315. /package/{esm2015/public-api.js → esm2020/public-api.mjs} +0 -0
@@ -1,389 +0,0 @@
1
- import { __decorate, __metadata } from "tslib";
2
- import { ComponentRef } from "@angular/core";
3
- import { DelegatingSelectionModel, DelegatingValueModel, GarbageCollector, MultipleSelectionModel, ValueModel } from '@coolon/pectin';
4
- import { assert, lang, Stringy } from "@coolon/typescript-utilities";
5
- import { Memoize } from '@typescript-plus/fast-memoize-decorator';
6
- import { isFunction } from 'lodash';
7
- import { CellEditorPortalRef, CellHeaderPortalRef, ComponentCellRendererPortalRef, TemplateCellRendererPortalRef } from './cell-portal-ref';
8
- import { DefaultCellRendererComponent } from './default-cell-renderer/default-cell-renderer.component';
9
- import { DefaultHeaderCellRendererComponent } from './default-header-cell-renderer/default-header-cell-renderer.component';
10
- import { EditRowControls } from './edit-row-controls/edit-row-controls.component';
11
- import { SelectCellRendererComponent } from './select-cell-renderer/select-cell-renderer.component';
12
- import { SelectHeaderCellRendererComponent } from './select-header-cell-renderer/select-header-cell-renderer.component';
13
- const noop = () => {
14
- };
15
- const CELL_RENDERER_COMPONENT_ROW_CACHE = Symbol('aup-cell-renderer:row-data-cache');
16
- const DEFAULT_TEXT_SEARCH_PREDICATE = (row, text) => false;
17
- export class ColumnModel extends GarbageCollector {
18
- constructor(columnId, textPropertiesProvider) {
19
- super();
20
- this.columnId = columnId;
21
- this.textPropertiesProvider = textPropertiesProvider;
22
- this._enableRowSelection = true;
23
- this._flex = false;
24
- this._defaultVisibility = this.registerDisposable(new DelegatingValueModel().withDefault(true));
25
- this._visible = this.registerDisposable(new DelegatingValueModel().withDefault(this._defaultVisibility));
26
- this._columnModelTextSearchPredicate = undefined;
27
- this._cellRendererTextSearchPredicate = undefined;
28
- this.installHeaderRenderer();
29
- this.dasherisedColumnId = Stringy.from(columnId).dasherize().toString();
30
- }
31
- installHeaderRenderer() {
32
- this.cellHeaderRenderer(DefaultHeaderCellRendererComponent, (component, column) => {
33
- component.headerText = column.getHeaderText();
34
- });
35
- }
36
- getHeaderText() {
37
- var _a;
38
- return ((_a = this.getColumnTextProperties()) === null || _a === void 0 ? void 0 : _a.headerText()) || this.getDefaultHeaderText();
39
- }
40
- isVisible() {
41
- return this.visible.value;
42
- }
43
- get visible() {
44
- return this._visible.readonly;
45
- }
46
- visibleWhile(visible) {
47
- this._visible.setDelegate(visible);
48
- return this;
49
- }
50
- setDefaultVisibility(visible) {
51
- this._defaultVisibility.setDelegate(visible);
52
- }
53
- getDefaultHeaderText() {
54
- return this.columnId;
55
- }
56
- get isTextMatch() {
57
- return this._columnModelTextSearchPredicate || this._cellRendererTextSearchPredicate || DEFAULT_TEXT_SEARCH_PREDICATE;
58
- }
59
- /**
60
- * Sets the predicate to use when checking if the specified row is a text match for this column.
61
- * @param predicate
62
- */
63
- useTextSearchPredicate(predicate) {
64
- this._columnModelTextSearchPredicate = predicate;
65
- return this;
66
- }
67
- getColumnTextProperties() {
68
- return this._columnTextProperties || this.textPropertiesProvider();
69
- }
70
- /**
71
- * @deprecated use #columnTextProperties instead
72
- * @param columnTextProperties
73
- */
74
- textProperties(columnTextProperties) {
75
- return this.columnTextProperties(columnTextProperties);
76
- }
77
- columnTextProperties(columnTextProperties) {
78
- this._columnTextProperties = columnTextProperties;
79
- return this;
80
- }
81
- configureHeaderRenderer(config) {
82
- this._columnHeaderPortalRef = config;
83
- }
84
- configureCellRenderer(config) {
85
- this._cellRendererPortalRef = config;
86
- }
87
- configureCellEditor(cellEditor) {
88
- this._cellEditorPortalRef = cellEditor;
89
- }
90
- cellHeaderRenderer(componentType, initialiser) {
91
- this.configureHeaderRenderer(new CellHeaderPortalRef(componentType, initialiser));
92
- return this;
93
- }
94
- flex(flex = true) {
95
- this._flex = flex;
96
- }
97
- isFlex() {
98
- return this._flex;
99
- }
100
- hasEditorPortal() {
101
- return !!this._cellEditorPortalRef;
102
- }
103
- attachHeaderCell(host) {
104
- this._columnHeaderPortalRef.initialiseHost(host, this);
105
- }
106
- attachCell(host) {
107
- this._cellRendererPortalRef.initialiseHost(host, this);
108
- if (this.hasEditorPortal()) {
109
- this._cellEditorPortalRef.initialiseHost(host, this);
110
- }
111
- }
112
- onHeaderAttached(host, ref) {
113
- const component = this.getComponent(ref);
114
- this._columnHeaderPortalRef.onPortalAttached(host, component);
115
- }
116
- onRendererAttached(host, ref) {
117
- const component = this.getComponentOrEmbeddedView(ref);
118
- this._cellRendererPortalRef.onPortalAttached(host, component);
119
- if (isFunction(component === null || component === void 0 ? void 0 : component.matches)) {
120
- this._cellRendererTextSearchPredicate = (row, text) => component.matches(row, text);
121
- }
122
- else {
123
- this._cellRendererTextSearchPredicate = undefined;
124
- }
125
- }
126
- // @Trace()
127
- onEditorAttached(host, ref) {
128
- this._cellEditorPortalRef.onPortalAttached(host, this.getComponent(ref));
129
- }
130
- updatePortalContent(host) {
131
- this._cellRendererPortalRef.pushState(host);
132
- }
133
- _selectRowOnClick(selectRowOnClick) {
134
- this._enableRowSelection = selectRowOnClick;
135
- return this;
136
- }
137
- isRowSelectionEnabled() {
138
- return this._enableRowSelection;
139
- }
140
- getComponent(ref) {
141
- if (ref instanceof ComponentRef) {
142
- return ref.instance;
143
- }
144
- else {
145
- console.error("headers only support component portals, got", ref);
146
- lang.illegalState(`headers only support component portals, got ${ref}`);
147
- }
148
- }
149
- getComponentOrEmbeddedView(ref) {
150
- if (ref instanceof ComponentRef) {
151
- return ref.instance;
152
- }
153
- else {
154
- return ref;
155
- }
156
- }
157
- }
158
- __decorate([
159
- Memoize(),
160
- __metadata("design:type", Function),
161
- __metadata("design:paramtypes", []),
162
- __metadata("design:returntype", String)
163
- ], ColumnModel.prototype, "getHeaderText", null);
164
- __decorate([
165
- Memoize(),
166
- __metadata("design:type", Function),
167
- __metadata("design:paramtypes", []),
168
- __metadata("design:returntype", Object)
169
- ], ColumnModel.prototype, "getColumnTextProperties", null);
170
- export class PropertyColumnModel extends ColumnModel {
171
- constructor(id, property, defaults) {
172
- super(id, defaults);
173
- this.property = property;
174
- this._format = (value) => value === null || value === void 0 ? void 0 : value.toString();
175
- this.cellRenderer(DefaultCellRendererComponent);
176
- this.useTextSearchPredicate((row, regex) => {
177
- return regex.test(this._format(row[this.property]));
178
- });
179
- }
180
- cellRenderer(componentType, onComponentInitOrOptions) {
181
- this.configureCellRenderer(new ComponentCellRendererPortalRef(componentType, (component, rowData, firstTime) => {
182
- if (firstTime) {
183
- if (isFunction(onComponentInitOrOptions)) {
184
- onComponentInitOrOptions(component);
185
- }
186
- else {
187
- if (isFunction(onComponentInitOrOptions === null || onComponentInitOrOptions === void 0 ? void 0 : onComponentInitOrOptions.onComponentInit)) {
188
- onComponentInitOrOptions.onComponentInit(component);
189
- }
190
- }
191
- }
192
- component.value = this._format(rowData.row[this.property]);
193
- }));
194
- return this;
195
- }
196
- liveEditCellRenderer(componentType, options) {
197
- return this.mutableCellRenderer(componentType, options);
198
- }
199
- /**
200
- * Deprecated. Use #liveEditCellRenderer instead.
201
- * @param componentType
202
- * @param options
203
- */
204
- mutableCellRenderer(componentType, options) {
205
- this.configureCellRenderer(new ComponentCellRendererPortalRef(componentType, (component, rowData, firstTime) => {
206
- // keep a local copy most recent row value so it's available to teh
207
- // edit callback without having to add/remove subscribers all the time.
208
- component[CELL_RENDERER_COMPONENT_ROW_CACHE] = rowData.row;
209
- let disableEditCallback = false;
210
- if (firstTime) {
211
- if (isFunction(options === null || options === void 0 ? void 0 : options.onComponentInit)) {
212
- options.onComponentInit(component);
213
- }
214
- // install our edit callback
215
- component.onValueEdited((is, was) => {
216
- if (!disableEditCallback) {
217
- options.onValueEdit(component[CELL_RENDERER_COMPONENT_ROW_CACHE], is, was);
218
- }
219
- });
220
- }
221
- // now push the value the component and disable the callback just incase the component misbehaves
222
- // and fires a value change during the operation.
223
- disableEditCallback = true;
224
- component.value = rowData.row[this.property];
225
- disableEditCallback = false;
226
- if (!isFunction(options) && isFunction(options === null || options === void 0 ? void 0 : options.onRowUpdate)) {
227
- options.onRowUpdate(component, rowData.row);
228
- }
229
- }));
230
- return this;
231
- }
232
- cellEditor(editor, validatorsOrInitialiser, onComponentInit) {
233
- const validators = Array.isArray(validatorsOrInitialiser) ? validatorsOrInitialiser : undefined;
234
- const initialiser = isFunction(validatorsOrInitialiser) ? validatorsOrInitialiser : onComponentInit;
235
- this.configureCellEditor(new CellEditorPortalRef(editor, (component, editSession) => {
236
- const formValueModel = editSession.form.pluck(this.property);
237
- if (validators) {
238
- formValueModel.validateUsing(validators);
239
- }
240
- component.valueModel = formValueModel;
241
- if (initialiser) {
242
- initialiser(component);
243
- }
244
- }));
245
- return this;
246
- }
247
- format(formatter) {
248
- assert.isFunction(formatter);
249
- this._format = formatter;
250
- return this;
251
- }
252
- selectRowOnClick(selectOnRowClick) {
253
- return this._selectRowOnClick(selectOnRowClick);
254
- }
255
- }
256
- export class ListPropertyColumnModel extends ColumnModel {
257
- constructor(id, property, defaults) {
258
- super(id, defaults);
259
- this.property = property;
260
- this._format = (value) => value.map(v => v === null || v === void 0 ? void 0 : v.toString()).join(', ');
261
- this.cellRenderer(DefaultCellRendererComponent);
262
- this.useTextSearchPredicate((row, regex) => {
263
- return regex.test(this._format(row[this.property]));
264
- });
265
- }
266
- cellRenderer(componentType) {
267
- this.configureCellRenderer(new ComponentCellRendererPortalRef(componentType, (component, rowData) => {
268
- component.value = this._format(rowData.row[this.property]);
269
- }));
270
- return this;
271
- }
272
- cellEditor(editor, validatorsOrInitialiser, initialiseComponent) {
273
- const validators = Array.isArray(validatorsOrInitialiser) ? validatorsOrInitialiser : undefined;
274
- const initialiser = isFunction(validatorsOrInitialiser) ? validatorsOrInitialiser : initialiseComponent;
275
- this.configureCellEditor(new CellEditorPortalRef(editor, (component, editSession) => {
276
- const formListModel = editSession.form.pluckList(this.property);
277
- if (validators) {
278
- formListModel.validateUsing(validators);
279
- }
280
- component.listModel = formListModel;
281
- if (initialiser) {
282
- initialiser(component);
283
- }
284
- }));
285
- return this;
286
- }
287
- format(formatter) {
288
- assert.isFunction(formatter);
289
- this._format = formatter;
290
- return this;
291
- }
292
- selectRowOnClick(selectRowOnClick) {
293
- return this._selectRowOnClick(selectRowOnClick);
294
- }
295
- }
296
- export class CustomValueColumnModel extends ColumnModel {
297
- constructor(columnId, defaults, getValue) {
298
- super(columnId, defaults);
299
- this.getValue = getValue;
300
- this.cellRenderer(DefaultCellRendererComponent);
301
- }
302
- cellRenderer(componentType, onComponentInitOrOptions) {
303
- this.configureCellRenderer(new ComponentCellRendererPortalRef(componentType, (component, rowData, firstTime) => {
304
- if (firstTime) {
305
- if (isFunction(onComponentInitOrOptions)) {
306
- onComponentInitOrOptions(component);
307
- }
308
- else {
309
- if (isFunction(onComponentInitOrOptions === null || onComponentInitOrOptions === void 0 ? void 0 : onComponentInitOrOptions.onComponentInit)) {
310
- onComponentInitOrOptions.onComponentInit(component);
311
- }
312
- }
313
- }
314
- component.value = this.getValue(rowData.row);
315
- if (!isFunction(onComponentInitOrOptions) && isFunction(onComponentInitOrOptions === null || onComponentInitOrOptions === void 0 ? void 0 : onComponentInitOrOptions.onRowUpdate)) {
316
- onComponentInitOrOptions.onRowUpdate(component, rowData.row);
317
- }
318
- }));
319
- return this;
320
- }
321
- selectRowOnClick(selectOnRowClick) {
322
- return this._selectRowOnClick(selectOnRowClick);
323
- }
324
- }
325
- export class EditorControlColumnModel extends ColumnModel {
326
- constructor(columnId, saveCommandFactory, defaults) {
327
- super(columnId, defaults);
328
- this.cellRenderer(EditRowControls);
329
- }
330
- cellRenderer(componentType) {
331
- this.configureCellRenderer(new ComponentCellRendererPortalRef(componentType, (component, rowData) => {
332
- component.row = rowData.row;
333
- component.editSession = rowData.editSession;
334
- component.editRowCommand = rowData.editRowCommand;
335
- }));
336
- return this;
337
- }
338
- getDefaultHeaderText() {
339
- return '';
340
- }
341
- }
342
- export class CustomTemplateColumnModel extends ColumnModel {
343
- constructor(columnId, defaults) {
344
- super(columnId, defaults);
345
- this.config = new TemplateCellRendererPortalRef();
346
- this.configureCellRenderer(this.config);
347
- }
348
- setTemplate(templateRef, viewContainer, fillCell, padChild) {
349
- this.config.registerPortal(templateRef, viewContainer, fillCell, padChild);
350
- }
351
- selectRowOnClick(selectOnRowClick) {
352
- return this._selectRowOnClick(selectOnRowClick);
353
- }
354
- }
355
- export class SelectionColumnModel extends ColumnModel {
356
- constructor(columnId, defaults, selectionModel) {
357
- super(columnId, defaults);
358
- this._enableHeaderControls = true;
359
- this.selectionModel = DelegatingSelectionModel.createDelegate();
360
- this._selectRowOnClick(false);
361
- this.cellHeaderRenderer(SelectHeaderCellRendererComponent, (component) => {
362
- component.selectionModel = this.selectionModel;
363
- component.enableHeaderControls = this._enableHeaderControls;
364
- });
365
- this.configureCellRenderer(new ComponentCellRendererPortalRef(SelectCellRendererComponent, (component, rowData) => {
366
- component.row = rowData.row;
367
- component.selectionModel = this.selectionModel;
368
- }));
369
- this.setSelectionModel(selectionModel);
370
- }
371
- setSelectionModel(selectionModel) {
372
- this.selectionModel.setDelegate(selectionModel);
373
- this.setDefaultVisibility(selectionModel instanceof MultipleSelectionModel ? ValueModel.TRUE : ValueModel.FALSE);
374
- }
375
- getDefaultHeaderText() {
376
- return '';
377
- }
378
- enableHeaderControls(enable) {
379
- this._enableHeaderControls = enable;
380
- return this;
381
- }
382
- selectRow(row) {
383
- this.selectionModel.selectCommand.execute(row);
384
- }
385
- isSelected(row) {
386
- return this.selectionModel.isSelected(row);
387
- }
388
- }
389
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1uLW1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXVpLXBvd2VydXBzL3NyYy9saWIvY29tcG9uZW50cy90YWJsZXMvdGFibGUvY29sdW1uLW1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFFQSxPQUFPLEVBQUUsWUFBWSxFQUFpQyxNQUFNLGVBQWUsQ0FBQztBQUM1RSxPQUFPLEVBRUwsd0JBQXdCLEVBQ3hCLG9CQUFvQixFQUVwQixnQkFBZ0IsRUFDaEIsc0JBQXNCLEVBS3RCLFVBQVUsRUFDWCxNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUVsRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBRXBDLE9BQU8sRUFDTCxtQkFBbUIsRUFDbkIsbUJBQW1CLEVBRW5CLDhCQUE4QixFQUM5Qiw2QkFBNkIsRUFDOUIsTUFBTSxtQkFBbUIsQ0FBQztBQUczQixPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSx5REFBeUQsQ0FBQztBQUN2RyxPQUFPLEVBQUUsa0NBQWtDLEVBQUUsTUFBTSx1RUFBdUUsQ0FBQztBQUMzSCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0saURBQWlELENBQUM7QUFHbEYsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sdURBQXVELENBQUM7QUFDcEcsT0FBTyxFQUFFLGlDQUFpQyxFQUFFLE1BQU0scUVBQXFFLENBQUM7QUFNeEgsTUFBTSxJQUFJLEdBQUcsR0FBRyxFQUFFO0FBQ2xCLENBQUMsQ0FBQztBQVFGLE1BQU0saUNBQWlDLEdBQUcsTUFBTSxDQUFDLGtDQUFrQyxDQUFDLENBQUM7QUFjckYsTUFBTSw2QkFBNkIsR0FBaUMs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Q0FBQywyQkFBMkIsRUFBRSxDQUFDLFNBQVMsRUFBRSxPQUFxQixFQUFFLEVBQUU7WUFDOUgsU0FBUyxDQUFDLEdBQUcsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDO1lBQzVCLFNBQVMsQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQztRQUNqRCxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ0osSUFBSSxDQUFDLGlCQUFpQixDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxjQUFtQztRQUNuRCxJQUFJLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUNoRCxJQUFJLENBQUMsb0JBQW9CLENBQUMsY0FBYyxZQUFZLHNCQUFzQixDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbkgsQ0FBQztJQUVTLG9CQUFvQjtRQUM1QixPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFFRCxvQkFBb0IsQ0FBQyxNQUFlO1FBQ2xDLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxNQUFNLENBQUM7UUFDcEMsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsU0FBUyxDQUFDLEdBQVE7UUFDaEIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFRCxVQUFVLENBQUMsR0FBUTtRQUNqQixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzdDLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudFR5cGUgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBDZGtQb3J0YWxPdXRsZXRBdHRhY2hlZFJlZiB9IGZyb20gXCJAYW5ndWxhci9jZGsvcG9ydGFsL3BvcnRhbC1kaXJlY3RpdmVzXCI7XG5pbXBvcnQgeyBDb21wb25lbnRSZWYsIFRlbXBsYXRlUmVmLCBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7XG4gIENvbW1hbmQsIENvbW1hbmRGYWN0b3J5LFxuICBEZWxlZ2F0aW5nU2VsZWN0aW9uTW9kZWwsXG4gIERlbGVnYXRpbmdWYWx1ZU1vZGVsLFxuICBEaXJ0eVRyYWNraW5nRm9ybSxcbiAgR2FyYmFnZUNvbGxlY3RvcixcbiAgTXVsdGlwbGVTZWxlY3Rpb25Nb2RlbCxcbiAgU2VsZWN0aW9uTW9kZWwsXG4gIFR5cGVzLFxuICBVbmFyeUNvbW1hbmQsXG4gIFZhbGlkYXRvcixcbiAgVmFsdWVNb2RlbFxufSBmcm9tICdAY29vbG9uL3BlY3Rpbic7XG5pbXBvcnQgeyBhc3NlcnQsIGxhbmcsIFN0cmluZ3kgfSBmcm9tIFwiQGNvb2xvbi90eXBlc2NyaXB0LXV0aWxpdGllc1wiO1xuaW1wb3J0IHsgTWVtb2l6ZSB9IGZyb20gJ0B0eXBlc2NyaXB0LXBsdXMvZmFzdC1tZW1vaXplLWRlY29yYXRvcic7XG5cbmltcG9ydCB7IGlzRnVuY3Rpb24gfSBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgQ2VsbEVkaXRvckNvbXBvbmVudCwgQ2VsbExpc3RFZGl0b3JDb21wb25lbnQgfSBmcm9tICcuL2NlbGwtZWRpdG9ycyc7XG5pbXBvcnQge1xuICBDZWxsRWRpdG9yUG9ydGFsUmVmLFxuICBDZWxsSGVhZGVyUG9ydGFsUmVmLFxuICBDZWxsUmVuZGVyZXJQb3J0YWxSZWYsXG4gIENvbXBvbmVudENlbGxSZW5kZXJlclBvcnRhbFJlZixcbiAgVGVtcGxhdGVDZWxsUmVuZGVyZXJQb3J0YWxSZWZcbn0gZnJvbSAnLi9jZWxsLXBvcnRhbC1yZWYnO1xuaW1wb3J0IHsgQ2VsbFJlbmRlcmVyIH0gZnJvbSAnLi9jZWxsLXJlbmRlcmVyJztcbmltcG9ydCB7IENvbHVtblRleHRQcm9wZXJ0aWVzIH0gZnJvbSAnLi9jb2x1bW4tdGV4dC1wcm9wZXJ0aWVzJztcbmltcG9ydCB7IERlZmF1bHRDZWxsUmVuZGVyZXJDb21wb25lbnQgfSBmcm9tICcuL2RlZmF1bHQtY2VsbC1yZW5kZXJlci9kZWZhdWx0LWNlbGwtcmVuZGVyZXIuY29tcG9uZW50JztcbmltcG9ydCB7IERlZmF1bHRIZWFkZXJDZWxsUmVuZGVyZXJDb21wb25lbnQgfSBmcm9tICcuL2RlZmF1bHQtaGVhZGVyLWNlbGwtcmVuZGVyZXIvZGVmYXVsdC1oZWFkZXItY2VsbC1yZW5kZXJlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgRWRpdFJvd0NvbnRyb2xzIH0gZnJvbSAnLi9lZGl0LXJvdy1jb250cm9scy9lZGl0LXJvdy1jb250cm9scy5jb21wb25lbnQnO1xuaW1wb3J0IHsgRWRpdFNlc3Npb24gfSBmcm9tICcuLi9lZGl0LXNlc3Npb24nO1xuaW1wb3J0IHsgTXV0YWJsZUNlbGxSZW5kZXJlciB9IGZyb20gJy4vbXV0YWJsZS1jZWxsLXJlbmRlcmVyJztcbmltcG9ydCB7IFNlbGVjdENlbGxSZW5kZXJlckNvbXBvbmVudCB9IGZyb20gJy4vc2VsZWN0LWNlbGwtcmVuZGVyZXIvc2VsZWN0LWNlbGwtcmVuZGVyZXIuY29tcG9uZW50JztcbmltcG9ydCB7IFNlbGVjdEhlYWRlckNlbGxSZW5kZXJlckNvbXBvbmVudCB9IGZyb20gJy4vc2VsZWN0LWhlYWRlci1jZWxsLXJlbmRlcmVyL3NlbGVjdC1oZWFkZXItY2VsbC1yZW5kZXJlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGFibGVDZWxsUmVuZGVyZXJDb21wb25lbnQgfSBmcm9tICcuL3RhYmxlLWNlbGwtcmVuZGVyZXIvdGFibGUtY2VsbC1yZW5kZXJlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGFibGVIZWFkZXJDZWxsUmVuZGVyZXJDb21wb25lbnQgfSBmcm9tICcuL3RhYmxlLWhlYWRlci1jZWxsLXJlbmRlcmVyL3RhYmxlLWhlYWRlci1jZWxsLXJlbmRlcmVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUZXh0U2VhcmNoUHJlZGljYXRlIH0gZnJvbSAnLi90ZXh0LXNlYXJjaC1wcmVkaWNhdGUnO1xuXG5cbmNvbnN0IG5vb3AgPSAoKSA9PiB7XG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIFJvd0RhdGE8Um93PiB7XG4gIHJvdzogUm93O1xuICBlZGl0U2Vzc2lvbj86IEVkaXRTZXNzaW9uPFJvdz47XG4gIGVkaXRSb3dDb21tYW5kOiBDb21tYW5kPHZvaWQ+O1xufVxuXG5jb25zdCBDRUxMX1JFTkRFUkVSX0NPTVBPTkVOVF9ST1dfQ0FDSEUgPSBTeW1ib2woJ2F1cC1jZWxsLXJlbmRlcmVyOnJvdy1kYXRhLWNhY2hlJyk7XG5cbmV4cG9ydCB0eXBlIE9uQ29tcG9uZW50SW5pdDxDPiA9IChjb21wb25lbnQ6IEMpID0+IHZvaWQ7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2VsbFJlbmRlcmVyT3B0aW9uczxSb3csIEU+IHtcbiAgb25Db21wb25lbnRJbml0PzogKGNvbXBvbmVudDogRSkgPT4gdm9pZDtcbiAgb25Sb3dVcGRhdGU/OiAoY29tcG9uZW50OiBFLCByb3c6IFJvdykgPT4gdm9pZDtcbn1cblxuXG5leHBvcnQgaW50ZXJmYWNlIE11dGFibGVDZWxsUmVuZGVyZXJPcHRpb25zPFJvdywgRSwgUCBleHRlbmRzIGtleW9mIFJvdz4gZXh0ZW5kcyBDZWxsUmVuZGVyZXJPcHRpb25zPFJvdywgRT4ge1xuICBvblZhbHVlRWRpdDogKHJvdzogUm93LCBpczogUm93W1BdLCB3YXM6IFJvd1tQXSkgPT4gdm9pZDtcbn1cblxuY29uc3QgREVGQVVMVF9URVhUX1NFQVJDSF9QUkVESUNBVEU6IFRleHRTZWFyY2hQcmVkaWNhdGU8dW5rbm93bj4gPSAocm93OiB1bmtub3duLCB0ZXh0OiBSZWdFeHApID0+IGZhbHNlO1xuXG5leHBvcnQgY2xhc3MgQ29sdW1uTW9kZWw8Um93PiBleHRlbmRzIEdhcmJhZ2VDb2xsZWN0b3Ige1xuXG4gIHByaXZhdGUgX2NvbHVtblRleHRQcm9wZXJ0aWVzOiBDb2x1bW5UZXh0UHJvcGVydGllcztcblxuICBwcml2YXRlIF9jb2x1bW5IZWFkZXJQb3J0YWxSZWY6IENlbGxIZWFkZXJQb3J0YWxSZWY8Um93LCBhbnk+O1xuICBwcml2YXRlIF9jZWxsUmVuZGVyZXJQb3J0YWxSZWY6IENlbGxSZW5kZXJlclBvcnRhbFJlZjxSb3csIGFueT47XG4gIHByaXZhdGUgX2NlbGxFZGl0b3JQb3J0YWxSZWY6IENlbGxFZGl0b3JQb3J0YWxSZWY8Um93LCBhbnk+O1xuXG4gIHByaXZhdGUgX2VuYWJsZVJvd1NlbGVjdGlvbiA9IHRydWU7XG4gIHByaXZhdGUgX2ZsZXggPSBmYWxzZTtcblxuICBwcml2YXRlIF9kZWZhdWx0VmlzaWJpbGl0eSA9IHRoaXMucmVnaXN0ZXJEaXNwb3NhYmxlKG5ldyBEZWxlZ2F0aW5nVmFsdWVNb2RlbDxib29sZWFuPigpLndpdGhEZWZhdWx0KHRydWUpKTtcbiAgcHJpdmF0ZSBfdmlzaWJsZSA9IHRoaXMucmVnaXN0ZXJEaXNwb3NhYmxlKG5ldyBEZWxlZ2F0aW5nVmFsdWVNb2RlbDxib29sZWFuPigpLndpdGhEZWZhdWx0KHRoaXMuX2RlZmF1bHRWaXNpYmlsaXR5KSk7XG4gIHJlYWRvbmx5IGRhc2hlcmlzZWRDb2x1bW5JZDogc3RyaW5nO1xuICBwcm90ZWN0ZWQgX2NvbHVtbk1vZGVsVGV4dFNlYXJjaFByZWRpY2F0ZTogVGV4dFNlYXJjaFByZWRpY2F0ZTxSb3c+ID0gdW5kZWZpbmVkO1xuICBwcm90ZWN0ZWQgX2NlbGxSZW5kZXJlclRleHRTZWFyY2hQcmVkaWNhdGU6IFRleHRTZWFyY2hQcmVkaWNhdGU8Um93PiA9IHVuZGVmaW5lZDtcblxuICBjb25zdHJ1Y3RvcihyZWFkb25seSBjb2x1bW5JZDogc3RyaW5nLCBwcml2YXRlIHRleHRQcm9wZXJ0aWVzUHJvdmlkZXI6IENvbHVtbk1vZGVsLlRleHRQcm9wZXJ0aWVzUHJvdmlkZXIpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuaW5zdGFsbEhlYWRlclJlbmRlcmVyKCk7XG4gICAgdGhpcy5kYXNoZXJpc2VkQ29sdW1uSWQgPSBTdHJpbmd5LmZyb20oY29sdW1uSWQpLmRhc2hlcml6ZSgpLnRvU3RyaW5nKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaW5zdGFsbEhlYWRlclJlbmRlcmVyKCkge1xuICAgIHRoaXMuY2VsbEhlYWRlclJlbmRlcmVyKERlZmF1bHRIZWFkZXJDZWxsUmVuZGVyZXJDb21wb25lbnQsIChjb21wb25lbnQsIGNvbHVtbikgPT4ge1xuICAgICAgY29tcG9uZW50LmhlYWRlclRleHQgPSBjb2x1bW4uZ2V0SGVhZGVyVGV4dCgpO1xuICAgIH0pO1xuICB9XG5cbiAgQE1lbW9pemUoKVxuICBnZXRIZWFkZXJUZXh0KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0Q29sdW1uVGV4dFByb3BlcnRpZXMoKT8uaGVhZGVyVGV4dCgpIHx8IHRoaXMuZ2V0RGVmYXVsdEhlYWRlclRleHQoKTtcbiAgfVxuXG4gIGlzVmlzaWJsZSgpIHtcbiAgICByZXR1cm4gdGhpcy52aXNpYmxlLnZhbHVlO1xuICB9XG5cbiAgZ2V0IHZpc2libGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3Zpc2libGUucmVhZG9ubHk7XG4gIH1cblxuICB2aXNpYmxlV2hpbGUodmlzaWJsZTogVmFsdWVNb2RlbDxib29sZWFuPik6IHRoaXMge1xuICAgIHRoaXMuX3Zpc2libGUuc2V0RGVsZWdhdGUodmlzaWJsZSk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBwcm90ZWN0ZWQgc2V0RGVmYXVsdFZpc2liaWxpdHkodmlzaWJsZTogVmFsdWVNb2RlbDxib29sZWFuPikge1xuICAgIHRoaXMuX2RlZmF1bHRWaXNpYmlsaXR5LnNldERlbGVnYXRlKHZpc2libGUpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldERlZmF1bHRIZWFkZXJUZXh0KCkge1xuICAgIHJldHVybiB0aGlzLmNvbHVtbklkO1xuICB9XG5cbiAgZ2V0IGlzVGV4dE1hdGNoKCk6IFRleHRTZWFyY2hQcmVkaWNhdGU8Um93PiB7XG4gICAgcmV0dXJuIHRoaXMuX2NvbHVtbk1vZGVsVGV4dFNlYXJjaFByZWRpY2F0ZSB8fCB0aGlzLl9jZWxsUmVuZGVyZXJUZXh0U2VhcmNoUHJlZGljYXRlIHx8IERFRkFVTFRfVEVYVF9TRUFSQ0hfUFJFRElDQVRFO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIHByZWRpY2F0ZSB0byB1c2Ugd2hlbiBjaGVja2luZyBpZiB0aGUgc3BlY2lmaWVkIHJvdyBpcyBhIHRleHQgbWF0Y2ggZm9yIHRoaXMgY29sdW1uLlxuICAgKiBAcGFyYW0gcHJlZGljYXRlXG4gICAqL1xuICB1c2VUZXh0U2VhcmNoUHJlZGljYXRlKHByZWRpY2F0ZTogVGV4dFNlYXJjaFByZWRpY2F0ZTxSb3c+KTp0aGlzIHtcbiAgICB0aGlzLl9jb2x1bW5Nb2RlbFRleHRTZWFyY2hQcmVkaWNhdGUgPSBwcmVkaWNhdGU7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBATWVtb2l6ZSgpXG4gIGdldENvbHVtblRleHRQcm9wZXJ0aWVzKCk6IENvbHVtblRleHRQcm9wZXJ0aWVzIHtcbiAgICByZXR1cm4gdGhpcy5fY29sdW1uVGV4dFByb3BlcnRpZXMgfHwgdGhpcy50ZXh0UHJvcGVydGllc1Byb3ZpZGVyKCk7XG4gIH1cblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgdXNlICNjb2x1bW5UZXh0UHJvcGVydGllcyBpbnN0ZWFkXG4gICAqIEBwYXJhbSBjb2x1bW5UZXh0UHJvcGVydGllc1xuICAgKi9cbiAgdGV4dFByb3BlcnRpZXMoY29sdW1uVGV4dFByb3BlcnRpZXM6IENvbHVtblRleHRQcm9wZXJ0aWVzKTogdGhpcyB7XG4gICAgcmV0dXJuIHRoaXMuY29sdW1uVGV4dFByb3BlcnRpZXMoY29sdW1uVGV4dFByb3BlcnRpZXMpO1xuICB9XG5cbiAgY29sdW1uVGV4dFByb3BlcnRpZXMoY29sdW1uVGV4dFByb3BlcnRpZXM6IENvbHVtblRleHRQcm9wZXJ0aWVzKTogdGhpcyB7XG4gICAgdGhpcy5fY29sdW1uVGV4dFByb3BlcnRpZXMgPSBjb2x1bW5UZXh0UHJvcGVydGllcztcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHByb3RlY3RlZCBjb25maWd1cmVIZWFkZXJSZW5kZXJlcjxDPihjb25maWc6IENlbGxIZWFkZXJQb3J0YWxSZWY8Um93LCBhbnk+KTogdm9pZCB7XG4gICAgdGhpcy5fY29sdW1uSGVhZGVyUG9ydGFsUmVmID0gY29uZmlnO1xuICB9XG5cbiAgcHJvdGVjdGVkIGNvbmZpZ3VyZUNlbGxSZW5kZXJlcjxDPihjb25maWc6IENlbGxSZW5kZXJlclBvcnRhbFJlZjxSb3csIGFueT4pOiB2b2lkIHtcbiAgICB0aGlzLl9jZWxsUmVuZGVyZXJQb3J0YWxSZWYgPSBjb25maWc7XG4gIH1cblxuICBwcm90ZWN0ZWQgY29uZmlndXJlQ2VsbEVkaXRvcjxFPihjZWxsRWRpdG9yOiBDZWxsRWRpdG9yUG9ydGFsUmVmPFJvdywgRT4pOiB2b2lkIHtcbiAgICB0aGlzLl9jZWxsRWRpdG9yUG9ydGFsUmVmID0gY2VsbEVkaXRvcjtcbiAgfVxuXG4gIGNlbGxIZWFkZXJSZW5kZXJlcjxDPihjb21wb25lbnRUeXBlOiBDb21wb25lbnRUeXBlPEM+LCBpbml0aWFsaXNlcjogKGNvbXBvbmVudDogQywgY29sdW1uOiBDb2x1bW5Nb2RlbDxSb3c+KSA9PiB2b2lkKTogdGhpcyB7XG4gICAgdGhpcy5jb25maWd1cmVIZWFkZXJSZW5kZXJlcihuZXcgQ2VsbEhlYWRlclBvcnRhbFJlZjxSb3csIEM+KGNvbXBvbmVudFR5cGUsIGluaXRpYWxpc2VyKSk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBmbGV4KGZsZXggPSB0cnVlKSB7XG4gICAgdGhpcy5fZmxleCA9IGZsZXg7XG4gIH1cblxuICBpc0ZsZXgoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2ZsZXg7XG4gIH1cblxuICBoYXNFZGl0b3JQb3J0YWwoKSB7XG4gICAgcmV0dXJuICEhdGhpcy5fY2VsbEVkaXRvclBvcnRhbFJlZjtcbiAgfVxuXG4gIGF0dGFjaEhlYWRlckNlbGwoaG9zdDogYW55KSB7XG4gICAgdGhpcy5fY29sdW1uSGVhZGVyUG9ydGFsUmVmLmluaXRpYWxpc2VIb3N0KGhvc3QsIHRoaXMpO1xuICB9XG5cbiAgYXR0YWNoQ2VsbChob3N0OiBhbnkpIHtcbiAgICB0aGlzLl9jZWxsUmVuZGVyZXJQb3J0YWxSZWYuaW5pdGlhbGlzZUhvc3QoaG9zdCwgdGhpcyk7XG4gICAgaWYgKHRoaXMuaGFzRWRpdG9yUG9ydGFsKCkpIHtcbiAgICAgIHRoaXMuX2NlbGxFZGl0b3JQb3J0YWxSZWYuaW5pdGlhbGlzZUhvc3QoaG9zdCwgdGhpcyk7XG4gICAgfVxuICB9XG5cbiAgb25IZWFkZXJBdHRhY2hlZChob3N0OiBUYWJsZUhlYWRlckNlbGxSZW5kZXJlckNvbXBvbmVudCwgcmVmOiBDZGtQb3J0YWxPdXRsZXRBdHRhY2hlZFJlZikge1xuICAgIGNvbnN0IGNvbXBvbmVudCA9IHRoaXMuZ2V0Q29tcG9uZW50KHJlZik7XG4gICAgdGhpcy5fY29sdW1uSGVhZGVyUG9ydGFsUmVmLm9uUG9ydGFsQXR0YWNoZWQoaG9zdCwgY29tcG9uZW50KTtcbiAgfVxuXG4gIG9uUmVuZGVyZXJBdHRhY2hlZChob3N0OiBUYWJsZUNlbGxSZW5kZXJlckNvbXBvbmVudDxSb3c+LCByZWY6IENka1BvcnRhbE91dGxldEF0dGFjaGVkUmVmKSB7XG4gICAgY29uc3QgY29tcG9uZW50ID0gdGhpcy5nZXRDb21wb25lbnRPckVtYmVkZGVkVmlldyhyZWYpO1xuICAgIHRoaXMuX2NlbGxSZW5kZXJlclBvcnRhbFJlZi5vblBvcnRhbEF0dGFjaGVkKGhvc3QsIGNvbXBvbmVudCk7XG4gICAgaWYgKGlzRnVuY3Rpb24oY29tcG9uZW50Py5tYXRjaGVzKSkge1xuICAgICAgdGhpcy5fY2VsbFJlbmRlcmVyVGV4dFNlYXJjaFByZWRpY2F0ZSA9IChyb3csIHRleHQpID0+IGNvbXBvbmVudC5tYXRjaGVzKHJvdywgdGV4dCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX2NlbGxSZW5kZXJlclRleHRTZWFyY2hQcmVkaWNhdGUgPSB1bmRlZmluZWQ7XG4gICAgfVxuICB9XG5cbiAgLy8gQFRyYWNlKClcbiAgb25FZGl0b3JBdHRhY2hlZChob3N0OiBUYWJsZUNlbGxSZW5kZXJlckNvbXBvbmVudDxSb3c+LCByZWY6IENka1BvcnRhbE91dGxldEF0dGFjaGVkUmVmKSB7XG4gICAgdGhpcy5fY2VsbEVkaXRvclBvcnRhbFJlZi5vblBvcnRhbEF0dGFjaGVkKGhvc3QsIHRoaXMuZ2V0Q29tcG9uZW50KHJlZikpO1xuICB9XG5cbiAgdXBkYXRlUG9ydGFsQ29udGVudChob3N0OiBUYWJsZUNlbGxSZW5kZXJlckNvbXBvbmVudDxSb3c+KSB7XG4gICAgdGhpcy5fY2VsbFJlbmRlcmVyUG9ydGFsUmVmLnB1c2hTdGF0ZShob3N0KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBfc2VsZWN0Um93T25DbGljayhzZWxlY3RSb3dPbkNsaWNrOiBib29sZWFuKTogdGhpcyB7XG4gICAgdGhpcy5fZW5hYmxlUm93U2VsZWN0aW9uID0gc2VsZWN0Um93T25DbGljaztcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIGlzUm93U2VsZWN0aW9uRW5hYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fZW5hYmxlUm93U2VsZWN0aW9uO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldENvbXBvbmVudChyZWY6IENka1BvcnRhbE91dGxldEF0dGFjaGVkUmVmKTogYW55IHtcbiAgICBpZiAocmVmIGluc3RhbmNlb2YgQ29tcG9uZW50UmVmKSB7XG4gICAgICByZXR1cm4gcmVmLmluc3RhbmNlO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zb2xlLmVycm9yKFwiaGVhZGVycyBvbmx5IHN1cHBvcnQgY29tcG9uZW50IHBvcnRhbHMsIGdvdFwiLCByZWYpO1xuICAgICAgbGFuZy5pbGxlZ2FsU3RhdGUoYGhlYWRlcnMgb25seSBzdXBwb3J0IGNvbXBvbmVudCBwb3J0YWxzLCBnb3QgJHtyZWZ9YClcbiAgICB9XG4gIH1cbiAgcHJvdGVjdGVkIGdldENvbXBvbmVudE9yRW1iZWRkZWRWaWV3KHJlZjogQ2RrUG9ydGFsT3V0bGV0QXR0YWNoZWRSZWYpOiBhbnkge1xuICAgIGlmIChyZWYgaW5zdGFuY2VvZiBDb21wb25lbnRSZWYpIHtcbiAgICAgIHJldHVybiByZWYuaW5zdGFuY2U7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiByZWY7XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBuYW1lc3BhY2UgQ29sdW1uTW9kZWwge1xuICBleHBvcnQgdHlwZSBUZXh0UHJvcGVydGllc1Byb3ZpZGVyID0gKCkgPT4gQ29sdW1uVGV4dFByb3BlcnRpZXNcbn1cblxuXG5leHBvcnQgY2xhc3MgUHJvcGVydHlDb2x1bW5Nb2RlbDxSb3csIFAgZXh0ZW5kcyBUeXBlcy5WYWx1ZVByb3BlcnRpZXNPZjxSb3c+PiBleHRlbmRzIENvbHVtbk1vZGVsPFJvdz4ge1xuXG4gIHByaXZhdGUgX2Zvcm1hdDogKHZhbHVlOiBSb3dbUF0pID0+IGFueSA9ICh2YWx1ZSkgPT4gdmFsdWU/LnRvU3RyaW5nKCk7XG5cbiAgY29uc3RydWN0b3IoaWQ6IHN0cmluZywgcmVhZG9ubHkgcHJvcGVydHk6IFAsIGRlZmF1bHRzOiBDb2x1bW5Nb2RlbC5UZXh0UHJvcGVydGllc1Byb3ZpZGVyKSB7XG4gICAgc3VwZXIoaWQsIGRlZmF1bHRzKTtcbiAgICB0aGlzLmNlbGxSZW5kZXJlcihEZWZhdWx0Q2VsbFJlbmRlcmVyQ29tcG9uZW50KTtcbiAgICB0aGlzLnVzZVRleHRTZWFyY2hQcmVkaWNhdGUoKHJvdzogUm93LCByZWdleDogUmVnRXhwKSA9PiB7XG4gICAgICByZXR1cm4gcmVnZXgudGVzdCh0aGlzLl9mb3JtYXQocm93W3RoaXMucHJvcGVydHldKSk7XG4gICAgfSk7XG4gIH1cblxuICBjZWxsUmVuZGVyZXI8RSBleHRlbmRzIENlbGxSZW5kZXJlcjxSb3dbUF0+Pihjb21wb25lbnRUeXBlOiBDb21wb25lbnRUeXBlPEU+LCBvcHRpb25zPzogQ2VsbFJlbmRlcmVyT3B0aW9uczxSb3csIEU+KTogdGhpc1xuICBjZWxsUmVuZGVyZXI8RSBleHRlbmRzIENlbGxSZW5kZXJlcjxSb3dbUF0+Pihjb21wb25lbnRUeXBlOiBDb21wb25lbnRUeXBlPEU+LCBvbkNvbXBvbmVudEluaXQ/OiBPbkNvbXBvbmVudEluaXQ8RT4pOiB0aGlzXG4gIGNlbGxSZW5kZXJlcjxFIGV4dGVuZHMgQ2VsbFJlbmRlcmVyPFJvd1tQXT4+KGNvbXBvbmVudFR5cGU6IENvbXBvbmVudFR5cGU8RT4sIG9uQ29tcG9uZW50SW5pdE9yT3B0aW9ucz86IENlbGxSZW5kZXJlck9wdGlvbnM8Um93LCBFPiB8IE9uQ29tcG9uZW50SW5pdDxFPik6IHRoaXMge1xuICAgIHRoaXMuY29uZmlndXJlQ2VsbFJlbmRlcmVyKG5ldyBDb21wb25lbnRDZWxsUmVuZGVyZXJQb3J0YWxSZWYoY29tcG9uZW50VHlwZSwgKGNvbXBvbmVudCwgcm93RGF0YSwgZmlyc3RUaW1lKSA9PiB7XG4gICAgICBpZiAoZmlyc3RUaW1lKSB7XG4gICAgICAgIGlmIChpc0Z1bmN0aW9uKG9uQ29tcG9uZW50SW5pdE9yT3B0aW9ucykpIHtcbiAgICAgICAgICBvbkNvbXBvbmVudEluaXRPck9wdGlvbnMoY29tcG9uZW50KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpZiAoaXNGdW5jdGlvbihvbkNvbXBvbmVudEluaXRPck9wdGlvbnM/Lm9uQ29tcG9uZW50SW5pdCkpIHtcbiAgICAgICAgICAgIG9uQ29tcG9uZW50SW5pdE9yT3B0aW9ucy5vbkNvbXBvbmVudEluaXQoY29tcG9uZW50KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGNvbXBvbmVudC52YWx1ZSA9IHRoaXMuX2Zvcm1hdChyb3dEYXRhLnJvd1t0aGlzLnByb3BlcnR5XSk7XG4gICAgfSkpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgbGl2ZUVkaXRDZWxsUmVuZGVyZXI8RSBleHRlbmRzIE11dGFibGVDZWxsUmVuZGVyZXI8Um93W1BdPj4oY29tcG9uZW50VHlwZTogQ29tcG9uZW50VHlwZTxFPiwgb3B0aW9uczogTXV0YWJsZUNlbGxSZW5kZXJlck9wdGlvbnM8Um93LCBFLCBQPik6IHRoaXMge1xuICAgIHJldHVybiB0aGlzLm11dGFibGVDZWxsUmVuZGVyZXIoY29tcG9uZW50VHlwZSwgb3B0aW9ucyk7XG4gIH1cblxuICAvKipcbiAgICogRGVwcmVjYXRlZC4gIFVzZSAjbGl2ZUVkaXRDZWxsUmVuZGVyZXIgaW5zdGVhZC5cbiAgICogQHBhcmFtIGNvbXBvbmVudFR5cGVcbiAgICogQHBhcmFtIG9wdGlvbnNcbiAgICovXG4gIG11dGFibGVDZWxsUmVuZGVyZXI8RSBleHRlbmRzIE11dGFibGVDZWxsUmVuZGVyZXI8Um93W1BdPj4oY29tcG9uZW50VHlwZTogQ29tcG9uZW50VHlwZTxFPiwgb3B0aW9uczogTXV0YWJsZUNlbGxSZW5kZXJlck9wdGlvbnM8Um93LCBFLCBQPik6IHRoaXMge1xuXG4gICAgdGhpcy5jb25maWd1cmVDZWxsUmVuZGVyZXIobmV3IENvbXBvbmVudENlbGxSZW5kZXJlclBvcnRhbFJlZihjb21wb25lbnRUeXBlLCAoY29tcG9uZW50LCByb3dEYXRhLCBmaXJzdFRpbWUpID0+IHtcblxuICAgICAgLy8ga2VlcCBhIGxvY2FsIGNvcHkgbW9zdCByZWNlbnQgcm93IHZhbHVlIHNvIGl0J3MgYXZhaWxhYmxlIHRvIHRlaFxuICAgICAgLy8gZWRpdCBjYWxsYmFjayB3aXRob3V0IGhhdmluZyB0byBhZGQvcmVtb3ZlIHN1YnNjcmliZXJzIGFsbCB0aGUgdGltZS5cbiAgICAgIGNvbXBvbmVudFtDRUxMX1JFTkRFUkVSX0NPTVBPTkVOVF9ST1dfQ0FDSEVdID0gcm93RGF0YS5yb3c7XG4gICAgICBsZXQgZGlzYWJsZUVkaXRDYWxsYmFjayA9IGZhbHNlO1xuXG4gICAgICBpZiAoZmlyc3RUaW1lKSB7XG4gICAgICAgIGlmIChpc0Z1bmN0aW9uKG9wdGlvbnM/Lm9uQ29tcG9uZW50SW5pdCkpIHtcbiAgICAgICAgICBvcHRpb25zLm9uQ29tcG9uZW50SW5pdChjb21wb25lbnQpO1xuICAgICAgICB9XG4gICAgICAgIC8vIGluc3RhbGwgb3VyIGVkaXQgY2FsbGJhY2tcbiAgICAgICAgY29tcG9uZW50Lm9uVmFsdWVFZGl0ZWQoKGlzLCB3YXMpID0+IHtcbiAgICAgICAgICBpZiAoIWRpc2FibGVFZGl0Q2FsbGJhY2spIHtcbiAgICAgICAgICAgIG9wdGlvbnMub25WYWx1ZUVkaXQoY29tcG9uZW50W0NFTExfUkVOREVSRVJfQ09NUE9ORU5UX1JPV19DQUNIRV0sIGlzLCB3YXMpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgIH1cblxuICAgICAgLy8gbm93IHB1c2ggdGhlIHZhbHVlIHRoZSBjb21wb25lbnQgYW5kIGRpc2FibGUgdGhlIGNhbGxiYWNrIGp1c3QgaW5jYXNlIHRoZSBjb21wb25lbnQgbWlzYmVoYXZlc1xuICAgICAgLy8gYW5kIGZpcmVzIGEgdmFsdWUgY2hhbmdlIGR1cmluZyB0aGUgb3BlcmF0aW9uLlxuICAgICAgZGlzYWJsZUVkaXRDYWxsYmFjayA9IHRydWU7XG4gICAgICBjb21wb25lbnQudmFsdWUgPSByb3dEYXRhLnJvd1t0aGlzLnByb3BlcnR5XTtcbiAgICAgIGRpc2FibGVFZGl0Q2FsbGJhY2sgPSBmYWxzZTtcblxuICAgICAgaWYgKCFpc0Z1bmN0aW9uKG9wdGlvbnMpICYmIGlzRnVuY3Rpb24ob3B0aW9ucz8ub25Sb3dVcGRhdGUpKSB7XG4gICAgICAgIG9wdGlvbnMub25Sb3dVcGRhdGUoY29tcG9uZW50LCByb3dEYXRhLnJvdyk7XG4gICAgICB9XG5cbiAgICB9KSk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBjZWxsRWRpdG9yPEUgZXh0ZW5kcyBDZWxsRWRpdG9yQ29tcG9uZW50PFJvd1tQXT4+KGVkaXRvcjogQ29tcG9uZW50VHlwZTxFPiwgdmFsaWRhdG9ycz86IFZhbGlkYXRvcjxSb3dbUF0+W10sIGluaXRpYWxpc2VDb21wb25lbnQ/OiAoY29tcG9uZW50OiBFKSA9PiB2b2lkKTogdGhpc1xuICBjZWxsRWRpdG9yPEUgZXh0ZW5kcyBDZWxsRWRpdG9yQ29tcG9uZW50PFJvd1tQXT4+KGVkaXRvcjogQ29tcG9uZW50VHlwZTxFPiwgaW5pdGlhbGlzZUNvbXBvbmVudD86IChjb21wb25lbnQ6IEUpID0+IHZvaWQpOiB0aGlzXG4gIGNlbGxFZGl0b3I8RSBleHRlbmRzIENlbGxFZGl0b3JDb21wb25lbnQ8Um93W1BdPj4oZWRpdG9yOiBDb21wb25lbnRUeXBlPEU+LCB2YWxpZGF0b3JzT3JJbml0aWFsaXNlcj86IFZhbGlkYXRvcjxSb3dbUF0+W10gfCAoKGNvbXBvbmVudDogRSkgPT4gdm9pZCksIG9uQ29tcG9uZW50SW5pdD86IChjb21wb25lbnQ6IEUpID0+IHZvaWQpOiB0aGlzIHtcbiAgICBjb25zdCB2YWxpZGF0b3JzID0gQXJyYXkuaXNBcnJheSh2YWxpZGF0b3JzT3JJbml0aWFsaXNlcikgPyB2YWxpZGF0b3JzT3JJbml0aWFsaXNlciA6IHVuZGVmaW5lZDtcbiAgICBjb25zdCBpbml0aWFsaXNlciA9IGlzRnVuY3Rpb24odmFsaWRhdG9yc09ySW5pdGlhbGlzZXIpID8gdmFsaWRhdG9yc09ySW5pdGlhbGlzZXIgOiBvbkNvbXBvbmVudEluaXQ7XG4gICAgdGhpcy5jb25maWd1cmVDZWxsRWRpdG9yKG5ldyBDZWxsRWRpdG9yUG9ydGFsUmVmKGVkaXRvciwgKGNvbXBvbmVudDogRSwgZWRpdFNlc3Npb246IEVkaXRTZXNzaW9uPFJvdz4pID0+IHtcbiAgICAgIGNvbnN0IGZvcm1WYWx1ZU1vZGVsID0gZWRpdFNlc3Npb24uZm9ybS5wbHVjayh0aGlzLnByb3BlcnR5KTtcbiAgICAgIGlmICh2YWxpZGF0b3JzKSB7XG4gICAgICAgIGZvcm1WYWx1ZU1vZGVsLnZhbGlkYXRlVXNpbmcodmFsaWRhdG9ycyk7XG4gICAgICB9XG4gICAgICBjb21wb25lbnQudmFsdWVNb2RlbCA9IGZvcm1WYWx1ZU1vZGVsO1xuICAgICAgaWYgKGluaXRpYWxpc2VyKSB7XG4gICAgICAgIGluaXRpYWxpc2VyKGNvbXBvbmVudCk7XG4gICAgICB9XG4gICAgfSkpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgZm9ybWF0KGZvcm1hdHRlcjogKHZhbHVlOiBSb3dbUF0pID0+IGFueSk6IHRoaXMge1xuICAgIGFzc2VydC5pc0Z1bmN0aW9uKGZvcm1hdHRlcik7XG4gICAgdGhpcy5fZm9ybWF0ID0gZm9ybWF0dGVyO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgcHVibGljIHNlbGVjdFJvd09uQ2xpY2soc2VsZWN0T25Sb3dDbGljazogYm9vbGVhbik6IHRoaXMge1xuICAgIHJldHVybiB0aGlzLl9zZWxlY3RSb3dPbkNsaWNrKHNlbGVjdE9uUm93Q2xpY2spO1xuICB9XG5cbn1cblxuZXhwb3J0IGNsYXNzIExpc3RQcm9wZXJ0eUNvbHVtbk1vZGVsPFJvdywgUCBleHRlbmRzIFR5cGVzLkFycmF5UHJvcGVydGllc09mPFJvdz4+IGV4dGVuZHMgQ29sdW1uTW9kZWw8Um93PiB7XG5cbiAgcHJpdmF0ZSBfZm9ybWF0OiAodmFsdWU6IFR5cGVzLkFycmF5RWxlbWVudFR5cGU8Um93LCBQPltdKSA9PiBhbnkgPSAodmFsdWUpID0+IHZhbHVlLm1hcCh2ID0+IHY/LnRvU3RyaW5nKCkpLmpvaW4oJywgJyk7XG5cbiAgY29uc3RydWN0b3IoaWQ6IHN0cmluZywgcmVhZG9ubHkgcHJvcGVydHk6IFAsIGRlZmF1bHRzOiBDb2x1bW5Nb2RlbC5UZXh0UHJvcGVydGllc1Byb3ZpZGVyKSB7XG4gICAgc3VwZXIoaWQsIGRlZmF1bHRzKTtcbiAgICB0aGlzLmNlbGxSZW5kZXJlcihEZWZhdWx0Q2VsbFJlbmRlcmVyQ29tcG9uZW50KTtcbiAgICB0aGlzLnVzZVRleHRTZWFyY2hQcmVkaWNhdGUoKHJvdzogUm93LCByZWdleDogUmVnRXhwKSA9PiB7XG4gICAgICByZXR1cm4gcmVnZXgudGVzdCh0aGlzLl9mb3JtYXQocm93W3RoaXMucHJvcGVydHldKSk7XG4gICAgfSk7XG4gIH1cblxuICBjZWxsUmVuZGVyZXIoY29tcG9uZW50VHlwZTogQ29tcG9uZW50VHlwZTx7IHZhbHVlOiBUeXBlcy5BcnJheUVsZW1lbnRUeXBlPFJvdywgUD5bXSB9Pik6IHRoaXMge1xuICAgIHRoaXMuY29uZmlndXJlQ2VsbFJlbmRlcmVyKG5ldyBDb21wb25lbnRDZWxsUmVuZGVyZXJQb3J0YWxSZWYoY29tcG9uZW50VHlwZSwgKGNvbXBvbmVudCwgcm93RGF0YSkgPT4ge1xuICAgICAgY29tcG9uZW50LnZhbHVlID0gdGhpcy5fZm9ybWF0KHJvd0RhdGEucm93W3RoaXMucHJvcGVydHldKTtcbiAgICB9KSk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBjZWxsRWRpdG9yPEMgZXh0ZW5kcyBDZWxsTGlzdEVkaXRvckNvbXBvbmVudDxUeXBlcy5BcnJheUVsZW1lbnRUeXBlPFJvdywgUD4+PihlZGl0b3I6IENvbXBvbmVudFR5cGU8Qz4sIHZhbGlkYXRvcnM/OiBWYWxpZGF0b3I8VHlwZXMuQXJyYXlFbGVtZW50VHlwZTxSb3csIFA+W10+W10sIGluaXRpYWxpc2VDb21wb25lbnQ/OiAoY29tcG9uZW50OiBDKSA9PiB2b2lkKTogdGhpc1xuICBjZWxsRWRpdG9yPEMgZXh0ZW5kcyBDZWxsTGlzdEVkaXRvckNvbXBvbmVudDxUeXBlcy5BcnJheUVsZW1lbnRUeXBlPFJvdywgUD4+PihlZGl0b3I6IENvbXBvbmVudFR5cGU8Qz4sIGluaXRpYWxpc2VDb21wb25lbnQ/OiAoY29tcG9uZW50OiBDKSA9PiB2b2lkKTogdGhpc1xuICBjZWxsRWRpdG9yPEMgZXh0ZW5kcyBDZWxsTGlzdEVkaXRvckNvbXBvbmVudDxUeXBlcy5BcnJheUVsZW1lbnRUeXBlPFJvdywgUD4+PihlZGl0b3I6IENvbXBvbmVudFR5cGU8Qz4sIHZhbGlkYXRvcnNPckluaXRpYWxpc2VyPzogVmFsaWRhdG9yPFR5cGVzLkFycmF5RWxlbWVudFR5cGU8Um93LCBQPltdPltdIHwgKChjb21wb25lbnQ6IEMpID0+IHZvaWQpLCBpbml0aWFsaXNlQ29tcG9uZW50PzogKGNvbXBvbmVudDogQykgPT4gdm9pZCk6IHRoaXMge1xuICAgIGNvbnN0IHZhbGlkYXRvcnMgPSBBcnJheS5pc0FycmF5KHZhbGlkYXRvcnNPckluaXRpYWxpc2VyKSA/IHZhbGlkYXRvcnNPckluaXRpYWxpc2VyIDogdW5kZWZpbmVkO1xuICAgIGNvbnN0IGluaXRpYWxpc2VyID0gaXNGdW5jdGlvbih2YWxpZGF0b3JzT3JJbml0aWFsaXNlcikgPyB2YWxpZGF0b3JzT3JJbml0aWFsaXNlciA6IGluaXRpYWxpc2VDb21wb25lbnQ7XG5cbiAgICB0aGlzLmNvbmZpZ3VyZUNlbGxFZGl0b3IobmV3IENlbGxFZGl0b3JQb3J0YWxSZWYoZWRpdG9yLCAoY29tcG9uZW50OiBDLCBlZGl0U2Vzc2lvbjogRWRpdFNlc3Npb248Um93PikgPT4ge1xuICAgICAgY29uc3QgZm9ybUxpc3RNb2RlbCA9IGVkaXRTZXNzaW9uLmZvcm0ucGx1Y2tMaXN0KHRoaXMucHJvcGVydHkpO1xuICAgICAgaWYgKHZhbGlkYXRvcnMpIHtcbiAgICAgICAgZm9ybUxpc3RNb2RlbC52YWxpZGF0ZVVzaW5nKHZhbGlkYXRvcnMpO1xuICAgICAgfVxuICAgICAgY29tcG9uZW50Lmxpc3RNb2RlbCA9IGZvcm1MaXN0TW9kZWw7XG4gICAgICBpZiAoaW5pdGlhbGlzZXIpIHtcbiAgICAgICAgaW5pdGlhbGlzZXIoY29tcG9uZW50KTtcbiAgICAgIH1cbiAgICB9KSk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBmb3JtYXQoZm9ybWF0dGVyOiAodmFsdWU6IFR5cGVzLkFycmF5RWxlbWVudFR5cGU8Um93LCBQPltdKSA9PiBhbnkpOiB0aGlzIHtcbiAgICBhc3NlcnQuaXNGdW5jdGlvbihmb3JtYXR0ZXIpO1xuICAgIHRoaXMuX2Zvcm1hdCA9IGZvcm1hdHRlcjtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHB1YmxpYyBzZWxlY3RSb3dPbkNsaWNrKHNlbGVjdFJvd09uQ2xpY2s6IGJvb2xlYW4pOiB0aGlzIHtcbiAgICByZXR1cm4gdGhpcy5fc2VsZWN0Um93T25DbGljayhzZWxlY3RSb3dPbkNsaWNrKTtcbiAgfVxuXG59XG5cbmV4cG9ydCBjbGFzcyBDdXN0b21WYWx1ZUNvbHVtbk1vZGVsPFJvdywgVj4gZXh0ZW5kcyBDb2x1bW5Nb2RlbDxSb3c+IHtcblxuICBjb25zdHJ1Y3Rvcihjb2x1bW5JZDogc3RyaW5nLCBkZWZhdWx0czogQ29sdW1uTW9kZWwuVGV4dFByb3BlcnRpZXNQcm92aWRlciwgcHJpdmF0ZSBnZXRWYWx1ZTogKHJvdzogUm93KSA9PiBWKSB7XG4gICAgc3VwZXIoY29sdW1uSWQsIGRlZmF1bHRzKTtcbiAgICB0aGlzLmNlbGxSZW5kZXJlcihEZWZhdWx0Q2VsbFJlbmRlcmVyQ29tcG9uZW50KTtcbiAgfVxuXG4gIGNlbGxSZW5kZXJlcjxDIGV4dGVuZHMgeyB2YWx1ZTogUGFydGlhbDxWPiB9Pihjb21wb25lbnRUeXBlOiBDb21wb25lbnRUeXBlPEM+LCBvbkNvbXBvbmVudEluaXRPck9wdGlvbnM/OiBDZWxsUmVuZGVyZXJPcHRpb25zPFJvdywgQz4gfCBPbkNvbXBvbmVudEluaXQ8Qz4pOiB0aGlzIHtcbiAgICB0aGlzLmNvbmZpZ3VyZUNlbGxSZW5kZXJlcihuZXcgQ29tcG9uZW50Q2VsbFJlbmRlcmVyUG9ydGFsUmVmKGNvbXBvbmVudFR5cGUsIChjb21wb25lbnQsIHJvd0RhdGEsIGZpcnN0VGltZSkgPT4ge1xuICAgICAgaWYgKGZpcnN0VGltZSkge1xuICAgICAgICBpZiAoaXNGdW5jdGlvbihvbkNvbXBvbmVudEluaXRPck9wdGlvbnMpKSB7XG4gICAgICAgICAgb25Db21wb25lbnRJbml0T3JPcHRpb25zKGNvbXBvbmVudCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaWYgKGlzRnVuY3Rpb24ob25Db21wb25lbnRJbml0T3JPcHRpb25zPy5vbkNvbXBvbmVudEluaXQpKSB7XG4gICAgICAgICAgICBvbkNvbXBvbmVudEluaXRPck9wdGlvbnMub25Db21wb25lbnRJbml0KGNvbXBvbmVudCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBjb21wb25lbnQudmFsdWUgPSB0aGlzLmdldFZhbHVlKHJvd0RhdGEucm93KTtcblxuICAgICAgaWYgKCFpc0Z1bmN0aW9uKG9uQ29tcG9uZW50SW5pdE9yT3B0aW9ucykgJiYgaXNGdW5jdGlvbihvbkNvbXBvbmVudEluaXRPck9wdGlvbnM/Lm9uUm93VXBkYXRlKSkge1xuICAgICAgICBvbkNvbXBvbmVudEluaXRPck9wdGlvbnMub25Sb3dVcGRhdGUoY29tcG9uZW50LCByb3dEYXRhLnJvdyk7XG4gICAgICB9XG4gICAgfSkpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgcHVibGljIHNlbGVjdFJvd09uQ2xpY2soc2VsZWN0T25Sb3dDbGljazogYm9vbGVhbik6IHRoaXMge1xuICAgIHJldHVybiB0aGlzLl9zZWxlY3RSb3dPbkNsaWNrKHNlbGVjdE9uUm93Q2xpY2spO1xuICB9XG5cbn1cblxuZXhwb3J0IGNsYXNzIEVkaXRvckNvbnRyb2xDb2x1bW5Nb2RlbDxSb3c+IGV4dGVuZHMgQ29sdW1uTW9kZWw8Um93PiB7XG5cbiAgY29uc3RydWN0b3IoY29sdW1uSWQ6IHN0cmluZywgc2F2ZUNvbW1hbmRGYWN0b3J5OiBDb21tYW5kLkZhY3Rvcnk8RGlydHlUcmFja2luZ0Zvcm08Um93PiwgYm9vbGVhbiB8IFByb21pc2U8Ym9vbGVhbj4+LCBkZWZhdWx0czogQ29sdW1uTW9kZWwuVGV4dFByb3BlcnRpZXNQcm92aWRlcikge1xuICAgIHN1cGVyKGNvbHVtbklkLCBkZWZhdWx0cyk7XG4gICAgdGhpcy5jZWxsUmVuZGVyZXIoRWRpdFJvd0NvbnRyb2xzKTtcbiAgfVxuXG4gIGNlbGxSZW5kZXJlcihjb21wb25lbnRUeXBlOiBDb21wb25lbnRUeXBlPHsgcm93OiBSb3csIGVkaXRTZXNzaW9uOiBFZGl0U2Vzc2lvbjxSb3c+LCBlZGl0Um93Q29tbWFuZDogQ29tbWFuZDx2b2lkPiB9Pik6IHRoaXMge1xuICAgIHRoaXMuY29uZmlndXJlQ2VsbFJlbmRlcmVyKG5ldyBDb21wb25lbnRDZWxsUmVuZGVyZXJQb3J0YWxSZWYoY29tcG9uZW50VHlwZSwgKGNvbXBvbmVudCwgcm93RGF0YTogUm93RGF0YTxSb3c+KSA9PiB7XG4gICAgICBjb21wb25lbnQucm93ID0gcm93RGF0YS5yb3c7XG4gICAgICBjb21wb25lbnQuZWRpdFNlc3Npb24gPSByb3dEYXRhLmVkaXRTZXNzaW9uO1xuICAgICAgY29tcG9uZW50LmVkaXRSb3dDb21tYW5kID0gcm93RGF0YS5lZGl0Um93Q29tbWFuZDtcbiAgICB9KSk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0RGVmYXVsdEhlYWRlclRleHQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gJyc7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIEN1c3RvbVRlbXBsYXRlQ29sdW1uTW9kZWw8Um93PiBleHRlbmRzIENvbHVtbk1vZGVsPFJvdz4ge1xuICBwcml2YXRlIHJlYWRvbmx5IGNvbmZpZyA9IG5ldyBUZW1wbGF0ZUNlbGxSZW5kZXJlclBvcnRhbFJlZjxSb3c+KCk7XG5cbiAgY29uc3RydWN0b3IoY29sdW1uSWQ6IHN0cmluZywgZGVmYXVsdHM6IENvbHVtbk1vZGVsLlRleHRQcm9wZXJ0aWVzUHJvdmlkZXIpIHtcbiAgICBzdXBlcihjb2x1bW5JZCwgZGVmYXVsdHMpO1xuICAgIHRoaXMuY29uZmlndXJlQ2VsbFJlbmRlcmVyKHRoaXMuY29uZmlnKTtcbiAgfVxuXG4gIHNldFRlbXBsYXRlKHRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxhbnk+LCB2aWV3Q29udGFpbmVyOiBWaWV3Q29udGFpbmVyUmVmLCBmaWxsQ2VsbDogYm9vbGVhbiwgcGFkQ2hpbGQ6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmNvbmZpZy5yZWdpc3RlclBvcnRhbCh0ZW1wbGF0ZVJlZiwgdmlld0NvbnRhaW5lciwgZmlsbENlbGwsIHBhZENoaWxkKTtcbiAgfVxuXG4gIHB1YmxpYyBzZWxlY3RSb3dPbkNsaWNrKHNlbGVjdE9uUm93Q2xpY2s6IGJvb2xlYW4pOiB0aGlzIHtcbiAgICByZXR1cm4gdGhpcy5fc2VsZWN0Um93T25DbGljayhzZWxlY3RPblJvd0NsaWNrKTtcbiAgfVxuXG59XG5cbmV4cG9ydCBjbGFzcyBTZWxlY3Rpb25Db2x1bW5Nb2RlbDxSb3c+IGV4dGVuZHMgQ29sdW1uTW9kZWw8Um93PiB7XG5cbiAgcHJpdmF0ZSBfZW5hYmxlSGVhZGVyQ29udHJvbHMgPSB0cnVlO1xuICByZWFkb25seSBzZWxlY3Rpb25Nb2RlbCA9IERlbGVnYXRpbmdTZWxlY3Rpb25Nb2RlbC5jcmVhdGVEZWxlZ2F0ZTxSb3csIHVua25vd24+KCk7XG5cbiAgY29uc3RydWN0b3IoY29sdW1uSWQ6IHN0cmluZywgZGVmYXVsdHM6IENvbHVtbk1vZGVsLlRleHRQcm9wZXJ0aWVzUHJvdmlkZXIsIHNlbGVjdGlvbk1vZGVsOiBTZWxlY3Rpb25Nb2RlbDxSb3c+KSB7XG4gICAgc3VwZXIoY29sdW1uSWQsIGRlZmF1bHRzKTtcbiAgICB0aGlzLl9zZWxlY3RSb3dPbkNsaWNrKGZhbHNlKTtcbiAgICB0aGlzLmNlbGxIZWFkZXJSZW5kZXJlcihTZWxlY3RIZWFkZXJDZWxsUmVuZGVyZXJDb21wb25lbnQsIChjb21wb25lbnQpID0+IHtcbiAgICAgIGNvbXBvbmVudC5zZWxlY3Rpb25Nb2RlbCA9IHRoaXMuc2VsZWN0aW9uTW9kZWw7XG4gICAgICBjb21wb25lbnQuZW5hYmxlSGVhZGVyQ29udHJvbHMgPSB0aGlzLl9lbmFibGVIZWFkZXJDb250cm9scztcbiAgICB9KTtcbiAgICB0aGlzLmNvbmZpZ3VyZUNlbGxSZW5kZXJlcihuZXcgQ29tcG9uZW50Q2VsbFJlbmRlcmVyUG9ydGFsUmVmKFNlbGVjdENlbGxSZW5kZXJlckNvbXBvbmVudCwgKGNvbXBvbmVudCwgcm93RGF0YTogUm93RGF0YTxSb3c+KSA9PiB7XG4gICAgICBjb21wb25lbnQucm93ID0gcm93RGF0YS5yb3c7XG4gICAgICBjb21wb25lbnQuc2VsZWN0aW9uTW9kZWwgPSB0aGlzLnNlbGVjdGlvbk1vZGVsO1xuICAgIH0pKTtcbiAgICB0aGlzLnNldFNlbGVjdGlvbk1vZGVsKHNlbGVjdGlvbk1vZGVsKTtcbiAgfVxuXG4gIHNldFNlbGVjdGlvbk1vZGVsKHNlbGVjdGlvbk1vZGVsOiBTZWxlY3Rpb25Nb2RlbDxSb3c+KSB7XG4gICAgdGhpcy5zZWxlY3Rpb25Nb2RlbC5zZXREZWxlZ2F0ZShzZWxlY3Rpb25Nb2RlbCk7XG4gICAgdGhpcy5zZXREZWZhdWx0VmlzaWJpbGl0eShzZWxlY3Rpb25Nb2RlbCBpbnN0YW5jZW9mIE11bHRpcGxlU2VsZWN0aW9uTW9kZWwgPyBWYWx1ZU1vZGVsLlRSVUUgOiBWYWx1ZU1vZGVsLkZBTFNFKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXREZWZhdWx0SGVhZGVyVGV4dCgpOiBzdHJpbmcge1xuICAgIHJldHVybiAnJztcbiAgfVxuXG4gIGVuYWJsZUhlYWRlckNvbnRyb2xzKGVuYWJsZTogYm9vbGVhbik6IHRoaXMge1xuICAgIHRoaXMuX2VuYWJsZUhlYWRlckNvbnRyb2xzID0gZW5hYmxlO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgc2VsZWN0Um93KHJvdzogUm93KSB7XG4gICAgdGhpcy5zZWxlY3Rpb25Nb2RlbC5zZWxlY3RDb21tYW5kLmV4ZWN1dGUocm93KTtcbiAgfVxuXG4gIGlzU2VsZWN0ZWQocm93OiBSb3cpIHtcbiAgICByZXR1cm4gdGhpcy5zZWxlY3Rpb25Nb2RlbC5pc1NlbGVjdGVkKHJvdyk7XG4gIH1cbn1cblxuXG4iXX0=
@@ -1,36 +0,0 @@
1
- import { Directive, Input, TemplateRef, ViewContainerRef } from '@angular/core';
2
- import { assert } from '@coolon/pectin';
3
- import { AbstractTableComponent } from '../../abstract-table.component';
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "../../abstract-table.component";
6
- export class ColumnTemplateDirective {
7
- constructor(host, templateRef, viewContainer) {
8
- this.host = host;
9
- this.templateRef = templateRef;
10
- this.viewContainer = viewContainer;
11
- this.aupColumnTemplateFillCell = false;
12
- this.aupColumnTemplateAutoPadChild = undefined;
13
- }
14
- ngOnInit() {
15
- var _a;
16
- assert.isTruthy(this.aupColumnTemplateColumnId);
17
- this.host.registerColumnTemplate(this.aupColumnTemplateColumnId, this.templateRef, this.viewContainer, this.aupColumnTemplateFillCell, (_a = this.aupColumnTemplateAutoPadChild) !== null && _a !== void 0 ? _a : this.aupColumnTemplateFillCell);
18
- }
19
- }
20
- ColumnTemplateDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: ColumnTemplateDirective, deps: [{ token: i1.AbstractTableComponent }, { token: i0.TemplateRef }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
21
- ColumnTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.13", type: ColumnTemplateDirective, selector: "[aupColumnTemplate]", inputs: { aupColumnTemplate: "aupColumnTemplate", aupColumnTemplateColumnId: "aupColumnTemplateColumnId", aupColumnTemplateFillCell: "aupColumnTemplateFillCell", aupColumnTemplateAutoPadChild: "aupColumnTemplateAutoPadChild" }, ngImport: i0 });
22
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: ColumnTemplateDirective, decorators: [{
23
- type: Directive,
24
- args: [{
25
- selector: '[aupColumnTemplate]'
26
- }]
27
- }], ctorParameters: function () { return [{ type: i1.AbstractTableComponent }, { type: i0.TemplateRef }, { type: i0.ViewContainerRef }]; }, propDecorators: { aupColumnTemplate: [{
28
- type: Input
29
- }], aupColumnTemplateColumnId: [{
30
- type: Input
31
- }], aupColumnTemplateFillCell: [{
32
- type: Input
33
- }], aupColumnTemplateAutoPadChild: [{
34
- type: Input
35
- }] } });
36
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1uLXRlbXBsYXRlLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci11aS1wb3dlcnVwcy9zcmMvbGliL2NvbXBvbmVudHMvdGFibGVzL3RhYmxlL2NvbHVtbi10ZW1wbGF0ZS9jb2x1bW4tdGVtcGxhdGUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLFdBQVcsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4RixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEMsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7OztBQUt4RSxNQUFNLE9BQU8sdUJBQXVCO0lBY2xDLFlBQXFCLElBQWlDLEVBQ2xDLFdBQTZCLEVBQzdCLGFBQStCO1FBRjlCLFNBQUksR0FBSixJQUFJLENBQTZCO1FBQ2xDLGdCQUFXLEdBQVgsV0FBVyxDQUFrQjtRQUM3QixrQkFBYSxHQUFiLGFBQWEsQ0FBa0I7UUFQbkQsOEJBQXlCLEdBQUcsS0FBSyxDQUFDO1FBR2xDLGtDQUE2QixHQUFHLFNBQVMsQ0FBQztJQUsxQyxDQUFDO0lBRUQsUUFBUTs7UUFDTixNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO1FBQ2hELElBQUksQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLHlCQUF5QixFQUM3RCxJQUFJLENBQUMsV0FBVyxFQUNoQixJQUFJLENBQUMsYUFBYSxFQUNsQixJQUFJLENBQUMseUJBQXlCLEVBQzlCLE1BQUEsSUFBSSxDQUFDLDZCQUE2QixtQ0FBSSxJQUFJLENBQUMseUJBQXlCLENBQUMsQ0FBQztJQUMxRSxDQUFDOztxSEExQlUsdUJBQXVCO3lHQUF2Qix1QkFBdUI7NEZBQXZCLHVCQUF1QjtrQkFIbkMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUscUJBQXFCO2lCQUNoQztzS0FJQyxpQkFBaUI7c0JBRGhCLEtBQUs7Z0JBSU4seUJBQXlCO3NCQUR4QixLQUFLO2dCQUlOLHlCQUF5QjtzQkFEeEIsS0FBSztnQkFJTiw2QkFBNkI7c0JBRDVCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIElucHV0LCBPbkluaXQsIFRlbXBsYXRlUmVmLCBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBhc3NlcnQgfSBmcm9tICdAY29vbG9uL3BlY3Rpbic7XG5pbXBvcnQgeyBBYnN0cmFjdFRhYmxlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYWJzdHJhY3QtdGFibGUuY29tcG9uZW50JztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2F1cENvbHVtblRlbXBsYXRlXSdcbn0pXG5leHBvcnQgY2xhc3MgQ29sdW1uVGVtcGxhdGVEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIEBJbnB1dCgpXG4gIGF1cENvbHVtblRlbXBsYXRlOiBzdHJpbmc7XG5cbiAgQElucHV0KClcbiAgYXVwQ29sdW1uVGVtcGxhdGVDb2x1bW5JZDogc3RyaW5nO1xuXG4gIEBJbnB1dCgpXG4gIGF1cENvbHVtblRlbXBsYXRlRmlsbENlbGwgPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICBhdXBDb2x1bW5UZW1wbGF0ZUF1dG9QYWRDaGlsZCA9IHVuZGVmaW5lZDtcblxuICBjb25zdHJ1Y3RvcihyZWFkb25seSBob3N0OiBBYnN0cmFjdFRhYmxlQ29tcG9uZW50PGFueT4sXG4gICAgICAgICAgICAgIHByaXZhdGUgdGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPGFueT4sXG4gICAgICAgICAgICAgIHByaXZhdGUgdmlld0NvbnRhaW5lcjogVmlld0NvbnRhaW5lclJlZikge1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgYXNzZXJ0LmlzVHJ1dGh5KHRoaXMuYXVwQ29sdW1uVGVtcGxhdGVDb2x1bW5JZCk7XG4gICAgdGhpcy5ob3N0LnJlZ2lzdGVyQ29sdW1uVGVtcGxhdGUodGhpcy5hdXBDb2x1bW5UZW1wbGF0ZUNvbHVtbklkLFxuICAgICAgdGhpcy50ZW1wbGF0ZVJlZixcbiAgICAgIHRoaXMudmlld0NvbnRhaW5lcixcbiAgICAgIHRoaXMuYXVwQ29sdW1uVGVtcGxhdGVGaWxsQ2VsbCxcbiAgICAgIHRoaXMuYXVwQ29sdW1uVGVtcGxhdGVBdXRvUGFkQ2hpbGQgPz8gdGhpcy5hdXBDb2x1bW5UZW1wbGF0ZUZpbGxDZWxsKTtcbiAgfVxuXG59XG4iXX0=
@@ -1,26 +0,0 @@
1
- import { Component, Input } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- import * as i1 from "../../../../directives/highlight.pipe";
4
- export class DefaultCellRendererComponent {
5
- constructor() {
6
- }
7
- set value(value) {
8
- this._value = value;
9
- }
10
- get value() {
11
- return this._value;
12
- }
13
- }
14
- DefaultCellRendererComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: DefaultCellRendererComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
15
- DefaultCellRendererComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: DefaultCellRendererComponent, selector: "aup-default-cell-renderer", inputs: { value: "value" }, ngImport: i0, template: "<span [innerHTML]=\"value| aupHighlight\"></span>\n", styles: [""], pipes: { "aupHighlight": i1.HighlightPipe } });
16
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: DefaultCellRendererComponent, decorators: [{
17
- type: Component,
18
- args: [{
19
- selector: 'aup-default-cell-renderer',
20
- templateUrl: './default-cell-renderer.component.html',
21
- styleUrls: ['./default-cell-renderer.component.scss']
22
- }]
23
- }], ctorParameters: function () { return []; }, propDecorators: { value: [{
24
- type: Input
25
- }] } });
26
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdC1jZWxsLXJlbmRlcmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci11aS1wb3dlcnVwcy9zcmMvbGliL2NvbXBvbmVudHMvdGFibGVzL3RhYmxlL2RlZmF1bHQtY2VsbC1yZW5kZXJlci9kZWZhdWx0LWNlbGwtcmVuZGVyZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXVpLXBvd2VydXBzL3NyYy9saWIvY29tcG9uZW50cy90YWJsZXMvdGFibGUvZGVmYXVsdC1jZWxsLXJlbmRlcmVyL2RlZmF1bHQtY2VsbC1yZW5kZXJlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQzs7O0FBU2pELE1BQU0sT0FBTyw0QkFBNEI7SUFZdkM7SUFDQSxDQUFDO0lBVkQsSUFDSSxLQUFLLENBQUMsS0FBUTtRQUNoQixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztJQUN0QixDQUFDO0lBRUQsSUFBSSxLQUFLO1FBQ1AsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3JCLENBQUM7OzBIQVZVLDRCQUE0Qjs4R0FBNUIsNEJBQTRCLDZGQ1R6QyxxREFDQTs0RkRRYSw0QkFBNEI7a0JBTHhDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLDJCQUEyQjtvQkFDckMsV0FBVyxFQUFFLHdDQUF3QztvQkFDckQsU0FBUyxFQUFFLENBQUMsd0NBQXdDLENBQUM7aUJBQ3REOzBFQUtLLEtBQUs7c0JBRFIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENlbGxSZW5kZXJlciB9IGZyb20gJy4uL2NlbGwtcmVuZGVyZXInO1xuXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F1cC1kZWZhdWx0LWNlbGwtcmVuZGVyZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vZGVmYXVsdC1jZWxsLXJlbmRlcmVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZGVmYXVsdC1jZWxsLXJlbmRlcmVyLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgRGVmYXVsdENlbGxSZW5kZXJlckNvbXBvbmVudDxUPiBpbXBsZW1lbnRzIENlbGxSZW5kZXJlcjxUPntcbiAgcHJpdmF0ZSBfdmFsdWU6IFQ7XG5cbiAgQElucHV0KClcbiAgc2V0IHZhbHVlKHZhbHVlOiBUKSB7XG4gICAgdGhpcy5fdmFsdWUgPSB2YWx1ZTtcbiAgfVxuXG4gIGdldCB2YWx1ZSgpOiBUIHtcbiAgICByZXR1cm4gdGhpcy5fdmFsdWU7XG4gIH1cblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgfVxufVxuIiwiPHNwYW4gW2lubmVySFRNTF09XCJ2YWx1ZXwgYXVwSGlnaGxpZ2h0XCI+PC9zcGFuPlxuIl19
@@ -1,19 +0,0 @@
1
- import { Component, Input } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- export class DefaultHeaderCellRendererComponent {
4
- constructor() {
5
- }
6
- }
7
- DefaultHeaderCellRendererComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: DefaultHeaderCellRendererComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
8
- DefaultHeaderCellRendererComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: DefaultHeaderCellRendererComponent, selector: "aup-default-header-renderer", inputs: { headerText: "headerText" }, ngImport: i0, template: "{{headerText}}\n", styles: [""] });
9
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: DefaultHeaderCellRendererComponent, decorators: [{
10
- type: Component,
11
- args: [{
12
- selector: 'aup-default-header-renderer',
13
- templateUrl: './default-header-cell-renderer.component.html',
14
- styleUrls: ['./default-header-cell-renderer.component.scss']
15
- }]
16
- }], ctorParameters: function () { return []; }, propDecorators: { headerText: [{
17
- type: Input
18
- }] } });
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdC1oZWFkZXItY2VsbC1yZW5kZXJlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdWktcG93ZXJ1cHMvc3JjL2xpYi9jb21wb25lbnRzL3RhYmxlcy90YWJsZS9kZWZhdWx0LWhlYWRlci1jZWxsLXJlbmRlcmVyL2RlZmF1bHQtaGVhZGVyLWNlbGwtcmVuZGVyZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXVpLXBvd2VydXBzL3NyYy9saWIvY29tcG9uZW50cy90YWJsZXMvdGFibGUvZGVmYXVsdC1oZWFkZXItY2VsbC1yZW5kZXJlci9kZWZhdWx0LWhlYWRlci1jZWxsLXJlbmRlcmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQU9qRCxNQUFNLE9BQU8sa0NBQWtDO0lBSzdDO0lBQ0EsQ0FBQzs7Z0lBTlUsa0NBQWtDO29IQUFsQyxrQ0FBa0MseUdDUC9DLGtCQUNBOzRGRE1hLGtDQUFrQztrQkFMOUMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsNkJBQTZCO29CQUN2QyxXQUFXLEVBQUUsK0NBQStDO29CQUM1RCxTQUFTLEVBQUUsQ0FBQywrQ0FBK0MsQ0FBQztpQkFDN0Q7MEVBSUMsVUFBVTtzQkFEVCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhdXAtZGVmYXVsdC1oZWFkZXItcmVuZGVyZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vZGVmYXVsdC1oZWFkZXItY2VsbC1yZW5kZXJlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2RlZmF1bHQtaGVhZGVyLWNlbGwtcmVuZGVyZXIuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBEZWZhdWx0SGVhZGVyQ2VsbFJlbmRlcmVyQ29tcG9uZW50IHtcblxuICBASW5wdXQoKVxuICBoZWFkZXJUZXh0OiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gIH1cbn1cbiIsInt7aGVhZGVyVGV4dH19XG4iXX0=
@@ -1,60 +0,0 @@
1
- import { __awaiter, __decorate, __metadata } from "tslib";
2
- import { Component, Input } from '@angular/core';
3
- import { Command, TrackExternal } from '@coolon/pectin';
4
- import { DisposableComponent } from '../../../disposable-component';
5
- import { EditSession } from '../../edit-session';
6
- import * as i0 from "@angular/core";
7
- import * as i1 from "@angular/material/button";
8
- import * as i2 from "../../../icon/icon.component";
9
- import * as i3 from "@angular/common";
10
- import * as i4 from "../../../../directives/command.directive";
11
- export class EditRowControls extends DisposableComponent {
12
- constructor() {
13
- super();
14
- this.saveCommand = Command.create(() => __awaiter(this, void 0, void 0, function* () {
15
- const finished = yield this.editSession.saveCommand.execute();
16
- if (finished) {
17
- this.editSession.dispose();
18
- }
19
- }));
20
- this.cancelCommand = Command.create(() => {
21
- this.editSession.dispose();
22
- }).disableWhile(this.saveCommand.busy);
23
- }
24
- set editSession(session) {
25
- if (session) {
26
- session.form.disableWhile(this.saveCommand.busy);
27
- }
28
- this._session = session;
29
- }
30
- get editSession() {
31
- return this._session;
32
- }
33
- ngOnInit() {
34
- }
35
- get form() {
36
- var _a;
37
- return (_a = this.editSession) === null || _a === void 0 ? void 0 : _a.form;
38
- }
39
- }
40
- EditRowControls.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: EditRowControls, deps: [], target: i0.ɵɵFactoryTarget.Component });
41
- EditRowControls.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: EditRowControls, selector: "aup-row-editor-controls", inputs: { row: "row", editRowCommand: "editRowCommand", editSession: "editSession" }, usesInheritance: true, ngImport: i0, template: "<button *ngIf=\"!editSession\" mat-icon-button [pectinCommand]=\"editRowCommand\" class=\"edit-button\"><aup-icon icon=\"mat:edit\"></aup-icon></button>\n<button *ngIf=\"editSession\" mat-icon-button [pectinCommand]=\"saveCommand\"><aup-icon icon=\"mat:done\"></aup-icon></button>\n<button *ngIf=\"editSession\" mat-icon-button [pectinCommand]=\"cancelCommand\"><aup-icon icon=\"mat:clear\"></aup-icon></button>\n", styles: [":host{display:block;width:80px}.edit-button{visibility:hidden}:host-context(tr:hover) .edit-button{visibility:visible}\n"], components: [{ type: i1.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i2.IconComponent, selector: "aup-icon", inputs: ["icon"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.CommandDirective, selector: "[pectinCommand]", inputs: ["pectinCommand", "commandParameter"] }] });
42
- __decorate([
43
- TrackExternal(),
44
- __metadata("design:type", Command)
45
- ], EditRowControls.prototype, "editRowCommand", void 0);
46
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: EditRowControls, decorators: [{
47
- type: Component,
48
- args: [{
49
- selector: 'aup-row-editor-controls',
50
- templateUrl: './edit-row-controls.component.html',
51
- styleUrls: ['./edit-row-controls.component.scss']
52
- }]
53
- }], ctorParameters: function () { return []; }, propDecorators: { row: [{
54
- type: Input
55
- }], editRowCommand: [{
56
- type: Input
57
- }], editSession: [{
58
- type: Input
59
- }] } });
60
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdC1yb3ctY29udHJvbHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXVpLXBvd2VydXBzL3NyYy9saWIvY29tcG9uZW50cy90YWJsZXMvdGFibGUvZWRpdC1yb3ctY29udHJvbHMvZWRpdC1yb3ctY29udHJvbHMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXVpLXBvd2VydXBzL3NyYy9saWIvY29tcG9uZW50cy90YWJsZXMvdGFibGUvZWRpdC1yb3ctY29udHJvbHMvZWRpdC1yb3ctY29udHJvbHMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFvQyxNQUFNLGVBQWUsQ0FBQztBQUNuRixPQUFPLEVBQUUsT0FBTyxFQUFrQyxhQUFhLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4RixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNwRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7Ozs7OztBQVFqRCxNQUFNLE9BQU8sZUFBcUIsU0FBUSxtQkFBbUI7SUF5QjNEO1FBQ0UsS0FBSyxFQUFFLENBQUM7UUFDUixJQUFJLENBQUMsV0FBVyxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsR0FBUyxFQUFFO1lBQzNDLE1BQU0sUUFBUSxHQUFHLE1BQU0sSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsT0FBTyxFQUFFLENBQUE7WUFDN0QsSUFBSSxRQUFRLEVBQUU7Z0JBQ1osSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLEVBQUUsQ0FBQzthQUM1QjtRQUNILENBQUMsQ0FBQSxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsYUFBYSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFO1lBQ3ZDLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDN0IsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDekMsQ0FBQztJQXpCRCxJQUNJLFdBQVcsQ0FBQyxPQUF5QjtRQUN2QyxJQUFJLE9BQU8sRUFBRTtZQUNYLE9BQU8sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDbEQ7UUFDRCxJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQztJQUMxQixDQUFDO0lBQ0QsSUFBSSxXQUFXO1FBQ2IsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3ZCLENBQUM7SUFrQkQsUUFBUTtJQUNSLENBQUM7SUFFRCxJQUFJLElBQUk7O1FBQ04sT0FBTyxNQUFBLElBQUksQ0FBQyxXQUFXLDBDQUFFLElBQUksQ0FBQztJQUNoQyxDQUFDOzs2R0EzQ1UsZUFBZTtpR0FBZixlQUFlLDRLQ1g1QiwrWkFHQTtBRGVFO0lBREMsYUFBYSxFQUFFOzhCQUNBLE9BQU87dURBQU07NEZBUGxCLGVBQWU7a0JBTDNCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHlCQUF5QjtvQkFDbkMsV0FBVyxFQUFFLG9DQUFvQztvQkFDakQsU0FBUyxFQUFFLENBQUMsb0NBQW9DLENBQUM7aUJBQ2xEOzBFQUlDLEdBQUc7c0JBREYsS0FBSztnQkFLTixjQUFjO3NCQUZiLEtBQUs7Z0JBT0YsV0FBVztzQkFEZCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25DaGFuZ2VzLCBPbkluaXQsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1hbmQsIERpcnR5VHJhY2tpbmdGb3JtLCBGb3JtLCBUcmFjZSwgVHJhY2tFeHRlcm5hbCB9IGZyb20gJ0Bjb29sb24vcGVjdGluJztcbmltcG9ydCB7IERpc3Bvc2FibGVDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9kaXNwb3NhYmxlLWNvbXBvbmVudCc7XG5pbXBvcnQgeyBFZGl0U2Vzc2lvbiB9IGZyb20gJy4uLy4uL2VkaXQtc2Vzc2lvbic7XG5pbXBvcnQgeyBUYWJsZU1vZGVsIH0gZnJvbSAnLi4vdGFibGUtbW9kZWwnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhdXAtcm93LWVkaXRvci1jb250cm9scycsXG4gIHRlbXBsYXRlVXJsOiAnLi9lZGl0LXJvdy1jb250cm9scy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2VkaXQtcm93LWNvbnRyb2xzLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgRWRpdFJvd0NvbnRyb2xzPFJvdz4gZXh0ZW5kcyBEaXNwb3NhYmxlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBASW5wdXQoKVxuICByb3c6IFJvd1xuXG4gIEBJbnB1dCgpXG4gIEBUcmFja0V4dGVybmFsKClcbiAgZWRpdFJvd0NvbW1hbmQ6IENvbW1hbmQ8dm9pZD5cblxuICBwcml2YXRlIF9zZXNzaW9uOiBFZGl0U2Vzc2lvbjxSb3c+O1xuXG4gIEBJbnB1dCgpXG4gIHNldCBlZGl0U2Vzc2lvbihzZXNzaW9uOiBFZGl0U2Vzc2lvbjxSb3c+KSB7XG4gICAgaWYgKHNlc3Npb24pIHtcbiAgICAgIHNlc3Npb24uZm9ybS5kaXNhYmxlV2hpbGUodGhpcy5zYXZlQ29tbWFuZC5idXN5KTtcbiAgICB9XG4gICAgdGhpcy5fc2Vzc2lvbiA9IHNlc3Npb247XG4gIH1cbiAgZ2V0IGVkaXRTZXNzaW9uKCk6IEVkaXRTZXNzaW9uPFJvdz4ge1xuICAgIHJldHVybiB0aGlzLl9zZXNzaW9uO1xuICB9XG5cbiAgcmVhZG9ubHkgc2F2ZUNvbW1hbmQ6IENvbW1hbmQ8dm9pZD47XG4gIHJlYWRvbmx5IGNhbmNlbENvbW1hbmQ6IENvbW1hbmQ8dm9pZD47XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLnNhdmVDb21tYW5kID0gQ29tbWFuZC5jcmVhdGUoYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgZmluaXNoZWQgPSBhd2FpdCB0aGlzLmVkaXRTZXNzaW9uLnNhdmVDb21tYW5kLmV4ZWN1dGUoKVxuICAgICAgaWYgKGZpbmlzaGVkKSB7XG4gICAgICAgIHRoaXMuZWRpdFNlc3Npb24uZGlzcG9zZSgpO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHRoaXMuY2FuY2VsQ29tbWFuZCA9IENvbW1hbmQuY3JlYXRlKCgpID0+IHtcbiAgICAgIHRoaXMuZWRpdFNlc3Npb24uZGlzcG9zZSgpO1xuICAgIH0pLmRpc2FibGVXaGlsZSh0aGlzLnNhdmVDb21tYW5kLmJ1c3kpO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gIH1cblxuICBnZXQgZm9ybSgpOiBEaXJ0eVRyYWNraW5nRm9ybTxSb3c+IHtcbiAgICByZXR1cm4gdGhpcy5lZGl0U2Vzc2lvbj8uZm9ybTtcbiAgfVxuXG59XG4iLCI8YnV0dG9uICpuZ0lmPVwiIWVkaXRTZXNzaW9uXCIgbWF0LWljb24tYnV0dG9uIFtwZWN0aW5Db21tYW5kXT1cImVkaXRSb3dDb21tYW5kXCIgY2xhc3M9XCJlZGl0LWJ1dHRvblwiPjxhdXAtaWNvbiBpY29uPVwibWF0OmVkaXRcIj48L2F1cC1pY29uPjwvYnV0dG9uPlxuPGJ1dHRvbiAqbmdJZj1cImVkaXRTZXNzaW9uXCIgbWF0LWljb24tYnV0dG9uIFtwZWN0aW5Db21tYW5kXT1cInNhdmVDb21tYW5kXCI+PGF1cC1pY29uIGljb249XCJtYXQ6ZG9uZVwiPjwvYXVwLWljb24+PC9idXR0b24+XG48YnV0dG9uICpuZ0lmPVwiZWRpdFNlc3Npb25cIiBtYXQtaWNvbi1idXR0b24gW3BlY3RpbkNvbW1hbmRdPVwiY2FuY2VsQ29tbWFuZFwiPjxhdXAtaWNvbiBpY29uPVwibWF0OmNsZWFyXCI+PC9hdXAtaWNvbj48L2J1dHRvbj5cbiJdfQ==