@colijnit/corecomponents_v12 12.2.25 → 12.2.26

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 (1277) hide show
  1. package/README.md +9 -12
  2. package/bundles/colijnit-corecomponents_v12.umd.js +14046 -0
  3. package/bundles/colijnit-corecomponents_v12.umd.js.map +1 -0
  4. package/colijnit-corecomponents_v12.d.ts +43 -0
  5. package/colijnit-corecomponents_v12.metadata.json +1 -0
  6. package/esm2015/colijnit-corecomponents_v12.js +44 -0
  7. package/esm2015/lib/components/article-tile/article-tile.component.js +80 -0
  8. package/esm2015/lib/components/article-tile/article-tile.module.js +35 -0
  9. package/esm2015/lib/components/base/base-input.component.js +834 -0
  10. package/esm2015/lib/components/base/base.module.js +22 -0
  11. package/esm2015/lib/components/base/commit-buttons/commit-buttons.component.js +103 -0
  12. package/esm2015/lib/components/base/commit-buttons/commit-buttons.module.js +21 -0
  13. package/esm2015/lib/components/base/dialog-base.component.js +6 -0
  14. package/esm2015/lib/components/base-input-date-picker/base-input-date-picker.directive.js +25 -0
  15. package/esm2015/lib/components/button/button.component.js +79 -0
  16. package/esm2015/lib/components/button/button.module.js +19 -0
  17. package/esm2015/lib/components/calendar/calendar-template.component.js +342 -0
  18. package/esm2015/lib/components/calendar/calendar.component.js +45 -0
  19. package/esm2015/lib/components/calendar/calendar.module.js +28 -0
  20. package/esm2015/lib/components/card/card.component.js +72 -0
  21. package/esm2015/lib/components/card/card.module.js +35 -0
  22. package/esm2015/lib/components/carousel/carousel.component.js +130 -0
  23. package/esm2015/lib/components/carousel/carousel.module.js +32 -0
  24. package/esm2015/lib/components/carousel-3d/carousel-3d.component.js +315 -0
  25. package/esm2015/lib/components/carousel-3d/carousel-3d.module.js +19 -0
  26. package/esm2015/lib/components/carousel-3d/carouselItem.js +54 -0
  27. package/esm2015/lib/components/checkmark-overlay/checkmark-overlay.component.js +87 -0
  28. package/esm2015/lib/components/checkmark-overlay/checkmark-overlay.module.js +19 -0
  29. package/esm2015/lib/components/co-dialog/co-dialog.component.js +113 -0
  30. package/esm2015/lib/components/co-dialog/co-dialog.module.js +19 -0
  31. package/esm2015/lib/components/co-dialog-wizard/co-dialog-wizard.component.js +51 -0
  32. package/esm2015/lib/components/co-dialog-wizard/co-dialog-wizard.module.js +17 -0
  33. package/esm2015/lib/components/collapsible/collapsible.component.js +92 -0
  34. package/esm2015/lib/components/collapsible/collapsible.module.js +19 -0
  35. package/esm2015/lib/components/color-picker/color-picker.component.js +41 -0
  36. package/esm2015/lib/components/color-picker/color-picker.module.js +21 -0
  37. package/esm2015/lib/components/core-dialog/confirmation-dialog/confirmation-dialog.component.js +79 -0
  38. package/esm2015/lib/components/core-dialog/core-dialog.module.js +39 -0
  39. package/esm2015/lib/components/core-dialog/core-dialog.service.js +67 -0
  40. package/esm2015/lib/components/core-dialog/core-dynamic-component.service.js +93 -0
  41. package/esm2015/lib/components/double-calendar/double-calendar.component.js +80 -0
  42. package/esm2015/lib/components/double-calendar/double-calendar.module.js +25 -0
  43. package/esm2015/lib/components/filter-item/filter-item-viewmodel.js +13 -0
  44. package/esm2015/lib/components/filter-item/filter-item.component.js +646 -0
  45. package/esm2015/lib/components/filter-item/filter-item.module.js +43 -0
  46. package/esm2015/lib/components/filter-item/filter-viewmodel.js +11 -0
  47. package/esm2015/lib/components/form/form.component.js +184 -0
  48. package/esm2015/lib/components/form/form.module.js +23 -0
  49. package/esm2015/lib/components/grid-toolbar/grid-toolbar.component.js +57 -0
  50. package/esm2015/lib/components/grid-toolbar/grid-toolbar.module.js +23 -0
  51. package/esm2015/lib/components/grid-toolbar-button/grid-toolbar-button.component.js +28 -0
  52. package/esm2015/lib/components/grid-toolbar-button/grid-toolbar-button.module.js +19 -0
  53. package/esm2015/lib/components/icon/icon-cache.service.js +52 -0
  54. package/esm2015/lib/components/icon/icon.component.js +48 -0
  55. package/esm2015/lib/components/icon/icon.module.js +25 -0
  56. package/esm2015/lib/components/icon-collapse-handle/icon-collapse-handle.component.js +64 -0
  57. package/esm2015/lib/components/icon-collapse-handle/icon-collapse-handle.module.js +23 -0
  58. package/esm2015/lib/components/image/image.component.js +42 -0
  59. package/esm2015/lib/components/image/image.module.js +14 -0
  60. package/esm2015/lib/components/input-checkbox/input-checkbox.component.js +79 -0
  61. package/esm2015/lib/components/input-checkbox/input-checkbox.module.js +19 -0
  62. package/esm2015/lib/components/input-date-picker/input-date-picker.component.js +91 -0
  63. package/esm2015/lib/components/input-date-picker/input-date-picker.module.js +26 -0
  64. package/esm2015/lib/components/input-date-range-picker/input-date-range-picker.component.js +134 -0
  65. package/esm2015/lib/components/input-date-range-picker/input-date-range-picker.module.js +27 -0
  66. package/esm2015/lib/components/input-number-picker/input-number-picker.component.js +314 -0
  67. package/esm2015/lib/components/input-number-picker/input-number-picker.module.js +23 -0
  68. package/esm2015/lib/components/input-radio-button/input-radio-button.component.js +84 -0
  69. package/esm2015/lib/components/input-radio-button/input-radio-button.module.js +19 -0
  70. package/esm2015/lib/components/input-scanner/bar-code-scanner.js +23 -0
  71. package/esm2015/lib/components/input-scanner/input-scanner.component.js +72 -0
  72. package/esm2015/lib/components/input-scanner/input-scanner.module.js +21 -0
  73. package/esm2015/lib/components/input-scanner/scanner.service.js +28 -0
  74. package/esm2015/lib/components/input-search/input-search.component.js +79 -0
  75. package/esm2015/lib/components/input-search/input-search.module.js +21 -0
  76. package/esm2015/lib/components/input-text/input-text.component.js +239 -0
  77. package/esm2015/lib/components/input-text/input-text.module.js +33 -0
  78. package/esm2015/lib/components/input-textarea/input-textarea.component.js +78 -0
  79. package/esm2015/lib/components/input-textarea/input-textarea.module.js +27 -0
  80. package/esm2015/lib/components/level-indicator/level-indicator-level.enum.js +7 -0
  81. package/esm2015/lib/components/level-indicator/level-indicator.component.js +36 -0
  82. package/esm2015/lib/components/level-indicator/level-indicator.module.js +15 -0
  83. package/esm2015/lib/components/list-of-values/list-of-values-multiselect-popup.component.js +112 -0
  84. package/esm2015/lib/components/list-of-values/list-of-values-popup.component.js +242 -0
  85. package/esm2015/lib/components/list-of-values/list-of-values.component.js +233 -0
  86. package/esm2015/lib/components/list-of-values/list-of-values.module.js +38 -0
  87. package/esm2015/lib/components/loader/loader.component.js +84 -0
  88. package/esm2015/lib/components/loader/loader.module.js +19 -0
  89. package/esm2015/lib/components/pagination/paginate.pipe.js +99 -0
  90. package/esm2015/lib/components/pagination/pagination-instance.js +2 -0
  91. package/esm2015/lib/components/pagination/pagination.component.js +126 -0
  92. package/esm2015/lib/components/pagination/pagination.module.js +28 -0
  93. package/esm2015/lib/components/pagination/pagination.service.js +88 -0
  94. package/esm2015/lib/components/pagination-bar/pagination-bar.component.js +151 -0
  95. package/esm2015/lib/components/pagination-bar/pagination-bar.module.js +19 -0
  96. package/esm2015/lib/components/popup/const/popup-window-token.js +3 -0
  97. package/esm2015/lib/components/popup/interface/popup-button.js +8 -0
  98. package/esm2015/lib/components/popup/interface/popup-close-event.js +2 -0
  99. package/esm2015/lib/components/popup/interface/popup-settings.js +42 -0
  100. package/esm2015/lib/components/popup/interface/popup.js +2 -0
  101. package/esm2015/lib/components/popup/model/popup-button-globals.js +11 -0
  102. package/esm2015/lib/components/popup/model/popup-window.js +38 -0
  103. package/esm2015/lib/components/popup/popup-buttons.component.js +53 -0
  104. package/esm2015/lib/components/popup/popup-message-display.component.js +47 -0
  105. package/esm2015/lib/components/popup/popup-window-shell.component.js +159 -0
  106. package/esm2015/lib/components/popup/popup.module.js +49 -0
  107. package/esm2015/lib/components/popup/service/popup-shower.service.js +90 -0
  108. package/esm2015/lib/components/popup/service/prompt.service.js +127 -0
  109. package/esm2015/lib/components/popup/text-input-popup.component.js +36 -0
  110. package/esm2015/lib/components/responsive-text/responsive-text.component.js +24 -0
  111. package/esm2015/lib/components/responsive-text/responsive-text.module.js +19 -0
  112. package/esm2015/lib/components/simple-grid/base-simple-grid.component.js +164 -0
  113. package/esm2015/lib/components/simple-grid/simple-grid-cell.component.js +172 -0
  114. package/esm2015/lib/components/simple-grid/simple-grid-column.directive.js +111 -0
  115. package/esm2015/lib/components/simple-grid/simple-grid.component.js +465 -0
  116. package/esm2015/lib/components/simple-grid/simple-grid.module.js +41 -0
  117. package/esm2015/lib/components/tile/tile.component.js +73 -0
  118. package/esm2015/lib/components/tile/tile.module.js +23 -0
  119. package/esm2015/lib/components/tile-select/tile-select.component.js +36 -0
  120. package/esm2015/lib/components/tile-select/tile-select.module.js +21 -0
  121. package/esm2015/lib/components/tooltip/tooltip.component.js +77 -0
  122. package/esm2015/lib/components/tooltip/tooltip.module.js +19 -0
  123. package/esm2015/lib/components/validation-error/validation-error.component.js +38 -0
  124. package/esm2015/lib/components/validation-error/validation-error.module.js +25 -0
  125. package/esm2015/lib/components/view-mode-buttons/content-view-mode.enum.js +11 -0
  126. package/esm2015/lib/components/view-mode-buttons/view-mode-buttons.component.js +61 -0
  127. package/esm2015/lib/components/view-mode-buttons/view-mode-buttons.module.js +21 -0
  128. package/esm2015/lib/core/constant/default-upper-bound-for-range-components.js +4 -0
  129. package/esm2015/lib/core/constant/java-max-int.js +2 -0
  130. package/esm2015/lib/core/constant/number-inputs-key-down-white-list.js +45 -0
  131. package/esm2015/lib/core/decorator/input-boolean.decorator.js +34 -0
  132. package/esm2015/lib/core/enum/co-direction.js +9 -0
  133. package/esm2015/lib/core/enum/co-document-image-display-kind.enum.js +7 -0
  134. package/esm2015/lib/core/enum/co-document-type.enum.js +11 -0
  135. package/esm2015/lib/core/enum/co-orientation.js +17 -0
  136. package/esm2015/lib/core/enum/core-components-icon.enum.js +300 -0
  137. package/esm2015/lib/core/enum/file-type-internal.enum.js +17 -0
  138. package/esm2015/lib/core/enum/file-type.enum.js +11 -0
  139. package/esm2015/lib/core/enum/filterItem-mode.enum.js +43 -0
  140. package/esm2015/lib/core/enum/input-number-picker-show-mode.enum.js +8 -0
  141. package/esm2015/lib/core/enum/keyboard-code.enum.js +74 -0
  142. package/esm2015/lib/core/enum/keyboard-key.enum.js +76 -0
  143. package/esm2015/lib/core/enum/object-right-type.enum.js +7 -0
  144. package/esm2015/lib/core/enum/popup-button-type.enum.js +12 -0
  145. package/esm2015/lib/core/enum/popup-type.enum.js +11 -0
  146. package/esm2015/lib/core/enum/table-name.enum.js +81 -0
  147. package/esm2015/lib/core/function/any-nill.function.js +6 -0
  148. package/esm2015/lib/core/function/is-nill.function.js +5 -0
  149. package/esm2015/lib/core/function/none-nill.function.js +17 -0
  150. package/esm2015/lib/core/function/not-nill.function.js +5 -0
  151. package/esm2015/lib/core/model/bounds-constrained-number-value.js +171 -0
  152. package/esm2015/lib/core/model/check-precision-and-scale-result.js +2 -0
  153. package/esm2015/lib/core/model/check-within-stepped-bounds-result.js +2 -0
  154. package/esm2015/lib/core/model/co-document-right.bo.js +3 -0
  155. package/esm2015/lib/core/model/co-document.bo.js +121 -0
  156. package/esm2015/lib/core/model/core-components-icon-svg.js +299 -0
  157. package/esm2015/lib/core/model/element-position.js +10 -0
  158. package/esm2015/lib/core/model/event/string-prompt-result-event.js +8 -0
  159. package/esm2015/lib/core/service/form-input-user-change-listener.service.js +25 -0
  160. package/esm2015/lib/core/service/form-master.service.js +102 -0
  161. package/esm2015/lib/core/service/ng-zone-wrapper.service.js +20 -0
  162. package/esm2015/lib/core/utils/array-utils.js +264 -0
  163. package/esm2015/lib/core/utils/browser-utils.js +100 -0
  164. package/esm2015/lib/core/utils/direction-enum-utils.js +14 -0
  165. package/esm2015/lib/core/utils/event-utils.js +53 -0
  166. package/esm2015/lib/core/utils/file-utils.js +267 -0
  167. package/esm2015/lib/core/utils/number-utils.js +309 -0
  168. package/esm2015/lib/core/utils/object-utils.js +186 -0
  169. package/esm2015/lib/core/utils/string-utils.js +94 -0
  170. package/esm2015/lib/core/validator/email.validator.js +6 -0
  171. package/esm2015/lib/core/validator/equal.validator.js +11 -0
  172. package/esm2015/lib/core/validator/max-string-length.validator.js +10 -0
  173. package/esm2015/lib/core/validator/password.validator.js +31 -0
  174. package/esm2015/lib/core/validator/precision-scale.validator.js +11 -0
  175. package/esm2015/lib/core/validator/required.validator.js +5 -0
  176. package/esm2015/lib/directives/clickoutside/click-outside-master.service.js +57 -0
  177. package/esm2015/lib/directives/clickoutside/click-outside.directive.js +71 -0
  178. package/esm2015/lib/directives/clickoutside/clickoutside.module.js +19 -0
  179. package/esm2015/lib/directives/observe-visibility/observe-visibility.directive.js +53 -0
  180. package/esm2015/lib/directives/observe-visibility/observe-visibility.module.js +15 -0
  181. package/esm2015/lib/directives/overlay/overlay-parent.directive.js +19 -0
  182. package/esm2015/lib/directives/overlay/overlay.directive.js +161 -0
  183. package/esm2015/lib/directives/overlay/overlay.module.js +18 -0
  184. package/esm2015/lib/directives/ripple/ripple-ref.js +26 -0
  185. package/esm2015/lib/directives/ripple/ripple-renderer.js +160 -0
  186. package/esm2015/lib/directives/ripple/ripple.directive.js +80 -0
  187. package/esm2015/lib/directives/ripple/ripple.module.js +24 -0
  188. package/esm2015/lib/directives/ripple/scroll-dispatcher.service.js +108 -0
  189. package/esm2015/lib/directives/ripple/scrollable.directive.js +40 -0
  190. package/esm2015/lib/directives/ripple/viewport-ruler.service.js +73 -0
  191. package/esm2015/lib/directives/screen-configuration/screen-configuration.directive.js +158 -0
  192. package/esm2015/lib/directives/screen-configuration/screen-configuration.module.js +19 -0
  193. package/esm2015/lib/directives/stopclick/stop-click.directive.js +38 -0
  194. package/esm2015/lib/directives/stopclick/stop-click.module.js +15 -0
  195. package/esm2015/lib/directives/template-wrapper/template-wrapper.directive.js +68 -0
  196. package/esm2015/lib/directives/template-wrapper/template-wrapper.module.js +15 -0
  197. package/esm2015/lib/directives/tooltip/tooltip-directive.module.js +19 -0
  198. package/esm2015/lib/directives/tooltip/tooltip.directive.js +78 -0
  199. package/esm2015/lib/interfaces/dialog-response.interface.js +2 -0
  200. package/esm2015/lib/interfaces/scanner-input.interface.js +2 -0
  201. package/esm2015/lib/interfaces/screen-config-adapter-component-interface-name.js +4 -0
  202. package/esm2015/lib/interfaces/screen-config-adapter.component.interface.js +2 -0
  203. package/esm2015/lib/model/enum/app-button-type.enum.js +11 -0
  204. package/esm2015/lib/model/enum/app-popup-type.enum.js +8 -0
  205. package/esm2015/lib/pipes/append.pipe.js +17 -0
  206. package/esm2015/lib/pipes/append.pipe.module.js +15 -0
  207. package/esm2015/lib/pipes/filter.pipe.js +16 -0
  208. package/esm2015/lib/pipes/filter.pipe.module.js +15 -0
  209. package/esm2015/lib/pipes/prepend.pipe.js +17 -0
  210. package/esm2015/lib/pipes/prepend.pipe.module.js +15 -0
  211. package/esm2015/lib/pipes/price-display-pipe.module.js +15 -0
  212. package/esm2015/lib/pipes/price-display.pipe.js +20 -0
  213. package/esm2015/lib/service/base-module-screen-config.service.js +205 -0
  214. package/esm2015/lib/service/base-module.service.js +42 -0
  215. package/esm2015/lib/service/color-sequence.service.js +23 -0
  216. package/esm2015/lib/service/overlay.service.js +73 -0
  217. package/esm2015/lib/translation/core-components-translation.module.js +29 -0
  218. package/esm2015/lib/translation/core-components-translation.service.js +17 -0
  219. package/esm2015/lib/translation/core-dictionary.service.js +29 -0
  220. package/esm2015/lib/translation/core-localize.pipe.js +26 -0
  221. package/esm2015/public-api.js +130 -0
  222. package/fesm2015/colijnit-corecomponents_v12.js +13387 -0
  223. package/fesm2015/colijnit-corecomponents_v12.js.map +1 -0
  224. package/lib/components/article-tile/article-tile.component.d.ts +22 -0
  225. package/lib/components/article-tile/article-tile.module.d.ts +2 -0
  226. package/lib/components/base/base-input.component.d.ts +182 -0
  227. package/lib/components/base/base.module.d.ts +2 -0
  228. package/lib/components/base/commit-buttons/commit-buttons.component.d.ts +21 -0
  229. package/lib/components/base/commit-buttons/commit-buttons.module.d.ts +2 -0
  230. package/lib/components/base/dialog-base.component.d.ts +4 -0
  231. package/lib/components/base-input-date-picker/base-input-date-picker.directive.d.ts +15 -0
  232. package/lib/components/button/button.component.d.ts +29 -0
  233. package/lib/components/button/button.module.d.ts +2 -0
  234. package/lib/components/calendar/calendar-template.component.d.ts +60 -0
  235. package/lib/components/calendar/calendar.component.d.ts +13 -0
  236. package/lib/components/calendar/calendar.module.d.ts +2 -0
  237. package/lib/components/card/card.component.d.ts +23 -0
  238. package/lib/components/card/card.module.d.ts +2 -0
  239. package/lib/components/carousel/carousel.component.d.ts +23 -0
  240. package/lib/components/carousel/carousel.module.d.ts +6 -0
  241. package/lib/components/carousel-3d/carousel-3d.component.d.ts +55 -0
  242. package/lib/components/carousel-3d/carousel-3d.module.d.ts +2 -0
  243. package/lib/components/carousel-3d/carouselItem.d.ts +13 -0
  244. package/lib/components/checkmark-overlay/checkmark-overlay.component.d.ts +17 -0
  245. package/lib/components/checkmark-overlay/checkmark-overlay.module.d.ts +2 -0
  246. package/lib/components/co-dialog/co-dialog.component.d.ts +23 -0
  247. package/lib/components/co-dialog/co-dialog.module.d.ts +2 -0
  248. package/lib/components/co-dialog-wizard/co-dialog-wizard.component.d.ts +9 -0
  249. package/lib/components/co-dialog-wizard/co-dialog-wizard.module.d.ts +2 -0
  250. package/lib/components/collapsible/collapsible.component.d.ts +22 -0
  251. package/lib/components/collapsible/collapsible.module.d.ts +2 -0
  252. package/lib/components/color-picker/color-picker.component.d.ts +6 -0
  253. package/lib/components/color-picker/color-picker.module.d.ts +2 -0
  254. package/lib/components/core-dialog/confirmation-dialog/confirmation-dialog.component.d.ts +20 -0
  255. package/lib/components/core-dialog/core-dialog.module.d.ts +4 -0
  256. package/lib/components/core-dialog/core-dialog.service.d.ts +15 -0
  257. package/lib/components/core-dialog/core-dynamic-component.service.d.ts +12 -0
  258. package/lib/components/double-calendar/double-calendar.component.d.ts +18 -0
  259. package/lib/components/double-calendar/double-calendar.module.d.ts +2 -0
  260. package/lib/components/filter-item/filter-item-viewmodel.d.ts +9 -0
  261. package/lib/components/filter-item/filter-item.component.d.ts +80 -0
  262. package/lib/components/filter-item/filter-item.module.d.ts +2 -0
  263. package/lib/components/filter-item/filter-viewmodel.d.ts +8 -0
  264. package/lib/components/form/form.component.d.ts +39 -0
  265. package/lib/components/form/form.module.d.ts +2 -0
  266. package/lib/components/grid-toolbar/grid-toolbar.component.d.ts +19 -0
  267. package/lib/components/grid-toolbar/grid-toolbar.module.d.ts +2 -0
  268. package/lib/components/grid-toolbar-button/grid-toolbar-button.component.d.ts +8 -0
  269. package/lib/components/grid-toolbar-button/grid-toolbar-button.module.d.ts +2 -0
  270. package/lib/components/icon/icon-cache.service.d.ts +20 -0
  271. package/lib/components/icon/icon.component.d.ts +17 -0
  272. package/lib/components/icon/icon.module.d.ts +2 -0
  273. package/lib/components/icon-collapse-handle/icon-collapse-handle.component.d.ts +21 -0
  274. package/lib/components/icon-collapse-handle/icon-collapse-handle.module.d.ts +2 -0
  275. package/lib/components/image/image.component.d.ts +20 -0
  276. package/lib/components/image/image.module.d.ts +2 -0
  277. package/lib/components/input-checkbox/input-checkbox.component.d.ts +24 -0
  278. package/lib/components/input-checkbox/input-checkbox.module.d.ts +2 -0
  279. package/lib/components/input-date-picker/input-date-picker.component.d.ts +12 -0
  280. package/lib/components/input-date-picker/input-date-picker.module.d.ts +2 -0
  281. package/lib/components/input-date-range-picker/input-date-range-picker.component.d.ts +20 -0
  282. package/lib/components/input-date-range-picker/input-date-range-picker.module.d.ts +2 -0
  283. package/lib/components/input-number-picker/input-number-picker.component.d.ts +73 -0
  284. package/lib/components/input-number-picker/input-number-picker.module.d.ts +2 -0
  285. package/lib/components/input-radio-button/input-radio-button.component.d.ts +19 -0
  286. package/lib/components/input-radio-button/input-radio-button.module.d.ts +2 -0
  287. package/lib/components/input-scanner/bar-code-scanner.d.ts +7 -0
  288. package/lib/components/input-scanner/input-scanner.component.d.ts +24 -0
  289. package/lib/components/input-scanner/input-scanner.module.d.ts +2 -0
  290. package/lib/components/input-scanner/scanner.service.d.ts +11 -0
  291. package/lib/components/input-search/input-search.component.d.ts +19 -0
  292. package/lib/components/input-search/input-search.module.d.ts +2 -0
  293. package/lib/components/input-text/input-text.component.d.ts +65 -0
  294. package/lib/components/input-text/input-text.module.d.ts +2 -0
  295. package/lib/components/input-textarea/input-textarea.component.d.ts +19 -0
  296. package/lib/components/input-textarea/input-textarea.module.d.ts +2 -0
  297. package/lib/components/level-indicator/level-indicator-level.enum.d.ts +5 -0
  298. package/lib/components/level-indicator/level-indicator.component.d.ts +10 -0
  299. package/lib/components/level-indicator/level-indicator.module.d.ts +2 -0
  300. package/lib/components/list-of-values/list-of-values-multiselect-popup.component.d.ts +25 -0
  301. package/lib/components/list-of-values/list-of-values-popup.component.d.ts +47 -0
  302. package/lib/components/list-of-values/list-of-values.component.d.ts +37 -0
  303. package/lib/components/list-of-values/list-of-values.module.d.ts +2 -0
  304. package/lib/components/loader/loader.component.d.ts +3 -0
  305. package/lib/components/loader/loader.module.d.ts +2 -0
  306. package/lib/components/pagination/paginate.pipe.d.ts +15 -0
  307. package/lib/components/pagination/pagination-instance.d.ts +14 -0
  308. package/lib/components/pagination/pagination.component.d.ts +38 -0
  309. package/lib/components/pagination/pagination.module.d.ts +2 -0
  310. package/lib/components/pagination/pagination.service.d.ts +24 -0
  311. package/lib/components/pagination-bar/pagination-bar.component.d.ts +33 -0
  312. package/lib/components/pagination-bar/pagination-bar.module.d.ts +2 -0
  313. package/lib/components/popup/const/popup-window-token.d.ts +3 -0
  314. package/lib/components/popup/interface/popup-button.d.ts +8 -0
  315. package/lib/components/popup/interface/popup-close-event.d.ts +5 -0
  316. package/lib/components/popup/interface/popup-settings.d.ts +21 -0
  317. package/lib/components/popup/interface/popup.d.ts +9 -0
  318. package/lib/components/popup/model/popup-button-globals.d.ts +9 -0
  319. package/lib/components/popup/model/popup-window.d.ts +21 -0
  320. package/lib/components/popup/popup-buttons.component.d.ts +13 -0
  321. package/lib/components/popup/popup-message-display.component.d.ts +12 -0
  322. package/lib/components/popup/popup-window-shell.component.d.ts +42 -0
  323. package/lib/components/popup/popup.module.d.ts +4 -0
  324. package/lib/components/popup/service/popup-shower.service.d.ts +17 -0
  325. package/lib/components/popup/service/prompt.service.d.ts +17 -0
  326. package/lib/components/popup/text-input-popup.component.d.ts +12 -0
  327. package/lib/components/responsive-text/responsive-text.component.d.ts +4 -0
  328. package/lib/components/responsive-text/responsive-text.module.d.ts +2 -0
  329. package/lib/components/simple-grid/base-simple-grid.component.d.ts +52 -0
  330. package/lib/components/simple-grid/simple-grid-cell.component.d.ts +30 -0
  331. package/lib/components/simple-grid/simple-grid-column.directive.d.ts +42 -0
  332. package/lib/components/simple-grid/simple-grid.component.d.ts +64 -0
  333. package/lib/components/simple-grid/simple-grid.module.d.ts +2 -0
  334. package/lib/components/tile/tile.component.d.ts +16 -0
  335. package/lib/components/tile/tile.module.d.ts +2 -0
  336. package/lib/components/tile-select/tile-select.component.d.ts +8 -0
  337. package/lib/components/tile-select/tile-select.module.d.ts +2 -0
  338. package/lib/components/tooltip/tooltip.component.d.ts +18 -0
  339. package/lib/components/tooltip/tooltip.module.d.ts +2 -0
  340. package/lib/components/validation-error/validation-error.component.d.ts +12 -0
  341. package/lib/components/validation-error/validation-error.module.d.ts +2 -0
  342. package/lib/components/view-mode-buttons/content-view-mode.enum.d.ts +8 -0
  343. package/lib/components/view-mode-buttons/view-mode-buttons.component.d.ts +17 -0
  344. package/lib/components/view-mode-buttons/view-mode-buttons.module.d.ts +2 -0
  345. package/lib/core/constant/default-upper-bound-for-range-components.d.ts +2 -0
  346. package/lib/core/constant/java-max-int.d.ts +1 -0
  347. package/lib/core/constant/number-inputs-key-down-white-list.d.ts +2 -0
  348. package/lib/core/decorator/input-boolean.decorator.d.ts +8 -0
  349. package/lib/core/enum/co-direction.d.ts +6 -0
  350. package/lib/core/enum/co-document-image-display-kind.enum.d.ts +5 -0
  351. package/lib/core/enum/co-document-type.enum.d.ts +5 -0
  352. package/lib/core/enum/co-orientation.d.ts +6 -0
  353. package/lib/core/enum/core-components-icon.enum.d.ts +298 -0
  354. package/lib/core/enum/file-type-internal.enum.d.ts +15 -0
  355. package/lib/core/enum/file-type.enum.d.ts +5 -0
  356. package/lib/core/enum/filterItem-mode.enum.d.ts +15 -0
  357. package/lib/core/enum/input-number-picker-show-mode.enum.d.ts +5 -0
  358. package/lib/core/enum/keyboard-code.enum.d.ts +71 -0
  359. package/lib/core/enum/keyboard-key.enum.d.ts +70 -0
  360. package/lib/core/enum/object-right-type.enum.d.ts +5 -0
  361. package/lib/core/enum/popup-button-type.enum.d.ts +9 -0
  362. package/lib/core/enum/popup-type.enum.d.ts +9 -0
  363. package/lib/core/enum/table-name.enum.d.ts +79 -0
  364. package/lib/core/function/any-nill.function.d.ts +1 -0
  365. package/lib/core/function/is-nill.function.d.ts +1 -0
  366. package/lib/core/function/none-nill.function.d.ts +1 -0
  367. package/lib/core/function/not-nill.function.d.ts +1 -0
  368. package/lib/core/model/bounds-constrained-number-value.d.ts +46 -0
  369. package/lib/core/model/check-precision-and-scale-result.d.ts +4 -0
  370. package/lib/core/model/check-within-stepped-bounds-result.d.ts +8 -0
  371. package/lib/core/model/co-document-right.bo.d.ts +6 -0
  372. package/lib/core/model/co-document.bo.d.ts +61 -0
  373. package/lib/core/model/core-components-icon-svg.d.ts +4 -0
  374. package/lib/core/model/element-position.d.ts +7 -0
  375. package/lib/core/model/event/string-prompt-result-event.d.ts +6 -0
  376. package/lib/core/service/form-input-user-change-listener.service.d.ts +10 -0
  377. package/lib/core/service/form-master.service.d.ts +26 -0
  378. package/lib/core/service/ng-zone-wrapper.service.d.ts +6 -0
  379. package/lib/core/utils/array-utils.d.ts +85 -0
  380. package/lib/core/utils/browser-utils.d.ts +15 -0
  381. package/lib/core/utils/direction-enum-utils.d.ts +5 -0
  382. package/lib/core/utils/event-utils.d.ts +12 -0
  383. package/lib/core/utils/file-utils.d.ts +29 -0
  384. package/lib/core/utils/number-utils.d.ts +89 -0
  385. package/lib/core/utils/object-utils.d.ts +31 -0
  386. package/lib/core/utils/string-utils.d.ts +25 -0
  387. package/lib/core/validator/email.validator.d.ts +2 -0
  388. package/lib/core/validator/equal.validator.d.ts +2 -0
  389. package/lib/core/validator/max-string-length.validator.d.ts +2 -0
  390. package/lib/core/validator/password.validator.d.ts +3 -0
  391. package/lib/core/validator/precision-scale.validator.d.ts +2 -0
  392. package/lib/core/validator/required.validator.d.ts +2 -0
  393. package/lib/directives/clickoutside/click-outside-master.service.d.ts +15 -0
  394. package/lib/directives/clickoutside/click-outside.directive.d.ts +18 -0
  395. package/lib/directives/clickoutside/clickoutside.module.d.ts +2 -0
  396. package/lib/directives/observe-visibility/observe-visibility.directive.d.ts +14 -0
  397. package/lib/directives/observe-visibility/observe-visibility.module.d.ts +2 -0
  398. package/lib/directives/overlay/overlay-parent.directive.d.ts +6 -0
  399. package/lib/directives/overlay/overlay.directive.d.ts +25 -0
  400. package/lib/directives/overlay/overlay.module.d.ts +2 -0
  401. package/lib/directives/ripple/ripple-ref.d.ts +21 -0
  402. package/lib/directives/ripple/ripple-renderer.d.ts +56 -0
  403. package/lib/directives/ripple/ripple.directive.d.ts +56 -0
  404. package/lib/directives/ripple/ripple.module.d.ts +2 -0
  405. package/lib/directives/ripple/scroll-dispatcher.service.d.ts +51 -0
  406. package/lib/directives/ripple/scrollable.directive.d.ts +20 -0
  407. package/lib/directives/ripple/viewport-ruler.service.d.ts +29 -0
  408. package/lib/directives/screen-configuration/screen-configuration.directive.d.ts +32 -0
  409. package/lib/directives/screen-configuration/screen-configuration.module.d.ts +2 -0
  410. package/lib/directives/stopclick/stop-click.directive.d.ts +10 -0
  411. package/lib/directives/stopclick/stop-click.module.d.ts +2 -0
  412. package/lib/directives/template-wrapper/template-wrapper.directive.d.ts +13 -0
  413. package/lib/directives/template-wrapper/template-wrapper.module.d.ts +2 -0
  414. package/lib/directives/tooltip/tooltip-directive.module.d.ts +2 -0
  415. package/lib/directives/tooltip/tooltip.directive.d.ts +20 -0
  416. package/lib/interfaces/dialog-response.interface.d.ts +6 -0
  417. package/lib/interfaces/scanner-input.interface.d.ts +3 -0
  418. package/lib/interfaces/screen-config-adapter-component-interface-name.d.ts +3 -0
  419. package/lib/interfaces/screen-config-adapter.component.interface.d.ts +10 -0
  420. package/lib/model/enum/app-button-type.enum.d.ts +9 -0
  421. package/lib/model/enum/app-popup-type.enum.d.ts +6 -0
  422. package/lib/pipes/append.pipe.d.ts +4 -0
  423. package/lib/pipes/append.pipe.module.d.ts +2 -0
  424. package/lib/pipes/filter.pipe.d.ts +4 -0
  425. package/lib/pipes/filter.pipe.module.d.ts +2 -0
  426. package/lib/pipes/prepend.pipe.d.ts +4 -0
  427. package/lib/pipes/prepend.pipe.module.d.ts +2 -0
  428. package/lib/pipes/price-display-pipe.module.d.ts +2 -0
  429. package/lib/pipes/price-display.pipe.d.ts +4 -0
  430. package/lib/service/base-module-screen-config.service.d.ts +47 -0
  431. package/lib/service/base-module.service.d.ts +22 -0
  432. package/lib/service/color-sequence.service.d.ts +4 -0
  433. package/lib/service/overlay.service.d.ts +13 -0
  434. package/lib/translation/core-components-translation.module.d.ts +4 -0
  435. package/lib/translation/core-components-translation.service.d.ts +6 -0
  436. package/lib/translation/core-dictionary.service.d.ts +12 -0
  437. package/lib/translation/core-localize.pipe.d.ts +7 -0
  438. package/package.json +22 -43
  439. package/public-api.d.ts +126 -0
  440. package/.browserslistrc +0 -17
  441. package/.editorconfig +0 -16
  442. package/.idea/CoreComponents_v12.iml +0 -12
  443. package/.idea/misc.xml +0 -9
  444. package/.idea/modules.xml +0 -8
  445. package/.idea/vcs.xml +0 -6
  446. package/CoreComponents_v12.iml +0 -12
  447. package/angular.json +0 -149
  448. package/dist/corecomponentstest/favicon.ico +0 -0
  449. package/dist/corecomponentstest/index.html +0 -13
  450. package/dist/corecomponentstest/main.js +0 -24187
  451. package/dist/corecomponentstest/main.js.map +0 -1
  452. package/dist/corecomponentstest/polyfills.js +0 -2891
  453. package/dist/corecomponentstest/polyfills.js.map +0 -1
  454. package/dist/corecomponentstest/runtime.js +0 -161
  455. package/dist/corecomponentstest/runtime.js.map +0 -1
  456. package/dist/corecomponentstest/styles.css +0 -2926
  457. package/dist/corecomponentstest/styles.css.map +0 -1
  458. package/dist/corecomponentstest/vendor.js +0 -118790
  459. package/dist/corecomponentstest/vendor.js.map +0 -1
  460. package/karma.conf.js +0 -44
  461. package/move-assets.js +0 -14
  462. package/projects/corecomponents/README.md +0 -24
  463. package/projects/corecomponents/karma.conf.js +0 -44
  464. package/projects/corecomponents/ng-package.json +0 -10
  465. package/projects/corecomponents/package-lock.json +0 -13
  466. package/projects/corecomponents/package.json +0 -19
  467. package/projects/corecomponents/src/lib/components/article-tile/article-tile.component.ts +0 -95
  468. package/projects/corecomponents/src/lib/components/article-tile/article-tile.module.ts +0 -34
  469. package/projects/corecomponents/src/lib/components/base/base-input.component.ts +0 -988
  470. package/projects/corecomponents/src/lib/components/base/base.module.ts +0 -22
  471. package/projects/corecomponents/src/lib/components/base/commit-buttons/commit-buttons.component.ts +0 -120
  472. package/projects/corecomponents/src/lib/components/base/commit-buttons/commit-buttons.module.ts +0 -19
  473. package/projects/corecomponents/src/lib/components/base/dialog-base.component.ts +0 -8
  474. package/projects/corecomponents/src/lib/components/base-input-date-picker/base-input-date-picker.directive.ts +0 -32
  475. package/projects/corecomponents/src/lib/components/base-input-time/base-input-time-directive.ts +0 -31
  476. package/projects/corecomponents/src/lib/components/button/button.component.ts +0 -117
  477. package/projects/corecomponents/src/lib/components/button/button.module.ts +0 -18
  478. package/projects/corecomponents/src/lib/components/calendar/calendar-template.component.ts +0 -392
  479. package/projects/corecomponents/src/lib/components/calendar/calendar.component.ts +0 -54
  480. package/projects/corecomponents/src/lib/components/calendar/calendar.module.ts +0 -26
  481. package/projects/corecomponents/src/lib/components/card/card.component.ts +0 -94
  482. package/projects/corecomponents/src/lib/components/card/card.module.ts +0 -34
  483. package/projects/corecomponents/src/lib/components/carousel/carousel.component.ts +0 -128
  484. package/projects/corecomponents/src/lib/components/carousel/carousel.module.ts +0 -28
  485. package/projects/corecomponents/src/lib/components/carousel-3d/carousel-3d.component.ts +0 -392
  486. package/projects/corecomponents/src/lib/components/carousel-3d/carousel-3d.module.ts +0 -17
  487. package/projects/corecomponents/src/lib/components/carousel-3d/carouselItem.ts +0 -77
  488. package/projects/corecomponents/src/lib/components/checkmark-overlay/checkmark-overlay.component.ts +0 -99
  489. package/projects/corecomponents/src/lib/components/checkmark-overlay/checkmark-overlay.module.ts +0 -18
  490. package/projects/corecomponents/src/lib/components/co-dialog/animation.ts +0 -2
  491. package/projects/corecomponents/src/lib/components/co-dialog/co-dialog.component.ts +0 -130
  492. package/projects/corecomponents/src/lib/components/co-dialog/co-dialog.module.ts +0 -17
  493. package/projects/corecomponents/src/lib/components/co-dialog-wizard/co-dialog-wizard.component.ts +0 -50
  494. package/projects/corecomponents/src/lib/components/co-dialog-wizard/co-dialog-wizard.module.ts +0 -15
  495. package/projects/corecomponents/src/lib/components/collapsible/collapsible.component.ts +0 -114
  496. package/projects/corecomponents/src/lib/components/collapsible/collapsible.module.ts +0 -17
  497. package/projects/corecomponents/src/lib/components/color-picker/color-picker.component.ts +0 -40
  498. package/projects/corecomponents/src/lib/components/color-picker/color-picker.module.ts +0 -19
  499. package/projects/corecomponents/src/lib/components/core-dialog/confirmation-dialog/confirmation-dialog.component.ts +0 -86
  500. package/projects/corecomponents/src/lib/components/core-dialog/core-dialog.module.ts +0 -37
  501. package/projects/corecomponents/src/lib/components/core-dialog/core-dialog.service.ts +0 -61
  502. package/projects/corecomponents/src/lib/components/core-dialog/core-dynamic-component.service.ts +0 -101
  503. package/projects/corecomponents/src/lib/components/double-calendar/double-calendar.component.ts +0 -102
  504. package/projects/corecomponents/src/lib/components/double-calendar/double-calendar.module.ts +0 -23
  505. package/projects/corecomponents/src/lib/components/filter-item/filter-item-viewmodel.ts +0 -20
  506. package/projects/corecomponents/src/lib/components/filter-item/filter-item.component.ts +0 -715
  507. package/projects/corecomponents/src/lib/components/filter-item/filter-item.module.ts +0 -42
  508. package/projects/corecomponents/src/lib/components/filter-item/filter-viewmodel.ts +0 -11
  509. package/projects/corecomponents/src/lib/components/form/form.component.ts +0 -211
  510. package/projects/corecomponents/src/lib/components/form/form.module.ts +0 -22
  511. package/projects/corecomponents/src/lib/components/grid-toolbar/grid-toolbar.component.ts +0 -62
  512. package/projects/corecomponents/src/lib/components/grid-toolbar/grid-toolbar.module.ts +0 -21
  513. package/projects/corecomponents/src/lib/components/grid-toolbar-button/grid-toolbar-button.component.ts +0 -28
  514. package/projects/corecomponents/src/lib/components/grid-toolbar-button/grid-toolbar-button.module.ts +0 -17
  515. package/projects/corecomponents/src/lib/components/icon/icon-cache.service.ts +0 -57
  516. package/projects/corecomponents/src/lib/components/icon/icon.component.ts +0 -54
  517. package/projects/corecomponents/src/lib/components/icon/icon.module.ts +0 -24
  518. package/projects/corecomponents/src/lib/components/icon-collapse-handle/icon-collapse-handle.component.ts +0 -75
  519. package/projects/corecomponents/src/lib/components/icon-collapse-handle/icon-collapse-handle.module.ts +0 -21
  520. package/projects/corecomponents/src/lib/components/image/image.component.ts +0 -51
  521. package/projects/corecomponents/src/lib/components/image/image.module.ts +0 -12
  522. package/projects/corecomponents/src/lib/components/input-checkbox/input-checkbox.component.ts +0 -85
  523. package/projects/corecomponents/src/lib/components/input-checkbox/input-checkbox.module.ts +0 -17
  524. package/projects/corecomponents/src/lib/components/input-date-picker/input-date-picker.component.ts +0 -103
  525. package/projects/corecomponents/src/lib/components/input-date-picker/input-date-picker.module.ts +0 -24
  526. package/projects/corecomponents/src/lib/components/input-date-range-picker/input-date-range-picker.component.ts +0 -155
  527. package/projects/corecomponents/src/lib/components/input-date-range-picker/input-date-range-picker.module.ts +0 -25
  528. package/projects/corecomponents/src/lib/components/input-number-picker/input-number-picker.component.ts +0 -378
  529. package/projects/corecomponents/src/lib/components/input-number-picker/input-number-picker.module.ts +0 -20
  530. package/projects/corecomponents/src/lib/components/input-radio-button/input-radio-button.component.ts +0 -86
  531. package/projects/corecomponents/src/lib/components/input-radio-button/input-radio-button.module.ts +0 -17
  532. package/projects/corecomponents/src/lib/components/input-scanner/bar-code-scanner.ts +0 -25
  533. package/projects/corecomponents/src/lib/components/input-scanner/input-scanner.component.ts +0 -89
  534. package/projects/corecomponents/src/lib/components/input-scanner/input-scanner.module.ts +0 -19
  535. package/projects/corecomponents/src/lib/components/input-scanner/scanner.service.ts +0 -28
  536. package/projects/corecomponents/src/lib/components/input-search/input-search.component.ts +0 -85
  537. package/projects/corecomponents/src/lib/components/input-search/input-search.module.ts +0 -20
  538. package/projects/corecomponents/src/lib/components/input-text/input-text.component.ts +0 -294
  539. package/projects/corecomponents/src/lib/components/input-text/input-text.module.ts +0 -31
  540. package/projects/corecomponents/src/lib/components/input-textarea/input-textarea.component.ts +0 -81
  541. package/projects/corecomponents/src/lib/components/input-textarea/input-textarea.module.ts +0 -25
  542. package/projects/corecomponents/src/lib/components/input-time/input-time.component.ts +0 -72
  543. package/projects/corecomponents/src/lib/components/input-time/input-time.module.ts +0 -22
  544. package/projects/corecomponents/src/lib/components/level-indicator/level-indicator-level.enum.ts +0 -5
  545. package/projects/corecomponents/src/lib/components/level-indicator/level-indicator.component.ts +0 -42
  546. package/projects/corecomponents/src/lib/components/level-indicator/level-indicator.module.ts +0 -13
  547. package/projects/corecomponents/src/lib/components/list-of-values/list-of-values-multiselect-popup.component.ts +0 -132
  548. package/projects/corecomponents/src/lib/components/list-of-values/list-of-values-popup.component.ts +0 -281
  549. package/projects/corecomponents/src/lib/components/list-of-values/list-of-values.component.ts +0 -257
  550. package/projects/corecomponents/src/lib/components/list-of-values/list-of-values.module.ts +0 -35
  551. package/projects/corecomponents/src/lib/components/loader/loader.component.ts +0 -82
  552. package/projects/corecomponents/src/lib/components/loader/loader.module.ts +0 -17
  553. package/projects/corecomponents/src/lib/components/pagination/paginate.pipe.ts +0 -116
  554. package/projects/corecomponents/src/lib/components/pagination/pagination-instance.ts +0 -18
  555. package/projects/corecomponents/src/lib/components/pagination/pagination.component.ts +0 -160
  556. package/projects/corecomponents/src/lib/components/pagination/pagination.module.ts +0 -26
  557. package/projects/corecomponents/src/lib/components/pagination/pagination.service.ts +0 -99
  558. package/projects/corecomponents/src/lib/components/pagination-bar/pagination-bar.component.ts +0 -178
  559. package/projects/corecomponents/src/lib/components/pagination-bar/pagination-bar.module.ts +0 -17
  560. package/projects/corecomponents/src/lib/components/popup/const/popup-window-token.ts +0 -4
  561. package/projects/corecomponents/src/lib/components/popup/interface/popup-button.ts +0 -14
  562. package/projects/corecomponents/src/lib/components/popup/interface/popup-close-event.ts +0 -8
  563. package/projects/corecomponents/src/lib/components/popup/interface/popup-settings.ts +0 -70
  564. package/projects/corecomponents/src/lib/components/popup/interface/popup.ts +0 -17
  565. package/projects/corecomponents/src/lib/components/popup/model/popup-button-globals.ts +0 -11
  566. package/projects/corecomponents/src/lib/components/popup/model/popup-window.ts +0 -51
  567. package/projects/corecomponents/src/lib/components/popup/popup-buttons.component.ts +0 -61
  568. package/projects/corecomponents/src/lib/components/popup/popup-message-display.component.ts +0 -49
  569. package/projects/corecomponents/src/lib/components/popup/popup-window-shell.component.ts +0 -222
  570. package/projects/corecomponents/src/lib/components/popup/popup.module.ts +0 -48
  571. package/projects/corecomponents/src/lib/components/popup/service/popup-shower.service.ts +0 -98
  572. package/projects/corecomponents/src/lib/components/popup/service/prompt.service.ts +0 -127
  573. package/projects/corecomponents/src/lib/components/popup/text-input-popup.component.ts +0 -36
  574. package/projects/corecomponents/src/lib/components/responsive-text/responsive-text.component.ts +0 -24
  575. package/projects/corecomponents/src/lib/components/responsive-text/responsive-text.module.ts +0 -17
  576. package/projects/corecomponents/src/lib/components/simple-grid/base-simple-grid.component.ts +0 -194
  577. package/projects/corecomponents/src/lib/components/simple-grid/simple-grid-cell.component.ts +0 -192
  578. package/projects/corecomponents/src/lib/components/simple-grid/simple-grid-column.directive.ts +0 -143
  579. package/projects/corecomponents/src/lib/components/simple-grid/simple-grid.component.ts +0 -489
  580. package/projects/corecomponents/src/lib/components/simple-grid/simple-grid.module.ts +0 -38
  581. package/projects/corecomponents/src/lib/components/tile/tile.component.ts +0 -71
  582. package/projects/corecomponents/src/lib/components/tile/tile.module.ts +0 -21
  583. package/projects/corecomponents/src/lib/components/tile-select/tile-select.component.ts +0 -36
  584. package/projects/corecomponents/src/lib/components/tile-select/tile-select.module.ts +0 -19
  585. package/projects/corecomponents/src/lib/components/tooltip/tooltip.component.ts +0 -96
  586. package/projects/corecomponents/src/lib/components/tooltip/tooltip.module.ts +0 -17
  587. package/projects/corecomponents/src/lib/components/validation-error/validation-error.component.ts +0 -45
  588. package/projects/corecomponents/src/lib/components/validation-error/validation-error.module.ts +0 -24
  589. package/projects/corecomponents/src/lib/components/view-mode-buttons/content-view-mode.enum.ts +0 -9
  590. package/projects/corecomponents/src/lib/components/view-mode-buttons/view-mode-buttons.component.ts +0 -63
  591. package/projects/corecomponents/src/lib/components/view-mode-buttons/view-mode-buttons.module.ts +0 -19
  592. package/projects/corecomponents/src/lib/core/abstract/collection-based-component.ts +0 -488
  593. package/projects/corecomponents/src/lib/core/config/device-environment.ts +0 -26
  594. package/projects/corecomponents/src/lib/core/constant/default-upper-bound-for-range-components.ts +0 -4
  595. package/projects/corecomponents/src/lib/core/constant/java-max-int.ts +0 -1
  596. package/projects/corecomponents/src/lib/core/constant/number-inputs-key-down-white-list.ts +0 -46
  597. package/projects/corecomponents/src/lib/core/decorator/input-boolean.decorator.ts +0 -35
  598. package/projects/corecomponents/src/lib/core/enum/co-direction.ts +0 -7
  599. package/projects/corecomponents/src/lib/core/enum/co-document-image-display-kind.enum.ts +0 -5
  600. package/projects/corecomponents/src/lib/core/enum/co-document-type.enum.ts +0 -9
  601. package/projects/corecomponents/src/lib/core/enum/co-orientation.ts +0 -18
  602. package/projects/corecomponents/src/lib/core/enum/collection-based-component-input-driver-prop.enum.ts +0 -10
  603. package/projects/corecomponents/src/lib/core/enum/color-sequence-name.enum.ts +0 -5
  604. package/projects/corecomponents/src/lib/core/enum/core-components-icon.enum.ts +0 -299
  605. package/projects/corecomponents/src/lib/core/enum/file-type-internal.enum.ts +0 -15
  606. package/projects/corecomponents/src/lib/core/enum/file-type.enum.ts +0 -9
  607. package/projects/corecomponents/src/lib/core/enum/filterItem-mode.enum.ts +0 -57
  608. package/projects/corecomponents/src/lib/core/enum/float-label-type.enum.ts +0 -5
  609. package/projects/corecomponents/src/lib/core/enum/input-number-picker-show-mode.enum.ts +0 -6
  610. package/projects/corecomponents/src/lib/core/enum/input-text-type.enum.ts +0 -4
  611. package/projects/corecomponents/src/lib/core/enum/keyboard-code.enum.ts +0 -72
  612. package/projects/corecomponents/src/lib/core/enum/keyboard-key.enum.ts +0 -78
  613. package/projects/corecomponents/src/lib/core/enum/logical-operator-type.enum.ts +0 -5
  614. package/projects/corecomponents/src/lib/core/enum/object-right-type.enum.ts +0 -5
  615. package/projects/corecomponents/src/lib/core/enum/popup-button-type.enum.ts +0 -10
  616. package/projects/corecomponents/src/lib/core/enum/popup-type.enum.ts +0 -9
  617. package/projects/corecomponents/src/lib/core/enum/schedule-view.enum.ts +0 -14
  618. package/projects/corecomponents/src/lib/core/enum/search-data-type.ts +0 -4
  619. package/projects/corecomponents/src/lib/core/enum/search-property-state.ts +0 -5
  620. package/projects/corecomponents/src/lib/core/enum/sort-data-type.ts +0 -6
  621. package/projects/corecomponents/src/lib/core/enum/sort-direction.ts +0 -9
  622. package/projects/corecomponents/src/lib/core/enum/table-name.enum.ts +0 -79
  623. package/projects/corecomponents/src/lib/core/enum/value-comparison-type.ts +0 -11
  624. package/projects/corecomponents/src/lib/core/function/any-nill.function.ts +0 -6
  625. package/projects/corecomponents/src/lib/core/function/is-nill.function.ts +0 -4
  626. package/projects/corecomponents/src/lib/core/function/none-nill.function.ts +0 -16
  627. package/projects/corecomponents/src/lib/core/function/not-nill.function.ts +0 -4
  628. package/projects/corecomponents/src/lib/core/interface/search-property.ts +0 -15
  629. package/projects/corecomponents/src/lib/core/interface/sort-property.ts +0 -16
  630. package/projects/corecomponents/src/lib/core/model/bounds-constrained-number-value.ts +0 -222
  631. package/projects/corecomponents/src/lib/core/model/check-precision-and-scale-result.ts +0 -5
  632. package/projects/corecomponents/src/lib/core/model/check-within-stepped-bounds-result.ts +0 -8
  633. package/projects/corecomponents/src/lib/core/model/co-document-right.bo.ts +0 -9
  634. package/projects/corecomponents/src/lib/core/model/co-document.bo.ts +0 -193
  635. package/projects/corecomponents/src/lib/core/model/color-sequence.ts +0 -39
  636. package/projects/corecomponents/src/lib/core/model/color.ts +0 -29
  637. package/projects/corecomponents/src/lib/core/model/core-components-icon-svg.ts +0 -299
  638. package/projects/corecomponents/src/lib/core/model/element-position.ts +0 -14
  639. package/projects/corecomponents/src/lib/core/model/event/number-prompt-result-event.ts +0 -10
  640. package/projects/corecomponents/src/lib/core/model/event/string-prompt-result-event.ts +0 -10
  641. package/projects/corecomponents/src/lib/core/model/numerical-range.ts +0 -19
  642. package/projects/corecomponents/src/lib/core/service/form-input-user-change-listener.service.ts +0 -31
  643. package/projects/corecomponents/src/lib/core/service/form-master.service.ts +0 -119
  644. package/projects/corecomponents/src/lib/core/service/ng-zone-wrapper.service.ts +0 -15
  645. package/projects/corecomponents/src/lib/core/utils/array-utils.spec.ts +0 -588
  646. package/projects/corecomponents/src/lib/core/utils/array-utils.ts +0 -301
  647. package/projects/corecomponents/src/lib/core/utils/browser-utils.ts +0 -123
  648. package/projects/corecomponents/src/lib/core/utils/business-object-utils.ts +0 -42
  649. package/projects/corecomponents/src/lib/core/utils/css-utils.ts +0 -276
  650. package/projects/corecomponents/src/lib/core/utils/direction-enum-utils.ts +0 -15
  651. package/projects/corecomponents/src/lib/core/utils/element-ref.utils.ts +0 -12
  652. package/projects/corecomponents/src/lib/core/utils/event-utils.ts +0 -61
  653. package/projects/corecomponents/src/lib/core/utils/file-utils.ts +0 -291
  654. package/projects/corecomponents/src/lib/core/utils/number-utils.spec.ts +0 -657
  655. package/projects/corecomponents/src/lib/core/utils/number-utils.ts +0 -350
  656. package/projects/corecomponents/src/lib/core/utils/object-utils.ts +0 -205
  657. package/projects/corecomponents/src/lib/core/utils/parameter-value-conversion-utils.ts +0 -116
  658. package/projects/corecomponents/src/lib/core/utils/search-utils.ts +0 -121
  659. package/projects/corecomponents/src/lib/core/utils/sort-utils.ts +0 -108
  660. package/projects/corecomponents/src/lib/core/utils/string-utils.ts +0 -100
  661. package/projects/corecomponents/src/lib/core/validator/email.validator.ts +0 -10
  662. package/projects/corecomponents/src/lib/core/validator/equal.validator.ts +0 -14
  663. package/projects/corecomponents/src/lib/core/validator/max-string-length.validator.ts +0 -11
  664. package/projects/corecomponents/src/lib/core/validator/password.validator.ts +0 -35
  665. package/projects/corecomponents/src/lib/core/validator/precision-scale.validator.ts +0 -14
  666. package/projects/corecomponents/src/lib/core/validator/required.validator.ts +0 -9
  667. package/projects/corecomponents/src/lib/directives/align-with/align-with.directive.ts +0 -158
  668. package/projects/corecomponents/src/lib/directives/align-with/align-with.module.ts +0 -13
  669. package/projects/corecomponents/src/lib/directives/clickoutside/click-outside-master.service.ts +0 -64
  670. package/projects/corecomponents/src/lib/directives/clickoutside/click-outside.directive.ts +0 -72
  671. package/projects/corecomponents/src/lib/directives/clickoutside/clickoutside.module.ts +0 -17
  672. package/projects/corecomponents/src/lib/directives/observe-visibility/observe-visibility.directive.ts +0 -55
  673. package/projects/corecomponents/src/lib/directives/observe-visibility/observe-visibility.module.ts +0 -13
  674. package/projects/corecomponents/src/lib/directives/overlay/overlay-parent.directive.ts +0 -20
  675. package/projects/corecomponents/src/lib/directives/overlay/overlay.directive.ts +0 -170
  676. package/projects/corecomponents/src/lib/directives/overlay/overlay.module.ts +0 -16
  677. package/projects/corecomponents/src/lib/directives/parsevalue/parse-value.directive.ts +0 -42
  678. package/projects/corecomponents/src/lib/directives/parsevalue/parse-value.module.ts +0 -13
  679. package/projects/corecomponents/src/lib/directives/resize/resize-detect.directive.ts +0 -54
  680. package/projects/corecomponents/src/lib/directives/resize/resize-detect.module.ts +0 -13
  681. package/projects/corecomponents/src/lib/directives/ripple/ripple-ref.ts +0 -28
  682. package/projects/corecomponents/src/lib/directives/ripple/ripple-renderer.ts +0 -217
  683. package/projects/corecomponents/src/lib/directives/ripple/ripple.directive.ts +0 -116
  684. package/projects/corecomponents/src/lib/directives/ripple/ripple.module.ts +0 -24
  685. package/projects/corecomponents/src/lib/directives/ripple/scroll-dispatcher.service.ts +0 -129
  686. package/projects/corecomponents/src/lib/directives/ripple/scrollable.directive.ts +0 -37
  687. package/projects/corecomponents/src/lib/directives/ripple/viewport-ruler.service.ts +0 -84
  688. package/projects/corecomponents/src/lib/directives/screen-configuration/screen-configuration.directive.ts +0 -170
  689. package/projects/corecomponents/src/lib/directives/screen-configuration/screen-configuration.module.ts +0 -16
  690. package/projects/corecomponents/src/lib/directives/stopclick/stop-click.directive.ts +0 -35
  691. package/projects/corecomponents/src/lib/directives/stopclick/stop-click.module.ts +0 -14
  692. package/projects/corecomponents/src/lib/directives/template-wrapper/template-wrapper.directive.ts +0 -71
  693. package/projects/corecomponents/src/lib/directives/template-wrapper/template-wrapper.module.ts +0 -13
  694. package/projects/corecomponents/src/lib/directives/tooltip/tooltip-directive.module.ts +0 -17
  695. package/projects/corecomponents/src/lib/directives/tooltip/tooltip.directive.ts +0 -94
  696. package/projects/corecomponents/src/lib/interfaces/dialog-response.interface.ts +0 -7
  697. package/projects/corecomponents/src/lib/interfaces/lov-options.component.interface.ts +0 -4
  698. package/projects/corecomponents/src/lib/interfaces/scanner-input.interface.ts +0 -3
  699. package/projects/corecomponents/src/lib/interfaces/screen-config-adapter-component-interface-name.ts +0 -6
  700. package/projects/corecomponents/src/lib/interfaces/screen-config-adapter.component.interface.ts +0 -10
  701. package/projects/corecomponents/src/lib/model/data-item.ts +0 -9
  702. package/projects/corecomponents/src/lib/model/enum/app-button-type.enum.ts +0 -9
  703. package/projects/corecomponents/src/lib/model/enum/app-popup-type.enum.ts +0 -6
  704. package/projects/corecomponents/src/lib/model/enum/currency-code.enum.ts +0 -7
  705. package/projects/corecomponents/src/lib/model/enum/language-code.enum.ts +0 -8
  706. package/projects/corecomponents/src/lib/model/map/currencies.map.ts +0 -6
  707. package/projects/corecomponents/src/lib/modules/drag-drop/drag-drop-container.component.ts +0 -115
  708. package/projects/corecomponents/src/lib/modules/drag-drop/drag-drop-container.css +0 -34
  709. package/projects/corecomponents/src/lib/modules/drag-drop/drag-drop-manager.service.ts +0 -414
  710. package/projects/corecomponents/src/lib/modules/drag-drop/drag-drop.module.ts +0 -20
  711. package/projects/corecomponents/src/lib/modules/drag-drop/draggable.directive.ts +0 -70
  712. package/projects/corecomponents/src/lib/modules/drag-drop/model/co-drag-event.ts +0 -5
  713. package/projects/corecomponents/src/lib/modules/drag-drop/model/co-drop-event.ts +0 -9
  714. package/projects/corecomponents/src/lib/modules/drag-drop/model/drag-drop-container-element.ts +0 -7
  715. package/projects/corecomponents/src/lib/modules/drag-drop/model/drag-drop-container.ts +0 -9
  716. package/projects/corecomponents/src/lib/modules/media-monitor/flex-layout-breakpoint.enum.ts +0 -5
  717. package/projects/corecomponents/src/lib/modules/media-monitor/media-monitor.module.ts +0 -14
  718. package/projects/corecomponents/src/lib/modules/media-monitor/media-monitor.service.ts +0 -36
  719. package/projects/corecomponents/src/lib/modules/pagination/paginate.pipe.ts +0 -116
  720. package/projects/corecomponents/src/lib/modules/pagination/pagination-instance.ts +0 -18
  721. package/projects/corecomponents/src/lib/modules/pagination/pagination.component.ts +0 -229
  722. package/projects/corecomponents/src/lib/modules/pagination/pagination.module.ts +0 -25
  723. package/projects/corecomponents/src/lib/modules/pagination/pagination.service.ts +0 -98
  724. package/projects/corecomponents/src/lib/pipes/append.pipe.module.ts +0 -13
  725. package/projects/corecomponents/src/lib/pipes/append.pipe.ts +0 -17
  726. package/projects/corecomponents/src/lib/pipes/co-currency-pipe.module.ts +0 -13
  727. package/projects/corecomponents/src/lib/pipes/co-currency.pipe.ts +0 -45
  728. package/projects/corecomponents/src/lib/pipes/emun-keys.pipe.ts +0 -20
  729. package/projects/corecomponents/src/lib/pipes/enum-keys-pipe.module.ts +0 -13
  730. package/projects/corecomponents/src/lib/pipes/file-type-image-pipe.module.ts +0 -13
  731. package/projects/corecomponents/src/lib/pipes/file-type-image.pipe.ts +0 -45
  732. package/projects/corecomponents/src/lib/pipes/filter.pipe.module.ts +0 -13
  733. package/projects/corecomponents/src/lib/pipes/filter.pipe.ts +0 -14
  734. package/projects/corecomponents/src/lib/pipes/master-pipe.module.ts +0 -13
  735. package/projects/corecomponents/src/lib/pipes/master.pipe.ts +0 -71
  736. package/projects/corecomponents/src/lib/pipes/prepend.pipe.module.ts +0 -13
  737. package/projects/corecomponents/src/lib/pipes/prepend.pipe.ts +0 -17
  738. package/projects/corecomponents/src/lib/pipes/price-display-pipe.module.ts +0 -14
  739. package/projects/corecomponents/src/lib/pipes/price-display.pipe.ts +0 -20
  740. package/projects/corecomponents/src/lib/pipes/safe-style.pipe.module.ts +0 -13
  741. package/projects/corecomponents/src/lib/pipes/safe-style.pipe.ts +0 -14
  742. package/projects/corecomponents/src/lib/pipes/ucfirst-pipe.module.ts +0 -13
  743. package/projects/corecomponents/src/lib/pipes/ucfirst.pipe.ts +0 -14
  744. package/projects/corecomponents/src/lib/service/base-module-screen-config.service.ts +0 -241
  745. package/projects/corecomponents/src/lib/service/base-module.service.ts +0 -50
  746. package/projects/corecomponents/src/lib/service/color-sequence.service.ts +0 -20
  747. package/projects/corecomponents/src/lib/service/overlay.service.ts +0 -81
  748. package/projects/corecomponents/src/lib/translation/core-components-translation.module.ts +0 -27
  749. package/projects/corecomponents/src/lib/translation/core-components-translation.service.ts +0 -15
  750. package/projects/corecomponents/src/lib/translation/core-dictionary.service.ts +0 -27
  751. package/projects/corecomponents/src/lib/translation/core-localize.pipe.ts +0 -21
  752. package/projects/corecomponents/src/public-api.ts +0 -137
  753. package/projects/corecomponents/src/res/icons/Barcode.svg +0 -1
  754. package/projects/corecomponents/src/res/icons/CashRegister.svg +0 -1
  755. package/projects/corecomponents/src/res/icons/CirclePlusSkinny.svg +0 -1
  756. package/projects/corecomponents/src/res/icons/CrossSkinny.svg +0 -1
  757. package/projects/corecomponents/src/res/icons/FolderArrow.svg +0 -1
  758. package/projects/corecomponents/src/res/icons/Home.svg +0 -1
  759. package/projects/corecomponents/src/res/icons/POS.svg +0 -1
  760. package/projects/corecomponents/src/res/icons/Shop.svg +0 -1
  761. package/projects/corecomponents/src/res/icons/SinglePerson.svg +0 -1
  762. package/projects/corecomponents/src/res/icons/Star.svg +0 -1
  763. package/projects/corecomponents/src/res/icons/TrashBin.svg +0 -1
  764. package/projects/corecomponents/src/res/icons/account.svg +0 -1
  765. package/projects/corecomponents/src/res/icons/account_round_open.svg +0 -1
  766. package/projects/corecomponents/src/res/icons/activities.svg +0 -1
  767. package/projects/corecomponents/src/res/icons/add_to_cart_drop.svg +0 -1
  768. package/projects/corecomponents/src/res/icons/arrow_down.svg +0 -1
  769. package/projects/corecomponents/src/res/icons/arrow_fat_left.svg +0 -1
  770. package/projects/corecomponents/src/res/icons/arrow_fat_right.svg +0 -1
  771. package/projects/corecomponents/src/res/icons/arrow_left.svg +0 -4
  772. package/projects/corecomponents/src/res/icons/arrow_left_round_open.svg +0 -1
  773. package/projects/corecomponents/src/res/icons/arrow_point_down.svg +0 -6
  774. package/projects/corecomponents/src/res/icons/arrow_point_left.svg +0 -8
  775. package/projects/corecomponents/src/res/icons/arrow_point_right.svg +0 -8
  776. package/projects/corecomponents/src/res/icons/arrow_point_up.svg +0 -8
  777. package/projects/corecomponents/src/res/icons/arrow_right_round_open.svg +0 -1
  778. package/projects/corecomponents/src/res/icons/arrow_scroll_down.svg +0 -6
  779. package/projects/corecomponents/src/res/icons/arrow_scroll_left.svg +0 -22
  780. package/projects/corecomponents/src/res/icons/arrow_scroll_right.svg +0 -22
  781. package/projects/corecomponents/src/res/icons/arrow_scroll_up.svg +0 -6
  782. package/projects/corecomponents/src/res/icons/arrow_up.svg +0 -3
  783. package/projects/corecomponents/src/res/icons/article.svg +0 -1
  784. package/projects/corecomponents/src/res/icons/article_with_fold.svg +0 -1
  785. package/projects/corecomponents/src/res/icons/asterisk_small.svg +0 -1
  786. package/projects/corecomponents/src/res/icons/attachments.svg +0 -1
  787. package/projects/corecomponents/src/res/icons/back_to_top.svg +0 -1
  788. package/projects/corecomponents/src/res/icons/big_mac.svg +0 -6
  789. package/projects/corecomponents/src/res/icons/boxes.svg +0 -1
  790. package/projects/corecomponents/src/res/icons/brush.svg +0 -1
  791. package/projects/corecomponents/src/res/icons/brush_round_open.svg +0 -1
  792. package/projects/corecomponents/src/res/icons/building_columns.svg +0 -1
  793. package/projects/corecomponents/src/res/icons/businessrules.svg +0 -1
  794. package/projects/corecomponents/src/res/icons/calendar.svg +0 -1
  795. package/projects/corecomponents/src/res/icons/calendar_day.svg +0 -37
  796. package/projects/corecomponents/src/res/icons/calendar_day_regular.svg +0 -1
  797. package/projects/corecomponents/src/res/icons/calendar_empty.svg +0 -16
  798. package/projects/corecomponents/src/res/icons/calendar_range.svg +0 -1
  799. package/projects/corecomponents/src/res/icons/calendar_round_open.svg +0 -16
  800. package/projects/corecomponents/src/res/icons/camera.svg +0 -1
  801. package/projects/corecomponents/src/res/icons/cancel.svg +0 -1
  802. package/projects/corecomponents/src/res/icons/cancel_round_filled.svg +0 -1
  803. package/projects/corecomponents/src/res/icons/cancel_round_open.svg +0 -1
  804. package/projects/corecomponents/src/res/icons/cart.svg +0 -1
  805. package/projects/corecomponents/src/res/icons/cart_open.svg +0 -8
  806. package/projects/corecomponents/src/res/icons/case_manager.svg +0 -1
  807. package/projects/corecomponents/src/res/icons/cash_register_simple.svg +0 -1
  808. package/projects/corecomponents/src/res/icons/change_location.svg +0 -1
  809. package/projects/corecomponents/src/res/icons/check.svg +0 -1
  810. package/projects/corecomponents/src/res/icons/check_duotone.svg +0 -1
  811. package/projects/corecomponents/src/res/icons/check_round.svg +0 -1
  812. package/projects/corecomponents/src/res/icons/check_round_open.svg +0 -10
  813. package/projects/corecomponents/src/res/icons/check_simple.svg +0 -3
  814. package/projects/corecomponents/src/res/icons/check_thin.svg +0 -1
  815. package/projects/corecomponents/src/res/icons/chevron_down_regular.svg +0 -1
  816. package/projects/corecomponents/src/res/icons/chevron_up_regular.svg +0 -1
  817. package/projects/corecomponents/src/res/icons/client.svg +0 -1
  818. package/projects/corecomponents/src/res/icons/clock.svg +0 -1
  819. package/projects/corecomponents/src/res/icons/clockArrow.svg +0 -1
  820. package/projects/corecomponents/src/res/icons/cogWheelPlus.svg +0 -1
  821. package/projects/corecomponents/src/res/icons/cogWheels.svg +0 -1
  822. package/projects/corecomponents/src/res/icons/column_options.svg +0 -18
  823. package/projects/corecomponents/src/res/icons/company.svg +0 -1
  824. package/projects/corecomponents/src/res/icons/company_flat.svg +0 -4
  825. package/projects/corecomponents/src/res/icons/configurable.svg +0 -1
  826. package/projects/corecomponents/src/res/icons/consultant.svg +0 -1
  827. package/projects/corecomponents/src/res/icons/copy.svg +0 -1
  828. package/projects/corecomponents/src/res/icons/crosshair_1.svg +0 -1
  829. package/projects/corecomponents/src/res/icons/dashboard.svg +0 -1
  830. package/projects/corecomponents/src/res/icons/delivery_method.svg +0 -32
  831. package/projects/corecomponents/src/res/icons/delivery_status_uncheck.svg +0 -9
  832. package/projects/corecomponents/src/res/icons/delivery_truck.svg +0 -1
  833. package/projects/corecomponents/src/res/icons/detail_record.svg +0 -1
  834. package/projects/corecomponents/src/res/icons/detail_view.svg +0 -1
  835. package/projects/corecomponents/src/res/icons/dictionary.svg +0 -1
  836. package/projects/corecomponents/src/res/icons/documentWrench.svg +0 -1
  837. package/projects/corecomponents/src/res/icons/documents.svg +0 -1
  838. package/projects/corecomponents/src/res/icons/dollar.svg +0 -1
  839. package/projects/corecomponents/src/res/icons/download.svg +0 -1
  840. package/projects/corecomponents/src/res/icons/dropdown.svg +0 -4
  841. package/projects/corecomponents/src/res/icons/dropzone.svg +0 -1
  842. package/projects/corecomponents/src/res/icons/edit_pencil.svg +0 -1
  843. package/projects/corecomponents/src/res/icons/edit_pencil_circle.svg +0 -1
  844. package/projects/corecomponents/src/res/icons/edit_pencil_round.svg +0 -11
  845. package/projects/corecomponents/src/res/icons/edit_pencil_simple.svg +0 -16
  846. package/projects/corecomponents/src/res/icons/email.svg +0 -1
  847. package/projects/corecomponents/src/res/icons/email_round_open.svg +0 -6
  848. package/projects/corecomponents/src/res/icons/employee.svg +0 -1
  849. package/projects/corecomponents/src/res/icons/employee_two.svg +0 -1
  850. package/projects/corecomponents/src/res/icons/employer.svg +0 -1
  851. package/projects/corecomponents/src/res/icons/employment.svg +0 -1
  852. package/projects/corecomponents/src/res/icons/employment_end.svg +0 -7
  853. package/projects/corecomponents/src/res/icons/equal.svg +0 -1
  854. package/projects/corecomponents/src/res/icons/euro.svg +0 -1
  855. package/projects/corecomponents/src/res/icons/exclamation.svg +0 -1
  856. package/projects/corecomponents/src/res/icons/exclamation_round_open.svg +0 -1
  857. package/projects/corecomponents/src/res/icons/eye_circle.svg +0 -1
  858. package/projects/corecomponents/src/res/icons/eye_circle_large.svg +0 -1
  859. package/projects/corecomponents/src/res/icons/eye_round_filled.svg +0 -11
  860. package/projects/corecomponents/src/res/icons/factory.svg +0 -1
  861. package/projects/corecomponents/src/res/icons/fasttrack.svg +0 -1
  862. package/projects/corecomponents/src/res/icons/filter.svg +0 -1
  863. package/projects/corecomponents/src/res/icons/finish.svg +0 -1
  864. package/projects/corecomponents/src/res/icons/fixed_option_value_tree.svg +0 -1
  865. package/projects/corecomponents/src/res/icons/fixed_tree_option_value.svg +0 -1
  866. package/projects/corecomponents/src/res/icons/floppy_disk_solid.svg +0 -1
  867. package/projects/corecomponents/src/res/icons/folder_arrow_in.svg +0 -8
  868. package/projects/corecomponents/src/res/icons/formula.svg +0 -1
  869. package/projects/corecomponents/src/res/icons/fullscreen.svg +0 -6
  870. package/projects/corecomponents/src/res/icons/gear_double.svg +0 -21
  871. package/projects/corecomponents/src/res/icons/global_search.svg +0 -45
  872. package/projects/corecomponents/src/res/icons/globe.svg +0 -1
  873. package/projects/corecomponents/src/res/icons/greater_than.svg +0 -1
  874. package/projects/corecomponents/src/res/icons/groupby.svg +0 -1
  875. package/projects/corecomponents/src/res/icons/hamburger.svg +0 -1
  876. package/projects/corecomponents/src/res/icons/hand_pointer.svg +0 -1
  877. package/projects/corecomponents/src/res/icons/hbarchart.svg +0 -6
  878. package/projects/corecomponents/src/res/icons/home_circle.svg +0 -9
  879. package/projects/corecomponents/src/res/icons/home_open.svg +0 -7
  880. package/projects/corecomponents/src/res/icons/home_round_open.svg +0 -11
  881. package/projects/corecomponents/src/res/icons/hourglass.svg +0 -1
  882. package/projects/corecomponents/src/res/icons/icon_3d.svg +0 -1
  883. package/projects/corecomponents/src/res/icons/id.svg +0 -1
  884. package/projects/corecomponents/src/res/icons/image.svg +0 -1
  885. package/projects/corecomponents/src/res/icons/incoming_storage.svg +0 -1
  886. package/projects/corecomponents/src/res/icons/information.svg +0 -1
  887. package/projects/corecomponents/src/res/icons/information_round_open.svg +0 -6
  888. package/projects/corecomponents/src/res/icons/input_multiplechoice.svg +0 -1
  889. package/projects/corecomponents/src/res/icons/input_text.svg +0 -1
  890. package/projects/corecomponents/src/res/icons/input_textarea.svg +0 -1
  891. package/projects/corecomponents/src/res/icons/inventory.svg +0 -1
  892. package/projects/corecomponents/src/res/icons/invoice.svg +0 -20
  893. package/projects/corecomponents/src/res/icons/ione_logo.svg +0 -1
  894. package/projects/corecomponents/src/res/icons/ione_logo_fat.svg +0 -1
  895. package/projects/corecomponents/src/res/icons/ione_status_next.svg +0 -43
  896. package/projects/corecomponents/src/res/icons/ione_workflow.svg +0 -62
  897. package/projects/corecomponents/src/res/icons/keyboard.svg +0 -1
  898. package/projects/corecomponents/src/res/icons/keychain.svg +0 -1
  899. package/projects/corecomponents/src/res/icons/label.svg +0 -5
  900. package/projects/corecomponents/src/res/icons/label_round_open.svg +0 -6
  901. package/projects/corecomponents/src/res/icons/landmark_flag.svg +0 -1
  902. package/projects/corecomponents/src/res/icons/library.svg +0 -21
  903. package/projects/corecomponents/src/res/icons/linechart.svg +0 -1
  904. package/projects/corecomponents/src/res/icons/link_circle.svg +0 -1
  905. package/projects/corecomponents/src/res/icons/linked_products.svg +0 -1
  906. package/projects/corecomponents/src/res/icons/list_view.svg +0 -8
  907. package/projects/corecomponents/src/res/icons/location.svg +0 -1
  908. package/projects/corecomponents/src/res/icons/lock.svg +0 -1
  909. package/projects/corecomponents/src/res/icons/lock_round_open.svg +0 -8
  910. package/projects/corecomponents/src/res/icons/logo.svg +0 -1
  911. package/projects/corecomponents/src/res/icons/logout.svg +0 -1
  912. package/projects/corecomponents/src/res/icons/magic_wand.svg +0 -1
  913. package/projects/corecomponents/src/res/icons/magnifier.svg +0 -5
  914. package/projects/corecomponents/src/res/icons/manager.svg +0 -12
  915. package/projects/corecomponents/src/res/icons/mask.svg +0 -1
  916. package/projects/corecomponents/src/res/icons/master_detail.svg +0 -1
  917. package/projects/corecomponents/src/res/icons/material_circle_large.svg +0 -1
  918. package/projects/corecomponents/src/res/icons/medal_bronze.svg +0 -23
  919. package/projects/corecomponents/src/res/icons/medal_gold.svg +0 -23
  920. package/projects/corecomponents/src/res/icons/medal_silver.svg +0 -23
  921. package/projects/corecomponents/src/res/icons/medical_officer.svg +0 -14
  922. package/projects/corecomponents/src/res/icons/microphone.svg +0 -1
  923. package/projects/corecomponents/src/res/icons/minus_round_open.svg +0 -1
  924. package/projects/corecomponents/src/res/icons/minus_simple.svg +0 -1
  925. package/projects/corecomponents/src/res/icons/mobile.svg +0 -1
  926. package/projects/corecomponents/src/res/icons/multi_select_check.svg +0 -10
  927. package/projects/corecomponents/src/res/icons/new_task.svg +0 -1
  928. package/projects/corecomponents/src/res/icons/not_equal.svg +0 -4
  929. package/projects/corecomponents/src/res/icons/note.svg +0 -1
  930. package/projects/corecomponents/src/res/icons/note_bordered.svg +0 -1
  931. package/projects/corecomponents/src/res/icons/notification.svg +0 -1
  932. package/projects/corecomponents/src/res/icons/option.svg +0 -1
  933. package/projects/corecomponents/src/res/icons/optionset.svg +0 -1
  934. package/projects/corecomponents/src/res/icons/order.svg +0 -1
  935. package/projects/corecomponents/src/res/icons/orderpicking.svg +0 -1
  936. package/projects/corecomponents/src/res/icons/outgoing_storage.svg +0 -1
  937. package/projects/corecomponents/src/res/icons/over_booking.svg +0 -1
  938. package/projects/corecomponents/src/res/icons/pause_circle.svg +0 -12
  939. package/projects/corecomponents/src/res/icons/pen_to_square_solid.svg +0 -1
  940. package/projects/corecomponents/src/res/icons/pencil_round_open.svg +0 -10
  941. package/projects/corecomponents/src/res/icons/phone.svg +0 -1
  942. package/projects/corecomponents/src/res/icons/phone_round_open.svg +0 -10
  943. package/projects/corecomponents/src/res/icons/piechart.svg +0 -24
  944. package/projects/corecomponents/src/res/icons/pin.svg +0 -9
  945. package/projects/corecomponents/src/res/icons/pin_round_open.svg +0 -11
  946. package/projects/corecomponents/src/res/icons/play_circle.svg +0 -1
  947. package/projects/corecomponents/src/res/icons/plus_round.svg +0 -9
  948. package/projects/corecomponents/src/res/icons/plus_round_open.svg +0 -1
  949. package/projects/corecomponents/src/res/icons/plus_simple.svg +0 -1
  950. package/projects/corecomponents/src/res/icons/plus_skinny.svg +0 -8
  951. package/projects/corecomponents/src/res/icons/plus_solid.svg +0 -1
  952. package/projects/corecomponents/src/res/icons/plus_stars.svg +0 -1
  953. package/projects/corecomponents/src/res/icons/pointer.svg +0 -7
  954. package/projects/corecomponents/src/res/icons/pointer_3d.svg +0 -8
  955. package/projects/corecomponents/src/res/icons/pointer_filled.svg +0 -6
  956. package/projects/corecomponents/src/res/icons/positioning.svg +0 -1
  957. package/projects/corecomponents/src/res/icons/pregnancy.svg +0 -18
  958. package/projects/corecomponents/src/res/icons/preset.svg +0 -1
  959. package/projects/corecomponents/src/res/icons/print.svg +0 -1
  960. package/projects/corecomponents/src/res/icons/product_properties.svg +0 -1
  961. package/projects/corecomponents/src/res/icons/purchase.svg +0 -15
  962. package/projects/corecomponents/src/res/icons/qrcode.svg +0 -59
  963. package/projects/corecomponents/src/res/icons/question.svg +0 -1
  964. package/projects/corecomponents/src/res/icons/radio_uncheck.svg +0 -1
  965. package/projects/corecomponents/src/res/icons/range.svg +0 -1
  966. package/projects/corecomponents/src/res/icons/range_select.svg +0 -1
  967. package/projects/corecomponents/src/res/icons/rectangles.svg +0 -15
  968. package/projects/corecomponents/src/res/icons/refresh.svg +0 -1
  969. package/projects/corecomponents/src/res/icons/relations.svg +0 -20
  970. package/projects/corecomponents/src/res/icons/remark.svg +0 -1
  971. package/projects/corecomponents/src/res/icons/remark_round_open.svg +0 -6
  972. package/projects/corecomponents/src/res/icons/report_in_type.svg +0 -1
  973. package/projects/corecomponents/src/res/icons/resize.svg +0 -3
  974. package/projects/corecomponents/src/res/icons/resize_down.svg +0 -1
  975. package/projects/corecomponents/src/res/icons/resize_up.svg +0 -1
  976. package/projects/corecomponents/src/res/icons/return_goods.svg +0 -4
  977. package/projects/corecomponents/src/res/icons/returns.svg +0 -1
  978. package/projects/corecomponents/src/res/icons/rotate_left_solid.svg +0 -1
  979. package/projects/corecomponents/src/res/icons/save_disk.svg +0 -15
  980. package/projects/corecomponents/src/res/icons/save_skinny.svg +0 -3
  981. package/projects/corecomponents/src/res/icons/scale_balanced.svg +0 -1
  982. package/projects/corecomponents/src/res/icons/scanner.svg +0 -1
  983. package/projects/corecomponents/src/res/icons/search_round_open.svg +0 -9
  984. package/projects/corecomponents/src/res/icons/sections.svg +0 -1
  985. package/projects/corecomponents/src/res/icons/select_all_round.svg +0 -5
  986. package/projects/corecomponents/src/res/icons/services.svg +0 -1
  987. package/projects/corecomponents/src/res/icons/settings.svg +0 -20
  988. package/projects/corecomponents/src/res/icons/shopping_cart.svg +0 -1
  989. package/projects/corecomponents/src/res/icons/shopping_cart_nr.svg +0 -1
  990. package/projects/corecomponents/src/res/icons/shortcut.svg +0 -1
  991. package/projects/corecomponents/src/res/icons/skills.svg +0 -1
  992. package/projects/corecomponents/src/res/icons/slide_in.svg +0 -1
  993. package/projects/corecomponents/src/res/icons/slider_panel.svg +0 -7
  994. package/projects/corecomponents/src/res/icons/small_tiles.svg +0 -1
  995. package/projects/corecomponents/src/res/icons/smaller_than.svg +0 -1
  996. package/projects/corecomponents/src/res/icons/sort_asc.svg +0 -1
  997. package/projects/corecomponents/src/res/icons/sort_desc.svg +0 -1
  998. package/projects/corecomponents/src/res/icons/star_round_open.svg +0 -6
  999. package/projects/corecomponents/src/res/icons/status_active.svg +0 -1
  1000. package/projects/corecomponents/src/res/icons/status_adoption.svg +0 -1
  1001. package/projects/corecomponents/src/res/icons/status_fostercare.svg +0 -1
  1002. package/projects/corecomponents/src/res/icons/status_ill.svg +0 -10
  1003. package/projects/corecomponents/src/res/icons/status_leave.svg +0 -1
  1004. package/projects/corecomponents/src/res/icons/status_pregnancy.svg +0 -10
  1005. package/projects/corecomponents/src/res/icons/stock.svg +0 -1
  1006. package/projects/corecomponents/src/res/icons/stock_management.svg +0 -25
  1007. package/projects/corecomponents/src/res/icons/storage.svg +0 -1
  1008. package/projects/corecomponents/src/res/icons/supervisor.svg +0 -1
  1009. package/projects/corecomponents/src/res/icons/supplier.svg +0 -18
  1010. package/projects/corecomponents/src/res/icons/surgery.svg +0 -35
  1011. package/projects/corecomponents/src/res/icons/tablechart.svg +0 -15
  1012. package/projects/corecomponents/src/res/icons/tag.svg +0 -1
  1013. package/projects/corecomponents/src/res/icons/talk_too_much.svg +0 -7
  1014. package/projects/corecomponents/src/res/icons/target.svg +0 -1
  1015. package/projects/corecomponents/src/res/icons/task.svg +0 -1
  1016. package/projects/corecomponents/src/res/icons/thick_lines.svg +0 -1
  1017. package/projects/corecomponents/src/res/icons/thin_lines.svg +0 -1
  1018. package/projects/corecomponents/src/res/icons/three_sixty_view.svg +0 -1
  1019. package/projects/corecomponents/src/res/icons/thumb_bronze.svg +0 -29
  1020. package/projects/corecomponents/src/res/icons/thumb_gold.svg +0 -29
  1021. package/projects/corecomponents/src/res/icons/thumb_silver.svg +0 -29
  1022. package/projects/corecomponents/src/res/icons/timeline.svg +0 -1
  1023. package/projects/corecomponents/src/res/icons/transaction_detail.svg +0 -19
  1024. package/projects/corecomponents/src/res/icons/transactions.svg +0 -12
  1025. package/projects/corecomponents/src/res/icons/trash_can_solid.svg +0 -1
  1026. package/projects/corecomponents/src/res/icons/triangle_down.svg +0 -1
  1027. package/projects/corecomponents/src/res/icons/triangle_large.svg +0 -5
  1028. package/projects/corecomponents/src/res/icons/triangle_left.svg +0 -1
  1029. package/projects/corecomponents/src/res/icons/triangle_right.svg +0 -1
  1030. package/projects/corecomponents/src/res/icons/triangle_up.svg +0 -1
  1031. package/projects/corecomponents/src/res/icons/truck.svg +0 -1
  1032. package/projects/corecomponents/src/res/icons/truck_calendar.svg +0 -15
  1033. package/projects/corecomponents/src/res/icons/undo_round_open.svg +0 -1
  1034. package/projects/corecomponents/src/res/icons/user.svg +0 -9
  1035. package/projects/corecomponents/src/res/icons/variants.svg +0 -1
  1036. package/projects/corecomponents/src/res/icons/vbarchart.svg +0 -6
  1037. package/projects/corecomponents/src/res/icons/view.svg +0 -1
  1038. package/projects/corecomponents/src/res/icons/warehouse.svg +0 -1
  1039. package/projects/corecomponents/src/res/icons/watermark.svg +0 -10
  1040. package/projects/corecomponents/src/res/icons/website.svg +0 -1
  1041. package/projects/corecomponents/src/res/icons/wizard.svg +0 -18
  1042. package/projects/corecomponents/src/res/icons/wms.svg +0 -24
  1043. package/projects/corecomponents/src/res/icons/work_in_progress.svg +0 -10
  1044. package/projects/corecomponents/src/res/icons/work_in_progress_round_open.svg +0 -9
  1045. package/projects/corecomponents/src/res/icons/wrench.svg +0 -4
  1046. package/projects/corecomponents/src/res/icons/x_axis.svg +0 -5
  1047. package/projects/corecomponents/src/res/icons/y_axis.svg +0 -5
  1048. package/projects/corecomponents/src/test.ts +0 -28
  1049. package/projects/corecomponents/tsconfig.lib.json +0 -20
  1050. package/projects/corecomponents/tsconfig.lib.prod.json +0 -16
  1051. package/projects/corecomponents/tsconfig.spec.json +0 -17
  1052. package/scripts/export.bat +0 -9
  1053. package/scripts/merge-icons.js +0 -39
  1054. package/scripts/publish.bat +0 -6
  1055. package/src/app/app.component.scss +0 -36
  1056. package/src/app/app.component.spec.ts +0 -31
  1057. package/src/app/app.component.ts +0 -559
  1058. package/src/app/app.module.ts +0 -145
  1059. package/src/app/components/button-showcase.component.ts +0 -82
  1060. package/src/app/components/carousel-3d-showcase.component.ts +0 -70
  1061. package/src/app/components/checkbox-showcase.component.ts +0 -56
  1062. package/src/app/components/co-dialog-showcase.component.ts +0 -189
  1063. package/src/app/components/co-simple-grid-test.component.ts +0 -146
  1064. package/src/app/components/filter-item-showcase.component.ts +0 -178
  1065. package/src/app/components/forms-showcase.component.ts +0 -703
  1066. package/src/app/components/icon-showcase.component.ts +0 -72
  1067. package/src/app/components/input-checkbox-showcase.component.ts +0 -87
  1068. package/src/app/components/input-date-picker-showcase.component.ts +0 -90
  1069. package/src/app/components/input-number-picker-showcase.component.ts +0 -125
  1070. package/src/app/components/input-radio-button-showcase.component.ts +0 -87
  1071. package/src/app/components/input-scanner-showcase.component.ts +0 -35
  1072. package/src/app/components/input-text-showcase.component.ts +0 -200
  1073. package/src/app/components/input-time-showcase.component.ts +0 -104
  1074. package/src/app/components/number-picker-showcase.component.ts +0 -17
  1075. package/src/app/components/simple-grid-showcase.component.ts +0 -60
  1076. package/src/app/model/data-item.ts +0 -9
  1077. package/src/app/model/enum/currency-code.enum.ts +0 -7
  1078. package/src/app/model/enum/language-code.enum.ts +0 -8
  1079. package/src/app/model/map/currencies.map.ts +0 -6
  1080. package/src/app/service/showcase-data.service.ts +0 -1110
  1081. package/src/assets/.gitkeep +0 -0
  1082. package/src/environments/environment.prod.ts +0 -3
  1083. package/src/environments/environment.ts +0 -16
  1084. package/src/favicon.ico +0 -0
  1085. package/src/index.html +0 -13
  1086. package/src/main.ts +0 -12
  1087. package/src/polyfills.ts +0 -65
  1088. package/src/styles.scss +0 -56
  1089. package/src/test.ts +0 -27
  1090. package/tsconfig.app.json +0 -15
  1091. package/tsconfig.json +0 -37
  1092. package/tsconfig.spec.json +0 -18
  1093. /package/{projects/corecomponents/src/lib → lib}/components/article-tile/article-tile.component.scss +0 -0
  1094. /package/{projects/corecomponents/src/lib → lib}/components/base/commit-buttons/style/_layout.scss +0 -0
  1095. /package/{projects/corecomponents/src/lib → lib}/components/base/commit-buttons/style/_material-definition.scss +0 -0
  1096. /package/{projects/corecomponents/src/lib → lib}/components/base/commit-buttons/style/_theme.scss +0 -0
  1097. /package/{projects/corecomponents/src/lib → lib}/components/base/commit-buttons/style/material.scss +0 -0
  1098. /package/{projects/corecomponents/src/lib → lib}/components/button/style/_co-ripple.scss +0 -0
  1099. /package/{projects/corecomponents/src/lib → lib}/components/button/style/_layout.scss +0 -0
  1100. /package/{projects/corecomponents/src/lib → lib}/components/button/style/_material-definition.scss +0 -0
  1101. /package/{projects/corecomponents/src/lib → lib}/components/button/style/_theme.scss +0 -0
  1102. /package/{projects/corecomponents/src/lib → lib}/components/button/style/material.scss +0 -0
  1103. /package/{projects/corecomponents/src/lib → lib}/components/calendar/style/_layout.scss +0 -0
  1104. /package/{projects/corecomponents/src/lib → lib}/components/calendar/style/_material-definition.scss +0 -0
  1105. /package/{projects/corecomponents/src/lib → lib}/components/calendar/style/_theme.scss +0 -0
  1106. /package/{projects/corecomponents/src/lib → lib}/components/calendar/style/material.scss +0 -0
  1107. /package/{projects/corecomponents/src/lib → lib}/components/card/style/_layout.scss +0 -0
  1108. /package/{projects/corecomponents/src/lib → lib}/components/card/style/_material-definition.scss +0 -0
  1109. /package/{projects/corecomponents/src/lib → lib}/components/card/style/_theme.scss +0 -0
  1110. /package/{projects/corecomponents/src/lib → lib}/components/card/style/material.scss +0 -0
  1111. /package/{projects/corecomponents/src/lib → lib}/components/carousel/style/_layout.scss +0 -0
  1112. /package/{projects/corecomponents/src/lib → lib}/components/carousel/style/_material-definition.scss +0 -0
  1113. /package/{projects/corecomponents/src/lib → lib}/components/carousel/style/_theme.scss +0 -0
  1114. /package/{projects/corecomponents/src/lib → lib}/components/carousel/style/material.scss +0 -0
  1115. /package/{projects/corecomponents/src/lib → lib}/components/carousel-3d/style/_layout.scss +0 -0
  1116. /package/{projects/corecomponents/src/lib → lib}/components/carousel-3d/style/_material-definition.scss +0 -0
  1117. /package/{projects/corecomponents/src/lib → lib}/components/carousel-3d/style/_theme.scss +0 -0
  1118. /package/{projects/corecomponents/src/lib → lib}/components/carousel-3d/style/material.scss +0 -0
  1119. /package/{projects/corecomponents/src/lib → lib}/components/checkmark-overlay/style/_layout.scss +0 -0
  1120. /package/{projects/corecomponents/src/lib → lib}/components/checkmark-overlay/style/_material-definition.scss +0 -0
  1121. /package/{projects/corecomponents/src/lib → lib}/components/checkmark-overlay/style/_theme.scss +0 -0
  1122. /package/{projects/corecomponents/src/lib → lib}/components/checkmark-overlay/style/material.scss +0 -0
  1123. /package/{projects/corecomponents/src/lib → lib}/components/co-dialog/style/_layout.scss +0 -0
  1124. /package/{projects/corecomponents/src/lib → lib}/components/co-dialog/style/_material-definition.scss +0 -0
  1125. /package/{projects/corecomponents/src/lib → lib}/components/co-dialog/style/_theme.scss +0 -0
  1126. /package/{projects/corecomponents/src/lib → lib}/components/co-dialog/style/material.scss +0 -0
  1127. /package/{projects/corecomponents/src/lib → lib}/components/co-dialog-wizard/style/_layout.scss +0 -0
  1128. /package/{projects/corecomponents/src/lib → lib}/components/co-dialog-wizard/style/_material-definition.scss +0 -0
  1129. /package/{projects/corecomponents/src/lib → lib}/components/co-dialog-wizard/style/_theme.scss +0 -0
  1130. /package/{projects/corecomponents/src/lib → lib}/components/co-dialog-wizard/style/material.scss +0 -0
  1131. /package/{projects/corecomponents/src/lib → lib}/components/collapsible/style/_layout.scss +0 -0
  1132. /package/{projects/corecomponents/src/lib → lib}/components/collapsible/style/_material-definition.scss +0 -0
  1133. /package/{projects/corecomponents/src/lib → lib}/components/collapsible/style/_theme.scss +0 -0
  1134. /package/{projects/corecomponents/src/lib → lib}/components/collapsible/style/material.scss +0 -0
  1135. /package/{projects/corecomponents/src/lib → lib}/components/color-picker/style/_layout.scss +0 -0
  1136. /package/{projects/corecomponents/src/lib → lib}/components/color-picker/style/_material-definition.scss +0 -0
  1137. /package/{projects/corecomponents/src/lib → lib}/components/color-picker/style/_theme.scss +0 -0
  1138. /package/{projects/corecomponents/src/lib → lib}/components/color-picker/style/material.scss +0 -0
  1139. /package/{projects/corecomponents/src/lib → lib}/components/core-dialog/confirmation-dialog/style/_layout.scss +0 -0
  1140. /package/{projects/corecomponents/src/lib → lib}/components/core-dialog/confirmation-dialog/style/_material-definition.scss +0 -0
  1141. /package/{projects/corecomponents/src/lib → lib}/components/core-dialog/confirmation-dialog/style/_theme.scss +0 -0
  1142. /package/{projects/corecomponents/src/lib → lib}/components/core-dialog/confirmation-dialog/style/material.scss +0 -0
  1143. /package/{projects/corecomponents/src/lib → lib}/components/core-dialog/style/_layout.scss +0 -0
  1144. /package/{projects/corecomponents/src/lib → lib}/components/core-dialog/style/_material-definition.scss +0 -0
  1145. /package/{projects/corecomponents/src/lib → lib}/components/core-dialog/style/_theme.scss +0 -0
  1146. /package/{projects/corecomponents/src/lib → lib}/components/core-dialog/style/material.scss +0 -0
  1147. /package/{projects/corecomponents/src/lib → lib}/components/double-calendar/style/_layout.scss +0 -0
  1148. /package/{projects/corecomponents/src/lib → lib}/components/double-calendar/style/_material-definition.scss +0 -0
  1149. /package/{projects/corecomponents/src/lib → lib}/components/double-calendar/style/_theme.scss +0 -0
  1150. /package/{projects/corecomponents/src/lib → lib}/components/double-calendar/style/material.scss +0 -0
  1151. /package/{projects/corecomponents/src/lib → lib}/components/filter-item/style/_layout.scss +0 -0
  1152. /package/{projects/corecomponents/src/lib → lib}/components/filter-item/style/_material-definition.scss +0 -0
  1153. /package/{projects/corecomponents/src/lib → lib}/components/filter-item/style/_theme.scss +0 -0
  1154. /package/{projects/corecomponents/src/lib → lib}/components/filter-item/style/material.scss +0 -0
  1155. /package/{projects/corecomponents/src/lib → lib}/components/grid-toolbar/style/_layout.scss +0 -0
  1156. /package/{projects/corecomponents/src/lib → lib}/components/grid-toolbar/style/_material-definition.scss +0 -0
  1157. /package/{projects/corecomponents/src/lib → lib}/components/grid-toolbar/style/_theme.scss +0 -0
  1158. /package/{projects/corecomponents/src/lib → lib}/components/grid-toolbar/style/material.scss +0 -0
  1159. /package/{projects/corecomponents/src/lib → lib}/components/grid-toolbar-button/style/_layout.scss +0 -0
  1160. /package/{projects/corecomponents/src/lib → lib}/components/grid-toolbar-button/style/_material-definition.scss +0 -0
  1161. /package/{projects/corecomponents/src/lib → lib}/components/grid-toolbar-button/style/_theme.scss +0 -0
  1162. /package/{projects/corecomponents/src/lib → lib}/components/grid-toolbar-button/style/material.scss +0 -0
  1163. /package/{projects/corecomponents/src/lib → lib}/components/icon/style/_layout.scss +0 -0
  1164. /package/{projects/corecomponents/src/lib → lib}/components/icon/style/_material-definition.scss +0 -0
  1165. /package/{projects/corecomponents/src/lib → lib}/components/icon/style/_theme.scss +0 -0
  1166. /package/{projects/corecomponents/src/lib → lib}/components/icon/style/material.scss +0 -0
  1167. /package/{projects/corecomponents/src/lib → lib}/components/icon-collapse-handle/style/_layout.scss +0 -0
  1168. /package/{projects/corecomponents/src/lib → lib}/components/icon-collapse-handle/style/_material-definition.scss +0 -0
  1169. /package/{projects/corecomponents/src/lib → lib}/components/icon-collapse-handle/style/_theme.scss +0 -0
  1170. /package/{projects/corecomponents/src/lib → lib}/components/icon-collapse-handle/style/material.scss +0 -0
  1171. /package/{projects/corecomponents/src/lib → lib}/components/image/style/_layout.scss +0 -0
  1172. /package/{projects/corecomponents/src/lib → lib}/components/image/style/_material-definition.scss +0 -0
  1173. /package/{projects/corecomponents/src/lib → lib}/components/image/style/_theme.scss +0 -0
  1174. /package/{projects/corecomponents/src/lib → lib}/components/image/style/material.scss +0 -0
  1175. /package/{projects/corecomponents/src/lib → lib}/components/input-checkbox/style/_layout.scss +0 -0
  1176. /package/{projects/corecomponents/src/lib → lib}/components/input-checkbox/style/_material-definition.scss +0 -0
  1177. /package/{projects/corecomponents/src/lib → lib}/components/input-checkbox/style/_theme.scss +0 -0
  1178. /package/{projects/corecomponents/src/lib → lib}/components/input-checkbox/style/material.scss +0 -0
  1179. /package/{projects/corecomponents/src/lib → lib}/components/input-date-picker/style/_layout.scss +0 -0
  1180. /package/{projects/corecomponents/src/lib → lib}/components/input-date-picker/style/_material-definition.scss +0 -0
  1181. /package/{projects/corecomponents/src/lib → lib}/components/input-date-picker/style/_theme.scss +0 -0
  1182. /package/{projects/corecomponents/src/lib → lib}/components/input-date-picker/style/material.scss +0 -0
  1183. /package/{projects/corecomponents/src/lib → lib}/components/input-date-range-picker/style/_layout.scss +0 -0
  1184. /package/{projects/corecomponents/src/lib → lib}/components/input-date-range-picker/style/_material-definition.scss +0 -0
  1185. /package/{projects/corecomponents/src/lib → lib}/components/input-date-range-picker/style/_theme.scss +0 -0
  1186. /package/{projects/corecomponents/src/lib → lib}/components/input-date-range-picker/style/material.scss +0 -0
  1187. /package/{projects/corecomponents/src/lib → lib}/components/input-number-picker/style/_layout.scss +0 -0
  1188. /package/{projects/corecomponents/src/lib → lib}/components/input-number-picker/style/_material-definition.scss +0 -0
  1189. /package/{projects/corecomponents/src/lib → lib}/components/input-number-picker/style/_theme.scss +0 -0
  1190. /package/{projects/corecomponents/src/lib → lib}/components/input-number-picker/style/material.scss +0 -0
  1191. /package/{projects/corecomponents/src/lib → lib}/components/input-radio-button/style/_layout.scss +0 -0
  1192. /package/{projects/corecomponents/src/lib → lib}/components/input-radio-button/style/_material-definition.scss +0 -0
  1193. /package/{projects/corecomponents/src/lib → lib}/components/input-radio-button/style/_theme.scss +0 -0
  1194. /package/{projects/corecomponents/src/lib → lib}/components/input-radio-button/style/material.scss +0 -0
  1195. /package/{projects/corecomponents/src/lib → lib}/components/input-scanner/style/_layout.scss +0 -0
  1196. /package/{projects/corecomponents/src/lib → lib}/components/input-scanner/style/_material-definition.scss +0 -0
  1197. /package/{projects/corecomponents/src/lib → lib}/components/input-scanner/style/_theme.scss +0 -0
  1198. /package/{projects/corecomponents/src/lib → lib}/components/input-scanner/style/material.scss +0 -0
  1199. /package/{projects/corecomponents/src/lib → lib}/components/input-search/style/_layout.scss +0 -0
  1200. /package/{projects/corecomponents/src/lib → lib}/components/input-search/style/_material-definition.scss +0 -0
  1201. /package/{projects/corecomponents/src/lib → lib}/components/input-search/style/_theme.scss +0 -0
  1202. /package/{projects/corecomponents/src/lib → lib}/components/input-search/style/material.scss +0 -0
  1203. /package/{projects/corecomponents/src/lib → lib}/components/input-text/style/_layout.scss +0 -0
  1204. /package/{projects/corecomponents/src/lib → lib}/components/input-text/style/_material-definition.scss +0 -0
  1205. /package/{projects/corecomponents/src/lib → lib}/components/input-text/style/_theme.scss +0 -0
  1206. /package/{projects/corecomponents/src/lib → lib}/components/input-text/style/material.scss +0 -0
  1207. /package/{projects/corecomponents/src/lib → lib}/components/input-textarea/style/_layout.scss +0 -0
  1208. /package/{projects/corecomponents/src/lib → lib}/components/input-textarea/style/_material-definition.scss +0 -0
  1209. /package/{projects/corecomponents/src/lib → lib}/components/input-textarea/style/_theme.scss +0 -0
  1210. /package/{projects/corecomponents/src/lib → lib}/components/input-textarea/style/material.scss +0 -0
  1211. /package/{projects/corecomponents/src/lib → lib}/components/level-indicator/style/_layout.scss +0 -0
  1212. /package/{projects/corecomponents/src/lib → lib}/components/level-indicator/style/_material-definition.scss +0 -0
  1213. /package/{projects/corecomponents/src/lib → lib}/components/level-indicator/style/_theme.scss +0 -0
  1214. /package/{projects/corecomponents/src/lib → lib}/components/level-indicator/style/material.scss +0 -0
  1215. /package/{projects/corecomponents/src/lib → lib}/components/list-of-values/style/_layout.scss +0 -0
  1216. /package/{projects/corecomponents/src/lib → lib}/components/list-of-values/style/_material-definition.scss +0 -0
  1217. /package/{projects/corecomponents/src/lib → lib}/components/list-of-values/style/_theme.scss +0 -0
  1218. /package/{projects/corecomponents/src/lib → lib}/components/list-of-values/style/material.scss +0 -0
  1219. /package/{projects/corecomponents/src/lib → lib}/components/loader/style/_layout.scss +0 -0
  1220. /package/{projects/corecomponents/src/lib → lib}/components/loader/style/_material-definition.scss +0 -0
  1221. /package/{projects/corecomponents/src/lib → lib}/components/loader/style/_theme.scss +0 -0
  1222. /package/{projects/corecomponents/src/lib → lib}/components/loader/style/material.scss +0 -0
  1223. /package/{projects/corecomponents/src/lib → lib}/components/pagination/style/_layout.scss +0 -0
  1224. /package/{projects/corecomponents/src/lib → lib}/components/pagination/style/_material-definition.scss +0 -0
  1225. /package/{projects/corecomponents/src/lib → lib}/components/pagination/style/_theme.scss +0 -0
  1226. /package/{projects/corecomponents/src/lib → lib}/components/pagination/style/material.scss +0 -0
  1227. /package/{projects/corecomponents/src/lib → lib}/components/pagination-bar/style/_layout.scss +0 -0
  1228. /package/{projects/corecomponents/src/lib → lib}/components/pagination-bar/style/_material-definition.scss +0 -0
  1229. /package/{projects/corecomponents/src/lib → lib}/components/pagination-bar/style/_theme.scss +0 -0
  1230. /package/{projects/corecomponents/src/lib → lib}/components/pagination-bar/style/material.scss +0 -0
  1231. /package/{projects/corecomponents/src/lib → lib}/components/popup/popup-buttons.component.scss +0 -0
  1232. /package/{projects/corecomponents/src/lib → lib}/components/popup/popup-window-shell.component.scss +0 -0
  1233. /package/{projects/corecomponents/src/lib → lib}/components/responsive-text/style/_layout.scss +0 -0
  1234. /package/{projects/corecomponents/src/lib → lib}/components/responsive-text/style/_material-definition.scss +0 -0
  1235. /package/{projects/corecomponents/src/lib → lib}/components/responsive-text/style/_theme.scss +0 -0
  1236. /package/{projects/corecomponents/src/lib → lib}/components/responsive-text/style/material.scss +0 -0
  1237. /package/{projects/corecomponents/src/lib → lib}/components/simple-grid/style/_layout.scss +0 -0
  1238. /package/{projects/corecomponents/src/lib → lib}/components/simple-grid/style/_material-definition.scss +0 -0
  1239. /package/{projects/corecomponents/src/lib → lib}/components/simple-grid/style/_theme.scss +0 -0
  1240. /package/{projects/corecomponents/src/lib → lib}/components/simple-grid/style/material.scss +0 -0
  1241. /package/{projects/corecomponents/src/lib → lib}/components/tile/style/_layout.scss +0 -0
  1242. /package/{projects/corecomponents/src/lib → lib}/components/tile/style/_material-definition.scss +0 -0
  1243. /package/{projects/corecomponents/src/lib → lib}/components/tile/style/_theme.scss +0 -0
  1244. /package/{projects/corecomponents/src/lib → lib}/components/tile/style/material.scss +0 -0
  1245. /package/{projects/corecomponents/src/lib → lib}/components/tile-select/style/_layout.scss +0 -0
  1246. /package/{projects/corecomponents/src/lib → lib}/components/tile-select/style/_material-definition.scss +0 -0
  1247. /package/{projects/corecomponents/src/lib → lib}/components/tile-select/style/_theme.scss +0 -0
  1248. /package/{projects/corecomponents/src/lib → lib}/components/tile-select/style/material.scss +0 -0
  1249. /package/{projects/corecomponents/src/lib → lib}/components/tooltip/style/_layout.scss +0 -0
  1250. /package/{projects/corecomponents/src/lib → lib}/components/tooltip/style/_material-definition.scss +0 -0
  1251. /package/{projects/corecomponents/src/lib → lib}/components/tooltip/style/_theme.scss +0 -0
  1252. /package/{projects/corecomponents/src/lib → lib}/components/tooltip/style/material.scss +0 -0
  1253. /package/{projects/corecomponents/src/lib → lib}/components/validation-error/style/_layout.scss +0 -0
  1254. /package/{projects/corecomponents/src/lib → lib}/components/validation-error/style/_material-definition.scss +0 -0
  1255. /package/{projects/corecomponents/src/lib → lib}/components/validation-error/style/_theme.scss +0 -0
  1256. /package/{projects/corecomponents/src/lib → lib}/components/validation-error/style/material.scss +0 -0
  1257. /package/{projects/corecomponents/src/lib → lib}/components/view-mode-buttons/style/_layout.scss +0 -0
  1258. /package/{projects/corecomponents/src/lib → lib}/components/view-mode-buttons/style/_material-definition.scss +0 -0
  1259. /package/{projects/corecomponents/src/lib → lib}/components/view-mode-buttons/style/_theme.scss +0 -0
  1260. /package/{projects/corecomponents/src/lib → lib}/components/view-mode-buttons/style/material.scss +0 -0
  1261. /package/{projects/corecomponents/src/lib → lib}/modules/pagination/style/_layout.scss +0 -0
  1262. /package/{projects/corecomponents/src/lib → lib}/modules/pagination/style/_material-definition.scss +0 -0
  1263. /package/{projects/corecomponents/src/lib → lib}/modules/pagination/style/_theme.scss +0 -0
  1264. /package/{projects/corecomponents/src/lib → lib}/modules/pagination/style/material.scss +0 -0
  1265. /package/{projects/corecomponents/src/lib → lib}/style/_input.mixins.scss +0 -0
  1266. /package/{projects/corecomponents/src/lib → lib}/style/_mixin.scss +0 -0
  1267. /package/{projects/corecomponents/src/lib → lib}/style/_variables.scss +0 -0
  1268. /package/{projects/corecomponents/src/lib → lib}/style/corecomponents-globals.scss +0 -0
  1269. /package/{projects/corecomponents/src/lib → lib}/style/material2/_core.scss +0 -0
  1270. /package/{projects/corecomponents/src/lib → lib}/style/material2/_material2-scss-barrel.scss +0 -0
  1271. /package/{projects/corecomponents/src/lib → lib}/style/material2/ripple/_co-ripple.scss +0 -0
  1272. /package/{projects/corecomponents/src/lib → lib}/style/material2/style/_elevation.scss +0 -0
  1273. /package/{projects/corecomponents/src/lib → lib}/style/material2/style/_list-common.scss +0 -0
  1274. /package/{projects/corecomponents/src/lib → lib}/style/material2/style/_variables.scss +0 -0
  1275. /package/{projects/corecomponents/src/lib → lib}/style/material2/theming/_palette.scss +0 -0
  1276. /package/{projects/corecomponents/src/lib → lib}/style/material2/theming/_theming.scss +0 -0
  1277. /package/{projects/corecomponents/src/lib → lib}/style/material2/typography/_typography.scss +0 -0
@@ -0,0 +1,646 @@
1
+ import { __awaiter } from "tslib";
2
+ import { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, HostBinding, Input, Output, ViewEncapsulation } from '@angular/core';
3
+ import { CoreComponentsIcon } from '../../core/enum/core-components-icon.enum';
4
+ import { IconCacheService } from '../icon/icon-cache.service';
5
+ import { FilterItemMode } from '../../core/enum/filterItem-mode.enum';
6
+ export class FilterItemComponent {
7
+ constructor(iconService, _changeDetector) {
8
+ this.iconService = iconService;
9
+ this._changeDetector = _changeDetector;
10
+ this.icons = CoreComponentsIcon;
11
+ this.modes = FilterItemMode;
12
+ this.initialLimit = 10;
13
+ this.expanded = false;
14
+ // Set to false to use filter item with a multi selectable collection. Set to true to specify custom content
15
+ this.customContent = false;
16
+ // Set to true to show all results. Set to false to get 'show more' and 'show less' buttons to expand and contract.
17
+ this.showAllResults = false;
18
+ this.filterButtonLabel = "Search";
19
+ this.searchPlaceholder = 'Search...';
20
+ this.showMoreLabel = 'Show more';
21
+ this.showLessLabel = 'Show less';
22
+ this.noResultsLabel = "No results";
23
+ this.sliderDefaultMin = 0;
24
+ this.sliderDefaultMax = 100000;
25
+ this.fullRangeIsNull = false;
26
+ this.modelChange = new EventEmitter();
27
+ this.collectionChange = new EventEmitter();
28
+ this.filterButtonClicked = new EventEmitter();
29
+ this.filteredCollection = [];
30
+ this.limitTo = 10;
31
+ this.filterText = "";
32
+ this.showButton = false;
33
+ this._collection = [];
34
+ this._mode = this.modes.Filterlist;
35
+ }
36
+ set mode(value) {
37
+ this._mode = value;
38
+ this.readModelForMode(this._model);
39
+ }
40
+ get mode() {
41
+ return this._mode;
42
+ }
43
+ set collection(value) {
44
+ var _a;
45
+ this._collection = value;
46
+ this.filteredCollection = (_a = this._collection) === null || _a === void 0 ? void 0 : _a.slice();
47
+ //reset the model in case there was no collection to set its values on when it was set.
48
+ this.model = this._model;
49
+ }
50
+ get collection() {
51
+ return this._collection;
52
+ }
53
+ set model(newModel) {
54
+ this.readModelForMode(newModel);
55
+ }
56
+ get model() {
57
+ return this._model;
58
+ }
59
+ ngOnInit() {
60
+ this.setToInitialLimit();
61
+ this.showButton = this.valueSelected();
62
+ if (this.checkBoxToTextModel === undefined || this.checkBoxToTextModel === null) {
63
+ this.checkBoxToTextModel = false;
64
+ }
65
+ }
66
+ setToInitialLimit() {
67
+ this.limitTo = this.initialLimit;
68
+ }
69
+ increaseLimit() {
70
+ this.limitTo += 10;
71
+ }
72
+ moreToShow() {
73
+ var _a;
74
+ if (this.showAllResults) {
75
+ return false;
76
+ }
77
+ return ((_a = this.filteredCollection) === null || _a === void 0 ? void 0 : _a.length) > this.limitTo;
78
+ }
79
+ lessToShow() {
80
+ var _a, _b;
81
+ if (this.showAllResults) {
82
+ return false;
83
+ }
84
+ return ((_a = this.filteredCollection) === null || _a === void 0 ? void 0 : _a.length) <= this.limitTo && ((_b = this.filteredCollection) === null || _b === void 0 ? void 0 : _b.length) > this.initialLimit;
85
+ }
86
+ handleModelChange(model) {
87
+ switch (this.mode) {
88
+ case this.modes.Filterlist:
89
+ this.showButton = true;
90
+ model.checked = !model.checked;
91
+ this._createModelForFilterList();
92
+ break;
93
+ case this.modes.SelectListWithStringCollectionOutput:
94
+ this.showButton = true;
95
+ model.checked = !model.checked;
96
+ this._createModelForStringCollectionList();
97
+ break;
98
+ case this.modes.SingleSelectList:
99
+ this.showButton = true;
100
+ this.uncheckForSingleSelect(model);
101
+ model.checked = !model.checked;
102
+ this._createModelForSingleSelectList();
103
+ break;
104
+ case this.modes.SelectListWithNumberOutput:
105
+ this.showButton = true;
106
+ model.checked = !model.checked;
107
+ this._createModelForSelectListWithNumberOutput();
108
+ break;
109
+ case this.modes.Slider:
110
+ this.showButton = true;
111
+ this._createModelForSliderMode();
112
+ break;
113
+ case this.modes.NullableSlider:
114
+ this.showButton = true;
115
+ this._createModelForNullableSliderMode();
116
+ break;
117
+ case this.modes.CheckboxToText:
118
+ this.showButton = true;
119
+ this._createModelForCheckboxToText();
120
+ break;
121
+ case this.modes.CheckboxToSimpleText:
122
+ this.showButton = true;
123
+ this._createModelForCheckboxToSimpleText();
124
+ break;
125
+ case this.modes.CheckboxToBinary:
126
+ this.showButton = true;
127
+ this._createModelForCheckboxToBinary();
128
+ break;
129
+ case this.modes.DateRangeField:
130
+ this.showButton = true;
131
+ this._createModelForDateRange(model);
132
+ break;
133
+ case this.modes.TextField:
134
+ this.showButton = true;
135
+ this._model = (typeof this._model === 'string' && this._model.length === 0) ? undefined : this._model;
136
+ break;
137
+ }
138
+ this.modelChange.emit(this._model);
139
+ this.collectionChange.emit(this.collection);
140
+ }
141
+ valueSelected() {
142
+ if (this.collection) {
143
+ return !!this.collection.find(c => c.checked);
144
+ }
145
+ return false;
146
+ }
147
+ // Applies filter to the collection.
148
+ applyFilter(text) {
149
+ var _a, _b;
150
+ return __awaiter(this, void 0, void 0, function* () {
151
+ if (!isNaN(this.minSearchCharsToLoadCollection) && this.collectionLoadFn) {
152
+ if (text.length === this.minSearchCharsToLoadCollection && text.length > this.filterText.length) {
153
+ this.collection = yield this.collectionLoadFn(text);
154
+ }
155
+ else if (text.length < this.minSearchCharsToLoadCollection) {
156
+ this.collection = undefined;
157
+ }
158
+ }
159
+ this.filterText = text;
160
+ if (!this.collection) {
161
+ return [];
162
+ }
163
+ const filterText = (_a = this.filterText) === null || _a === void 0 ? void 0 : _a.toString().toLowerCase();
164
+ let filteredItemCount = 0;
165
+ this.filteredCollection = (_b = this.collection) === null || _b === void 0 ? void 0 : _b.filter((item) => {
166
+ var _a;
167
+ const labelText = (_a = item.description) === null || _a === void 0 ? void 0 : _a.toString().toLowerCase();
168
+ const isHiddenByFilter = ((labelText === null || labelText === void 0 ? void 0 : labelText.indexOf(filterText)) === -1);
169
+ if (isHiddenByFilter) {
170
+ return false;
171
+ }
172
+ else {
173
+ filteredItemCount++;
174
+ return true;
175
+ }
176
+ });
177
+ });
178
+ }
179
+ onButtonClicked() {
180
+ this.filterButtonClicked.emit();
181
+ }
182
+ uncheckForSingleSelect(model) {
183
+ this.collection.forEach(m => {
184
+ if (m.code !== model.code && m.description !== model.description) {
185
+ m.checked = false;
186
+ }
187
+ });
188
+ }
189
+ readModelForMode(newModel) {
190
+ switch (this.mode) {
191
+ case this.modes.Filterlist:
192
+ this._readModelForFilterList(newModel);
193
+ break;
194
+ case this.modes.SingleSelectList:
195
+ this._readModelForSingleSelectList(newModel);
196
+ break;
197
+ case this.modes.SelectListWithStringCollectionOutput:
198
+ this._readModelForStringCollectionList(newModel);
199
+ break;
200
+ case this.modes.SelectListWithNumberOutput:
201
+ this._readModelForSelectListWithNumberOutput(newModel);
202
+ break;
203
+ case this.modes.Slider:
204
+ case this.modes.NullableSlider:
205
+ this._readModelForSliderMode(newModel);
206
+ break;
207
+ case this.modes.CheckboxToText:
208
+ case this.modes.CheckboxToSimpleText:
209
+ this._readModelForCheckboxToText(newModel);
210
+ break;
211
+ case this.modes.CheckboxToBinary:
212
+ this._readModelForCheckboxToBinary(newModel);
213
+ break;
214
+ case this.modes.DateField:
215
+ this._readModelForDateField(newModel);
216
+ break;
217
+ case this.modes.DateRangeField:
218
+ this._readModelForDateRangeField(newModel);
219
+ break;
220
+ default:
221
+ this._model = newModel;
222
+ }
223
+ }
224
+ /////////////////////////////////////////////////////////////
225
+ //Model creation for all of the different options available//
226
+ /////////////////////////////////////////////////////////////
227
+ _createModelForFilterList() {
228
+ let filterRange = [];
229
+ if (this.collection !== null && this.collection !== undefined) {
230
+ this.collection.forEach((viewModel) => {
231
+ if (viewModel.checked) {
232
+ filterRange.push(`?='${viewModel.code}'`);
233
+ }
234
+ });
235
+ if (filterRange.length > 0) {
236
+ this._model = filterRange.join(',');
237
+ }
238
+ else {
239
+ this._model = undefined;
240
+ }
241
+ }
242
+ }
243
+ _createModelForStringCollectionList() {
244
+ let filterRange = [];
245
+ this.collection.forEach((viewModel) => {
246
+ if (viewModel.checked) {
247
+ filterRange.push(viewModel.code.toString());
248
+ }
249
+ });
250
+ if (filterRange.length > 0) {
251
+ this._model = filterRange;
252
+ }
253
+ else {
254
+ this._model = undefined;
255
+ }
256
+ }
257
+ _createModelForSingleSelectList() {
258
+ let filterString = "";
259
+ this.collection.forEach((viewModel) => {
260
+ if (viewModel.checked) {
261
+ filterString = viewModel.code.toString();
262
+ }
263
+ });
264
+ if (filterString.length > 0) {
265
+ this._model = filterString;
266
+ }
267
+ else {
268
+ this._model = undefined;
269
+ }
270
+ }
271
+ _createModelForSelectListWithNumberOutput() {
272
+ let filterNumber = null;
273
+ this.collection.forEach((viewModel) => {
274
+ if (viewModel.checked) {
275
+ if (filterNumber == null) {
276
+ filterNumber = 0;
277
+ }
278
+ filterNumber += Number(viewModel.code);
279
+ }
280
+ });
281
+ this._model = filterNumber;
282
+ }
283
+ _createModelForSliderMode() {
284
+ this.sliderMin = !!this.sliderMin ? this.sliderMin : this.sliderDefaultMin;
285
+ this.sliderMax = !!this.sliderMax ? this.sliderMax : this.sliderDefaultMax;
286
+ let trueLowerBound = Math.min(this.sliderMin, this.sliderMax);
287
+ let trueUpperBound = Math.max(this.sliderMin, this.sliderMax);
288
+ this.sliderMin = trueLowerBound;
289
+ this.sliderMax = trueUpperBound;
290
+ this._model = `${trueLowerBound} - ${trueUpperBound}`;
291
+ }
292
+ _createModelForNullableSliderMode() {
293
+ if (this.sliderMin && this.sliderMax) {
294
+ let trueLowerBound = Math.min(this.sliderMin, this.sliderMax);
295
+ let trueUpperBound = Math.max(this.sliderMin, this.sliderMax);
296
+ this._model = `${trueLowerBound} - ${trueUpperBound}`;
297
+ }
298
+ else {
299
+ this._model = null;
300
+ }
301
+ }
302
+ _createModelForCheckboxToText() {
303
+ if (this.checkBoxToTextModel) {
304
+ this._model = "?='J'";
305
+ }
306
+ else {
307
+ this._model = "?='N'";
308
+ }
309
+ }
310
+ _createModelForCheckboxToSimpleText() {
311
+ if (this.checkBoxToTextModel) {
312
+ this._model = "J";
313
+ }
314
+ else {
315
+ this._model = "N";
316
+ }
317
+ }
318
+ _createModelForCheckboxToBinary() {
319
+ if (this.checkBoxToTextModel) {
320
+ this._model = 1;
321
+ }
322
+ else {
323
+ this._model = 0;
324
+ }
325
+ }
326
+ _createModelForDateRange(dates) {
327
+ if (dates) {
328
+ let startDate = dates[0];
329
+ let endDate = dates[1];
330
+ const startDateRequest = startDate ? this._formatDateToString(startDate) : '';
331
+ const endDateRequest = endDate ? this._formatDateToString(endDate) : '';
332
+ this._model = `?>=\'${startDateRequest}\'& ?<=\'${endDateRequest}\'`;
333
+ }
334
+ }
335
+ _formatDateToString(date) {
336
+ let day = date.getDate().toString().padStart(2, '0');
337
+ let month = (date.getMonth() + 1).toString().padStart(2, '0');
338
+ let year = date.getFullYear();
339
+ return `${day}-${month}-${year}`;
340
+ }
341
+ ////////////////////////////////////////////////////////////
342
+ //Model reading for all of the different options available//
343
+ ////////////////////////////////////////////////////////////
344
+ _readModelForFilterList(filterModel) {
345
+ let filterList = [];
346
+ let itemsToCheck = [];
347
+ this._uncheckAll();
348
+ this._model = filterModel;
349
+ if (filterModel !== null && filterModel !== undefined && typeof filterModel === 'string' && filterModel.length != 0 && this.collection !== null && this.collection !== undefined) {
350
+ filterList = filterModel.split(",");
351
+ filterList.forEach((filter) => {
352
+ itemsToCheck.push(filter.substr(3, filter.length - 4));
353
+ });
354
+ for (const item of itemsToCheck) {
355
+ let filter = this.collection.find(element => element.code.toString() === item);
356
+ if (filter !== null && filter !== undefined) {
357
+ filter.checked = true;
358
+ }
359
+ }
360
+ this._model = filterModel;
361
+ }
362
+ }
363
+ _readModelForSingleSelectList(singleSelectModel) {
364
+ this._uncheckAll();
365
+ this._model = singleSelectModel;
366
+ if (singleSelectModel !== null && singleSelectModel !== undefined && this.collection !== null && this.collection !== undefined) {
367
+ let filter = this.collection.find(element => element.code.toString() === singleSelectModel);
368
+ if (filter !== null && filter !== undefined) {
369
+ filter.checked = true;
370
+ }
371
+ }
372
+ }
373
+ _readModelForStringCollectionList(collectionModel) {
374
+ this._uncheckAll();
375
+ this._model = collectionModel;
376
+ if (collectionModel !== null && collectionModel !== undefined && this.collection !== null && this.collection !== undefined) {
377
+ this.collection.forEach((viewModel) => {
378
+ if (collectionModel.indexOf(viewModel.code.toString()) > -1) {
379
+ viewModel.checked = true;
380
+ }
381
+ else {
382
+ viewModel.checked = false;
383
+ }
384
+ });
385
+ }
386
+ }
387
+ _readModelForSelectListWithNumberOutput(numberModel) {
388
+ this._uncheckAll();
389
+ this._model = numberModel;
390
+ if (numberModel !== null && numberModel !== undefined && this.collection !== null && this.collection !== undefined) {
391
+ for (const item of this.collection) {
392
+ const itemCode = item.code;
393
+ const modValue = (numberModel % (2 * itemCode));
394
+ item.checked = (modValue >= itemCode);
395
+ }
396
+ }
397
+ }
398
+ _uncheckAll() {
399
+ if (this.collection !== null && this.collection !== undefined) {
400
+ this.collection.forEach(m => {
401
+ m.checked = false;
402
+ });
403
+ }
404
+ }
405
+ _readModelForSliderMode(sliderModel) {
406
+ this._model = sliderModel;
407
+ if (sliderModel !== undefined && sliderModel !== null) {
408
+ let sliderInputCollection = sliderModel.split(' - ');
409
+ this.sliderMin = parseInt(sliderInputCollection[0]);
410
+ this.sliderMax = parseInt(sliderInputCollection[1]);
411
+ }
412
+ else {
413
+ this.sliderMin = this.sliderDefaultMin;
414
+ this.sliderMax = this.sliderDefaultMax;
415
+ }
416
+ }
417
+ _readModelForCheckboxToText(checkboxToTextModel) {
418
+ this._model = checkboxToTextModel;
419
+ if (checkboxToTextModel !== undefined && checkboxToTextModel !== null) {
420
+ this.checkBoxToTextModel = (checkboxToTextModel.indexOf('J') > -1);
421
+ }
422
+ else {
423
+ this.checkBoxToTextModel = false;
424
+ }
425
+ }
426
+ _readModelForCheckboxToBinary(checkboxToBinary) {
427
+ this._model = checkboxToBinary;
428
+ if (checkboxToBinary !== undefined && checkboxToBinary !== null) {
429
+ this.checkBoxToTextModel = (checkboxToBinary >= 1);
430
+ }
431
+ else {
432
+ this.checkBoxToTextModel = false;
433
+ }
434
+ }
435
+ _readModelForDateField(dateFieldModel) {
436
+ this._model = dateFieldModel;
437
+ if (dateFieldModel !== undefined && dateFieldModel !== null) {
438
+ this._model = new Date(dateFieldModel);
439
+ }
440
+ else {
441
+ this._model = undefined;
442
+ }
443
+ }
444
+ _readModelForDateRangeField(dateRangeFieldModel) {
445
+ this._model = dateRangeFieldModel;
446
+ if (dateRangeFieldModel !== undefined && dateRangeFieldModel !== null) {
447
+ let dateCollection = dateRangeFieldModel.split('&');
448
+ let startString = dateCollection[0].trim().substr(4, dateCollection[0].length - 5);
449
+ let endString = dateCollection[1].trim().substr(4, dateCollection[1].length - 5);
450
+ let startDateComponents = startString.split('-');
451
+ let endDateComponents = endString.split('-');
452
+ this.dateRangeStart = new Date(parseInt(startDateComponents[2]), parseInt(startDateComponents[1]) - 1, parseInt(startDateComponents[0]));
453
+ this.dateRangeEnd = new Date(parseInt(endDateComponents[2]), parseInt(endDateComponents[1]) - 1, parseInt(endDateComponents[0]));
454
+ }
455
+ else {
456
+ this.dateRangeStart = undefined;
457
+ this.dateRangeEnd = undefined;
458
+ }
459
+ }
460
+ }
461
+ FilterItemComponent.decorators = [
462
+ { type: Component, args: [{
463
+ selector: "co-filter-item",
464
+ template: `
465
+ <div class="co-filter-item-header">
466
+ <co-collapsible
467
+ [headerTitle]="placeholder"
468
+ [expandButtonLast]="true"
469
+ [iconData]="iconService.getIcon(icons.ArrowPointDown)"
470
+ [expanded]="expanded"
471
+ [showButton]="showButton"
472
+ [buttonText]="filterButtonLabel"
473
+ (buttonClicked)="onButtonClicked()"
474
+ >
475
+ <div class="co-filter-item-collapsable-content">
476
+ <div class="co-filter-item-custom-content" *ngIf="customContent; else collectionContent"
477
+ (keydown)="showButton=true" (mousedown)="showButton=true">
478
+ <ng-content></ng-content>
479
+ </div>
480
+ <ng-template #collectionContent>
481
+ <div class="co-filter-item-collection-content" *ngIf="mode === modes.Filterlist || mode === modes.SingleSelectList
482
+ || mode === modes.SelectListWithNumberOutput || mode === modes.SelectListWithStringCollectionOutput">
483
+ <co-input-text
484
+ *ngIf="collection?.length > 10 || minSearchCharsToLoadCollection"
485
+ [placeholder]="searchPlaceholder"
486
+ [model]="filterText"
487
+ (modelChange)="applyFilter($event)"
488
+ >
489
+ </co-input-text>
490
+ <div class="no-results" *ngIf="filteredCollection?.length === 0">
491
+ <span [textContent]="noResultsLabel"></span>
492
+ </div>
493
+ <div class="co-filter-item-collection-results">
494
+ <ng-container
495
+ *ngFor="let option of filteredCollection; let index = index">
496
+ <div class="co-filter-item-collection-result-item" *ngIf="index < limitTo || showAllResults">
497
+ <co-input-checkbox *ngIf="mode !== modes.SingleSelectList"
498
+ [label]="option.description"
499
+ [model]="option.checked"
500
+ [clickableLabel]="false"
501
+ (modelChange)="handleModelChange(option)"
502
+ ></co-input-checkbox>
503
+ <co-input-radio-button *ngIf="mode === modes.SingleSelectList"
504
+ [label]="option.description"
505
+ [model]="option.checked"
506
+ (modelChange)="handleModelChange(option)"
507
+ ></co-input-radio-button>
508
+ <div class="co-filter-item-amount" *ngIf="option.count"
509
+ [textContent]="option.count.toString() | append: ')' | prepend: ' ('"
510
+ ></div>
511
+ </div>
512
+
513
+ </ng-container>
514
+ </div>
515
+ <div class="co-filter-show-more-or-less" *ngIf="!showAllResults">
516
+ <div class="co-filter-show-more clickable"
517
+ *ngIf="moreToShow()">
518
+ <a (click)="increaseLimit()">
519
+ <co-icon [iconData]="iconService.getIcon(icons.ArrowPointDown)"></co-icon>
520
+ <span [textContent]="showMoreLabel"></span>
521
+ </a>
522
+ </div>
523
+ <div class="co-filter-show-less clickable"
524
+ *ngIf="lessToShow()">
525
+ <a (click)="setToInitialLimit()">
526
+ <co-icon [iconData]="iconService.getIcon(icons.ArrowPointUp)"></co-icon>
527
+ <span [textContent]="showLessLabel"></span>
528
+ </a>
529
+ </div>
530
+ </div>
531
+ </div>
532
+ <div class="co-filter-item-slider-content" *ngIf="mode === modes.Slider">
533
+ <co-input-text
534
+ class="slider-from"
535
+ [type]="'number'"
536
+ [digitsOnly]="true"
537
+ [hideArrowButtons]="true"
538
+ [excludePlusMinus]="true"
539
+ [label]="'FROM' | coreLocalize"
540
+ [(model)]="sliderMin"
541
+ (focusout)="handleModelChange(sliderMin)"
542
+ ></co-input-text>
543
+ <co-input-text
544
+ class="slider-to"
545
+ [type]="'number'"
546
+ [digitsOnly]="true"
547
+ [hideArrowButtons]="true"
548
+ [excludePlusMinus]="true"
549
+ [label]="'TO' | coreLocalize"
550
+ [(model)]="sliderMax"
551
+ (focusout)="handleModelChange(sliderMax)"
552
+ ></co-input-text>
553
+ </div>
554
+ <div class="co-filter-item-slider-content" *ngIf="mode === modes.NullableSlider">
555
+ <co-input-text
556
+ class="slider-from"
557
+ [type]="'number'"
558
+ [digitsOnly]="true"
559
+ [hideArrowButtons]="true"
560
+ [excludePlusMinus]="true"
561
+ [label]="'FROM' | coreLocalize"
562
+ [(model)]="sliderMin"
563
+ (focusout)="handleModelChange(sliderMin)"
564
+ ></co-input-text>
565
+ <co-input-text
566
+ class="slider-to"
567
+ [type]="'number'"
568
+ [digitsOnly]="true"
569
+ [hideArrowButtons]="true"
570
+ [excludePlusMinus]="true"
571
+ [label]="'TO' | coreLocalize"
572
+ [(model)]="sliderMax"
573
+ (focusout)="handleModelChange(sliderMax)"
574
+ ></co-input-text>
575
+ </div>
576
+ <div class="co-filter-item-checkbox-content" *ngIf="mode === modes.Checkbox ">
577
+ <co-input-checkbox
578
+ [(model)]="model"
579
+ (modelChange)="handleModelChange($event)"
580
+ [label]="placeholder">
581
+ </co-input-checkbox>
582
+ </div>
583
+ <div class="co-filter-item-checkbox-content"
584
+ *ngIf="mode === modes.CheckboxToText || mode === modes.CheckboxToSimpleText || mode === modes.CheckboxToBinary">
585
+ <co-input-checkbox
586
+ [(model)]="checkBoxToTextModel"
587
+ (modelChange)="handleModelChange($event)"
588
+ [label]="placeholder"></co-input-checkbox>
589
+ </div>
590
+ <div class="co-filter-item-textfield-content" *ngIf="mode === modes.TextField">
591
+ <co-input-text
592
+ [(model)]="model"
593
+ (modelChange)="handleModelChange($event)"></co-input-text>
594
+ </div>
595
+ <div class="co-filter-item-dateField-content" *ngIf="mode === modes.DateField">
596
+ <co-input-date
597
+ [(model)]="model"
598
+ (modelChange)="handleModelChange($event)"
599
+ ></co-input-date>
600
+ </div>
601
+ <div class="co-filter-item-dateField-content" *ngIf="mode === modes.DateRangeField">
602
+ <co-input-date-range
603
+ [model]="[dateRangeStart, dateRangeEnd]"
604
+ (modelChange)="handleModelChange($event)"
605
+ [placeholder]="'SELECT_DATE' | coreLocalize">
606
+ </co-input-date-range>
607
+ </div>
608
+ </ng-template>
609
+ </div>
610
+ </co-collapsible>
611
+ </div>
612
+
613
+ `,
614
+ encapsulation: ViewEncapsulation.None,
615
+ changeDetection: ChangeDetectionStrategy.OnPush
616
+ },] }
617
+ ];
618
+ FilterItemComponent.ctorParameters = () => [
619
+ { type: IconCacheService },
620
+ { type: ChangeDetectorRef }
621
+ ];
622
+ FilterItemComponent.propDecorators = {
623
+ mode: [{ type: Input }],
624
+ collection: [{ type: Input }],
625
+ placeholder: [{ type: Input }],
626
+ initialLimit: [{ type: Input }],
627
+ expanded: [{ type: Input }],
628
+ minSearchCharsToLoadCollection: [{ type: Input }],
629
+ collectionLoadFn: [{ type: Input }],
630
+ customContent: [{ type: Input }],
631
+ showAllResults: [{ type: Input }],
632
+ filterButtonLabel: [{ type: Input }],
633
+ searchPlaceholder: [{ type: Input }],
634
+ showMoreLabel: [{ type: Input }],
635
+ showLessLabel: [{ type: Input }],
636
+ noResultsLabel: [{ type: Input }],
637
+ sliderDefaultMin: [{ type: Input }],
638
+ sliderDefaultMax: [{ type: Input }],
639
+ fullRangeIsNull: [{ type: Input }],
640
+ model: [{ type: Input }],
641
+ modelChange: [{ type: Output }],
642
+ collectionChange: [{ type: Output }],
643
+ filterButtonClicked: [{ type: Output }],
644
+ filteredCollection: [{ type: HostBinding, args: ["class.co-filter-item",] }]
645
+ };
646
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLWl0ZW0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2ZpbHRlci1pdGVtL2ZpbHRlci1pdGVtLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUFFLGlCQUFpQixFQUMxQyxTQUFTLEVBQ1QsWUFBWSxFQUFFLFdBQVcsRUFDekIsS0FBSyxFQUVMLE1BQU0sRUFDTixpQkFBaUIsRUFDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sMkNBQTJDLENBQUM7QUFFN0UsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFDNUQsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLHNDQUFzQyxDQUFDO0FBNkpwRSxNQUFNLE9BQU8sbUJBQW1CO0lBaUg5QixZQUFtQixXQUE2QixFQUM1QixlQUFrQztRQURuQyxnQkFBVyxHQUFYLFdBQVcsQ0FBa0I7UUFDNUIsb0JBQWUsR0FBZixlQUFlLENBQW1CO1FBakgvQyxVQUFLLEdBQThCLGtCQUFrQixDQUFDO1FBQ3RELFVBQUssR0FBMEIsY0FBYyxDQUFDO1FBNEI5QyxpQkFBWSxHQUFXLEVBQUUsQ0FBQztRQUcxQixhQUFRLEdBQVksS0FBSyxDQUFDO1FBUWpDLDRHQUE0RztRQUVyRyxrQkFBYSxHQUFZLEtBQUssQ0FBQztRQUV0QyxtSEFBbUg7UUFFNUcsbUJBQWMsR0FBWSxLQUFLLENBQUM7UUFHaEMsc0JBQWlCLEdBQVcsUUFBUSxDQUFDO1FBR3JDLHNCQUFpQixHQUFXLFdBQVcsQ0FBQztRQUd4QyxrQkFBYSxHQUFXLFdBQVcsQ0FBQztRQUdwQyxrQkFBYSxHQUFXLFdBQVcsQ0FBQztRQUdwQyxtQkFBYyxHQUFXLFlBQVksQ0FBQztRQUd0QyxxQkFB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Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBcUpUO2dCQUNELGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO2dCQUNyQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTthQUNoRDs7O1lBN0pPLGdCQUFnQjtZQVZHLGlCQUFpQjs7O21CQTRLekMsS0FBSzt5QkFVTCxLQUFLOzBCQVlMLEtBQUs7MkJBR0wsS0FBSzt1QkFHTCxLQUFLOzZDQUdMLEtBQUs7K0JBR0wsS0FBSzs0QkFJTCxLQUFLOzZCQUlMLEtBQUs7Z0NBR0wsS0FBSztnQ0FHTCxLQUFLOzRCQUdMLEtBQUs7NEJBR0wsS0FBSzs2QkFHTCxLQUFLOytCQUdMLEtBQUs7K0JBR0wsS0FBSzs4QkFHTCxLQUFLO29CQUdMLEtBQUs7MEJBU0wsTUFBTTsrQkFHTixNQUFNO2tDQUdOLE1BQU07aUNBR04sV0FBVyxTQUFDLHNCQUFzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIENvbXBvbmVudCxcclxuICBFdmVudEVtaXR0ZXIsIEhvc3RCaW5kaW5nLFxyXG4gIElucHV0LFxyXG4gIE9uSW5pdCxcclxuICBPdXRwdXQsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb25cclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtDb3JlQ29tcG9uZW50c0ljb259IGZyb20gJy4uLy4uL2NvcmUvZW51bS9jb3JlLWNvbXBvbmVudHMtaWNvbi5lbnVtJztcclxuaW1wb3J0IHtGaWx0ZXJJdGVtVmlld21vZGVsfSBmcm9tICcuL2ZpbHRlci1pdGVtLXZpZXdtb2RlbCc7XHJcbmltcG9ydCB7SWNvbkNhY2hlU2VydmljZX0gZnJvbSAnLi4vaWNvbi9pY29uLWNhY2hlLnNlcnZpY2UnO1xyXG5pbXBvcnQge0ZpbHRlckl0ZW1Nb2RlfSBmcm9tICcuLi8uLi9jb3JlL2VudW0vZmlsdGVySXRlbS1tb2RlLmVudW0nO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwiY28tZmlsdGVyLWl0ZW1cIixcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY28tZmlsdGVyLWl0ZW0taGVhZGVyXCI+XHJcbiAgICAgICAgICA8Y28tY29sbGFwc2libGVcclxuICAgICAgICAgICAgICAgICAgW2hlYWRlclRpdGxlXT1cInBsYWNlaG9sZGVyXCJcclxuICAgICAgICAgICAgICAgICAgW2V4cGFuZEJ1dHRvbkxhc3RdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgIFtpY29uRGF0YV09XCJpY29uU2VydmljZS5nZXRJY29uKGljb25zLkFycm93UG9pbnREb3duKVwiXHJcbiAgICAgICAgICAgICAgICAgIFtleHBhbmRlZF09XCJleHBhbmRlZFwiXHJcbiAgICAgICAgICAgICAgICAgIFtzaG93QnV0dG9uXT1cInNob3dCdXR0b25cIlxyXG4gICAgICAgICAgICAgICAgICBbYnV0dG9uVGV4dF09XCJmaWx0ZXJCdXR0b25MYWJlbFwiXHJcbiAgICAgICAgICAgICAgICAgIChidXR0b25DbGlja2VkKT1cIm9uQnV0dG9uQ2xpY2tlZCgpXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY28tZmlsdGVyLWl0ZW0tY29sbGFwc2FibGUtY29udGVudFwiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY28tZmlsdGVyLWl0ZW0tY3VzdG9tLWNvbnRlbnRcIiAqbmdJZj1cImN1c3RvbUNvbnRlbnQ7IGVsc2UgY29sbGVjdGlvbkNvbnRlbnRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIChrZXlkb3duKT1cInNob3dCdXR0b249dHJ1ZVwiIChtb3VzZWRvd24pPVwic2hvd0J1dHRvbj10cnVlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2NvbGxlY3Rpb25Db250ZW50PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvLWZpbHRlci1pdGVtLWNvbGxlY3Rpb24tY29udGVudFwiICpuZ0lmPVwibW9kZSA9PT0gbW9kZXMuRmlsdGVybGlzdCB8fCBtb2RlID09PSBtb2Rlcy5TaW5nbGVTZWxlY3RMaXN0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8fCBtb2RlID09PSBtb2Rlcy5TZWxlY3RMaXN0V2l0aE51bWJlck91dHB1dCB8fCBtb2RlID09PSBtb2Rlcy5TZWxlY3RMaXN0V2l0aFN0cmluZ0NvbGxlY3Rpb25PdXRwdXRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8Y28taW5wdXQtdGV4dFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJjb2xsZWN0aW9uPy5sZW5ndGggPiAxMCB8fCBtaW5TZWFyY2hDaGFyc1RvTG9hZENvbGxlY3Rpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cInNlYXJjaFBsYWNlaG9sZGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFttb2RlbF09XCJmaWx0ZXJUZXh0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb2RlbENoYW5nZSk9XCJhcHBseUZpbHRlcigkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9jby1pbnB1dC10ZXh0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJuby1yZXN1bHRzXCIgKm5nSWY9XCJmaWx0ZXJlZENvbGxlY3Rpb24/Lmxlbmd0aCA9PT0gMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBbdGV4dENvbnRlbnRdPVwibm9SZXN1bHRzTGFiZWxcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvLWZpbHRlci1pdGVtLWNvbGxlY3Rpb24tcmVzdWx0c1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBmaWx0ZXJlZENvbGxlY3Rpb247IGxldCBpbmRleCA9IGluZGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY28tZmlsdGVyLWl0ZW0tY29sbGVjdGlvbi1yZXN1bHQtaXRlbVwiICpuZ0lmPVwiaW5kZXggPCBsaW1pdFRvIHx8IHNob3dBbGxSZXN1bHRzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNvLWlucHV0LWNoZWNrYm94ICpuZ0lmPVwibW9kZSAhPT0gbW9kZXMuU2luZ2xlU2VsZWN0TGlzdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCJvcHRpb24uZGVzY3JpcHRpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbW9kZWxdPVwib3B0aW9uLmNoZWNrZWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xpY2thYmxlTGFiZWxdPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9kZWxDaGFuZ2UpPVwiaGFuZGxlTW9kZWxDaGFuZ2Uob3B0aW9uKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvY28taW5wdXQtY2hlY2tib3g+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNvLWlucHV0LXJhZGlvLWJ1dHRvbiAqbmdJZj1cIm1vZGUgPT09IG1vZGVzLlNpbmdsZVNlbGVjdExpc3RcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIm9wdGlvbi5kZXNjcmlwdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbW9kZWxdPVwib3B0aW9uLmNoZWNrZWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vZGVsQ2hhbmdlKT1cImhhbmRsZU1vZGVsQ2hhbmdlKG9wdGlvbilcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L2NvLWlucHV0LXJhZGlvLWJ1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY28tZmlsdGVyLWl0ZW0tYW1vdW50XCIgKm5nSWY9XCJvcHRpb24uY291bnRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3RleHRDb250ZW50XT1cIm9wdGlvbi5jb3VudC50b1N0cmluZygpIHwgYXBwZW5kOiAnKScgfCBwcmVwZW5kOiAnICAgICAgKCdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvLWZpbHRlci1zaG93LW1vcmUtb3ItbGVzc1wiICpuZ0lmPVwiIXNob3dBbGxSZXN1bHRzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjby1maWx0ZXItc2hvdy1tb3JlIGNsaWNrYWJsZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJtb3JlVG9TaG93KClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIChjbGljayk9XCJpbmNyZWFzZUxpbWl0KClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y28taWNvbiBbaWNvbkRhdGFdPVwiaWNvblNlcnZpY2UuZ2V0SWNvbihpY29ucy5BcnJvd1BvaW50RG93bilcIj48L2NvLWljb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gW3RleHRDb250ZW50XT1cInNob3dNb3JlTGFiZWxcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY28tZmlsdGVyLXNob3ctbGVzcyBjbGlja2FibGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwibGVzc1RvU2hvdygpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSAoY2xpY2spPVwic2V0VG9Jbml0aWFsTGltaXQoKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjby1pY29uIFtpY29uRGF0YV09XCJpY29uU2VydmljZS5nZXRJY29uKGljb25zLkFycm93UG9pbnRVcClcIj48L2NvLWljb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gW3RleHRDb250ZW50XT1cInNob3dMZXNzTGFiZWxcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY28tZmlsdGVyLWl0ZW0tc2xpZGVyLWNvbnRlbnRcIiAqbmdJZj1cIm1vZGUgPT09IG1vZGVzLlNsaWRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxjby1pbnB1dC10ZXh0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInNsaWRlci1mcm9tXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0eXBlXT1cIidudW1iZXInXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkaWdpdHNPbmx5XT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2hpZGVBcnJvd0J1dHRvbnNdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZXhjbHVkZVBsdXNNaW51c109XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCInRlJPTScgfCBjb3JlTG9jYWxpemVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhtb2RlbCldPVwic2xpZGVyTWluXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmb2N1c291dCk9XCJoYW5kbGVNb2RlbENoYW5nZShzbGlkZXJNaW4pXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9jby1pbnB1dC10ZXh0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxjby1pbnB1dC10ZXh0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInNsaWRlci10b1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdHlwZV09XCInbnVtYmVyJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZGlnaXRzT25seV09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtoaWRlQXJyb3dCdXR0b25zXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2V4Y2x1ZGVQbHVzTWludXNdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ1RPJyB8IGNvcmVMb2NhbGl6ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG1vZGVsKV09XCJzbGlkZXJNYXhcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZvY3Vzb3V0KT1cImhhbmRsZU1vZGVsQ2hhbmdlKHNsaWRlck1heClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgID48L2NvLWlucHV0LXRleHQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjby1maWx0ZXItaXRlbS1zbGlkZXItY29udGVudFwiICpuZ0lmPVwibW9kZSA9PT0gbW9kZXMuTnVsbGFibGVTbGlkZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8Y28taW5wdXQtdGV4dFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzbGlkZXItZnJvbVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdHlwZV09XCInbnVtYmVyJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZGlnaXRzT25seV09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtoaWRlQXJyb3dCdXR0b25zXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2V4Y2x1ZGVQbHVzTWludXNdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ0ZST00nIHwgY29yZUxvY2FsaXplXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsobW9kZWwpXT1cInNsaWRlck1pblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZm9jdXNvdXQpPVwiaGFuZGxlTW9kZWxDaGFuZ2Uoc2xpZGVyTWluKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvY28taW5wdXQtdGV4dD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8Y28taW5wdXQtdGV4dFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzbGlkZXItdG9cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3R5cGVdPVwiJ251bWJlcidcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2RpZ2l0c09ubHldPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaGlkZUFycm93QnV0dG9uc109XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtleGNsdWRlUGx1c01pbnVzXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIidUTycgfCBjb3JlTG9jYWxpemVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhtb2RlbCldPVwic2xpZGVyTWF4XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmb2N1c291dCk9XCJoYW5kbGVNb2RlbENoYW5nZShzbGlkZXJNYXgpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9jby1pbnB1dC10ZXh0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY28tZmlsdGVyLWl0ZW0tY2hlY2tib3gtY29udGVudFwiICpuZ0lmPVwibW9kZSA9PT0gbW9kZXMuQ2hlY2tib3ggXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGNvLWlucHV0LWNoZWNrYm94XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG1vZGVsKV09XCJtb2RlbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9kZWxDaGFuZ2UpPVwiaGFuZGxlTW9kZWxDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwicGxhY2Vob2xkZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2NvLWlucHV0LWNoZWNrYm94PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY28tZmlsdGVyLWl0ZW0tY2hlY2tib3gtY29udGVudFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwibW9kZSA9PT0gbW9kZXMuQ2hlY2tib3hUb1RleHQgfHwgbW9kZSA9PT0gbW9kZXMuQ2hlY2tib3hUb1NpbXBsZVRleHQgfHwgbW9kZSA9PT0gbW9kZXMuQ2hlY2tib3hUb0JpbmFyeVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxjby1pbnB1dC1jaGVja2JveFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhtb2RlbCldPVwiY2hlY2tCb3hUb1RleHRNb2RlbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9kZWxDaGFuZ2UpPVwiaGFuZGxlTW9kZWxDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwicGxhY2Vob2xkZXJcIj48L2NvLWlucHV0LWNoZWNrYm94PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY28tZmlsdGVyLWl0ZW0tdGV4dGZpZWxkLWNvbnRlbnRcIiAqbmdJZj1cIm1vZGUgPT09IG1vZGVzLlRleHRGaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxjby1pbnB1dC10ZXh0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG1vZGVsKV09XCJtb2RlbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9kZWxDaGFuZ2UpPVwiaGFuZGxlTW9kZWxDaGFuZ2UoJGV2ZW50KVwiPjwvY28taW5wdXQtdGV4dD5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvLWZpbHRlci1pdGVtLWRhdGVGaWVsZC1jb250ZW50XCIgKm5nSWY9XCJtb2RlID09PSBtb2Rlcy5EYXRlRmllbGRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8Y28taW5wdXQtZGF0ZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhtb2RlbCldPVwibW9kZWxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vZGVsQ2hhbmdlKT1cImhhbmRsZU1vZGVsQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgID48L2NvLWlucHV0LWRhdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjby1maWx0ZXItaXRlbS1kYXRlRmllbGQtY29udGVudFwiICpuZ0lmPVwibW9kZSA9PT0gbW9kZXMuRGF0ZVJhbmdlRmllbGRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8Y28taW5wdXQtZGF0ZS1yYW5nZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW21vZGVsXT1cIltkYXRlUmFuZ2VTdGFydCwgZGF0ZVJhbmdlRW5kXVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9kZWxDaGFuZ2UpPVwiaGFuZGxlTW9kZWxDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ1NFTEVDVF9EQVRFJyB8IGNvcmVMb2NhbGl6ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvY28taW5wdXQtZGF0ZS1yYW5nZT5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9jby1jb2xsYXBzaWJsZT5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gIGAsXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRmlsdGVySXRlbUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgcHVibGljIGljb25zOiB0eXBlb2YgQ29yZUNvbXBvbmVudHNJY29uID0gQ29yZUNvbXBvbmVudHNJY29uO1xyXG4gIHB1YmxpYyBtb2RlczogdHlwZW9mIEZpbHRlckl0ZW1Nb2RlID0gRmlsdGVySXRlbU1vZGU7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNldCBtb2RlKHZhbHVlOiBGaWx0ZXJJdGVtTW9kZSkge1xyXG4gICAgdGhpcy5fbW9kZSA9IHZhbHVlO1xyXG4gICAgdGhpcy5yZWFkTW9kZWxGb3JNb2RlKHRoaXMuX21vZGVsKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgbW9kZSgpOiBGaWx0ZXJJdGVtTW9kZSB7XHJcbiAgICByZXR1cm4gdGhpcy5fbW9kZTtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNldCBjb2xsZWN0aW9uKHZhbHVlOiBGaWx0ZXJJdGVtVmlld21vZGVsW10pIHtcclxuICAgIHRoaXMuX2NvbGxlY3Rpb24gPSB2YWx1ZTtcclxuICAgIHRoaXMuZmlsdGVyZWRDb2xsZWN0aW9uID0gdGhpcy5fY29sbGVjdGlvbj8uc2xpY2UoKTtcclxuICAgIC8vcmVzZXQgdGhlIG1vZGVsIGluIGNhc2UgdGhlcmUgd2FzIG5vIGNvbGxlY3Rpb24gdG8gc2V0IGl0cyB2YWx1ZXMgb24gd2hlbiBpdCB3YXMgc2V0LlxyXG4gICAgdGhpcy5tb2RlbCA9IHRoaXMuX21vZGVsO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBjb2xsZWN0aW9uKCk6IEZpbHRlckl0ZW1WaWV3bW9kZWxbXSB7XHJcbiAgICByZXR1cm4gdGhpcy5fY29sbGVjdGlvbjtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHBsYWNlaG9sZGVyOiBzdHJpbmc7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGluaXRpYWxMaW1pdDogbnVtYmVyID0gMTA7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGV4cGFuZGVkOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIG1pblNlYXJjaENoYXJzVG9Mb2FkQ29sbGVjdGlvbjogbnVtYmVyO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBjb2xsZWN0aW9uTG9hZEZuOiBGdW5jdGlvbjtcclxuXHJcbiAgLy8gU2V0IHRvIGZhbHNlIHRvIHVzZSBmaWx0ZXIgaXRlbSB3aXRoIGEgbXVsdGkgc2VsZWN0YWJsZSBjb2xsZWN0aW9uLiBTZXQgdG8gdHJ1ZSB0byBzcGVjaWZ5IGN1c3RvbSBjb250ZW50XHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgY3VzdG9tQ29udGVudDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAvLyBTZXQgdG8gdHJ1ZSB0byBzaG93IGFsbCByZXN1bHRzLiBTZXQgdG8gZmFsc2UgdG8gZ2V0ICdzaG93IG1vcmUnIGFuZCAnc2hvdyBsZXNzJyBidXR0b25zIHRvIGV4cGFuZCBhbmQgY29udHJhY3QuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2hvd0FsbFJlc3VsdHM6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgZmlsdGVyQnV0dG9uTGFiZWw6IHN0cmluZyA9IFwiU2VhcmNoXCI7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNlYXJjaFBsYWNlaG9sZGVyOiBzdHJpbmcgPSAnU2VhcmNoLi4uJztcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2hvd01vcmVMYWJlbDogc3RyaW5nID0gJ1Nob3cgbW9yZSc7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNob3dMZXNzTGFiZWw6IHN0cmluZyA9ICdTaG93IGxlc3MnO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBub1Jlc3VsdHNMYWJlbDogc3RyaW5nID0gXCJObyByZXN1bHRzXCI7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNsaWRlckRlZmF1bHRNaW46IG51bWJlciA9IDA7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNsaWRlckRlZmF1bHRNYXg6IG51bWJlciA9IDEwMDAwMDtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgZnVsbFJhbmdlSXNOdWxsOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNldCBtb2RlbChuZXdNb2RlbDogYW55KSB7XHJcbiAgICB0aGlzLnJlYWRNb2RlbEZvck1vZGUobmV3TW9kZWwpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBtb2RlbCgpOiBhbnkge1xyXG4gICAgcmV0dXJuIHRoaXMuX21vZGVsO1xyXG4gIH1cclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgcHVibGljIG1vZGVsQ2hhbmdlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBwdWJsaWMgY29sbGVjdGlvbkNoYW5nZTogRXZlbnRFbWl0dGVyPEZpbHRlckl0ZW1WaWV3bW9kZWxbXT4gPSBuZXcgRXZlbnRFbWl0dGVyPEZpbHRlckl0ZW1WaWV3bW9kZWxbXT4oKTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgcHVibGljIGZpbHRlckJ1dHRvbkNsaWNrZWQ6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxuXHJcbiAgQEhvc3RCaW5kaW5nKFwiY2xhc3MuY28tZmlsdGVyLWl0ZW1cIilcclxuXHJcbiAgcHVibGljIGZpbHRlcmVkQ29sbGVjdGlvbjogRmlsdGVySXRlbVZpZXdtb2RlbFtdID0gW107XHJcbiAgcHVibGljIGxpbWl0VG86IG51bWJlciA9IDEwO1xyXG4gIHB1YmxpYyBmaWx0ZXJUZXh0OiBzdHJpbmcgPSBcIlwiO1xyXG4gIHB1YmxpYyBzaG93QnV0dG9uOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIC8vbW9kZWxzIGZvciB0aGUgc2xpZGVyIGZpZWxkIGlucHV0c1xyXG4gIHB1YmxpYyBzbGlkZXJNaW46IG51bWJlcjtcclxuICBwdWJsaWMgc2xpZGVyTWF4OiBudW1iZXI7XHJcblxyXG4gIC8vbW9kZWxzIGZvciB0aCBkYXRlcmFuZ2UgaW5wdXRcclxuICBwdWJsaWMgZGF0ZVJhbmdlU3RhcnQ6IERhdGU7XHJcbiAgcHVibGljIGRhdGVSYW5nZUVuZDogRGF0ZTtcclxuXHJcbiAgLy9tb2RlbCBmb3IgdGhlIHRleHRib3ggb3B0aW9ucyB0aGF0IG5lZWQgYSBjb252ZXJ0ZWQgb3V0cHV0XHJcbiAgcHVibGljIGNoZWNrQm94VG9UZXh0TW9kZWw6IGJvb2xlYW47XHJcblxyXG4gIHByaXZhdGUgX2NvbGxlY3Rpb246IEZpbHRlckl0ZW1WaWV3bW9kZWxbXSA9IFtdO1xyXG4gIHByaXZhdGUgX21vZGU6IEZpbHRlckl0ZW1Nb2RlID0gdGhpcy5tb2Rlcy5GaWx0ZXJsaXN0O1xyXG4gIHByaXZhdGUgX21vZGVsOiBhbnk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBpY29uU2VydmljZTogSWNvbkNhY2hlU2VydmljZSxcclxuICAgICAgICAgICAgICBwcml2YXRlIF9jaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuc2V0VG9Jbml0aWFsTGltaXQoKTtcclxuICAgIHRoaXMuc2hvd0J1dHRvbiA9IHRoaXMudmFsdWVTZWxlY3RlZCgpO1xyXG4gICAgaWYodGhpcy5jaGVja0JveFRvVGV4dE1vZGVsID09PSB1bmRlZmluZWQgfHwgdGhpcy5jaGVja0JveFRvVGV4dE1vZGVsID09PSBudWxsKSB7XHJcbiAgICAgIHRoaXMuY2hlY2tCb3hUb1RleHRNb2RlbCA9IGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIHNldFRvSW5pdGlhbExpbWl0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5saW1pdFRvID0gdGhpcy5pbml0aWFsTGltaXQ7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaW5jcmVhc2VMaW1pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMubGltaXRUbyArPSAxMDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBtb3JlVG9TaG93KCk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKHRoaXMuc2hvd0FsbFJlc3VsdHMpIHtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMuZmlsdGVyZWRDb2xsZWN0aW9uPy5sZW5ndGggPiB0aGlzLmxpbWl0VG87XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgbGVzc1RvU2hvdygpIHtcclxuICAgIGlmICh0aGlzLnNob3dBbGxSZXN1bHRzKSB7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLmZpbHRlcmVkQ29sbGVjdGlvbj8ubGVuZ3RoIDw9IHRoaXMubGltaXRUbyAmJiB0aGlzLmZpbHRlcmVkQ29sbGVjdGlvbj8ubGVuZ3RoID4gdGhpcy5pbml0aWFsTGltaXQ7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlTW9kZWxDaGFuZ2UobW9kZWw6IGFueSkge1xyXG4gICAgc3dpdGNoICh0aGlzLm1vZGUpIHtcclxuICAgICAgY2FzZSB0aGlzLm1vZGVzLkZpbHRlcmxpc3Q6XHJcbiAgICAgICAgdGhpcy5zaG93QnV0dG9uID0gdHJ1ZTtcclxuICAgICAgICBtb2RlbC5jaGVja2VkID0gIW1vZGVsLmNoZWNrZWQ7XHJcbiAgICAgICAgdGhpcy5fY3JlYXRlTW9kZWxGb3JGaWx0ZXJMaXN0KCk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgdGhpcy5tb2Rlcy5TZWxlY3RMaXN0V2l0aFN0cmluZ0NvbGxlY3Rpb25PdXRwdXQ6XHJcbiAgICAgICAgdGhpcy5zaG93QnV0dG9uID0gdHJ1ZTtcclxuICAgICAgICBtb2RlbC5jaGVja2VkID0gIW1vZGVsLmNoZWNrZWQ7XHJcbiAgICAgICAgdGhpcy5fY3JlYXRlTW9kZWxGb3JTdHJpbmdDb2xsZWN0aW9uTGlzdCgpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIHRoaXMubW9kZXMuU2luZ2xlU2VsZWN0TGlzdDpcclxuICAgICAgICB0aGlzLnNob3dCdXR0b24gPSB0cnVlO1xyXG4gICAgICAgIHRoaXMudW5jaGVja0ZvclNpbmdsZVNlbGVjdChtb2RlbCk7XHJcbiAgICAgICAgbW9kZWwuY2hlY2tlZCA9ICFtb2RlbC5jaGVja2VkO1xyXG4gICAgICAgIHRoaXMuX2NyZWF0ZU1vZGVsRm9yU2luZ2xlU2VsZWN0TGlzdCgpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIHRoaXMubW9kZXMuU2VsZWN0TGlzdFdpdGhOdW1iZXJPdXRwdXQ6XHJcbiAgICAgICAgdGhpcy5zaG93QnV0dG9uID0gdHJ1ZTtcclxuICAgICAgICBtb2RlbC5jaGVja2VkID0gIW1vZGVsLmNoZWNrZWQ7XHJcbiAgICAgICAgdGhpcy5fY3JlYXRlTW9kZWxGb3JTZWxlY3RMaXN0V2l0aE51bWJlck91dHB1dCgpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIHRoaXMubW9kZXMuU2xpZGVyOlxyXG4gICAgICAgIHRoaXMuc2hvd0J1dHRvbiA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5fY3JlYXRlTW9kZWxGb3JTbGlkZXJNb2RlKCk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgdGhpcy5tb2Rlcy5OdWxsYWJsZVNsaWRlcjpcclxuICAgICAgICB0aGlzLnNob3dCdXR0b24gPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuX2NyZWF0ZU1vZGVsRm9yTnVsbGFibGVTbGlkZXJNb2RlKCk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgdGhpcy5tb2Rlcy5DaGVja2JveFRvVGV4dDpcclxuICAgICAgICB0aGlzLnNob3dCdXR0b24gPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuX2NyZWF0ZU1vZGVsRm9yQ2hlY2tib3hUb1RleHQoKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSB0aGlzLm1vZGVzLkNoZWNrYm94VG9TaW1wbGVUZXh0OlxyXG4gICAgICAgIHRoaXMuc2hvd0J1dHRvbiA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5fY3JlYXRlTW9kZWxGb3JDaGVja2JveFRvU2ltcGxlVGV4dCgpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIHRoaXMubW9kZXMuQ2hlY2tib3hUb0JpbmFyeTpcclxuICAgICAgICB0aGlzLnNob3dCdXR0b24gPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuX2NyZWF0ZU1vZGVsRm9yQ2hlY2tib3hUb0JpbmFyeSgpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIHRoaXMubW9kZXMuRGF0ZVJhbmdlRmllbGQ6XHJcbiAgICAgICAgdGhpcy5zaG93QnV0dG9uID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLl9jcmVhdGVNb2RlbEZvckRhdGVSYW5nZShtb2RlbCk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgdGhpcy5tb2Rlcy5UZXh0RmllbGQ6XHJcbiAgICAgICAgdGhpcy5zaG93QnV0dG9uID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLl9tb2RlbCA9ICh0eXBlb2YgdGhpcy5fbW9kZWwgPT09ICdzdHJpbmcnICYmIHRoaXMuX21vZGVsLmxlbmd0aCA9PT0gMCkgPyB1bmRlZmluZWQgOiB0aGlzLl9tb2RlbDtcclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuICAgIHRoaXMubW9kZWxDaGFuZ2UuZW1pdCh0aGlzLl9tb2RlbCk7XHJcbiAgICB0aGlzLmNvbGxlY3Rpb25DaGFuZ2UuZW1pdCh0aGlzLmNvbGxlY3Rpb24pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHZhbHVlU2VsZWN0ZWQoKSB7XHJcbiAgICBpZiAodGhpcy5jb2xsZWN0aW9uKSB7XHJcbiAgICAgIHJldHVybiAhIXRoaXMuY29sbGVjdGlvbi5maW5kKGMgPT4gYy5jaGVja2VkKTtcclxuICAgIH1cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIC8vIEFwcGxpZXMgZmlsdGVyIHRvIHRoZSBjb2xsZWN0aW9uLlxyXG4gIHB1YmxpYyBhc3luYyBhcHBseUZpbHRlcih0ZXh0OiBzdHJpbmcpOiBQcm9taXNlPFtdPiB7XHJcbiAgICBpZiAoIWlzTmFOKHRoaXMubWluU2VhcmNoQ2hhcnNUb0xvYWRDb2xsZWN0aW9uKSAmJiB0aGlzLmNvbGxlY3Rpb25Mb2FkRm4pIHtcclxuICAgICAgaWYgKHRleHQubGVuZ3RoID09PSB0aGlzLm1pblNlYXJjaENoYXJzVG9Mb2FkQ29sbGVjdGlvbiAmJiB0ZXh0Lmxlbmd0aCA+IHRoaXMuZmlsdGVyVGV4dC5sZW5ndGgpIHtcclxuICAgICAgICB0aGlzLmNvbGxlY3Rpb24gPSBhd2FpdCB0aGlzLmNvbGxlY3Rpb25Mb2FkRm4odGV4dCk7XHJcbiAgICAgIH0gZWxzZSBpZiAodGV4dC5sZW5ndGggPCB0aGlzLm1pblNlYXJjaENoYXJzVG9Mb2FkQ29sbGVjdGlvbikge1xyXG4gICAgICAgIHRoaXMuY29sbGVjdGlvbiA9IHVuZGVmaW5lZDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgdGhpcy5maWx0ZXJUZXh0ID0gdGV4dDtcclxuICAgIGlmICghdGhpcy5jb2xsZWN0aW9uKSB7XHJcbiAgICAgIHJldHVybiBbXTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBmaWx0ZXJUZXh0OiBzdHJpbmcgPSB0aGlzLmZpbHRlclRleHQ/LnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKTtcclxuICAgIGxldCBmaWx0ZXJlZEl0ZW1Db3VudDogbnVtYmVyID0gMDtcclxuICAgIHRoaXMuZmlsdGVyZWRDb2xsZWN0aW9uID0gdGhpcy5jb2xsZWN0aW9uPy5maWx0ZXIoKGl0ZW0pID0+IHtcclxuICAgICAgY29uc3QgbGFiZWxUZXh0OiBzdHJpbmcgPSBpdGVtLmRlc2NyaXB0aW9uPy50b1N0cmluZygpLnRvTG93ZXJDYXNlKCk7XHJcbiAgICAgIGNvbnN0IGlzSGlkZGVuQnlGaWx0ZXI6IGJvb2xlYW4gPSAobGFiZWxUZXh0Py5pbmRleE9mKGZpbHRlclRleHQpID09PSAtMSk7XHJcbiAgICAgIGlmIChpc0hpZGRlbkJ5RmlsdGVyKSB7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGZpbHRlcmVkSXRlbUNvdW50Kys7XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG9uQnV0dG9uQ2xpY2tlZCgpOiB2b2lkIHtcclxuICAgIHRoaXMuZmlsdGVyQnV0dG9uQ2xpY2tlZC5lbWl0KCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHVuY2hlY2tGb3JTaW5nbGVTZWxlY3QobW9kZWw6IEZpbHRlckl0ZW1WaWV3bW9kZWwpOiB2b2lkIHtcclxuICAgIHRoaXMuY29sbGVjdGlvbi5mb3JFYWNoKG0gPT4ge1xyXG4gICAgICBpZiAobS5jb2RlICE9PSBtb2RlbC5jb2RlICYmIG0uZGVzY3JpcHRpb24gIT09IG1vZGVsLmRlc2NyaXB0aW9uKSB7XHJcbiAgICAgICAgbS5jaGVja2VkID0gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSByZWFkTW9kZWxGb3JNb2RlKG5ld01vZGVsOiBhbnkpOiB2b2lkIHtcclxuICAgIHN3aXRjaCAodGhpcy5tb2RlKSB7XHJcbiAgICAgIGNhc2UgdGhpcy5tb2Rlcy5GaWx0ZXJsaXN0OlxyXG4gICAgICAgIHRoaXMuX3JlYWRNb2RlbEZvckZpbHRlckxpc3QobmV3TW9kZWwpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIHRoaXMubW9kZXMuU2luZ2xlU2VsZWN0TGlzdDpcclxuICAgICAgICB0aGlzLl9yZWFkTW9kZWxGb3JTaW5nbGVTZWxlY3RMaXN0KG5ld01vZGVsKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSB0aGlzLm1vZGVzLlNlbGVjdExpc3RXaXRoU3RyaW5nQ29sbGVjdGlvbk91dHB1dDpcclxuICAgICAgICB0aGlzLl9yZWFkTW9kZWxGb3JTdHJpbmdDb2xsZWN0aW9uTGlzdChuZXdNb2RlbCk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgdGhpcy5tb2Rlcy5TZWxlY3RMaXN0V2l0aE51bWJlck91dHB1dDpcclxuICAgICAgICB0aGlzLl9yZWFkTW9kZWxGb3JTZWxlY3RMaXN0V2l0aE51bWJlck91dHB1dChuZXdNb2RlbCk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgdGhpcy5tb2Rlcy5TbGlkZXI6XHJcbiAgICAgIGNhc2UgdGhpcy5tb2Rlcy5OdWxsYWJsZVNsaWRlcjpcclxuICAgICAgICB0aGlzLl9yZWFkTW9kZWxGb3JTbGlkZXJNb2RlKG5ld01vZGVsKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSB0aGlzLm1vZGVzLkNoZWNrYm94VG9UZXh0OlxyXG4gICAgICBjYXNlIHRoaXMubW9kZXMuQ2hlY2tib3hUb1NpbXBsZVRleHQ6XHJcbiAgICAgICAgdGhpcy5fcmVhZE1vZGVsRm9yQ2hlY2tib3hUb1RleHQobmV3TW9kZWwpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIHRoaXMubW9kZXMuQ2hlY2tib3hUb0JpbmFyeTpcclxuICAgICAgICB0aGlzLl9yZWFkTW9kZWxGb3JDaGVja2JveFRvQmluYXJ5KG5ld01vZGVsKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSB0aGlzLm1vZGVzLkRhdGVGaWVsZDpcclxuICAgICAgICB0aGlzLl9yZWFkTW9kZWxGb3JEYXRlRmllbGQobmV3TW9kZWwpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIHRoaXMubW9kZXMuRGF0ZVJhbmdlRmllbGQ6XHJcbiAgICAgICAgdGhpcy5fcmVhZE1vZGVsRm9yRGF0ZVJhbmdlRmllbGQobmV3TW9kZWwpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIHRoaXMuX21vZGVsID0gbmV3TW9kZWw7XHJcbiAgICB9XHJcbiAgfVxyXG4gIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cclxuICAvL01vZGVsIGNyZWF0aW9uIGZvciBhbGwgb2YgdGhlIGRpZmZlcmVudCBvcHRpb25zIGF2YWlsYWJsZS8vXHJcbiAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xyXG4gIHByaXZhdGUgX2NyZWF0ZU1vZGVsRm9yRmlsdGVyTGlzdCgpOiB2b2lkIHtcclxuICAgIGxldCBmaWx0ZXJSYW5nZTogc3RyaW5nW10gPSBbXTtcclxuICAgIGlmICh0aGlzLmNvbGxlY3Rpb24gIT09IG51bGwgJiYgdGhpcy5jb2xsZWN0aW9uICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgdGhpcy5jb2xsZWN0aW9uLmZvckVhY2goKHZpZXdNb2RlbDogRmlsdGVySXRlbVZpZXdtb2RlbCkgPT4ge1xyXG4gICAgICAgIGlmICh2aWV3TW9kZWwuY2hlY2tlZCkge1xyXG4gICAgICAgICAgZmlsdGVyUmFuZ2UucHVzaChgPz0nJHt2aWV3TW9kZWwuY29kZX0nYCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgICAgaWYgKGZpbHRlclJhbmdlLmxlbmd0aCA+IDApIHtcclxuICAgICAgICB0aGlzLl9tb2RlbCA9IGZpbHRlclJhbmdlLmpvaW4oJywnKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLl9tb2RlbCA9IHVuZGVmaW5lZDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfY3JlYXRlTW9kZWxGb3JTdHJpbmdDb2xsZWN0aW9uTGlzdCgpOiB2b2lkIHtcclxuICAgIGxldCBmaWx0ZXJSYW5nZTogc3RyaW5nW10gPSBbXTtcclxuICAgIHRoaXMuY29sbGVjdGlvbi5mb3JFYWNoKCh2aWV3TW9kZWw6IEZpbHRlckl0ZW1WaWV3bW9kZWwpID0+IHtcclxuICAgICAgaWYgKHZpZXdNb2RlbC5jaGVja2VkKSB7XHJcbiAgICAgICAgZmlsdGVyUmFuZ2UucHVzaCh2aWV3TW9kZWwuY29kZS50b1N0cmluZygpKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICBpZiAoZmlsdGVyUmFuZ2UubGVuZ3RoID4gMCkge1xyXG4gICAgICB0aGlzLl9tb2RlbCA9IGZpbHRlclJhbmdlO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5fbW9kZWwgPSB1bmRlZmluZWQ7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9jcmVhdGVNb2RlbEZvclNpbmdsZVNlbGVjdExpc3QoKTogdm9pZCB7XHJcbiAgICBsZXQgZmlsdGVyU3RyaW5nOiBzdHJpbmcgPSBcIlwiO1xyXG4gICAgdGhpcy5jb2xsZWN0aW9uLmZvckVhY2goKHZpZXdNb2RlbDogRmlsdGVySXRlbVZpZXdtb2RlbCkgPT4ge1xyXG4gICAgICBpZiAodmlld01vZGVsLmNoZWNrZWQpIHtcclxuICAgICAgICBmaWx0ZXJTdHJpbmcgPSB2aWV3TW9kZWwuY29kZS50b1N0cmluZygpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIGlmIChmaWx0ZXJTdHJpbmcubGVuZ3RoID4gMCkge1xyXG4gICAgICB0aGlzLl9tb2RlbCA9IGZpbHRlclN0cmluZztcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuX21vZGVsID0gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfY3JlYXRlTW9kZWxGb3JTZWxlY3RMaXN0V2l0aE51bWJlck91dHB1dCgpOiB2b2lkIHtcclxuICAgIGxldCBmaWx0ZXJOdW1iZXI6IG51bWJlciA9IG51bGw7XHJcbiAgICB0aGlzLmNvbGxlY3Rpb24uZm9yRWFjaCgodmlld01vZGVsOiBGaWx0ZXJJdGVtVmlld21vZGVsKSA9PiB7XHJcbiAgICAgIGlmICh2aWV3TW9kZWwuY2hlY2tlZCkge1xyXG4gICAgICAgIGlmIChmaWx0ZXJOdW1iZXIgPT0gbnVsbCkge1xyXG4gICAgICAgICAgZmlsdGVyTnVtYmVyID0gMDtcclxuICAgICAgICB9XHJcbiAgICAgICAgZmlsdGVyTnVtYmVyICs9IE51bWJlcih2aWV3TW9kZWwuY29kZSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgdGhpcy5fbW9kZWwgPSBmaWx0ZXJOdW1iZXI7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9jcmVhdGVNb2RlbEZvclNsaWRlck1vZGUoKTogdm9pZCB7XHJcbiAgICB0aGlzLnNsaWRlck1pbiA9ICEhdGhpcy5zbGlkZXJNaW4gPyB0aGlzLnNsaWRlck1pbiA6IHRoaXMuc2xpZGVyRGVmYXVsdE1pbjtcclxuICAgIHRoaXMuc2xpZGVyTWF4ID0gISF0aGlzLnNsaWRlck1heCA/IHRoaXMuc2xpZGVyTWF4IDogdGhpcy5zbGlkZXJEZWZhdWx0TWF4O1xyXG5cclxuICAgIGxldCB0cnVlTG93ZXJCb3VuZCA9IE1hdGgubWluKHRoaXMuc2xpZGVyTWluLCB0aGlzLnNsaWRlck1heCk7XHJcbiAgICBsZXQgdHJ1ZVVwcGVyQm91bmQgPSBNYXRoLm1heCh0aGlzLnNsaWRlck1pbiwgdGhpcy5zbGlkZXJNYXgpO1xyXG5cclxuICAgIHRoaXMuc2xpZGVyTWluID0gdHJ1ZUxvd2VyQm91bmQ7XHJcbiAgICB0aGlzLnNsaWRlck1heCA9IHRydWVVcHBlckJvdW5kO1xyXG4gICAgdGhpcy5fbW9kZWwgPSBgJHt0cnVlTG93ZXJCb3VuZH0gLSAke3RydWVVcHBlckJvdW5kfWA7XHJcblxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfY3JlYXRlTW9kZWxGb3JOdWxsYWJsZVNsaWRlck1vZGUoKTogdm9pZCB7XHJcblxyXG4gICAgaWYgKHRoaXMuc2xpZGVyTWluICYmIHRoaXMuc2xpZGVyTWF4KSB7XHJcbiAgICAgIGxldCB0cnVlTG93ZXJCb3VuZCA9IE1hdGgubWluKHRoaXMuc2xpZGVyTWluLCB0aGlzLnNsaWRlck1heCk7XHJcbiAgICAgIGxldCB0cnVlVXBwZXJCb3VuZCA9IE1hdGgubWF4KHRoaXMuc2xpZGVyTWluLCB0aGlzLnNsaWRlck1heCk7XHJcblxyXG4gICAgICB0aGlzLl9tb2RlbCA9IGAke3RydWVMb3dlckJvdW5kfSAtICR7dHJ1ZVVwcGVyQm91bmR9YDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuX21vZGVsID0gbnVsbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2NyZWF0ZU1vZGVsRm9yQ2hlY2tib3hUb1RleHQoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5jaGVja0JveFRvVGV4dE1vZGVsKSB7XHJcbiAgICAgIHRoaXMuX21vZGVsID0gXCI/PSdKJ1wiO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5fbW9kZWwgPSBcIj89J04nXCI7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9jcmVhdGVNb2RlbEZvckNoZWNrYm94VG9TaW1wbGVUZXh0KCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuY2hlY2tCb3hUb1RleHRNb2RlbCkge1xyXG4gICAgICB0aGlzLl9tb2RlbCA9IFwiSlwiO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5fbW9kZWwgPSBcIk5cIjtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2NyZWF0ZU1vZGVsRm9yQ2hlY2tib3hUb0JpbmFyeSgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmNoZWNrQm94VG9UZXh0TW9kZWwpIHtcclxuICAgICAgdGhpcy5fbW9kZWwgPSAxO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5fbW9kZWwgPSAwO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfY3JlYXRlTW9kZWxGb3JEYXRlUmFuZ2UoZGF0ZXM6IERhdGVbXSk6IHZvaWQge1xyXG4gICAgaWYgKGRhdGVzKSB7XHJcbiAgICAgIGxldCBzdGFydERhdGUgPSBkYXRlc1swXTtcclxuICAgICAgbGV0IGVuZERhdGUgPSBkYXRlc1sxXTtcclxuXHJcbiAgICAgIGNvbnN0IHN0YXJ0RGF0ZVJlcXVlc3QgPSBzdGFydERhdGUgPyB0aGlzLl9mb3JtYXREYXRlVG9TdHJpbmcoc3RhcnREYXRlKSA6ICcnO1xyXG4gICAgICBjb25zdCBlbmREYXRlUmVxdWVzdCA9IGVuZERhdGUgPyB0aGlzLl9mb3JtYXREYXRlVG9TdHJpbmcoZW5kRGF0ZSkgOiAnJztcclxuXHJcbiAgICAgIHRoaXMuX21vZGVsID0gYD8+PVxcJyR7c3RhcnREYXRlUmVxdWVzdH1cXCcmID88PVxcJyR7ZW5kRGF0ZVJlcXVlc3R9XFwnYDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2Zvcm1hdERhdGVUb1N0cmluZyhkYXRlOiBEYXRlKTogc3RyaW5nIHtcclxuICAgIGxldCBkYXkgPSBkYXRlLmdldERhdGUoKS50b1N0cmluZygpLnBhZFN0YXJ0KDIsICcwJyk7XHJcbiAgICBsZXQgbW9udGggPSAoZGF0ZS5nZXRNb250aCgpICsgMSkudG9TdHJpbmcoKS5wYWRTdGFydCgyLCAnMCcpO1xyXG4gICAgbGV0IHllYXIgPSBkYXRlLmdldEZ1bGxZZWFyKCk7XHJcblxyXG4gICAgcmV0dXJuIGAke2RheX0tJHttb250aH0tJHt5ZWFyfWA7XHJcbiAgfVxyXG5cclxuICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cclxuICAvL01vZGVsIHJlYWRpbmcgZm9yIGFsbCBvZiB0aGUgZGlmZmVyZW50IG9wdGlvbnMgYXZhaWxhYmxlLy9cclxuICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cclxuICBwcml2YXRlIF9yZWFkTW9kZWxGb3JGaWx0ZXJMaXN0KGZpbHRlck1vZGVsOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIGxldCBmaWx0ZXJMaXN0OiBzdHJpbmdbXSA9IFtdO1xyXG4gICAgbGV0IGl0ZW1zVG9DaGVjazogc3RyaW5nW10gPSBbXTtcclxuICAgIHRoaXMuX3VuY2hlY2tBbGwoKTtcclxuICAgIHRoaXMuX21vZGVsID0gZmlsdGVyTW9kZWw7XHJcblxyXG4gICAgaWYgKGZpbHRlck1vZGVsICE9PSBudWxsICYmIGZpbHRlck1vZGVsICE9PSB1bmRlZmluZWQgJiYgdHlwZW9mIGZpbHRlck1vZGVsID09PSAnc3RyaW5nJyAmJiBmaWx0ZXJNb2RlbC5sZW5ndGggIT0gMCAmJiB0aGlzLmNvbGxlY3Rpb24gIT09IG51bGwgJiYgdGhpcy5jb2xsZWN0aW9uICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgZmlsdGVyTGlzdCA9IGZpbHRlck1vZGVsLnNwbGl0KFwiLFwiKVxyXG4gICAgICBmaWx0ZXJMaXN0LmZvckVhY2goKGZpbHRlcjogc3RyaW5nKSA9PiB7XHJcbiAgICAgICAgaXRlbXNUb0NoZWNrLnB1c2goZmlsdGVyLnN1YnN0cigzLCBmaWx0ZXIubGVuZ3RoIC0gNCkpO1xyXG4gICAgICB9KTtcclxuXHJcbiAgICAgIGZvciAoY29uc3QgaXRlbSBvZiBpdGVtc1RvQ2hlY2spIHtcclxuICAgICAgICBsZXQgZmlsdGVyID0gdGhpcy5jb2xsZWN0aW9uLmZpbmQoZWxlbWVudCA9PiBlbGVtZW50LmNvZGUudG9TdHJpbmcoKSA9PT0gaXRlbSk7XHJcbiAgICAgICAgaWYgKGZpbHRlciAhPT0gbnVsbCAmJiBmaWx0ZXIgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgZmlsdGVyLmNoZWNrZWQgPSB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICB0aGlzLl9tb2RlbCA9IGZpbHRlck1vZGVsO1xyXG4gICAgfVxyXG5cclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3JlYWRNb2RlbEZvclNpbmdsZVNlbGVjdExpc3Qoc2luZ2xlU2VsZWN0TW9kZWw6IHN0cmluZykge1xyXG4gICAgdGhpcy5fdW5jaGVja0FsbCgpO1xyXG4gICAgdGhpcy5fbW9kZWwgPSBzaW5nbGVTZWxlY3RNb2RlbDtcclxuXHJcbiAgICBpZiAoc2luZ2xlU2VsZWN0TW9kZWwgIT09IG51bGwgJiYgc2luZ2xlU2VsZWN0TW9kZWwgIT09IHVuZGVmaW5lZCAmJiB0aGlzLmNvbGxlY3Rpb24gIT09IG51bGwgJiYgdGhpcy5jb2xsZWN0aW9uICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgbGV0IGZpbHRlciA9IHRoaXMuY29sbGVjdGlvbi5maW5kKGVsZW1lbnQgPT4gZWxlbWVudC5jb2RlLnRvU3RyaW5nKCkgPT09IHNpbmdsZVNlbGVjdE1vZGVsKTtcclxuICAgICAgaWYgKGZpbHRlciAhPT0gbnVsbCAmJiBmaWx0ZXIgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgIGZpbHRlci5jaGVja2VkID0gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfcmVhZE1vZGVsRm9yU3RyaW5nQ29sbGVjdGlvbkxpc3QoY29sbGVjdGlvbk1vZGVsOiBzdHJpbmdbXSk6IHZvaWQge1xyXG4gICAgdGhpcy5fdW5jaGVja0FsbCgpO1xyXG4gICAgdGhpcy5fbW9kZWwgPSBjb2xsZWN0aW9uTW9kZWw7XHJcblxyXG4gICAgaWYgKGNvbGxlY3Rpb25Nb2RlbCAhPT0gbnVsbCAmJiBjb2xsZWN0aW9uTW9kZWwgIT09IHVuZGVmaW5lZCAmJiB0aGlzLmNvbGxlY3Rpb24gIT09IG51bGwgJiYgdGhpcy5jb2xsZWN0aW9uICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgdGhpcy5jb2xsZWN0aW9uLmZvckVhY2goKHZpZXdNb2RlbDogRmlsdGVySXRlbVZpZXdtb2RlbCkgPT4ge1xyXG4gICAgICAgIGlmIChjb2xsZWN0aW9uTW9kZWwuaW5kZXhPZih2aWV3TW9kZWwuY29kZS50b1N0cmluZygpKSA+IC0xKSB7XHJcbiAgICAgICAgICB2aWV3TW9kZWwuY2hlY2tlZCA9IHRydWU7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHZpZXdNb2RlbC5jaGVja2VkID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3JlYWRNb2RlbEZvclNlbGVjdExpc3RXaXRoTnVtYmVyT3V0cHV0KG51bWJlck1vZGVsOiBudW1iZXIpIHtcclxuICAgIHRoaXMuX3VuY2hlY2tBbGwoKTtcclxuICAgIHRoaXMuX21vZGVsID0gbnVtYmVyTW9kZWw7XHJcblxyXG4gICAgaWYgKG51bWJlck1vZGVsICE9PSBudWxsICYmIG51bWJlck1vZGVsICE9PSB1bmRlZmluZWQgJiYgdGhpcy5jb2xsZWN0aW9uICE9PSBudWxsICYmIHRoaXMuY29sbGVjdGlvbiAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIGZvciAoY29uc3QgaXRlbSBvZiB0aGlzLmNvbGxlY3Rpb24pIHtcclxuICAgICAgICBjb25zdCBpdGVtQ29kZTogbnVtYmVyID0gaXRlbS5jb2RlIGFzIG51bWJlcjtcclxuICAgICAgICBjb25zdCBtb2RWYWx1ZSA9IChudW1iZXJNb2RlbCAlICgyICogaXRlbUNvZGUpKTtcclxuICAgICAgICBpdGVtLmNoZWNrZWQgPSAobW9kVmFsdWUgPj0gaXRlbUNvZGUpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF91bmNoZWNrQWxsKCkge1xyXG4gICAgaWYgKHRoaXMuY29sbGVjdGlvbiAhPT0gbnVsbCAmJiB0aGlzLmNvbGxlY3Rpb24gIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICB0aGlzLmNvbGxlY3Rpb24uZm9yRWFjaChtID0+IHtcclxuICAgICAgICBtLmNoZWNrZWQgPSBmYWxzZTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9yZWFkTW9kZWxGb3JTbGlkZXJNb2RlKHNsaWRlck1vZGVsOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMuX21vZGVsID0gc2xpZGVyTW9kZWw7XHJcbiAgICBpZiAoc2xpZGVyTW9kZWwgIT09IHVuZGVmaW5lZCAmJiBzbGlkZXJNb2RlbCAhPT0gbnVsbCkge1xyXG4gICAgICBsZXQgc2xpZGVySW5wdXRDb2xsZWN0aW9uID0gc2xpZGVyTW9kZWwuc3BsaXQoJyAtICcpO1xyXG4gICAgICB0aGlzLnNsaWRlck1pbiA9IHBhcnNlSW50KHNsaWRlcklucHV0Q29sbGVjdGlvblswXSk7XHJcbiAgICAgIHRoaXMuc2xpZGVyTWF4ID0gcGFyc2VJbnQoc2xpZGVySW5wdXRDb2xsZWN0aW9uWzFdKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc2xpZGVyTWluID0gdGhpcy5zbGlkZXJEZWZhdWx0TWluO1xyXG4gICAgICB0aGlzLnNsaWRlck1heCA9IHRoaXMuc2xpZGVyRGVmYXVsdE1heDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3JlYWRNb2RlbEZvckNoZWNrYm94VG9UZXh0KGNoZWNrYm94VG9UZXh0TW9kZWw6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdGhpcy5fbW9kZWwgPSBjaGVja2JveFRvVGV4dE1vZGVsO1xyXG4gICAgaWYgKGNoZWNrYm94VG9UZXh0TW9kZWwgIT09IHVuZGVmaW5lZCAmJiBjaGVja2JveFRvVGV4dE1vZGVsICE9PSBudWxsKSB7XHJcbiAgICAgIHRoaXMuY2hlY2tCb3hUb1RleHRNb2RlbCA9IChjaGVja2JveFRvVGV4dE1vZGVsLmluZGV4T2YoJ0onKSA+IC0xKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuY2hlY2tCb3hUb1RleHRNb2RlbCA9IGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfcmVhZE1vZGVsRm9yQ2hlY2tib3hUb0JpbmFyeShjaGVja2JveFRvQmluYXJ5OiBudW1iZXIpOiB2b2lkIHtcclxuICAgIHRoaXMuX21vZGVsID0gY2hlY2tib3hUb0JpbmFyeTtcclxuICAgIGlmIChjaGVja2JveFRvQmluYXJ5ICE9PSB1bmRlZmluZWQgJiYgY2hlY2tib3hUb0JpbmFyeSAhPT0gbnVsbCkge1xyXG4gICAgICB0aGlzLmNoZWNrQm94VG9UZXh0TW9kZWwgPSAoY2hlY2tib3hUb0JpbmFyeSA+PSAxKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuY2hlY2tCb3hUb1RleHRNb2RlbCA9IGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfcmVhZE1vZGVsRm9yRGF0ZUZpZWxkKGRhdGVGaWVsZE1vZGVsOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMuX21vZGVsID0gZGF0ZUZpZWxkTW9kZWw7XHJcbiAgICBpZiAoZGF0ZUZpZWxkTW9kZWwgIT09IHVuZGVmaW5lZCAmJiBkYXRlRmllbGRNb2RlbCAhPT0gbnVsbCkge1xyXG4gICAgICB0aGlzLl9tb2RlbCA9IG5ldyBEYXRlKGRhdGVGaWVsZE1vZGVsKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuX21vZGVsID0gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfcmVhZE1vZGVsRm9yRGF0ZVJhbmdlRmllbGQoZGF0ZVJhbmdlRmllbGRNb2RlbDogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLl9tb2RlbCA9IGRhdGVSYW5nZUZpZWxkTW9kZWw7XHJcbiAgICBpZiAoZGF0ZVJhbmdlRmllbGRNb2RlbCAhPT0gdW5kZWZpbmVkICYmIGRhdGVSYW5nZUZpZWxkTW9kZWwgIT09IG51bGwpIHtcclxuICAgICAgbGV0IGRhdGVDb2xsZWN0aW9uID0gZGF0ZVJhbmdlRmllbGRNb2RlbC5zcGxpdCgnJicpO1xyXG5cclxuICAgICAgbGV0IHN0YXJ0U3RyaW5nID0gZGF0ZUNvbGxlY3Rpb25bMF0udHJpbSgpLnN1YnN0cig0LCBkYXRlQ29sbGVjdGlvblswXS5sZW5ndGggLSA1KTtcclxuICAgICAgbGV0IGVuZFN0cmluZyA9IGRhdGVDb2xsZWN0aW9uWzFdLnRyaW0oKS5zdWJzdHIoNCwgZGF0ZUNvbGxlY3Rpb25bMV0ubGVuZ3RoIC0gNSk7XHJcblxyXG4gICAgICBsZXQgc3RhcnREYXRlQ29tcG9uZW50cyA9IHN0YXJ0U3RyaW5nLnNwbGl0KCctJyk7XHJcbiAgICAgIGxldCBlbmREYXRlQ29tcG9uZW50cyA9IGVuZFN0cmluZy5zcGxpdCgnLScpO1xyXG5cclxuICAgICAgdGhpcy5kYXRlUmFuZ2VTdGFydCA9IG5ldyBEYXRlKHBhcnNlSW50KHN0YXJ0RGF0ZUNvbXBvbmVudHNbMl0pLCBwYXJzZUludChzdGFydERhdGVDb21wb25lbnRzWzFdKSAtIDEsIHBhcnNlSW50KHN0YXJ0RGF0ZUNvbXBvbmVudHNbMF0pKTtcclxuICAgICAgdGhpcy5kYXRlUmFuZ2VFbmQgPSBuZXcgRGF0ZShwYXJzZUludChlbmREYXRlQ29tcG9uZW50c1syXSksIHBhcnNlSW50KGVuZERhdGVDb21wb25lbnRzWzFdKSAtIDEsIHBhcnNlSW50KGVuZERhdGVDb21wb25lbnRzWzBdKSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmRhdGVSYW5nZVN0YXJ0ID0gdW5kZWZpbmVkO1xyXG4gICAgICB0aGlzLmRhdGVSYW5nZUVuZCA9IHVuZGVmaW5lZDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19