@tetacom/ng-components 1.4.3 → 1.4.5

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 (320) hide show
  1. package/assets/icons.svg +54 -0
  2. package/component/avatar/avatar/avatar.component.d.ts +1 -1
  3. package/component/button/button/button.component.d.ts +1 -1
  4. package/component/date-picker/base-calendar.d.ts +1 -1
  5. package/component/date-picker/base-picker.d.ts +1 -1
  6. package/component/date-picker/date-picker/date-calendar/date-calendar.component.d.ts +1 -1
  7. package/component/date-picker/date-picker/date-picker.component.d.ts +1 -1
  8. package/component/date-picker/date-range/date-range.component.d.ts +1 -1
  9. package/component/date-picker/date-range/range-calendar/range-calendar.component.d.ts +1 -1
  10. package/component/date-picker/day-picker/day-item/day-item.component.d.ts +1 -1
  11. package/component/date-picker/day-picker/day-picker.component.d.ts +4 -4
  12. package/component/date-picker/month-picker/month-picker.component.d.ts +2 -2
  13. package/component/date-picker/public-api.d.ts +2 -2
  14. package/component/date-picker/year-picker/year-picker.component.d.ts +3 -3
  15. package/component/filter/boolean-filter/boolean-filter.component.d.ts +3 -3
  16. package/component/message/model/message.d.ts +1 -1
  17. package/component/switch/switch/switch.component.d.ts +1 -1
  18. package/component/table/table-row/table-row.component.d.ts +2 -2
  19. package/component/tree/tree/tree.component.d.ts +1 -1
  20. package/docs/avatarDocs.mdx +78 -72
  21. package/docs/datePickerDocs.mdx +3 -3
  22. package/docs/dateRangeDocs.mdx +3 -3
  23. package/docs/delimiterDocs.mdx +78 -78
  24. package/docs/dropdownDocs.mdx +143 -123
  25. package/docs/expandCardlDocs.mdx +49 -45
  26. package/docs/expandPanelDocs.mdx +104 -92
  27. package/docs/fileAreaDocs.mdx +64 -59
  28. package/docs/inputDocs.mdx +70 -67
  29. package/docs/listDocs.mdx +14 -8
  30. package/docs/messageDocs.mdx +47 -34
  31. package/docs/progressBarDocs.mdx +65 -51
  32. package/docs/propertyGridDocs.mdx +173 -115
  33. package/docs/radioDocs.mdx +92 -80
  34. package/docs/resizePanelDocs.mdx +79 -67
  35. package/docs/selectDocs.mdx +262 -220
  36. package/docs/switchDocs.mdx +86 -73
  37. package/docs/tagDocs.mdx +17 -11
  38. package/docs/toggleDocs.mdx +42 -36
  39. package/docs/toolbarDocs.mdx +14 -8
  40. package/docs/treeDocs.mdx +108 -89
  41. package/esm2022/common/contract/teta-content-ref.mjs +1 -1
  42. package/esm2022/common/enum/align.enum.mjs +1 -1
  43. package/esm2022/common/enum/vertical-align.enum.mjs +1 -1
  44. package/esm2022/common/service/dynamic-component.service.mjs +1 -1
  45. package/esm2022/common/util/array-util.mjs +5 -7
  46. package/esm2022/common/util/dom-util.mjs +2 -3
  47. package/esm2022/common/util/position-util.mjs +6 -14
  48. package/esm2022/component/accordion/accordion-content.directive.mjs +2 -2
  49. package/esm2022/component/accordion/public-api.mjs +1 -1
  50. package/esm2022/component/autocomplete/autocomplete/autocomplete.component.mjs +2 -3
  51. package/esm2022/component/autocomplete/public-api.mjs +1 -1
  52. package/esm2022/component/avatar/avatar/avatar.component.mjs +4 -5
  53. package/esm2022/component/avatar/model/avatar-color.enum.mjs +1 -1
  54. package/esm2022/component/avatar/public-api.mjs +1 -1
  55. package/esm2022/component/button/button/button.component.mjs +2 -2
  56. package/esm2022/component/button/public-api.mjs +1 -1
  57. package/esm2022/component/chart-3d/chart3d/chart3d.component.mjs +11 -24
  58. package/esm2022/component/chart-3d/model/chart-3d-options.mjs +1 -1
  59. package/esm2022/component/chart-3d/public-api.mjs +1 -1
  60. package/esm2022/component/checkbox/checkbox/checkbox.component.mjs +3 -3
  61. package/esm2022/component/checkbox/public-api.mjs +1 -1
  62. package/esm2022/component/date-picker/base-calendar.mjs +7 -14
  63. package/esm2022/component/date-picker/base-picker.mjs +3 -2
  64. package/esm2022/component/date-picker/date-picker/date-calendar/date-calendar.component.mjs +4 -11
  65. package/esm2022/component/date-picker/date-picker/date-picker.component.mjs +5 -6
  66. package/esm2022/component/date-picker/date-range/date-range.component.mjs +6 -14
  67. package/esm2022/component/date-picker/date-range/range-calendar/range-calendar.component.mjs +4 -4
  68. package/esm2022/component/date-picker/day-picker/day-item/day-item.component.mjs +5 -6
  69. package/esm2022/component/date-picker/day-picker/day-picker.component.mjs +9 -9
  70. package/esm2022/component/date-picker/model/date-picker-mode.enum.mjs +1 -1
  71. package/esm2022/component/date-picker/model/from-to.model.mjs +1 -1
  72. package/esm2022/component/date-picker/model/min-max-date.model.mjs +1 -1
  73. package/esm2022/component/date-picker/month-picker/month-picker.component.mjs +4 -4
  74. package/esm2022/component/date-picker/public-api.mjs +3 -3
  75. package/esm2022/component/date-picker/year-picker/scroll-to-selected-year.directive.mjs +3 -3
  76. package/esm2022/component/date-picker/year-picker/year-picker.component.mjs +9 -7
  77. package/esm2022/component/delimiter/delimiter/delimiter.component.mjs +2 -2
  78. package/esm2022/component/delimiter/public-api.mjs +1 -1
  79. package/esm2022/component/divider/divider/divider.component.mjs +4 -4
  80. package/esm2022/component/divider/public-api.mjs +1 -1
  81. package/esm2022/component/dropdown/dropdown/dropdown.component.mjs +2 -3
  82. package/esm2022/component/dropdown/dropdown-base.mjs +11 -22
  83. package/esm2022/component/dropdown/dropdown-content.directive.mjs +2 -2
  84. package/esm2022/component/dropdown/dropdown-head.directive.mjs +2 -2
  85. package/esm2022/component/dropdown/dropdown.directive.mjs +4 -5
  86. package/esm2022/component/dropdown/public-api.mjs +1 -1
  87. package/esm2022/component/dynamic-component/popup-content/popup-content.component.mjs +4 -10
  88. package/esm2022/component/dynamic-component/public-api.mjs +1 -1
  89. package/esm2022/component/expand-card/expand-card/expand-card.component.mjs +4 -5
  90. package/esm2022/component/expand-card/expand-item/expand-item.component.mjs +4 -4
  91. package/esm2022/component/expand-card/public-api.mjs +1 -1
  92. package/esm2022/component/expand-panel/expand-panel/expand-panel.component.mjs +4 -9
  93. package/esm2022/component/expand-panel/expand-panel-content.directive.mjs +1 -1
  94. package/esm2022/component/expand-panel/expand-panel-head.directive.mjs +1 -1
  95. package/esm2022/component/expand-panel/public-api.mjs +1 -1
  96. package/esm2022/component/file-upload/file-item/file-item.component.mjs +1 -1
  97. package/esm2022/component/file-upload/file-upload-area/file-upload-area.component.mjs +3 -8
  98. package/esm2022/component/file-upload/public-api.mjs +1 -1
  99. package/esm2022/component/filter/base/filter-base.mjs +1 -1
  100. package/esm2022/component/filter/base/filter-component-base.mjs +1 -1
  101. package/esm2022/component/filter/boolean-filter/boolean-filter.component.mjs +5 -11
  102. package/esm2022/component/filter/contarct/boolean-filter.mjs +1 -1
  103. package/esm2022/component/filter/contarct/date-filter-value.mjs +3 -3
  104. package/esm2022/component/filter/contarct/date-filter.mjs +1 -1
  105. package/esm2022/component/filter/contarct/filter-component-map.mjs +2 -4
  106. package/esm2022/component/filter/contarct/filter-item.mjs +2 -2
  107. package/esm2022/component/filter/contarct/filter-state.mjs +1 -1
  108. package/esm2022/component/filter/contarct/list-filter.mjs +1 -1
  109. package/esm2022/component/filter/contarct/numeric-filter.mjs +1 -1
  110. package/esm2022/component/filter/contarct/sort-param.mjs +1 -1
  111. package/esm2022/component/filter/contarct/string-filter.mjs +1 -1
  112. package/esm2022/component/filter/date-filter/date-filter.component.mjs +3 -8
  113. package/esm2022/component/filter/enum/list-filter-type.enum.mjs +1 -1
  114. package/esm2022/component/filter/filter-host/filter-host.component.mjs +2 -3
  115. package/esm2022/component/filter/list-filter/list-filter.component.mjs +5 -14
  116. package/esm2022/component/filter/numeric-filter/numeric-filter.component.mjs +3 -8
  117. package/esm2022/component/filter/public-api.mjs +1 -1
  118. package/esm2022/component/filter/string-filter/string-filter.component.mjs +4 -9
  119. package/esm2022/component/icon/icon/icon.component.mjs +3 -3
  120. package/esm2022/component/icon/icon-file/icon-file.component.mjs +2 -3
  121. package/esm2022/component/icon/icon-sprite.directive.mjs +2 -2
  122. package/esm2022/component/icon/icon.service.mjs +5 -6
  123. package/esm2022/component/icon/public-api.mjs +1 -1
  124. package/esm2022/component/input/color-input/color-input.component.mjs +3 -3
  125. package/esm2022/component/input/form-group-title/form-group-title.component.mjs +2 -2
  126. package/esm2022/component/input/input/input.component.mjs +4 -4
  127. package/esm2022/component/input/public-api.mjs +1 -1
  128. package/esm2022/component/input/text-field/text-field.component.mjs +3 -9
  129. package/esm2022/component/message/message/message.component.mjs +3 -7
  130. package/esm2022/component/message/message-host/message-host.component.mjs +5 -9
  131. package/esm2022/component/message/message.service.mjs +2 -2
  132. package/esm2022/component/message/model/message.mjs +2 -2
  133. package/esm2022/component/message/public-api.mjs +1 -1
  134. package/esm2022/component/modal/dialog/dialog.component.mjs +3 -8
  135. package/esm2022/component/modal/dialog.service.mjs +1 -1
  136. package/esm2022/component/modal/modal-container/modal-container.component.mjs +4 -11
  137. package/esm2022/component/modal/modal.module.mjs +4 -12
  138. package/esm2022/component/modal/modal.service.mjs +1 -1
  139. package/esm2022/component/modal/model/current-modal.mjs +1 -1
  140. package/esm2022/component/modal/model/i-modal-result.mjs +1 -1
  141. package/esm2022/component/modal/model/modal-instance.mjs +1 -1
  142. package/esm2022/component/pager/model/pager-state.mjs +3 -2
  143. package/esm2022/component/pager/pager/pager.component.mjs +1 -1
  144. package/esm2022/component/pager/public-api.mjs +1 -1
  145. package/esm2022/component/pager/util/pager-util.mjs +1 -1
  146. package/esm2022/component/panel/panel/panel.component.mjs +4 -10
  147. package/esm2022/component/panel/public-api.mjs +1 -1
  148. package/esm2022/component/progress-bar/progress-bar/progress-bar.component.mjs +5 -6
  149. package/esm2022/component/progress-bar/public-api.mjs +1 -1
  150. package/esm2022/component/property-grid/property-grid/property-grid-group/property-grid-group.component.mjs +4 -4
  151. package/esm2022/component/property-grid/property-grid/property-grid-item/property-grid-item.component.mjs +7 -8
  152. package/esm2022/component/property-grid/property-grid/property-grid-item-description.directive.mjs +2 -2
  153. package/esm2022/component/property-grid/property-grid/property-grid.component.mjs +6 -11
  154. package/esm2022/component/property-grid/property-grid.module.mjs +1 -1
  155. package/esm2022/component/radio/public-api.mjs +1 -1
  156. package/esm2022/component/radio/radio/radio.component.mjs +7 -11
  157. package/esm2022/component/radio/radio-button/radio-button.component.mjs +3 -3
  158. package/esm2022/component/resize-panel/public-api.mjs +1 -1
  159. package/esm2022/component/resize-panel/resize-panel/resize-panel.component.mjs +5 -10
  160. package/esm2022/component/select/public-api.mjs +1 -1
  161. package/esm2022/component/select/select/select.component.mjs +10 -18
  162. package/esm2022/component/select/select-option.directive.mjs +2 -2
  163. package/esm2022/component/select/select-value.directive.mjs +2 -2
  164. package/esm2022/component/sidebar/public-api.mjs +1 -1
  165. package/esm2022/component/sidebar/sidebar/sidebar.component.mjs +6 -12
  166. package/esm2022/component/sidebar/sidebar-position.enum.mjs +1 -1
  167. package/esm2022/component/switch/public-api.mjs +1 -1
  168. package/esm2022/component/switch/switch/switch.component.mjs +4 -7
  169. package/esm2022/component/switch/switch-button/switch-button.component.mjs +2 -3
  170. package/esm2022/component/switch/switch.service.mjs +2 -2
  171. package/esm2022/component/table/base/cell-component-base.mjs +10 -22
  172. package/esm2022/component/table/base/detail-component-base.mjs +1 -1
  173. package/esm2022/component/table/base/head-cell-component-base.mjs +2 -2
  174. package/esm2022/component/table/cell/cell.component.mjs +4 -4
  175. package/esm2022/component/table/cell-host/cell-host.component.mjs +1 -1
  176. package/esm2022/component/table/contract/cell-components-map.mjs +2 -4
  177. package/esm2022/component/table/contract/column-reorder-event.mjs +1 -1
  178. package/esm2022/component/table/contract/sort-event.mjs +1 -1
  179. package/esm2022/component/table/contract/table-column.mjs +3 -3
  180. package/esm2022/component/table/default/boolean-cell/boolean-cell.component.mjs +4 -8
  181. package/esm2022/component/table/default/date-cell/date-cell.component.mjs +4 -9
  182. package/esm2022/component/table/default/date-time-cell/date-time-cell.component.mjs +4 -9
  183. package/esm2022/component/table/default/default-head-cell/default-head-cell.component.mjs +5 -6
  184. package/esm2022/component/table/default/list-cell/list-cell.component.mjs +7 -13
  185. package/esm2022/component/table/default/numeric-cell/numeric-cell.component.mjs +4 -9
  186. package/esm2022/component/table/default/string-cell/string-cell.component.mjs +4 -8
  187. package/esm2022/component/table/enum/edit-event.enum.mjs +1 -1
  188. package/esm2022/component/table/enum/edit-type.enum.mjs +1 -1
  189. package/esm2022/component/table/enum/select-type.enum.mjs +1 -1
  190. package/esm2022/component/table/head-cell-dropdown/head-cell-dropdown.component.mjs +4 -11
  191. package/esm2022/component/table/head-cell-host/head-cell-host.component.mjs +3 -4
  192. package/esm2022/component/table/public-api.mjs +1 -1
  193. package/esm2022/component/table/selection-cell/selection-cell.component.mjs +4 -6
  194. package/esm2022/component/table/selection-head-cell/selection-head-cell.component.mjs +5 -7
  195. package/esm2022/component/table/service/table.service.mjs +35 -52
  196. package/esm2022/component/table/table/table.component.mjs +12 -24
  197. package/esm2022/component/table/table-body/table-body.component.mjs +15 -21
  198. package/esm2022/component/table/table-head/filter-dropdown-tab/filter-dropdown-tab.component.mjs +5 -6
  199. package/esm2022/component/table/table-head/main-dropdown-tab/main-dropdown-tab.component.mjs +4 -5
  200. package/esm2022/component/table/table-head/table-head.component.mjs +10 -10
  201. package/esm2022/component/table/table-head/visibility-dropdown-tab/visibility-dropdown-tab.component.mjs +12 -12
  202. package/esm2022/component/table/table-head-group/table-head-group.component.mjs +7 -12
  203. package/esm2022/component/table/table-row/table-row.component.mjs +3 -3
  204. package/esm2022/component/table/util/state-util.mjs +13 -25
  205. package/esm2022/component/table/util/table-util.mjs +15 -9
  206. package/esm2022/component/tabs/public-api.mjs +1 -1
  207. package/esm2022/component/tabs/tab-content.directive.mjs +2 -2
  208. package/esm2022/component/tabs/tab-title.directive.mjs +2 -2
  209. package/esm2022/component/theme-switch/public-api.mjs +1 -1
  210. package/esm2022/component/toggle/public-api.mjs +1 -1
  211. package/esm2022/component/toggle/toggle/toggle.component.mjs +3 -3
  212. package/esm2022/component/toolbar/public-api.mjs +1 -1
  213. package/esm2022/component/toolbar/toolbar/toolbar.component.mjs +2 -2
  214. package/esm2022/component/tree/public-api.mjs +1 -1
  215. package/esm2022/component/tree/tree/tree.component.mjs +6 -6
  216. package/esm2022/component/tree/tree-item/tree-item.component.mjs +9 -20
  217. package/esm2022/component/tree/tree-item-toggle/tree-item-toggle.component.mjs +5 -6
  218. package/esm2022/component/tree/tree.service.mjs +1 -1
  219. package/esm2022/directive/auto-position/auto-position.directive.mjs +3 -3
  220. package/esm2022/directive/auto-position/public-api.mjs +1 -1
  221. package/esm2022/directive/click-outside/click-outside.directive.mjs +2 -2
  222. package/esm2022/directive/click-outside/public-api.mjs +1 -1
  223. package/esm2022/directive/context-menu/context-menu.directive.mjs +4 -8
  224. package/esm2022/directive/context-menu/public-api.mjs +1 -1
  225. package/esm2022/directive/disable-control/disable-control.directive.mjs +1 -1
  226. package/esm2022/directive/disable-control/public-api.mjs +1 -1
  227. package/esm2022/directive/drag-drop/drag-container.directive.mjs +8 -10
  228. package/esm2022/directive/drag-drop/drag-drop.service.mjs +14 -11
  229. package/esm2022/directive/drag-drop/drag-placeholder.directive.mjs +2 -2
  230. package/esm2022/directive/drag-drop/drag-preview.directive.mjs +2 -2
  231. package/esm2022/directive/drag-drop/drag.directive.mjs +4 -7
  232. package/esm2022/directive/drag-drop/model/drag-container-instance.mjs +1 -1
  233. package/esm2022/directive/drag-drop/model/drag-instance.mjs +1 -1
  234. package/esm2022/directive/drag-drop/model/drag-process.mjs +1 -1
  235. package/esm2022/directive/drag-drop/model/drag-selection.mjs +1 -1
  236. package/esm2022/directive/drag-drop/model/drop-event.mjs +1 -1
  237. package/esm2022/directive/drag-drop/model/drop-target.mjs +1 -1
  238. package/esm2022/directive/drag-sort/drag-sort-container.directive.mjs +2 -3
  239. package/esm2022/directive/drag-sort/drag-sort-item.directive.mjs +4 -10
  240. package/esm2022/directive/drag-sort/public-api.mjs +1 -1
  241. package/esm2022/directive/dynamic-content-base.directive.mjs +3 -3
  242. package/esm2022/directive/highlight/highlight.directive.mjs +4 -5
  243. package/esm2022/directive/highlight/public-api.mjs +1 -1
  244. package/esm2022/directive/hint/hint.directive.mjs +5 -14
  245. package/esm2022/directive/hint/public-api.mjs +1 -1
  246. package/esm2022/directive/let/let.directive.mjs +2 -2
  247. package/esm2022/directive/let/public-api.mjs +1 -1
  248. package/esm2022/directive/loader/loader.directive.mjs +3 -3
  249. package/esm2022/directive/loader/public-api.mjs +1 -1
  250. package/esm2022/directive/no-autofill/no-autofill.directive.mjs +1 -1
  251. package/esm2022/directive/no-autofill/public-api.mjs +1 -1
  252. package/esm2022/directive/only-number/public-api.mjs +1 -1
  253. package/esm2022/directive/resize-drag/public-api.mjs +1 -1
  254. package/esm2022/directive/resize-drag/resize-drag.directive.mjs +2 -2
  255. package/esm2022/directive/scroll-into-view/public-api.mjs +1 -1
  256. package/esm2022/directive/scroll-into-view/scroll-into-view.directive.mjs +3 -3
  257. package/esm2022/directive/scrollable/public-api.mjs +1 -1
  258. package/esm2022/directive/scrollable/scrollable/scrollable.component.mjs +6 -13
  259. package/esm2022/directive/scrollable/scrollable.directive.mjs +2 -2
  260. package/esm2022/directive/teta-template/public-api.mjs +1 -1
  261. package/esm2022/directive/teta-template/teta-template.directive.mjs +2 -2
  262. package/esm2022/directive/tooltip/public-api.mjs +1 -1
  263. package/esm2022/directive/tooltip/tooltip.directive.mjs +3 -4
  264. package/esm2022/index.mjs +1 -1
  265. package/esm2022/locale/en.mjs +2 -10
  266. package/esm2022/locale/ru.mjs +2 -10
  267. package/esm2022/locale/teta-config.service.mjs +2 -2
  268. package/esm2022/locale/teta-localisation.mjs +1 -1
  269. package/esm2022/observable/public-api.mjs +1 -1
  270. package/esm2022/observable/zone-observable.mjs +4 -4
  271. package/esm2022/pipe/date-pipe/teta-date.pipe.mjs +2 -2
  272. package/esm2022/pipe/number-pipe/number.pipe.mjs +2 -2
  273. package/esm2022/pipe/number-pipe/public-api.mjs +1 -1
  274. package/esm2022/pipe/util/number-helper.mjs +1 -1
  275. package/esm2022/util/bool-or-func.mjs +1 -1
  276. package/esm2022/util/date-util.mjs +2 -4
  277. package/esm2022/util/export-dom-image.mjs +1 -1
  278. package/esm2022/util/forms-util.mjs +6 -17
  279. package/esm2022/util/string-util.mjs +1 -3
  280. package/fesm2022/tetacom-ng-components.mjs +438 -801
  281. package/fesm2022/tetacom-ng-components.mjs.map +1 -1
  282. package/locale/teta-localisation.d.ts +1 -14
  283. package/package.json +1 -1
  284. package/style/assembly-library.scss +41 -41
  285. package/style/assembly-presets.scss +4 -4
  286. package/style/assembly.scss +3 -3
  287. package/style/border.scss +2 -2
  288. package/style/color.scss +2 -3
  289. package/style/datepicker.scss +9 -10
  290. package/style/divider.scss +2 -1
  291. package/style/drag.scss +1 -1
  292. package/style/dropdown.scss +4 -5
  293. package/style/font.scss +2 -2
  294. package/style/hint.scss +3 -3
  295. package/style/input.scss +14 -9
  296. package/style/layout.scss +8 -8
  297. package/style/list.scss +2 -2
  298. package/style/loader.scss +1 -1
  299. package/style/message.scss +3 -3
  300. package/style/navigation.scss +6 -6
  301. package/style/presets/color-presets.scss +2 -2
  302. package/style/presets/view-types.scss +1 -1
  303. package/style/progress.scss +3 -2
  304. package/style/radio.scss +2 -4
  305. package/style/reset.scss +3 -1
  306. package/style/resize-panel.scss +12 -6
  307. package/style/scroll.scss +1 -1
  308. package/style/select.scss +5 -4
  309. package/style/shadow.scss +3 -3
  310. package/style/sidebar.scss +2 -2
  311. package/style/sizing.scss +1 -1
  312. package/style/skeleton.scss +3 -4
  313. package/style/spacing.scss +1 -1
  314. package/style/switch.scss +2 -3
  315. package/style/tag.scss +8 -8
  316. package/style/toggle.scss +3 -6
  317. package/style/toolbar.scss +3 -3
  318. package/style/tooltip.scss +5 -4
  319. package/style/tree.scss +2 -2
  320. package/style/util/font-util.scss +1 -1
@@ -132,9 +132,7 @@ export class DateUtil {
132
132
  return res;
133
133
  }
134
134
  static toISOString(date) {
135
- return (new Date(date - new Date().getTimezoneOffset() * 60000)
136
- .toISOString()
137
- .slice(0, -5) + 'Z');
135
+ return new Date(date - new Date().getTimezoneOffset() * 60000).toISOString().slice(0, -5) + 'Z';
138
136
  }
139
137
  static isValidDate(date) {
140
138
  return date instanceof Date && !isNaN(date.getTime());
@@ -230,4 +228,4 @@ export class DateUtil {
230
228
  return null;
231
229
  }
232
230
  }
233
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS11dGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3V0aWwvZGF0ZS11dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUV2RCxNQUFNLE9BQU8sUUFBUTtJQUNuQjs7T0FFRztJQUVJLE1BQU0sQ0FBQyxZQUFZLENBQUMsSUFBVSxFQUFFLElBQUksR0FBRyxDQUFDO1FBQzdDLElBQUksSUFBSSxJQUFJLElBQUksWUFBWSxJQUFJLEVBQUUsQ0FBQztZQUNqQyxNQUFNLEVBQUUsR0FBRyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztZQUVwQyxFQUFFLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQztZQUNoQyxPQUFPLEVBQUUsQ0FBQztRQUNaLENBQUM7UUFFRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRDs7T0FFRztJQUVJLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBVSxFQUFFLElBQUksR0FBRyxDQUFDO1FBQ3hDLElBQUksSUFBSSxJQUFJLElBQUksWUFBWSxJQUFJLEVBQUUsQ0FBQztZQUNqQyxNQUFNLEVBQUUsR0FBRyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztZQUVwQyxFQUFFLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQztZQUNoQyxPQUFPLEVBQUUsQ0FBQztRQUNaLENBQUM7UUFFRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRDs7T0FFRztJQUNJLE1BQU0sQ0FBQyxXQUFXLENBQUMsR0FBVztRQUNuQyxJQUFJLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDM0IsT0FBTyxJQUFJ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Q0FBQztpQkFBTSxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRSxDQUFDO2dCQUNyQyxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsUUFBUSxDQUFDLHlCQUF5QixDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzFELENBQUM7aUJBQU0sQ0FBQztnQkFDTixNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDO1lBQ3RCLENBQUM7UUFDSCxDQUFDO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVPLE1BQU0sQ0FBQyx3QkFBd0IsQ0FBQyxVQUFrQjtRQUN4RCxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzVDLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQztZQUN6QixNQUFNLEVBQUUsR0FBRyxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUNsQyxPQUFPLFFBQVEsQ0FBQyxvQkFBb0IsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUMzQyxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge3ByZXBlbmRaZXJvfSBmcm9tICcuLi9waXBlL3V0aWwvbnVtYmVyLWhlbHBlcic7XG5cbmV4cG9ydCBjbGFzcyBEYXRlVXRpbCB7XG4gIC8qKlxuICAgKiDQktGL0YfQtdGB0YLRjCBuLdC00L3QtdC5XG4gICAqL1xuXG4gIHB1YmxpYyBzdGF0aWMgc3VidHJhY3REYXlzKGRhdGU6IERhdGUsIGRheXMgPSAwKTogRGF0ZSB8IG51bGwge1xuICAgIGlmIChkYXRlICYmIGRhdGUgaW5zdGFuY2VvZiBEYXRlKSB7XG4gICAgICBjb25zdCBkdCA9IG5ldyBEYXRlKGRhdGUuZ2V0VGltZSgpKTtcblxuICAgICAgZHQuc2V0RGF0ZShkdC5nZXREYXRlKCkgLSBkYXlzKTtcbiAgICAgIHJldHVybiBkdDtcbiAgICB9XG5cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIC8qKlxuICAgKiDQlNC+0LHQsNCy0LjRgtGMIG4t0LTQvdC10LlcbiAgICovXG5cbiAgcHVibGljIHN0YXRpYyBhZGREYXlzKGRhdGU6IERhdGUsIGRheXMgPSAwKTogRGF0ZSB8IG51bGwge1xuICAgIGlmIChkYXRlICYmIGRhdGUgaW5zdGFuY2VvZiBEYXRlKSB7XG4gICAgICBjb25zdCBkdCA9IG5ldyBEYXRlKGRhdGUuZ2V0VGltZSgpKTtcblxuICAgICAgZHQuc2V0RGF0ZShkdC5nZXREYXRlKCkgKyBkYXlzKTtcbiAgICAgIHJldHVybiBkdDtcbiAgICB9XG5cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIC8qKlxuICAgKiDQn9C+0LvRg9GH0LjRgtGMINC00LDRgtGDINC40Lcg0YHRgtGA0L7QutC4XG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHBhcnNlU3RyaW5nKGRhdDogc3RyaW5nKTogRGF0ZSB8IG51bGwge1xuICAgIGlmICghZGF0IHx8IGRhdC5sZW5ndGggPCAxKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBjb25zdCBwYXJ0cyA9IGRhdC5zcGxpdCgnICcpO1xuICAgIGNvbnN0IGR0UGFydCA9IHBhcnRzWzBdLnNwbGl0KCcuJyk7XG4gICAgY29uc3QgdFBhcnQgPSBwYXJ0c1sxXT8uc3BsaXQoJzonKSA/PyBbJzAnLCAnMCcsICcwJ107XG4gICAgY29uc3QgcGFyc2VkRGF0ZSA9IG5ldyBEYXRlKFxuICAgICAgcGFyc2VJbnQoZHRQYXJ0WzJdLCAxMCksXG4gICAgICBwYXJzZUludChkdFBhcnRbMV0sIDEwKSAtIDEsXG4gICAgICBwYXJzZUludChkdFBhcnRbMF0sIDEwKSxcbiAgICAgIHBhcnNlSW50KHRQYXJ0WzBdLCAxMCksXG4gICAgICBwYXJzZUludCh0UGFydFsxXSwgMTApLFxuICAgICAgcGFyc2VJbnQodFBhcnRbMl0sIDEwKVxuICAgICk7XG4gICAgaWYgKGlzTmFOKHBhcnNlZERhdGUuZ2V0VGltZSgpKSkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIHJldHVybiBwYXJzZWREYXRlO1xuICB9XG5cbiAgLyoqXG4gICAqINCf0YDQuNCy0LXRgdGC0Lgg0LTQsNGC0YMg0Log0YHRgtGA0L7QutC1XG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHRvU3RyaW5nKGRhdDogRGF0ZSk6IHN0cmluZyB7XG4gICAgaWYgKCFkYXQgfHwgIShkYXQgaW5zdGFuY2VvZiBEYXRlKSkge1xuICAgICAgcmV0dXJuICcnO1xuICAgIH1cbiAgICBjb25zdCBtb250aCA9IGRhdC5nZXRNb250aCgpICsgMTtcbiAgICByZXR1cm4gYCR7cHJlcGVuZFplcm8oZGF0LmdldERhdGUoKSwgMil9LiR7cHJlcGVuZFplcm8obW9udGgsIDIpfS4ke2RhdC5nZXRGdWxsWWVhcigpfSAke3ByZXBlbmRaZXJvKGRhdC5nZXRIb3VycygpLCAyKX06JHtwcmVwZW5kWmVybyhkYXQuZ2V0TWludXRlcygpLCAyKX06JHtwcmVwZW5kWmVybyhkYXQuZ2V0U2Vjb25kcygpLCAyKX1gO1xuICB9XG5cbiAgLyoqXG4gICAqINCf0L7QtNCz0L7RgtC+0LLQutCwINC00LDRgtGLINC6INC+0YLQv9GA0LDQstC60LUg0L3QsCDRgdC10YDQstC10YAsINGH0YLQvtCx0Ysg0L3QtdCx0YvQu9C+INGB0LzQtdGJ0LXQvdC40Y8g0YfQsNGB0L7QslxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBjb252ZXJ0VVRDMkRhdGVMb2NhbChkYXRlPzogRGF0ZSk6IERhdGUgfCBudWxsIHtcbiAgICBpZiAoZGF0ZSAmJiBkYXRlIGluc3RhbmNlb2YgRGF0ZSkge1xuICAgICAgY29uc3QgdGltZXpvbmVPZmZzZXRNczogbnVtYmVyID1cbiAgICAgICAgbmV3IERhdGUoXG4gICAgICAgICAgZGF0ZS5nZXRGdWxsWWVhcigpLFxuICAgICAgICAgIGRhdGUuZ2V0TW9udGgoKSxcbiAgICAgICAgICBkYXRlLmdldERhdGUoKVxuICAgICAgICApLmdldFRpbWV6b25lT2Zmc2V0KCkgKiA2MDAwMDtcbiAgICAgIHJldHVybiBuZXcgRGF0ZShkYXRlLmdldFRpbWUoKSAtIHRpbWV6b25lT2Zmc2V0TXMpO1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIC8qKlxuICAgKiDQn9C+0LTQs9C+0YLQvtCy0LrQsCDQtNCw0YLRiyDQuiDQvtGC0L/RgNCw0LLQutC1INC90LAg0YHQtdGA0LLQtdGALCDRh9GC0L7QsdGLINC90LXQsdGL0LvQviDRgdC80LXRidC10L3QuNGPINGH0LDRgdC+0LJcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgY29udmVydERhdGVMb2NhbDJVVEMoZGF0ZT86IERhdGUpOiBEYXRlIHwgbnVsbCB7XG4gICAgaWYgKGRhdGUgJiYgZGF0ZSBpbnN0YW5jZW9mIERhdGUpIHtcbiAgICAgIGNvbnN0IHRpbWV6b25lT2Zmc2V0TXM6IG51bWJlciA9XG4gICAgICAgIG5ldyBEYXRlKFxuICAgICAgICAgIGRhdGUuZ2V0RnVsbFllYXIoKSxcbiAgICAgICAgICBkYXRlLmdldE1vbnRoKCksXG4gICAgICAgICAgZGF0ZS5nZXREYXRlKClcbiAgICAgICAgKS5nZXRUaW1lem9uZU9mZnNldCgpICogNjAwMDA7XG4gICAgICByZXR1cm4gZGF0ZSA9PSBudWxsID8gbnVsbCA6IG5ldyBEYXRlKGRhdGUuZ2V0VGltZSgpICsgdGltZXpvbmVPZmZzZXRNcyk7XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBjb252ZXJ0RGF0ZVN0cmluZ3NUb0RhdGVzKGlucHV0OiBhbnkpOiBhbnkge1xuICAgIGNvbnN0IHJlZ2V4SXNvODYwMSA9XG4gICAgICAvXlxcZHs0fS1cXGRcXGQtXFxkXFxkVFxcZFxcZDpcXGRcXGQ6XFxkXFxkKFxcLlxcZCspPygoWystXVxcZFxcZDpcXGRcXGQpfFopPyQvaTtcbiAgICBpZiAodHlwZW9mIGlucHV0ID09PSAnc3RyaW5nJyAmJiByZWdleElzbzg2MDEudGVzdChpbnB1dCkpIHtcbiAgICAgIHJldHVybiBEYXRlVXRpbC5jb252ZXJ0U3RyaW5nVG9Mb2NhbERhdGUoaW5wdXQpO1xuICAgIH1cbiAgICBpZiAodHlwZW9mIGlucHV0ICE9PSAnb2JqZWN0JyB8fCAhaW5wdXQpIHtcbiAgICAgIHJldHVybiBpbnB1dDtcbiAgICB9XG4gICAgbGV0IHJlczogYW55IHwgYW55W107XG4gICAgaWYgKGlucHV0IGluc3RhbmNlb2YgQXJyYXkpIHtcbiAgICAgIHJlcyA9IFtdO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXMgPSB7fTtcbiAgICB9XG4gICAgcmV0dXJuIERhdGVVdGlsLmZpbGxDb252ZXJ0RGF0ZVN0cmluZ3NUb0RhdGVzKHJlcywgaW5wdXQpO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBjb252ZXJ0RGF0ZXMoaW5wdXQ6IGFueSB8IGFueVtdKTogYW55IHwgYW55W10ge1xuICAgIGlmICh0eXBlb2YgaW5wdXQgIT09ICdvYmplY3QnIHx8ICFpbnB1dCkge1xuICAgICAgcmV0dXJuIGlucHV0O1xuICAgIH1cbiAgICBpZiAoaW5wdXQgaW5zdGFuY2VvZiBEYXRlKSB7XG4gICAgICByZXR1cm4gRGF0ZVV0aWwuY29udmVydFVUQzJEYXRlTG9jYWwoaW5wdXQpO1xuICAgIH1cbiAgICBsZXQgcmVzOiBhbnkgfCBhbnlbXTtcbiAgICBpZiAoaW5wdXQgaW5zdGFuY2VvZiBBcnJheSkge1xuICAgICAgcmVzID0gW107XG4gICAgfSBlbHNlIHtcbiAgICAgIHJlcyA9IHt9O1xuICAgIH1cbiAgICByZXR1cm4gRGF0ZVV0aWwuZmlsbENvbnZlcnREYXRlcyhyZXMsIGlucHV0KTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgZ2V0TW9udGhEYXlzQ291bnQoZGF0ZTogRGF0ZSk6IG51bWJlciB7XG4gICAgcmV0dXJuIG5ldyBEYXRlKGRhdGUuZ2V0RnVsbFllYXIoKSwgZGF0ZS5nZXRNb250aCgpICsgMSwgMCkuZ2V0RGF0ZSgpO1xuICB9XG5cbiAgLy8g0JLQvtC30LLRgNCw0YnQsNC10YIg0YHQv9C40YHQvtC6INC80LXRgdGP0YbQtdCyINC80LXQttC00YMg0LTQstGD0LzRjyDQtNCw0YLQsNC80LhcbiAgcHVibGljIHN0YXRpYyBnZXRSYW5nZU9mTW9udGhzKHN0YXJ0OiBEYXRlLCBlbmQ6IERhdGUpOiBEYXRlW10ge1xuICAgIGlmIChzdGFydCA+IGVuZCB8fCAhc3RhcnQgfHwgIWVuZCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIGNvbnN0IHJlc0RhdGVzOiBEYXRlW10gPSBbXTtcbiAgICBsZXQgaSA9IDA7XG4gICAgbGV0IGRhdGVUbXAgPSBuZXcgRGF0ZShzdGFydC5nZXRGdWxsWWVhcigpLCBzdGFydC5nZXRNb250aCgpICsgaSwgMSk7XG4gICAgd2hpbGUgKGVuZCA+PSBkYXRlVG1wKSB7XG4gICAgICByZXNEYXRlcy5wdXNoKGRhdGVUbXApO1xuICAgICAgaSsrO1xuICAgICAgZGF0ZVRtcCA9IG5ldyBEYXRlKHN0YXJ0LmdldEZ1bGxZZWFyKCksIHN0YXJ0LmdldE1vbnRoKCkgKyBpLCAxKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc0RhdGVzO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyB0cnVuY2F0ZVRvTW9udGgoZGF0ZTogRGF0ZSk6IERhdGUge1xuICAgIGNvbnN0IHJlcyA9IG5ldyBEYXRlKGRhdGUuZ2V0RnVsbFllYXIoKSwgZGF0ZS5nZXRNb250aCgpLCAxLCAwLCAwLCAwKTtcbiAgICByZXR1cm4gcmVzO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyB0cnVuY2F0ZVRvRGF5KGRhdGU6IERhdGUpOiBEYXRlIHtcbiAgICBjb25zdCByZXMgPSBuZXcgRGF0ZShcbiAgICAgIGRhdGUuZ2V0RnVsbFllYXIoKSxcbiAgICAgIGRhdGUuZ2V0TW9udGgoKSxcbiAgICAgIGRhdGUuZ2V0RGF0ZSgpLFxuICAgICAgMCxcbiAgICAgIDAsXG4gICAgICAwXG4gICAgKTtcbiAgICByZXR1cm4gcmVzO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyB0cnVuY2F0ZVRvSG91cihkYXRlOiBEYXRlKTogRGF0ZSB7XG4gICAgY29uc3QgcmVzID0gbmV3IERhdGUoXG4gICAgICBkYXRlLmdldEZ1bGxZZWFyKCksXG4gICAgICBkYXRlLmdldE1vbnRoKCksXG4gICAgICBkYXRlLmdldERhdGUoKSxcbiAgICAgIGRhdGUuZ2V0SG91cnMoKSxcbiAgICAgIDAsXG4gICAgICAwXG4gICAgKTtcbiAgICByZXR1cm4gcmVzO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyB0b0lTT1N0cmluZyhkYXRlOiBudW1iZXIpOiBzdHJpbmcge1xuICAgIHJldHVybiAoXG4gICAgICBuZXcgRGF0ZShkYXRlIC0gbmV3IERhdGUoKS5nZXRUaW1lem9uZU9mZnNldCgpICogNjAwMDApXG4gICAgICAgIC50b0lTT1N0cmluZygpXG4gICAgICAgIC5zbGljZSgwLCAtNSkgKyAnWidcbiAgICApO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBpc1ZhbGlkRGF0ZShkYXRlOiBhbnkpOiBib29sZWFuIHtcbiAgICByZXR1cm4gZGF0ZSBpbnN0YW5jZW9mIERhdGUgJiYgIWlzTmFOKGRhdGUuZ2V0VGltZSgpKTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgbWlsbGlzZWNvbmRUb0h1bWFuRm9ybWF0KG1pbGxpU2Vjb25kczogbnVtYmVyLCBtYXhWYWx1ZSA9IDUwMDAsIHNob3dEYXlzID0gZmFsc2UpOiBzdHJpbmcge1xuICAgIGNvbnN0IG5lZ2F0aXZlID0gbWlsbGlTZWNvbmRzIDwgMDtcbiAgICBpZiAobmVnYXRpdmUpIHtcbiAgICAgIG1pbGxpU2Vjb25kcyA9IC1taWxsaVNlY29uZHM7XG4gICAgfVxuICAgIGxldCBkO1xuICAgIGlmIChzaG93RGF5cykge1xuICAgICAgZCA9IE1hdGgudHJ1bmMobWlsbGlTZWNvbmRzIC8gKDYwMDAwICogNjAgKiAyNCkpO1xuICAgICAgbWlsbGlTZWNvbmRzID0gbWlsbGlTZWNvbmRzIC0gNjAwMDAgKiA2MCAqIDI0ICogZDtcbiAgICB9XG4gICAgY29uc3QgaCA9IE1hdGgudHJ1bmMobWlsbGlTZWNvbmRzIC8gKDYwMDAwICogNjApKTtcbiAgICBtaWxsaVNlY29uZHMgPSBtaWxsaVNlY29uZHMgLSA2MDAwMCAqIDYwICogaDtcbiAgICBjb25zdCBtID0gTWF0aC50cnVuYyhtaWxsaVNlY29uZHMgLyA2MDAwMCk7XG4gICAgbWlsbGlTZWNvbmRzID0gbWlsbGlTZWNvbmRzIC0gNjAwMDAgKiBtO1xuICAgIGNvbnN0IHMgPSBNYXRoLnRydW5jKG1pbGxpU2Vjb25kcyAvIDEwMDApO1xuICAgIG1pbGxpU2Vjb25kcyA9IG1pbGxpU2Vjb25kcyAtIDEwMDAgKiBzO1xuICAgIGNvbnN0IGZyYWMgPSBtaWxsaVNlY29uZHM7XG4gICAgbGV0IHJlc3VsdCA9IG0gPyBtICsgJyDQvCAnIDogJyc7IC8vIHN0YXJ0IHdpdGggbWludXRlc1xuICAgIGlmIChtYXhWYWx1ZSA8IDYwMDAwICogNjApIHtcbiAgICAgIGlmIChzKSB7XG4gICAgICAgIHJlc3VsdCA9IHJlc3VsdCArIHMgKyAnINGBICc7IC8vIGFkZCBzZWNvbmRzIHZhbHVlXG4gICAgICB9XG5cbiAgICAgIGlmKHMgPT09IDAgJiYgIW0pIHtcbiAgICAgICAgcmVzdWx0ID0gcmVzdWx0ICsgJzAgYydcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKG1heFZhbHVlIDwgNTAwMCkge1xuICAgICAgcmVzdWx0ID0gZnJhYyA/IHJlc3VsdCArIGZyYWMgKyAnINC80YEgJyA6IHJlc3VsdDtcbiAgICB9XG5cbiAgICBpZiAoaCkge1xuICAgICAgcmVzdWx0ID0gaCArICcg0YcgJyArIHJlc3VsdDtcbiAgICB9XG4gICAgaWYgKGQpIHtcbiAgICAgIHJlc3VsdCA9IGQgKyAn0LQgJyArIHJlc3VsdDtcbiAgICB9XG4gICAgaWYgKG5lZ2F0aXZlKSB7XG4gICAgICByZXN1bHQgPSAnLScgKyByZXN1bHQ7XG4gICAgfVxuXG5cblxuICAgIHJldHVybiByZXN1bHQudHJpbSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgZmlsbENvbnZlcnREYXRlcyhyZXN1bHQ6IGFueSwgaW5wdXQ6IGFueSk6IGFueSB7XG4gICAgZm9yIChjb25zdCBrZXkgaW4gaW5wdXQpIHtcbiAgICAgIGlmICghaW5wdXQuaGFzT3duUHJvcGVydHkgfHwgIWlucHV0Lmhhc093blByb3BlcnR5KGtleSkpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICBpZiAoaW5wdXQuaGFzT3duUHJvcGVydHkoa2V5KSkge1xuICAgICAgICBsZXQgdmFsdWUgPSBpbnB1dFtrZXldO1xuICAgICAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBEYXRlKSB7XG4gICAgICAgICAgaWYgKHZhbHVlICE9PSBudWxsICYmIHZhbHVlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHZhbHVlID0gRGF0ZVV0aWwuY29udmVydFVUQzJEYXRlTG9jYWwodmFsdWUpO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXN1bHRba2V5XSA9IHZhbHVlO1xuICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgICByZXN1bHRba2V5XSA9IERhdGVVdGlsLmNvbnZlcnREYXRlcyh2YWx1ZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmVzdWx0W2tleV0gPSB2YWx1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgZmlsbENvbnZlcnREYXRlU3RyaW5nc1RvRGF0ZXMocmVzdWx0OiBhbnksIGlucHV0OiBhbnkpOiBhbnkge1xuICAgIGNvbnN0IHJlZ2V4SXNvODYwMSA9XG4gICAgICAvXlxcZHs0fS1cXGRcXGQtXFxkXFxkVFxcZFxcZDpcXGRcXGQ6XFxkXFxkKFxcLlxcZCspPygoWystXVxcZFxcZDpcXGRcXGQpfFo/KT8kL2k7XG4gICAgZm9yIChjb25zdCBrZXkgaW4gaW5wdXQpIHtcbiAgICAgIGlmICghaW5wdXQuaGFzT3duUHJvcGVydHkoa2V5KSkge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHZhbHVlID0gaW5wdXRba2V5XTtcbiAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnICYmIHJlZ2V4SXNvODYwMS50ZXN0KHZhbHVlKSkge1xuICAgICAgICByZXN1bHRba2V5XSA9IERhdGVVdGlsLmNvbnZlcnRTdHJpbmdUb0xvY2FsRGF0ZSh2YWx1ZSk7XG4gICAgICB9IGVsc2UgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgcmVzdWx0W2tleV0gPSBEYXRlVXRpbC5jb252ZXJ0RGF0ZVN0cmluZ3NUb0RhdGVzKHZhbHVlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJlc3VsdFtrZXldID0gdmFsdWU7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBjb252ZXJ0U3RyaW5nVG9Mb2NhbERhdGUoZGF0ZVN0cmluZzogc3RyaW5nKTogRGF0ZSB8IG51bGwge1xuICAgIGNvbnN0IG1pbGxpc2Vjb25kcyA9IERhdGUucGFyc2UoZGF0ZVN0cmluZyk7XG4gICAgaWYgKCFpc05hTihtaWxsaXNlY29uZHMpKSB7XG4gICAgICBjb25zdCBkdCA9IG5ldyBEYXRlKG1pbGxpc2Vjb25kcyk7XG4gICAgICByZXR1cm4gRGF0ZVV0aWwuY29udmVydERhdGVMb2NhbDJVVEMoZHQpO1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxufVxuIl19
231
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS11dGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3V0aWwvZGF0ZS11dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUV6RCxNQUFNLE9BQU8sUUFBUTtJQUNuQjs7T0FFRztJQUVJLE1BQU0sQ0FBQyxZQUFZLENBQUMsSUFBVSxFQUFFLElBQUksR0FBRyxDQUFDO1FBQzdDLElBQUksSUFBSSxJQUFJLElBQUksWUFBWSxJQUFJLEVBQUUsQ0FBQztZQUNqQyxNQUFNLEVBQUUsR0FBRyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztZQUVwQyxFQUFFLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQztZQUNoQyxPQUFPLEVBQUUsQ0FBQztRQUNaLENBQUM7UUFFRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRDs7T0FFRztJQUVJLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBVSxFQUFFLElBQUksR0FBRyxDQUFDO1FBQ3hDLElBQUksSUFBSSxJQUFJLElBQUksWUFBWSxJQUFJLEVBQUUsQ0FBQztZQUNqQyxNQUFNLEVBQUUsR0FBRyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztZQUVwQyxFQUFFLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQztZQUNoQyxPQUFPLEVBQUUsQ0FBQztRQUNaLENBQUM7UUFFRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRDs7T0FFRztJQUNJLE1BQU0sQ0FBQyxXQUFXLENBQUMsR0FBVztRQUNuQyxJQUFJLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDM0IsT0FBTyxJQUFJ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T0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFLENBQUM7Z0JBQ3JDLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxRQUFRLENBQUMseUJBQXlCLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDMUQsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUM7WUFDdEIsQ0FBQztRQUNILENBQUM7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRU8sTUFBTSxDQUFDLHdCQUF3QixDQUFDLFVBQWtCO1FBQ3hELE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDNUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDO1lBQ3pCLE1BQU0sRUFBRSxHQUFHLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQ2xDLE9BQU8sUUFBUSxDQUFDLG9CQUFvQixDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzNDLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHByZXBlbmRaZXJvIH0gZnJvbSAnLi4vcGlwZS91dGlsL251bWJlci1oZWxwZXInO1xuXG5leHBvcnQgY2xhc3MgRGF0ZVV0aWwge1xuICAvKipcbiAgICog0JLRi9GH0LXRgdGC0Ywgbi3QtNC90LXQuVxuICAgKi9cblxuICBwdWJsaWMgc3RhdGljIHN1YnRyYWN0RGF5cyhkYXRlOiBEYXRlLCBkYXlzID0gMCk6IERhdGUgfCBudWxsIHtcbiAgICBpZiAoZGF0ZSAmJiBkYXRlIGluc3RhbmNlb2YgRGF0ZSkge1xuICAgICAgY29uc3QgZHQgPSBuZXcgRGF0ZShkYXRlLmdldFRpbWUoKSk7XG5cbiAgICAgIGR0LnNldERhdGUoZHQuZ2V0RGF0ZSgpIC0gZGF5cyk7XG4gICAgICByZXR1cm4gZHQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICAvKipcbiAgICog0JTQvtCx0LDQstC40YLRjCBuLdC00L3QtdC5XG4gICAqL1xuXG4gIHB1YmxpYyBzdGF0aWMgYWRkRGF5cyhkYXRlOiBEYXRlLCBkYXlzID0gMCk6IERhdGUgfCBudWxsIHtcbiAgICBpZiAoZGF0ZSAmJiBkYXRlIGluc3RhbmNlb2YgRGF0ZSkge1xuICAgICAgY29uc3QgZHQgPSBuZXcgRGF0ZShkYXRlLmdldFRpbWUoKSk7XG5cbiAgICAgIGR0LnNldERhdGUoZHQuZ2V0RGF0ZSgpICsgZGF5cyk7XG4gICAgICByZXR1cm4gZHQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICAvKipcbiAgICog0J/QvtC70YPRh9C40YLRjCDQtNCw0YLRgyDQuNC3INGB0YLRgNC+0LrQuFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBwYXJzZVN0cmluZyhkYXQ6IHN0cmluZyk6IERhdGUgfCBudWxsIHtcbiAgICBpZiAoIWRhdCB8fCBkYXQubGVuZ3RoIDwgMSkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgY29uc3QgcGFydHMgPSBkYXQuc3BsaXQoJyAnKTtcbiAgICBjb25zdCBkdFBhcnQgPSBwYXJ0c1swXS5zcGxpdCgnLicpO1xuICAgIGNvbnN0IHRQYXJ0ID0gcGFydHNbMV0/LnNwbGl0KCc6JykgPz8gWycwJywgJzAnLCAnMCddO1xuICAgIGNvbnN0IHBhcnNlZERhdGUgPSBuZXcgRGF0ZShcbiAgICAgIHBhcnNlSW50KGR0UGFydFsyXSwgMTApLFxuICAgICAgcGFyc2VJbnQoZHRQYXJ0WzFdLCAxMCkgLSAxLFxuICAgICAgcGFyc2VJbnQoZHRQYXJ0WzBdLCAxMCksXG4gICAgICBwYXJzZUludCh0UGFydFswXSwgMTApLFxuICAgICAgcGFyc2VJbnQodFBhcnRbMV0sIDEwKSxcbiAgICAgIHBhcnNlSW50KHRQYXJ0WzJdLCAxMClcbiAgICApO1xuICAgIGlmIChpc05hTihwYXJzZWREYXRlLmdldFRpbWUoKSkpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICByZXR1cm4gcGFyc2VkRGF0ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiDQn9GA0LjQstC10YHRgtC4INC00LDRgtGDINC6INGB0YLRgNC+0LrQtVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyB0b1N0cmluZyhkYXQ6IERhdGUpOiBzdHJpbmcge1xuICAgIGlmICghZGF0IHx8ICEoZGF0IGluc3RhbmNlb2YgRGF0ZSkpIHtcbiAgICAgIHJldHVybiAnJztcbiAgICB9XG4gICAgY29uc3QgbW9udGggPSBkYXQuZ2V0TW9udGgoKSArIDE7XG4gICAgcmV0dXJuIGAke3ByZXBlbmRaZXJvKGRhdC5nZXREYXRlKCksIDIpfS4ke3ByZXBlbmRaZXJvKG1vbnRoLCAyKX0uJHtkYXQuZ2V0RnVsbFllYXIoKX0gJHtwcmVwZW5kWmVybyhcbiAgICAgIGRhdC5nZXRIb3VycygpLFxuICAgICAgMlxuICAgICl9OiR7cHJlcGVuZFplcm8oZGF0LmdldE1pbnV0ZXMoKSwgMil9OiR7cHJlcGVuZFplcm8oZGF0LmdldFNlY29uZHMoKSwgMil9YDtcbiAgfVxuXG4gIC8qKlxuICAgKiDQn9C+0LTQs9C+0YLQvtCy0LrQsCDQtNCw0YLRiyDQuiDQvtGC0L/RgNCw0LLQutC1INC90LAg0YHQtdGA0LLQtdGALCDRh9GC0L7QsdGLINC90LXQsdGL0LvQviDRgdC80LXRidC10L3QuNGPINGH0LDRgdC+0LJcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgY29udmVydFVUQzJEYXRlTG9jYWwoZGF0ZT86IERhdGUpOiBEYXRlIHwgbnVsbCB7XG4gICAgaWYgKGRhdGUgJiYgZGF0ZSBpbnN0YW5jZW9mIERhdGUpIHtcbiAgICAgIGNvbnN0IHRpbWV6b25lT2Zmc2V0TXM6IG51bWJlciA9XG4gICAgICAgIG5ldyBEYXRlKGRhdGUuZ2V0RnVsbFllYXIoKSwgZGF0ZS5nZXRNb250aCgpLCBkYXRlLmdldERhdGUoKSkuZ2V0VGltZXpvbmVPZmZzZXQoKSAqIDYwMDAwO1xuICAgICAgcmV0dXJuIG5ldyBEYXRlKGRhdGUuZ2V0VGltZSgpIC0gdGltZXpvbmVPZmZzZXRNcyk7XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqINCf0L7QtNCz0L7RgtC+0LLQutCwINC00LDRgtGLINC6INC+0YLQv9GA0LDQstC60LUg0L3QsCDRgdC10YDQstC10YAsINGH0YLQvtCx0Ysg0L3QtdCx0YvQu9C+INGB0LzQtdGJ0LXQvdC40Y8g0YfQsNGB0L7QslxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBjb252ZXJ0RGF0ZUxvY2FsMlVUQyhkYXRlPzogRGF0ZSk6IERhdGUgfCBudWxsIHtcbiAgICBpZiAoZGF0ZSAmJiBkYXRlIGluc3RhbmNlb2YgRGF0ZSkge1xuICAgICAgY29uc3QgdGltZXpvbmVPZmZzZXRNczogbnVtYmVyID1cbiAgICAgICAgbmV3IERhdGUoZGF0ZS5nZXRGdWxsWWVhcigpLCBkYXRlLmdldE1vbnRoKCksIGRhdGUuZ2V0RGF0ZSgpKS5nZXRUaW1lem9uZU9mZnNldCgpICogNjAwMDA7XG4gICAgICByZXR1cm4gZGF0ZSA9PSBudWxsID8gbnVsbCA6IG5ldyBEYXRlKGRhdGUuZ2V0VGltZSgpICsgdGltZXpvbmVPZmZzZXRNcyk7XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBjb252ZXJ0RGF0ZVN0cmluZ3NUb0RhdGVzKGlucHV0OiBhbnkpOiBhbnkge1xuICAgIGNvbnN0IHJlZ2V4SXNvODYwMSA9IC9eXFxkezR9LVxcZFxcZC1cXGRcXGRUXFxkXFxkOlxcZFxcZDpcXGRcXGQoXFwuXFxkKyk/KChbKy1dXFxkXFxkOlxcZFxcZCl8Wik/JC9pO1xuICAgIGlmICh0eXBlb2YgaW5wdXQgPT09ICdzdHJpbmcnICYmIHJlZ2V4SXNvODYwMS50ZXN0KGlucHV0KSkge1xuICAgICAgcmV0dXJuIERhdGVVdGlsLmNvbnZlcnRTdHJpbmdUb0xvY2FsRGF0ZShpbnB1dCk7XG4gICAgfVxuICAgIGlmICh0eXBlb2YgaW5wdXQgIT09ICdvYmplY3QnIHx8ICFpbnB1dCkge1xuICAgICAgcmV0dXJuIGlucHV0O1xuICAgIH1cbiAgICBsZXQgcmVzOiBhbnkgfCBhbnlbXTtcbiAgICBpZiAoaW5wdXQgaW5zdGFuY2VvZiBBcnJheSkge1xuICAgICAgcmVzID0gW107XG4gICAgfSBlbHNlIHtcbiAgICAgIHJlcyA9IHt9O1xuICAgIH1cbiAgICByZXR1cm4gRGF0ZVV0aWwuZmlsbENvbnZlcnREYXRlU3RyaW5nc1RvRGF0ZXMocmVzLCBpbnB1dCk7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGNvbnZlcnREYXRlcyhpbnB1dDogYW55IHwgYW55W10pOiBhbnkgfCBhbnlbXSB7XG4gICAgaWYgKHR5cGVvZiBpbnB1dCAhPT0gJ29iamVjdCcgfHwgIWlucHV0KSB7XG4gICAgICByZXR1cm4gaW5wdXQ7XG4gICAgfVxuICAgIGlmIChpbnB1dCBpbnN0YW5jZW9mIERhdGUpIHtcbiAgICAgIHJldHVybiBEYXRlVXRpbC5jb252ZXJ0VVRDMkRhdGVMb2NhbChpbnB1dCk7XG4gICAgfVxuICAgIGxldCByZXM6IGFueSB8IGFueVtdO1xuICAgIGlmIChpbnB1dCBpbnN0YW5jZW9mIEFycmF5KSB7XG4gICAgICByZXMgPSBbXTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmVzID0ge307XG4gICAgfVxuICAgIHJldHVybiBEYXRlVXRpbC5maWxsQ29udmVydERhdGVzKHJlcywgaW5wdXQpO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBnZXRNb250aERheXNDb3VudChkYXRlOiBEYXRlKTogbnVtYmVyIHtcbiAgICByZXR1cm4gbmV3IERhdGUoZGF0ZS5nZXRGdWxsWWVhcigpLCBkYXRlLmdldE1vbnRoKCkgKyAxLCAwKS5nZXREYXRlKCk7XG4gIH1cblxuICAvLyDQktC+0LfQstGA0LDRidCw0LXRgiDRgdC/0LjRgdC+0Log0LzQtdGB0Y/RhtC10LIg0LzQtdC20LTRgyDQtNCy0YPQvNGPINC00LDRgtCw0LzQuFxuICBwdWJsaWMgc3RhdGljIGdldFJhbmdlT2ZNb250aHMoc3RhcnQ6IERhdGUsIGVuZDogRGF0ZSk6IERhdGVbXSB7XG4gICAgaWYgKHN0YXJ0ID4gZW5kIHx8ICFzdGFydCB8fCAhZW5kKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgY29uc3QgcmVzRGF0ZXM6IERhdGVbXSA9IFtdO1xuICAgIGxldCBpID0gMDtcbiAgICBsZXQgZGF0ZVRtcCA9IG5ldyBEYXRlKHN0YXJ0LmdldEZ1bGxZZWFyKCksIHN0YXJ0LmdldE1vbnRoKCkgKyBpLCAxKTtcbiAgICB3aGlsZSAoZW5kID49IGRhdGVUbXApIHtcbiAgICAgIHJlc0RhdGVzLnB1c2goZGF0ZVRtcCk7XG4gICAgICBpKys7XG4gICAgICBkYXRlVG1wID0gbmV3IERhdGUoc3RhcnQuZ2V0RnVsbFllYXIoKSwgc3RhcnQuZ2V0TW9udGgoKSArIGksIDEpO1xuICAgIH1cbiAgICByZXR1cm4gcmVzRGF0ZXM7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIHRydW5jYXRlVG9Nb250aChkYXRlOiBEYXRlKTogRGF0ZSB7XG4gICAgY29uc3QgcmVzID0gbmV3IERhdGUoZGF0ZS5nZXRGdWxsWWVhcigpLCBkYXRlLmdldE1vbnRoKCksIDEsIDAsIDAsIDApO1xuICAgIHJldHVybiByZXM7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIHRydW5jYXRlVG9EYXkoZGF0ZTogRGF0ZSk6IERhdGUge1xuICAgIGNvbnN0IHJlcyA9IG5ldyBEYXRlKGRhdGUuZ2V0RnVsbFllYXIoKSwgZGF0ZS5nZXRNb250aCgpLCBkYXRlLmdldERhdGUoKSwgMCwgMCwgMCk7XG4gICAgcmV0dXJuIHJlcztcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgdHJ1bmNhdGVUb0hvdXIoZGF0ZTogRGF0ZSk6IERhdGUge1xuICAgIGNvbnN0IHJlcyA9IG5ldyBEYXRlKGRhdGUuZ2V0RnVsbFllYXIoKSwgZGF0ZS5nZXRNb250aCgpLCBkYXRlLmdldERhdGUoKSwgZGF0ZS5nZXRIb3VycygpLCAwLCAwKTtcbiAgICByZXR1cm4gcmVzO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyB0b0lTT1N0cmluZyhkYXRlOiBudW1iZXIpOiBzdHJpbmcge1xuICAgIHJldHVybiBuZXcgRGF0ZShkYXRlIC0gbmV3IERhdGUoKS5nZXRUaW1lem9uZU9mZnNldCgpICogNjAwMDApLnRvSVNPU3RyaW5nKCkuc2xpY2UoMCwgLTUpICsgJ1onO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBpc1ZhbGlkRGF0ZShkYXRlOiBhbnkpOiBib29sZWFuIHtcbiAgICByZXR1cm4gZGF0ZSBpbnN0YW5jZW9mIERhdGUgJiYgIWlzTmFOKGRhdGUuZ2V0VGltZSgpKTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgbWlsbGlzZWNvbmRUb0h1bWFuRm9ybWF0KG1pbGxpU2Vjb25kczogbnVtYmVyLCBtYXhWYWx1ZSA9IDUwMDAsIHNob3dEYXlzID0gZmFsc2UpOiBzdHJpbmcge1xuICAgIGNvbnN0IG5lZ2F0aXZlID0gbWlsbGlTZWNvbmRzIDwgMDtcbiAgICBpZiAobmVnYXRpdmUpIHtcbiAgICAgIG1pbGxpU2Vjb25kcyA9IC1taWxsaVNlY29uZHM7XG4gICAgfVxuICAgIGxldCBkO1xuICAgIGlmIChzaG93RGF5cykge1xuICAgICAgZCA9IE1hdGgudHJ1bmMobWlsbGlTZWNvbmRzIC8gKDYwMDAwICogNjAgKiAyNCkpO1xuICAgICAgbWlsbGlTZWNvbmRzID0gbWlsbGlTZWNvbmRzIC0gNjAwMDAgKiA2MCAqIDI0ICogZDtcbiAgICB9XG4gICAgY29uc3QgaCA9IE1hdGgudHJ1bmMobWlsbGlTZWNvbmRzIC8gKDYwMDAwICogNjApKTtcbiAgICBtaWxsaVNlY29uZHMgPSBtaWxsaVNlY29uZHMgLSA2MDAwMCAqIDYwICogaDtcbiAgICBjb25zdCBtID0gTWF0aC50cnVuYyhtaWxsaVNlY29uZHMgLyA2MDAwMCk7XG4gICAgbWlsbGlTZWNvbmRzID0gbWlsbGlTZWNvbmRzIC0gNjAwMDAgKiBtO1xuICAgIGNvbnN0IHMgPSBNYXRoLnRydW5jKG1pbGxpU2Vjb25kcyAvIDEwMDApO1xuICAgIG1pbGxpU2Vjb25kcyA9IG1pbGxpU2Vjb25kcyAtIDEwMDAgKiBzO1xuICAgIGNvbnN0IGZyYWMgPSBtaWxsaVNlY29uZHM7XG4gICAgbGV0IHJlc3VsdCA9IG0gPyBtICsgJyDQvCAnIDogJyc7IC8vIHN0YXJ0IHdpdGggbWludXRlc1xuICAgIGlmIChtYXhWYWx1ZSA8IDYwMDAwICogNjApIHtcbiAgICAgIGlmIChzKSB7XG4gICAgICAgIHJlc3VsdCA9IHJlc3VsdCArIHMgKyAnINGBICc7IC8vIGFkZCBzZWNvbmRzIHZhbHVlXG4gICAgICB9XG5cbiAgICAgIGlmIChzID09PSAwICYmICFtKSB7XG4gICAgICAgIHJlc3VsdCA9IHJlc3VsdCArICcwIGMnO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAobWF4VmFsdWUgPCA1MDAwKSB7XG4gICAgICByZXN1bHQgPSBmcmFjID8gcmVzdWx0ICsgZnJhYyArICcg0LzRgSAnIDogcmVzdWx0O1xuICAgIH1cblxuICAgIGlmIChoKSB7XG4gICAgICByZXN1bHQgPSBoICsgJyDRhyAnICsgcmVzdWx0O1xuICAgIH1cbiAgICBpZiAoZCkge1xuICAgICAgcmVzdWx0ID0gZCArICfQtCAnICsgcmVzdWx0O1xuICAgIH1cbiAgICBpZiAobmVnYXRpdmUpIHtcbiAgICAgIHJlc3VsdCA9ICctJyArIHJlc3VsdDtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0LnRyaW0oKTtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIGZpbGxDb252ZXJ0RGF0ZXMocmVzdWx0OiBhbnksIGlucHV0OiBhbnkpOiBhbnkge1xuICAgIGZvciAoY29uc3Qga2V5IGluIGlucHV0KSB7XG4gICAgICBpZiAoIWlucHV0Lmhhc093blByb3BlcnR5IHx8ICFpbnB1dC5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgaWYgKGlucHV0Lmhhc093blByb3BlcnR5KGtleSkpIHtcbiAgICAgICAgbGV0IHZhbHVlID0gaW5wdXRba2V5XTtcbiAgICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgRGF0ZSkge1xuICAgICAgICAgIGlmICh2YWx1ZSAhPT0gbnVsbCAmJiB2YWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB2YWx1ZSA9IERhdGVVdGlsLmNvbnZlcnRVVEMyRGF0ZUxvY2FsKHZhbHVlKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmVzdWx0W2tleV0gPSB2YWx1ZTtcbiAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgcmVzdWx0W2tleV0gPSBEYXRlVXRpbC5jb252ZXJ0RGF0ZXModmFsdWUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJlc3VsdFtrZXldID0gdmFsdWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIGZpbGxDb252ZXJ0RGF0ZVN0cmluZ3NUb0RhdGVzKHJlc3VsdDogYW55LCBpbnB1dDogYW55KTogYW55IHtcbiAgICBjb25zdCByZWdleElzbzg2MDEgPSAvXlxcZHs0fS1cXGRcXGQtXFxkXFxkVFxcZFxcZDpcXGRcXGQ6XFxkXFxkKFxcLlxcZCspPygoWystXVxcZFxcZDpcXGRcXGQpfFo/KT8kL2k7XG4gICAgZm9yIChjb25zdCBrZXkgaW4gaW5wdXQpIHtcbiAgICAgIGlmICghaW5wdXQuaGFzT3duUHJvcGVydHkoa2V5KSkge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHZhbHVlID0gaW5wdXRba2V5XTtcbiAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnICYmIHJlZ2V4SXNvODYwMS50ZXN0KHZhbHVlKSkge1xuICAgICAgICByZXN1bHRba2V5XSA9IERhdGVVdGlsLmNvbnZlcnRTdHJpbmdUb0xvY2FsRGF0ZSh2YWx1ZSk7XG4gICAgICB9IGVsc2UgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgcmVzdWx0W2tleV0gPSBEYXRlVXRpbC5jb252ZXJ0RGF0ZVN0cmluZ3NUb0RhdGVzKHZhbHVlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJlc3VsdFtrZXldID0gdmFsdWU7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBjb252ZXJ0U3RyaW5nVG9Mb2NhbERhdGUoZGF0ZVN0cmluZzogc3RyaW5nKTogRGF0ZSB8IG51bGwge1xuICAgIGNvbnN0IG1pbGxpc2Vjb25kcyA9IERhdGUucGFyc2UoZGF0ZVN0cmluZyk7XG4gICAgaWYgKCFpc05hTihtaWxsaXNlY29uZHMpKSB7XG4gICAgICBjb25zdCBkdCA9IG5ldyBEYXRlKG1pbGxpc2Vjb25kcyk7XG4gICAgICByZXR1cm4gRGF0ZVV0aWwuY29udmVydERhdGVMb2NhbDJVVEMoZHQpO1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxufVxuIl19
@@ -19,4 +19,4 @@ export const exportDomToImage = (node, type = ExportType.png, options) => {
19
19
  const render = renderMapping.get(type) ?? toPng;
20
20
  return render(node, { filter: options?.filter ?? null });
21
21
  };
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwb3J0LWRvbS1pbWFnZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy91dGlsL2V4cG9ydC1kb20taW1hZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRWxGLE1BQU0sQ0FBTixJQUFZLFVBT1g7QUFQRCxXQUFZLFVBQVU7SUFDcEIseUNBQUcsQ0FBQTtJQUNILHlDQUFHLENBQUE7SUFDSCwyQ0FBSSxDQUFBO0lBQ0osMkNBQUksQ0FBQTtJQUNKLCtDQUFNLENBQUE7SUFDTixxREFBUyxDQUFBO0FBQ1gsQ0FBQyxFQVBXLFVBQVUsS0FBVixVQUFVLFFBT3JCO0FBTUQsTUFBTSxhQUFhLEdBQUcsSUFBSSxHQUFHLEVBQW1CO0tBQzdDLEdBQUcsQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQztLQUM1QixHQUFHLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUM7S0FDMUIsR0FBRyxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDO0tBQ2hDLEdBQUcsQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQztLQUM1QixHQUFHLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUM7S0FDMUIsR0FBRyxDQUFDLFVBQVUsQ0FBQyxTQUFTLEVBQUUsV0FBVyxDQUFDLENBQUE7QUFFekMsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxJQUFpQixFQUFFLElBQUksR0FBRyxVQUFVLENBQUMsR0FBRyxFQUFFLE9BQXVCLEVBQUUsRUFBRTtJQUNwRyxNQUFNLE1BQU0sR0FBRyxhQUFhLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssQ0FBQztJQUNoRCxPQUFPLE1BQU0sQ0FBQyxJQUFJLEVBQUUsRUFBQyxNQUFNLEVBQUUsT0FBTyxFQUFFLE1BQU0sSUFBSSxJQUFJLEVBQUMsQ0FBQyxDQUFBO0FBQ3hELENBQUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7dG9QbmcsIHRvQmxvYiwgdG9DYW52YXMsIHRvSnBlZywgdG9TdmcsIHRvUGl4ZWxEYXRhfSBmcm9tICdodG1sLXRvLWltYWdlJztcblxuZXhwb3J0IGVudW0gRXhwb3J0VHlwZSB7XG4gIHBuZyxcbiAgc3ZnLFxuICBqcGVnLFxuICBibG9iLFxuICBjYW52YXMsXG4gIHBpeGVsRGF0YVxufVxuXG5leHBvcnQgdHlwZSBFeHBvcnRPcHRpb25zID0ge1xuICBmaWx0ZXI6IChub2RlOiBIVE1MRWxlbWVudCkgPT4gYm9vbGVhblxufVxuXG5jb25zdCByZW5kZXJNYXBwaW5nID0gbmV3IE1hcDxFeHBvcnRUeXBlLCBhbnk+KClcbiAgLnNldChFeHBvcnRUeXBlLmJsb2IsIHRvQmxvYilcbiAgLnNldChFeHBvcnRUeXBlLnBuZywgdG9QbmcpXG4gIC5zZXQoRXhwb3J0VHlwZS5jYW52YXMsIHRvQ2FudmFzKVxuICAuc2V0KEV4cG9ydFR5cGUuanBlZywgdG9KcGVnKVxuICAuc2V0KEV4cG9ydFR5cGUuc3ZnLCB0b1N2ZylcbiAgLnNldChFeHBvcnRUeXBlLnBpeGVsRGF0YSwgdG9QaXhlbERhdGEpXG5cbmV4cG9ydCBjb25zdCBleHBvcnREb21Ub0ltYWdlID0gKG5vZGU6IEhUTUxFbGVtZW50LCB0eXBlID0gRXhwb3J0VHlwZS5wbmcsIG9wdGlvbnM/OiBFeHBvcnRPcHRpb25zKSA9PiB7XG4gIGNvbnN0IHJlbmRlciA9IHJlbmRlck1hcHBpbmcuZ2V0KHR5cGUpID8/IHRvUG5nO1xuICByZXR1cm4gcmVuZGVyKG5vZGUsIHtmaWx0ZXI6IG9wdGlvbnM/LmZpbHRlciA/PyBudWxsfSlcbn1cbiJdfQ==
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwb3J0LWRvbS1pbWFnZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy91dGlsL2V4cG9ydC1kb20taW1hZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXBGLE1BQU0sQ0FBTixJQUFZLFVBT1g7QUFQRCxXQUFZLFVBQVU7SUFDcEIseUNBQUcsQ0FBQTtJQUNILHlDQUFHLENBQUE7SUFDSCwyQ0FBSSxDQUFBO0lBQ0osMkNBQUksQ0FBQTtJQUNKLCtDQUFNLENBQUE7SUFDTixxREFBUyxDQUFBO0FBQ1gsQ0FBQyxFQVBXLFVBQVUsS0FBVixVQUFVLFFBT3JCO0FBTUQsTUFBTSxhQUFhLEdBQUcsSUFBSSxHQUFHLEVBQW1CO0tBQzdDLEdBQUcsQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQztLQUM1QixHQUFHLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUM7S0FDMUIsR0FBRyxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDO0tBQ2hDLEdBQUcsQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQztLQUM1QixHQUFHLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUM7S0FDMUIsR0FBRyxDQUFDLFVBQVUsQ0FBQyxTQUFTLEVBQUUsV0FBVyxDQUFDLENBQUM7QUFFMUMsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxJQUFpQixFQUFFLElBQUksR0FBRyxVQUFVLENBQUMsR0FBRyxFQUFFLE9BQXVCLEVBQUUsRUFBRTtJQUNwRyxNQUFNLE1BQU0sR0FBRyxhQUFhLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssQ0FBQztJQUNoRCxPQUFPLE1BQU0sQ0FBQyxJQUFJLEVBQUUsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLE1BQU0sSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0FBQzNELENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHRvUG5nLCB0b0Jsb2IsIHRvQ2FudmFzLCB0b0pwZWcsIHRvU3ZnLCB0b1BpeGVsRGF0YSB9IGZyb20gJ2h0bWwtdG8taW1hZ2UnO1xuXG5leHBvcnQgZW51bSBFeHBvcnRUeXBlIHtcbiAgcG5nLFxuICBzdmcsXG4gIGpwZWcsXG4gIGJsb2IsXG4gIGNhbnZhcyxcbiAgcGl4ZWxEYXRhLFxufVxuXG5leHBvcnQgdHlwZSBFeHBvcnRPcHRpb25zID0ge1xuICBmaWx0ZXI6IChub2RlOiBIVE1MRWxlbWVudCkgPT4gYm9vbGVhbjtcbn07XG5cbmNvbnN0IHJlbmRlck1hcHBpbmcgPSBuZXcgTWFwPEV4cG9ydFR5cGUsIGFueT4oKVxuICAuc2V0KEV4cG9ydFR5cGUuYmxvYiwgdG9CbG9iKVxuICAuc2V0KEV4cG9ydFR5cGUucG5nLCB0b1BuZylcbiAgLnNldChFeHBvcnRUeXBlLmNhbnZhcywgdG9DYW52YXMpXG4gIC5zZXQoRXhwb3J0VHlwZS5qcGVnLCB0b0pwZWcpXG4gIC5zZXQoRXhwb3J0VHlwZS5zdmcsIHRvU3ZnKVxuICAuc2V0KEV4cG9ydFR5cGUucGl4ZWxEYXRhLCB0b1BpeGVsRGF0YSk7XG5cbmV4cG9ydCBjb25zdCBleHBvcnREb21Ub0ltYWdlID0gKG5vZGU6IEhUTUxFbGVtZW50LCB0eXBlID0gRXhwb3J0VHlwZS5wbmcsIG9wdGlvbnM/OiBFeHBvcnRPcHRpb25zKSA9PiB7XG4gIGNvbnN0IHJlbmRlciA9IHJlbmRlck1hcHBpbmcuZ2V0KHR5cGUpID8/IHRvUG5nO1xuICByZXR1cm4gcmVuZGVyKG5vZGUsIHsgZmlsdGVyOiBvcHRpb25zPy5maWx0ZXIgPz8gbnVsbCB9KTtcbn07XG4iXX0=
@@ -5,7 +5,7 @@ import { FilterType } from '../component/filter/enum/filter-type.enum';
5
5
  export class FormsUtil {
6
6
  static validateAllFormFields(formGroup) {
7
7
  formGroup.updateValueAndValidity();
8
- Object.keys(formGroup.controls).forEach(field => {
8
+ Object.keys(formGroup.controls).forEach((field) => {
9
9
  const control = formGroup.get(field);
10
10
  if (control instanceof UntypedFormControl) {
11
11
  control.markAsTouched({ onlySelf: true });
@@ -17,8 +17,7 @@ export class FormsUtil {
17
17
  });
18
18
  }
19
19
  static controlIsInvalid(formGroup, controlName) {
20
- return (formGroup.controls[controlName]?.invalid &&
21
- formGroup.controls[controlName]?.dirty);
20
+ return formGroup.controls[controlName]?.invalid && formGroup.controls[controlName]?.dirty;
22
21
  }
23
22
  static getControlErrors(formGroup, controlName) {
24
23
  if (FormsUtil.controlIsInvalid(formGroup, controlName)) {
@@ -27,19 +26,12 @@ export class FormsUtil {
27
26
  return [];
28
27
  }
29
28
  static matchValuesValidator(matchTo) {
30
- return (control) => !!control.parent &&
31
- !!control.parent.value &&
32
- control.value === control.parent.controls[matchTo].value
29
+ return (control) => !!control.parent && !!control.parent.value && control.value === control.parent.controls[matchTo].value
33
30
  ? null
34
31
  : { isMatching: false };
35
32
  }
36
33
  static requiredIf(value) {
37
- return (control) => !!control.parent &&
38
- !!control.parent.value &&
39
- control.value != null &&
40
- value
41
- ? null
42
- : { isMatching: false };
34
+ return (control) => !!control.parent && !!control.parent.value && control.value != null && value ? null : { isMatching: false };
43
35
  }
44
36
  static initFormFromColumns(columns, dataItem) {
45
37
  const form = new UntypedFormGroup({});
@@ -56,10 +48,7 @@ export class FormsUtil {
56
48
  disabled: !column.editable,
57
49
  }, {
58
50
  validators: FormsUtil.getValidators(column),
59
- updateOn: column.filterType === FilterType.number ||
60
- column.filterType === FilterType.string
61
- ? 'blur'
62
- : 'change',
51
+ updateOn: column.filterType === FilterType.number || column.filterType === FilterType.string ? 'blur' : 'change',
63
52
  });
64
53
  }
65
54
  static getValidators(column) {
@@ -100,4 +89,4 @@ export class FormsUtil {
100
89
  return ngModelGroup || ngForm || null;
101
90
  }
102
91
  }
103
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybXMtdXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy91dGlsL2Zvcm1zLXV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBWSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBRUwsZ0JBQWdCLEVBQ2hCLE1BQU0sRUFDTixZQUFZLEVBQ1osa0JBQWtCLEVBQ2xCLGdCQUFnQixFQUVoQixVQUFVLEdBQ1gsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4QixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBR3ZFLE1BQU0sT0FBTyxTQUFTO0lBQ3BCLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxTQUEyQjtRQUN0RCxTQUFTLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztRQUNuQyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDOUMsTUFBTSxPQUFPLEdBQUcsU0FBUyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNyQyxJQUFJLE9BQU8sWUFBWSxrQkFBa0IsRUFBRSxDQUFDO2dCQUMxQyxPQUFPLENBQUMsYUFBYSxDQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7Z0JBQzFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztZQUMxQyxDQUFDO2lCQUFNLElBQUksT0FBTyxZQUFZLGdCQUFnQixFQUFFLENBQUM7Z0JBQy9DLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUN0QyxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsTUFBTSxDQUFDLGdCQUFnQixDQUFDLFNBQTJCLEVB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QkFBZ0I7UUFDekIsVUFBVSxFQUFFLFNBQVMsQ0FBQyxXQUFXO1FBQ2pDLElBQUksRUFBRTtZQUNKLENBQUMsSUFBSSxRQUFRLEVBQUUsRUFBRSxNQUFNLENBQUM7WUFDeEIsQ0FBQyxJQUFJLFFBQVEsRUFBRSxFQUFFLFlBQVksQ0FBQztTQUMvQjtLQUNGLENBQUM7SUFFRixNQUFNLENBQUMsV0FBVyxDQUFDLE1BQWMsRUFBRSxZQUEwQjtRQUMzRCxPQUFPLFlBQVksSUFBSSxNQUFNLElBQUksSUFBSSxDQUFDO0lBQ3hDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPcHRpb25hbCwgUHJvdmlkZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEFic3RyYWN0Q29udHJvbCxcbiAgQ29udHJvbENvbnRhaW5lcixcbiAgTmdGb3JtLFxuICBOZ01vZGVsR3JvdXAsXG4gIFVudHlwZWRGb3JtQ29udHJvbCxcbiAgVW50eXBlZEZvcm1Hcm91cCxcbiAgVmFsaWRhdGlvbkVycm9ycyxcbiAgVmFsaWRhdG9ycyxcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQgeyBBcnJheVV0aWwgfSBmcm9tICcuLi9jb21tb24vdXRpbC9hcnJheS11dGlsJztcbmltcG9ydCB7IEZpbHRlclR5cGUgfSBmcm9tICcuLi9jb21wb25lbnQvZmlsdGVyL2VudW0vZmlsdGVyLXR5cGUuZW51bSc7XG5pbXBvcnQgeyBUYWJsZUNvbHVtbiB9IGZyb20gJy4uL2NvbXBvbmVudC90YWJsZS9jb250cmFjdC90YWJsZS1jb2x1bW4nO1xuXG5leHBvcnQgY2xhc3MgRm9ybXNVdGlsIHtcbiAgc3RhdGljIHZhbGlkYXRlQWxsRm9ybUZpZWxkcyhmb3JtR3JvdXA6IFVudHlwZWRGb3JtR3JvdXApIHtcbiAgICBmb3JtR3JvdXAudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICAgIE9iamVjdC5rZXlzKGZvcm1Hcm91cC5jb250cm9scykuZm9yRWFjaChmaWVsZCA9PiB7XG4gICAgICBjb25zdCBjb250cm9sID0gZm9ybUdyb3VwLmdldChmaWVsZCk7XG4gICAgICBpZiAoY29udHJvbCBpbnN0YW5jZW9mIFVudHlwZWRGb3JtQ29udHJvbCkge1xuICAgICAgICBjb250cm9sLm1hcmtBc1RvdWNoZWQoeyBvbmx5U2VsZjogdHJ1ZSB9KTtcbiAgICAgICAgY29udHJvbC5tYXJrQXNEaXJ0eSh7IG9ubHlTZWxmOiB0cnVlIH0pO1xuICAgICAgfSBlbHNlIGlmIChjb250cm9sIGluc3RhbmNlb2YgVW50eXBlZEZvcm1Hcm91cCkge1xuICAgICAgICB0aGlzLnZhbGlkYXRlQWxsRm9ybUZpZWxkcyhjb250cm9sKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHN0YXRpYyBjb250cm9sSXNJbnZhbGlkKGZvcm1Hcm91cDogVW50eXBlZEZvcm1Hcm91cCwgY29udHJvbE5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiAoXG4gICAgICBmb3JtR3JvdXAuY29udHJvbHNbY29udHJvbE5hbWVdPy5pbnZhbGlkICYmXG4gICAgICBmb3JtR3JvdXAuY29udHJvbHNbY29udHJvbE5hbWVdPy5kaXJ0eVxuICAgICk7XG4gIH1cblxuICBzdGF0aWMgZ2V0Q29udHJvbEVycm9ycyhcbiAgICBmb3JtR3JvdXA6IFVudHlwZWRGb3JtR3JvdXAsXG4gICAgY29udHJvbE5hbWU6IHN0cmluZ1xuICApOiBzdHJpbmdbXSB7XG4gICAgaWYgKEZvcm1zVXRpbC5jb250cm9sSXNJbnZhbGlkKGZvcm1Hcm91cCwgY29udHJvbE5hbWUpKSB7XG4gICAgICByZXR1cm4gT2JqZWN0LmtleXMoZm9ybUdyb3VwLmNvbnRyb2xzW2NvbnRyb2xOYW1lXT8uZXJyb3JzKTtcbiAgICB9XG4gICAgcmV0dXJuIFtdO1xuICB9XG5cbiAgc3RhdGljIG1hdGNoVmFsdWVzVmFsaWRhdG9yKFxuICAgIG1hdGNoVG86IHN0cmluZ1xuICApOiAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKSA9PiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCB7XG4gICAgcmV0dXJuIChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCA9PlxuICAgICAgISFjb250cm9sLnBhcmVudCAmJlxuICAgICAgISFjb250cm9sLnBhcmVudC52YWx1ZSAmJlxuICAgICAgY29udHJvbC52YWx1ZSA9PT0gY29udHJvbC5wYXJlbnQuY29udHJvbHNbbWF0Y2hUb10udmFsdWVcbiAgICAgICAgPyBudWxsXG4gICAgICAgIDogeyBpc01hdGNoaW5nOiBmYWxzZSB9O1xuICB9XG5cbiAgc3RhdGljIHJlcXVpcmVkSWYoXG4gICAgdmFsdWU6IGJvb2xlYW5cbiAgKTogKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCkgPT4gVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xuICAgIHJldHVybiAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwgPT5cbiAgICAgICEhY29udHJvbC5wYXJlbnQgJiZcbiAgICAgICEhY29udHJvbC5wYXJlbnQudmFsdWUgJiZcbiAgICAgIGNvbnRyb2wudmFsdWUgIT0gbnVsbCAmJlxuICAgICAgdmFsdWVcbiAgICAgICAgPyBudWxsXG4gICAgICAgIDogeyBpc01hdGNoaW5nOiBmYWxzZSB9O1xuICB9XG5cbiAgc3RhdGljIGluaXRGb3JtRnJvbUNvbHVtbnMoY29sdW1uczogVGFibGVDb2x1bW5bXSwgZGF0YUl0ZW06IGFueSkge1xuICAgIGNvbnN0IGZvcm0gPSBuZXcgVW50eXBlZEZvcm1Hcm91cCh7fSk7XG4gICAgY29uc3QgZmxhdCA9IEFycmF5VXRpbC5mbGF0dGVuKGNvbHVtbnMsICdjb2x1bW5zJyk7XG4gICAgZmxhdC5mb3JFYWNoKChjb2x1bW46IFRhYmxlQ29sdW1uKSA9PiB7XG4gICAgICBjb25zdCBjb250cm9sID0gRm9ybXNVdGlsLmluaXRDb250cm9sRnJvbUNvbHVtbihjb2x1bW4sIGRhdGFJdGVtKTtcbiAgICAgIGZvcm0ucmVnaXN0ZXJDb250cm9sKGNvbHVtbi5uYW1lLCBjb250cm9sKTtcbiAgICB9KTtcbiAgICByZXR1cm4gZm9ybTtcbiAgfVxuXG4gIHN0YXRpYyBpbml0Q29udHJvbEZyb21Db2x1bW4oY29sdW1uOiBUYWJsZUNvbHVtbiwgZGF0YUl0ZW06IGFueSkge1xuICAgIHJldHVybiBuZXcgVW50eXBlZEZvcm1Db250cm9sKFxuICAgICAge1xuICAgICAgICB2YWx1ZTogZGF0YUl0ZW0gPyBkYXRhSXRlbVtjb2x1bW4ubmFtZV0gOiB1bmRlZmluZWQsXG4gICAgICAgIGRpc2FibGVkOiAhY29sdW1uLmVkaXRhYmxlLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgdmFsaWRhdG9yczogRm9ybXNVdGlsLmdldFZhbGlkYXRvcnMoY29sdW1uKSxcbiAgICAgICAgdXBkYXRlT246XG4gICAgICAgICAgY29sdW1uLmZpbHRlclR5cGUgPT09IEZpbHRlclR5cGUubnVtYmVyIHx8XG4gICAgICAgICAgY29sdW1uLmZpbHRlclR5cGUgPT09IEZpbHRlclR5cGUuc3RyaW5nXG4gICAgICAgICAgICA/ICdibHVyJ1xuICAgICAgICAgICAgOiAnY2hhbmdlJyxcbiAgICAgIH1cbiAgICApO1xuICB9XG5cbiAgc3RhdGljIGdldFZhbGlkYXRvcnMoY29sdW1uOiBUYWJsZUNvbHVtbikge1xuICAgIGNvbnN0IHZhbGlkYXRvcnMgPSBbXTtcbiAgICBpZiAoY29sdW1uLnJlcXVpcmVkKSB7XG4gICAgICB2YWxpZGF0b3JzLnB1c2goVmFsaWRhdG9ycy5yZXF1aXJlZCk7XG4gICAgICB2YWxpZGF0b3JzLnB1c2goRm9ybXNVdGlsLnZhbGlkYXRvck5vdEVtcHR5KTtcbiAgICB9XG4gICAgaWYgKGNvbHVtbi5taW5WYWx1ZSAhPSBudWxsKSB7XG4gICAgICB2YWxpZGF0b3JzLnB1c2goVmFsaWRhdG9ycy5taW4oY29sdW1uLm1pblZhbHVlKSk7XG4gICAgfVxuICAgIGlmIChjb2x1bW4ubWF4VmFsdWUgIT0gbnVsbCkge1xuICAgICAgdmFsaWRhdG9ycy5wdXNoKFZhbGlkYXRvcnMubWF4KGNvbHVtbi5tYXhWYWx1ZSkpO1xuICAgIH1cbiAgICBpZiAoY29sdW1uLm1heExlbmd0aCAhPSBudWxsKSB7XG4gICAgICB2YWxpZGF0b3JzLnB1c2goVmFsaWRhdG9ycy5tYXhMZW5ndGgoY29sdW1uLm1heExlbmd0aCkpO1xuICAgIH1cbiAgICBpZiAoY29sdW1uLnZhbGlkYXRvcnM/Lmxlbmd0aCA+IDApIHtcbiAgICAgIHZhbGlkYXRvcnMucHVzaCguLi5jb2x1bW4udmFsaWRhdG9ycyk7XG4gICAgfVxuICAgIHJldHVybiB2YWxpZGF0b3JzO1xuICB9XG5cbiAgc3RhdGljIHZhbGlkYXRvck5vdEVtcHR5KGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHtcbiAgICBpZiAoY29udHJvbD8udmFsdWU/LnRvU3RyaW5nKCk/LnRyaW0oKT8ubGVuZ3RoIDw9IDApIHtcbiAgICAgIHJldHVybiB7IHJlcXVpcmVkOiB0cnVlIH07XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgc3RhdGljIGZvcm1Qcm92aWRlcjogUHJvdmlkZXIgPSB7XG4gICAgcHJvdmlkZTogQ29udHJvbENvbnRhaW5lcixcbiAgICB1c2VGYWN0b3J5OiBGb3Jtc1V0aWwuZm9ybUZhY3RvcnksXG4gICAgZGVwczogW1xuICAgICAgW25ldyBPcHRpb25hbCgpLCBOZ0Zvcm1dLFxuICAgICAgW25ldyBPcHRpb25hbCgpLCBOZ01vZGVsR3JvdXBdLFxuICAgIF0sXG4gIH07XG5cbiAgc3RhdGljIGZvcm1GYWN0b3J5KG5nRm9ybTogTmdGb3JtLCBuZ01vZGVsR3JvdXA6IE5nTW9kZWxHcm91cCkge1xuICAgIHJldHVybiBuZ01vZGVsR3JvdXAgfHwgbmdGb3JtIHx8IG51bGw7XG4gIH1cbn1cbiJdfQ==
92
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybXMtdXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy91dGlsL2Zvcm1zLXV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBWSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBRUwsZ0JBQWdCLEVBQ2hCLE1BQU0sRUFDTixZQUFZLEVBQ1osa0JBQWtCLEVBQ2xCLGdCQUFnQixFQUVoQixVQUFVLEdBQ1gsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4QixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBR3ZFLE1BQU0sT0FBTyxTQUFTO0lBQ3BCLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxTQUEyQjtRQUN0RCxTQUFTLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztRQUNuQyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNoRCxNQUFNLE9BQU8sR0FBRyxTQUFTLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3JDLElBQUksT0FBTyxZQUFZLGtCQUFrQixFQUFFLENBQUM7Z0JBQzFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztnQkFDMUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1lBQzFDLENBQUM7aUJBQU0sSUFBSSxPQUFPLFlBQVksZ0JBQWdCLEVBQUUsQ0FBQztnQkFDL0MsSUFBSSxDQUFDLHFCQUFxQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3RDLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxNQUFNLENBQUMsZ0JBQWdCLENBQUMsU0FBMkIsRUFBRSxXQUFtQjtRQUN0RSxPQUFPLFNBQVMsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLEVBQUUsT0FBTyxJQUFJLFNBQVMsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLEVBQUUsS0FBSyxDQUFDO0lBQzVGLENBQUM7SUFFRCxNQUFNLENBQUMsZ0JBQWdCLENBQUMsU0FBMkIsRUFBRSxXQUFtQjtRQUN0RSxJQUFJLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLEVBQUUsV0FBVyxDQUFDLEVBQUUsQ0FBQztZQUN2RCxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUM5RCxDQUFDO1FBQ0QsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0lBRUQsTUFBTSxDQUFDLG9CQUFvQixDQUFDLE9BQWU7UUFDekMsT0FBTyxDQUFDLE9BQXdCLEVBQTJCLEVBQUUsQ0FDM0QsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxJQUFJLE9BQU8sQ0FBQyxLQUFLLEtBQUssT0FBTyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSztZQUNwRyxDQUFDLENBQUMsSUFBSTtZQUNOLENBQUMsQ0FBQyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBRUQsTUFBTSxDQUFDLFVBQVUsQ0FBQyxLQUFjO1FBQzlCLE9BQU8sQ0FBQyxPQUF3QixFQUEyQixFQUFFLENBQzNELENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssSUFBSSxPQUFPLENBQUMsS0FBSyxJQUFJLElBQUksSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLENBQUM7SUFDaEgsQ0FBQztJQUVELE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxPQUFzQixFQUFFLFFBQWE7UUFDOUQsTUFBTSxJQUFJLEdBQUcsSUFBSSxnQkFBZ0IsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN0QyxNQUFNLElBQUksR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxTQUFTLENBQUMsQ0FBQztRQUNuRCxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBbUIsRUFBRSxFQUFFO1lBQ25DLE1BQU0sT0FBTyxHQUFHLFNBQVMsQ0FBQyxxQkFBcUIsQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLENBQUM7WUFDbEUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQzdDLENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsTUFBTSxDQUFDLHFCQUFxQixDQUFDLE1BQW1CLEVBQUUsUUFBYTtRQUM3RCxPQUFPLElBQUksa0JBQWtCLENBQzNCO1lBQ0UsS0FBSyxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUztZQUNuRCxRQUFRLEVBQUUsQ0FBQyxNQUFNLENBQUMsUUFBUTtTQUMzQixFQUNEO1lBQ0UsVUFBVSxFQUFFLFNBQVMsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDO1lBQzNDLFFBQVEsRUFDTixNQUFNLENBQUMsVUFBVSxLQUFLLFVBQVUsQ0FBQyxNQUFNLElBQUksTUFBTSxDQUFDLFVBQVUsS0FBSyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFFBQVE7U0FDekcsQ0FDRixDQUFDO0lBQ0osQ0FBQztJQUVELE1BQU0sQ0FBQyxhQUFhLENBQUMsTUFBbUI7UUFDdEMsTUFBTSxVQUFVLEdBQUcsRUFBRSxDQUFDO1FBQ3RCLElBQUksTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ3BCLFVBQVUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3JDLFVBQVUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDL0MsQ0FBQztRQUNELElBQUksTUFBTSxDQUFDLFFBQVEsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUM1QixVQUFVLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFDbkQsQ0FBQztRQUNELElBQUksTUFBTSxDQUFDLFFBQVEsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUM1QixVQUFVLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFDbkQsQ0FBQztRQUNELElBQUksTUFBTSxDQUFDLFNBQVMsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUM3QixVQUFVLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7UUFDMUQsQ0FBQztRQUNELElBQUksTUFBTSxDQUFDLFVBQVUsRUFBRSxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDbEMsVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN4QyxDQUFDO1FBQ0QsT0FBTyxVQUFVLENBQUM7SUFDcEIsQ0FBQztJQUVELE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxPQUF3QjtRQUMvQyxJQUFJLE9BQU8sRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsTUFBTSxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQ3BELE9BQU8sRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUM7UUFDNUIsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQzthQUVNLGlCQUFZLEdBQWE7UUFDOUIsT0FBTyxFQUFFLGdCQUFnQjtRQUN6QixVQUFVLEVBQUUsU0FBUyxDQUFDLFdBQVc7UUFDakMsSUFBSSxFQUFFO1lBQ0osQ0FBQyxJQUFJLFFBQVEsRUFBRSxFQUFFLE1BQU0sQ0FBQztZQUN4QixDQUFDLElBQUksUUFBUSxFQUFFLEVBQUUsWUFBWSxDQUFDO1NBQy9CO0tBQ0YsQ0FBQztJQUVGLE1BQU0sQ0FBQyxXQUFXLENBQUMsTUFBYyxFQUFFLFlBQTBCO1FBQzNELE9BQU8sWUFBWSxJQUFJLE1BQU0sSUFBSSxJQUFJLENBQUM7SUFDeEMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9wdGlvbmFsLCBQcm92aWRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQWJzdHJhY3RDb250cm9sLFxuICBDb250cm9sQ29udGFpbmVyLFxuICBOZ0Zvcm0sXG4gIE5nTW9kZWxHcm91cCxcbiAgVW50eXBlZEZvcm1Db250cm9sLFxuICBVbnR5cGVkRm9ybUdyb3VwLFxuICBWYWxpZGF0aW9uRXJyb3JzLFxuICBWYWxpZGF0b3JzLFxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7IEFycmF5VXRpbCB9IGZyb20gJy4uL2NvbW1vbi91dGlsL2FycmF5LXV0aWwnO1xuaW1wb3J0IHsgRmlsdGVyVHlwZSB9IGZyb20gJy4uL2NvbXBvbmVudC9maWx0ZXIvZW51bS9maWx0ZXItdHlwZS5lbnVtJztcbmltcG9ydCB7IFRhYmxlQ29sdW1uIH0gZnJvbSAnLi4vY29tcG9uZW50L3RhYmxlL2NvbnRyYWN0L3RhYmxlLWNvbHVtbic7XG5cbmV4cG9ydCBjbGFzcyBGb3Jtc1V0aWwge1xuICBzdGF0aWMgdmFsaWRhdGVBbGxGb3JtRmllbGRzKGZvcm1Hcm91cDogVW50eXBlZEZvcm1Hcm91cCkge1xuICAgIGZvcm1Hcm91cC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gICAgT2JqZWN0LmtleXMoZm9ybUdyb3VwLmNvbnRyb2xzKS5mb3JFYWNoKChmaWVsZCkgPT4ge1xuICAgICAgY29uc3QgY29udHJvbCA9IGZvcm1Hcm91cC5nZXQoZmllbGQpO1xuICAgICAgaWYgKGNvbnRyb2wgaW5zdGFuY2VvZiBVbnR5cGVkRm9ybUNvbnRyb2wpIHtcbiAgICAgICAgY29udHJvbC5tYXJrQXNUb3VjaGVkKHsgb25seVNlbGY6IHRydWUgfSk7XG4gICAgICAgIGNvbnRyb2wubWFya0FzRGlydHkoeyBvbmx5U2VsZjogdHJ1ZSB9KTtcbiAgICAgIH0gZWxzZSBpZiAoY29udHJvbCBpbnN0YW5jZW9mIFVudHlwZWRGb3JtR3JvdXApIHtcbiAgICAgICAgdGhpcy52YWxpZGF0ZUFsbEZvcm1GaWVsZHMoY29udHJvbCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBzdGF0aWMgY29udHJvbElzSW52YWxpZChmb3JtR3JvdXA6IFVudHlwZWRGb3JtR3JvdXAsIGNvbnRyb2xOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gZm9ybUdyb3VwLmNvbnRyb2xzW2NvbnRyb2xOYW1lXT8uaW52YWxpZCAmJiBmb3JtR3JvdXAuY29udHJvbHNbY29udHJvbE5hbWVdPy5kaXJ0eTtcbiAgfVxuXG4gIHN0YXRpYyBnZXRDb250cm9sRXJyb3JzKGZvcm1Hcm91cDogVW50eXBlZEZvcm1Hcm91cCwgY29udHJvbE5hbWU6IHN0cmluZyk6IHN0cmluZ1tdIHtcbiAgICBpZiAoRm9ybXNVdGlsLmNvbnRyb2xJc0ludmFsaWQoZm9ybUdyb3VwLCBjb250cm9sTmFtZSkpIHtcbiAgICAgIHJldHVybiBPYmplY3Qua2V5cyhmb3JtR3JvdXAuY29udHJvbHNbY29udHJvbE5hbWVdPy5lcnJvcnMpO1xuICAgIH1cbiAgICByZXR1cm4gW107XG4gIH1cblxuICBzdGF0aWMgbWF0Y2hWYWx1ZXNWYWxpZGF0b3IobWF0Y2hUbzogc3RyaW5nKTogKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCkgPT4gVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xuICAgIHJldHVybiAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwgPT5cbiAgICAgICEhY29udHJvbC5wYXJlbnQgJiYgISFjb250cm9sLnBhcmVudC52YWx1ZSAmJiBjb250cm9sLnZhbHVlID09PSBjb250cm9sLnBhcmVudC5jb250cm9sc1ttYXRjaFRvXS52YWx1ZVxuICAgICAgICA/IG51bGxcbiAgICAgICAgOiB7IGlzTWF0Y2hpbmc6IGZhbHNlIH07XG4gIH1cblxuICBzdGF0aWMgcmVxdWlyZWRJZih2YWx1ZTogYm9vbGVhbik6IChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpID0+IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHtcbiAgICByZXR1cm4gKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsID0+XG4gICAgICAhIWNvbnRyb2wucGFyZW50ICYmICEhY29udHJvbC5wYXJlbnQudmFsdWUgJiYgY29udHJvbC52YWx1ZSAhPSBudWxsICYmIHZhbHVlID8gbnVsbCA6IHsgaXNNYXRjaGluZzogZmFsc2UgfTtcbiAgfVxuXG4gIHN0YXRpYyBpbml0Rm9ybUZyb21Db2x1bW5zKGNvbHVtbnM6IFRhYmxlQ29sdW1uW10sIGRhdGFJdGVtOiBhbnkpIHtcbiAgICBjb25zdCBmb3JtID0gbmV3IFVudHlwZWRGb3JtR3JvdXAoe30pO1xuICAgIGNvbnN0IGZsYXQgPSBBcnJheVV0aWwuZmxhdHRlbihjb2x1bW5zLCAnY29sdW1ucycpO1xuICAgIGZsYXQuZm9yRWFjaCgoY29sdW1uOiBUYWJsZUNvbHVtbikgPT4ge1xuICAgICAgY29uc3QgY29udHJvbCA9IEZvcm1zVXRpbC5pbml0Q29udHJvbEZyb21Db2x1bW4oY29sdW1uLCBkYXRhSXRlbSk7XG4gICAgICBmb3JtLnJlZ2lzdGVyQ29udHJvbChjb2x1bW4ubmFtZSwgY29udHJvbCk7XG4gICAgfSk7XG4gICAgcmV0dXJuIGZvcm07XG4gIH1cblxuICBzdGF0aWMgaW5pdENvbnRyb2xGcm9tQ29sdW1uKGNvbHVtbjogVGFibGVDb2x1bW4sIGRhdGFJdGVtOiBhbnkpIHtcbiAgICByZXR1cm4gbmV3IFVudHlwZWRGb3JtQ29udHJvbChcbiAgICAgIHtcbiAgICAgICAgdmFsdWU6IGRhdGFJdGVtID8gZGF0YUl0ZW1bY29sdW1uLm5hbWVdIDogdW5kZWZpbmVkLFxuICAgICAgICBkaXNhYmxlZDogIWNvbHVtbi5lZGl0YWJsZSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHZhbGlkYXRvcnM6IEZvcm1zVXRpbC5nZXRWYWxpZGF0b3JzKGNvbHVtbiksXG4gICAgICAgIHVwZGF0ZU9uOlxuICAgICAgICAgIGNvbHVtbi5maWx0ZXJUeXBlID09PSBGaWx0ZXJUeXBlLm51bWJlciB8fCBjb2x1bW4uZmlsdGVyVHlwZSA9PT0gRmlsdGVyVHlwZS5zdHJpbmcgPyAnYmx1cicgOiAnY2hhbmdlJyxcbiAgICAgIH1cbiAgICApO1xuICB9XG5cbiAgc3RhdGljIGdldFZhbGlkYXRvcnMoY29sdW1uOiBUYWJsZUNvbHVtbikge1xuICAgIGNvbnN0IHZhbGlkYXRvcnMgPSBbXTtcbiAgICBpZiAoY29sdW1uLnJlcXVpcmVkKSB7XG4gICAgICB2YWxpZGF0b3JzLnB1c2goVmFsaWRhdG9ycy5yZXF1aXJlZCk7XG4gICAgICB2YWxpZGF0b3JzLnB1c2goRm9ybXNVdGlsLnZhbGlkYXRvck5vdEVtcHR5KTtcbiAgICB9XG4gICAgaWYgKGNvbHVtbi5taW5WYWx1ZSAhPSBudWxsKSB7XG4gICAgICB2YWxpZGF0b3JzLnB1c2goVmFsaWRhdG9ycy5taW4oY29sdW1uLm1pblZhbHVlKSk7XG4gICAgfVxuICAgIGlmIChjb2x1bW4ubWF4VmFsdWUgIT0gbnVsbCkge1xuICAgICAgdmFsaWRhdG9ycy5wdXNoKFZhbGlkYXRvcnMubWF4KGNvbHVtbi5tYXhWYWx1ZSkpO1xuICAgIH1cbiAgICBpZiAoY29sdW1uLm1heExlbmd0aCAhPSBudWxsKSB7XG4gICAgICB2YWxpZGF0b3JzLnB1c2goVmFsaWRhdG9ycy5tYXhMZW5ndGgoY29sdW1uLm1heExlbmd0aCkpO1xuICAgIH1cbiAgICBpZiAoY29sdW1uLnZhbGlkYXRvcnM/Lmxlbmd0aCA+IDApIHtcbiAgICAgIHZhbGlkYXRvcnMucHVzaCguLi5jb2x1bW4udmFsaWRhdG9ycyk7XG4gICAgfVxuICAgIHJldHVybiB2YWxpZGF0b3JzO1xuICB9XG5cbiAgc3RhdGljIHZhbGlkYXRvck5vdEVtcHR5KGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHtcbiAgICBpZiAoY29udHJvbD8udmFsdWU/LnRvU3RyaW5nKCk/LnRyaW0oKT8ubGVuZ3RoIDw9IDApIHtcbiAgICAgIHJldHVybiB7IHJlcXVpcmVkOiB0cnVlIH07XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgc3RhdGljIGZvcm1Qcm92aWRlcjogUHJvdmlkZXIgPSB7XG4gICAgcHJvdmlkZTogQ29udHJvbENvbnRhaW5lcixcbiAgICB1c2VGYWN0b3J5OiBGb3Jtc1V0aWwuZm9ybUZhY3RvcnksXG4gICAgZGVwczogW1xuICAgICAgW25ldyBPcHRpb25hbCgpLCBOZ0Zvcm1dLFxuICAgICAgW25ldyBPcHRpb25hbCgpLCBOZ01vZGVsR3JvdXBdLFxuICAgIF0sXG4gIH07XG5cbiAgc3RhdGljIGZvcm1GYWN0b3J5KG5nRm9ybTogTmdGb3JtLCBuZ01vZGVsR3JvdXA6IE5nTW9kZWxHcm91cCkge1xuICAgIHJldHVybiBuZ01vZGVsR3JvdXAgfHwgbmdGb3JtIHx8IG51bGw7XG4gIH1cbn1cbiJdfQ==
@@ -2,10 +2,8 @@ export class StringUtil {
2
2
  static firstLetterToLower(input) {
3
3
  return input.charAt(0).toLocaleLowerCase() + input.slice(1);
4
4
  }
5
- ;
6
5
  static firstLetterToUpper(input) {
7
6
  return input.charAt(0).toLocaleUpperCase() + input.slice(1);
8
7
  }
9
- ;
10
8
  }
11
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyaW5nLXV0aWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdXRpbC9zdHJpbmctdXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLE9BQU8sVUFBVTtJQUNyQixNQUFNLENBQUMsa0JBQWtCLENBQUMsS0FBYTtRQUNyQyxPQUFPLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsaUJBQWlCLEVBQUUsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFBQSxDQUFDO0lBRUYsTUFBTSxDQUFDLGtCQUFrQixDQUFDLEtBQWE7UUFDckMsT0FBTyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixFQUFFLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM5RCxDQUFDO0lBQUEsQ0FBQztDQUNIIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIFN0cmluZ1V0aWwge1xuICBzdGF0aWMgZmlyc3RMZXR0ZXJUb0xvd2VyKGlucHV0OiBzdHJpbmcpIHtcbiAgICByZXR1cm4gaW5wdXQuY2hhckF0KDApLnRvTG9jYWxlTG93ZXJDYXNlKCkgKyBpbnB1dC5zbGljZSgxKTtcbiAgfTtcblxuICBzdGF0aWMgZmlyc3RMZXR0ZXJUb1VwcGVyKGlucHV0OiBzdHJpbmcpIHtcbiAgICByZXR1cm4gaW5wdXQuY2hhckF0KDApLnRvTG9jYWxlVXBwZXJDYXNlKCkgKyBpbnB1dC5zbGljZSgxKTtcbiAgfTtcbn1cbiJdfQ==
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyaW5nLXV0aWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdXRpbC9zdHJpbmctdXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLE9BQU8sVUFBVTtJQUNyQixNQUFNLENBQUMsa0JBQWtCLENBQUMsS0FBYTtRQUNyQyxPQUFPLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsaUJBQWlCLEVBQUUsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFFRCxNQUFNLENBQUMsa0JBQWtCLENBQUMsS0FBYTtRQUNyQyxPQUFPLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsaUJBQWlCLEVBQUUsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzlELENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBTdHJpbmdVdGlsIHtcbiAgc3RhdGljIGZpcnN0TGV0dGVyVG9Mb3dlcihpbnB1dDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGlucHV0LmNoYXJBdCgwKS50b0xvY2FsZUxvd2VyQ2FzZSgpICsgaW5wdXQuc2xpY2UoMSk7XG4gIH1cblxuICBzdGF0aWMgZmlyc3RMZXR0ZXJUb1VwcGVyKGlucHV0OiBzdHJpbmcpIHtcbiAgICByZXR1cm4gaW5wdXQuY2hhckF0KDApLnRvTG9jYWxlVXBwZXJDYXNlKCkgKyBpbnB1dC5zbGljZSgxKTtcbiAgfVxufVxuIl19