@energycap/components 0.31.5 → 0.32.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 (292) hide show
  1. package/energycap-components.min.css +2 -2
  2. package/energycap-email.min.css +1 -1
  3. package/esm2020/energycap-components.mjs +5 -0
  4. package/esm2020/lib/components.module.mjs +386 -0
  5. package/esm2020/lib/controls/banner/banner.component.mjs +106 -0
  6. package/esm2020/lib/controls/button/button.component.mjs +106 -0
  7. package/esm2020/lib/controls/button/copy-button.directive.mjs +65 -0
  8. package/esm2020/lib/controls/checkbox/checkbox.component.mjs +139 -0
  9. package/esm2020/lib/controls/collapsible-toggle/collapsible-toggle.component.mjs +38 -0
  10. package/esm2020/lib/controls/combobox/combobox.component.mjs +841 -0
  11. package/esm2020/lib/controls/dropdown/dropdown.component.mjs +237 -0
  12. package/esm2020/lib/controls/file-upload/file-upload.component.mjs +169 -0
  13. package/esm2020/lib/controls/form-control/form-control.component.mjs +86 -0
  14. package/esm2020/lib/controls/form-control-base.mjs +143 -0
  15. package/esm2020/lib/controls/form-control-label/form-control-label.component.mjs +136 -0
  16. package/esm2020/lib/controls/form-group/form-group.component.mjs +252 -0
  17. package/esm2020/lib/controls/help-popover/help-popover.component.mjs +28 -0
  18. package/esm2020/lib/controls/item-picker/item-picker.component.mjs +233 -0
  19. package/esm2020/lib/controls/link-button/link-button.component.mjs +11 -0
  20. package/esm2020/lib/controls/menu/menu.component.mjs +443 -0
  21. package/{esm2015/lib/controls/navigation/link-item.js → esm2020/lib/controls/navigation/link-item.mjs} +0 -0
  22. package/{esm2015/lib/controls/navigation/nav-group.js → esm2020/lib/controls/navigation/nav-group.mjs} +0 -0
  23. package/esm2020/lib/controls/navigation/nav-item-active.directive.mjs +92 -0
  24. package/{esm2015/lib/controls/navigation/nav-item.js → esm2020/lib/controls/navigation/nav-item.mjs} +0 -0
  25. package/esm2020/lib/controls/numericbox/numericbox.component.mjs +371 -0
  26. package/esm2020/lib/controls/popover/popover.component.mjs +84 -0
  27. package/{esm2015/lib/controls/radio-button/radio-button-option.js → esm2020/lib/controls/radio-button/radio-button-option.mjs} +0 -0
  28. package/esm2020/lib/controls/radio-button/radio-button.component.mjs +81 -0
  29. package/esm2020/lib/controls/select/select.component.mjs +87 -0
  30. package/esm2020/lib/controls/tabs/tabs.component.mjs +47 -0
  31. package/esm2020/lib/controls/textbox/textbox.component.mjs +154 -0
  32. package/{esm2015/lib/core/cache.service.js → esm2020/lib/core/cache.service.mjs} +9 -8
  33. package/{esm2015/lib/core/custom-validators.js → esm2020/lib/core/custom-validators.mjs} +0 -0
  34. package/{esm2015/lib/core/date-time-helper.js → esm2020/lib/core/date-time-helper.mjs} +0 -0
  35. package/esm2020/lib/core/error.service.mjs +57 -0
  36. package/esm2020/lib/core/scroll.service.mjs +89 -0
  37. package/esm2020/lib/core/telemetry-tracker.service.mjs +16 -0
  38. package/esm2020/lib/core/telemetry.service.mjs +38 -0
  39. package/esm2020/lib/core/validation-message.service.mjs +181 -0
  40. package/{esm2015/lib/core/validation-patterns.js → esm2020/lib/core/validation-patterns.mjs} +0 -0
  41. package/esm2020/lib/core/window.service.mjs +182 -0
  42. package/esm2020/lib/display/app-bar/app-bar.component.mjs +46 -0
  43. package/esm2020/lib/display/avatar/avatar.component.mjs +67 -0
  44. package/{esm2015/lib/display/avatar/avatar.service.js → esm2020/lib/display/avatar/avatar.service.mjs} +9 -7
  45. package/esm2020/lib/display/confirm/confirm.component.mjs +131 -0
  46. package/{esm2015/lib/display/dialog/dialog-content.js → esm2020/lib/display/dialog/dialog-content.mjs} +0 -0
  47. package/esm2020/lib/display/dialog/dialog-group/dialog-group.component.mjs +63 -0
  48. package/{esm2015/lib/display/dialog/dialog-types.js → esm2020/lib/display/dialog/dialog-types.mjs} +0 -0
  49. package/esm2020/lib/display/dialog/dialog.component.mjs +242 -0
  50. package/esm2020/lib/display/dialog/dialog.service.mjs +71 -0
  51. package/{esm2015/lib/display/help/help-types.js → esm2020/lib/display/help/help-types.mjs} +0 -0
  52. package/esm2020/lib/display/hierarchy/hierarchy-base.mjs +106 -0
  53. package/{esm2015/lib/display/hierarchy/hierarchy-mocks.spec.js → esm2020/lib/display/hierarchy/hierarchy-mocks.spec.mjs} +5 -9
  54. package/esm2020/lib/display/hierarchy/hierarchy-tree/hierarchy-tree.component.mjs +59 -0
  55. package/esm2020/lib/display/item-display/item-display.component.mjs +67 -0
  56. package/esm2020/lib/display/json-display/json-display.component.mjs +47 -0
  57. package/esm2020/lib/display/resizable/resizable-base.mjs +120 -0
  58. package/esm2020/lib/display/resizable/resizable.component.mjs +57 -0
  59. package/esm2020/lib/display/spinner/spinner.component.mjs +12 -0
  60. package/esm2020/lib/display/splash/splash.component.mjs +42 -0
  61. package/esm2020/lib/display/splash/splash.service.mjs +35 -0
  62. package/esm2020/lib/display/table/resizable-column.component.mjs +20 -0
  63. package/esm2020/lib/display/table/resizable-table.directive.mjs +227 -0
  64. package/esm2020/lib/display/table/searchable-table.component.mjs +338 -0
  65. package/esm2020/lib/display/table/table-detail-row.component.mjs +27 -0
  66. package/esm2020/lib/display/table/table-locked-column.component.mjs +58 -0
  67. package/esm2020/lib/display/table/table-master-header-row.component.mjs +11 -0
  68. package/esm2020/lib/display/table/table-master-row.component.mjs +150 -0
  69. package/esm2020/lib/display/table/table-pagination.component.mjs +150 -0
  70. package/esm2020/lib/display/table/table-selectable-row.component.mjs +235 -0
  71. package/esm2020/lib/display/table/table.component.mjs +244 -0
  72. package/esm2020/lib/display/tags/tag.mjs +15 -0
  73. package/esm2020/lib/display/tags/tags.component.mjs +77 -0
  74. package/esm2020/lib/display/toast/toast/toast.component.mjs +77 -0
  75. package/{esm2015/lib/display/toast/toast-types.js → esm2020/lib/display/toast/toast-types.mjs} +0 -0
  76. package/esm2020/lib/display/toast/toast.service.mjs +35 -0
  77. package/esm2020/lib/display/toast/toaster/toaster.component.mjs +114 -0
  78. package/esm2020/lib/display/tooltip/tooltip.component.mjs +25 -0
  79. package/esm2020/lib/display/tooltip/tooltip.service.mjs +63 -0
  80. package/esm2020/lib/display/tree/tree.component.mjs +125 -0
  81. package/esm2020/lib/display/view-overlay/view-overlay.component.mjs +58 -0
  82. package/esm2020/lib/shared/directives/click-area-for/click-area-for.directive.mjs +32 -0
  83. package/esm2020/lib/shared/directives/if-viewport-width/if-viewport-width.directive.mjs +111 -0
  84. package/esm2020/lib/shared/directives/popup/popup-container.directive.mjs +163 -0
  85. package/esm2020/lib/shared/display/pipes/date-display.pipe.mjs +50 -0
  86. package/esm2020/lib/shared/display/pipes/highlight-text.pipe.mjs +30 -0
  87. package/esm2020/lib/shared/display/pipes/relative-date.pipe.mjs +48 -0
  88. package/esm2020/lib/shared/display/pipes/row-count.pipe.mjs +48 -0
  89. package/esm2020/lib/shared/display/pipes/time-display.pipe.mjs +41 -0
  90. package/{esm2015/lib/shared/display.js → esm2020/lib/shared/display.mjs} +0 -0
  91. package/esm2020/lib/shared/form-group.helper.mjs +67 -0
  92. package/{esm2015/lib/shared/json-helper.js → esm2020/lib/shared/json-helper.mjs} +0 -0
  93. package/{esm2015/lib/shared/lodash-helper.js → esm2020/lib/shared/lodash-helper.mjs} +0 -0
  94. package/esm2020/lib/shared/page/page-base/page-base.component.mjs +339 -0
  95. package/{esm2015/lib/shared/page/page-statuses.js → esm2020/lib/shared/page/page-statuses.mjs} +0 -0
  96. package/esm2020/lib/shared/page/page-title/page-title.component.mjs +23 -0
  97. package/esm2020/lib/shared/page/page-view/page-view.component.mjs +121 -0
  98. package/{esm2015/lib/shared/testing/hierarchy-base-test-injector-factory.spec.js → esm2020/lib/shared/testing/hierarchy-base-test-injector-factory.spec.mjs} +0 -0
  99. package/esm2020/lib/shared/testing/page-base-component-test-helper.spec.mjs +30 -0
  100. package/{esm2015/lib/shared/testing/page-base-component-test-injector-factory.spec.js → esm2020/lib/shared/testing/page-base-component-test-injector-factory.spec.mjs} +0 -0
  101. package/esm2020/lib/shared/testing/public-mocks.spec.mjs +132 -0
  102. package/{esm2015/lib/shared/testing/spy-factory.spec.js → esm2020/lib/shared/testing/spy-factory.spec.mjs} +0 -0
  103. package/{esm2015/lib/shared/testing/translation-mocks.spec.js → esm2020/lib/shared/testing/translation-mocks.spec.mjs} +0 -0
  104. package/esm2020/lib/shared/user-preference.service.mjs +17 -0
  105. package/esm2020/lib/shared/wizard/wizard-base/wizard-base.component.mjs +246 -0
  106. package/esm2020/lib/shared/wizard/wizard-buttons/wizard-buttons.component.mjs +68 -0
  107. package/esm2020/lib/shared/wizard/wizard-progress/wizard-progress.component.mjs +18 -0
  108. package/{esm2015/public-api.js → esm2020/public-api.mjs} +0 -0
  109. package/fesm2015/energycap-components.mjs +10090 -0
  110. package/fesm2015/energycap-components.mjs.map +1 -0
  111. package/fesm2020/energycap-components.mjs +9999 -0
  112. package/fesm2020/energycap-components.mjs.map +1 -0
  113. package/index.d.ts +5 -0
  114. package/lib/components.module.d.ts +72 -0
  115. package/lib/controls/banner/banner.component.d.ts +3 -0
  116. package/lib/controls/button/button.component.d.ts +3 -0
  117. package/lib/controls/button/copy-button.directive.d.ts +3 -0
  118. package/lib/controls/checkbox/checkbox.component.d.ts +3 -0
  119. package/lib/controls/collapsible-toggle/collapsible-toggle.component.d.ts +3 -0
  120. package/lib/controls/combobox/combobox.component.d.ts +5 -2
  121. package/lib/controls/dropdown/dropdown.component.d.ts +3 -0
  122. package/lib/controls/file-upload/file-upload.component.d.ts +5 -2
  123. package/lib/controls/form-control/form-control.component.d.ts +3 -0
  124. package/lib/controls/form-control-base.d.ts +3 -0
  125. package/lib/controls/form-control-label/form-control-label.component.d.ts +3 -0
  126. package/lib/controls/form-group/form-group.component.d.ts +6 -3
  127. package/lib/controls/help-popover/help-popover.component.d.ts +3 -0
  128. package/lib/controls/item-picker/item-picker.component.d.ts +5 -2
  129. package/lib/controls/link-button/link-button.component.d.ts +3 -0
  130. package/lib/controls/menu/menu.component.d.ts +3 -0
  131. package/lib/controls/navigation/nav-item-active.directive.d.ts +3 -0
  132. package/lib/controls/numericbox/numericbox.component.d.ts +5 -2
  133. package/lib/controls/popover/popover.component.d.ts +3 -0
  134. package/lib/controls/radio-button/radio-button.component.d.ts +3 -0
  135. package/lib/controls/select/select.component.d.ts +3 -0
  136. package/lib/controls/tabs/tabs.component.d.ts +3 -0
  137. package/lib/controls/textbox/textbox.component.d.ts +3 -0
  138. package/lib/core/cache.service.d.ts +3 -0
  139. package/lib/core/error.service.d.ts +3 -0
  140. package/lib/core/scroll.service.d.ts +3 -0
  141. package/lib/core/telemetry-tracker.service.d.ts +3 -0
  142. package/lib/core/telemetry.service.d.ts +3 -0
  143. package/lib/core/validation-message.service.d.ts +3 -0
  144. package/lib/core/window.service.d.ts +3 -0
  145. package/lib/display/app-bar/app-bar.component.d.ts +3 -0
  146. package/lib/display/avatar/avatar.component.d.ts +3 -0
  147. package/lib/display/avatar/avatar.service.d.ts +3 -0
  148. package/lib/display/confirm/confirm.component.d.ts +5 -2
  149. package/lib/display/dialog/dialog-group/dialog-group.component.d.ts +3 -0
  150. package/lib/display/dialog/dialog.component.d.ts +3 -0
  151. package/lib/display/dialog/dialog.service.d.ts +3 -0
  152. package/lib/display/hierarchy/hierarchy-base.d.ts +3 -0
  153. package/lib/display/hierarchy/hierarchy-tree/hierarchy-tree.component.d.ts +3 -0
  154. package/lib/display/item-display/item-display.component.d.ts +3 -0
  155. package/lib/display/json-display/json-display.component.d.ts +5 -2
  156. package/lib/display/resizable/resizable-base.d.ts +3 -0
  157. package/lib/display/resizable/resizable.component.d.ts +3 -0
  158. package/lib/display/spinner/spinner.component.d.ts +3 -0
  159. package/lib/display/splash/splash.component.d.ts +3 -0
  160. package/lib/display/splash/splash.service.d.ts +3 -0
  161. package/lib/display/table/resizable-column.component.d.ts +3 -0
  162. package/lib/display/table/resizable-table.directive.d.ts +3 -0
  163. package/lib/display/table/searchable-table.component.d.ts +6 -3
  164. package/lib/display/table/table-detail-row.component.d.ts +3 -0
  165. package/lib/display/table/table-locked-column.component.d.ts +3 -0
  166. package/lib/display/table/table-master-header-row.component.d.ts +3 -0
  167. package/lib/display/table/table-master-row.component.d.ts +3 -0
  168. package/lib/display/table/table-pagination.component.d.ts +3 -0
  169. package/lib/display/table/table-selectable-row.component.d.ts +5 -2
  170. package/lib/display/table/table.component.d.ts +3 -0
  171. package/lib/display/tags/tags.component.d.ts +3 -0
  172. package/lib/display/toast/toast/toast.component.d.ts +3 -0
  173. package/lib/display/toast/toast.service.d.ts +3 -0
  174. package/lib/display/toast/toaster/toaster.component.d.ts +3 -0
  175. package/lib/display/tooltip/tooltip.component.d.ts +3 -0
  176. package/lib/display/tooltip/tooltip.service.d.ts +3 -0
  177. package/lib/display/tree/tree.component.d.ts +3 -0
  178. package/lib/display/view-overlay/view-overlay.component.d.ts +3 -0
  179. package/lib/shared/directives/click-area-for/click-area-for.directive.d.ts +3 -0
  180. package/lib/shared/directives/if-viewport-width/if-viewport-width.directive.d.ts +3 -0
  181. package/lib/shared/directives/popup/popup-container.directive.d.ts +3 -0
  182. package/lib/shared/display/pipes/date-display.pipe.d.ts +3 -0
  183. package/lib/shared/display/pipes/highlight-text.pipe.d.ts +3 -0
  184. package/lib/shared/display/pipes/relative-date.pipe.d.ts +3 -0
  185. package/lib/shared/display/pipes/row-count.pipe.d.ts +3 -0
  186. package/lib/shared/display/pipes/time-display.pipe.d.ts +3 -0
  187. package/lib/shared/form-group.helper.d.ts +5 -2
  188. package/lib/shared/page/page-base/page-base.component.d.ts +5 -2
  189. package/lib/shared/page/page-title/page-title.component.d.ts +3 -0
  190. package/lib/shared/page/page-view/page-view.component.d.ts +3 -0
  191. package/lib/shared/testing/public-mocks.spec.d.ts +7 -0
  192. package/lib/shared/user-preference.service.d.ts +3 -0
  193. package/lib/shared/wizard/wizard-base/wizard-base.component.d.ts +3 -0
  194. package/lib/shared/wizard/wizard-buttons/wizard-buttons.component.d.ts +3 -0
  195. package/lib/shared/wizard/wizard-progress/wizard-progress.component.d.ts +3 -0
  196. package/package.json +27 -15
  197. package/src/styles/_functions.scss +6 -4
  198. package/src/styles/_icons.scss +1 -1
  199. package/src/styles/mixins/_control-base.scss +2 -2
  200. package/src/styles/mixins/_form-control-base.scss +3 -1
  201. package/src/styles/mixins/_spinner-base.scss +3 -1
  202. package/bundles/energycap-components.umd.js +0 -10646
  203. package/bundles/energycap-components.umd.js.map +0 -1
  204. package/bundles/energycap-components.umd.min.js +0 -17
  205. package/bundles/energycap-components.umd.min.js.map +0 -1
  206. package/energycap-components.d.ts +0 -7
  207. package/energycap-components.metadata.json +0 -1
  208. package/esm2015/energycap-components.js +0 -8
  209. package/esm2015/lib/components.module.js +0 -238
  210. package/esm2015/lib/controls/banner/banner.component.js +0 -94
  211. package/esm2015/lib/controls/button/button.component.js +0 -89
  212. package/esm2015/lib/controls/button/copy-button.directive.js +0 -63
  213. package/esm2015/lib/controls/checkbox/checkbox.component.js +0 -137
  214. package/esm2015/lib/controls/collapsible-toggle/collapsible-toggle.component.js +0 -35
  215. package/esm2015/lib/controls/combobox/combobox.component.js +0 -819
  216. package/esm2015/lib/controls/dropdown/dropdown.component.js +0 -207
  217. package/esm2015/lib/controls/file-upload/file-upload.component.js +0 -172
  218. package/esm2015/lib/controls/form-control/form-control.component.js +0 -65
  219. package/esm2015/lib/controls/form-control-base.js +0 -140
  220. package/esm2015/lib/controls/form-control-label/form-control-label.component.js +0 -139
  221. package/esm2015/lib/controls/form-group/form-group.component.js +0 -254
  222. package/esm2015/lib/controls/help-popover/help-popover.component.js +0 -22
  223. package/esm2015/lib/controls/item-picker/item-picker.component.js +0 -216
  224. package/esm2015/lib/controls/link-button/link-button.component.js +0 -12
  225. package/esm2015/lib/controls/menu/menu.component.js +0 -424
  226. package/esm2015/lib/controls/navigation/nav-item-active.directive.js +0 -86
  227. package/esm2015/lib/controls/numericbox/numericbox.component.js +0 -362
  228. package/esm2015/lib/controls/popover/popover.component.js +0 -85
  229. package/esm2015/lib/controls/radio-button/radio-button.component.js +0 -78
  230. package/esm2015/lib/controls/select/select.component.js +0 -89
  231. package/esm2015/lib/controls/tabs/tabs.component.js +0 -42
  232. package/esm2015/lib/controls/textbox/textbox.component.js +0 -149
  233. package/esm2015/lib/core/error.service.js +0 -56
  234. package/esm2015/lib/core/scroll.service.js +0 -88
  235. package/esm2015/lib/core/telemetry-tracker.service.js +0 -14
  236. package/esm2015/lib/core/telemetry.service.js +0 -40
  237. package/esm2015/lib/core/validation-message.service.js +0 -185
  238. package/esm2015/lib/core/window.service.js +0 -191
  239. package/esm2015/lib/display/app-bar/app-bar.component.js +0 -42
  240. package/esm2015/lib/display/avatar/avatar.component.js +0 -73
  241. package/esm2015/lib/display/confirm/confirm.component.js +0 -127
  242. package/esm2015/lib/display/dialog/dialog-group/dialog-group.component.js +0 -65
  243. package/esm2015/lib/display/dialog/dialog.component.js +0 -229
  244. package/esm2015/lib/display/dialog/dialog.service.js +0 -69
  245. package/esm2015/lib/display/hierarchy/hierarchy-base.js +0 -106
  246. package/esm2015/lib/display/hierarchy/hierarchy-tree/hierarchy-tree.component.js +0 -58
  247. package/esm2015/lib/display/item-display/item-display.component.js +0 -57
  248. package/esm2015/lib/display/json-display/json-display.component.js +0 -44
  249. package/esm2015/lib/display/resizable/resizable-base.js +0 -119
  250. package/esm2015/lib/display/resizable/resizable.component.js +0 -57
  251. package/esm2015/lib/display/spinner/spinner.component.js +0 -12
  252. package/esm2015/lib/display/splash/splash.component.js +0 -45
  253. package/esm2015/lib/display/splash/splash.service.js +0 -34
  254. package/esm2015/lib/display/table/resizable-column.component.js +0 -23
  255. package/esm2015/lib/display/table/resizable-table.directive.js +0 -223
  256. package/esm2015/lib/display/table/searchable-table.component.js +0 -303
  257. package/esm2015/lib/display/table/table-detail-row.component.js +0 -21
  258. package/esm2015/lib/display/table/table-locked-column.component.js +0 -53
  259. package/esm2015/lib/display/table/table-master-header-row.component.js +0 -11
  260. package/esm2015/lib/display/table/table-master-row.component.js +0 -141
  261. package/esm2015/lib/display/table/table-pagination.component.js +0 -146
  262. package/esm2015/lib/display/table/table-selectable-row.component.js +0 -216
  263. package/esm2015/lib/display/table/table.component.js +0 -210
  264. package/esm2015/lib/display/tags/tag.js +0 -15
  265. package/esm2015/lib/display/tags/tags.component.js +0 -73
  266. package/esm2015/lib/display/toast/toast/toast.component.js +0 -70
  267. package/esm2015/lib/display/toast/toast.service.js +0 -34
  268. package/esm2015/lib/display/toast/toaster/toaster.component.js +0 -117
  269. package/esm2015/lib/display/tooltip/tooltip.component.js +0 -24
  270. package/esm2015/lib/display/tooltip/tooltip.service.js +0 -64
  271. package/esm2015/lib/display/tree/tree.component.js +0 -100
  272. package/esm2015/lib/display/view-overlay/view-overlay.component.js +0 -50
  273. package/esm2015/lib/shared/directives/click-area-for/click-area-for.directive.js +0 -25
  274. package/esm2015/lib/shared/directives/if-viewport-width/if-viewport-width.directive.js +0 -112
  275. package/esm2015/lib/shared/directives/popup/popup-container.directive.js +0 -160
  276. package/esm2015/lib/shared/display/pipes/date-display.pipe.js +0 -49
  277. package/esm2015/lib/shared/display/pipes/highlight-text.pipe.js +0 -26
  278. package/esm2015/lib/shared/display/pipes/relative-date.pipe.js +0 -49
  279. package/esm2015/lib/shared/display/pipes/row-count.pipe.js +0 -47
  280. package/esm2015/lib/shared/display/pipes/time-display.pipe.js +0 -40
  281. package/esm2015/lib/shared/form-group.helper.js +0 -65
  282. package/esm2015/lib/shared/page/page-base/page-base.component.js +0 -356
  283. package/esm2015/lib/shared/page/page-title/page-title.component.js +0 -19
  284. package/esm2015/lib/shared/page/page-view/page-view.component.js +0 -94
  285. package/esm2015/lib/shared/testing/page-base-component-test-helper.spec.js +0 -35
  286. package/esm2015/lib/shared/testing/public-mocks.spec.js +0 -126
  287. package/esm2015/lib/shared/user-preference.service.js +0 -15
  288. package/esm2015/lib/shared/wizard/wizard-base/wizard-base.component.js +0 -260
  289. package/esm2015/lib/shared/wizard/wizard-buttons/wizard-buttons.component.js +0 -54
  290. package/esm2015/lib/shared/wizard/wizard-progress/wizard-progress.component.js +0 -18
  291. package/fesm2015/energycap-components.js +0 -9638
  292. package/fesm2015/energycap-components.js.map +0 -1
@@ -1,21 +0,0 @@
1
- import { Component, Input } from '@angular/core';
2
- export class TableDetailRowComponent {
3
- }
4
- TableDetailRowComponent.decorators = [
5
- { type: Component, args: [{
6
- selector: '[ecTableDetailRow]',
7
- template: `
8
- <td></td>
9
- <td [class.has-max-height]="maxHeight" class="table-detail-content {{contentClass}}" [attr.colspan]="contentColSpan">
10
- <div [style.max-height]="maxHeight"><ng-content></ng-content></div>
11
- </td>
12
- `,
13
- styles: [":root{--ec-color-icon:rgba(26,26,35,0.66);--ec-font-size-icon:1rem}@-webkit-keyframes spin{0%{transform:rotate(0)}to{transform:rotate(1turn)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(1turn)}}:host{background-color:var(--ec-background-color-detail)}td:first-child{padding:.25rem 0!important;vertical-align:top;width:1.5rem}.table-detail-content{background-color:transparent;border-top:1px solid var(--ec-border-color-legacy);padding:1rem 2rem 1rem 0!important}.table-detail-content.has-max-height{padding:0!important}.table-detail-content.has-max-height>div{overflow-y:auto;padding:1rem 2rem 1rem 0}"]
14
- },] }
15
- ];
16
- TableDetailRowComponent.propDecorators = {
17
- contentClass: [{ type: Input }],
18
- contentColSpan: [{ type: Input }],
19
- maxHeight: [{ type: Input }]
20
- };
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtZGV0YWlsLXJvdy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3NyYy9saWIvZGlzcGxheS90YWJsZS90YWJsZS1kZXRhaWwtcm93LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQVlqRCxNQUFNLE9BQU8sdUJBQXVCOzs7WUFWbkMsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxvQkFBb0I7Z0JBQzlCLFFBQVEsRUFBRTs7Ozs7R0FLVDs7YUFFRjs7OzJCQUVFLEtBQUs7NkJBQ0wsS0FBSzt3QkFDTCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdbZWNUYWJsZURldGFpbFJvd10nLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8dGQ+PC90ZD5cclxuICAgIDx0ZCBbY2xhc3MuaGFzLW1heC1oZWlnaHRdPVwibWF4SGVpZ2h0XCIgY2xhc3M9XCJ0YWJsZS1kZXRhaWwtY29udGVudCB7e2NvbnRlbnRDbGFzc319XCIgW2F0dHIuY29sc3Bhbl09XCJjb250ZW50Q29sU3BhblwiPlxyXG4gICAgICA8ZGl2IFtzdHlsZS5tYXgtaGVpZ2h0XT1cIm1heEhlaWdodFwiPjxuZy1jb250ZW50PjwvbmctY29udGVudD48L2Rpdj5cclxuICAgIDwvdGQ+XHJcbiAgYCxcclxuICBzdHlsZVVybHM6IFsnLi90YWJsZS1kZXRhaWwtcm93LmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFRhYmxlRGV0YWlsUm93Q29tcG9uZW50IHtcclxuICBASW5wdXQoKSBjb250ZW50Q2xhc3M/OiBzdHJpbmc7XHJcbiAgQElucHV0KCkgY29udGVudENvbFNwYW4hOiBudW1iZXI7XHJcbiAgQElucHV0KCkgbWF4SGVpZ2h0Pzogc3RyaW5nO1xyXG59XHJcbiJdfQ==
@@ -1,53 +0,0 @@
1
- import { Component, HostBinding, Input, ElementRef } from '@angular/core';
2
- export class TableLockedColumnComponent {
3
- constructor(el) {
4
- this.el = el;
5
- this.borderRight = false;
6
- this.borderLeft = false;
7
- }
8
- ngOnInit() {
9
- if (this.el.nativeElement.classList.contains('is-resizable')) {
10
- throw new Error(`Failed to lock table column because it was also resizable. Resizable table columns cannot currently be locked. Remove the 'is-resizable' class from THs of table columms that have the [ecTableLockedColumn] component.`);
11
- }
12
- if (this.el.nativeElement.attributes.getNamedItem('colspan')) {
13
- throw new Error(`Failed to lock table column because it had a 'colspan'. Locked columns do not currently support THs or TDs with a 'colspan'. Remove the 'colspan' attribute from table columns that have the [ecTableLockedColumn] component.`);
14
- }
15
- this.updatePositionAndBorder();
16
- }
17
- ngOnChanges() {
18
- if (this.options) {
19
- this.updatePositionAndBorder();
20
- }
21
- }
22
- updatePositionAndBorder() {
23
- if (typeof this.options.left === 'number' && typeof this.options.right === 'number') {
24
- throw new Error(`Failed to lock table column because it had a value for both left and right. Only left or right can have a value.`);
25
- }
26
- if (typeof this.options.left === 'number') {
27
- this.left = this.options.left;
28
- this.borderRight = this.options.border || false;
29
- }
30
- else {
31
- this.right = this.options.right;
32
- this.borderLeft = this.options.border || false;
33
- }
34
- }
35
- }
36
- TableLockedColumnComponent.decorators = [
37
- { type: Component, args: [{
38
- selector: '[ecTableLockedColumn]',
39
- template: `<ng-content></ng-content>`,
40
- styles: [":root{--ec-color-icon:rgba(26,26,35,0.66);--ec-font-size-icon:1rem}@-webkit-keyframes spin{0%{transform:rotate(0)}to{transform:rotate(1turn)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(1turn)}}:host{background-color:var(--ec-background-color);position:sticky!important;z-index:2!important}:host(th){z-index:3!important}"]
41
- },] }
42
- ];
43
- TableLockedColumnComponent.ctorParameters = () => [
44
- { type: ElementRef }
45
- ];
46
- TableLockedColumnComponent.propDecorators = {
47
- options: [{ type: Input, args: ['ecTableLockedColumn',] }],
48
- left: [{ type: HostBinding, args: ['style.left.px',] }],
49
- right: [{ type: HostBinding, args: ['style.right.px',] }],
50
- borderRight: [{ type: HostBinding, args: ['class.border-right',] }],
51
- borderLeft: [{ type: HostBinding, args: ['class.border-left',] }]
52
- };
53
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtbG9ja2VkLWNvbHVtbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3NyYy9saWIvZGlzcGxheS90YWJsZS90YWJsZS1sb2NrZWQtY29sdW1uLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQVUsVUFBVSxFQUFrQyxNQUFNLGVBQWUsQ0FBQztBQU9sSCxNQUFNLE9BQU8sMEJBQTBCO0lBZ0JyQyxZQUFvQixFQUFjO1FBQWQsT0FBRSxHQUFGLEVBQUUsQ0FBWTtRQUxsQyxnQkFBVyxHQUFHLEtBQUssQ0FBQztRQUdwQixlQUFVLEdBQUcsS0FBSyxDQUFDO0lBRW1CLENBQUM7SUFFdkMsUUFBUTtRQUNOLElBQUksSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsRUFBRTtZQUM1RCxNQUFNLElBQUksS0FBSyxDQUFDLHlOQUF5TixDQUFDLENBQUM7U0FDNU87UUFFRCxJQUFJLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLEVBQUU7WUFDNUQsTUFBTSxJQUFJLEtBQUssQ0FBQywrTkFBK04sQ0FBQyxDQUFDO1NBQ2xQO1FBRUQsSUFBSSxDQUFDLHVCQUF1QixFQUFFLENBQUM7SUFDakMsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDaEIsSUFBSSxDQUFDLHVCQUF1QixFQUFFLENBQUM7U0FDaEM7SUFDSCxDQUFDO0lBRU8sdUJBQXVCO1FBQzdCLElBQUksT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksS0FBSyxRQUFRLElBQUksT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssS0FBSyxRQUFRLEVBQUU7WUFDbkYsTUFBTSxJQUFJLEtBQUssQ0FBQyxrSEFBa0gsQ0FBQyxDQUFDO1NBQ3JJO1FBRUQsSUFBSSxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxLQUFLLFFBQVEsRUFBRTtZQUN6QyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDO1lBQzlCLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLElBQUksS0FBSyxDQUFDO1NBQ2pEO2FBQU07WUFDTCxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO1lBQ2hDLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLElBQUksS0FBSyxDQUFDO1NBQ2hEO0lBQ0gsQ0FBQzs7O1lBckRGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsdUJBQXVCO2dCQUNqQyxRQUFRLEVBQUUsMkJBQTJCOzthQUV0Qzs7O1lBTitDLFVBQVU7OztzQkFTdkQsS0FBSyxTQUFDLHFCQUFxQjttQkFFM0IsV0FBVyxTQUFDLGVBQWU7b0JBRzNCLFdBQVcsU0FBQyxnQkFBZ0I7MEJBRzVCLFdBQVcsU0FBQyxvQkFBb0I7eUJBR2hDLFdBQVcsU0FBQyxtQkFBbUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEhvc3RCaW5kaW5nLCBJbnB1dCwgT25Jbml0LCBFbGVtZW50UmVmLCBIb3N0LCBPbkNoYW5nZXMsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnW2VjVGFibGVMb2NrZWRDb2x1bW5dJyxcclxuICB0ZW1wbGF0ZTogYDxuZy1jb250ZW50PjwvbmctY29udGVudD5gLFxyXG4gIHN0eWxlVXJsczogWycuL3RhYmxlLWxvY2tlZC1jb2x1bW4uY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVGFibGVMb2NrZWRDb2x1bW5Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XHJcblxyXG4gIEBJbnB1dCgnZWNUYWJsZUxvY2tlZENvbHVtbicpIG9wdGlvbnMhOiB7IGJvcmRlcjogYm9vbGVhbiwgbGVmdD86IG51bWJlciwgcmlnaHQ/OiBudW1iZXIgfTtcclxuXHJcbiAgQEhvc3RCaW5kaW5nKCdzdHlsZS5sZWZ0LnB4JylcclxuICBsZWZ0PzogbnVtYmVyO1xyXG5cclxuICBASG9zdEJpbmRpbmcoJ3N0eWxlLnJpZ2h0LnB4JylcclxuICByaWdodD86IG51bWJlcjtcclxuXHJcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5ib3JkZXItcmlnaHQnKVxyXG4gIGJvcmRlclJpZ2h0ID0gZmFsc2U7XHJcblxyXG4gIEBIb3N0QmluZGluZygnY2xhc3MuYm9yZGVyLWxlZnQnKVxyXG4gIGJvcmRlckxlZnQgPSBmYWxzZTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBlbDogRWxlbWVudFJlZikgeyB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgaWYgKHRoaXMuZWwubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QuY29udGFpbnMoJ2lzLXJlc2l6YWJsZScpKSB7XHJcbiAgICAgIHRocm93IG5ldyBFcnJvcihgRmFpbGVkIHRvIGxvY2sgdGFibGUgY29sdW1uIGJlY2F1c2UgaXQgd2FzIGFsc28gcmVzaXphYmxlLiBSZXNpemFibGUgdGFibGUgY29sdW1ucyBjYW5ub3QgY3VycmVudGx5IGJlIGxvY2tlZC4gUmVtb3ZlIHRoZSAnaXMtcmVzaXphYmxlJyBjbGFzcyBmcm9tIFRIcyBvZiB0YWJsZSBjb2x1bW1zIHRoYXQgaGF2ZSB0aGUgW2VjVGFibGVMb2NrZWRDb2x1bW5dIGNvbXBvbmVudC5gKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5lbC5uYXRpdmVFbGVtZW50LmF0dHJpYnV0ZXMuZ2V0TmFtZWRJdGVtKCdjb2xzcGFuJykpIHtcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKGBGYWlsZWQgdG8gbG9jayB0YWJsZSBjb2x1bW4gYmVjYXVzZSBpdCBoYWQgYSAnY29sc3BhbicuIExvY2tlZCBjb2x1bW5zIGRvIG5vdCBjdXJyZW50bHkgc3VwcG9ydCBUSHMgb3IgVERzIHdpdGggYSAnY29sc3BhbicuIFJlbW92ZSB0aGUgJ2NvbHNwYW4nIGF0dHJpYnV0ZSBmcm9tIHRhYmxlIGNvbHVtbnMgdGhhdCBoYXZlIHRoZSBbZWNUYWJsZUxvY2tlZENvbHVtbl0gY29tcG9uZW50LmApO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMudXBkYXRlUG9zaXRpb25BbmRCb3JkZXIoKTtcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMub3B0aW9ucykge1xyXG4gICAgICB0aGlzLnVwZGF0ZVBvc2l0aW9uQW5kQm9yZGVyKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHVwZGF0ZVBvc2l0aW9uQW5kQm9yZGVyKCk6IHZvaWQge1xyXG4gICAgaWYgKHR5cGVvZiB0aGlzLm9wdGlvbnMubGVmdCA9PT0gJ251bWJlcicgJiYgdHlwZW9mIHRoaXMub3B0aW9ucy5yaWdodCA9PT0gJ251bWJlcicpIHtcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKGBGYWlsZWQgdG8gbG9jayB0YWJsZSBjb2x1bW4gYmVjYXVzZSBpdCBoYWQgYSB2YWx1ZSBmb3IgYm90aCBsZWZ0IGFuZCByaWdodC4gT25seSBsZWZ0IG9yIHJpZ2h0IGNhbiBoYXZlIGEgdmFsdWUuYCk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHR5cGVvZiB0aGlzLm9wdGlvbnMubGVmdCA9PT0gJ251bWJlcicpIHtcclxuICAgICAgdGhpcy5sZWZ0ID0gdGhpcy5vcHRpb25zLmxlZnQ7XHJcbiAgICAgIHRoaXMuYm9yZGVyUmlnaHQgPSB0aGlzLm9wdGlvbnMuYm9yZGVyIHx8IGZhbHNlO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5yaWdodCA9IHRoaXMub3B0aW9ucy5yaWdodDtcclxuICAgICAgdGhpcy5ib3JkZXJMZWZ0ID0gdGhpcy5vcHRpb25zLmJvcmRlciB8fCBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
@@ -1,11 +0,0 @@
1
- import { Component } from '@angular/core';
2
- export class TableMasterHeaderRowComponent {
3
- }
4
- TableMasterHeaderRowComponent.decorators = [
5
- { type: Component, args: [{
6
- selector: '[ecTableMasterHeaderRow]',
7
- template: `<th></th><ng-content></ng-content>`,
8
- styles: [":root{--ec-color-icon:rgba(26,26,35,0.66);--ec-font-size-icon:1rem}@-webkit-keyframes spin{0%{transform:rotate(0)}to{transform:rotate(1turn)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(1turn)}}th{padding:.25rem 0!important;vertical-align:top;width:1.5rem}th ::ng-deep+th,th ::ng-deep+th.is-resizable{padding-left:0}"]
9
- },] }
10
- ];
11
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtbWFzdGVyLWhlYWRlci1yb3cuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvbGliL2Rpc3BsYXkvdGFibGUvdGFibGUtbWFzdGVyLWhlYWRlci1yb3cuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFPMUMsTUFBTSxPQUFPLDZCQUE2Qjs7O1lBTHpDLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsMEJBQTBCO2dCQUNwQyxRQUFRLEVBQUUsb0NBQW9DOzthQUUvQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdbZWNUYWJsZU1hc3RlckhlYWRlclJvd10nLFxyXG4gIHRlbXBsYXRlOiBgPHRoPjwvdGg+PG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PmAsXHJcbiAgc3R5bGVVcmxzOiBbJy4vdGFibGUtbWFzdGVyLWhlYWRlci1yb3cuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVGFibGVNYXN0ZXJIZWFkZXJSb3dDb21wb25lbnQge31cclxuIl19
@@ -1,141 +0,0 @@
1
- import { Component, Input, Output, EventEmitter, TemplateRef, ViewChild, ElementRef, Renderer2 } from '@angular/core';
2
- export class TableMasterRowComponent {
3
- constructor(renderer, el) {
4
- this.renderer = renderer;
5
- this.el = el;
6
- /**
7
- * Programmatically toggle the visibility of the detail row. Default is false.
8
- */
9
- this.showDetails = false;
10
- /**
11
- * Emits an event when the value of `showDetails` changes.
12
- */
13
- this.showDetailsChanged = new EventEmitter();
14
- }
15
- ngOnInit() {
16
- if (!this.detailRowColSpan) {
17
- console.error(`A value for [detailRowColSpan] is required to render a detail row correctly. This should be the number of columns TDs placed inside an tr[ecTableMasterRow].`);
18
- }
19
- this.parentNode = this.renderer.parentNode(this.el.nativeElement);
20
- this.updateDetailRow();
21
- }
22
- ngOnChanges(changes) {
23
- if (changes.hasDetails && !changes.hasDetails.firstChange && changes.hasDetails.currentValue !== undefined) {
24
- this.updateDetailRow();
25
- }
26
- if (changes.showDetails && !changes.showDetails.firstChange && changes.showDetails.currentValue !== undefined) {
27
- this.updateVisibility();
28
- }
29
- }
30
- ngOnDestroy() {
31
- this.removeDetailView();
32
- }
33
- /**
34
- * When the master row has details, create the detail row and update it's visibility. If the master
35
- * has no details, remove the detail row
36
- */
37
- updateDetailRow() {
38
- if (this.hasDetails) {
39
- if (!this.detailTemplate) {
40
- console.error(`A value for the [detailTemplate] input is required when 'hasDetails' is true.`);
41
- return;
42
- }
43
- this.detailView = this.detailRowTemplate.createEmbeddedView({});
44
- this.updateVisibility();
45
- }
46
- else {
47
- this.removeDetailView();
48
- }
49
- }
50
- /**
51
- * Show/hide the detail row
52
- */
53
- toggleDetails(show) {
54
- this.showDetails = show;
55
- this.showDetailsChanged.emit(show);
56
- this.updateVisibility();
57
- }
58
- updateVisibility() {
59
- if (this.showDetails) {
60
- this.show();
61
- }
62
- else {
63
- this.hide();
64
- }
65
- }
66
- /**
67
- * Attach the detailView the change detection tree and insert the generated html
68
- * of the detail row to DOM after the host element
69
- */
70
- show() {
71
- if (this.detailView) {
72
- //The nextSibling may have changed, so update it. (This could happen if the table is embedded in a searchable table
73
- // and a search is performed)
74
- this.siblingNode = this.renderer.nextSibling(this.el.nativeElement);
75
- this.detailView.reattach();
76
- this.detailView.detectChanges();
77
- this.detailView.rootNodes.forEach(node => {
78
- this.renderer.insertBefore(this.parentNode, node, this.siblingNode);
79
- });
80
- }
81
- }
82
- /**
83
- * Detach the detailView from the change detection tree and remove the generated
84
- * html of the detail row from the DOM
85
- */
86
- hide() {
87
- if (this.detailView) {
88
- this.detailView.detach();
89
- this.removeDetailNodes();
90
- }
91
- }
92
- /**
93
- * Destroy the detailView and remove the generated html of the detail row from the DOM
94
- */
95
- removeDetailView() {
96
- if (this.detailView) {
97
- this.detailView.destroy();
98
- this.removeDetailNodes();
99
- }
100
- }
101
- /**
102
- * Remove the generated html of the detail row from the DOM
103
- */
104
- removeDetailNodes() {
105
- if (this.detailView) {
106
- this.detailView.rootNodes.forEach(n => {
107
- try {
108
- this.renderer.removeChild(this.parentNode, n);
109
- }
110
- catch (err) {
111
- // Ignore errors thrown by removing nodes that were never added to the DOM.
112
- }
113
- });
114
- }
115
- }
116
- }
117
- TableMasterRowComponent.decorators = [
118
- { type: Component, args: [{
119
- selector: '[ecTableMasterRow]',
120
- template: "<td>\r\n <ec-collapsible-toggle *ngIf=\"hasDetails\"\r\n id=\"{{id}}_toggle\"\r\n [expanded]=\"showDetails\"\r\n (expandedChange)=\"toggleDetails($event)\"></ec-collapsible-toggle>\r\n</td>\r\n<ng-content></ng-content>\r\n\r\n<ng-template #detailRow>\r\n <tr ecTableDetailRow class=\"{{detailRowClass}}\" [contentClass]=\"detailRowContentClass\" [contentColSpan]=\"detailRowColSpan\" [maxHeight]=\"detailRowMaxHeight\">\r\n <ng-container *ngTemplateOutlet=\"detailTemplate; context: {$implicit: detailContext}\"></ng-container>\r\n </tr>\r\n</ng-template>",
121
- styles: [":root{--ec-color-icon:rgba(26,26,35,0.66);--ec-font-size-icon:1rem}@-webkit-keyframes spin{0%{transform:rotate(0)}to{transform:rotate(1turn)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(1turn)}}td{padding:.25rem 0!important;vertical-align:top;width:1.5rem}td ::ng-deep+td{padding-left:0}"]
122
- },] }
123
- ];
124
- TableMasterRowComponent.ctorParameters = () => [
125
- { type: Renderer2 },
126
- { type: ElementRef }
127
- ];
128
- TableMasterRowComponent.propDecorators = {
129
- id: [{ type: Input }],
130
- hasDetails: [{ type: Input }],
131
- showDetails: [{ type: Input }],
132
- detailTemplate: [{ type: Input }],
133
- detailContext: [{ type: Input }],
134
- detailRowColSpan: [{ type: Input }],
135
- detailRowClass: [{ type: Input }],
136
- detailRowContentClass: [{ type: Input }],
137
- detailRowMaxHeight: [{ type: Input }],
138
- showDetailsChanged: [{ type: Output }],
139
- detailRowTemplate: [{ type: ViewChild, args: ['detailRow', { read: TemplateRef, static: true },] }]
140
- };
141
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtbWFzdGVyLXJvdy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3NyYy9saWIvZGlzcGxheS90YWJsZS90YWJsZS1tYXN0ZXItcm93LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBZ0UsTUFBTSxlQUFlLENBQUM7QUFPcEwsTUFBTSxPQUFPLHVCQUF1QjtJQStFbEMsWUFBb0IsUUFBbUIsRUFBVSxFQUFjO1FBQTNDLGFBQVEsR0FBUixRQUFRLENBQVc7UUFBVSxPQUFFLEdBQUYsRUFBRSxDQUFZO1FBcEUvRDs7V0FFRztRQUNNLGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBd0M3Qjs7V0FFRztRQUNPLHVCQUFrQixHQUEwQixJQUFJLFlBQVksRUFBRSxDQUFDO0lBc0JOLENBQUM7SUFFcEUsUUFBUTtRQUNOLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7WUFDMUIsT0FBTyxDQUFDLEtBQUssQ0FBQyw4SkFBOEosQ0FBQyxDQUFDO1NBQy9LO1FBRUQsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ2xFLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUV6QixDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLElBQUksT0FBTyxDQUFDLFVBQVUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsV0FBVyxJQUFJLE9BQU8sQ0FBQyxVQUFVLENBQUMsWUFBWSxLQUFLLFNBQVMsRUFBRTtZQUMxRyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7U0FD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Q0FBQyxDQUFDO1NBQ0o7SUFDSCxDQUFDOzs7WUFwTUYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxvQkFBb0I7Z0JBQzlCLHVvQkFBZ0Q7O2FBRWpEOzs7WUFOb0YsU0FBUztZQUFyQixVQUFVOzs7aUJBV2hGLEtBQUs7eUJBS0wsS0FBSzswQkFLTCxLQUFLOzZCQU1MLEtBQUs7NEJBY0wsS0FBSzsrQkFNTCxLQUFLOzZCQUtMLEtBQUs7b0NBS0wsS0FBSztpQ0FFTCxLQUFLO2lDQUtMLE1BQU07Z0NBS04sU0FBUyxTQUFDLFdBQVcsRUFBRSxFQUFDLElBQUksRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBUZW1wbGF0ZVJlZiwgVmlld0NoaWxkLCBFbGVtZW50UmVmLCBSZW5kZXJlcjIsIEVtYmVkZGVkVmlld1JlZiwgU2ltcGxlQ2hhbmdlcywgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdbZWNUYWJsZU1hc3RlclJvd10nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90YWJsZS1tYXN0ZXItcm93LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi90YWJsZS1tYXN0ZXItcm93LmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFRhYmxlTWFzdGVyUm93Q29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzLCBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgLyoqXHJcbiAgICogSWRlbnRpZmllciB0byBwYXNzIHRvIHRoZSBjb2xsYXBzaWJsZSB0b2dnbGVcclxuICAgKi9cclxuICBASW5wdXQoKSBwdWJsaWMgaWQ/OiBzdHJpbmc7XHJcblxyXG4gIC8qKlxyXG4gICAqIENvbnRyb2xzIHdoZXRoZXIgdGhlIHRhYmxlIHJvdyBoYXMgZGV0YWlscyBhbmQgc2hvd3MgdGhlIGNvbGxhcHNpYmxlIHRvZ2dsZSBpZiBpdCBkb2VzLlxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIGhhc0RldGFpbHM/OiBib29sZWFuO1xyXG5cclxuICAvKipcclxuICAgKiBQcm9ncmFtbWF0aWNhbGx5IHRvZ2dsZSB0aGUgdmlzaWJpbGl0eSBvZiB0aGUgZGV0YWlsIHJvdy4gRGVmYXVsdCBpcyBmYWxzZS5cclxuICAgKi9cclxuICBASW5wdXQoKSBzaG93RGV0YWlscyA9IGZhbHNlO1xyXG5cclxuICAvKipcclxuICAgKiBUZW1wbGF0ZSBmb3IgdGhlIGRldGFpbCByb3cgY29udGVudC4gR2VuZXJhdGVzIGFuIFtFbWJlZGRlZFZpZXdSZWZdKGh0dHBzOi8vYW5ndWxhci5pby9hcGkvY29yZS9FbWJlZGRlZFZpZXdSZWYpXHJcbiAgICogd2l0aCB0aGUgJ2RldGFpbENvbnRleHQnLiBSZXF1aXJlZCBpZiBoYXNEZXRhaWxzIGlzIHRydWUuXHJcbiAgICovXHJcbiAgQElucHV0KCkgZGV0YWlsVGVtcGxhdGUhOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG5cclxuICAvKipcclxuICAgKiBPcHRpb25hbCBjb250ZXh0IGJvdW5kIHRvIHRoZSAnZGV0YWlsVGVtcGxhdGUnLiBBdmFpbGFibGUgaW4gdGhlIHRlbXBsYXRlIGFzIHRoZSBkZWZhdWx0IGxvY2FsIHRlbXBsYXRlIGBsZXRgIGRlY2xhcmF0aW9uLlxyXG4gICAqIEBleGFtcGxlXHJcbiAgICogYGBgaHRtbFxyXG4gICAqIDx0ciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBpdGVtc1wiIGVjVGFibGVNYXN0ZXJSb3cgW2RldGFpbFRlbXBsYXRlXT1cIm15RGV0YWlsVGVtcGxhdGVcIiBbZGV0YWlsQ29udGV4dF09XCJpdGVtXCI+XHJcbiAgICogIC4uLlxyXG4gICAqIDwvdHI+XHJcbiAgICpcclxuICAgKiA8bmctdGVtcGxhdGUgI215RGV0YWlsVGVtcGxhdGUgbGV0LWl0ZW0+XHJcbiAgICogIDxwPnt7aXRlbS5jb21tZW50fX08L3A+XHJcbiAgICogPC9uZy10ZW1wbGF0ZT5cclxuICAgKi9cclxuICBASW5wdXQoKSBkZXRhaWxDb250ZXh0PzogYW55O1xyXG5cclxuICAvKipcclxuICAgKiBUaGUgbnVtYmVyIG9mIGNvbHVtbnMgaW4geW91ciB0YWJsZSBtaW51cyB0aGUgY29sdW1uIHRoYXQgaXMgYXV0b21hdGljYWxseSBhZGRlZCBieSB0aGVcclxuICAgKiBUYWJsZU1hc3RlclJvd0NvbXBvbmVudC4gUmVxdWlyZWQuXHJcbiAgICovXHJcbiAgQElucHV0KCkgZGV0YWlsUm93Q29sU3BhbiE6IG51bWJlcjtcclxuXHJcbiAgLyoqXHJcbiAgICogU3BhY2UgZGVsaW1pdGVkIHN0cmluZyBhZGRlZCB0byB0aGUgY2xhc3MgYXR0cmlidXRlIG9mIGRldGFpbCByb3cgVFIuXHJcbiAgICovXHJcbiAgQElucHV0KCkgZGV0YWlsUm93Q2xhc3M/OiBzdHJpbmc7XHJcblxyXG4gIC8qKlxyXG4gICAqIFNwYWNlIGRlbGltaXRlZCBzdHJpbmcgYWRkZWQgdG8gdGhlIGNsYXNzIGF0dHJpYnV0ZSBvZiB0aGUgVEQgdGhhdCBjb250YWlucyB0aGUgZGV0YWlsIHJvdyBjb250ZW50XHJcbiAgICovXHJcbiAgQElucHV0KCkgZGV0YWlsUm93Q29udGVudENsYXNzPzogc3RyaW5nO1xyXG5cclxuICBASW5wdXQoKSBkZXRhaWxSb3dNYXhIZWlnaHQ/OiBzdHJpbmc7XHJcblxyXG4gIC8qKlxyXG4gICAqIEVtaXRzIGFuIGV2ZW50IHdoZW4gdGhlIHZhbHVlIG9mIGBzaG93RGV0YWlsc2AgY2hhbmdlcy5cclxuICAgKi9cclxuICBAT3V0cHV0KCkgc2hvd0RldGFpbHNDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIC8qKlxyXG4gICAqIFRoZSB0ZW1wbGF0ZSBmb3IgdGhlIGRldGFpbCByb3csIGluc2VydGVkIGluIHRoZSBET00gYWZ0ZXIgdGhlIG1hc3RlciByb3cuXHJcbiAgICovXHJcbiAgQFZpZXdDaGlsZCgnZGV0YWlsUm93Jywge3JlYWQ6IFRlbXBsYXRlUmVmLCBzdGF0aWM6IHRydWV9KSBkZXRhaWxSb3dUZW1wbGF0ZSE6IFRlbXBsYXRlUmVmPGFueT47XHJcblxyXG4gIC8qKlxyXG4gICAqIFRoZSB2aWV3IGNyZWF0ZWQgZnJvbSB0aGUgYGRldGFpbFJvd2AgdGVtcGxhdGUuXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBkZXRhaWxWaWV3PzogRW1iZWRkZWRWaWV3UmVmPGFueT47XHJcblxyXG4gIC8qKlxyXG4gICAqIFRoZSBwYXJlbnQgbm9kZSBvZiB0aGUgaG9zdCBlbGVtZW50LlxyXG4gICAqL1xyXG4gIHByaXZhdGUgcGFyZW50Tm9kZTogYW55O1xyXG5cclxuICAvKipcclxuICAgKiBUaGUgc2libGluZyBub2RlIG9mIHRoZSBob3N0IGVsZW1lbnQuXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBzaWJsaW5nTm9kZTogYW55O1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsIHByaXZhdGUgZWw6IEVsZW1lbnRSZWYpIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5kZXRhaWxSb3dDb2xTcGFuKSB7XHJcbiAgICAgIGNvbnNvbGUuZXJyb3IoYEEgdmFsdWUgZm9yIFtkZXRhaWxSb3dDb2xTcGFuXSBpcyByZXF1aXJlZCB0byByZW5kZXIgYSBkZXRhaWwgcm93IGNvcnJlY3RseS4gVGhpcyBzaG91bGQgYmUgdGhlIG51bWJlciBvZiBjb2x1bW5zIFREcyBwbGFjZWQgaW5zaWRlIGFuIHRyW2VjVGFibGVNYXN0ZXJSb3ddLmApO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMucGFyZW50Tm9kZSA9IHRoaXMucmVuZGVyZXIucGFyZW50Tm9kZSh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQpO1xyXG4gICAgdGhpcy51cGRhdGVEZXRhaWxSb3coKTtcclxuXHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICBpZiAoY2hhbmdlcy5oYXNEZXRhaWxzICYmICFjaGFuZ2VzLmhhc0RldGFpbHMuZmlyc3RDaGFuZ2UgJiYgY2hhbmdlcy5oYXNEZXRhaWxzLmN1cnJlbnRWYWx1ZSAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIHRoaXMudXBkYXRlRGV0YWlsUm93KCk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGNoYW5nZXMuc2hvd0RldGFpbHMgJiYgIWNoYW5nZXMuc2hvd0RldGFpbHMuZmlyc3RDaGFuZ2UgJiYgY2hhbmdlcy5zaG93RGV0YWlscy5jdXJyZW50VmFsdWUgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICB0aGlzLnVwZGF0ZVZpc2liaWxpdHkoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5yZW1vdmVEZXRhaWxWaWV3KCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBXaGVuIHRoZSBtYXN0ZXIgcm93IGhhcyBkZXRhaWxzLCBjcmVhdGUgdGhlIGRldGFpbCByb3cgYW5kIHVwZGF0ZSBpdCdzIHZpc2liaWxpdHkuIElmIHRoZSBtYXN0ZXJcclxuICAgKiBoYXMgbm8gZGV0YWlscywgcmVtb3ZlIHRoZSBkZXRhaWwgcm93XHJcbiAgICovXHJcbiAgdXBkYXRlRGV0YWlsUm93KCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuaGFzRGV0YWlscykge1xyXG4gICAgICBpZiAoIXRoaXMuZGV0YWlsVGVtcGxhdGUpIHtcclxuICAgICAgICBjb25zb2xlLmVycm9yKGBBIHZhbHVlIGZvciB0aGUgW2RldGFpbFRlbXBsYXRlXSBpbnB1dCBpcyByZXF1aXJlZCB3aGVuICdoYXNEZXRhaWxzJyBpcyB0cnVlLmApO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG5cclxuICAgICAgdGhpcy5kZXRhaWxWaWV3ID0gdGhpcy5kZXRhaWxSb3dUZW1wbGF0ZS5jcmVhdGVFbWJlZGRlZFZpZXcoe30pO1xyXG4gICAgICB0aGlzLnVwZGF0ZVZpc2liaWxpdHkoKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMucmVtb3ZlRGV0YWlsVmlldygpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2hvdy9oaWRlIHRoZSBkZXRhaWwgcm93XHJcbiAgICovXHJcbiAgdG9nZ2xlRGV0YWlscyhzaG93OiBib29sZWFuKTogdm9pZCB7XHJcbiAgICB0aGlzLnNob3dEZXRhaWxzID0gc2hvdztcclxuICAgIHRoaXMuc2hvd0RldGFpbHNDaGFuZ2VkLmVtaXQoc2hvdyk7XHJcbiAgICB0aGlzLnVwZGF0ZVZpc2liaWxpdHkoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgdXBkYXRlVmlzaWJpbGl0eSgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnNob3dEZXRhaWxzKSB7XHJcbiAgICAgIHRoaXMuc2hvdygpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5oaWRlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBBdHRhY2ggdGhlIGRldGFpbFZpZXcgdGhlIGNoYW5nZSBkZXRlY3Rpb24gdHJlZSBhbmQgaW5zZXJ0IHRoZSBnZW5lcmF0ZWQgaHRtbFxyXG4gICAqIG9mIHRoZSBkZXRhaWwgcm93IHRvIERPTSBhZnRlciB0aGUgaG9zdCBlbGVtZW50XHJcbiAgICovXHJcbiAgcHJpdmF0ZSBzaG93KCkge1xyXG4gICAgaWYgKHRoaXMuZGV0YWlsVmlldykge1xyXG4gICAgICAvL1RoZSBuZXh0U2libGluZyBtYXkgaGF2ZSBjaGFuZ2VkLCBzbyB1cGRhdGUgaXQuIChUaGlzIGNvdWxkIGhhcHBlbiBpZiB0aGUgdGFibGUgaXMgZW1iZWRkZWQgaW4gYSBzZWFyY2hhYmxlIHRhYmxlXHJcbiAgICAgIC8vICBhbmQgYSBzZWFyY2ggaXMgcGVyZm9ybWVkKVxyXG4gICAgICB0aGlzLnNpYmxpbmdOb2RlID0gdGhpcy5yZW5kZXJlci5uZXh0U2libGluZyh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQpO1xyXG4gICAgICB0aGlzLmRldGFpbFZpZXcucmVhdHRhY2goKTtcclxuICAgICAgdGhpcy5kZXRhaWxWaWV3LmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgdGhpcy5kZXRhaWxWaWV3LnJvb3ROb2Rlcy5mb3JFYWNoKG5vZGUgPT4ge1xyXG4gICAgICAgIHRoaXMucmVuZGVyZXIuaW5zZXJ0QmVmb3JlKHRoaXMucGFyZW50Tm9kZSwgbm9kZSwgdGhpcy5zaWJsaW5nTm9kZSk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRGV0YWNoIHRoZSBkZXRhaWxWaWV3IGZyb20gdGhlIGNoYW5nZSBkZXRlY3Rpb24gdHJlZSBhbmQgcmVtb3ZlIHRoZSBnZW5lcmF0ZWRcclxuICAgKiBodG1sIG9mIHRoZSBkZXRhaWwgcm93IGZyb20gdGhlIERPTVxyXG4gICAqL1xyXG4gIHByaXZhdGUgaGlkZSgpIHtcclxuICAgIGlmICh0aGlzLmRldGFpbFZpZXcpIHtcclxuICAgICAgdGhpcy5kZXRhaWxWaWV3LmRldGFjaCgpO1xyXG4gICAgICB0aGlzLnJlbW92ZURldGFpbE5vZGVzKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBEZXN0cm95IHRoZSBkZXRhaWxWaWV3IGFuZCByZW1vdmUgdGhlIGdlbmVyYXRlZCBodG1sIG9mIHRoZSBkZXRhaWwgcm93IGZyb20gdGhlIERPTVxyXG4gICAqL1xyXG4gIHByaXZhdGUgcmVtb3ZlRGV0YWlsVmlldygpIHtcclxuICAgIGlmICh0aGlzLmRldGFpbFZpZXcpIHtcclxuICAgICAgdGhpcy5kZXRhaWxWaWV3LmRlc3Ryb3koKTtcclxuICAgICAgdGhpcy5yZW1vdmVEZXRhaWxOb2RlcygpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmVtb3ZlIHRoZSBnZW5lcmF0ZWQgaHRtbCBvZiB0aGUgZGV0YWlsIHJvdyBmcm9tIHRoZSBET01cclxuICAgKi9cclxuICBwcml2YXRlIHJlbW92ZURldGFpbE5vZGVzKCkge1xyXG4gICAgaWYgKHRoaXMuZGV0YWlsVmlldykge1xyXG4gICAgICB0aGlzLmRldGFpbFZpZXcucm9vdE5vZGVzLmZvckVhY2gobiA9PiB7XHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2hpbGQodGhpcy5wYXJlbnROb2RlLCBuKTtcclxuICAgICAgICB9IGNhdGNoKGVycikge1xyXG4gICAgICAgICAgLy8gSWdub3JlIGVycm9ycyB0aHJvd24gYnkgcmVtb3Zpbmcgbm9kZXMgdGhhdCB3ZXJlIG5ldmVyIGFkZGVkIHRvIHRoZSBET00uXHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG59XHJcbiJdfQ==
@@ -1,146 +0,0 @@
1
- import { Component, Input, Output, EventEmitter, ElementRef } from '@angular/core';
2
- import { NavGroup } from '../../controls/navigation/nav-group';
3
- export class TablePaginationComponent {
4
- constructor(el) {
5
- this.el = el;
6
- /**
7
- * Number of the current page.
8
- * Initial value is 1, can be overridden to change the starting page number.
9
- */
10
- this.pageNumber = 1;
11
- /**
12
- * Maximum number of page tabs to show
13
- */
14
- this.maxTabs = 10;
15
- /**
16
- * Emits when the page changes.
17
- *
18
- * Bind to the event in a template using a function that uses the "skip" and "pageSize"
19
- * properties to slice the new page from your data set.
20
- *
21
- * @example
22
- * //.html
23
- * (pageChanged)="onPageChanged($event)"
24
- * //.ts
25
- * public onPageChanged(event: PagingInfo) {
26
- * this.currentPageItems = this.paginatedTableItems.slice(event.skip, event.skip + event.pageSize);
27
- * }
28
- * //Since pageChanged doesn't emit for the initial page, onPageChanged should be manually called during initialization
29
- * //using getPagingInfo:
30
- * this.onPageChanged(TablePaginationComponent.getPagingInfo(this.startingPageNumber, this.pageSize));
31
- */
32
- this.pageChanged = new EventEmitter();
33
- /**
34
- * All possible items in the dropdown menu.
35
- */
36
- this.dropdownItems = [];
37
- /**
38
- * Current tabs being displayed.
39
- */
40
- this.currentTabs = new NavGroup();
41
- }
42
- ngOnChanges() {
43
- if (this.totalItems === 0) {
44
- this.dropdownItems = [];
45
- this.currentTabs = new NavGroup();
46
- return;
47
- }
48
- this.setDropdownItems();
49
- //Find the menu item that the page corresponding to this.pageNumber lies in
50
- let firstMenuItem = this.dropdownItems.find(item => {
51
- return item.value.firstPage <= this.pageNumber && item.value.lastPage >= this.pageNumber;
52
- });
53
- if (!firstMenuItem) {
54
- console.error(`Page ${this.pageNumber} does not exist. Setting the starting page number to 1.`);
55
- firstMenuItem = this.dropdownItems[0];
56
- this.pageNumber = 1;
57
- }
58
- //Set the tabs to those corresponding to the first menu item.
59
- //Note that we dont emit a pageChanged event here because the consumer already knows what the first page is.
60
- this.setTabs(firstMenuItem, this.pageNumber);
61
- }
62
- /**
63
- * Given the number of a page and the pageSize, return the PagingInfo object for that page.
64
- */
65
- static getPagingInfo(pageNumber, pageSize) {
66
- return { skip: (pageNumber - 1) * pageSize, pageSize: pageSize, pageNumber: pageNumber };
67
- }
68
- onItemSelected(menuItem) {
69
- this.setTabs(menuItem);
70
- this.onPageChange(parseInt(this.currentTabs.selected.label));
71
- //focus the currently selected tab to help keyboard navigation
72
- this.el.nativeElement.querySelector('.tab.active').focus();
73
- }
74
- /**
75
- * Create a tab for each item in the range represented in the MenuItem
76
- */
77
- setTabs(menuItem, pageNumber) {
78
- let tabItems = [];
79
- for (let i = menuItem.value.firstPage; i <= menuItem.value.lastPage; i++) {
80
- tabItems.push({
81
- label: `${i}`,
82
- onClick: () => { this.onPageChange(i); }
83
- });
84
- }
85
- //if a pageNumber is provided, select the tab with that page number.
86
- //otherwise, select the first tab.
87
- let selectedTab = pageNumber ? tabItems.find(tab => { return parseInt(tab.label) === pageNumber; })
88
- : tabItems[0];
89
- this.currentTabs = new NavGroup(tabItems, selectedTab);
90
- }
91
- onPageChange(pageNumber) {
92
- this.pageNumber = pageNumber;
93
- this.pageChanged.emit(TablePaginationComponent.getPagingInfo(pageNumber, this.pageSize));
94
- }
95
- /**
96
- * Create all the items for the dropdown menu.
97
- * A dropdown item represents a page range (e.g. 1-10, 11-20, or 21-25).
98
- * A single dropdown item can represent a range of up to 10 pages (the last item could have less than 10).
99
- */
100
- setDropdownItems() {
101
- this.dropdownItems = [];
102
- //find the last page
103
- let dividend = Math.floor(this.totalItems / this.pageSize);
104
- let remainder = this.totalItems % this.pageSize;
105
- const lastPage = (remainder === 0) ? dividend : dividend + 1;
106
- //keep building menu items of the form 1-10, 11-20, 21-30, etc until
107
- //end >= lastPage, which means we've found the range that contains the last page.
108
- let start = 1;
109
- let maxTabs = this.maxTabs || 10;
110
- let end = maxTabs;
111
- while (end < lastPage) {
112
- this.dropdownItems.push({
113
- label: `${start}-${end}`,
114
- value: { firstPage: start, lastPage: end }
115
- });
116
- start = start + maxTabs;
117
- end = end + maxTabs;
118
- }
119
- //add the menu item that contains the last page.
120
- this.dropdownItems.push({
121
- label: (start === lastPage) ? `${start}` : `${start}-${lastPage}`,
122
- value: { firstPage: start, lastPage: lastPage }
123
- });
124
- }
125
- }
126
- TablePaginationComponent.decorators = [
127
- { type: Component, args: [{
128
- selector: 'ec-table-pagination',
129
- template: "<ec-tabs id=\"{{id}}_pages\"\r\n class=\"my-2 is-condensed\"\r\n [tabGroup]=\"currentTabs\"\r\n tabStyle=\"pills\">\r\n</ec-tabs>\r\n<ec-dropdown id=\"{{id}}_morePages\"\r\n *ngIf=\"dropdownItems.length > 1\"\r\n class=\"my-1 ml-1\"\r\n menuTemplateType=\"label\"\r\n icon=\"icon-more\"\r\n menuPosition=\"left\"\r\n [menuMinWidth]=\"80\"\r\n [showArrow]=\"false\"\r\n [popupFixed]=\"true\"\r\n [items]=\"dropdownItems\"\r\n (itemSelected)=\"onItemSelected($event)\">\r\n</ec-dropdown>",
130
- host: {
131
- class: 'd-flex px-2'
132
- }
133
- },] }
134
- ];
135
- TablePaginationComponent.ctorParameters = () => [
136
- { type: ElementRef }
137
- ];
138
- TablePaginationComponent.propDecorators = {
139
- id: [{ type: Input }],
140
- totalItems: [{ type: Input }],
141
- pageSize: [{ type: Input }],
142
- pageNumber: [{ type: Input }],
143
- maxTabs: [{ type: Input }],
144
- pageChanged: [{ type: Output }]
145
- };
146
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtcGFnaW5hdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3NyYy9saWIvZGlzcGxheS90YWJsZS90YWJsZS1wYWdpbmF0aW9uLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUc5RixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUF1Qi9ELE1BQU0sT0FBTyx3QkFBd0I7SUF1RG5DLFlBQW9CLEVBQWM7UUFBZCxPQUFFLEdBQUYsRUFBRSxDQUFZO1FBeENsQzs7O1dBR0c7UUFDTSxlQUFVLEdBQVcsQ0FBQyxDQUFDO1FBRWhDOztXQUVHO1FBQ00sWUFBTyxHQUFZLEVBQUUsQ0FBQztRQUUvQjs7Ozs7Ozs7Ozs7Ozs7OztXQWdCRztRQUNPLGdCQUFXLEdBQTZCLElBQUksWUFBWSxFQUFFLENBQUM7UUFFckU7O1dBRUc7UUFDSSxrQkFBYSxHQUEwQixFQUFFLENBQUM7UUFFakQ7O1dBRUc7UUFDSSxnQkFBVyxHQUFhLElBQUksUUFBUSxFQUFFLENBQUM7SUFFUixDQUFDO0lBR3ZDLFdBQVc7UUFDVCxJQUFHLElBQUksQ0FBQyxVQUFVLEtBQUssQ0FBQyxFQUFFO1lBQ3hCLElBQUksQ0FBQyxhQUFhLEdBQUcsRUFBRSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxRQUFRLEVBQUUsQ0FBQztZQUNsQyxPQUFPO1NBQ1I7UUFDRCxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUV4QiwyRUFBMkU7UUFDM0UsSUFBSSxhQUFhLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDakQsT0FBTyxJQUFJLENB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O2lCQTRCeEQsS0FBSzt5QkFNTCxLQUFLO3VCQUtMLEtBQUs7eUJBTUwsS0FBSztzQkFLTCxLQUFLOzBCQW1CTCxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIEVsZW1lbnRSZWYsIE9uQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNZW51SXRlbSB9IGZyb20gJy4uLy4uL2NvbnRyb2xzL21lbnUvbWVudS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBOYXZJdGVtIH0gZnJvbSAnLi4vLi4vY29udHJvbHMvbmF2aWdhdGlvbi9uYXYtaXRlbSc7XHJcbmltcG9ydCB7IE5hdkdyb3VwIH0gZnJvbSAnLi4vLi4vY29udHJvbHMvbmF2aWdhdGlvbi9uYXYtZ3JvdXAnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBQYWdpbmdJbmZvIHtcclxuICAvKipOdW1iZXIgb2YgaXRlbXMgdG8gc2tpcCB0byBnZXQgdG8gdGhpcyBwYWdlKi9cclxuICBza2lwOiBudW1iZXIsXHJcbiAgLyoqTnVtYmVyIG9mIGl0ZW1zIGluIHRoaXMgcGFnZSovXHJcbiAgcGFnZVNpemU6IG51bWJlcixcclxuICAvKipUaGUgbnVtYmVyIG9mIHRoZSBwYWdlKi9cclxuICBwYWdlTnVtYmVyOiBudW1iZXJcclxufVxyXG5cclxuaW50ZXJmYWNlIFBhZ2VSYW5nZSB7XHJcbiAgZmlyc3RQYWdlOiBudW1iZXIsXHJcbiAgbGFzdFBhZ2U6IG51bWJlclxyXG59XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2VjLXRhYmxlLXBhZ2luYXRpb24nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90YWJsZS1wYWdpbmF0aW9uLmNvbXBvbmVudC5odG1sJyxcclxuICBob3N0OiB7XHJcbiAgICBjbGFzczogJ2QtZmxleCBweC0yJ1xyXG4gIH1cclxufSlcclxuZXhwb3J0IGNsYXNzIFRhYmxlUGFnaW5hdGlvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XHJcblxyXG4gIEBJbnB1dCgpIGlkPzogc3RyaW5nO1xyXG5cclxuICAvKipcclxuICAgKiBUb3RhbCBudW1iZXIgb2Ygcm93cyB0aGF0IHdlIG5lZWQgdG8gcGFnZSB0aHJvdWdoLlxyXG4gICAqIGkuZS4gdGhlIHN1bSBvZiBhbGwgcm93cyBvbiBhbGwgcGFnZXMuXHJcbiAgICovXHJcbiAgQElucHV0KCkgdG90YWxJdGVtcyE6IG51bWJlcjtcclxuXHJcbiAgLyoqXHJcbiAgICogTWF4IHNpemUgb2YgYSBwYWdlLlxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHBhZ2VTaXplITogbnVtYmVyO1xyXG5cclxuICAvKipcclxuICAgKiBOdW1iZXIgb2YgdGhlIGN1cnJlbnQgcGFnZS5cclxuICAgKiBJbml0aWFsIHZhbHVlIGlzIDEsIGNhbiBiZSBvdmVycmlkZGVuIHRvIGNoYW5nZSB0aGUgc3RhcnRpbmcgcGFnZSBudW1iZXIuXHJcbiAgICovXHJcbiAgQElucHV0KCkgcGFnZU51bWJlcjogbnVtYmVyID0gMTtcclxuXHJcbiAgLyoqXHJcbiAgICogTWF4aW11bSBudW1iZXIgb2YgcGFnZSB0YWJzIHRvIHNob3dcclxuICAgKi9cclxuICBASW5wdXQoKSBtYXhUYWJzPzogbnVtYmVyID0gMTA7XHJcblxyXG4gIC8qKlxyXG4gICAqIEVtaXRzIHdoZW4gdGhlIHBhZ2UgY2hhbmdlcy5cclxuICAgKiBcclxuICAgKiBCaW5kIHRvIHRoZSBldmVudCBpbiBhIHRlbXBsYXRlIHVzaW5nIGEgZnVuY3Rpb24gdGhhdCB1c2VzIHRoZSBcInNraXBcIiBhbmQgXCJwYWdlU2l6ZVwiXHJcbiAgICogcHJvcGVydGllcyB0byBzbGljZSB0aGUgbmV3IHBhZ2UgZnJvbSB5b3VyIGRhdGEgc2V0LlxyXG4gICAqIFxyXG4gICAqIEBleGFtcGxlXHJcbiAgICogLy8uaHRtbFxyXG4gICAqIChwYWdlQ2hhbmdlZCk9XCJvblBhZ2VDaGFuZ2VkKCRldmVudClcIlxyXG4gICAqIC8vLnRzXHJcbiAgICogcHVibGljIG9uUGFnZUNoYW5nZWQoZXZlbnQ6IFBhZ2luZ0luZm8pIHtcclxuICAgKiAgdGhpcy5jdXJyZW50UGFnZUl0ZW1zID0gdGhpcy5wYWdpbmF0ZWRUYWJsZUl0ZW1zLnNsaWNlKGV2ZW50LnNraXAsIGV2ZW50LnNraXAgKyBldmVudC5wYWdlU2l6ZSk7XHJcbiAgICogfVxyXG4gICAqIC8vU2luY2UgcGFnZUNoYW5nZWQgZG9lc24ndCBlbWl0IGZvciB0aGUgaW5pdGlhbCBwYWdlLCBvblBhZ2VDaGFuZ2VkIHNob3VsZCBiZSBtYW51YWxseSBjYWxsZWQgZHVyaW5nIGluaXRpYWxpemF0aW9uIFxyXG4gICAqIC8vdXNpbmcgZ2V0UGFnaW5nSW5mbzpcclxuICAgKiB0aGlzLm9uUGFnZUNoYW5nZWQoVGFibGVQYWdpbmF0aW9uQ29tcG9uZW50LmdldFBhZ2luZ0luZm8odGhpcy5zdGFydGluZ1BhZ2VOdW1iZXIsIHRoaXMucGFnZVNpemUpKTtcclxuICAgKi9cclxuICBAT3V0cHV0KCkgcGFnZUNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxQYWdpbmdJbmZvPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgLyoqXHJcbiAgICogQWxsIHBvc3NpYmxlIGl0ZW1zIGluIHRoZSBkcm9wZG93biBtZW51LlxyXG4gICAqL1xyXG4gIHB1YmxpYyBkcm9wZG93bkl0ZW1zOiBNZW51SXRlbTxQYWdlUmFuZ2U+W10gPSBbXTtcclxuXHJcbiAgLyoqXHJcbiAgICogQ3VycmVudCB0YWJzIGJlaW5nIGRpc3BsYXllZC5cclxuICAgKi9cclxuICBwdWJsaWMgY3VycmVudFRhYnM6IE5hdkdyb3VwID0gbmV3IE5hdkdyb3VwKCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZWw6IEVsZW1lbnRSZWYpIHsgfVxyXG5cclxuXHJcbiAgbmdPbkNoYW5nZXMoKTogdm9pZCB7XHJcbiAgICBpZih0aGlzLnRvdGFsSXRlbXMgPT09IDApIHtcclxuICAgICAgdGhpcy5kcm9wZG93bkl0ZW1zID0gW107XHJcbiAgICAgIHRoaXMuY3VycmVudFRhYnMgPSBuZXcgTmF2R3JvdXAoKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zZXREcm9wZG93bkl0ZW1zKCk7XHJcblxyXG4gICAgLy9GaW5kIHRoZSBtZW51IGl0ZW0gdGhhdCB0aGUgcGFnZSBjb3JyZXNwb25kaW5nIHRvIHRoaXMucGFnZU51bWJlciBsaWVzIGluXHJcbiAgICBsZXQgZmlyc3RNZW51SXRlbSA9IHRoaXMuZHJvcGRvd25JdGVtcy5maW5kKGl0ZW0gPT4ge1xyXG4gICAgICByZXR1cm4gaXRlbS52YWx1ZSEuZmlyc3RQYWdlIDw9IHRoaXMucGFnZU51bWJlciAmJiBpdGVtLnZhbHVlIS5sYXN0UGFnZSA+PSB0aGlzLnBhZ2VOdW1iZXI7XHJcbiAgICB9KTtcclxuICAgIGlmKCFmaXJzdE1lbnVJdGVtKSB7XHJcbiAgICAgIGNvbnNvbGUuZXJyb3IoYFBhZ2UgJHt0aGlzLnBhZ2VOdW1iZXJ9IGRvZXMgbm90IGV4aXN0LiBTZXR0aW5nIHRoZSBzdGFydGluZyBwYWdlIG51bWJlciB0byAxLmApO1xyXG4gICAgICBmaXJzdE1lbnVJdGVtID0gdGhpcy5kcm9wZG93bkl0ZW1zWzBdO1xyXG4gICAgICB0aGlzLnBhZ2VOdW1iZXIgPSAxO1xyXG4gICAgfVxyXG4gICAgLy9TZXQgdGhlIHRhYnMgdG8gdGhvc2UgY29ycmVzcG9uZGluZyB0byB0aGUgZmlyc3QgbWVudSBpdGVtLlxyXG4gICAgLy9Ob3RlIHRoYXQgd2UgZG9udCBlbWl0IGEgcGFnZUNoYW5nZWQgZXZlbnQgaGVyZSBiZWNhdXNlIHRoZSBjb25zdW1lciBhbHJlYWR5IGtub3dzIHdoYXQgdGhlIGZpcnN0IHBhZ2UgaXMuXHJcbiAgICB0aGlzLnNldFRhYnMoZmlyc3RNZW51SXRlbSwgdGhpcy5wYWdlTnVtYmVyKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdpdmVuIHRoZSBudW1iZXIgb2YgYSBwYWdlIGFuZCB0aGUgcGFnZVNpemUsIHJldHVybiB0aGUgUGFnaW5nSW5mbyBvYmplY3QgZm9yIHRoYXQgcGFnZS5cclxuICAgKi9cclxuICBwdWJsaWMgc3RhdGljIGdldFBhZ2luZ0luZm8ocGFnZU51bWJlcjogbnVtYmVyLCBwYWdlU2l6ZTogbnVtYmVyKSB7XHJcbiAgICByZXR1cm4geyBza2lwOiAocGFnZU51bWJlciAtIDEpKnBhZ2VTaXplLCBwYWdlU2l6ZTogcGFnZVNpemUsIHBhZ2VOdW1iZXI6IHBhZ2VOdW1iZXIgfTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvbkl0ZW1TZWxlY3RlZChtZW51SXRlbTogTWVudUl0ZW08UGFnZVJhbmdlPikgeyAgXHJcbiAgICB0aGlzLnNldFRhYnMobWVudUl0ZW0pO1xyXG4gICAgdGhpcy5vblBhZ2VDaGFuZ2UocGFyc2VJbnQodGhpcy5jdXJyZW50VGFicy5zZWxlY3RlZCEubGFiZWwhKSk7XHJcbiAgICAvL2ZvY3VzIHRoZSBjdXJyZW50bHkgc2VsZWN0ZWQgdGFiIHRvIGhlbHAga2V5Ym9hcmQgbmF2aWdhdGlvblxyXG4gICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJy50YWIuYWN0aXZlJykuZm9jdXMoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENyZWF0ZSBhIHRhYiBmb3IgZWFjaCBpdGVtIGluIHRoZSByYW5nZSByZXByZXNlbnRlZCBpbiB0aGUgTWVudUl0ZW1cclxuICAgKi9cclxuICBwcml2YXRlIHNldFRhYnMobWVudUl0ZW06IE1lbnVJdGVtPFBhZ2VSYW5nZT4sIHBhZ2VOdW1iZXI/OiBudW1iZXIpIHtcclxuICAgIGxldCB0YWJJdGVtczogTmF2SXRlbVtdID0gW107XHJcbiAgICBmb3IobGV0IGkgPSBtZW51SXRlbS52YWx1ZSEuZmlyc3RQYWdlOyBpIDw9IG1lbnVJdGVtLnZhbHVlIS5sYXN0UGFnZTsgaSsrKSB7XHJcbiAgICAgIHRhYkl0ZW1zLnB1c2goe1xyXG4gICAgICAgIGxhYmVsOiBgJHtpfWAsXHJcbiAgICAgICAgb25DbGljazogKCkgPT4ge3RoaXMub25QYWdlQ2hhbmdlKGkpfVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIC8vaWYgYSBwYWdlTnVtYmVyIGlzIHByb3ZpZGVkLCBzZWxlY3QgdGhlIHRhYiB3aXRoIHRoYXQgcGFnZSBudW1iZXIuXHJcbiAgICAvL290aGVyd2lzZSwgc2VsZWN0IHRoZSBmaXJzdCB0YWIuXHJcbiAgICBsZXQgc2VsZWN0ZWRUYWI6IE5hdkl0ZW0gPSBwYWdlTnVtYmVyID8gdGFiSXRlbXMuZmluZCh0YWIgPT4ge3JldHVybiBwYXJzZUludCh0YWIubGFiZWwhKSA9PT0gcGFnZU51bWJlcn0pIVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHRhYkl0ZW1zWzBdO1xyXG4gICAgdGhpcy5jdXJyZW50VGFicyA9IG5ldyBOYXZHcm91cCh0YWJJdGVtcywgc2VsZWN0ZWRUYWIpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBvblBhZ2VDaGFuZ2UocGFnZU51bWJlcjogbnVtYmVyKSB7XHJcbiAgICB0aGlzLnBhZ2VOdW1iZXIgPSBwYWdlTnVtYmVyO1xyXG4gICAgdGhpcy5wYWdlQ2hhbmdlZC5lbWl0KFRhYmxlUGFnaW5hdGlvbkNvbXBvbmVudC5nZXRQYWdpbmdJbmZvKHBhZ2VOdW1iZXIsIHRoaXMucGFnZVNpemUpKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ3JlYXRlIGFsbCB0aGUgaXRlbXMgZm9yIHRoZSBkcm9wZG93biBtZW51LlxyXG4gICAqIEEgZHJvcGRvd24gaXRlbSByZXByZXNlbnRzIGEgcGFnZSByYW5nZSAoZS5nLiAxLTEwLCAxMS0yMCwgb3IgMjEtMjUpLlxyXG4gICAqIEEgc2luZ2xlIGRyb3Bkb3duIGl0ZW0gY2FuIHJlcHJlc2VudCBhIHJhbmdlIG9mIHVwIHRvIDEwIHBhZ2VzICh0aGUgbGFzdCBpdGVtIGNvdWxkIGhhdmUgbGVzcyB0aGFuIDEwKS5cclxuICAgKi9cclxuICBwcml2YXRlIHNldERyb3Bkb3duSXRlbXMoKSB7XHJcbiAgICB0aGlzLmRyb3Bkb3duSXRlbXMgPSBbXTtcclxuICAgIC8vZmluZCB0aGUgbGFzdCBwYWdlXHJcbiAgICBsZXQgZGl2aWRlbmQgPSBNYXRoLmZsb29yKHRoaXMudG90YWxJdGVtcyAvIHRoaXMucGFnZVNpemUpO1xyXG4gICAgbGV0IHJlbWFpbmRlciA9IHRoaXMudG90YWxJdGVtcyAlIHRoaXMucGFnZVNpemU7XHJcbiAgICBjb25zdCBsYXN0UGFnZSA9IChyZW1haW5kZXIgPT09IDApID8gZGl2aWRlbmQgOiBkaXZpZGVuZCArIDE7XHJcblxyXG4gICAgLy9rZWVwIGJ1aWxkaW5nIG1lbnUgaXRlbXMgb2YgdGhlIGZvcm0gMS0xMCwgMTEtMjAsIDIxLTMwLCBldGMgdW50aWwgIFxyXG4gICAgLy9lbmQgPj0gbGFzdFBhZ2UsIHdoaWNoIG1lYW5zIHdlJ3ZlIGZvdW5kIHRoZSByYW5nZSB0aGF0IGNvbnRhaW5zIHRoZSBsYXN0IHBhZ2UuXHJcbiAgICBsZXQgc3RhcnQgPSAxO1xyXG5cclxuICAgIGxldCBtYXhUYWJzID0gdGhpcy5tYXhUYWJzIHx8IDEwO1xyXG4gICAgbGV0IGVuZCA9IG1heFRhYnM7XHJcblxyXG4gICAgd2hpbGUoZW5kIDwgbGFzdFBhZ2UpIHtcclxuICAgICAgdGhpcy5kcm9wZG93bkl0ZW1zLnB1c2goe1xyXG4gICAgICAgIGxhYmVsOiBgJHtzdGFydH0tJHtlbmR9YCxcclxuICAgICAgICB2YWx1ZToge2ZpcnN0UGFnZTogc3RhcnQsIGxhc3RQYWdlOiBlbmR9XHJcbiAgICAgIH0pO1xyXG4gICAgICBzdGFydCA9IHN0YXJ0ICsgbWF4VGFicztcclxuICAgICAgZW5kID0gZW5kICsgbWF4VGFicztcclxuICAgIH1cclxuICAgIC8vYWRkIHRoZSBtZW51IGl0ZW0gdGhhdCBjb250YWlucyB0aGUgbGFzdCBwYWdlLlxyXG4gICAgdGhpcy5kcm9wZG93bkl0ZW1zLnB1c2goe1xyXG4gICAgICBsYWJlbDogKHN0YXJ0ID09PSBsYXN0UGFnZSkgPyBgJHtzdGFydH1gOiBgJHtzdGFydH0tJHtsYXN0UGFnZX1gLFxyXG4gICAgICB2YWx1ZToge2ZpcnN0UGFnZTogc3RhcnQsIGxhc3RQYWdlOiBsYXN0UGFnZX1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbn0iXX0=