@energycap/components 0.41.1-ECAP-26841-date-input-features.20250108-1012 → 0.42.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 (353) hide show
  1. package/{esm2020 → esm2022}/energycap-components.mjs +4 -4
  2. package/esm2022/lib/components.module.mjs +418 -0
  3. package/esm2022/lib/controls/banner/banner.component.mjs +109 -0
  4. package/esm2022/lib/controls/button/button.component.mjs +106 -0
  5. package/esm2022/lib/controls/button/copy-button-base.directive.mjs +67 -0
  6. package/{esm2020 → esm2022}/lib/controls/button/copy-button.directive.mjs +28 -28
  7. package/esm2022/lib/controls/button/copy-table-button.directive.mjs +43 -0
  8. package/esm2022/lib/controls/calendar/calendar-item.component.mjs +59 -0
  9. package/esm2022/lib/controls/calendar/calendar.component.mjs +200 -0
  10. package/esm2022/lib/controls/calendar/calendar.types.mjs +4 -0
  11. package/esm2022/lib/controls/checkbox/checkbox.component.mjs +140 -0
  12. package/{esm2020 → esm2022}/lib/controls/collapsible-toggle/collapsible-toggle.component.mjs +38 -38
  13. package/esm2022/lib/controls/combobox/combobox.component.mjs +879 -0
  14. package/esm2022/lib/controls/date-input/date-input.component.mjs +256 -0
  15. package/esm2022/lib/controls/dropdown/dropdown.component.mjs +243 -0
  16. package/esm2022/lib/controls/file-upload/file-upload.component.mjs +261 -0
  17. package/esm2022/lib/controls/form-control/form-control.component.mjs +104 -0
  18. package/esm2022/lib/controls/form-control-base.mjs +151 -0
  19. package/esm2022/lib/controls/form-control-label/form-control-label.component.mjs +136 -0
  20. package/esm2022/lib/controls/form-group/form-group.component.mjs +261 -0
  21. package/{esm2020 → esm2022}/lib/controls/help-popover/help-popover.component.mjs +31 -31
  22. package/esm2022/lib/controls/item-picker/item-picker.component.mjs +329 -0
  23. package/{esm2020 → esm2022}/lib/controls/link-button/link-button.component.mjs +11 -11
  24. package/esm2022/lib/controls/menu/menu.component.mjs +485 -0
  25. package/{esm2020 → esm2022}/lib/controls/navigation/link-item.mjs +1 -1
  26. package/esm2022/lib/controls/navigation/nav-group.mjs +39 -0
  27. package/esm2022/lib/controls/navigation/nav-item-active.directive.mjs +92 -0
  28. package/{esm2020 → esm2022}/lib/controls/navigation/nav-item.mjs +1 -1
  29. package/esm2022/lib/controls/numericbox/numericbox.component.mjs +372 -0
  30. package/esm2022/lib/controls/popover/popover.component.mjs +117 -0
  31. package/{esm2020 → esm2022}/lib/controls/radio-button/radio-button-option.mjs +2 -2
  32. package/esm2022/lib/controls/radio-button/radio-button.component.mjs +82 -0
  33. package/esm2022/lib/controls/select/select.component.mjs +88 -0
  34. package/esm2022/lib/controls/tabs/tabs.component.mjs +47 -0
  35. package/esm2022/lib/controls/textbox/textbox.component.mjs +155 -0
  36. package/esm2022/lib/core/cache.service.mjs +105 -0
  37. package/esm2022/lib/core/custom-validators.mjs +29 -0
  38. package/esm2022/lib/core/date-time-helper.mjs +220 -0
  39. package/esm2022/lib/core/error.service.mjs +61 -0
  40. package/esm2022/lib/core/router-helper.service.mjs +111 -0
  41. package/esm2022/lib/core/scroll.service.mjs +89 -0
  42. package/{esm2020 → esm2022}/lib/core/telemetry-tracker.service.mjs +16 -16
  43. package/{esm2020 → esm2022}/lib/core/telemetry.service.mjs +38 -38
  44. package/esm2022/lib/core/validation-message.service.mjs +185 -0
  45. package/{esm2020 → esm2022}/lib/core/validation-patterns.mjs +30 -30
  46. package/esm2022/lib/core/window.service.mjs +186 -0
  47. package/esm2022/lib/display/app-bar/app-bar.component.mjs +46 -0
  48. package/esm2022/lib/display/avatar/avatar.component.mjs +67 -0
  49. package/esm2022/lib/display/avatar/avatar.service.mjs +64 -0
  50. package/esm2022/lib/display/confirm/confirm.component.mjs +168 -0
  51. package/{esm2020 → esm2022}/lib/display/dialog/dialog-content.mjs +1 -1
  52. package/esm2022/lib/display/dialog/dialog-group/dialog-group.component.mjs +63 -0
  53. package/{esm2020 → esm2022}/lib/display/dialog/dialog-types.mjs +76 -76
  54. package/esm2022/lib/display/dialog/dialog.component.mjs +281 -0
  55. package/{esm2020 → esm2022}/lib/display/dialog/dialog.service.mjs +71 -71
  56. package/{esm2020 → esm2022}/lib/display/help/help-types.mjs +1 -1
  57. package/esm2022/lib/display/hierarchy/hierarchy-base.mjs +111 -0
  58. package/{esm2020 → esm2022}/lib/display/hierarchy/hierarchy-mocks.spec.mjs +53 -53
  59. package/esm2022/lib/display/hierarchy/hierarchy-tree/hierarchy-tree.component.mjs +61 -0
  60. package/esm2022/lib/display/item-display/item-display.component.mjs +81 -0
  61. package/esm2022/lib/display/json-display/json-display.component.mjs +47 -0
  62. package/esm2022/lib/display/resizable/resizable-base.mjs +120 -0
  63. package/{esm2020 → esm2022}/lib/display/resizable/resizable.component.mjs +52 -52
  64. package/{esm2020 → esm2022}/lib/display/spinner/spinner.component.mjs +12 -12
  65. package/esm2022/lib/display/splash/splash.component.mjs +42 -0
  66. package/{esm2020 → esm2022}/lib/display/splash/splash.service.mjs +35 -35
  67. package/{esm2020 → esm2022}/lib/display/table/resizable-column.component.mjs +20 -20
  68. package/esm2022/lib/display/table/resizable-table.directive.mjs +227 -0
  69. package/esm2022/lib/display/table/searchable-table.component.mjs +342 -0
  70. package/{esm2020 → esm2022}/lib/display/table/table-detail-row.component.mjs +19 -19
  71. package/esm2022/lib/display/table/table-locked-column.component.mjs +58 -0
  72. package/{esm2020 → esm2022}/lib/display/table/table-master-header-row.component.mjs +14 -14
  73. package/esm2022/lib/display/table/table-master-row.component.mjs +163 -0
  74. package/esm2022/lib/display/table/table-pagination.component.mjs +155 -0
  75. package/esm2022/lib/display/table/table-selectable-row.component.mjs +235 -0
  76. package/esm2022/lib/display/table/table.component.mjs +249 -0
  77. package/esm2022/lib/display/tags/tag.mjs +18 -0
  78. package/esm2022/lib/display/tags/tags.component.mjs +77 -0
  79. package/esm2022/lib/display/toast/toast/toast.component.mjs +77 -0
  80. package/{esm2020 → esm2022}/lib/display/toast/toast-types.mjs +7 -7
  81. package/{esm2020 → esm2022}/lib/display/toast/toast.service.mjs +35 -35
  82. package/esm2022/lib/display/toast/toaster/toaster.component.mjs +114 -0
  83. package/{esm2020 → esm2022}/lib/display/tooltip/tooltip.component.mjs +28 -28
  84. package/{esm2020 → esm2022}/lib/display/tooltip/tooltip.service.mjs +78 -78
  85. package/esm2022/lib/display/tooltip-directive/tooltip.directive.mjs +173 -0
  86. package/{esm2020 → esm2022}/lib/display/tour/tour-types.mjs +33 -33
  87. package/esm2022/lib/display/tour/tour.component.mjs +398 -0
  88. package/esm2022/lib/display/tour/tour.service.mjs +75 -0
  89. package/esm2022/lib/display/tree/tree.component.mjs +135 -0
  90. package/esm2022/lib/display/view-overlay/view-overlay.component.mjs +58 -0
  91. package/esm2022/lib/shared/directives/click-area-for/click-area-for.directive.mjs +32 -0
  92. package/esm2022/lib/shared/directives/if-viewport-width/if-viewport-width.directive.mjs +111 -0
  93. package/esm2022/lib/shared/directives/popup/popup-container.directive.mjs +166 -0
  94. package/esm2022/lib/shared/display/pipes/date-display.pipe.mjs +50 -0
  95. package/esm2022/lib/shared/display/pipes/highlight-text.pipe.mjs +30 -0
  96. package/esm2022/lib/shared/display/pipes/relative-date.pipe.mjs +62 -0
  97. package/esm2022/lib/shared/display/pipes/row-count.pipe.mjs +48 -0
  98. package/esm2022/lib/shared/display/pipes/time-display.pipe.mjs +41 -0
  99. package/esm2022/lib/shared/display.mjs +6 -0
  100. package/esm2022/lib/shared/form-group.helper.mjs +67 -0
  101. package/esm2022/lib/shared/json-helper.mjs +19 -0
  102. package/esm2022/lib/shared/lodash-helper.mjs +52 -0
  103. package/esm2022/lib/shared/page/page-base/page-base.component.mjs +387 -0
  104. package/{esm2020 → esm2022}/lib/shared/page/page-statuses.mjs +22 -22
  105. package/{esm2020 → esm2022}/lib/shared/page/page-title/page-title.component.mjs +23 -23
  106. package/esm2022/lib/shared/page/page-view/page-view.component.mjs +147 -0
  107. package/{esm2020 → esm2022}/lib/shared/testing/copy-button-base-test-injector-factory.spec.mjs +16 -16
  108. package/{esm2020 → esm2022}/lib/shared/testing/hierarchy-base-test-injector-factory.spec.mjs +16 -16
  109. package/{esm2020 → esm2022}/lib/shared/testing/page-base-component-test-helper.spec.mjs +37 -37
  110. package/esm2022/lib/shared/testing/page-base-component-test-injector-factory.spec.mjs +98 -0
  111. package/{esm2020 → esm2022}/lib/shared/testing/public-mocks.spec.mjs +148 -148
  112. package/{esm2020 → esm2022}/lib/shared/testing/spy-factory.spec.mjs +39 -39
  113. package/{esm2020 → esm2022}/lib/shared/testing/translation-mocks.spec.mjs +56 -56
  114. package/{esm2020 → esm2022}/lib/shared/user-preference.service.mjs +17 -17
  115. package/esm2022/lib/shared/wizard/wizard-base/wizard-base.component.mjs +246 -0
  116. package/{esm2020 → esm2022}/lib/shared/wizard/wizard-buttons/wizard-buttons.component.mjs +68 -68
  117. package/{esm2020 → esm2022}/lib/shared/wizard/wizard-progress/wizard-progress.component.mjs +18 -18
  118. package/esm2022/public-api.mjs +115 -0
  119. package/{fesm2020 → fesm2022}/energycap-components.mjs +11819 -12972
  120. package/fesm2022/energycap-components.mjs.map +1 -0
  121. package/index.d.ts +5 -5
  122. package/lib/components.module.d.ts +91 -92
  123. package/lib/controls/banner/banner.component.d.ts +50 -50
  124. package/lib/controls/button/button.component.d.ts +78 -78
  125. package/lib/controls/button/copy-button-base.directive.d.ts +20 -20
  126. package/lib/controls/button/copy-button.directive.d.ts +14 -14
  127. package/lib/controls/button/copy-table-button.directive.d.ts +19 -19
  128. package/lib/controls/calendar/calendar-item.component.d.ts +17 -22
  129. package/lib/controls/calendar/calendar.component.d.ts +54 -52
  130. package/lib/controls/calendar/calendar.types.d.ts +7 -11
  131. package/lib/controls/checkbox/checkbox.component.d.ts +65 -65
  132. package/lib/controls/collapsible-toggle/collapsible-toggle.component.d.ts +25 -25
  133. package/lib/controls/combobox/combobox.component.d.ts +418 -418
  134. package/lib/controls/date-input/date-input.component.d.ts +80 -115
  135. package/lib/controls/dropdown/dropdown.component.d.ts +161 -161
  136. package/lib/controls/file-upload/file-upload.component.d.ts +124 -124
  137. package/lib/controls/form-control/form-control.component.d.ts +30 -28
  138. package/lib/controls/form-control-base.d.ts +110 -110
  139. package/lib/controls/form-control-label/form-control-label.component.d.ts +73 -73
  140. package/lib/controls/form-group/form-group.component.d.ts +105 -105
  141. package/lib/controls/help-popover/help-popover.component.d.ts +11 -11
  142. package/lib/controls/item-picker/item-picker.component.d.ts +164 -164
  143. package/lib/controls/link-button/link-button.component.d.ts +5 -5
  144. package/lib/controls/menu/menu.component.d.ts +255 -255
  145. package/lib/controls/navigation/link-item.d.ts +32 -32
  146. package/lib/controls/navigation/nav-group.d.ts +18 -18
  147. package/lib/controls/navigation/nav-item-active.directive.d.ts +42 -42
  148. package/lib/controls/navigation/nav-item.d.ts +31 -31
  149. package/lib/controls/numericbox/numericbox.component.d.ts +148 -148
  150. package/lib/controls/popover/popover.component.d.ts +51 -51
  151. package/lib/controls/radio-button/radio-button-option.d.ts +19 -19
  152. package/lib/controls/radio-button/radio-button.component.d.ts +53 -53
  153. package/lib/controls/select/select.component.d.ts +44 -44
  154. package/lib/controls/tabs/tabs.component.d.ts +30 -30
  155. package/lib/controls/textbox/textbox.component.d.ts +107 -107
  156. package/lib/core/cache.service.d.ts +33 -33
  157. package/lib/core/custom-validators.d.ts +20 -20
  158. package/lib/core/date-time-helper.d.ts +101 -101
  159. package/lib/core/error.service.d.ts +20 -20
  160. package/lib/core/router-helper.service.d.ts +48 -48
  161. package/lib/core/scroll.service.d.ts +36 -36
  162. package/lib/core/telemetry-tracker.service.d.ts +13 -13
  163. package/lib/core/telemetry.service.d.ts +31 -31
  164. package/lib/core/validation-message.service.d.ts +26 -26
  165. package/lib/core/validation-patterns.d.ts +22 -22
  166. package/lib/core/window.service.d.ts +116 -116
  167. package/lib/display/app-bar/app-bar.component.d.ts +20 -20
  168. package/lib/display/avatar/avatar.component.d.ts +35 -35
  169. package/lib/display/avatar/avatar.service.d.ts +24 -24
  170. package/lib/display/confirm/confirm.component.d.ts +123 -123
  171. package/lib/display/dialog/dialog-content.d.ts +19 -19
  172. package/lib/display/dialog/dialog-group/dialog-group.component.d.ts +32 -32
  173. package/lib/display/dialog/dialog-types.d.ts +130 -130
  174. package/lib/display/dialog/dialog.component.d.ts +120 -120
  175. package/lib/display/dialog/dialog.service.d.ts +48 -48
  176. package/lib/display/help/help-types.d.ts +33 -33
  177. package/lib/display/hierarchy/hierarchy-base.d.ts +97 -97
  178. package/lib/display/hierarchy/hierarchy-mocks.spec.d.ts +53 -53
  179. package/lib/display/hierarchy/hierarchy-tree/hierarchy-tree.component.d.ts +34 -34
  180. package/lib/display/item-display/item-display.component.d.ts +43 -43
  181. package/lib/display/json-display/json-display.component.d.ts +16 -16
  182. package/lib/display/resizable/resizable-base.d.ts +67 -67
  183. package/lib/display/resizable/resizable.component.d.ts +31 -31
  184. package/lib/display/spinner/spinner.component.d.ts +5 -5
  185. package/lib/display/splash/splash.component.d.ts +16 -16
  186. package/lib/display/splash/splash.service.d.ts +22 -22
  187. package/lib/display/table/resizable-column.component.d.ts +10 -10
  188. package/lib/display/table/resizable-table.directive.d.ts +93 -93
  189. package/lib/display/table/searchable-table.component.d.ts +206 -206
  190. package/lib/display/table/table-detail-row.component.d.ts +8 -8
  191. package/lib/display/table/table-locked-column.component.d.ts +20 -20
  192. package/lib/display/table/table-master-header-row.component.d.ts +9 -9
  193. package/lib/display/table/table-master-row.component.d.ts +113 -113
  194. package/lib/display/table/table-pagination.component.d.ts +91 -91
  195. package/lib/display/table/table-selectable-row.component.d.ts +102 -102
  196. package/lib/display/table/table.component.d.ts +121 -121
  197. package/lib/display/tags/tag.d.ts +18 -18
  198. package/lib/display/tags/tags.component.d.ts +48 -48
  199. package/lib/display/toast/toast/toast.component.d.ts +23 -23
  200. package/lib/display/toast/toast-types.d.ts +24 -24
  201. package/lib/display/toast/toast.service.d.ts +20 -20
  202. package/lib/display/toast/toaster/toaster.component.d.ts +35 -35
  203. package/lib/display/tooltip/tooltip.component.d.ts +70 -70
  204. package/lib/display/tooltip/tooltip.service.d.ts +16 -16
  205. package/lib/display/tooltip-directive/tooltip.directive.d.ts +44 -44
  206. package/lib/display/tour/tour-types.d.ts +70 -70
  207. package/lib/display/tour/tour.component.d.ts +147 -147
  208. package/lib/display/tour/tour.service.d.ts +38 -38
  209. package/lib/display/tree/tree.component.d.ts +75 -75
  210. package/lib/display/view-overlay/view-overlay.component.d.ts +38 -38
  211. package/lib/shared/directives/click-area-for/click-area-for.directive.d.ts +14 -14
  212. package/lib/shared/directives/if-viewport-width/if-viewport-width.directive.d.ts +60 -60
  213. package/lib/shared/directives/popup/popup-container.directive.d.ts +101 -101
  214. package/lib/shared/display/pipes/date-display.pipe.d.ts +21 -21
  215. package/lib/shared/display/pipes/highlight-text.pipe.d.ts +9 -9
  216. package/lib/shared/display/pipes/relative-date.pipe.d.ts +36 -36
  217. package/lib/shared/display/pipes/row-count.pipe.d.ts +23 -23
  218. package/lib/shared/display/pipes/time-display.pipe.d.ts +18 -18
  219. package/lib/shared/display.d.ts +42 -42
  220. package/lib/shared/form-group.helper.d.ts +31 -31
  221. package/lib/shared/json-helper.d.ts +7 -7
  222. package/lib/shared/lodash-helper.d.ts +18 -18
  223. package/lib/shared/page/page-base/page-base.component.d.ts +259 -259
  224. package/lib/shared/page/page-statuses.d.ts +13 -13
  225. package/lib/shared/page/page-title/page-title.component.d.ts +9 -9
  226. package/lib/shared/page/page-view/page-view.component.d.ts +102 -102
  227. package/lib/shared/testing/copy-button-base-test-injector-factory.spec.d.ts +4 -4
  228. package/lib/shared/testing/hierarchy-base-test-injector-factory.spec.d.ts +4 -4
  229. package/lib/shared/testing/page-base-component-test-helper.spec.d.ts +30 -30
  230. package/lib/shared/testing/page-base-component-test-injector-factory.spec.d.ts +28 -28
  231. package/lib/shared/testing/public-mocks.spec.d.ts +90 -90
  232. package/lib/shared/testing/spy-factory.spec.d.ts +27 -27
  233. package/lib/shared/testing/translation-mocks.spec.d.ts +30 -30
  234. package/lib/shared/user-preference.service.d.ts +13 -13
  235. package/lib/shared/wizard/wizard-base/wizard-base.component.d.ts +134 -134
  236. package/lib/shared/wizard/wizard-buttons/wizard-buttons.component.d.ts +27 -27
  237. package/lib/shared/wizard/wizard-progress/wizard-progress.component.d.ts +10 -10
  238. package/package.json +12 -18
  239. package/public-api.d.ts +111 -113
  240. package/schematics/rxjs-7-upgrade/index.d.ts +3 -3
  241. package/schematics/rxjs-7-upgrade/index.js +67 -67
  242. package/schematics/rxjs-7-upgrade/index.js.map +1 -1
  243. package/schematics/rxjs-7-upgrade/schema.d.ts +4 -4
  244. package/schematics/rxjs-7-upgrade/schema.js +2 -2
  245. package/schematics/utilities/typescript.d.ts +7 -7
  246. package/schematics/utilities/typescript.js +41 -41
  247. package/schematics/utilities/workspace.d.ts +8 -8
  248. package/schematics/utilities/workspace.js +71 -71
  249. package/schematics/utilities/workspace.js.map +1 -1
  250. package/src/assets/locales/en_US.json +1 -9
  251. package/esm2020/lib/components.module.mjs +0 -423
  252. package/esm2020/lib/controls/banner/banner.component.mjs +0 -109
  253. package/esm2020/lib/controls/button/button.component.mjs +0 -106
  254. package/esm2020/lib/controls/button/copy-button-base.directive.mjs +0 -67
  255. package/esm2020/lib/controls/button/copy-table-button.directive.mjs +0 -43
  256. package/esm2020/lib/controls/calendar/calendar-item.component.mjs +0 -91
  257. package/esm2020/lib/controls/calendar/calendar.component.mjs +0 -248
  258. package/esm2020/lib/controls/calendar/calendar.types.mjs +0 -2
  259. package/esm2020/lib/controls/checkbox/checkbox.component.mjs +0 -140
  260. package/esm2020/lib/controls/combobox/combobox.component.mjs +0 -879
  261. package/esm2020/lib/controls/date-input/date-input-selection-strategies/date-input-selection-strategy-base.mjs +0 -57
  262. package/esm2020/lib/controls/date-input/date-input-selection-strategies/day-selection-strategy.mjs +0 -62
  263. package/esm2020/lib/controls/date-input/date-input-selection-strategies/last-28-days-selection-strategy.mjs +0 -100
  264. package/esm2020/lib/controls/date-input/date-input-selection-strategies/last-7-days-selection-strategy.mjs +0 -101
  265. package/esm2020/lib/controls/date-input/date-input-selection-strategies/month-selection-strategy.mjs +0 -76
  266. package/esm2020/lib/controls/date-input/date-input-selection-strategies/quarter-selection-strategy.mjs +0 -79
  267. package/esm2020/lib/controls/date-input/date-input-selection-strategies/range-selection-strategy.mjs +0 -210
  268. package/esm2020/lib/controls/date-input/date-input-selection-strategies/year-selection-strategy.mjs +0 -81
  269. package/esm2020/lib/controls/date-input/date-input.component.mjs +0 -463
  270. package/esm2020/lib/controls/date-input/date-input.types.mjs +0 -44
  271. package/esm2020/lib/controls/dropdown/dropdown.component.mjs +0 -243
  272. package/esm2020/lib/controls/file-upload/file-upload.component.mjs +0 -261
  273. package/esm2020/lib/controls/form-control/form-control.component.mjs +0 -98
  274. package/esm2020/lib/controls/form-control-base.mjs +0 -151
  275. package/esm2020/lib/controls/form-control-label/form-control-label.component.mjs +0 -136
  276. package/esm2020/lib/controls/form-group/form-group.component.mjs +0 -261
  277. package/esm2020/lib/controls/item-picker/item-picker.component.mjs +0 -329
  278. package/esm2020/lib/controls/menu/menu.component.mjs +0 -485
  279. package/esm2020/lib/controls/navigation/nav-group.mjs +0 -39
  280. package/esm2020/lib/controls/navigation/nav-item-active.directive.mjs +0 -92
  281. package/esm2020/lib/controls/numericbox/numericbox.component.mjs +0 -372
  282. package/esm2020/lib/controls/popover/popover.component.mjs +0 -117
  283. package/esm2020/lib/controls/radio-button/radio-button.component.mjs +0 -82
  284. package/esm2020/lib/controls/select/select.component.mjs +0 -88
  285. package/esm2020/lib/controls/tabs/tabs.component.mjs +0 -47
  286. package/esm2020/lib/controls/textbox/textbox.component.mjs +0 -155
  287. package/esm2020/lib/core/cache.service.mjs +0 -105
  288. package/esm2020/lib/core/custom-validators.mjs +0 -29
  289. package/esm2020/lib/core/date-time-helper.mjs +0 -228
  290. package/esm2020/lib/core/error.service.mjs +0 -61
  291. package/esm2020/lib/core/router-helper.service.mjs +0 -111
  292. package/esm2020/lib/core/scroll.service.mjs +0 -89
  293. package/esm2020/lib/core/validation-message.service.mjs +0 -185
  294. package/esm2020/lib/core/window.service.mjs +0 -186
  295. package/esm2020/lib/display/app-bar/app-bar.component.mjs +0 -46
  296. package/esm2020/lib/display/avatar/avatar.component.mjs +0 -67
  297. package/esm2020/lib/display/avatar/avatar.service.mjs +0 -64
  298. package/esm2020/lib/display/confirm/confirm.component.mjs +0 -168
  299. package/esm2020/lib/display/dialog/dialog-group/dialog-group.component.mjs +0 -63
  300. package/esm2020/lib/display/dialog/dialog.component.mjs +0 -281
  301. package/esm2020/lib/display/hierarchy/hierarchy-base.mjs +0 -111
  302. package/esm2020/lib/display/hierarchy/hierarchy-tree/hierarchy-tree.component.mjs +0 -61
  303. package/esm2020/lib/display/item-display/item-display.component.mjs +0 -81
  304. package/esm2020/lib/display/json-display/json-display.component.mjs +0 -47
  305. package/esm2020/lib/display/resizable/resizable-base.mjs +0 -120
  306. package/esm2020/lib/display/splash/splash.component.mjs +0 -42
  307. package/esm2020/lib/display/table/resizable-table.directive.mjs +0 -227
  308. package/esm2020/lib/display/table/searchable-table.component.mjs +0 -342
  309. package/esm2020/lib/display/table/table-locked-column.component.mjs +0 -58
  310. package/esm2020/lib/display/table/table-master-row.component.mjs +0 -163
  311. package/esm2020/lib/display/table/table-pagination.component.mjs +0 -155
  312. package/esm2020/lib/display/table/table-selectable-row.component.mjs +0 -235
  313. package/esm2020/lib/display/table/table.component.mjs +0 -249
  314. package/esm2020/lib/display/tags/tag.mjs +0 -18
  315. package/esm2020/lib/display/tags/tags.component.mjs +0 -77
  316. package/esm2020/lib/display/toast/toast/toast.component.mjs +0 -77
  317. package/esm2020/lib/display/toast/toaster/toaster.component.mjs +0 -114
  318. package/esm2020/lib/display/tooltip-directive/tooltip.directive.mjs +0 -173
  319. package/esm2020/lib/display/tour/tour.component.mjs +0 -398
  320. package/esm2020/lib/display/tour/tour.service.mjs +0 -75
  321. package/esm2020/lib/display/tree/tree.component.mjs +0 -135
  322. package/esm2020/lib/display/view-overlay/view-overlay.component.mjs +0 -58
  323. package/esm2020/lib/shared/directives/click-area-for/click-area-for.directive.mjs +0 -32
  324. package/esm2020/lib/shared/directives/if-viewport-width/if-viewport-width.directive.mjs +0 -111
  325. package/esm2020/lib/shared/directives/keyboard-nav-container/keyboard-nav-container.directive.mjs +0 -100
  326. package/esm2020/lib/shared/directives/popup/popup-container.directive.mjs +0 -163
  327. package/esm2020/lib/shared/display/pipes/date-display.pipe.mjs +0 -50
  328. package/esm2020/lib/shared/display/pipes/highlight-text.pipe.mjs +0 -30
  329. package/esm2020/lib/shared/display/pipes/relative-date.pipe.mjs +0 -62
  330. package/esm2020/lib/shared/display/pipes/row-count.pipe.mjs +0 -48
  331. package/esm2020/lib/shared/display/pipes/time-display.pipe.mjs +0 -41
  332. package/esm2020/lib/shared/display.mjs +0 -6
  333. package/esm2020/lib/shared/form-group.helper.mjs +0 -67
  334. package/esm2020/lib/shared/json-helper.mjs +0 -19
  335. package/esm2020/lib/shared/lodash-helper.mjs +0 -51
  336. package/esm2020/lib/shared/page/page-base/page-base.component.mjs +0 -387
  337. package/esm2020/lib/shared/page/page-view/page-view.component.mjs +0 -147
  338. package/esm2020/lib/shared/testing/page-base-component-test-injector-factory.spec.mjs +0 -98
  339. package/esm2020/lib/shared/wizard/wizard-base/wizard-base.component.mjs +0 -246
  340. package/esm2020/public-api.mjs +0 -117
  341. package/fesm2015/energycap-components.mjs +0 -13371
  342. package/fesm2015/energycap-components.mjs.map +0 -1
  343. package/fesm2020/energycap-components.mjs.map +0 -1
  344. package/lib/controls/date-input/date-input-selection-strategies/date-input-selection-strategy-base.d.ts +0 -42
  345. package/lib/controls/date-input/date-input-selection-strategies/day-selection-strategy.d.ts +0 -21
  346. package/lib/controls/date-input/date-input-selection-strategies/last-28-days-selection-strategy.d.ts +0 -21
  347. package/lib/controls/date-input/date-input-selection-strategies/last-7-days-selection-strategy.d.ts +0 -21
  348. package/lib/controls/date-input/date-input-selection-strategies/month-selection-strategy.d.ts +0 -18
  349. package/lib/controls/date-input/date-input-selection-strategies/quarter-selection-strategy.d.ts +0 -18
  350. package/lib/controls/date-input/date-input-selection-strategies/range-selection-strategy.d.ts +0 -21
  351. package/lib/controls/date-input/date-input-selection-strategies/year-selection-strategy.d.ts +0 -20
  352. package/lib/controls/date-input/date-input.types.d.ts +0 -62
  353. package/lib/shared/directives/keyboard-nav-container/keyboard-nav-container.directive.d.ts +0 -23
@@ -0,0 +1,200 @@
1
+ import { ChangeDetectionStrategy, Component, EventEmitter, HostBinding, Input, Output } from '@angular/core';
2
+ import { range } from 'lodash';
3
+ import moment from 'moment';
4
+ import { DateTimeHelper } from '../../core/date-time-helper';
5
+ import { isCalendarSelectionSingleDate } from './calendar.types';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "@angular/common";
8
+ import * as i2 from "./calendar-item.component";
9
+ export class CalendarComponent {
10
+ constructor() {
11
+ this.id = 'calendar';
12
+ this.selection = null;
13
+ this.selectionChange = new EventEmitter();
14
+ this.minDate = DateTimeHelper.minDatePickerDate;
15
+ this.maxDate = DateTimeHelper.maxDatePickerDate;
16
+ this.focusOutStart = new EventEmitter();
17
+ this.focusOutEnd = new EventEmitter();
18
+ /** Array of calendar items to display in the calendar grid. */
19
+ this.calendarItems = [];
20
+ /** Determines the current view mode of the calendar. */
21
+ this.view = 'day';
22
+ /** TrackBy function for the calendar items. This avoids re-drawing calendar items if a date is shared between view updates */
23
+ this.calendarItemTrackByDate = (index, item) => item.date.toISOString();
24
+ this.disablePreviousButton = false;
25
+ this.disableNextButton = false;
26
+ // By default, the active date is today.
27
+ // This is replaced with the date of the selection if one is provided on init.
28
+ this.activeDate = new Date();
29
+ // Using moment here to get the weekday labels so they are localized.
30
+ this.weekDays = moment.weekdaysShort().map(d => d.slice(0, 1));
31
+ }
32
+ ngOnChanges(changes) {
33
+ if (changes.selection && this.selection) {
34
+ // Only need to update the view if the selection is out of view.
35
+ if (isCalendarSelectionSingleDate(this.selection) &&
36
+ !this.isDateInView(this.selection) &&
37
+ moment(this.selection).isBetween(this.minDate, this.maxDate, 'day', '[]')) {
38
+ this.drawCalendar('day', this.selection);
39
+ }
40
+ else {
41
+ // TODO ECAP-26841: determine the active date for a range selection and draw the calendar
42
+ }
43
+ }
44
+ }
45
+ ngOnInit() {
46
+ if (!this.calendarItems.length) {
47
+ this.drawCalendar('day');
48
+ }
49
+ }
50
+ onItemSelected(item) {
51
+ if (this.view === 'day') {
52
+ this.selection = item.date;
53
+ this.selectionChange.emit(this.selection);
54
+ }
55
+ if (this.view === 'month') {
56
+ this.drawCalendar('day', item.date);
57
+ }
58
+ if (this.view === 'year') {
59
+ this.drawCalendar('month', item.date);
60
+ }
61
+ }
62
+ onNextClick() {
63
+ // If we're in day view, we're incrementing by month
64
+ // In both month and year views we're incrementing by year
65
+ // In year view, we're moving by 16 years at a time
66
+ const unit = this.view === 'day' ? 'month' : 'year';
67
+ // In year view, we're moving by 16 years at a time. Otherwise we're just moving by 1 month/year.
68
+ const count = this.view === 'year' ? 16 : 1;
69
+ const goToDate = moment(this.activeDate).add(count, unit).toDate();
70
+ this.drawCalendar(this.view, goToDate);
71
+ }
72
+ onPreviousClick() {
73
+ // If we're in day view, we're incrementing by month
74
+ // In both month and year views we're incrementing years
75
+ const unit = this.view === 'day' ? 'month' : 'year';
76
+ // In year view, we're moving by 16 years at a time. Otherwise we're just moving by 1 month/year.
77
+ const count = this.view === 'year' ? 16 : 1;
78
+ const goToDate = moment(this.activeDate).subtract(count, unit).toDate();
79
+ this.drawCalendar(this.view, goToDate);
80
+ }
81
+ /** Switches the calendar to month view. */
82
+ onMonthClick() {
83
+ this.drawCalendar('month');
84
+ }
85
+ /** Switches the calendar to year view. */
86
+ onYearClick() {
87
+ this.drawCalendar('year');
88
+ }
89
+ onFirstItemKeydown(event) {
90
+ // If the user is tabbing backwards from the first item, emit the focusOutStart event.
91
+ if (event.key === 'Tab' && event.shiftKey) {
92
+ this.focusOutStart.emit(event);
93
+ }
94
+ }
95
+ onLastItemKeydown(event) {
96
+ // If the user is tabbing forwards from the last item, emit the focusOutEnd event.
97
+ if (event.key === 'Tab' && !event.shiftKey) {
98
+ this.focusOutEnd.emit(event);
99
+ }
100
+ }
101
+ drawCalendar(view, goTo) {
102
+ // If a goTo date is provided, update the active date so we know what to increment on next/previous clicks.
103
+ if (goTo) {
104
+ this.activeDate = goTo;
105
+ }
106
+ this.month = moment(this.activeDate).format('MMM');
107
+ this.year = moment(this.activeDate).format('YYYY');
108
+ this.view = view;
109
+ this.calendarItems = this.getCalendarItems(view, this.activeDate);
110
+ const startYear = this.calendarItems[0].date < this.minDate ? this.minDate : this.calendarItems[0].date;
111
+ const endYear = this.calendarItems[this.calendarItems.length - 1].date > this.maxDate ? this.maxDate : this.calendarItems[this.calendarItems.length - 1].date;
112
+ this.yearRange = `${moment(startYear).format('YYYY')}&ndash;${moment(endYear).format('YYYY')}`;
113
+ // If the active date is less than the min date or the min date is in view, disable the previous button.
114
+ if (this.activeDate < this.minDate || this.isDateInView(this.minDate)) {
115
+ this.disablePreviousButton = true;
116
+ }
117
+ else {
118
+ this.disablePreviousButton = false;
119
+ }
120
+ // If the active date is greater than the max date or the max date is in view, disable the next button.
121
+ if (this.activeDate > this.maxDate || this.isDateInView(this.maxDate)) {
122
+ this.disableNextButton = true;
123
+ }
124
+ else {
125
+ this.disableNextButton = false;
126
+ }
127
+ }
128
+ getCalendarItems(view, activeDate) {
129
+ switch (view) {
130
+ case 'day': return this.getDayViewItems(activeDate);
131
+ case 'month': return this.getMonthViewItems(activeDate);
132
+ case 'year': return this.getYearViewItems(activeDate);
133
+ }
134
+ }
135
+ getDayViewItems(activeDate) {
136
+ // 6 rows of 7 days = 42 days
137
+ return range(0, 42).map(i => {
138
+ // Use the start of the week of the first day of the month.
139
+ // This pads out the first week with any days from the previous month.
140
+ const date = moment(activeDate).startOf('month').startOf('week').add(i, 'day');
141
+ return {
142
+ date: date.toDate(),
143
+ label: date.format('D')
144
+ };
145
+ });
146
+ }
147
+ getMonthViewItems(activeDate) {
148
+ return range(0, 12).map(i => {
149
+ const date = moment(activeDate).startOf('year').add(i, 'month');
150
+ return {
151
+ date: date.toDate(),
152
+ label: date.format('MMM')
153
+ };
154
+ });
155
+ }
156
+ getYearViewItems(activeDate) {
157
+ // 4x4 grid of years = 16 years
158
+ return range(0, 16).map(i => {
159
+ // Put the current active year at the beginning of the 3rd row.
160
+ const date = moment(activeDate).startOf('year').subtract(8, 'year').add(i, 'year');
161
+ return {
162
+ date: date.toDate(),
163
+ label: date.format('YYYY')
164
+ };
165
+ });
166
+ }
167
+ /** Returns true if the date is within the current calendar view */
168
+ isDateInView(date) {
169
+ if (!this.calendarItems.length) {
170
+ return false;
171
+ }
172
+ const viewStart = this.calendarItems[0].date;
173
+ const viewEnd = this.calendarItems[this.calendarItems.length - 1].date;
174
+ return date >= viewStart && date <= viewEnd;
175
+ }
176
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CalendarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
177
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: CalendarComponent, selector: "ec-calendar", inputs: { id: "id", selection: "selection", minDate: "minDate", maxDate: "maxDate" }, outputs: { selectionChange: "selectionChange", focusOutStart: "focusOutStart", focusOutEnd: "focusOutEnd" }, host: { properties: { "attr.id": "this.id" } }, usesOnChanges: true, ngImport: i0, template: "<header class=\"d-flex align-items-center mb-2\">\r\n <button id=\"{{id}}_prev_button\"\r\n class=\"mr-auto\"\r\n (click)=\"onPreviousClick()\"\r\n (keydown)=\"!disablePreviousButton ? onFirstItemKeydown($event) : undefined\"\r\n [disabled]=\"disablePreviousButton\">\r\n <i class=\"ec-icon icon-angle-down rotate-90\"></i>\r\n </button>\r\n\r\n <button *ngIf=\"view === 'day'\"\r\n id=\"{{id}}_month_button\"\r\n class=\"text-body-1 font-weight-bold\"\r\n (click)=\"onMonthClick()\"\r\n (keydown)=\"disablePreviousButton ? onFirstItemKeydown($event) : undefined\">\r\n {{month}}\r\n </button>\r\n\r\n <button *ngIf=\"view !== 'year'\"\r\n id=\"{{id}}_year_button\"\r\n class=\"text-body-1 font-weight-bold\"\r\n (click)=\"onYearClick()\"\r\n (keydown)=\"disablePreviousButton && view !== 'day' ? onFirstItemKeydown($event) : undefined\">\r\n {{year}}\r\n </button>\r\n\r\n <div id=\"{{id}}_year_range\"\r\n *ngIf=\"view === 'year'\"\r\n class=\"text-body-1 font-weight-bold\"\r\n [innerHTML]=\"yearRange\">\r\n </div>\r\n\r\n <button id=\"{{id}}_next_button\"\r\n class=\"ml-auto\"\r\n (click)=\"onNextClick()\"\r\n [disabled]=\"disableNextButton\"\r\n (keydown)=\"disablePreviousButton && view === 'year' ? onFirstItemKeydown($event) : undefined\">\r\n <i class=\"ec-icon icon-angle-down rotate-270\"></i>\r\n </button>\r\n</header>\r\n\r\n<ul class=\"px-1 {{view}}-view\">\r\n <ng-container *ngIf=\"view === 'day'\">\r\n <li *ngFor=\"let day of weekDays\"\r\n class=\"d-flex align-items-center justify-content-center text-heading-3\">\r\n {{day}}\r\n </li>\r\n </ng-container>\r\n\r\n <li *ngFor=\"let item of calendarItems; last as isLast; trackBy: calendarItemTrackByDate;\">\r\n <button id=\"{{id}}_item_{{item.date | date:'MM_dd_yyyy'}}\"\r\n ec-calendar-item\r\n [item]=\"item\"\r\n [activeDate]=\"activeDate\"\r\n [selection]=\"selection\"\r\n [view]=\"view\"\r\n (click)=\"onItemSelected(item)\"\r\n (keydown)=\"isLast ? onLastItemKeydown($event) : undefined\"\r\n [hidden]=\"item.date < minDate || item.date > maxDate\">\r\n </button>\r\n </li>\r\n</ul>", styles: [":host{display:inline-block}button{font-size:var(--ec-font-size-action);height:2rem;line-height:1.25rem;padding:.3125rem .5rem;border:0;border-radius:var(--ec-border-radius);display:flex;align-items:center;justify-content:center;cursor:pointer;background-color:transparent}button .label{display:flex;align-items:center;justify-content:center;white-space:nowrap;flex:auto}button .ec-icon{flex:none}button .ec-icon+.label{flex:none;margin-left:.25rem}button.has-badge{padding-right:.0625rem}button:focus{outline:none;position:relative;z-index:1}button:disabled{background-color:var(--ec-background-color-disabled);border:1px solid var(--ec-form-control-border-color-disabled);color:var(--ec-color-disabled-dark);opacity:var(--ec-form-control-opacity-disabled);cursor:default}button:disabled{background-color:transparent;border-color:transparent;color:var(--ec-color-hint-dark);opacity:1;--ec-color-icon: var(--ec-color-hint-dark)}button:hover:not(:disabled){background-color:var(--ec-background-color-hover)}button:active:not(:disabled){background-color:var(--ec-background-color-selected);font-weight:700}button:focus:not(:disabled){box-shadow:var(--ec-button-box-shadow-active, 0 0 0 2px var(--ec-border-color-focus))}ul{list-style:none;padding:0;margin:0;display:grid;align-items:stretch;justify-items:stretch}button[ec-calendar-item]{height:100%;width:100%}ul.day-view{grid-template-columns:repeat(7,2rem);grid-auto-rows:1.75rem;row-gap:.25rem}ul.month-view{grid-template-columns:repeat(3,4.67rem);grid-auto-rows:3.25rem;row-gap:.25rem}ul.year-view{grid-template-columns:repeat(4,3.5rem);grid-auto-rows:3.25rem;row-gap:.25rem}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.CalendarItemComponent, selector: "button[ec-calendar-item]", inputs: ["item", "activeDate", "selection", "view"] }, { kind: "pipe", type: i1.DatePipe, name: "date" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
178
+ }
179
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CalendarComponent, decorators: [{
180
+ type: Component,
181
+ args: [{ selector: 'ec-calendar', changeDetection: ChangeDetectionStrategy.OnPush, template: "<header class=\"d-flex align-items-center mb-2\">\r\n <button id=\"{{id}}_prev_button\"\r\n class=\"mr-auto\"\r\n (click)=\"onPreviousClick()\"\r\n (keydown)=\"!disablePreviousButton ? onFirstItemKeydown($event) : undefined\"\r\n [disabled]=\"disablePreviousButton\">\r\n <i class=\"ec-icon icon-angle-down rotate-90\"></i>\r\n </button>\r\n\r\n <button *ngIf=\"view === 'day'\"\r\n id=\"{{id}}_month_button\"\r\n class=\"text-body-1 font-weight-bold\"\r\n (click)=\"onMonthClick()\"\r\n (keydown)=\"disablePreviousButton ? onFirstItemKeydown($event) : undefined\">\r\n {{month}}\r\n </button>\r\n\r\n <button *ngIf=\"view !== 'year'\"\r\n id=\"{{id}}_year_button\"\r\n class=\"text-body-1 font-weight-bold\"\r\n (click)=\"onYearClick()\"\r\n (keydown)=\"disablePreviousButton && view !== 'day' ? onFirstItemKeydown($event) : undefined\">\r\n {{year}}\r\n </button>\r\n\r\n <div id=\"{{id}}_year_range\"\r\n *ngIf=\"view === 'year'\"\r\n class=\"text-body-1 font-weight-bold\"\r\n [innerHTML]=\"yearRange\">\r\n </div>\r\n\r\n <button id=\"{{id}}_next_button\"\r\n class=\"ml-auto\"\r\n (click)=\"onNextClick()\"\r\n [disabled]=\"disableNextButton\"\r\n (keydown)=\"disablePreviousButton && view === 'year' ? onFirstItemKeydown($event) : undefined\">\r\n <i class=\"ec-icon icon-angle-down rotate-270\"></i>\r\n </button>\r\n</header>\r\n\r\n<ul class=\"px-1 {{view}}-view\">\r\n <ng-container *ngIf=\"view === 'day'\">\r\n <li *ngFor=\"let day of weekDays\"\r\n class=\"d-flex align-items-center justify-content-center text-heading-3\">\r\n {{day}}\r\n </li>\r\n </ng-container>\r\n\r\n <li *ngFor=\"let item of calendarItems; last as isLast; trackBy: calendarItemTrackByDate;\">\r\n <button id=\"{{id}}_item_{{item.date | date:'MM_dd_yyyy'}}\"\r\n ec-calendar-item\r\n [item]=\"item\"\r\n [activeDate]=\"activeDate\"\r\n [selection]=\"selection\"\r\n [view]=\"view\"\r\n (click)=\"onItemSelected(item)\"\r\n (keydown)=\"isLast ? onLastItemKeydown($event) : undefined\"\r\n [hidden]=\"item.date < minDate || item.date > maxDate\">\r\n </button>\r\n </li>\r\n</ul>", styles: [":host{display:inline-block}button{font-size:var(--ec-font-size-action);height:2rem;line-height:1.25rem;padding:.3125rem .5rem;border:0;border-radius:var(--ec-border-radius);display:flex;align-items:center;justify-content:center;cursor:pointer;background-color:transparent}button .label{display:flex;align-items:center;justify-content:center;white-space:nowrap;flex:auto}button .ec-icon{flex:none}button .ec-icon+.label{flex:none;margin-left:.25rem}button.has-badge{padding-right:.0625rem}button:focus{outline:none;position:relative;z-index:1}button:disabled{background-color:var(--ec-background-color-disabled);border:1px solid var(--ec-form-control-border-color-disabled);color:var(--ec-color-disabled-dark);opacity:var(--ec-form-control-opacity-disabled);cursor:default}button:disabled{background-color:transparent;border-color:transparent;color:var(--ec-color-hint-dark);opacity:1;--ec-color-icon: var(--ec-color-hint-dark)}button:hover:not(:disabled){background-color:var(--ec-background-color-hover)}button:active:not(:disabled){background-color:var(--ec-background-color-selected);font-weight:700}button:focus:not(:disabled){box-shadow:var(--ec-button-box-shadow-active, 0 0 0 2px var(--ec-border-color-focus))}ul{list-style:none;padding:0;margin:0;display:grid;align-items:stretch;justify-items:stretch}button[ec-calendar-item]{height:100%;width:100%}ul.day-view{grid-template-columns:repeat(7,2rem);grid-auto-rows:1.75rem;row-gap:.25rem}ul.month-view{grid-template-columns:repeat(3,4.67rem);grid-auto-rows:3.25rem;row-gap:.25rem}ul.year-view{grid-template-columns:repeat(4,3.5rem);grid-auto-rows:3.25rem;row-gap:.25rem}\n"] }]
182
+ }], ctorParameters: () => [], propDecorators: { id: [{
183
+ type: HostBinding,
184
+ args: ['attr.id']
185
+ }, {
186
+ type: Input
187
+ }], selection: [{
188
+ type: Input
189
+ }], selectionChange: [{
190
+ type: Output
191
+ }], minDate: [{
192
+ type: Input
193
+ }], maxDate: [{
194
+ type: Input
195
+ }], focusOutStart: [{
196
+ type: Output
197
+ }], focusOutEnd: [{
198
+ type: Output
199
+ }] } });
200
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvbGliL2NvbnRyb2xzL2NhbGVuZGFyL2NhbGVuZGFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2xpYi9jb250cm9scy9jYWxlbmRhci9jYWxlbmRhci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQy9JLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDL0IsT0FBTyxNQUFNLE1BQU0sUUFBUSxDQUFDO0FBQzVCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM3RCxPQUFPLEVBQWlELDZCQUE2QixFQUFFLE1BQU0sa0JBQWtCLENBQUM7Ozs7QUFRaEgsTUFBTSxPQUFPLGlCQUFpQjtJQTRDNUI7UUF6Q2dCLE9BQUUsR0FBVyxVQUFVLENBQUM7UUFFL0IsY0FBUyxHQUE2QixJQUFJLENBQUM7UUFDMUMsb0JBQWUsR0FBRyxJQUFJLFlBQVksRUFBNEIsQ0FBQztRQUVoRSxZQUFPLEdBQVMsY0FBYyxDQUFDLGlCQUFpQixDQUFDO1FBQ2pELFlBQU8sR0FBUyxjQUFjLENBQUMsaUJBQWlCLENBQUM7UUFFaEQsa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBaUIsQ0FBQztRQUNsRCxnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFpQixDQUFDO1FBVzFELCtEQUErRDtRQUN4RCxrQkFBYSxHQUFtQixFQUFFLENBQUM7UUFLMUMsd0RBQXdEO1FBQ2pELFNBQUksR0FBaUIsS0FBSyxDQUFDO1FBUWxDLDhIQUE4SDtR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QU0sRUFBRTtnQkFDbkIsS0FBSyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDO2FBQzNCLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxtRUFBbUU7SUFDM0QsWUFBWSxDQUFDLElBQVU7UUFDN0IsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDL0IsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDO1FBRUQsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDN0MsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDdkUsT0FBTyxJQUFJLElBQUksU0FBUyxJQUFJLElBQUksSUFBSSxPQUFPLENBQUM7SUFDOUMsQ0FBQzsrR0F2TlUsaUJBQWlCO21HQUFqQixpQkFBaUIsMlRDWjlCLDh6RUE0REs7OzRGRGhEUSxpQkFBaUI7a0JBTjdCLFNBQVM7K0JBQ0UsYUFBYSxtQkFHTix1QkFBdUIsQ0FBQyxNQUFNO3dEQUsvQixFQUFFO3NCQURqQixXQUFXO3VCQUFDLFNBQVM7O3NCQUNyQixLQUFLO2dCQUVHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0ksZUFBZTtzQkFBeEIsTUFBTTtnQkFFRSxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUVJLGFBQWE7c0JBQXRCLE1BQU07Z0JBQ0csV0FBVztzQkFBcEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSG9zdEJpbmRpbmcsIElucHV0LCBPbkNoYW5nZXMsIE9uSW5pdCwgT3V0cHV0LCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IHJhbmdlIH0gZnJvbSAnbG9kYXNoJztcclxuaW1wb3J0IG1vbWVudCBmcm9tICdtb21lbnQnO1xyXG5pbXBvcnQgeyBEYXRlVGltZUhlbHBlciB9IGZyb20gJy4uLy4uL2NvcmUvZGF0ZS10aW1lLWhlbHBlcic7XHJcbmltcG9ydCB7IENhbGVuZGFySXRlbSwgQ2FsZW5kYXJTZWxlY3Rpb24sIENhbGVuZGFyVmlldywgaXNDYWxlbmRhclNlbGVjdGlvblNpbmdsZURhdGUgfSBmcm9tICcuL2NhbGVuZGFyLnR5cGVzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnZWMtY2FsZW5kYXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jYWxlbmRhci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vY2FsZW5kYXIuY29tcG9uZW50LnNjc3MnXSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxufSlcclxuZXhwb3J0IGNsYXNzIENhbGVuZGFyQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzLCBPbkluaXQge1xyXG5cclxuICBASG9zdEJpbmRpbmcoJ2F0dHIuaWQnKVxyXG4gIEBJbnB1dCgpIHB1YmxpYyBpZDogc3RyaW5nID0gJ2NhbGVuZGFyJztcclxuXHJcbiAgQElucHV0KCkgc2VsZWN0aW9uOiBDYWxlbmRhclNlbGVjdGlvbiB8IG51bGwgPSBudWxsO1xyXG4gIEBPdXRwdXQoKSBzZWxlY3Rpb25DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPENhbGVuZGFyU2VsZWN0aW9uIHwgbnVsbD4oKTtcclxuXHJcbiAgQElucHV0KCkgbWluRGF0ZTogRGF0ZSA9IERhdGVUaW1lSGVscGVyLm1pbkRhdGVQaWNrZXJEYXRlO1xyXG4gIEBJbnB1dCgpIG1heERhdGU6IERhdGUgPSBEYXRlVGltZUhlbHBlci5tYXhEYXRlUGlja2VyRGF0ZTtcclxuXHJcbiAgQE91dHB1dCgpIGZvY3VzT3V0U3RhcnQgPSBuZXcgRXZlbnRFbWl0dGVyPEtleWJvYXJkRXZlbnQ+KCk7XHJcbiAgQE91dHB1dCgpIGZvY3VzT3V0RW5kID0gbmV3IEV2ZW50RW1pdHRlcjxLZXlib2FyZEV2ZW50PigpO1xyXG5cclxuICAvKiogTW9udGggb2YgdGhlIGFjdGl2ZSBkYXRlIGRpc3BsYXllZCBpbiB0aGUgaGVhZGVyIGJ1dHRvbnMuICovXHJcbiAgcHVibGljIG1vbnRoPzogc3RyaW5nO1xyXG5cclxuICAvKiogWWVhciBvZiB0aGUgYWN0aXZlIGRhdGUgZGlzcGxheWVkIGluIHRoZSBoZWFkZXIgYnV0dG9ucy4gKi9cclxuICBwdWJsaWMgeWVhcj86IHN0cmluZztcclxuXHJcbiAgLyoqIFJhbmdlIG9mIHllYXJzIHRvIGRpc3BsYXkgaW4gdGhlIHllYXIgdmlldy4gKi9cclxuICBwdWJsaWMgeWVhclJhbmdlPzogc3RyaW5nO1xyXG5cclxuICAvKiogQXJyYXkgb2YgY2FsZW5kYXIgaXRlbXMgdG8gZGlzcGxheSBpbiB0aGUgY2FsZW5kYXIgZ3JpZC4gKi9cclxuICBwdWJsaWMgY2FsZW5kYXJJdGVtczogQ2FsZW5kYXJJdGVtW10gPSBbXTtcclxuXHJcbiAgLyoqIFdlZWtkYXkgbGFiZWxzIHRvIHNob3cgYXQgdGhlIHRvcCBvZiB0aGUgY2FsZW5kYXIgaW4gZGF5IHZpZXcuICovXHJcbiAgcHVibGljIHdlZWtEYXlzOiBzdHJpbmdbXTtcclxuXHJcbiAgLyoqIERldGVybWluZXMgdGhlIGN1cnJlbnQgdmlldyBtb2RlIG9mIHRoZSBjYWxlbmRhci4gKi9cclxuICBwdWJsaWMgdmlldzogQ2FsZW5kYXJWaWV3ID0gJ2RheSc7XHJcblxyXG4gIC8qKiBcclxuICAgKiBUcmFja3MgdGhlIG1vbnRoIGFuZCB5ZWFyIGJlaW5nIHZpZXdlZCBpbiB0aGUgY2FsZW5kYXIuXHJcbiAgICogVGhpcyBpcyBzZXBhcmF0ZSBmcm9tIHRoZSBzZWxlY3Rpb24sIHdoaWNoIG1heSBiZSBvdXQgb2Ygdmlldy5cclxuICAgKi9cclxuICBwdWJsaWMgYWN0aXZlRGF0ZTogRGF0ZTtcclxuXHJcbiAgLyoqIFRyYWNrQnkgZnVuY3Rpb24gZm9yIHRoZSBjYWxlbmRhciBpdGVtcy4gVGhpcyBhdm9pZHMgcmUtZHJhd2luZyBjYWxlbmRhciBpdGVtcyBpZiBhIGRhdGUgaXMgc2hhcmVkIGJldHdlZW4gdmlldyB1cGRhdGVzICovXHJcbiAgY2FsZW5kYXJJdGVtVHJhY2tCeURhdGUgPSAoaW5kZXg6IG51bWJlciwgaXRlbTogQ2FsZW5kYXJJdGVtKSA9PiBpdGVtLmRhdGUudG9JU09TdHJpbmcoKTtcclxuXHJcbiAgcHVibGljIGRpc2FibGVQcmV2aW91c0J1dHRvbjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBkaXNhYmxlTmV4dEJ1dHRvbjogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHtcclxuICAgIC8vIEJ5IGRlZmF1bHQsIHRoZSBhY3RpdmUgZGF0ZSBpcyB0b2RheS5cclxuICAgIC8vIFRoaXMgaXMgcmVwbGFjZWQgd2l0aCB0aGUgZGF0ZSBvZiB0aGUgc2VsZWN0aW9uIGlmIG9uZSBpcyBwcm92aWRlZCBvbiBpbml0LlxyXG4gICAgdGhpcy5hY3RpdmVEYXRlID0gbmV3IERhdGUoKTtcclxuICAgIC8vIFVzaW5nIG1vbWVudCBoZXJlIHRvIGdldCB0aGUgd2Vla2RheSBsYWJlbHMgc28gdGhleSBhcmUgbG9jYWxpemVkLlxyXG4gICAgdGhpcy53ZWVrRGF5cyA9IG1vbWVudC53ZWVrZGF5c1Nob3J0KCkubWFwKGQgPT4gZC5zbGljZSgwLCAxKSk7XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICBpZiAoY2hhbmdlcy5zZWxlY3Rpb24gJiYgdGhpcy5zZWxlY3Rpb24pIHtcclxuICAgICAgLy8gT25seSBuZWVkIHRvIHVwZGF0ZSB0aGUgdmlldyBpZiB0aGUgc2VsZWN0aW9uIGlzIG91dCBvZiB2aWV3LlxyXG4gICAgICBpZiAoXHJcbiAgICAgICAgaXNDYWxlbmRhclNlbGVjdGlvblNpbmdsZURhdGUodGhpcy5zZWxlY3Rpb24pICYmXHJcbiAgICAgICAgIXRoaXMuaXNEYXRlSW5WaWV3KHRoaXMuc2VsZWN0aW9uKSAmJlxyXG4gICAgICAgIG1vbWVudCh0aGlzLnNlbGVjdGlvbikuaXNCZXR3ZWVuKHRoaXMubWluRGF0ZSwgdGhpcy5tYXhEYXRlLCAnZGF5JywgJ1tdJylcclxuICAgICAgKSB7XHJcbiAgICAgICAgdGhpcy5kcmF3Q2FsZW5kYXIoJ2RheScsIHRoaXMuc2VsZWN0aW9uKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICAvLyBUT0RPIEVDQVAtMjY4NDE6IGRldGVybWluZSB0aGUgYWN0aXZlIGRhdGUgZm9yIGEgcmFuZ2Ugc2VsZWN0aW9uIGFuZCBkcmF3IHRoZSBjYWxlbmRhclxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5jYWxlbmRhckl0ZW1zLmxlbmd0aCkge1xyXG4gICAgICB0aGlzLmRyYXdDYWxlbmRhcignZGF5Jyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25JdGVtU2VsZWN0ZWQoaXRlbTogQ2FsZW5kYXJJdGVtKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy52aWV3ID09PSAnZGF5Jykge1xyXG4gICAgICB0aGlzLnNlbGVjdGlvbiA9IGl0ZW0uZGF0ZTtcclxuICAgICAgdGhpcy5zZWxlY3Rpb25DaGFuZ2UuZW1pdCh0aGlzLnNlbGVjdGlvbik7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMudmlldyA9PT0gJ21vbnRoJykge1xyXG4gICAgICB0aGlzLmRyYXdDYWxlbmRhcignZGF5JywgaXRlbS5kYXRlKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy52aWV3ID09PSAneWVhcicpIHtcclxuICAgICAgdGhpcy5kcmF3Q2FsZW5kYXIoJ21vbnRoJywgaXRlbS5kYXRlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBvbk5leHRDbGljaygpOiB2b2lkIHtcclxuICAgIC8vIElmIHdlJ3JlIGluIGRheSB2aWV3LCB3ZSdyZSBpbmNyZW1lbnRpbmcgYnkgbW9udGhcclxuICAgIC8vIEluIGJvdGggbW9udGggYW5kIHllYXIgdmlld3Mgd2UncmUgaW5jcmVtZW50aW5nIGJ5IHllYXJcclxuICAgIC8vIEluIHllYXIgdmlldywgd2UncmUgbW92aW5nIGJ5IDE2IHllYXJzIGF0IGEgdGltZVxyXG4gICAgY29uc3QgdW5pdCA9IHRoaXMudmlldyA9PT0gJ2RheScgPyAnbW9udGgnIDogJ3llYXInO1xyXG4gICAgLy8gSW4geWVhciB2aWV3LCB3ZSdyZSBtb3ZpbmcgYnkgMTYgeWVhcnMgYXQgYSB0aW1lLiBPdGhlcndpc2Ugd2UncmUganVzdCBtb3ZpbmcgYnkgMSBtb250aC95ZWFyLlxyXG4gICAgY29uc3QgY291bnQgPSB0aGlzLnZpZXcgPT09ICd5ZWFyJyA/IDE2IDogMTtcclxuICAgIGNvbnN0IGdvVG9EYXRlID0gbW9tZW50KHRoaXMuYWN0aXZlRGF0ZSkuYWRkKGNvdW50LCB1bml0KS50b0RhdGUoKTtcclxuICAgIHRoaXMuZHJhd0NhbGVuZGFyKHRoaXMudmlldywgZ29Ub0RhdGUpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG9uUHJldmlvdXNDbGljaygpOiB2b2lkIHtcclxuICAgIC8vIElmIHdlJ3JlIGluIGRheSB2aWV3LCB3ZSdyZSBpbmNyZW1lbnRpbmcgYnkgbW9udGhcclxuICAgIC8vIEluIGJvdGggbW9udGggYW5kIHllYXIgdmlld3Mgd2UncmUgaW5jcmVtZW50aW5nIHllYXJzXHJcbiAgICBjb25zdCB1bml0ID0gdGhpcy52aWV3ID09PSAnZGF5JyA/ICdtb250aCcgOiAneWVhcic7XHJcbiAgICAvLyBJbiB5ZWFyIHZpZXcsIHdlJ3JlIG1vdmluZyBieSAxNiB5ZWFycyBhdCBhIHRpbWUuIE90aGVyd2lzZSB3ZSdyZSBqdXN0IG1vdmluZyBieSAxIG1vbnRoL3llYXIuXHJcbiAgICBjb25zdCBjb3VudCA9IHRoaXMudmlldyA9PT0gJ3llYXInID8gMTYgOiAxO1xyXG4gICAgY29uc3QgZ29Ub0RhdGUgPSBtb21lbnQodGhpcy5hY3RpdmVEYXRlKS5zdWJ0cmFjdChjb3VudCwgdW5pdCkudG9EYXRlKCk7XHJcbiAgICB0aGlzLmRyYXdDYWxlbmRhcih0aGlzLnZpZXcsIGdvVG9EYXRlKTtcclxuICB9XHJcblxyXG4gIC8qKiBTd2l0Y2hlcyB0aGUgY2FsZW5kYXIgdG8gbW9udGggdmlldy4gKi9cclxuICBwdWJsaWMgb25Nb250aENsaWNrKCk6IHZvaWQge1xyXG4gICAgdGhpcy5kcmF3Q2FsZW5kYXIoJ21vbnRoJyk7XHJcbiAgfVxyXG5cclxuICAvKiogU3dpdGNoZXMgdGhlIGNhbGVuZGFyIHRvIHllYXIgdmlldy4gKi9cclxuICBwdWJsaWMgb25ZZWFyQ2xpY2soKTogdm9pZCB7XHJcbiAgICB0aGlzLmRyYXdDYWxlbmRhcigneWVhcicpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG9uRmlyc3RJdGVtS2V5ZG93bihldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xyXG4gICAgLy8gSWYgdGhlIHVzZXIgaXMgdGFiYmluZyBiYWNrd2FyZHMgZnJvbSB0aGUgZmlyc3QgaXRlbSwgZW1pdCB0aGUgZm9jdXNPdXRTdGFydCBldmVudC5cclxuICAgIGlmIChldmVudC5rZXkgPT09ICdUYWInICYmIGV2ZW50LnNoaWZ0S2V5KSB7XHJcbiAgICAgIHRoaXMuZm9jdXNPdXRTdGFydC5lbWl0KGV2ZW50KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBvbkxhc3RJdGVtS2V5ZG93bihldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xyXG4gICAgLy8gSWYgdGhlIHVzZXIgaXMgdGFiYmluZyBmb3J3YXJkcyBmcm9tIHRoZSBsYXN0IGl0ZW0sIGVtaXQgdGhlIGZvY3VzT3V0RW5kIGV2ZW50LlxyXG4gICAgaWYgKGV2ZW50LmtleSA9PT0gJ1RhYicgJiYgIWV2ZW50LnNoaWZ0S2V5KSB7XHJcbiAgICAgIHRoaXMuZm9jdXNPdXRFbmQuZW1pdChldmVudCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGRyYXdDYWxlbmRhcih2aWV3OiBDYWxlbmRhclZpZXcsIGdvVG8/OiBEYXRlKTogdm9pZCB7XHJcbiAgICAvLyBJZiBhIGdvVG8gZGF0ZSBpcyBwcm92aWRlZCwgdXBkYXRlIHRoZSBhY3RpdmUgZGF0ZSBzbyB3ZSBrbm93IHdoYXQgdG8gaW5jcmVtZW50IG9uIG5leHQvcHJldmlvdXMgY2xpY2tzLlxyXG4gICAgaWYgKGdvVG8pIHtcclxuICAgICAgdGhpcy5hY3RpdmVEYXRlID0gZ29UbztcclxuICAgIH1cclxuICAgIFxyXG4gICAgdGhpcy5tb250aCA9IG1vbWVudCh0aGlzLmFjdGl2ZURhdGUpLmZvcm1hdCgnTU1NJyk7XHJcbiAgICB0aGlzLnllYXIgPSBtb21lbnQodGhpcy5hY3RpdmVEYXRlKS5mb3JtYXQoJ1lZWVknKTtcclxuICAgIHRoaXMudmlldyA9IHZpZXc7XHJcbiAgICB0aGlzLmNhbGVuZGFySXRlbXMgPSB0aGlzLmdldENhbGVuZGFySXRlbXModmlldywgdGhpcy5hY3RpdmVEYXRlKTtcclxuXHJcbiAgICBjb25zdCBzdGFydFllYXIgPSB0aGlzLmNhbGVuZGFySXRlbXNbMF0uZGF0ZSA8IHRoaXMubWluRGF0ZSA/IHRoaXMubWluRGF0ZSA6IHRoaXMuY2FsZW5kYXJJdGVtc1swXS5kYXRlO1xyXG4gICAgY29uc3QgZW5kWWVhciA9IHRoaXMuY2FsZW5kYXJJdGVtc1t0aGlzLmNhbGVuZGFySXRlbXMubGVuZ3RoIC0gMV0uZGF0ZSA+IHRoaXMubWF4RGF0ZSA/IHRoaXMubWF4RGF0ZSA6IHRoaXMuY2FsZW5kYXJJdGVtc1t0aGlzLmNhbGVuZGFySXRlbXMubGVuZ3RoIC0gMV0uZGF0ZTtcclxuICAgIHRoaXMueWVhclJhbmdlID0gYCR7bW9tZW50KHN0YXJ0WWVhcikuZm9ybWF0KCdZWVlZJyl9Jm5kYXNoOyR7bW9tZW50KGVuZFllYXIpLmZvcm1hdCgnWVlZWScpfWA7XHJcblxyXG4gICAgLy8gSWYgdGhlIGFjdGl2ZSBkYXRlIGlzIGxlc3MgdGhhbiB0aGUgbWluIGRhdGUgb3IgdGhlIG1pbiBkYXRlIGlzIGluIHZpZXcsIGRpc2FibGUgdGhlIHByZXZpb3VzIGJ1dHRvbi5cclxuICAgIGlmICh0aGlzLmFjdGl2ZURhdGUgPCB0aGlzLm1pbkRhdGUgfHwgdGhpcy5pc0RhdGVJblZpZXcodGhpcy5taW5EYXRlKSkge1xyXG4gICAgICB0aGlzLmRpc2FibGVQcmV2aW91c0J1dHRvbiA9IHRydWU7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmRpc2FibGVQcmV2aW91c0J1dHRvbiA9IGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIElmIHRoZSBhY3RpdmUgZGF0ZSBpcyBncmVhdGVyIHRoYW4gdGhlIG1heCBkYXRlIG9yIHRoZSBtYXggZGF0ZSBpcyBpbiB2aWV3LCBkaXNhYmxlIHRoZSBuZXh0IGJ1dHRvbi5cclxuICAgIGlmICh0aGlzLmFjdGl2ZURhdGUgPiB0aGlzLm1heERhdGUgfHwgdGhpcy5pc0RhdGVJblZpZXcodGhpcy5tYXhEYXRlKSkge1xyXG4gICAgICB0aGlzLmRpc2FibGVOZXh0QnV0dG9uID0gdHJ1ZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZGlzYWJsZU5leHRCdXR0b24gPSBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0Q2FsZW5kYXJJdGVtcyh2aWV3OiBDYWxlbmRhclZpZXcsIGFjdGl2ZURhdGU6IERhdGUpOiBDYWxlbmRhckl0ZW1bXSB7XHJcbiAgICBzd2l0Y2ggKHZpZXcpIHtcclxuICAgICAgY2FzZSAnZGF5JzogcmV0dXJuIHRoaXMuZ2V0RGF5Vmlld0l0ZW1zKGFjdGl2ZURhdGUpO1xyXG4gICAgICBjYXNlICdtb250aCc6IHJldHVybiB0aGlzLmdldE1vbnRoVmlld0l0ZW1zKGFjdGl2ZURhdGUpO1xyXG4gICAgICBjYXNlICd5ZWFyJzogcmV0dXJuIHRoaXMuZ2V0WWVhclZpZXdJdGVtcyhhY3RpdmVEYXRlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0RGF5Vmlld0l0ZW1zKGFjdGl2ZURhdGU6IERhdGUpOiBDYWxlbmRhckl0ZW1bXSB7XHJcbiAgICAvLyA2IHJvd3Mgb2YgNyBkYXlzID0gNDIgZGF5c1xyXG4gICAgcmV0dXJuIHJhbmdlKDAsIDQyKS5tYXAoaSA9PiB7XHJcbiAgICAgIC8vIFVzZSB0aGUgc3RhcnQgb2YgdGhlIHdlZWsgb2YgdGhlIGZpcnN0IGRheSBvZiB0aGUgbW9udGguXHJcbiAgICAgIC8vIFRoaXMgcGFkcyBvdXQgdGhlIGZpcnN0IHdlZWsgd2l0aCBhbnkgZGF5cyBmcm9tIHRoZSBwcmV2aW91cyBtb250aC5cclxuICAgICAgY29uc3QgZGF0ZSA9IG1vbWVudChhY3RpdmVEYXRlKS5zdGFydE9mKCdtb250aCcpLnN0YXJ0T2YoJ3dlZWsnKS5hZGQoaSwgJ2RheScpO1xyXG4gICAgICByZXR1cm4ge1xyXG4gICAgICAgIGRhdGU6IGRhdGUudG9EYXRlKCksXHJcbiAgICAgICAgbGFiZWw6IGRhdGUuZm9ybWF0KCdEJylcclxuICAgICAgfTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRNb250aFZpZXdJdGVtcyhhY3RpdmVEYXRlOiBEYXRlKTogQ2FsZW5kYXJJdGVtW10ge1xyXG4gICAgcmV0dXJuIHJhbmdlKDAsIDEyKS5tYXAoaSA9PiB7XHJcbiAgICAgIGNvbnN0IGRhdGUgPSBtb21lbnQoYWN0aXZlRGF0ZSkuc3RhcnRPZigneWVhcicpLmFkZChpLCAnbW9udGgnKTtcclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICBkYXRlOiBkYXRlLnRvRGF0ZSgpLFxyXG4gICAgICAgIGxhYmVsOiBkYXRlLmZvcm1hdCgnTU1NJylcclxuICAgICAgfTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRZZWFyVmlld0l0ZW1zKGFjdGl2ZURhdGU6IERhdGUpOiBDYWxlbmRhckl0ZW1bXSB7XHJcbiAgICAvLyA0eDQgZ3JpZCBvZiB5ZWFycyA9IDE2IHllYXJzXHJcbiAgICByZXR1cm4gcmFuZ2UoMCwgMTYpLm1hcChpID0+IHtcclxuICAgICAgLy8gUHV0IHRoZSBjdXJyZW50IGFjdGl2ZSB5ZWFyIGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIDNyZCByb3cuXHJcbiAgICAgIGNvbnN0IGRhdGUgPSBtb21lbnQoYWN0aXZlRGF0ZSkuc3RhcnRPZigneWVhcicpLnN1YnRyYWN0KDgsICd5ZWFyJykuYWRkKGksICd5ZWFyJyk7XHJcbiAgICAgIHJldHVybiB7XHJcbiAgICAgICAgZGF0ZTogZGF0ZS50b0RhdGUoKSxcclxuICAgICAgICBsYWJlbDogZGF0ZS5mb3JtYXQoJ1lZWVknKVxyXG4gICAgICB9O1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKiogUmV0dXJucyB0cnVlIGlmIHRoZSBkYXRlIGlzIHdpdGhpbiB0aGUgY3VycmVudCBjYWxlbmRhciB2aWV3ICovXHJcbiAgcHJpdmF0ZSBpc0RhdGVJblZpZXcoZGF0ZTogRGF0ZSk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKCF0aGlzLmNhbGVuZGFySXRlbXMubGVuZ3RoKSB7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCB2aWV3U3RhcnQgPSB0aGlzLmNhbGVuZGFySXRlbXNbMF0uZGF0ZTtcclxuICAgIGNvbnN0IHZpZXdFbmQgPSB0aGlzLmNhbGVuZGFySXRlbXNbdGhpcy5jYWxlbmRhckl0ZW1zLmxlbmd0aCAtIDFdLmRhdGU7XHJcbiAgICByZXR1cm4gZGF0ZSA+PSB2aWV3U3RhcnQgJiYgZGF0ZSA8PSB2aWV3RW5kO1xyXG4gIH1cclxufVxyXG4iLCI8aGVhZGVyIGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBtYi0yXCI+XHJcbiAgPGJ1dHRvbiBpZD1cInt7aWR9fV9wcmV2X2J1dHRvblwiXHJcbiAgICAgICAgICBjbGFzcz1cIm1yLWF1dG9cIlxyXG4gICAgICAgICAgKGNsaWNrKT1cIm9uUHJldmlvdXNDbGljaygpXCJcclxuICAgICAgICAgIChrZXlkb3duKT1cIiFkaXNhYmxlUHJldmlvdXNCdXR0b24gPyBvbkZpcnN0SXRlbUtleWRvd24oJGV2ZW50KSA6IHVuZGVmaW5lZFwiXHJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZVByZXZpb3VzQnV0dG9uXCI+XHJcbiAgICA8aSBjbGFzcz1cImVjLWljb24gaWNvbi1hbmdsZS1kb3duIHJvdGF0ZS05MFwiPjwvaT5cclxuICA8L2J1dHRvbj5cclxuXHJcbiAgPGJ1dHRvbiAqbmdJZj1cInZpZXcgPT09ICdkYXknXCJcclxuICAgICAgICAgIGlkPVwie3tpZH19X21vbnRoX2J1dHRvblwiXHJcbiAgICAgICAgICBjbGFzcz1cInRleHQtYm9keS0xIGZvbnQtd2VpZ2h0LWJvbGRcIlxyXG4gICAgICAgICAgKGNsaWNrKT1cIm9uTW9udGhDbGljaygpXCJcclxuICAgICAgICAgIChrZXlkb3duKT1cImRpc2FibGVQcmV2aW91c0J1dHRvbiA/IG9uRmlyc3RJdGVtS2V5ZG93bigkZXZlbnQpIDogdW5kZWZpbmVkXCI+XHJcbiAgICB7e21vbnRofX1cclxuICA8L2J1dHRvbj5cclxuXHJcbiAgPGJ1dHRvbiAqbmdJZj1cInZpZXcgIT09ICd5ZWFyJ1wiXHJcbiAgICAgICAgICBpZD1cInt7aWR9fV95ZWFyX2J1dHRvblwiXHJcbiAgICAgICAgICBjbGFzcz1cInRleHQtYm9keS0xIGZvbnQtd2VpZ2h0LWJvbGRcIlxyXG4gICAgICAgICAgKGNsaWNrKT1cIm9uWWVhckNsaWNrKClcIlxyXG4gICAgICAgICAgKGtleWRvd24pPVwiZGlzYWJsZVByZXZpb3VzQnV0dG9uICYmIHZpZXcgIT09ICdkYXknID8gb25GaXJzdEl0ZW1LZXlkb3duKCRldmVudCkgOiB1bmRlZmluZWRcIj5cclxuICAgIHt7eWVhcn19XHJcbiAgPC9idXR0b24+XHJcblxyXG4gIDxkaXYgaWQ9XCJ7e2lkfX1feWVhcl9yYW5nZVwiXHJcbiAgICAgICAqbmdJZj1cInZpZXcgPT09ICd5ZWFyJ1wiXHJcbiAgICAgICBjbGFzcz1cInRleHQtYm9keS0xIGZvbnQtd2VpZ2h0LWJvbGRcIlxyXG4gICAgICAgW2lubmVySFRNTF09XCJ5ZWFyUmFuZ2VcIj5cclxuICA8L2Rpdj5cclxuXHJcbiAgPGJ1dHRvbiBpZD1cInt7aWR9fV9uZXh0X2J1dHRvblwiXHJcbiAgICAgICAgICBjbGFzcz1cIm1sLWF1dG9cIlxyXG4gICAgICAgICAgKGNsaWNrKT1cIm9uTmV4dENsaWNrKClcIlxyXG4gICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVOZXh0QnV0dG9uXCJcclxuICAgICAgICAgIChrZXlkb3duKT1cImRpc2FibGVQcmV2aW91c0J1dHRvbiAmJiB2aWV3ID09PSAneWVhcicgPyBvbkZpcnN0SXRlbUtleWRvd24oJGV2ZW50KSA6IHVuZGVmaW5lZFwiPlxyXG4gICAgPGkgY2xhc3M9XCJlYy1pY29uIGljb24tYW5nbGUtZG93biByb3RhdGUtMjcwXCI+PC9pPlxyXG4gIDwvYnV0dG9uPlxyXG48L2hlYWRlcj5cclxuXHJcbjx1bCBjbGFzcz1cInB4LTEge3t2aWV3fX0tdmlld1wiPlxyXG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJ2aWV3ID09PSAnZGF5J1wiPlxyXG4gICAgPGxpICpuZ0Zvcj1cImxldCBkYXkgb2Ygd2Vla0RheXNcIlxyXG4gICAgICAgIGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIHRleHQtaGVhZGluZy0zXCI+XHJcbiAgICAgIHt7ZGF5fX1cclxuICAgIDwvbGk+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gIDxsaSAqbmdGb3I9XCJsZXQgaXRlbSBvZiBjYWxlbmRhckl0ZW1zOyBsYXN0IGFzIGlzTGFzdDsgdHJhY2tCeTogY2FsZW5kYXJJdGVtVHJhY2tCeURhdGU7XCI+XHJcbiAgICA8YnV0dG9uIGlkPVwie3tpZH19X2l0ZW1fe3tpdGVtLmRhdGUgfCBkYXRlOidNTV9kZF95eXl5J319XCJcclxuICAgICAgICAgICAgZWMtY2FsZW5kYXItaXRlbVxyXG4gICAgICAgICAgICBbaXRlbV09XCJpdGVtXCJcclxuICAgICAgICAgICAgW2FjdGl2ZURhdGVdPVwiYWN0aXZlRGF0ZVwiXHJcbiAgICAgICAgICAgIFtzZWxlY3Rpb25dPVwic2VsZWN0aW9uXCJcclxuICAgICAgICAgICAgW3ZpZXddPVwidmlld1wiXHJcbiAgICAgICAgICAgIChjbGljayk9XCJvbkl0ZW1TZWxlY3RlZChpdGVtKVwiXHJcbiAgICAgICAgICAgIChrZXlkb3duKT1cImlzTGFzdCA/IG9uTGFzdEl0ZW1LZXlkb3duKCRldmVudCkgOiB1bmRlZmluZWRcIlxyXG4gICAgICAgICAgICBbaGlkZGVuXT1cIml0ZW0uZGF0ZSA8IG1pbkRhdGUgfHwgaXRlbS5kYXRlID4gbWF4RGF0ZVwiPlxyXG4gICAgPC9idXR0b24+XHJcbiAgPC9saT5cclxuPC91bD4iXX0=
@@ -0,0 +1,4 @@
1
+ export function isCalendarSelectionSingleDate(selection) {
2
+ return selection instanceof Date;
3
+ }
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIudHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3NyYy9saWIvY29udHJvbHMvY2FsZW5kYXIvY2FsZW5kYXIudHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBU0EsTUFBTSxVQUFVLDZCQUE2QixDQUFDLFNBQW9DO0lBQ2hGLE9BQU8sU0FBUyxZQUFZLElBQUksQ0FBQztBQUNuQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgQ2FsZW5kYXJJdGVtID0ge1xyXG4gIGxhYmVsOiBzdHJpbmc7XHJcbiAgZGF0ZTogRGF0ZTtcclxufTtcclxuXHJcbmV4cG9ydCB0eXBlIENhbGVuZGFyU2VsZWN0aW9uID0gRGF0ZSB8IFtEYXRlLCBEYXRlXTtcclxuXHJcbmV4cG9ydCB0eXBlIENhbGVuZGFyVmlldyA9ICdkYXknIHwgJ21vbnRoJyB8ICd5ZWFyJztcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBpc0NhbGVuZGFyU2VsZWN0aW9uU2luZ2xlRGF0ZShzZWxlY3Rpb24/OiBDYWxlbmRhclNlbGVjdGlvbiB8IG51bGwpOiBzZWxlY3Rpb24gaXMgRGF0ZSB7XHJcbiAgcmV0dXJuIHNlbGVjdGlvbiBpbnN0YW5jZW9mIERhdGU7XHJcbn1cclxuIl19
@@ -0,0 +1,140 @@
1
+ import { Component, Input, ViewChild } from '@angular/core';
2
+ import { merge, Subject } from 'rxjs';
3
+ import { distinctUntilChanged, takeUntil } from 'rxjs/operators';
4
+ import { FormControlBase } from "../form-control-base";
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "../../core/validation-message.service";
7
+ import * as i2 from "../../shared/form-group.helper";
8
+ import * as i3 from "@angular/common";
9
+ import * as i4 from "@angular/forms";
10
+ import * as i5 from "../help-popover/help-popover.component";
11
+ import * as i6 from "@ngx-translate/core";
12
+ export class CheckboxComponent extends FormControlBase {
13
+ constructor(validationMessageService, formGroupHelper) {
14
+ super(validationMessageService, formGroupHelper);
15
+ this.validationMessageService = validationMessageService;
16
+ this.formGroupHelper = formGroupHelper;
17
+ /**
18
+ * The name of the checkbox input element
19
+ */
20
+ this.name = '';
21
+ /**
22
+ * Determines whether to ignore or include disabled dependent checkboxes in the check to determine the checkbox state.
23
+ */
24
+ this.ignoreDisabledDependents = true;
25
+ /**
26
+ * If the checkbox is a master checkbox (i.e. it has a dependentCheckboxesGroup),
27
+ * indeterminate is true if there are some checked dependents and some unchecked dependents.
28
+ */
29
+ this.indeterminate = false;
30
+ //Used to prevent valueChanges loops in the master checkbox and dependent checkboxes value changes.
31
+ this.ignoreCall = false;
32
+ /** Fired whenever the dependent checkboxes are changed to clear out subscriptions to the previous dependents */
33
+ this.resetDependentSubscriptions = new Subject();
34
+ }
35
+ ngAfterViewInit() {
36
+ if (this.autofocus) {
37
+ this.inputElement.nativeElement.focus();
38
+ }
39
+ }
40
+ ngOnChanges(changes) {
41
+ if (changes.dependentCheckboxesGroup) {
42
+ this.setupDependents();
43
+ }
44
+ }
45
+ dispatchEvent(event) {
46
+ if (event.type === 'click' && !this.formModel.disabled) {
47
+ this.formModel.patchValue(!this.formModel.value);
48
+ }
49
+ }
50
+ /**
51
+ * Create watchers that allow the master and dependent checkbox states to stay in sync as the user interacts with them.
52
+ * Dependents can update the master when their values change and the master updates dependents when the value changes.
53
+ */
54
+ setupDependents() {
55
+ if (!this.dependentCheckboxesGroup) {
56
+ return;
57
+ }
58
+ // Remove any subscriptions to previous dependents
59
+ this.resetDependentSubscriptions.next();
60
+ //Extract the values (i.e. the checkboxes) from the FormGroup controls key-value map and return them.
61
+ let dependentCheckboxes = Object.values(this.dependentCheckboxesGroup.controls);
62
+ this.updateMasterState(dependentCheckboxes);
63
+ //When the master value changes, we set all its dependents to that value.
64
+ //We also set indeterminate to false since we know that all dependents will either be checked or unchecked.
65
+ this.formModel.valueChanges.pipe(distinctUntilChanged(), takeUntil(merge(this.componentDestroyed, this.resetDependentSubscriptions))).subscribe((value) => {
66
+ if (!this.ignoreCall) {
67
+ this.ignoreCall = true; //Ignore any value changes calls on the dependents to prevent a loop.
68
+ dependentCheckboxes.forEach(checkbox => {
69
+ if (!checkbox.disabled || !this.ignoreDisabledDependents) {
70
+ checkbox.setValue(value);
71
+ }
72
+ });
73
+ this.indeterminate = false;
74
+ this.ignoreCall = false;
75
+ }
76
+ });
77
+ //When a dependent value changes, we need to reevaluate the master state.
78
+ //We are subscribing to the form models directly instead of the entire group because we found that adding checkboxes to
79
+ // more than one form group causes only the last group to emit valueChanges events.
80
+ //That prevented combined row-master and table-master setups from working properly.
81
+ dependentCheckboxes.forEach(checkbox => {
82
+ checkbox.valueChanges.pipe(distinctUntilChanged(), takeUntil(merge(this.componentDestroyed, this.resetDependentSubscriptions))).subscribe((value) => {
83
+ if (value !== true && value !== false) {
84
+ console.error(`The value ${value} is not true or false, which are the only supported values for FormControls in the dependentCheckboxesGroup`);
85
+ return;
86
+ }
87
+ if (!this.ignoreCall) {
88
+ this.ignoreCall = true; //Ignore any value changes calls on the master to prevent a loop.
89
+ this.updateMasterState(dependentCheckboxes);
90
+ this.ignoreCall = false;
91
+ }
92
+ });
93
+ });
94
+ }
95
+ /**
96
+ * If all dependents are true, the master should be true and determinate.
97
+ * If all dependents are false, the master should be false and determinate.
98
+ * If some dependents are true and some dependents are false, the master should be false and indeterminate.
99
+ *
100
+ * If ignoreDisabledDependents is true, does not include the disabled dependents when checking values
101
+ */
102
+ updateMasterState(dependentCheckboxes) {
103
+ let dependentsToCheck = [];
104
+ if (this.ignoreDisabledDependents) {
105
+ dependentsToCheck = dependentCheckboxes.filter(checkbox => checkbox.enabled);
106
+ }
107
+ else {
108
+ dependentsToCheck = dependentCheckboxes;
109
+ }
110
+ let isTrue = (checkbox) => { return checkbox.value === true; };
111
+ if (dependentsToCheck.every(isTrue)) {
112
+ this.formModel.setValue(true);
113
+ this.indeterminate = false;
114
+ }
115
+ else if (dependentsToCheck.some(isTrue)) {
116
+ this.formModel.setValue(false);
117
+ this.indeterminate = true;
118
+ }
119
+ else {
120
+ this.formModel.setValue(false);
121
+ this.indeterminate = false;
122
+ }
123
+ }
124
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CheckboxComponent, deps: [{ token: i1.ValidationMessageService }, { token: i2.FormGroupHelper }], target: i0.ɵɵFactoryTarget.Component }); }
125
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: CheckboxComponent, selector: "ec-checkbox", inputs: { name: "name", dependentCheckboxesGroup: "dependentCheckboxesGroup", ignoreDisabledDependents: "ignoreDisabledDependents" }, viewQueries: [{ propertyName: "inputElement", first: true, predicate: ["checkboxInput"], descendants: true, static: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"control\">\r\n <label class=\"checkbox\"\r\n [ngClass]=\"{'is-disabled': formModel.disabled, 'no-label': !label, 'is-readonly': readonly}\">\r\n <input id=\"{{id}}_input\"\r\n #checkboxInput\r\n class='input'\r\n [class.indeterminate]=\"indeterminate\"\r\n [attr.id]=\"inputId\"\r\n [attr.name]=\"name\"\r\n type=\"checkbox\"\r\n tabindex=\"{{tabindex}}\"\r\n [formControl]=\"formModel\"\r\n [attr.cdkFocusInitial]=\"autofocus || null\">\r\n <i class=\"ec-icon icon-check\"></i>\r\n\r\n <span id=\"{{id}}_label\"\r\n *ngIf=\"label\"\r\n class=\"label\">\r\n <span [innerHtml]=\"label | translate\"></span>\r\n <ec-help-popover id=\"{{id}}_helpPopover\"\r\n *ngIf=\"helpPopover\"\r\n class=\"d-inline-block my-n2 mx-n1\"\r\n text=\"{{helpPopover | translate}}\"\r\n contentPosition=\"{{helpPopoverPosition}}\">\r\n </ec-help-popover>\r\n </span>\r\n </label>\r\n</div>", styles: [":host{color:var(--ec-form-control-color);font-size:var(--ec-form-control-font-size);display:block;margin-bottom:1rem;width:100%}:host :host-context(.form-condensed){margin-bottom:.5rem}:host .control{width:100%;display:flex;flex-direction:column}:host .control.control-label-bottom{flex-direction:column-reverse}:host .control.control-label-left{flex-direction:row}:host .control.control-label-left label{margin-right:.25rem}:host .control.control-label-right{flex-direction:row-reverse}:host .control.control-label-right label{margin-left:.25rem}:host .control.control-label-left,:host .control.control-label-right{align-items:center}:host .control.control-label-left label,:host .control.control-label-right label{flex:1 1;margin-top:0;margin-bottom:0}:host .control.control-label-left .control-input,:host .control.control-label-right .control-input{flex:2 2}:host .control.is-readonly input,:host .control.is-readonly select,:host .control.is-readonly textarea{border-color:var(--ec-form-control-border-color-readonly);background-color:var(--ec-form-control-background-color-readonly);background-clip:border-box;background-image:none;color:var(--ec-form-control-color-readonly);opacity:1;-webkit-user-select:none;user-select:none;pointer-events:none;overflow:hidden;white-space:nowrap}:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-invalid,:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-valid{background-color:var(--ec-form-control-background-color-invalid);border-color:var(--ec-form-control-border-color-invalid);background-repeat:no-repeat;background-position:.5rem center;background-size:1rem,1rem;padding-left:1.75rem;background-image:none}:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-invalid:focus,:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-valid:focus{border-color:var(--ec-form-control-background-color-invalid)}:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-invalid~.icon-invalid,:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-valid~.icon-invalid{display:inline-flex;position:absolute;left:.5rem;top:.5rem;z-index:1}:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-invalid~.icon-required,:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-valid~.icon-required{display:none}:host .control.invalid:not(.open) .textbox-group-btn-right ::ng-deep button{background-color:var(--ec-form-control-background-color-invalid)}:host .control.invalid:not(.open) .textbox-group-btn-right ::ng-deep button:not(:focus){border-color:var(--ec-form-control-border-color-invalid)}:host .textbox-group{display:flex;position:relative}:host textarea:focus,:host input:focus,:host select:focus{outline:none}:host(.w-auto){width:auto}.checkbox{cursor:pointer;display:inline-flex;margin-bottom:0;position:relative}.checkbox.is-disabled{cursor:default}.input{margin-top:.5rem;opacity:0;position:absolute;z-index:-1}.input:not(:checked)+.ec-icon{color:var(--ec-form-control-border-color)}.input:not(:checked)+.ec-icon:before{display:none}.input.indeterminate+.ec-icon,.input:indeterminate+.ec-icon{color:var(--ec-color-interactive)}.input.indeterminate+.ec-icon:before,.input:indeterminate+.ec-icon:before{content:\"\";background-color:currentColor;display:block;width:10px;height:3px}.input:focus+.ec-icon{color:var(--ec-color-interactive);box-shadow:var(--ec-form-control-box-shadow-focus);border-color:var(--ec-form-control-border-color-focus)}.input:disabled+.ec-icon{color:var(--ec-form-control-color-disabled);background-color:var(--ec-form-control-background-color-disabled);border-color:var(--ec-form-control-border-color-disabled);opacity:var(--ec-form-control-opacity-disabled)}.input:disabled~.label{color:var(--ec-form-control-color-disabled);opacity:var(--ec-form-control-opacity-disabled)}.ec-icon{background-color:var(--ec-form-control-background-color);background-clip:padding-box;border:1px solid currentColor;color:var(--ec-color-interactive);margin-top:.5rem;flex:none;pointer-events:none;display:inline-flex;align-items:center;justify-content:center;height:1em;width:1em;border-radius:.125rem}.ec-icon:before{font-size:.6875em}.label{line-height:1.25rem;padding:.375rem 0;margin-left:.5rem;min-height:2rem;height:auto}.checkbox.is-readonly{pointer-events:none}.checkbox.is-readonly .input{opacity:0}.checkbox.is-readonly .ec-icon{background-color:var(--ec-form-control-background-color-readonly);border-color:var(--ec-form-control-border-color-readonly)}.checkbox.is-readonly .label,.checkbox.is-readonly .ec-icon{opacity:1;color:var(--ec-form-control-color)}.no-label .input,.no-label .icon-check{margin-top:0}\n"], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i5.HelpPopoverComponent, selector: "ec-help-popover", inputs: ["id", "text", "contentPosition", "maxWidth"] }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }] }); }
126
+ }
127
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CheckboxComponent, decorators: [{
128
+ type: Component,
129
+ args: [{ selector: 'ec-checkbox', template: "<div class=\"control\">\r\n <label class=\"checkbox\"\r\n [ngClass]=\"{'is-disabled': formModel.disabled, 'no-label': !label, 'is-readonly': readonly}\">\r\n <input id=\"{{id}}_input\"\r\n #checkboxInput\r\n class='input'\r\n [class.indeterminate]=\"indeterminate\"\r\n [attr.id]=\"inputId\"\r\n [attr.name]=\"name\"\r\n type=\"checkbox\"\r\n tabindex=\"{{tabindex}}\"\r\n [formControl]=\"formModel\"\r\n [attr.cdkFocusInitial]=\"autofocus || null\">\r\n <i class=\"ec-icon icon-check\"></i>\r\n\r\n <span id=\"{{id}}_label\"\r\n *ngIf=\"label\"\r\n class=\"label\">\r\n <span [innerHtml]=\"label | translate\"></span>\r\n <ec-help-popover id=\"{{id}}_helpPopover\"\r\n *ngIf=\"helpPopover\"\r\n class=\"d-inline-block my-n2 mx-n1\"\r\n text=\"{{helpPopover | translate}}\"\r\n contentPosition=\"{{helpPopoverPosition}}\">\r\n </ec-help-popover>\r\n </span>\r\n </label>\r\n</div>", styles: [":host{color:var(--ec-form-control-color);font-size:var(--ec-form-control-font-size);display:block;margin-bottom:1rem;width:100%}:host :host-context(.form-condensed){margin-bottom:.5rem}:host .control{width:100%;display:flex;flex-direction:column}:host .control.control-label-bottom{flex-direction:column-reverse}:host .control.control-label-left{flex-direction:row}:host .control.control-label-left label{margin-right:.25rem}:host .control.control-label-right{flex-direction:row-reverse}:host .control.control-label-right label{margin-left:.25rem}:host .control.control-label-left,:host .control.control-label-right{align-items:center}:host .control.control-label-left label,:host .control.control-label-right label{flex:1 1;margin-top:0;margin-bottom:0}:host .control.control-label-left .control-input,:host .control.control-label-right .control-input{flex:2 2}:host .control.is-readonly input,:host .control.is-readonly select,:host .control.is-readonly textarea{border-color:var(--ec-form-control-border-color-readonly);background-color:var(--ec-form-control-background-color-readonly);background-clip:border-box;background-image:none;color:var(--ec-form-control-color-readonly);opacity:1;-webkit-user-select:none;user-select:none;pointer-events:none;overflow:hidden;white-space:nowrap}:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-invalid,:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-valid{background-color:var(--ec-form-control-background-color-invalid);border-color:var(--ec-form-control-border-color-invalid);background-repeat:no-repeat;background-position:.5rem center;background-size:1rem,1rem;padding-left:1.75rem;background-image:none}:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-invalid:focus,:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-valid:focus{border-color:var(--ec-form-control-background-color-invalid)}:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-invalid~.icon-invalid,:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-valid~.icon-invalid{display:inline-flex;position:absolute;left:.5rem;top:.5rem;z-index:1}:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-invalid~.icon-required,:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-valid~.icon-required{display:none}:host .control.invalid:not(.open) .textbox-group-btn-right ::ng-deep button{background-color:var(--ec-form-control-background-color-invalid)}:host .control.invalid:not(.open) .textbox-group-btn-right ::ng-deep button:not(:focus){border-color:var(--ec-form-control-border-color-invalid)}:host .textbox-group{display:flex;position:relative}:host textarea:focus,:host input:focus,:host select:focus{outline:none}:host(.w-auto){width:auto}.checkbox{cursor:pointer;display:inline-flex;margin-bottom:0;position:relative}.checkbox.is-disabled{cursor:default}.input{margin-top:.5rem;opacity:0;position:absolute;z-index:-1}.input:not(:checked)+.ec-icon{color:var(--ec-form-control-border-color)}.input:not(:checked)+.ec-icon:before{display:none}.input.indeterminate+.ec-icon,.input:indeterminate+.ec-icon{color:var(--ec-color-interactive)}.input.indeterminate+.ec-icon:before,.input:indeterminate+.ec-icon:before{content:\"\";background-color:currentColor;display:block;width:10px;height:3px}.input:focus+.ec-icon{color:var(--ec-color-interactive);box-shadow:var(--ec-form-control-box-shadow-focus);border-color:var(--ec-form-control-border-color-focus)}.input:disabled+.ec-icon{color:var(--ec-form-control-color-disabled);background-color:var(--ec-form-control-background-color-disabled);border-color:var(--ec-form-control-border-color-disabled);opacity:var(--ec-form-control-opacity-disabled)}.input:disabled~.label{color:var(--ec-form-control-color-disabled);opacity:var(--ec-form-control-opacity-disabled)}.ec-icon{background-color:var(--ec-form-control-background-color);background-clip:padding-box;border:1px solid currentColor;color:var(--ec-color-interactive);margin-top:.5rem;flex:none;pointer-events:none;display:inline-flex;align-items:center;justify-content:center;height:1em;width:1em;border-radius:.125rem}.ec-icon:before{font-size:.6875em}.label{line-height:1.25rem;padding:.375rem 0;margin-left:.5rem;min-height:2rem;height:auto}.checkbox.is-readonly{pointer-events:none}.checkbox.is-readonly .input{opacity:0}.checkbox.is-readonly .ec-icon{background-color:var(--ec-form-control-background-color-readonly);border-color:var(--ec-form-control-border-color-readonly)}.checkbox.is-readonly .label,.checkbox.is-readonly .ec-icon{opacity:1;color:var(--ec-form-control-color)}.no-label .input,.no-label .icon-check{margin-top:0}\n"] }]
130
+ }], ctorParameters: () => [{ type: i1.ValidationMessageService }, { type: i2.FormGroupHelper }], propDecorators: { name: [{
131
+ type: Input
132
+ }], dependentCheckboxesGroup: [{
133
+ type: Input
134
+ }], ignoreDisabledDependents: [{
135
+ type: Input
136
+ }], inputElement: [{
137
+ type: ViewChild,
138
+ args: ['checkboxInput', { static: true }]
139
+ }] } });
140
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvbGliL2NvbnRyb2xzL2NoZWNrYm94L2NoZWNrYm94LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2xpYi9jb250cm9scy9jaGVja2JveC9jaGVja2JveC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBYyxLQUFLLEVBQTRCLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVqSCxPQUFPLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0QyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFJakUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHNCQUFzQixDQUFDOzs7Ozs7OztBQVV2RCxNQUFNLE9BQU8saUJBQWtCLFNBQVEsZUFBZTtJQXdDcEQsWUFDWSx3QkFBa0QsRUFDbEQsZUFBZ0M7UUFFMUMsS0FBSyxDQUFDLHdCQUF3QixFQUFFLGVBQWUsQ0FBQyxDQUFDO1FBSHZDLDZCQUF3QixHQUF4Qix3QkFBd0IsQ0FBMEI7UUFDbEQsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBeEM1Qzs7V0FFRztRQUNhLFNBQUksR0FBVyxFQUFFLENBQUM7UUFhbEM7O1dBRUc7UUFDYSw2QkFBd0IsR0FBWSxJQUFJLENBQUM7UUFPekQ7OztXQUdHO1FBQ0ksa0JBQWEsR0FBWSxLQUFLLENBQUM7UUFFdEMsbUdBQW1HO1FBQzNGLGVBQVUsR0FBWSxLQUFLLENBQUM7UUFFcEMsZ0hBQWdIO1FBQ3hHLGdDQUEyQixHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7SUFPMUQsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLElBQUks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Q0EyQk07OzRGRFZPLGlCQUFpQjtrQkFON0IsU0FBUzsrQkFDRSxhQUFhOzJIQVVQLElBQUk7c0JBQW5CLEtBQUs7Z0JBV1Usd0JBQXdCO3NCQUF2QyxLQUFLO2dCQUtVLHdCQUF3QjtzQkFBdkMsS0FBSztnQkFLa0QsWUFBWTtzQkFBbkUsU0FBUzt1QkFBQyxlQUFlLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBJbnB1dCwgT25DaGFuZ2VzLCBTaW1wbGVDaGFuZ2VzLCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBtZXJnZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBWYWxpZGF0aW9uTWVzc2FnZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb3JlL3ZhbGlkYXRpb24tbWVzc2FnZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ2xpY2thYmxlRWxlbWVudCB9IGZyb20gJy4uLy4uL3NoYXJlZC9kaXJlY3RpdmVzL2NsaWNrLWFyZWEtZm9yL2NsaWNrLWFyZWEtZm9yLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IEZvcm1Hcm91cEhlbHBlciB9IGZyb20gJy4uLy4uL3NoYXJlZC9mb3JtLWdyb3VwLmhlbHBlcic7XHJcbmltcG9ydCB7IEZvcm1Db250cm9sQmFzZSB9IGZyb20gXCIuLi9mb3JtLWNvbnRyb2wtYmFzZVwiO1xyXG5cclxuZXhwb3J0IHR5cGUgQ2hlY2tib3hTdGF0ZSA9ICd1bmNoZWNrZWQnIHwgJ2luZGV0ZXJtaW5hdGUnIHwgJ2NoZWNrZWQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdlYy1jaGVja2JveCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2NoZWNrYm94LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9jaGVja2JveC5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcblxyXG5leHBvcnQgY2xhc3MgQ2hlY2tib3hDb21wb25lbnQgZXh0ZW5kcyBGb3JtQ29udHJvbEJhc2UgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBDbGlja2FibGVFbGVtZW50LCBPbkNoYW5nZXMge1xyXG5cclxuICAvKipcclxuICAgKiBUaGUgbmFtZSBvZiB0aGUgY2hlY2tib3ggaW5wdXQgZWxlbWVudFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBuYW1lOiBzdHJpbmcgPSAnJztcclxuXHJcbiAgLyoqXHJcbiAgICogQW4gb2JqZWN0IHdpdGggYSBjb2xsZWN0aW9uIG9mIEZvcm1Db250cm9scyB3aG8gY2FuIG9ubHkgaGF2ZSBhIHZhbHVlIG9mIHRydWUgb3IgZmFsc2UuXHJcbiAgICogQSBGb3JtR3JvdXAgb3IgRm9ybUFycmF5IHdvcmsgZmluZSwgb3IgYSBjdXN0b20gb2JqZWN0IHJlZmVyZW5jZSBpcyBwb3NzaWJsZSB0b29cclxuICAgKiBUaGUgbWFzdGVyIGNoZWNrYm94IHdpbGwgcmVhdHRhY2ggdG8gZGVwZW5kZW50IGNvbnRyb2xzIGFueSB0aW1lIHRoaXMgcmVmZXJlbmNlIGNoYW5nZXNcclxuICAgKiBUaGUgY29udHJvbHMgc2hvdWxkIGJlIGZsYXQgKGkuZS4gaWYgdXNpbmcgYSBGb3JtR3JvdXAgdGhlbiBpdCBjYW5ub3QgaGF2ZSBuZXN0ZWQgRm9ybUdyb3VwcyB3aXRoaW4gaXQpLlxyXG4gICAqIFxyXG4gICAqIEZvciBleGFtcGxlOiBcclxuICAgKiBkZXBlbmRlbnRDaGVja2JveGVzR3JvdXAgPSBuZXcgRm9ybUdyb3VwKHtjaGlsZDE6IG5ldyBGb3JtQ29udHJvbChmYWxzZSksIGNoaWxkMjogbmV3IEZvcm1Db250cm9sKGZhbHNlKSwgY2hpbGQzOiBuZXcgRm9ybUNvbnRyb2woZmFsc2UpfSlcclxuICAgKi9cclxuICBASW5wdXQoKSBwdWJsaWMgZGVwZW5kZW50Q2hlY2tib3hlc0dyb3VwPzoge2NvbnRyb2xzOiBBYnN0cmFjdENvbnRyb2xbXSB8IHtba2V5OiBzdHJpbmddOiBBYnN0cmFjdENvbnRyb2x9fTtcclxuXHJcbiAgLyoqXHJcbiAgICogRGV0ZXJtaW5lcyB3aGV0aGVyIHRvIGlnbm9yZSBvciBpbmNsdWRlIGRpc2FibGVkIGRlcGVuZGVudCBjaGVja2JveGVzIGluIHRoZSBjaGVjayB0byBkZXRlcm1pbmUgdGhlIGNoZWNrYm94IHN0YXRlLlxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBpZ25vcmVEaXNhYmxlZERlcGVuZGVudHM6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICAvKipcclxuICAgKiBSZWZlcmVuY2UgdG8gdGhlIGNoZWNrYm94IGlucHV0IGNvbnRyb2xcclxuICAqL1xyXG4gIEBWaWV3Q2hpbGQoJ2NoZWNrYm94SW5wdXQnLCB7IHN0YXRpYzogdHJ1ZSB9KSBwcm90ZWN0ZWQgaW5wdXRFbGVtZW50ITogRWxlbWVudFJlZjtcclxuXHJcbiAgLyoqXHJcbiAgICogSWYgdGhlIGNoZWNrYm94IGlzIGEgbWFzdGVyIGNoZWNrYm94IChpLmUuIGl0IGhhcyBhIGRlcGVuZGVudENoZWNrYm94ZXNHcm91cCksXHJcbiAgICogaW5kZXRlcm1pbmF0ZSBpcyB0cnVlIGlmIHRoZXJlIGFyZSBzb21lIGNoZWNrZWQgZGVwZW5kZW50cyBhbmQgc29tZSB1bmNoZWNrZWQgZGVwZW5kZW50cy5cclxuICAgKi9cclxuICBwdWJsaWMgaW5kZXRlcm1pbmF0ZTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAvL1VzZWQgdG8gcHJldmVudCB2YWx1ZUNoYW5nZXMgbG9vcHMgaW4gdGhlIG1hc3RlciBjaGVja2JveCBhbmQgZGVwZW5kZW50IGNoZWNrYm94ZXMgdmFsdWUgY2hhbmdlcy5cclxuICBwcml2YXRlIGlnbm9yZUNhbGw6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgLyoqIEZpcmVkIHdoZW5ldmVyIHRoZSBkZXBlbmRlbnQgY2hlY2tib3hlcyBhcmUgY2hhbmdlZCB0byBjbGVhciBvdXQgc3Vic2NyaXB0aW9ucyB0byB0aGUgcHJldmlvdXMgZGVwZW5kZW50cyAqL1xyXG4gIHByaXZhdGUgcmVzZXREZXBlbmRlbnRTdWJzY3JpcHRpb25zID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcm90ZWN0ZWQgdmFsaWRhdGlvbk1lc3NhZ2VTZXJ2aWNlOiBWYWxpZGF0aW9uTWVzc2FnZVNlcnZpY2UsXHJcbiAgICBwcm90ZWN0ZWQgZm9ybUdyb3VwSGVscGVyOiBGb3JtR3JvdXBIZWxwZXJcclxuICApIHtcclxuICAgIHN1cGVyKHZhbGlkYXRpb25NZXNzYWdlU2VydmljZSwgZm9ybUdyb3VwSGVscGVyKTtcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgIGlmICh0aGlzLmF1dG9mb2N1cykge1xyXG4gICAgICB0aGlzLmlucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XHJcbiAgICBpZiAoY2hhbmdlcy5kZXBlbmRlbnRDaGVja2JveGVzR3JvdXApIHtcclxuICAgICAgdGhpcy5zZXR1cERlcGVuZGVudHMoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBkaXNwYXRjaEV2ZW50KGV2ZW50OiBFdmVudCkge1xyXG4gICAgaWYgKGV2ZW50LnR5cGUgPT09ICdjbGljaycgJiYgIXRoaXMuZm9ybU1vZGVsLmRpc2FibGVkKSB7XHJcbiAgICAgIHRoaXMuZm9ybU1vZGVsLnBhdGNoVmFsdWUoIXRoaXMuZm9ybU1vZGVsLnZhbHVlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENyZWF0ZSB3YXRjaGVycyB0aGF0IGFsbG93IHRoZSBtYXN0ZXIgYW5kIGRlcGVuZGVudCBjaGVja2JveCBzdGF0ZXMgdG8gc3RheSBpbiBzeW5jIGFzIHRoZSB1c2VyIGludGVyYWN0cyB3aXRoIHRoZW0uIFxyXG4gICAqIERlcGVuZGVudHMgY2FuIHVwZGF0ZSB0aGUgbWFzdGVyIHdoZW4gdGhlaXIgdmFsdWVzIGNoYW5nZSBhbmQgdGhlIG1hc3RlciB1cGRhdGVzIGRlcGVuZGVudHMgd2hlbiB0aGUgdmFsdWUgY2hhbmdlcy4gXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBzZXR1cERlcGVuZGVudHMoKSB7XHJcbiAgICAgIGlmKCF0aGlzLmRlcGVuZGVudENoZWNrYm94ZXNHcm91cCkge3JldHVybn1cclxuXHJcbiAgICAgIC8vIFJlbW92ZSBhbnkgc3Vic2NyaXB0aW9ucyB0byBwcmV2aW91cyBkZXBlbmRlbnRzXHJcbiAgICAgIHRoaXMucmVzZXREZXBlbmRlbnRTdWJzY3JpcHRpb25zLm5leHQoKTtcclxuXHJcbiAgICAgIC8vRXh0cmFjdCB0aGUgdmFsdWVzIChpLmUuIHRoZSBjaGVja2JveGVzKSBmcm9tIHRoZSBGb3JtR3JvdXAgY29udHJvbHMga2V5LXZhbHVlIG1hcCBhbmQgcmV0dXJuIHRoZW0uIFxyXG4gICAgICBsZXQgZGVwZW5kZW50Q2hlY2tib3hlczogQWJzdHJhY3RDb250cm9sW10gPSBPYmplY3QudmFsdWVzKHRoaXMuZGVwZW5kZW50Q2hlY2tib3hlc0dyb3VwLmNvbnRyb2xzKTtcclxuXHJcbiAgICAgIHRoaXMudXBkYXRlTWFzdGVyU3RhdGUoZGVwZW5kZW50Q2hlY2tib3hlcyk7XHJcblxyXG4gICAgICAvL1doZW4gdGhlIG1hc3RlciB2YWx1ZSBjaGFuZ2VzLCB3ZSBzZXQgYWxsIGl0cyBkZXBlbmRlbnRzIHRvIHRoYXQgdmFsdWUuXHJcbiAgICAgIC8vV2UgYWxzbyBzZXQgaW5kZXRlcm1pbmF0ZSB0byBmYWxzZSBzaW5jZSB3ZSBrbm93IHRoYXQgYWxsIGRlcGVuZGVudHMgd2lsbCBlaXRoZXIgYmUgY2hlY2tlZCBvciB1bmNoZWNrZWQuXHJcbiAgICAgIHRoaXMuZm9ybU1vZGVsLnZhbHVlQ2hhbmdlcy5waXBlKFxyXG4gICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXHJcbiAgICAgICAgdGFrZVVudGlsKG1lcmdlKHRoaXMuY29tcG9uZW50RGVzdHJveWVkLCB0aGlzLnJlc2V0RGVwZW5kZW50U3Vic2NyaXB0aW9ucykpXHJcbiAgICAgICkuc3Vic2NyaWJlKCh2YWx1ZTogYm9vbGVhbikgPT4ge1xyXG4gICAgICAgIGlmKCF0aGlzLmlnbm9yZUNhbGwpIHtcclxuICAgICAgICAgIHRoaXMuaWdub3JlQ2FsbCA9IHRydWU7IC8vSWdub3JlIGFueSB2YWx1ZSBjaGFuZ2VzIGNhbGxzIG9uIHRoZSBkZXBlbmRlbnRzIHRvIHByZXZlbnQgYSBsb29wLlxyXG4gICAgICAgICAgZGVwZW5kZW50Q2hlY2tib3hlcy5mb3JFYWNoKGNoZWNrYm94ID0+IHtcclxuICAgICAgICAgICAgaWYgKCFjaGVja2JveC5kaXNhYmxlZCB8fCAhdGhpcy5pZ25vcmVEaXNhYmxlZERlcGVuZGVudHMpIHtcclxuICAgICAgICAgICAgICBjaGVja2JveC5zZXRWYWx1ZSh2YWx1ZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgICB0aGlzLmluZGV0ZXJtaW5hdGUgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMuaWdub3JlQ2FsbCA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgfSlcclxuXHJcbiAgICAgIC8vV2hlbiBhIGRlcGVuZGVudCB2YWx1ZSBjaGFuZ2VzLCB3ZSBuZWVkIHRvIHJlZXZhbHVhdGUgdGhlIG1hc3RlciBzdGF0ZS5cclxuICAgICAgLy9XZSBhcmUgc3Vic2NyaWJpbmcgdG8gdGhlIGZvcm0gbW9kZWxzIGRpcmVjdGx5IGluc3RlYWQgb2YgdGhlIGVudGlyZSBncm91cCBiZWNhdXNlIHdlIGZvdW5kIHRoYXQgYWRkaW5nIGNoZWNrYm94ZXMgdG8gXHJcbiAgICAgIC8vICBtb3JlIHRoYW4gb25lIGZvcm0gZ3JvdXAgY2F1c2VzIG9ubHkgdGhlIGxhc3QgZ3JvdXAgdG8gZW1pdCB2YWx1ZUNoYW5nZXMgZXZlbnRzLiBcclxuICAgICAgLy9UaGF0IHByZXZlbnRlZCBjb21iaW5lZCByb3ctbWFzdGVyIGFuZCB0YWJsZS1tYXN0ZXIgc2V0dXBzIGZyb20gd29ya2luZyBwcm9wZXJseS5cclxuICAgICAgZGVwZW5kZW50Q2hlY2tib3hlcy5mb3JFYWNoKGNoZWNrYm94ID0+IHtcclxuICAgICAgICAgIGNoZWNrYm94LnZhbHVlQ2hhbmdlcy5waXBlKFxyXG4gICAgICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxyXG4gICAgICAgICAgICB0YWtlVW50aWwobWVyZ2UodGhpcy5jb21wb25lbnREZXN0cm95ZWQsIHRoaXMucmVzZXREZXBlbmRlbnRTdWJzY3JpcHRpb25zKSlcclxuICAgICAgICAgICkuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xyXG4gICAgICAgICAgICBpZih2YWx1ZSAhPT0gdHJ1ZSAmJiB2YWx1ZSAhPT0gZmFsc2UpIHtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoYFRoZSB2YWx1ZSAke3ZhbHVlfSBpcyBub3QgdHJ1ZSBvciBmYWxzZSwgd2hpY2ggYXJlIHRoZSBvbmx5IHN1cHBvcnRlZCB2YWx1ZXMgZm9yIEZvcm1Db250cm9scyBpbiB0aGUgZGVwZW5kZW50Q2hlY2tib3hlc0dyb3VwYCk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYoIXRoaXMuaWdub3JlQ2FsbCkge1xyXG4gICAgICAgICAgICAgIHRoaXMuaWdub3JlQ2FsbCA9IHRydWU7IC8vSWdub3JlIGFueSB2YWx1ZSBjaGFuZ2VzIGNhbGxzIG9uIHRoZSBtYXN0ZXIgdG8gcHJldmVudCBhIGxvb3AuXHJcbiAgICAgICAgICAgICAgdGhpcy51cGRhdGVNYXN0ZXJTdGF0ZShkZXBlbmRlbnRDaGVja2JveGVzKTtcclxuICAgICAgICAgICAgICB0aGlzLmlnbm9yZUNhbGwgPSBmYWxzZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSlcclxuICAgICAgfSlcclxuICB9XHJcblxyXG4gIC8qKiBcclxuICAgKiBJZiBhbGwgZGVwZW5kZW50cyBhcmUgdHJ1ZSwgdGhlIG1hc3RlciBzaG91bGQgYmUgdHJ1ZSBhbmQgZGV0ZXJtaW5hdGUuXHJcbiAgICogSWYgYWxsIGRlcGVuZGVudHMgYXJlIGZhbHNlLCB0aGUgbWFzdGVyIHNob3VsZCBiZSBmYWxzZSBhbmQgZGV0ZXJtaW5hdGUuXHJcbiAgICogSWYgc29tZSBkZXBlbmRlbnRzIGFyZSB0cnVlIGFuZCBzb21lIGRlcGVuZGVudHMgYXJlIGZhbHNlLCB0aGUgbWFzdGVyIHNob3VsZCBiZSBmYWxzZSBhbmQgaW5kZXRlcm1pbmF0ZS5cclxuICAgKiBcclxuICAgKiBJZiBpZ25vcmVEaXNhYmxlZERlcGVuZGVudHMgaXMgdHJ1ZSwgZG9lcyBub3QgaW5jbHVkZSB0aGUgZGlzYWJsZWQgZGVwZW5kZW50cyB3aGVuIGNoZWNraW5nIHZhbHVlc1xyXG4gICovXHJcbiAgcHJpdmF0ZSB1cGRhdGVNYXN0ZXJTdGF0ZShkZXBlbmRlbnRDaGVja2JveGVzOiBBYnN0cmFjdENvbnRyb2xbXSkge1xyXG4gICAgbGV0IGRlcGVuZGVudHNUb0NoZWNrID0gW107XHJcbiAgICBpZiAodGhpcy5pZ25vcmVEaXNhYmxlZERlcGVuZGVudHMpIHtcclxuICAgICAgZGVwZW5kZW50c1RvQ2hlY2sgPSBkZXBlbmRlbnRDaGVja2JveGVzLmZpbHRlcihjaGVja2JveCA9PiBjaGVja2JveC5lbmFibGVkKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGRlcGVuZGVudHNUb0NoZWNrID0gZGVwZW5kZW50Q2hlY2tib3hlcztcclxuICAgIH1cclxuXHJcbiAgICBsZXQgaXNUcnVlID0gKGNoZWNrYm94OiBBYnN0cmFjdENvbnRyb2wpID0+IHtyZXR1cm4gY2hlY2tib3gudmFsdWUgPT09IHRydWV9O1xyXG4gICAgaWYoZGVwZW5kZW50c1RvQ2hlY2suZXZlcnkoaXNUcnVlKSkge1xyXG4gICAgICAgIHRoaXMuZm9ybU1vZGVsLnNldFZhbHVlKHRydWUpO1xyXG4gICAgICAgIHRoaXMuaW5kZXRlcm1pbmF0ZSA9IGZhbHNlO1xyXG4gICAgfSBlbHNlIGlmKGRlcGVuZGVudHNUb0NoZWNrLnNvbWUoaXNUcnVlKSkge1xyXG4gICAgICAgIHRoaXMuZm9ybU1vZGVsLnNldFZhbHVlKGZhbHNlKTtcclxuICAgICAgICB0aGlzLmluZGV0ZXJtaW5hdGUgPSB0cnVlO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmZvcm1Nb2RlbC5zZXRWYWx1ZShmYWxzZSk7XHJcbiAgICAgICAgdGhpcy5pbmRldGVybWluYXRlID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxufSIsIjxkaXYgY2xhc3M9XCJjb250cm9sXCI+XHJcbiAgICAgICA8bGFiZWwgY2xhc3M9XCJjaGVja2JveFwiXHJcbiAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieydpcy1kaXNhYmxlZCc6IGZvcm1Nb2RlbC5kaXNhYmxlZCwgJ25vLWxhYmVsJzogIWxhYmVsLCAnaXMtcmVhZG9ubHknOiByZWFkb25seX1cIj5cclxuICAgICAgICAgICAgICA8aW5wdXQgaWQ9XCJ7e2lkfX1faW5wdXRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAjY2hlY2tib3hJbnB1dFxyXG4gICAgICAgICAgICAgICAgICAgICBjbGFzcz0naW5wdXQnXHJcbiAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5pbmRldGVybWluYXRlXT1cImluZGV0ZXJtaW5hdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICBbYXR0ci5pZF09XCJpbnB1dElkXCJcclxuICAgICAgICAgICAgICAgICAgICAgW2F0dHIubmFtZV09XCJuYW1lXCJcclxuICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcclxuICAgICAgICAgICAgICAgICAgICAgdGFiaW5kZXg9XCJ7e3RhYmluZGV4fX1cIlxyXG4gICAgICAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwiZm9ybU1vZGVsXCJcclxuICAgICAgICAgICAgICAgICAgICAgW2F0dHIuY2RrRm9jdXNJbml0aWFsXT1cImF1dG9mb2N1cyB8fCBudWxsXCI+XHJcbiAgICAgICAgICAgICAgPGkgY2xhc3M9XCJlYy1pY29uIGljb24tY2hlY2tcIj48L2k+XHJcblxyXG4gICAgICAgICAgICAgIDxzcGFuIGlkPVwie3tpZH19X2xhYmVsXCJcclxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImxhYmVsXCJcclxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImxhYmVsXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgIDxzcGFuIFtpbm5lckh0bWxdPVwibGFiZWwgfCB0cmFuc2xhdGVcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgIDxlYy1oZWxwLXBvcG92ZXIgaWQ9XCJ7e2lkfX1faGVscFBvcG92ZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaGVscFBvcG92ZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZC1pbmxpbmUtYmxvY2sgbXktbjIgbXgtbjFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleHQ9XCJ7e2hlbHBQb3BvdmVyIHwgdHJhbnNsYXRlfX1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnRQb3NpdGlvbj1cInt7aGVscFBvcG92ZXJQb3NpdGlvbn19XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgIDwvZWMtaGVscC1wb3BvdmVyPlxyXG4gICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgIDwvbGFiZWw+XHJcbjwvZGl2PiJdfQ==
@@ -1,38 +1,38 @@
1
- import { Component, Input, EventEmitter, Output } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- import * as i1 from "../button/button.component";
4
- export class CollapsibleToggleComponent {
5
- constructor() {
6
- /**
7
- * The expanded state.
8
- * The toggle icon is changed in the template based on the value of expanded.
9
- */
10
- this.expanded = false;
11
- /**
12
- * Emits the value of expanded to the parent component for two-way binding
13
- */
14
- this.expandedChange = new EventEmitter();
15
- }
16
- /**
17
- * On click, toggle the value of exanded and emit the current value
18
- */
19
- onToggle() {
20
- this.expanded = !this.expanded;
21
- this.expandedChange.emit(this.expanded);
22
- }
23
- }
24
- CollapsibleToggleComponentfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: CollapsibleToggleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
25
- CollapsibleToggleComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: CollapsibleToggleComponent, selector: "ec-collapsible-toggle", inputs: { id: "id", expanded: "expanded", tabindex: "tabindex" }, outputs: { expandedChange: "expandedChange" }, ngImport: i0, template: `<ec-button id="{{id}}_button" type="icon" icon="icon-angle-down {{expanded ? '' : 'rotate-270'}}" tabindex="{{tabindex}}" (clicked)="onToggle()"></ec-button>`, isInline: true, styles: [":host{width:1.5rem;height:1.5rem;display:inline-flex;justify-content:center;align-items:center}ec-button::ng-deep .ec-button-icon{width:1.25rem;height:1.25rem}\n"], dependencies: [{ kind: "component", type: i1.ButtonComponent, selector: "ec-button", inputs: ["id", "disabled", "icon", "label", "badge", "tabindex", "type", "pending", "pendingIcon", "customTemplate", "isSubmit", "autofocus"], outputs: ["clicked"] }] });
26
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: CollapsibleToggleComponent, decorators: [{
27
- type: Component,
28
- args: [{ selector: 'ec-collapsible-toggle', template: `<ec-button id="{{id}}_button" type="icon" icon="icon-angle-down {{expanded ? '' : 'rotate-270'}}" tabindex="{{tabindex}}" (clicked)="onToggle()"></ec-button>`, styles: [":host{width:1.5rem;height:1.5rem;display:inline-flex;justify-content:center;align-items:center}ec-button::ng-deep .ec-button-icon{width:1.25rem;height:1.25rem}\n"] }]
29
- }], propDecorators: { id: [{
30
- type: Input
31
- }], expanded: [{
32
- type: Input
33
- }], tabindex: [{
34
- type: Input
35
- }], expandedChange: [{
36
- type: Output
37
- }] } });
38
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbGFwc2libGUtdG9nZ2xlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2xpYi9jb250cm9scy9jb2xsYXBzaWJsZS10b2dnbGUvY29sbGFwc2libGUtdG9nZ2xlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFPdkUsTUFBTSxPQUFPLDBCQUEwQjtJQUx2QztRQVlFOzs7V0FHRztRQUNhLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFLMUM7O1dBRUc7UUFDYyxtQkFBYyxHQUEwQixJQUFJLFlBQVksRUFBVyxDQUFDO0tBU3RGO0lBUEM7O09BRUc7SUFDSSxRQUFRO1FBQ2IsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7UUFDL0IsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzFDLENBQUM7O3VIQTNCVSwwQkFBMEI7MkdBQTFCLDBCQUEwQiw4S0FIM0IsK0pBQStKOzJGQUc5SiwwQkFBMEI7a0JBTHRDLFNBQVM7K0JBQ0UsdUJBQXVCLFlBQ3ZCLCtKQUErSjs4QkFRekosRUFBRTtzQkFBakIsS0FBSztnQkFNVSxRQUFRO3NCQUF2QixLQUFLO2dCQUdVLFFBQVE7c0JBQXZCLEtBQUs7Z0JBS1csY0FBYztzQkFBOUIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIEV2ZW50RW1pdHRlciwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2VjLWNvbGxhcHNpYmxlLXRvZ2dsZScsXHJcbiAgdGVtcGxhdGU6IGA8ZWMtYnV0dG9uIGlkPVwie3tpZH19X2J1dHRvblwiIHR5cGU9XCJpY29uXCIgaWNvbj1cImljb24tYW5nbGUtZG93biB7e2V4cGFuZGVkID8gJycgOiAncm90YXRlLTI3MCd9fVwiIHRhYmluZGV4PVwie3t0YWJpbmRleH19XCIgKGNsaWNrZWQpPVwib25Ub2dnbGUoKVwiPjwvZWMtYnV0dG9uPmAsXHJcbiAgc3R5bGVVcmxzOiBbJy4vY29sbGFwc2libGUtdG9nZ2xlLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIENvbGxhcHNpYmxlVG9nZ2xlQ29tcG9uZW50IHtcclxuXHJcbiAgLyoqIFxyXG4gICAqIElkZW50aWZpZXIgdG8gcGFzcyB0byB0aGUgYnV0dG9uIFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBpZD86IHN0cmluZztcclxuXHJcbiAgLyoqIFxyXG4gICAqIFRoZSBleHBhbmRlZCBzdGF0ZS4gXHJcbiAgICogVGhlIHRvZ2dsZSBpY29uIGlzIGNoYW5nZWQgaW4gdGhlIHRlbXBsYXRlIGJhc2VkIG9uIHRoZSB2YWx1ZSBvZiBleHBhbmRlZC4gXHJcbiAgICovXHJcbiAgQElucHV0KCkgcHVibGljIGV4cGFuZGVkOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIC8qKiBCdXR0b24gdGFiaW5kZXggKi9cclxuICBASW5wdXQoKSBwdWJsaWMgdGFiaW5kZXg/OiBudW1iZXI7XHJcblxyXG4gIC8qKlxyXG4gICAqIEVtaXRzIHRoZSB2YWx1ZSBvZiBleHBhbmRlZCB0byB0aGUgcGFyZW50IGNvbXBvbmVudCBmb3IgdHdvLXdheSBiaW5kaW5nXHJcbiAgICovXHJcbiAgQE91dHB1dCgpIHB1YmxpYyBleHBhbmRlZENoYW5nZTogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xyXG4gIFxyXG4gIC8qKlxyXG4gICAqIE9uIGNsaWNrLCB0b2dnbGUgdGhlIHZhbHVlIG9mIGV4YW5kZWQgYW5kIGVtaXQgdGhlIGN1cnJlbnQgdmFsdWVcclxuICAgKi9cclxuICBwdWJsaWMgb25Ub2dnbGUoKTogdm9pZCB7XHJcbiAgICB0aGlzLmV4cGFuZGVkID0gIXRoaXMuZXhwYW5kZWQ7XHJcbiAgICB0aGlzLmV4cGFuZGVkQ2hhbmdlLmVtaXQodGhpcy5leHBhbmRlZCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
1
+ import { Component, Input, EventEmitter, Output } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "../button/button.component";
4
+ export class CollapsibleToggleComponent {
5
+ constructor() {
6
+ /**
7
+ * The expanded state.
8
+ * The toggle icon is changed in the template based on the value of expanded.
9
+ */
10
+ this.expanded = false;
11
+ /**
12
+ * Emits the value of expanded to the parent component for two-way binding
13
+ */
14
+ this.expandedChange = new EventEmitter();
15
+ }
16
+ /**
17
+ * On click, toggle the value of exanded and emit the current value
18
+ */
19
+ onToggle() {
20
+ this.expanded = !this.expanded;
21
+ this.expandedChange.emit(this.expanded);
22
+ }
23
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CollapsibleToggleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
24
+ static { thiscmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: CollapsibleToggleComponent, selector: "ec-collapsible-toggle", inputs: { id: "id", expanded: "expanded", tabindex: "tabindex" }, outputs: { expandedChange: "expandedChange" }, ngImport: i0, template: `<ec-button id="{{id}}_button" type="icon" icon="icon-angle-down {{expanded ? '' : 'rotate-270'}}" tabindex="{{tabindex}}" (clicked)="onToggle()"></ec-button>`, isInline: true, styles: [":host{width:1.5rem;height:1.5rem;display:inline-flex;justify-content:center;align-items:center}ec-button::ng-deep .ec-button-icon{width:1.25rem;height:1.25rem}\n"], dependencies: [{ kind: "component", type: i1.ButtonComponent, selector: "ec-button", inputs: ["id", "disabled", "icon", "label", "badge", "tabindex", "type", "pending", "pendingIcon", "customTemplate", "isSubmit", "autofocus"], outputs: ["clicked"] }] }); }
25
+ }
26
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CollapsibleToggleComponent, decorators: [{
27
+ type: Component,
28
+ args: [{ selector: 'ec-collapsible-toggle', template: `<ec-button id="{{id}}_button" type="icon" icon="icon-angle-down {{expanded ? '' : 'rotate-270'}}" tabindex="{{tabindex}}" (clicked)="onToggle()"></ec-button>`, styles: [":host{width:1.5rem;height:1.5rem;display:inline-flex;justify-content:center;align-items:center}ec-button::ng-deep .ec-button-icon{width:1.25rem;height:1.25rem}\n"] }]
29
+ }], propDecorators: { id: [{
30
+ type: Input
31
+ }], expanded: [{
32
+ type: Input
33
+ }], tabindex: [{
34
+ type: Input
35
+ }], expandedChange: [{
36
+ type: Output
37
+ }] } });
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbGFwc2libGUtdG9nZ2xlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2xpYi9jb250cm9scy9jb2xsYXBzaWJsZS10b2dnbGUvY29sbGFwc2libGUtdG9nZ2xlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFPdkUsTUFBTSxPQUFPLDBCQUEwQjtJQUx2QztRQVlFOzs7V0FHRztRQUNhLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFLMUM7O1dBRUc7UUFDYyxtQkFBYyxHQUEwQixJQUFJLFlBQVksRUFBVyxDQUFDO0tBU3RGO0lBUEM7O09BRUc7SUFDSSxRQUFRO1FBQ2IsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7UUFDL0IsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzFDLENBQUM7K0dBM0JVLDBCQUEwQjttR0FBMUIsMEJBQTBCLDhLQUgzQiwrSkFBK0o7OzRGQUc5SiwwQkFBMEI7a0JBTHRDLFNBQVM7K0JBQ0UsdUJBQXVCLFlBQ3ZCLCtKQUErSjs4QkFRekosRUFBRTtzQkFBakIsS0FBSztnQkFNVSxRQUFRO3NCQUF2QixLQUFLO2dCQUdVLFFBQVE7c0JBQXZCLEtBQUs7Z0JBS1csY0FBYztzQkFBOUIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIEV2ZW50RW1pdHRlciwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2VjLWNvbGxhcHNpYmxlLXRvZ2dsZScsXHJcbiAgdGVtcGxhdGU6IGA8ZWMtYnV0dG9uIGlkPVwie3tpZH19X2J1dHRvblwiIHR5cGU9XCJpY29uXCIgaWNvbj1cImljb24tYW5nbGUtZG93biB7e2V4cGFuZGVkID8gJycgOiAncm90YXRlLTI3MCd9fVwiIHRhYmluZGV4PVwie3t0YWJpbmRleH19XCIgKGNsaWNrZWQpPVwib25Ub2dnbGUoKVwiPjwvZWMtYnV0dG9uPmAsXHJcbiAgc3R5bGVVcmxzOiBbJy4vY29sbGFwc2libGUtdG9nZ2xlLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIENvbGxhcHNpYmxlVG9nZ2xlQ29tcG9uZW50IHtcclxuXHJcbiAgLyoqIFxyXG4gICAqIElkZW50aWZpZXIgdG8gcGFzcyB0byB0aGUgYnV0dG9uIFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBpZD86IHN0cmluZztcclxuXHJcbiAgLyoqIFxyXG4gICAqIFRoZSBleHBhbmRlZCBzdGF0ZS4gXHJcbiAgICogVGhlIHRvZ2dsZSBpY29uIGlzIGNoYW5nZWQgaW4gdGhlIHRlbXBsYXRlIGJhc2VkIG9uIHRoZSB2YWx1ZSBvZiBleHBhbmRlZC4gXHJcbiAgICovXHJcbiAgQElucHV0KCkgcHVibGljIGV4cGFuZGVkOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIC8qKiBCdXR0b24gdGFiaW5kZXggKi9cclxuICBASW5wdXQoKSBwdWJsaWMgdGFiaW5kZXg/OiBudW1iZXI7XHJcblxyXG4gIC8qKlxyXG4gICAqIEVtaXRzIHRoZSB2YWx1ZSBvZiBleHBhbmRlZCB0byB0aGUgcGFyZW50IGNvbXBvbmVudCBmb3IgdHdvLXdheSBiaW5kaW5nXHJcbiAgICovXHJcbiAgQE91dHB1dCgpIHB1YmxpYyBleHBhbmRlZENoYW5nZTogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xyXG4gIFxyXG4gIC8qKlxyXG4gICAqIE9uIGNsaWNrLCB0b2dnbGUgdGhlIHZhbHVlIG9mIGV4YW5kZWQgYW5kIGVtaXQgdGhlIGN1cnJlbnQgdmFsdWVcclxuICAgKi9cclxuICBwdWJsaWMgb25Ub2dnbGUoKTogdm9pZCB7XHJcbiAgICB0aGlzLmV4cGFuZGVkID0gIXRoaXMuZXhwYW5kZWQ7XHJcbiAgICB0aGlzLmV4cGFuZGVkQ2hhbmdlLmVtaXQodGhpcy5leHBhbmRlZCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==