@colijnit/corecomponents_v12 12.2.26 → 12.2.28

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 (439) hide show
  1. package/bundles/colijnit-corecomponents_v12.umd.js +13792 -13682
  2. package/bundles/colijnit-corecomponents_v12.umd.js.map +1 -1
  3. package/colijnit-corecomponents_v12.d.ts +43 -43
  4. package/colijnit-corecomponents_v12.metadata.json +1 -1
  5. package/esm2015/colijnit-corecomponents_v12.js +43 -43
  6. package/esm2015/lib/components/article-tile/article-tile.component.js +49 -49
  7. package/esm2015/lib/components/article-tile/article-tile.module.js +34 -34
  8. package/esm2015/lib/components/base/base-input.component.js +833 -833
  9. package/esm2015/lib/components/base/base.module.js +21 -21
  10. package/esm2015/lib/components/base/commit-buttons/commit-buttons.component.js +85 -85
  11. package/esm2015/lib/components/base/commit-buttons/commit-buttons.module.js +20 -20
  12. package/esm2015/lib/components/base/dialog-base.component.js +5 -5
  13. package/esm2015/lib/components/base-input-date-picker/base-input-date-picker.directive.js +24 -24
  14. package/esm2015/lib/components/button/button.component.js +73 -73
  15. package/esm2015/lib/components/button/button.module.js +18 -18
  16. package/esm2015/lib/components/calendar/calendar-template.component.js +281 -281
  17. package/esm2015/lib/components/calendar/calendar.component.js +32 -32
  18. package/esm2015/lib/components/calendar/calendar.module.js +27 -27
  19. package/esm2015/lib/components/card/card.component.js +50 -50
  20. package/esm2015/lib/components/card/card.module.js +34 -34
  21. package/esm2015/lib/components/carousel/carousel.component.js +109 -109
  22. package/esm2015/lib/components/carousel/carousel.module.js +31 -31
  23. package/esm2015/lib/components/carousel-3d/carousel-3d.component.js +293 -293
  24. package/esm2015/lib/components/carousel-3d/carousel-3d.module.js +18 -18
  25. package/esm2015/lib/components/carousel-3d/carouselItem.js +53 -53
  26. package/esm2015/lib/components/checkmark-overlay/checkmark-overlay.component.js +72 -72
  27. package/esm2015/lib/components/checkmark-overlay/checkmark-overlay.module.js +18 -18
  28. package/esm2015/lib/components/co-dialog/co-dialog.component.js +91 -91
  29. package/esm2015/lib/components/co-dialog/co-dialog.module.js +18 -18
  30. package/esm2015/lib/components/co-dialog-wizard/co-dialog-wizard.component.js +35 -35
  31. package/esm2015/lib/components/co-dialog-wizard/co-dialog-wizard.module.js +16 -16
  32. package/esm2015/lib/components/collapsible/collapsible.component.js +67 -67
  33. package/esm2015/lib/components/collapsible/collapsible.module.js +18 -18
  34. package/esm2015/lib/components/color-picker/color-picker.component.js +33 -33
  35. package/esm2015/lib/components/color-picker/color-picker.module.js +20 -20
  36. package/esm2015/lib/components/core-dialog/confirmation-dialog/confirmation-dialog.component.js +46 -46
  37. package/esm2015/lib/components/core-dialog/core-dialog.module.js +38 -38
  38. package/esm2015/lib/components/core-dialog/core-dialog.service.js +66 -66
  39. package/esm2015/lib/components/core-dialog/core-dynamic-component.service.js +92 -92
  40. package/esm2015/lib/components/double-calendar/double-calendar.component.js +62 -62
  41. package/esm2015/lib/components/double-calendar/double-calendar.module.js +24 -24
  42. package/esm2015/lib/components/filter-item/filter-item-viewmodel.js +12 -12
  43. package/esm2015/lib/components/filter-item/filter-item.component.js +496 -496
  44. package/esm2015/lib/components/filter-item/filter-item.module.js +42 -42
  45. package/esm2015/lib/components/filter-item/filter-viewmodel.js +10 -10
  46. package/esm2015/lib/components/form/form.component.js +181 -181
  47. package/esm2015/lib/components/form/form.module.js +22 -22
  48. package/esm2015/lib/components/grid-toolbar/grid-toolbar.component.js +48 -48
  49. package/esm2015/lib/components/grid-toolbar/grid-toolbar.module.js +22 -22
  50. package/esm2015/lib/components/grid-toolbar-button/grid-toolbar-button.component.js +23 -23
  51. package/esm2015/lib/components/grid-toolbar-button/grid-toolbar-button.module.js +18 -18
  52. package/esm2015/lib/components/icon/icon-cache.service.js +51 -51
  53. package/esm2015/lib/components/icon/icon.component.js +47 -47
  54. package/esm2015/lib/components/icon/icon.module.js +24 -24
  55. package/esm2015/lib/components/icon-collapse-handle/icon-collapse-handle.component.js +56 -56
  56. package/esm2015/lib/components/icon-collapse-handle/icon-collapse-handle.module.js +22 -22
  57. package/esm2015/lib/components/image/image.component.js +31 -31
  58. package/esm2015/lib/components/image/image.module.js +13 -13
  59. package/esm2015/lib/components/input-checkbox/input-checkbox.component.js +71 -71
  60. package/esm2015/lib/components/input-checkbox/input-checkbox.module.js +18 -18
  61. package/esm2015/lib/components/input-date-picker/input-date-picker.component.js +74 -74
  62. package/esm2015/lib/components/input-date-picker/input-date-picker.module.js +25 -25
  63. package/esm2015/lib/components/input-date-range-picker/input-date-range-picker.component.js +107 -107
  64. package/esm2015/lib/components/input-date-range-picker/input-date-range-picker.module.js +26 -26
  65. package/esm2015/lib/components/input-number-picker/input-number-picker.component.js +285 -285
  66. package/esm2015/lib/components/input-number-picker/input-number-picker.module.js +22 -22
  67. package/esm2015/lib/components/input-radio-button/input-radio-button.component.js +77 -77
  68. package/esm2015/lib/components/input-radio-button/input-radio-button.module.js +18 -18
  69. package/esm2015/lib/components/input-scanner/bar-code-scanner.js +22 -22
  70. package/esm2015/lib/components/input-scanner/input-scanner.component.js +56 -56
  71. package/esm2015/lib/components/input-scanner/input-scanner.module.js +20 -20
  72. package/esm2015/lib/components/input-scanner/scanner.service.js +27 -27
  73. package/esm2015/lib/components/input-search/input-search.component.js +67 -63
  74. package/esm2015/lib/components/input-search/input-search.module.js +20 -20
  75. package/esm2015/lib/components/input-text/input-text.component.js +198 -194
  76. package/esm2015/lib/components/input-text/input-text.module.js +32 -32
  77. package/esm2015/lib/components/input-textarea/input-textarea.component.js +55 -55
  78. package/esm2015/lib/components/input-textarea/input-textarea.module.js +26 -26
  79. package/esm2015/lib/components/level-indicator/level-indicator-level.enum.js +6 -6
  80. package/esm2015/lib/components/level-indicator/level-indicator.component.js +29 -29
  81. package/esm2015/lib/components/level-indicator/level-indicator.module.js +14 -14
  82. package/esm2015/lib/components/list-of-values/list-of-values-multiselect-popup.component.js +87 -87
  83. package/esm2015/lib/components/list-of-values/list-of-values-popup.component.js +218 -218
  84. package/esm2015/lib/components/list-of-values/list-of-values.component.js +199 -199
  85. package/esm2015/lib/components/list-of-values/list-of-values.module.js +37 -37
  86. package/esm2015/lib/components/loader/loader.component.js +16 -16
  87. package/esm2015/lib/components/loader/loader.module.js +18 -18
  88. package/esm2015/lib/components/pagination/paginate.pipe.js +98 -98
  89. package/esm2015/lib/components/pagination/pagination-instance.js +1 -1
  90. package/esm2015/lib/components/pagination/pagination.component.js +107 -107
  91. package/esm2015/lib/components/pagination/pagination.module.js +27 -27
  92. package/esm2015/lib/components/pagination/pagination.service.js +87 -87
  93. package/esm2015/lib/components/pagination-bar/pagination-bar.component.js +136 -136
  94. package/esm2015/lib/components/pagination-bar/pagination-bar.module.js +18 -18
  95. package/esm2015/lib/components/popup/const/popup-window-token.js +2 -2
  96. package/esm2015/lib/components/popup/interface/popup-button.js +7 -7
  97. package/esm2015/lib/components/popup/interface/popup-close-event.js +1 -1
  98. package/esm2015/lib/components/popup/interface/popup-settings.js +41 -41
  99. package/esm2015/lib/components/popup/interface/popup.js +1 -1
  100. package/esm2015/lib/components/popup/model/popup-button-globals.js +10 -10
  101. package/esm2015/lib/components/popup/model/popup-window.js +37 -37
  102. package/esm2015/lib/components/popup/popup-buttons.component.js +42 -42
  103. package/esm2015/lib/components/popup/popup-message-display.component.js +37 -37
  104. package/esm2015/lib/components/popup/popup-window-shell.component.js +141 -141
  105. package/esm2015/lib/components/popup/popup.module.js +48 -48
  106. package/esm2015/lib/components/popup/service/popup-shower.service.js +89 -89
  107. package/esm2015/lib/components/popup/service/prompt.service.js +126 -126
  108. package/esm2015/lib/components/popup/text-input-popup.component.js +33 -33
  109. package/esm2015/lib/components/responsive-text/responsive-text.component.js +17 -17
  110. package/esm2015/lib/components/responsive-text/responsive-text.module.js +18 -18
  111. package/esm2015/lib/components/simple-grid/base-simple-grid.component.js +166 -164
  112. package/esm2015/lib/components/simple-grid/simple-grid-cell.component.js +141 -141
  113. package/esm2015/lib/components/simple-grid/simple-grid-column.directive.js +113 -111
  114. package/esm2015/lib/components/simple-grid/simple-grid.component.js +553 -412
  115. package/esm2015/lib/components/simple-grid/simple-grid.module.js +45 -41
  116. package/esm2015/lib/components/tile/tile.component.js +44 -44
  117. package/esm2015/lib/components/tile/tile.module.js +22 -22
  118. package/esm2015/lib/components/tile-select/tile-select.component.js +26 -26
  119. package/esm2015/lib/components/tile-select/tile-select.module.js +20 -20
  120. package/esm2015/lib/components/tooltip/tooltip.component.js +74 -74
  121. package/esm2015/lib/components/tooltip/tooltip.module.js +18 -18
  122. package/esm2015/lib/components/validation-error/validation-error.component.js +30 -30
  123. package/esm2015/lib/components/validation-error/validation-error.module.js +24 -24
  124. package/esm2015/lib/components/view-mode-buttons/content-view-mode.enum.js +10 -10
  125. package/esm2015/lib/components/view-mode-buttons/view-mode-buttons.component.js +41 -41
  126. package/esm2015/lib/components/view-mode-buttons/view-mode-buttons.module.js +20 -20
  127. package/esm2015/lib/core/constant/default-upper-bound-for-range-components.js +3 -3
  128. package/esm2015/lib/core/constant/java-max-int.js +1 -1
  129. package/esm2015/lib/core/constant/number-inputs-key-down-white-list.js +44 -44
  130. package/esm2015/lib/core/decorator/input-boolean.decorator.js +33 -33
  131. package/esm2015/lib/core/enum/co-direction.js +8 -8
  132. package/esm2015/lib/core/enum/co-document-image-display-kind.enum.js +6 -6
  133. package/esm2015/lib/core/enum/co-document-type.enum.js +10 -10
  134. package/esm2015/lib/core/enum/co-orientation.js +16 -16
  135. package/esm2015/lib/core/enum/core-components-icon.enum.js +299 -299
  136. package/esm2015/lib/core/enum/file-type-internal.enum.js +16 -16
  137. package/esm2015/lib/core/enum/file-type.enum.js +10 -10
  138. package/esm2015/lib/core/enum/filterItem-mode.enum.js +42 -42
  139. package/esm2015/lib/core/enum/input-number-picker-show-mode.enum.js +7 -7
  140. package/esm2015/lib/core/enum/keyboard-code.enum.js +73 -73
  141. package/esm2015/lib/core/enum/keyboard-key.enum.js +75 -75
  142. package/esm2015/lib/core/enum/object-right-type.enum.js +6 -6
  143. package/esm2015/lib/core/enum/popup-button-type.enum.js +11 -11
  144. package/esm2015/lib/core/enum/popup-type.enum.js +10 -10
  145. package/esm2015/lib/core/enum/table-name.enum.js +80 -80
  146. package/esm2015/lib/core/function/any-nill.function.js +5 -5
  147. package/esm2015/lib/core/function/is-nill.function.js +4 -4
  148. package/esm2015/lib/core/function/none-nill.function.js +16 -16
  149. package/esm2015/lib/core/function/not-nill.function.js +4 -4
  150. package/esm2015/lib/core/model/bounds-constrained-number-value.js +170 -170
  151. package/esm2015/lib/core/model/check-precision-and-scale-result.js +1 -1
  152. package/esm2015/lib/core/model/check-within-stepped-bounds-result.js +1 -1
  153. package/esm2015/lib/core/model/co-document-right.bo.js +2 -2
  154. package/esm2015/lib/core/model/co-document.bo.js +120 -120
  155. package/esm2015/lib/core/model/core-components-icon-svg.js +298 -298
  156. package/esm2015/lib/core/model/element-position.js +9 -9
  157. package/esm2015/lib/core/model/event/string-prompt-result-event.js +7 -7
  158. package/esm2015/lib/core/service/form-input-user-change-listener.service.js +24 -24
  159. package/esm2015/lib/core/service/form-master.service.js +101 -101
  160. package/esm2015/lib/core/service/ng-zone-wrapper.service.js +19 -19
  161. package/esm2015/lib/core/utils/array-utils.js +263 -263
  162. package/esm2015/lib/core/utils/browser-utils.js +99 -99
  163. package/esm2015/lib/core/utils/direction-enum-utils.js +13 -13
  164. package/esm2015/lib/core/utils/event-utils.js +52 -52
  165. package/esm2015/lib/core/utils/file-utils.js +266 -266
  166. package/esm2015/lib/core/utils/number-utils.js +308 -308
  167. package/esm2015/lib/core/utils/object-utils.js +185 -185
  168. package/esm2015/lib/core/utils/string-utils.js +93 -93
  169. package/esm2015/lib/core/validator/email.validator.js +5 -5
  170. package/esm2015/lib/core/validator/equal.validator.js +10 -10
  171. package/esm2015/lib/core/validator/max-string-length.validator.js +9 -9
  172. package/esm2015/lib/core/validator/password.validator.js +30 -30
  173. package/esm2015/lib/core/validator/precision-scale.validator.js +10 -10
  174. package/esm2015/lib/core/validator/required.validator.js +4 -4
  175. package/esm2015/lib/directives/clickoutside/click-outside-master.service.js +56 -56
  176. package/esm2015/lib/directives/clickoutside/click-outside.directive.js +70 -70
  177. package/esm2015/lib/directives/clickoutside/clickoutside.module.js +18 -18
  178. package/esm2015/lib/directives/observe-visibility/observe-visibility.directive.js +52 -52
  179. package/esm2015/lib/directives/observe-visibility/observe-visibility.module.js +14 -14
  180. package/esm2015/lib/directives/overlay/overlay-parent.directive.js +18 -18
  181. package/esm2015/lib/directives/overlay/overlay.directive.js +160 -160
  182. package/esm2015/lib/directives/overlay/overlay.module.js +17 -17
  183. package/esm2015/lib/directives/ripple/ripple-ref.js +25 -25
  184. package/esm2015/lib/directives/ripple/ripple-renderer.js +159 -159
  185. package/esm2015/lib/directives/ripple/ripple.directive.js +79 -79
  186. package/esm2015/lib/directives/ripple/ripple.module.js +23 -23
  187. package/esm2015/lib/directives/ripple/scroll-dispatcher.service.js +107 -107
  188. package/esm2015/lib/directives/ripple/scrollable.directive.js +39 -39
  189. package/esm2015/lib/directives/ripple/viewport-ruler.service.js +72 -72
  190. package/esm2015/lib/directives/screen-configuration/screen-configuration.directive.js +157 -157
  191. package/esm2015/lib/directives/screen-configuration/screen-configuration.module.js +18 -18
  192. package/esm2015/lib/directives/stopclick/stop-click.directive.js +37 -37
  193. package/esm2015/lib/directives/stopclick/stop-click.module.js +14 -14
  194. package/esm2015/lib/directives/template-wrapper/template-wrapper.directive.js +67 -67
  195. package/esm2015/lib/directives/template-wrapper/template-wrapper.module.js +14 -14
  196. package/esm2015/lib/directives/tooltip/tooltip-directive.module.js +18 -18
  197. package/esm2015/lib/directives/tooltip/tooltip.directive.js +77 -77
  198. package/esm2015/lib/interfaces/dialog-response.interface.js +1 -1
  199. package/esm2015/lib/interfaces/scanner-input.interface.js +1 -1
  200. package/esm2015/lib/interfaces/screen-config-adapter-component-interface-name.js +3 -3
  201. package/esm2015/lib/interfaces/screen-config-adapter.component.interface.js +1 -1
  202. package/esm2015/lib/model/enum/app-button-type.enum.js +10 -10
  203. package/esm2015/lib/model/enum/app-popup-type.enum.js +7 -7
  204. package/esm2015/lib/pipes/append.pipe.js +16 -16
  205. package/esm2015/lib/pipes/append.pipe.module.js +14 -14
  206. package/esm2015/lib/pipes/filter.pipe.js +15 -15
  207. package/esm2015/lib/pipes/filter.pipe.module.js +14 -14
  208. package/esm2015/lib/pipes/prepend.pipe.js +16 -16
  209. package/esm2015/lib/pipes/prepend.pipe.module.js +14 -14
  210. package/esm2015/lib/pipes/price-display-pipe.module.js +14 -14
  211. package/esm2015/lib/pipes/price-display.pipe.js +19 -19
  212. package/esm2015/lib/service/base-module-screen-config.service.js +204 -204
  213. package/esm2015/lib/service/base-module.service.js +41 -41
  214. package/esm2015/lib/service/color-sequence.service.js +22 -22
  215. package/esm2015/lib/service/overlay.service.js +72 -72
  216. package/esm2015/lib/translation/core-components-translation.module.js +28 -28
  217. package/esm2015/lib/translation/core-components-translation.service.js +16 -16
  218. package/esm2015/lib/translation/core-dictionary.service.js +28 -28
  219. package/esm2015/lib/translation/core-localize.pipe.js +25 -25
  220. package/esm2015/public-api.js +129 -129
  221. package/fesm2015/colijnit-corecomponents_v12.js +12271 -12118
  222. package/fesm2015/colijnit-corecomponents_v12.js.map +1 -1
  223. package/lib/components/article-tile/article-tile.component.d.ts +22 -22
  224. package/lib/components/article-tile/article-tile.module.d.ts +2 -2
  225. package/lib/components/base/base-input.component.d.ts +182 -182
  226. package/lib/components/base/base.module.d.ts +2 -2
  227. package/lib/components/base/commit-buttons/commit-buttons.component.d.ts +21 -21
  228. package/lib/components/base/commit-buttons/commit-buttons.module.d.ts +2 -2
  229. package/lib/components/base/dialog-base.component.d.ts +4 -4
  230. package/lib/components/base-input-date-picker/base-input-date-picker.directive.d.ts +15 -15
  231. package/lib/components/button/button.component.d.ts +29 -29
  232. package/lib/components/button/button.module.d.ts +2 -2
  233. package/lib/components/calendar/calendar-template.component.d.ts +60 -60
  234. package/lib/components/calendar/calendar.component.d.ts +13 -13
  235. package/lib/components/calendar/calendar.module.d.ts +2 -2
  236. package/lib/components/card/card.component.d.ts +23 -23
  237. package/lib/components/card/card.module.d.ts +2 -2
  238. package/lib/components/carousel/carousel.component.d.ts +23 -23
  239. package/lib/components/carousel/carousel.module.d.ts +6 -6
  240. package/lib/components/carousel-3d/carousel-3d.component.d.ts +55 -55
  241. package/lib/components/carousel-3d/carousel-3d.module.d.ts +2 -2
  242. package/lib/components/carousel-3d/carouselItem.d.ts +13 -13
  243. package/lib/components/checkmark-overlay/checkmark-overlay.component.d.ts +17 -17
  244. package/lib/components/checkmark-overlay/checkmark-overlay.module.d.ts +2 -2
  245. package/lib/components/co-dialog/co-dialog.component.d.ts +23 -23
  246. package/lib/components/co-dialog/co-dialog.module.d.ts +2 -2
  247. package/lib/components/co-dialog-wizard/co-dialog-wizard.component.d.ts +9 -9
  248. package/lib/components/co-dialog-wizard/co-dialog-wizard.module.d.ts +2 -2
  249. package/lib/components/collapsible/collapsible.component.d.ts +22 -22
  250. package/lib/components/collapsible/collapsible.module.d.ts +2 -2
  251. package/lib/components/color-picker/color-picker.component.d.ts +6 -6
  252. package/lib/components/color-picker/color-picker.module.d.ts +2 -2
  253. package/lib/components/core-dialog/confirmation-dialog/confirmation-dialog.component.d.ts +20 -20
  254. package/lib/components/core-dialog/core-dialog.module.d.ts +4 -4
  255. package/lib/components/core-dialog/core-dialog.service.d.ts +15 -15
  256. package/lib/components/core-dialog/core-dynamic-component.service.d.ts +12 -12
  257. package/lib/components/double-calendar/double-calendar.component.d.ts +18 -18
  258. package/lib/components/double-calendar/double-calendar.module.d.ts +2 -2
  259. package/lib/components/filter-item/filter-item-viewmodel.d.ts +9 -9
  260. package/lib/components/filter-item/filter-item.component.d.ts +80 -80
  261. package/lib/components/filter-item/filter-item.module.d.ts +2 -2
  262. package/lib/components/filter-item/filter-viewmodel.d.ts +8 -8
  263. package/lib/components/form/form.component.d.ts +39 -39
  264. package/lib/components/form/form.module.d.ts +2 -2
  265. package/lib/components/grid-toolbar/grid-toolbar.component.d.ts +19 -19
  266. package/lib/components/grid-toolbar/grid-toolbar.module.d.ts +2 -2
  267. package/lib/components/grid-toolbar-button/grid-toolbar-button.component.d.ts +8 -8
  268. package/lib/components/grid-toolbar-button/grid-toolbar-button.module.d.ts +2 -2
  269. package/lib/components/icon/icon-cache.service.d.ts +20 -20
  270. package/lib/components/icon/icon.component.d.ts +17 -17
  271. package/lib/components/icon/icon.module.d.ts +2 -2
  272. package/lib/components/icon-collapse-handle/icon-collapse-handle.component.d.ts +21 -21
  273. package/lib/components/icon-collapse-handle/icon-collapse-handle.module.d.ts +2 -2
  274. package/lib/components/image/image.component.d.ts +20 -20
  275. package/lib/components/image/image.module.d.ts +2 -2
  276. package/lib/components/input-checkbox/input-checkbox.component.d.ts +24 -24
  277. package/lib/components/input-checkbox/input-checkbox.module.d.ts +2 -2
  278. package/lib/components/input-date-picker/input-date-picker.component.d.ts +12 -12
  279. package/lib/components/input-date-picker/input-date-picker.module.d.ts +2 -2
  280. package/lib/components/input-date-range-picker/input-date-range-picker.component.d.ts +20 -20
  281. package/lib/components/input-date-range-picker/input-date-range-picker.module.d.ts +2 -2
  282. package/lib/components/input-number-picker/input-number-picker.component.d.ts +73 -73
  283. package/lib/components/input-number-picker/input-number-picker.module.d.ts +2 -2
  284. package/lib/components/input-radio-button/input-radio-button.component.d.ts +19 -19
  285. package/lib/components/input-radio-button/input-radio-button.module.d.ts +2 -2
  286. package/lib/components/input-scanner/bar-code-scanner.d.ts +7 -7
  287. package/lib/components/input-scanner/input-scanner.component.d.ts +24 -24
  288. package/lib/components/input-scanner/input-scanner.module.d.ts +2 -2
  289. package/lib/components/input-scanner/scanner.service.d.ts +11 -11
  290. package/lib/components/input-search/input-search.component.d.ts +20 -19
  291. package/lib/components/input-search/input-search.module.d.ts +2 -2
  292. package/lib/components/input-text/input-text.component.d.ts +66 -65
  293. package/lib/components/input-text/input-text.module.d.ts +2 -2
  294. package/lib/components/input-textarea/input-textarea.component.d.ts +19 -19
  295. package/lib/components/input-textarea/input-textarea.module.d.ts +2 -2
  296. package/lib/components/level-indicator/level-indicator-level.enum.d.ts +5 -5
  297. package/lib/components/level-indicator/level-indicator.component.d.ts +10 -10
  298. package/lib/components/level-indicator/level-indicator.module.d.ts +2 -2
  299. package/lib/components/list-of-values/list-of-values-multiselect-popup.component.d.ts +25 -25
  300. package/lib/components/list-of-values/list-of-values-popup.component.d.ts +47 -47
  301. package/lib/components/list-of-values/list-of-values.component.d.ts +37 -37
  302. package/lib/components/list-of-values/list-of-values.module.d.ts +2 -2
  303. package/lib/components/loader/loader.component.d.ts +3 -3
  304. package/lib/components/loader/loader.module.d.ts +2 -2
  305. package/lib/components/pagination/paginate.pipe.d.ts +15 -15
  306. package/lib/components/pagination/pagination-instance.d.ts +14 -14
  307. package/lib/components/pagination/pagination.component.d.ts +38 -38
  308. package/lib/components/pagination/pagination.module.d.ts +2 -2
  309. package/lib/components/pagination/pagination.service.d.ts +24 -24
  310. package/lib/components/pagination-bar/pagination-bar.component.d.ts +33 -33
  311. package/lib/components/pagination-bar/pagination-bar.module.d.ts +2 -2
  312. package/lib/components/popup/const/popup-window-token.d.ts +3 -3
  313. package/lib/components/popup/interface/popup-button.d.ts +8 -8
  314. package/lib/components/popup/interface/popup-close-event.d.ts +5 -5
  315. package/lib/components/popup/interface/popup-settings.d.ts +21 -21
  316. package/lib/components/popup/interface/popup.d.ts +9 -9
  317. package/lib/components/popup/model/popup-button-globals.d.ts +9 -9
  318. package/lib/components/popup/model/popup-window.d.ts +21 -21
  319. package/lib/components/popup/popup-buttons.component.d.ts +13 -13
  320. package/lib/components/popup/popup-message-display.component.d.ts +12 -12
  321. package/lib/components/popup/popup-window-shell.component.d.ts +42 -42
  322. package/lib/components/popup/popup.module.d.ts +4 -4
  323. package/lib/components/popup/service/popup-shower.service.d.ts +17 -17
  324. package/lib/components/popup/service/prompt.service.d.ts +17 -17
  325. package/lib/components/popup/text-input-popup.component.d.ts +12 -12
  326. package/lib/components/responsive-text/responsive-text.component.d.ts +4 -4
  327. package/lib/components/responsive-text/responsive-text.module.d.ts +2 -2
  328. package/lib/components/simple-grid/base-simple-grid.component.d.ts +53 -52
  329. package/lib/components/simple-grid/simple-grid-cell.component.d.ts +30 -30
  330. package/lib/components/simple-grid/simple-grid-column.directive.d.ts +43 -42
  331. package/lib/components/simple-grid/simple-grid.component.d.ts +77 -64
  332. package/lib/components/simple-grid/simple-grid.module.d.ts +2 -2
  333. package/lib/components/simple-grid/style/_layout.scss +68 -0
  334. package/lib/components/tile/tile.component.d.ts +16 -16
  335. package/lib/components/tile/tile.module.d.ts +2 -2
  336. package/lib/components/tile-select/tile-select.component.d.ts +8 -8
  337. package/lib/components/tile-select/tile-select.module.d.ts +2 -2
  338. package/lib/components/tooltip/tooltip.component.d.ts +18 -18
  339. package/lib/components/tooltip/tooltip.module.d.ts +2 -2
  340. package/lib/components/validation-error/validation-error.component.d.ts +12 -12
  341. package/lib/components/validation-error/validation-error.module.d.ts +2 -2
  342. package/lib/components/view-mode-buttons/content-view-mode.enum.d.ts +8 -8
  343. package/lib/components/view-mode-buttons/view-mode-buttons.component.d.ts +17 -17
  344. package/lib/components/view-mode-buttons/view-mode-buttons.module.d.ts +2 -2
  345. package/lib/core/constant/default-upper-bound-for-range-components.d.ts +2 -2
  346. package/lib/core/constant/java-max-int.d.ts +1 -1
  347. package/lib/core/constant/number-inputs-key-down-white-list.d.ts +2 -2
  348. package/lib/core/decorator/input-boolean.decorator.d.ts +8 -8
  349. package/lib/core/enum/co-direction.d.ts +6 -6
  350. package/lib/core/enum/co-document-image-display-kind.enum.d.ts +5 -5
  351. package/lib/core/enum/co-document-type.enum.d.ts +5 -5
  352. package/lib/core/enum/co-orientation.d.ts +6 -6
  353. package/lib/core/enum/core-components-icon.enum.d.ts +298 -298
  354. package/lib/core/enum/file-type-internal.enum.d.ts +15 -15
  355. package/lib/core/enum/file-type.enum.d.ts +5 -5
  356. package/lib/core/enum/filterItem-mode.enum.d.ts +15 -15
  357. package/lib/core/enum/input-number-picker-show-mode.enum.d.ts +5 -5
  358. package/lib/core/enum/keyboard-code.enum.d.ts +71 -71
  359. package/lib/core/enum/keyboard-key.enum.d.ts +70 -70
  360. package/lib/core/enum/object-right-type.enum.d.ts +5 -5
  361. package/lib/core/enum/popup-button-type.enum.d.ts +9 -9
  362. package/lib/core/enum/popup-type.enum.d.ts +9 -9
  363. package/lib/core/enum/table-name.enum.d.ts +79 -79
  364. package/lib/core/function/any-nill.function.d.ts +1 -1
  365. package/lib/core/function/is-nill.function.d.ts +1 -1
  366. package/lib/core/function/none-nill.function.d.ts +1 -1
  367. package/lib/core/function/not-nill.function.d.ts +1 -1
  368. package/lib/core/model/bounds-constrained-number-value.d.ts +46 -46
  369. package/lib/core/model/check-precision-and-scale-result.d.ts +4 -4
  370. package/lib/core/model/check-within-stepped-bounds-result.d.ts +8 -8
  371. package/lib/core/model/co-document-right.bo.d.ts +6 -6
  372. package/lib/core/model/co-document.bo.d.ts +61 -61
  373. package/lib/core/model/core-components-icon-svg.d.ts +4 -4
  374. package/lib/core/model/element-position.d.ts +7 -7
  375. package/lib/core/model/event/string-prompt-result-event.d.ts +6 -6
  376. package/lib/core/service/form-input-user-change-listener.service.d.ts +10 -10
  377. package/lib/core/service/form-master.service.d.ts +26 -26
  378. package/lib/core/service/ng-zone-wrapper.service.d.ts +6 -6
  379. package/lib/core/utils/array-utils.d.ts +85 -85
  380. package/lib/core/utils/browser-utils.d.ts +15 -15
  381. package/lib/core/utils/direction-enum-utils.d.ts +5 -5
  382. package/lib/core/utils/event-utils.d.ts +12 -12
  383. package/lib/core/utils/file-utils.d.ts +29 -29
  384. package/lib/core/utils/number-utils.d.ts +89 -89
  385. package/lib/core/utils/object-utils.d.ts +31 -31
  386. package/lib/core/utils/string-utils.d.ts +25 -25
  387. package/lib/core/validator/email.validator.d.ts +2 -2
  388. package/lib/core/validator/equal.validator.d.ts +2 -2
  389. package/lib/core/validator/max-string-length.validator.d.ts +2 -2
  390. package/lib/core/validator/password.validator.d.ts +3 -3
  391. package/lib/core/validator/precision-scale.validator.d.ts +2 -2
  392. package/lib/core/validator/required.validator.d.ts +2 -2
  393. package/lib/directives/clickoutside/click-outside-master.service.d.ts +15 -15
  394. package/lib/directives/clickoutside/click-outside.directive.d.ts +18 -18
  395. package/lib/directives/clickoutside/clickoutside.module.d.ts +2 -2
  396. package/lib/directives/observe-visibility/observe-visibility.directive.d.ts +14 -14
  397. package/lib/directives/observe-visibility/observe-visibility.module.d.ts +2 -2
  398. package/lib/directives/overlay/overlay-parent.directive.d.ts +6 -6
  399. package/lib/directives/overlay/overlay.directive.d.ts +25 -25
  400. package/lib/directives/overlay/overlay.module.d.ts +2 -2
  401. package/lib/directives/ripple/ripple-ref.d.ts +21 -21
  402. package/lib/directives/ripple/ripple-renderer.d.ts +56 -56
  403. package/lib/directives/ripple/ripple.directive.d.ts +56 -56
  404. package/lib/directives/ripple/ripple.module.d.ts +2 -2
  405. package/lib/directives/ripple/scroll-dispatcher.service.d.ts +51 -51
  406. package/lib/directives/ripple/scrollable.directive.d.ts +20 -20
  407. package/lib/directives/ripple/viewport-ruler.service.d.ts +29 -29
  408. package/lib/directives/screen-configuration/screen-configuration.directive.d.ts +32 -32
  409. package/lib/directives/screen-configuration/screen-configuration.module.d.ts +2 -2
  410. package/lib/directives/stopclick/stop-click.directive.d.ts +10 -10
  411. package/lib/directives/stopclick/stop-click.module.d.ts +2 -2
  412. package/lib/directives/template-wrapper/template-wrapper.directive.d.ts +13 -13
  413. package/lib/directives/template-wrapper/template-wrapper.module.d.ts +2 -2
  414. package/lib/directives/tooltip/tooltip-directive.module.d.ts +2 -2
  415. package/lib/directives/tooltip/tooltip.directive.d.ts +20 -20
  416. package/lib/interfaces/dialog-response.interface.d.ts +6 -6
  417. package/lib/interfaces/scanner-input.interface.d.ts +3 -3
  418. package/lib/interfaces/screen-config-adapter-component-interface-name.d.ts +3 -3
  419. package/lib/interfaces/screen-config-adapter.component.interface.d.ts +10 -10
  420. package/lib/model/enum/app-button-type.enum.d.ts +9 -9
  421. package/lib/model/enum/app-popup-type.enum.d.ts +6 -6
  422. package/lib/pipes/append.pipe.d.ts +4 -4
  423. package/lib/pipes/append.pipe.module.d.ts +2 -2
  424. package/lib/pipes/filter.pipe.d.ts +4 -4
  425. package/lib/pipes/filter.pipe.module.d.ts +2 -2
  426. package/lib/pipes/prepend.pipe.d.ts +4 -4
  427. package/lib/pipes/prepend.pipe.module.d.ts +2 -2
  428. package/lib/pipes/price-display-pipe.module.d.ts +2 -2
  429. package/lib/pipes/price-display.pipe.d.ts +4 -4
  430. package/lib/service/base-module-screen-config.service.d.ts +47 -47
  431. package/lib/service/base-module.service.d.ts +22 -22
  432. package/lib/service/color-sequence.service.d.ts +4 -4
  433. package/lib/service/overlay.service.d.ts +13 -13
  434. package/lib/translation/core-components-translation.module.d.ts +4 -4
  435. package/lib/translation/core-components-translation.service.d.ts +6 -6
  436. package/lib/translation/core-dictionary.service.d.ts +12 -12
  437. package/lib/translation/core-localize.pipe.d.ts +7 -7
  438. package/package.json +1 -1
  439. package/public-api.d.ts +126 -126
@@ -1,164 +1,166 @@
1
- import { ContentChildren, Directive, EventEmitter, HostListener, Input, Output } from "@angular/core";
2
- import { SimpleGridColumnDirective } from "./simple-grid-column.directive";
3
- import { moveItemInArray } from "@angular/cdk/drag-drop";
4
- import { Subject } from "rxjs";
5
- export class BaseSimpleGridComponent {
6
- constructor() {
7
- this.MIN_COLUMN_WIDTH = 50;
8
- this.dataChanged = new Subject();
9
- this.dragDropEnabled = false;
10
- this.resizable = false;
11
- this.inlineEdit = false;
12
- this.showEdit = false;
13
- this.showToolbar = false;
14
- this.autoAddRow = false;
15
- /**
16
- * Should component emit drag and drop actions instead of handle
17
- * (update collection) by itself
18
- */
19
- this.emitDragDrop = false;
20
- this.onDrop = new EventEmitter();
21
- this.selectRow = new EventEmitter();
22
- this.dblClickRow = new EventEmitter();
23
- this.saveRow = new EventEmitter();
24
- this.deleteRow = new EventEmitter();
25
- this.addRow = new EventEmitter();
26
- this.rowVisible = new EventEmitter();
27
- this.columns = [];
28
- this.headerColumns = [];
29
- this._data = [];
30
- this.disabledRows = [];
31
- this._prepared = false;
32
- }
33
- set content(columnComponents) {
34
- this._setColumns(columnComponents.toArray());
35
- this._prepareData();
36
- }
37
- set data(value) {
38
- this._data = value;
39
- this._prepareData();
40
- this.dataChanged.next();
41
- }
42
- get data() {
43
- return this._data;
44
- }
45
- set extraColumns(value) {
46
- this._setColumns(value);
47
- }
48
- handleMouseMove(event) {
49
- if (this.resizable && event.buttons === 1 && this._columnForResize) {
50
- // this._columnForResize.width = this._columnForResize.originalWidth - (this._startMousePositionX - event.clientX);
51
- }
52
- }
53
- handleMouseUp(event) {
54
- this._startMousePositionX = undefined;
55
- this._columnForResize = undefined;
56
- }
57
- handleSizerMouseDown(event, column) {
58
- this._setWidthOfAllColumns();
59
- this._startMousePositionX = event.clientX;
60
- this._columnForResize = column;
61
- this._columnForResize.originalWidth = this._columnForResize.width;
62
- }
63
- handleCanDragDrop(drag, drop) {
64
- return true;
65
- }
66
- handleDrop(event) {
67
- try {
68
- const from = event.previousIndex;
69
- const to = event.currentIndex;
70
- if (from === to) {
71
- return;
72
- }
73
- if (this.emitDragDrop) {
74
- this.onDrop.next({ from: from, to: to });
75
- }
76
- else {
77
- moveItemInArray(this.data, from, to);
78
- }
79
- }
80
- catch (e) {
81
- console.error(e);
82
- }
83
- }
84
- isSingleColumnRow(row) {
85
- return row.hasOwnProperty('singleColumnIndex');
86
- }
87
- singleColumnIndex(row) {
88
- return row.singleColumnIndex;
89
- }
90
- prepareDataRow(row, index) {
91
- }
92
- _setColumns(columns) {
93
- this.columns.push(...columns);
94
- this.columns.sort((a, b) => a.order < b.order ? -1 : 1);
95
- }
96
- _prepareData() {
97
- if (this._prepared) {
98
- return;
99
- }
100
- this.disabledRows.length = 0;
101
- if (this.columns && this.columns.length > 0) {
102
- this.headerColumns = this.columns.filter(c => !c.singleColumn);
103
- let singleColumnIndex = -1;
104
- for (let i = 0; i < this.columns.length; i++) {
105
- if (this.columns[i].singleColumn) {
106
- singleColumnIndex = i;
107
- break;
108
- }
109
- }
110
- // first check if there's single column data
111
- if (singleColumnIndex > -1 && this.data && this.data.length > 0) {
112
- const field = this.columns[singleColumnIndex].field;
113
- for (let i = 0; i < this.data.length; i++) { // then mark row as single column row
114
- if (this.data[i][field] !== undefined && this.data[i][field] !== null && this.data[i][field] !== "") {
115
- // bit nasty to add prop, but cool for now
116
- this.data[i].singleColumnIndex = singleColumnIndex;
117
- }
118
- this.prepareDataRow(this.data[i], i);
119
- }
120
- }
121
- this._prepared = true;
122
- }
123
- this._resizeColumnsToFit();
124
- }
125
- _resizeColumnsToFit() {
126
- const calculateColumns = this.columns.filter(c => !c.autoFit && !c.width);
127
- for (let i = 0; i < calculateColumns.length; i++) {
128
- calculateColumns[i].width = `${100 / calculateColumns.length}%`;
129
- }
130
- }
131
- _setWidthOfAllColumns() {
132
- this.columns.forEach((column) => {
133
- if ((column.width === undefined || column.width === null) && column.elementRef && column.elementRef.nativeElement) {
134
- const rect = column.elementRef.nativeElement.getBoundingClientRect();
135
- column.width = rect.width;
136
- }
137
- });
138
- }
139
- }
140
- BaseSimpleGridComponent.decorators = [
141
- { type: Directive }
142
- ];
143
- BaseSimpleGridComponent.propDecorators = {
144
- content: [{ type: ContentChildren, args: [SimpleGridColumnDirective,] }],
145
- data: [{ type: Input }],
146
- dragDropEnabled: [{ type: Input }],
147
- resizable: [{ type: Input }],
148
- inlineEdit: [{ type: Input }],
149
- showEdit: [{ type: Input }],
150
- showToolbar: [{ type: Input }],
151
- autoAddRow: [{ type: Input }],
152
- emitDragDrop: [{ type: Input }],
153
- extraColumns: [{ type: Input }],
154
- onDrop: [{ type: Output }],
155
- selectRow: [{ type: Output }],
156
- dblClickRow: [{ type: Output }],
157
- saveRow: [{ type: Output }],
158
- deleteRow: [{ type: Output }],
159
- addRow: [{ type: Output }],
160
- rowVisible: [{ type: Output }],
161
- handleMouseMove: [{ type: HostListener, args: ['document:mousemove', ['$event'],] }],
162
- handleMouseUp: [{ type: HostListener, args: ['document:mouseup', ['$event'],] }]
163
- };
164
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1zaW1wbGUtZ3JpZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvc2ltcGxlLWdyaWQvYmFzZS1zaW1wbGUtZ3JpZC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLGVBQWUsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUEwQixNQUFNLGVBQWUsQ0FBQztBQUM3SCxPQUFPLEVBQUMseUJBQXlCLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN6RSxPQUFPLEVBQW9DLGVBQWUsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQzFGLE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFHN0IsTUFBTSxPQUFnQix1QkFBdUI7SUFEN0M7UUFFa0IscUJBQWdCLEdBQVcsRUFBRSxDQUFDO1FBQzlCLGdCQUFXLEdBQWtCLElBQUksT0FBTyxFQUFRLENBQUM7UUFtQjFELG9CQUFlLEdBQVksS0FBSyxDQUFDO1FBR2pDLGNBQVMsR0FBWSxLQUFLLENBQUM7UUFHM0IsZUFBVSxHQUFZLEtBQUssQ0FBQztRQUc1QixhQUFRLEdBQVksS0FBSyxDQUFDO1FBRzFCLGdCQUFXLEdBQVksS0FBSyxDQUFDO1FBRzdCLGVBQVUsR0FBWSxLQUFLLENBQUM7UUFFbkM7OztXQUdHO1FBRUksaUJBQVksR0FBWSxLQUFLLENBQUM7UUFROUIsV0FBTSxHQUE2QyxJQUFJLFlBQVksRUFBOEIsQ0FBQztRQUdsRyxjQUFTLEdBQXFCLElBQUksWUFBWSxFQUFNLENBQUM7UUFHckQsZ0JBQVcsR0FBcUIsSUFBSSxZQUFZLEVBQU0sQ0FBQztRQUd2RCxZQUFPLEdBQXFCLElBQUksWUFBWSxFQUFNLENBQUM7UUFHbkQsY0FBUyxHQUFxQixJQUFJLFlBQVksRUFBTSxDQUFDO1FBR3JELFdBQU0sR0FBdUIsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUd0RCxlQUFVLEdBQXFCLElBQUksWUFBWSxFQUFNLENBQUM7UUFldEQsWUFBTyxHQUFnQyxFQUFFLENBQUM7UUFDMUMsa0JBQWEsR0FBZ0MsRUFBRSxDQUFDO1FBRTdDLFVBQUssR0FBYSxFQUFFLENBQUM7UUFDckIsaUJBQVksR0FBYSxFQUFFLENBQUM7UUFHOUIsY0FBUyxHQUFZLEtBQUssQ0FBQztJQWdHckMsQ0FBQztJQXZMQyxJQUFnRCxPQUFPLENBQUMsZ0JBQXNEO1FBQzVHLElBQUksQ0FBQyxXQUFXLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUM3QyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVELElBQ1csSUFBSSxDQUFDLEtBQWU7UUFDN0IsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVELElBQVcsSUFBSTtRQUNiLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNwQixDQUFDO0lBMkJELElBQ1csWUFBWSxDQUFDLEtBQWtDO1FBQ3hELElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDMUIsQ0FBQztJQXdCTSxlQUFlLENBQUMsS0FBaUI7UUFDdEMsSUFBSSxJQUFJLENBQUMsU0FBUyxJQUFJLEtBQUssQ0FBQyxPQUFPLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsRUFBRTtZQUNsRSxtSEFBbUg7U0FDcEg7SUFDSCxDQUFDO0lBR00sYUFBYSxDQUFDLEtBQWlCO1FBQ3BDLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxTQUFTLENBQUM7UUFDdEMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLFNBQVMsQ0FBQztJQUNwQyxDQUFDO0lBWU0sb0JBQW9CLENBQUMsS0FBaUIsRUFBRSxNQUFpQztRQUM5RSxJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztRQUM3QixJQUFJLENBQUMsb0JBQW9CLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQztRQUMxQyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsTUFBTSxDQUFDO1FBQy9CLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQztJQUNwRSxDQUFDO0lBRU0saUJBQWlCLENBQUMsSUFBYSxFQUFFLElBQWlCO1FBQ3ZELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVNLFVBQVUsQ0FBQyxLQUE0QjtRQUM1QyxJQUFJO1lBQ0YsTUFBTSxJQUFJLEdBQVcsS0FBSyxDQUFDLGFBQWEsQ0FBQztZQUN6QyxNQUFNLEVBQUUsR0FBVyxLQUFLLENBQUMsWUFBWSxDQUFDO1lBQ3RDLElBQUksSUFBSSxLQUFLLEVBQUUsRUFBRTtnQkFDZixPQUFPO2FBQ1I7WUFDRCxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUU7Z0JBQ3JCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFDLENBQUMsQ0FBQzthQUN4QztpQkFBTTtnQkFDTCxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7YUFDdEM7U0FDRjtRQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ1YsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUNsQjtJQUNILENBQUM7SUFFTSxpQkFBaUIsQ0FBQyxHQUFXO1FBQ2xDLE9BQU8sR0FBRyxDQUFDLGNBQWMsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFTSxpQkFBaUIsQ0FBQyxHQUFXO1FBQ2xDLE9BQVEsR0FBVyxDQUFDLGlCQUFpQixDQUFDO0lBQ3hDLENBQUM7SUFFUyxjQUFjLENBQUMsR0FBUSxFQUFFLEtBQWE7SUFFaEQsQ0FBQztJQUVPLFdBQVcsQ0FBQyxPQUFvQztRQUN0RCxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLE9BQU8sQ0FBQyxDQUFDO1FBQzlCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUVPLFlBQVk7UUFDbEIsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ2xCLE9BQU87U0FDUjtRQUNELElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztRQUU3QixJQUFJLElBQUksQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQzNDLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUMvRCxJQUFJLGlCQUFpQixHQUFXLENBQUMsQ0FBQyxDQUFDO1lBQ25DLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtnQkFDNUMsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksRUFBRTtvQkFDaEMsaUJBQWlCLEdBQUcsQ0FBQyxDQUFDO29CQUN0QixNQUFNO2lCQUNQO2FBQ0Y7WUFDRCw0Q0FBNEM7WUFDNUMsSUFBSSxpQkFBaUIsR0FBRyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtnQkFDL0QsTUFBTSxLQUFLLEdBQVcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLEtBQUssQ0FBQztnQkFDNUQsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUscUNBQXFDO29CQUNoRixJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssU0FBUyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssSUFBSSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFO3dCQUNuRywwQ0FBMEM7d0JBQ3pDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFTLENBQUMsaUJBQWlCLEdBQUcsaUJBQWlCLENBQUM7cUJBQzdEO29CQUNELElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztpQkFDdEM7YUFDRjtZQUVELElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1NBQ3ZCO1FBQ0QsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVPLG1CQUFtQjtRQUN6QixNQUFNLGdCQUFnQixHQUFnQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN2RyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsZ0JBQWdCLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ2hELGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxHQUFHLEdBQUcsR0FBRyxnQkFBZ0IsQ0FBQyxNQUFNLEdBQUcsQ0FBQztTQUNqRTtJQUNILENBQUM7SUFFTyxxQkFBcUI7UUFDM0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFpQyxFQUFFLEVBQUU7WUFDekQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEtBQUssU0FBUyxJQUFJLE1BQU0sQ0FBQyxLQUFLLEtBQUssSUFBSSxDQUFDLElBQUksTUFBTSxDQUFDLFVBQVUsSUFBSSxNQUFNLENBQUMsVUFBVSxDQUFDLGFBQWEsRUFBRTtnQkFDakgsTUFBTSxJQUFJLEdBQWUsTUFBTSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMscUJBQXFCLEVBQUUsQ0FBQztnQkFDakYsTUFBTSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO2FBQzNCO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOzs7WUExTEYsU0FBUzs7O3NCQUtQLGVBQWUsU0FBQyx5QkFBeUI7bUJBS3pDLEtBQUs7OEJBV0wsS0FBSzt3QkFHTCxLQUFLO3lCQUdMLEtBQUs7dUJBR0wsS0FBSzswQkFHTCxLQUFLO3lCQUdMLEtBQUs7MkJBT0wsS0FBSzsyQkFHTCxLQUFLO3FCQUtMLE1BQU07d0JBR04sTUFBTTswQkFHTixNQUFNO3NCQUdOLE1BQU07d0JBR04sTUFBTTtxQkFHTixNQUFNO3lCQUdOLE1BQU07OEJBR04sWUFBWSxTQUFDLG9CQUFvQixFQUFFLENBQUMsUUFBUSxDQUFDOzRCQU83QyxZQUFZLFNBQUMsa0JBQWtCLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbnRlbnRDaGlsZHJlbiwgRGlyZWN0aXZlLCBFdmVudEVtaXR0ZXIsIEhvc3RMaXN0ZW5lciwgSW5wdXQsIE91dHB1dCwgUXVlcnlMaXN0LCBWaWV3Q2hpbGRyZW59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7U2ltcGxlR3JpZENvbHVtbkRpcmVjdGl2ZX0gZnJvbSBcIi4vc2ltcGxlLWdyaWQtY29sdW1uLmRpcmVjdGl2ZVwiO1xyXG5pbXBvcnQge0Nka0RyYWcsIENka0RyYWdEcm9wLCBDZGtEcm9wTGlzdCwgbW92ZUl0ZW1JbkFycmF5fSBmcm9tIFwiQGFuZ3VsYXIvY2RrL2RyYWctZHJvcFwiO1xyXG5pbXBvcnQge1N1YmplY3R9IGZyb20gXCJyeGpzXCI7XHJcblxyXG5ARGlyZWN0aXZlKClcclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEJhc2VTaW1wbGVHcmlkQ29tcG9uZW50IHtcclxuICBwdWJsaWMgcmVhZG9ubHkgTUlOX0NPTFVNTl9XSURUSDogbnVtYmVyID0gNTA7XHJcbiAgcHVibGljIHJlYWRvbmx5IGRhdGFDaGFuZ2VkOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuXHJcbiAgQENvbnRlbnRDaGlsZHJlbihTaW1wbGVHcmlkQ29sdW1uRGlyZWN0aXZlKSBzZXQgY29udGVudChjb2x1bW5Db21wb25lbnRzOiBRdWVyeUxpc3Q8U2ltcGxlR3JpZENvbHVtbkRpcmVjdGl2ZT4pIHtcclxuICAgIHRoaXMuX3NldENvbHVtbnMoY29sdW1uQ29tcG9uZW50cy50b0FycmF5KCkpO1xyXG4gICAgdGhpcy5fcHJlcGFyZURhdGEoKTtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNldCBkYXRhKHZhbHVlOiBPYmplY3RbXSkge1xyXG4gICAgdGhpcy5fZGF0YSA9IHZhbHVlO1xyXG4gICAgdGhpcy5fcHJlcGFyZURhdGEoKTtcclxuICAgIHRoaXMuZGF0YUNoYW5nZWQubmV4dCgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBkYXRhKCk6IE9iamVjdFtdIHtcclxuICAgIHJldHVybiB0aGlzLl9kYXRhO1xyXG4gIH1cclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgZHJhZ0Ryb3BFbmFibGVkOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHJlc2l6YWJsZTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBpbmxpbmVFZGl0OiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNob3dFZGl0OiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNob3dUb29sYmFyOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGF1dG9BZGRSb3c6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgLyoqXHJcbiAgICogU2hvdWxkIGNvbXBvbmVudCBlbWl0IGRyYWcgYW5kIGRyb3AgYWN0aW9ucyBpbnN0ZWFkIG9mIGhhbmRsZVxyXG4gICAqICh1cGRhdGUgY29sbGVjdGlvbikgYnkgaXRzZWxmXHJcbiAgICovXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgZW1pdERyYWdEcm9wOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNldCBleHRyYUNvbHVtbnModmFsdWU6IFNpbXBsZUdyaWRDb2x1bW5EaXJlY3RpdmVbXSkge1xyXG4gICAgdGhpcy5fc2V0Q29sdW1ucyh2YWx1ZSk7XHJcbiAgfVxyXG5cclxuICBAT3V0cHV0KClcclxuICBwdWJsaWMgb25Ecm9wOiBFdmVudEVtaXR0ZXI8e2Zyb206IG51bWJlciwgdG86IG51bWJlcn0+ID0gbmV3IEV2ZW50RW1pdHRlcjx7ZnJvbTogbnVtYmVyOyB0bzogbnVtYmVyfT4oKTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgcHVibGljIHNlbGVjdFJvdzogRXZlbnRFbWl0dGVyPHt9PiA9IG5ldyBFdmVudEVtaXR0ZXI8e30+KCk7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyBkYmxDbGlja1JvdzogRXZlbnRFbWl0dGVyPHt9PiA9IG5ldyBFdmVudEVtaXR0ZXI8e30+KCk7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyBzYXZlUm93OiBFdmVudEVtaXR0ZXI8e30+ID0gbmV3IEV2ZW50RW1pdHRlcjx7fT4oKTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgcHVibGljIGRlbGV0ZVJvdzogRXZlbnRFbWl0dGVyPHt9PiA9IG5ldyBFdmVudEVtaXR0ZXI8e30+KCk7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyBhZGRSb3c6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgcHVibGljIHJvd1Zpc2libGU6IEV2ZW50RW1pdHRlcjx7fT4gPSBuZXcgRXZlbnRFbWl0dGVyPHt9PigpO1xyXG5cclxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDptb3VzZW1vdmUnLCBbJyRldmVudCddKVxyXG4gIHB1YmxpYyBoYW5kbGVNb3VzZU1vdmUoZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnJlc2l6YWJsZSAmJiBldmVudC5idXR0b25zID09PSAxICYmIHRoaXMuX2NvbHVtbkZvclJlc2l6ZSkge1xyXG4gICAgICAvLyB0aGlzLl9jb2x1bW5Gb3JSZXNpemUud2lkdGggPSB0aGlzLl9jb2x1bW5Gb3JSZXNpemUub3JpZ2luYWxXaWR0aCAtICh0aGlzLl9zdGFydE1vdXNlUG9zaXRpb25YIC0gZXZlbnQuY2xpZW50WCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDptb3VzZXVwJywgWyckZXZlbnQnXSlcclxuICBwdWJsaWMgaGFuZGxlTW91c2VVcChldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xyXG4gICAgdGhpcy5fc3RhcnRNb3VzZVBvc2l0aW9uWCA9IHVuZGVmaW5lZDtcclxuICAgIHRoaXMuX2NvbHVtbkZvclJlc2l6ZSA9IHVuZGVmaW5lZDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjb2x1bW5zOiBTaW1wbGVHcmlkQ29sdW1uRGlyZWN0aXZlW10gPSBbXTtcclxuICBwdWJsaWMgaGVhZGVyQ29sdW1uczogU2ltcGxlR3JpZENvbHVtbkRpcmVjdGl2ZVtdID0gW107XHJcblxyXG4gIHByb3RlY3RlZCBfZGF0YTogT2JqZWN0W10gPSBbXTtcclxuICBwcm90ZWN0ZWQgZGlzYWJsZWRSb3dzOiBudW1iZXJbXSA9IFtdO1xyXG5cclxuICBwcml2YXRlIF9jb2x1bW5Gb3JSZXNpemU6IFNpbXBsZUdyaWRDb2x1bW5EaXJlY3RpdmU7XHJcbiAgcHJpdmF0ZSBfcHJlcGFyZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwcml2YXRlIF9zdGFydE1vdXNlUG9zaXRpb25YOiBudW1iZXI7XHJcblxyXG4gIHB1YmxpYyBoYW5kbGVTaXplck1vdXNlRG93bihldmVudDogTW91c2VFdmVudCwgY29sdW1uOiBTaW1wbGVHcmlkQ29sdW1uRGlyZWN0aXZlKTogdm9pZCB7XHJcbiAgICB0aGlzLl9zZXRXaWR0aE9mQWxsQ29sdW1ucygpO1xyXG4gICAgdGhpcy5fc3RhcnRNb3VzZVBvc2l0aW9uWCA9IGV2ZW50LmNsaWVudFg7XHJcbiAgICB0aGlzLl9jb2x1bW5Gb3JSZXNpemUgPSBjb2x1bW47XHJcbiAgICB0aGlzLl9jb2x1bW5Gb3JSZXNpemUub3JpZ2luYWxXaWR0aCA9IHRoaXMuX2NvbHVtbkZvclJlc2l6ZS53aWR0aDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBoYW5kbGVDYW5EcmFnRHJvcChkcmFnOiBDZGtEcmFnLCBkcm9wOiBDZGtEcm9wTGlzdCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlRHJvcChldmVudDogQ2RrRHJhZ0Ryb3A8T2JqZWN0W10+KTogdm9pZCB7XHJcbiAgICB0cnkge1xyXG4gICAgICBjb25zdCBmcm9tOiBudW1iZXIgPSBldmVudC5wcmV2aW91c0luZGV4O1xyXG4gICAgICBjb25zdCB0bzogbnVtYmVyID0gZXZlbnQuY3VycmVudEluZGV4O1xyXG4gICAgICBpZiAoZnJvbSA9PT0gdG8pIHtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRoaXMuZW1pdERyYWdEcm9wKSB7XHJcbiAgICAgICAgdGhpcy5vbkRyb3AubmV4dCh7ZnJvbTogZnJvbSwgdG86IHRvfSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgbW92ZUl0ZW1JbkFycmF5KHRoaXMuZGF0YSwgZnJvbSwgdG8pO1xyXG4gICAgICB9XHJcbiAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgIGNvbnNvbGUuZXJyb3IoZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaXNTaW5nbGVDb2x1bW5Sb3cocm93OiBPYmplY3QpOiBib29sZWFuIHtcclxuICAgIHJldHVybiByb3cuaGFzT3duUHJvcGVydHkoJ3NpbmdsZUNvbHVtbkluZGV4Jyk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2luZ2xlQ29sdW1uSW5kZXgocm93OiBPYmplY3QpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIChyb3cgYXMgYW55KS5zaW5nbGVDb2x1bW5JbmRleDtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBwcmVwYXJlRGF0YVJvdyhyb3c6IGFueSwgaW5kZXg6IG51bWJlcik6IHZvaWQge1xyXG5cclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3NldENvbHVtbnMoY29sdW1uczogU2ltcGxlR3JpZENvbHVtbkRpcmVjdGl2ZVtdKTogdm9pZCB7XHJcbiAgICB0aGlzLmNvbHVtbnMucHVzaCguLi5jb2x1bW5zKTtcclxuICAgIHRoaXMuY29sdW1ucy5zb3J0KChhLCBiKSA9PiBhLm9yZGVyIDwgYi5vcmRlciA/IC0xIDogMSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9wcmVwYXJlRGF0YSgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLl9wcmVwYXJlZCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLmRpc2FibGVkUm93cy5sZW5ndGggPSAwO1xyXG5cclxuICAgIGlmICh0aGlzLmNvbHVtbnMgJiYgdGhpcy5jb2x1bW5zLmxlbmd0aCA+IDApIHtcclxuICAgICAgdGhpcy5oZWFkZXJDb2x1bW5zID0gdGhpcy5jb2x1bW5zLmZpbHRlcihjID0+ICFjLnNpbmdsZUNvbHVtbik7XHJcbiAgICAgIGxldCBzaW5nbGVDb2x1bW5JbmRleDogbnVtYmVyID0gLTE7XHJcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5jb2x1bW5zLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuY29sdW1uc1tpXS5zaW5nbGVDb2x1bW4pIHtcclxuICAgICAgICAgIHNpbmdsZUNvbHVtbkluZGV4ID0gaTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICAvLyBmaXJzdCBjaGVjayBpZiB0aGVyZSdzIHNpbmdsZSBjb2x1bW4gZGF0YVxyXG4gICAgICBpZiAoc2luZ2xlQ29sdW1uSW5kZXggPiAtMSAmJiB0aGlzLmRhdGEgJiYgdGhpcy5kYXRhLmxlbmd0aCA+IDApIHtcclxuICAgICAgICBjb25zdCBmaWVsZDogc3RyaW5nID0gdGhpcy5jb2x1bW5zW3NpbmdsZUNvbHVtbkluZGV4XS5maWVsZDtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuZGF0YS5sZW5ndGg7IGkrKykgeyAvLyB0aGVuIG1hcmsgcm93IGFzIHNpbmdsZSBjb2x1bW4gcm93XHJcbiAgICAgICAgICBpZiAodGhpcy5kYXRhW2ldW2ZpZWxkXSAhPT0gdW5kZWZpbmVkICYmIHRoaXMuZGF0YVtpXVtmaWVsZF0gIT09IG51bGwgJiYgdGhpcy5kYXRhW2ldW2ZpZWxkXSAhPT0gXCJcIikge1xyXG4gICAgICAgICAgICAvLyBiaXQgbmFzdHkgdG8gYWRkIHByb3AsIGJ1dCBjb29sIGZvciBub3dcclxuICAgICAgICAgICAgKHRoaXMuZGF0YVtpXSBhcyBhbnkpLnNpbmdsZUNvbHVtbkluZGV4ID0gc2luZ2xlQ29sdW1uSW5kZXg7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICB0aGlzLnByZXBhcmVEYXRhUm93KHRoaXMuZGF0YVtpXSwgaSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICB0aGlzLl9wcmVwYXJlZCA9IHRydWU7XHJcbiAgICB9XHJcbiAgICB0aGlzLl9yZXNpemVDb2x1bW5zVG9GaXQoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3Jlc2l6ZUNvbHVtbnNUb0ZpdCgpOiB2b2lkIHtcclxuICAgIGNvbnN0IGNhbGN1bGF0ZUNvbHVtbnM6IFNpbXBsZUdyaWRDb2x1bW5EaXJlY3RpdmVbXSA9IHRoaXMuY29sdW1ucy5maWx0ZXIoYyA9PiAhYy5hdXRvRml0ICYmICFjLndpZHRoKTtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY2FsY3VsYXRlQ29sdW1ucy5sZW5ndGg7IGkrKykge1xyXG4gICAgICBjYWxjdWxhdGVDb2x1bW5zW2ldLndpZHRoID0gYCR7MTAwIC8gY2FsY3VsYXRlQ29sdW1ucy5sZW5ndGh9JWA7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9zZXRXaWR0aE9mQWxsQ29sdW1ucygpOiB2b2lkIHtcclxuICAgIHRoaXMuY29sdW1ucy5mb3JFYWNoKChjb2x1bW46IFNpbXBsZUdyaWRDb2x1bW5EaXJlY3RpdmUpID0+IHtcclxuICAgICAgaWYgKChjb2x1bW4ud2lkdGggPT09IHVuZGVmaW5lZCB8fCBjb2x1bW4ud2lkdGggPT09IG51bGwpICYmIGNvbHVtbi5lbGVtZW50UmVmICYmIGNvbHVtbi5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpIHtcclxuICAgICAgICBjb25zdCByZWN0OiBDbGllbnRSZWN0ID0gY29sdW1uLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcclxuICAgICAgICBjb2x1bW4ud2lkdGggPSByZWN0LndpZHRoO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG59XHJcbiJdfQ==
1
+ import { ContentChildren, Directive, EventEmitter, HostListener, Input, Output } from "@angular/core";
2
+ import { SimpleGridColumnDirective } from "./simple-grid-column.directive";
3
+ import { moveItemInArray } from "@angular/cdk/drag-drop";
4
+ import { Subject } from "rxjs";
5
+ export class BaseSimpleGridComponent {
6
+ constructor() {
7
+ this.MIN_COLUMN_WIDTH = 50;
8
+ this.dataChanged = new Subject();
9
+ this.dragDropEnabled = false;
10
+ this.resizable = false;
11
+ this.inlineEdit = false;
12
+ this.showEdit = false;
13
+ this.showToolbar = false;
14
+ this.autoAddRow = false;
15
+ /**
16
+ * Should component emit drag and drop actions instead of handle
17
+ * (update collection) by itself
18
+ */
19
+ this.emitDragDrop = false;
20
+ this.onDrop = new EventEmitter();
21
+ this.selectRow = new EventEmitter();
22
+ this.dblClickRow = new EventEmitter();
23
+ this.saveRow = new EventEmitter();
24
+ this.deleteRow = new EventEmitter();
25
+ this.addRow = new EventEmitter();
26
+ this.rowVisible = new EventEmitter();
27
+ this.columns = [];
28
+ this.headerColumns = [];
29
+ this.headerColumnsCopy = [];
30
+ this._data = [];
31
+ this.disabledRows = [];
32
+ this._prepared = false;
33
+ }
34
+ set content(columnComponents) {
35
+ this._setColumns(columnComponents.toArray());
36
+ this._prepareData();
37
+ }
38
+ set data(value) {
39
+ this._data = value;
40
+ this._prepareData();
41
+ this.dataChanged.next();
42
+ }
43
+ get data() {
44
+ return this._data;
45
+ }
46
+ set extraColumns(value) {
47
+ this._setColumns(value);
48
+ }
49
+ handleMouseMove(event) {
50
+ if (this.resizable && event.buttons === 1 && this._columnForResize) {
51
+ // this._columnForResize.width = this._columnForResize.originalWidth - (this._startMousePositionX - event.clientX);
52
+ }
53
+ }
54
+ handleMouseUp(event) {
55
+ this._startMousePositionX = undefined;
56
+ this._columnForResize = undefined;
57
+ }
58
+ handleSizerMouseDown(event, column) {
59
+ this._setWidthOfAllColumns();
60
+ this._startMousePositionX = event.clientX;
61
+ this._columnForResize = column;
62
+ this._columnForResize.originalWidth = this._columnForResize.width;
63
+ }
64
+ handleCanDragDrop(drag, drop) {
65
+ return true;
66
+ }
67
+ handleDrop(event) {
68
+ try {
69
+ const from = event.previousIndex;
70
+ const to = event.currentIndex;
71
+ if (from === to) {
72
+ return;
73
+ }
74
+ if (this.emitDragDrop) {
75
+ this.onDrop.next({ from: from, to: to });
76
+ }
77
+ else {
78
+ moveItemInArray(this.data, from, to);
79
+ }
80
+ }
81
+ catch (e) {
82
+ console.error(e);
83
+ }
84
+ }
85
+ isSingleColumnRow(row) {
86
+ return row.hasOwnProperty('singleColumnIndex');
87
+ }
88
+ singleColumnIndex(row) {
89
+ return row.singleColumnIndex;
90
+ }
91
+ prepareDataRow(row, index) {
92
+ }
93
+ _setColumns(columns) {
94
+ this.columns.push(...columns);
95
+ this.columns.sort((a, b) => a.order < b.order ? -1 : 1);
96
+ }
97
+ _prepareData() {
98
+ if (this._prepared) {
99
+ return;
100
+ }
101
+ this.disabledRows.length = 0;
102
+ if (this.columns && this.columns.length > 0) {
103
+ this.headerColumns = this.columns.filter(c => !c.singleColumn);
104
+ this.headerColumnsCopy = this.headerColumns;
105
+ let singleColumnIndex = -1;
106
+ for (let i = 0; i < this.columns.length; i++) {
107
+ if (this.columns[i].singleColumn) {
108
+ singleColumnIndex = i;
109
+ break;
110
+ }
111
+ }
112
+ // first check if there's single column data
113
+ if (singleColumnIndex > -1 && this.data && this.data.length > 0) {
114
+ const field = this.columns[singleColumnIndex].field;
115
+ for (let i = 0; i < this.data.length; i++) { // then mark row as single column row
116
+ if (this.data[i][field] !== undefined && this.data[i][field] !== null && this.data[i][field] !== "") {
117
+ // bit nasty to add prop, but cool for now
118
+ this.data[i].singleColumnIndex = singleColumnIndex;
119
+ }
120
+ this.prepareDataRow(this.data[i], i);
121
+ }
122
+ }
123
+ this._prepared = true;
124
+ }
125
+ this._resizeColumnsToFit();
126
+ }
127
+ _resizeColumnsToFit() {
128
+ const calculateColumns = this.columns.filter(c => !c.autoFit && !c.width);
129
+ for (let i = 0; i < calculateColumns.length; i++) {
130
+ calculateColumns[i].width = `${100 / calculateColumns.length}%`;
131
+ }
132
+ }
133
+ _setWidthOfAllColumns() {
134
+ this.columns.forEach((column) => {
135
+ if ((column.width === undefined || column.width === null) && column.elementRef && column.elementRef.nativeElement) {
136
+ const rect = column.elementRef.nativeElement.getBoundingClientRect();
137
+ column.width = rect.width;
138
+ }
139
+ });
140
+ }
141
+ }
142
+ BaseSimpleGridComponent.decorators = [
143
+ { type: Directive }
144
+ ];
145
+ BaseSimpleGridComponent.propDecorators = {
146
+ content: [{ type: ContentChildren, args: [SimpleGridColumnDirective,] }],
147
+ data: [{ type: Input }],
148
+ dragDropEnabled: [{ type: Input }],
149
+ resizable: [{ type: Input }],
150
+ inlineEdit: [{ type: Input }],
151
+ showEdit: [{ type: Input }],
152
+ showToolbar: [{ type: Input }],
153
+ autoAddRow: [{ type: Input }],
154
+ emitDragDrop: [{ type: Input }],
155
+ extraColumns: [{ type: Input }],
156
+ onDrop: [{ type: Output }],
157
+ selectRow: [{ type: Output }],
158
+ dblClickRow: [{ type: Output }],
159
+ saveRow: [{ type: Output }],
160
+ deleteRow: [{ type: Output }],
161
+ addRow: [{ type: Output }],
162
+ rowVisible: [{ type: Output }],
163
+ handleMouseMove: [{ type: HostListener, args: ['document:mousemove', ['$event'],] }],
164
+ handleMouseUp: [{ type: HostListener, args: ['document:mouseup', ['$event'],] }]
165
+ };
166
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1zaW1wbGUtZ3JpZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvc2ltcGxlLWdyaWQvYmFzZS1zaW1wbGUtZ3JpZC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLGVBQWUsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUEwQixNQUFNLGVBQWUsQ0FBQztBQUM3SCxPQUFPLEVBQUMseUJBQXlCLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN6RSxPQUFPLEVBQW9DLGVBQWUsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQzFGLE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFHN0IsTUFBTSxPQUFnQix1QkFBdUI7SUFEN0M7UUFFa0IscUJBQWdCLEdBQVcsRUFBRSxDQUFDO1FBQzlCLGdCQUFXLEdBQWtCLElBQUksT0FBTyxFQUFRLENBQUM7UUFtQjFELG9CQUFlLEdBQVksS0FBSyxDQUFDO1FBR2pDLGNBQVMsR0FBWSxLQUFLLENBQUM7UUFHM0IsZUFBVSxHQUFZLEtBQUssQ0FBQztRQUc1QixhQUFRLEdBQVksS0FBSyxDQUFDO1FBRzFCLGdCQUFXLEdBQVksS0FBSyxDQUFDO1FBRzdCLGVBQVUsR0FBWSxLQUFLLENBQUM7UUFFbkM7OztXQUdHO1FBRUksaUJBQVksR0FBWSxLQUFLLENBQUM7UUFROUIsV0FBTSxHQUE2QyxJQUFJLFlBQVksRUFBOEIsQ0FBQztRQUdsRyxjQUFTLEdBQXFCLElBQUksWUFBWSxFQUFNLENBQUM7UUFHckQsZ0JBQVcsR0FBcUIsSUFBSSxZQUFZLEVBQU0sQ0FBQztRQUd2RCxZQUFPLEdBQXFCLElBQUksWUFBWSxFQUFNLENBQUM7UUFHbkQsY0FBUyxHQUFxQixJQUFJLFlBQVks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QUFFLEVBQUU7WUFDaEQsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLEdBQUcsR0FBRyxHQUFHLGdCQUFnQixDQUFDLE1BQU0sR0FBRyxDQUFDO1NBQ2pFO0lBQ0gsQ0FBQztJQUVPLHFCQUFxQjtRQUMzQixJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQWlDLEVBQUUsRUFBRTtZQUN6RCxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssS0FBSyxTQUFTLElBQUksTUFBTSxDQUFDLEtBQUssS0FBSyxJQUFJLENBQUMsSUFBSSxNQUFNLENBQUMsVUFBVSxJQUFJLE1BQU0sQ0FBQyxVQUFVLENBQUMsYUFBYSxFQUFFO2dCQUNqSCxNQUFNLElBQUksR0FBZSxNQUFNLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO2dCQUNqRixNQUFNLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7YUFDM0I7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7OztZQTVMRixTQUFTOzs7c0JBS1AsZUFBZSxTQUFDLHlCQUF5QjttQkFLekMsS0FBSzs4QkFXTCxLQUFLO3dCQUdMLEtBQUs7eUJBR0wsS0FBSzt1QkFHTCxLQUFLOzBCQUdMLEtBQUs7eUJBR0wsS0FBSzsyQkFPTCxLQUFLOzJCQUdMLEtBQUs7cUJBS0wsTUFBTTt3QkFHTixNQUFNOzBCQUdOLE1BQU07c0JBR04sTUFBTTt3QkFHTixNQUFNO3FCQUdOLE1BQU07eUJBR04sTUFBTTs4QkFHTixZQUFZLFNBQUMsb0JBQW9CLEVBQUUsQ0FBQyxRQUFRLENBQUM7NEJBTzdDLFlBQVksU0FBQyxrQkFBa0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29udGVudENoaWxkcmVuLCBEaXJlY3RpdmUsIEV2ZW50RW1pdHRlciwgSG9zdExpc3RlbmVyLCBJbnB1dCwgT3V0cHV0LCBRdWVyeUxpc3QsIFZpZXdDaGlsZHJlbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHtTaW1wbGVHcmlkQ29sdW1uRGlyZWN0aXZlfSBmcm9tIFwiLi9zaW1wbGUtZ3JpZC1jb2x1bW4uZGlyZWN0aXZlXCI7XHJcbmltcG9ydCB7Q2RrRHJhZywgQ2RrRHJhZ0Ryb3AsIENka0Ryb3BMaXN0LCBtb3ZlSXRlbUluQXJyYXl9IGZyb20gXCJAYW5ndWxhci9jZGsvZHJhZy1kcm9wXCI7XHJcbmltcG9ydCB7U3ViamVjdH0gZnJvbSBcInJ4anNcIjtcclxuXHJcbkBEaXJlY3RpdmUoKVxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQmFzZVNpbXBsZUdyaWRDb21wb25lbnQge1xyXG4gIHB1YmxpYyByZWFkb25seSBNSU5fQ09MVU1OX1dJRFRIOiBudW1iZXIgPSA1MDtcclxuICBwdWJsaWMgcmVhZG9ubHkgZGF0YUNoYW5nZWQ6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG5cclxuICBAQ29udGVudENoaWxkcmVuKFNpbXBsZUdyaWRDb2x1bW5EaXJlY3RpdmUpIHNldCBjb250ZW50KGNvbHVtbkNvbXBvbmVudHM6IFF1ZXJ5TGlzdDxTaW1wbGVHcmlkQ29sdW1uRGlyZWN0aXZlPikge1xyXG4gICAgdGhpcy5fc2V0Q29sdW1ucyhjb2x1bW5Db21wb25lbnRzLnRvQXJyYXkoKSk7XHJcbiAgICB0aGlzLl9wcmVwYXJlRGF0YSgpO1xyXG4gIH1cclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2V0IGRhdGEodmFsdWU6IE9iamVjdFtdKSB7XHJcbiAgICB0aGlzLl9kYXRhID0gdmFsdWU7XHJcbiAgICB0aGlzLl9wcmVwYXJlRGF0YSgpO1xyXG4gICAgdGhpcy5kYXRhQ2hhbmdlZC5uZXh0KCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGRhdGEoKTogT2JqZWN0W10ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2RhdGE7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBkcmFnRHJvcEVuYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgcmVzaXphYmxlOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGlubGluZUVkaXQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2hvd0VkaXQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2hvd1Rvb2xiYXI6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgYXV0b0FkZFJvdzogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAvKipcclxuICAgKiBTaG91bGQgY29tcG9uZW50IGVtaXQgZHJhZyBhbmQgZHJvcCBhY3Rpb25zIGluc3RlYWQgb2YgaGFuZGxlXHJcbiAgICogKHVwZGF0ZSBjb2xsZWN0aW9uKSBieSBpdHNlbGZcclxuICAgKi9cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBlbWl0RHJhZ0Ryb3A6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2V0IGV4dHJhQ29sdW1ucyh2YWx1ZTogU2ltcGxlR3JpZENvbHVtbkRpcmVjdGl2ZVtdKSB7XHJcbiAgICB0aGlzLl9zZXRDb2x1bW5zKHZhbHVlKTtcclxuICB9XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyBvbkRyb3A6IEV2ZW50RW1pdHRlcjx7ZnJvbTogbnVtYmVyLCB0bzogbnVtYmVyfT4gPSBuZXcgRXZlbnRFbWl0dGVyPHtmcm9tOiBudW1iZXI7IHRvOiBudW1iZXJ9PigpO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBwdWJsaWMgc2VsZWN0Um93OiBFdmVudEVtaXR0ZXI8e30+ID0gbmV3IEV2ZW50RW1pdHRlcjx7fT4oKTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgcHVibGljIGRibENsaWNrUm93OiBFdmVudEVtaXR0ZXI8e30+ID0gbmV3IEV2ZW50RW1pdHRlcjx7fT4oKTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgcHVibGljIHNhdmVSb3c6IEV2ZW50RW1pdHRlcjx7fT4gPSBuZXcgRXZlbnRFbWl0dGVyPHt9PigpO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBwdWJsaWMgZGVsZXRlUm93OiBFdmVudEVtaXR0ZXI8e30+ID0gbmV3IEV2ZW50RW1pdHRlcjx7fT4oKTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgcHVibGljIGFkZFJvdzogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBwdWJsaWMgcm93VmlzaWJsZTogRXZlbnRFbWl0dGVyPHt9PiA9IG5ldyBFdmVudEVtaXR0ZXI8e30+KCk7XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50Om1vdXNlbW92ZScsIFsnJGV2ZW50J10pXHJcbiAgcHVibGljIGhhbmRsZU1vdXNlTW92ZShldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMucmVzaXphYmxlICYmIGV2ZW50LmJ1dHRvbnMgPT09IDEgJiYgdGhpcy5fY29sdW1uRm9yUmVzaXplKSB7XHJcbiAgICAgIC8vIHRoaXMuX2NvbHVtbkZvclJlc2l6ZS53aWR0aCA9IHRoaXMuX2NvbHVtbkZvclJlc2l6ZS5vcmlnaW5hbFdpZHRoIC0gKHRoaXMuX3N0YXJ0TW91c2VQb3NpdGlvblggLSBldmVudC5jbGllbnRYKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50Om1vdXNldXAnLCBbJyRldmVudCddKVxyXG4gIHB1YmxpYyBoYW5kbGVNb3VzZVVwKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XHJcbiAgICB0aGlzLl9zdGFydE1vdXNlUG9zaXRpb25YID0gdW5kZWZpbmVkO1xyXG4gICAgdGhpcy5fY29sdW1uRm9yUmVzaXplID0gdW5kZWZpbmVkO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGNvbHVtbnM6IFNpbXBsZUdyaWRDb2x1bW5EaXJlY3RpdmVbXSA9IFtdO1xyXG4gIHB1YmxpYyBoZWFkZXJDb2x1bW5zOiBTaW1wbGVHcmlkQ29sdW1uRGlyZWN0aXZlW10gPSBbXTtcclxuICBwdWJsaWMgaGVhZGVyQ29sdW1uc0NvcHk6IFNpbXBsZUdyaWRDb2x1bW5EaXJlY3RpdmVbXSA9IFtdO1xyXG5cclxuICBwcm90ZWN0ZWQgX2RhdGE6IE9iamVjdFtdID0gW107XHJcbiAgcHJvdGVjdGVkIGRpc2FibGVkUm93czogbnVtYmVyW10gPSBbXTtcclxuXHJcbiAgcHJpdmF0ZSBfY29sdW1uRm9yUmVzaXplOiBTaW1wbGVHcmlkQ29sdW1uRGlyZWN0aXZlO1xyXG4gIHByaXZhdGUgX3ByZXBhcmVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHJpdmF0ZSBfc3RhcnRNb3VzZVBvc2l0aW9uWDogbnVtYmVyO1xyXG5cclxuICBwdWJsaWMgaGFuZGxlU2l6ZXJNb3VzZURvd24oZXZlbnQ6IE1vdXNlRXZlbnQsIGNvbHVtbjogU2ltcGxlR3JpZENvbHVtbkRpcmVjdGl2ZSk6IHZvaWQge1xyXG4gICAgdGhpcy5fc2V0V2lkdGhPZkFsbENvbHVtbnMoKTtcclxuICAgIHRoaXMuX3N0YXJ0TW91c2VQb3NpdGlvblggPSBldmVudC5jbGllbnRYO1xyXG4gICAgdGhpcy5fY29sdW1uRm9yUmVzaXplID0gY29sdW1uO1xyXG4gICAgdGhpcy5fY29sdW1uRm9yUmVzaXplLm9yaWdpbmFsV2lkdGggPSB0aGlzLl9jb2x1bW5Gb3JSZXNpemUud2lkdGg7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlQ2FuRHJhZ0Ryb3AoZHJhZzogQ2RrRHJhZywgZHJvcDogQ2RrRHJvcExpc3QpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZURyb3AoZXZlbnQ6IENka0RyYWdEcm9wPE9iamVjdFtdPik6IHZvaWQge1xyXG4gICAgdHJ5IHtcclxuICAgICAgY29uc3QgZnJvbTogbnVtYmVyID0gZXZlbnQucHJldmlvdXNJbmRleDtcclxuICAgICAgY29uc3QgdG86IG51bWJlciA9IGV2ZW50LmN1cnJlbnRJbmRleDtcclxuICAgICAgaWYgKGZyb20gPT09IHRvKSB7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh0aGlzLmVtaXREcmFnRHJvcCkge1xyXG4gICAgICAgIHRoaXMub25Ecm9wLm5leHQoe2Zyb206IGZyb20sIHRvOiB0b30pO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIG1vdmVJdGVtSW5BcnJheSh0aGlzLmRhdGEsIGZyb20sIHRvKTtcclxuICAgICAgfVxyXG4gICAgfSBjYXRjaCAoZSkge1xyXG4gICAgICBjb25zb2xlLmVycm9yKGUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGlzU2luZ2xlQ29sdW1uUm93KHJvdzogT2JqZWN0KTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gcm93Lmhhc093blByb3BlcnR5KCdzaW5nbGVDb2x1bW5JbmRleCcpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNpbmdsZUNvbHVtbkluZGV4KHJvdzogT2JqZWN0KTogbnVtYmVyIHtcclxuICAgIHJldHVybiAocm93IGFzIGFueSkuc2luZ2xlQ29sdW1uSW5kZXg7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgcHJlcGFyZURhdGFSb3cocm93OiBhbnksIGluZGV4OiBudW1iZXIpOiB2b2lkIHtcclxuXHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9zZXRDb2x1bW5zKGNvbHVtbnM6IFNpbXBsZUdyaWRDb2x1bW5EaXJlY3RpdmVbXSk6IHZvaWQge1xyXG4gICAgdGhpcy5jb2x1bW5zLnB1c2goLi4uY29sdW1ucyk7XHJcbiAgICB0aGlzLmNvbHVtbnMuc29ydCgoYSwgYikgPT4gYS5vcmRlciA8IGIub3JkZXIgPyAtMSA6IDEpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfcHJlcGFyZURhdGEoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5fcHJlcGFyZWQpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5kaXNhYmxlZFJvd3MubGVuZ3RoID0gMDtcclxuXHJcbiAgICBpZiAodGhpcy5jb2x1bW5zICYmIHRoaXMuY29sdW1ucy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHRoaXMuaGVhZGVyQ29sdW1ucyA9IHRoaXMuY29sdW1ucy5maWx0ZXIoYyA9PiAhYy5zaW5nbGVDb2x1bW4pO1xyXG4gICAgICB0aGlzLmhlYWRlckNvbHVtbnNDb3B5ID0gdGhpcy5oZWFkZXJDb2x1bW5zO1xyXG4gICAgICBsZXQgc2luZ2xlQ29sdW1uSW5kZXg6IG51bWJlciA9IC0xO1xyXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuY29sdW1ucy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIGlmICh0aGlzLmNvbHVtbnNbaV0uc2luZ2xlQ29sdW1uKSB7XHJcbiAgICAgICAgICBzaW5nbGVDb2x1bW5JbmRleCA9IGk7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgLy8gZmlyc3QgY2hlY2sgaWYgdGhlcmUncyBzaW5nbGUgY29sdW1uIGRhdGFcclxuICAgICAgaWYgKHNpbmdsZUNvbHVtbkluZGV4ID4gLTEgJiYgdGhpcy5kYXRhICYmIHRoaXMuZGF0YS5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgY29uc3QgZmllbGQ6IHN0cmluZyA9IHRoaXMuY29sdW1uc1tzaW5nbGVDb2x1bW5JbmRleF0uZmllbGQ7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLmRhdGEubGVuZ3RoOyBpKyspIHsgLy8gdGhlbiBtYXJrIHJvdyBhcyBzaW5nbGUgY29sdW1uIHJvd1xyXG4gICAgICAgICAgaWYgKHRoaXMuZGF0YVtpXVtmaWVsZF0gIT09IHVuZGVmaW5lZCAmJiB0aGlzLmRhdGFbaV1bZmllbGRdICE9PSBudWxsICYmIHRoaXMuZGF0YVtpXVtmaWVsZF0gIT09IFwiXCIpIHtcclxuICAgICAgICAgICAgLy8gYml0IG5hc3R5IHRvIGFkZCBwcm9wLCBidXQgY29vbCBmb3Igbm93XHJcbiAgICAgICAgICAgICh0aGlzLmRhdGFbaV0gYXMgYW55KS5zaW5nbGVDb2x1bW5JbmRleCA9IHNpbmdsZUNvbHVtbkluZGV4O1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgdGhpcy5wcmVwYXJlRGF0YVJvdyh0aGlzLmRhdGFbaV0sIGkpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgdGhpcy5fcHJlcGFyZWQgPSB0cnVlO1xyXG4gICAgfVxyXG4gICAgdGhpcy5fcmVzaXplQ29sdW1uc1RvRml0KCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9yZXNpemVDb2x1bW5zVG9GaXQoKTogdm9pZCB7XHJcbiAgICBjb25zdCBjYWxjdWxhdGVDb2x1bW5zOiBTaW1wbGVHcmlkQ29sdW1uRGlyZWN0aXZlW10gPSB0aGlzLmNvbHVtbnMuZmlsdGVyKGMgPT4gIWMuYXV0b0ZpdCAmJiAhYy53aWR0aCk7XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNhbGN1bGF0ZUNvbHVtbnMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgY2FsY3VsYXRlQ29sdW1uc1tpXS53aWR0aCA9IGAkezEwMCAvIGNhbGN1bGF0ZUNvbHVtbnMubGVuZ3RofSVgO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfc2V0V2lkdGhPZkFsbENvbHVtbnMoKTogdm9pZCB7XHJcbiAgICB0aGlzLmNvbHVtbnMuZm9yRWFjaCgoY29sdW1uOiBTaW1wbGVHcmlkQ29sdW1uRGlyZWN0aXZlKSA9PiB7XHJcbiAgICAgIGlmICgoY29sdW1uLndpZHRoID09PSB1bmRlZmluZWQgfHwgY29sdW1uLndpZHRoID09PSBudWxsKSAmJiBjb2x1bW4uZWxlbWVudFJlZiAmJiBjb2x1bW4uZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KSB7XHJcbiAgICAgICAgY29uc3QgcmVjdDogQ2xpZW50UmVjdCA9IGNvbHVtbi5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XHJcbiAgICAgICAgY29sdW1uLndpZHRoID0gcmVjdC53aWR0aDtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxufVxyXG4iXX0=