@colijnit/corecomponents_v12 12.2.25 → 12.2.27

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 (1276) hide show
  1. package/README.md +9 -12
  2. package/bundles/colijnit-corecomponents_v12.umd.js +14050 -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 +83 -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 +13391 -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 +20 -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/screen-config-adapter-component-interface-name.d.ts +3 -0
  418. package/lib/interfaces/screen-config-adapter.component.interface.d.ts +10 -0
  419. package/lib/model/enum/app-button-type.enum.d.ts +9 -0
  420. package/lib/model/enum/app-popup-type.enum.d.ts +6 -0
  421. package/lib/pipes/append.pipe.d.ts +4 -0
  422. package/lib/pipes/append.pipe.module.d.ts +2 -0
  423. package/lib/pipes/filter.pipe.d.ts +4 -0
  424. package/lib/pipes/filter.pipe.module.d.ts +2 -0
  425. package/lib/pipes/prepend.pipe.d.ts +4 -0
  426. package/lib/pipes/prepend.pipe.module.d.ts +2 -0
  427. package/lib/pipes/price-display-pipe.module.d.ts +2 -0
  428. package/lib/pipes/price-display.pipe.d.ts +4 -0
  429. package/lib/service/base-module-screen-config.service.d.ts +47 -0
  430. package/lib/service/base-module.service.d.ts +22 -0
  431. package/lib/service/color-sequence.service.d.ts +4 -0
  432. package/lib/service/overlay.service.d.ts +13 -0
  433. package/lib/translation/core-components-translation.module.d.ts +4 -0
  434. package/lib/translation/core-components-translation.service.d.ts +6 -0
  435. package/lib/translation/core-dictionary.service.d.ts +12 -0
  436. package/lib/translation/core-localize.pipe.d.ts +7 -0
  437. package/package.json +22 -43
  438. package/public-api.d.ts +126 -0
  439. package/.browserslistrc +0 -17
  440. package/.editorconfig +0 -16
  441. package/.idea/CoreComponents_v12.iml +0 -12
  442. package/.idea/misc.xml +0 -9
  443. package/.idea/modules.xml +0 -8
  444. package/.idea/vcs.xml +0 -6
  445. package/CoreComponents_v12.iml +0 -12
  446. package/angular.json +0 -149
  447. package/dist/corecomponentstest/favicon.ico +0 -0
  448. package/dist/corecomponentstest/index.html +0 -13
  449. package/dist/corecomponentstest/main.js +0 -24187
  450. package/dist/corecomponentstest/main.js.map +0 -1
  451. package/dist/corecomponentstest/polyfills.js +0 -2891
  452. package/dist/corecomponentstest/polyfills.js.map +0 -1
  453. package/dist/corecomponentstest/runtime.js +0 -161
  454. package/dist/corecomponentstest/runtime.js.map +0 -1
  455. package/dist/corecomponentstest/styles.css +0 -2926
  456. package/dist/corecomponentstest/styles.css.map +0 -1
  457. package/dist/corecomponentstest/vendor.js +0 -118790
  458. package/dist/corecomponentstest/vendor.js.map +0 -1
  459. package/karma.conf.js +0 -44
  460. package/move-assets.js +0 -14
  461. package/projects/corecomponents/README.md +0 -24
  462. package/projects/corecomponents/karma.conf.js +0 -44
  463. package/projects/corecomponents/ng-package.json +0 -10
  464. package/projects/corecomponents/package-lock.json +0 -13
  465. package/projects/corecomponents/package.json +0 -19
  466. package/projects/corecomponents/src/lib/components/article-tile/article-tile.component.ts +0 -95
  467. package/projects/corecomponents/src/lib/components/article-tile/article-tile.module.ts +0 -34
  468. package/projects/corecomponents/src/lib/components/base/base-input.component.ts +0 -988
  469. package/projects/corecomponents/src/lib/components/base/base.module.ts +0 -22
  470. package/projects/corecomponents/src/lib/components/base/commit-buttons/commit-buttons.component.ts +0 -120
  471. package/projects/corecomponents/src/lib/components/base/commit-buttons/commit-buttons.module.ts +0 -19
  472. package/projects/corecomponents/src/lib/components/base/dialog-base.component.ts +0 -8
  473. package/projects/corecomponents/src/lib/components/base-input-date-picker/base-input-date-picker.directive.ts +0 -32
  474. package/projects/corecomponents/src/lib/components/base-input-time/base-input-time-directive.ts +0 -31
  475. package/projects/corecomponents/src/lib/components/button/button.component.ts +0 -117
  476. package/projects/corecomponents/src/lib/components/button/button.module.ts +0 -18
  477. package/projects/corecomponents/src/lib/components/calendar/calendar-template.component.ts +0 -392
  478. package/projects/corecomponents/src/lib/components/calendar/calendar.component.ts +0 -54
  479. package/projects/corecomponents/src/lib/components/calendar/calendar.module.ts +0 -26
  480. package/projects/corecomponents/src/lib/components/card/card.component.ts +0 -94
  481. package/projects/corecomponents/src/lib/components/card/card.module.ts +0 -34
  482. package/projects/corecomponents/src/lib/components/carousel/carousel.component.ts +0 -128
  483. package/projects/corecomponents/src/lib/components/carousel/carousel.module.ts +0 -28
  484. package/projects/corecomponents/src/lib/components/carousel-3d/carousel-3d.component.ts +0 -392
  485. package/projects/corecomponents/src/lib/components/carousel-3d/carousel-3d.module.ts +0 -17
  486. package/projects/corecomponents/src/lib/components/carousel-3d/carouselItem.ts +0 -77
  487. package/projects/corecomponents/src/lib/components/checkmark-overlay/checkmark-overlay.component.ts +0 -99
  488. package/projects/corecomponents/src/lib/components/checkmark-overlay/checkmark-overlay.module.ts +0 -18
  489. package/projects/corecomponents/src/lib/components/co-dialog/animation.ts +0 -2
  490. package/projects/corecomponents/src/lib/components/co-dialog/co-dialog.component.ts +0 -130
  491. package/projects/corecomponents/src/lib/components/co-dialog/co-dialog.module.ts +0 -17
  492. package/projects/corecomponents/src/lib/components/co-dialog-wizard/co-dialog-wizard.component.ts +0 -50
  493. package/projects/corecomponents/src/lib/components/co-dialog-wizard/co-dialog-wizard.module.ts +0 -15
  494. package/projects/corecomponents/src/lib/components/collapsible/collapsible.component.ts +0 -114
  495. package/projects/corecomponents/src/lib/components/collapsible/collapsible.module.ts +0 -17
  496. package/projects/corecomponents/src/lib/components/color-picker/color-picker.component.ts +0 -40
  497. package/projects/corecomponents/src/lib/components/color-picker/color-picker.module.ts +0 -19
  498. package/projects/corecomponents/src/lib/components/core-dialog/confirmation-dialog/confirmation-dialog.component.ts +0 -86
  499. package/projects/corecomponents/src/lib/components/core-dialog/core-dialog.module.ts +0 -37
  500. package/projects/corecomponents/src/lib/components/core-dialog/core-dialog.service.ts +0 -61
  501. package/projects/corecomponents/src/lib/components/core-dialog/core-dynamic-component.service.ts +0 -101
  502. package/projects/corecomponents/src/lib/components/double-calendar/double-calendar.component.ts +0 -102
  503. package/projects/corecomponents/src/lib/components/double-calendar/double-calendar.module.ts +0 -23
  504. package/projects/corecomponents/src/lib/components/filter-item/filter-item-viewmodel.ts +0 -20
  505. package/projects/corecomponents/src/lib/components/filter-item/filter-item.component.ts +0 -715
  506. package/projects/corecomponents/src/lib/components/filter-item/filter-item.module.ts +0 -42
  507. package/projects/corecomponents/src/lib/components/filter-item/filter-viewmodel.ts +0 -11
  508. package/projects/corecomponents/src/lib/components/form/form.component.ts +0 -211
  509. package/projects/corecomponents/src/lib/components/form/form.module.ts +0 -22
  510. package/projects/corecomponents/src/lib/components/grid-toolbar/grid-toolbar.component.ts +0 -62
  511. package/projects/corecomponents/src/lib/components/grid-toolbar/grid-toolbar.module.ts +0 -21
  512. package/projects/corecomponents/src/lib/components/grid-toolbar-button/grid-toolbar-button.component.ts +0 -28
  513. package/projects/corecomponents/src/lib/components/grid-toolbar-button/grid-toolbar-button.module.ts +0 -17
  514. package/projects/corecomponents/src/lib/components/icon/icon-cache.service.ts +0 -57
  515. package/projects/corecomponents/src/lib/components/icon/icon.component.ts +0 -54
  516. package/projects/corecomponents/src/lib/components/icon/icon.module.ts +0 -24
  517. package/projects/corecomponents/src/lib/components/icon-collapse-handle/icon-collapse-handle.component.ts +0 -75
  518. package/projects/corecomponents/src/lib/components/icon-collapse-handle/icon-collapse-handle.module.ts +0 -21
  519. package/projects/corecomponents/src/lib/components/image/image.component.ts +0 -51
  520. package/projects/corecomponents/src/lib/components/image/image.module.ts +0 -12
  521. package/projects/corecomponents/src/lib/components/input-checkbox/input-checkbox.component.ts +0 -85
  522. package/projects/corecomponents/src/lib/components/input-checkbox/input-checkbox.module.ts +0 -17
  523. package/projects/corecomponents/src/lib/components/input-date-picker/input-date-picker.component.ts +0 -103
  524. package/projects/corecomponents/src/lib/components/input-date-picker/input-date-picker.module.ts +0 -24
  525. package/projects/corecomponents/src/lib/components/input-date-range-picker/input-date-range-picker.component.ts +0 -155
  526. package/projects/corecomponents/src/lib/components/input-date-range-picker/input-date-range-picker.module.ts +0 -25
  527. package/projects/corecomponents/src/lib/components/input-number-picker/input-number-picker.component.ts +0 -378
  528. package/projects/corecomponents/src/lib/components/input-number-picker/input-number-picker.module.ts +0 -20
  529. package/projects/corecomponents/src/lib/components/input-radio-button/input-radio-button.component.ts +0 -86
  530. package/projects/corecomponents/src/lib/components/input-radio-button/input-radio-button.module.ts +0 -17
  531. package/projects/corecomponents/src/lib/components/input-scanner/bar-code-scanner.ts +0 -25
  532. package/projects/corecomponents/src/lib/components/input-scanner/input-scanner.component.ts +0 -89
  533. package/projects/corecomponents/src/lib/components/input-scanner/input-scanner.module.ts +0 -19
  534. package/projects/corecomponents/src/lib/components/input-scanner/scanner.service.ts +0 -28
  535. package/projects/corecomponents/src/lib/components/input-search/input-search.component.ts +0 -85
  536. package/projects/corecomponents/src/lib/components/input-search/input-search.module.ts +0 -20
  537. package/projects/corecomponents/src/lib/components/input-text/input-text.component.ts +0 -294
  538. package/projects/corecomponents/src/lib/components/input-text/input-text.module.ts +0 -31
  539. package/projects/corecomponents/src/lib/components/input-textarea/input-textarea.component.ts +0 -81
  540. package/projects/corecomponents/src/lib/components/input-textarea/input-textarea.module.ts +0 -25
  541. package/projects/corecomponents/src/lib/components/input-time/input-time.component.ts +0 -72
  542. package/projects/corecomponents/src/lib/components/input-time/input-time.module.ts +0 -22
  543. package/projects/corecomponents/src/lib/components/level-indicator/level-indicator-level.enum.ts +0 -5
  544. package/projects/corecomponents/src/lib/components/level-indicator/level-indicator.component.ts +0 -42
  545. package/projects/corecomponents/src/lib/components/level-indicator/level-indicator.module.ts +0 -13
  546. package/projects/corecomponents/src/lib/components/list-of-values/list-of-values-multiselect-popup.component.ts +0 -132
  547. package/projects/corecomponents/src/lib/components/list-of-values/list-of-values-popup.component.ts +0 -281
  548. package/projects/corecomponents/src/lib/components/list-of-values/list-of-values.component.ts +0 -257
  549. package/projects/corecomponents/src/lib/components/list-of-values/list-of-values.module.ts +0 -35
  550. package/projects/corecomponents/src/lib/components/loader/loader.component.ts +0 -82
  551. package/projects/corecomponents/src/lib/components/loader/loader.module.ts +0 -17
  552. package/projects/corecomponents/src/lib/components/pagination/paginate.pipe.ts +0 -116
  553. package/projects/corecomponents/src/lib/components/pagination/pagination-instance.ts +0 -18
  554. package/projects/corecomponents/src/lib/components/pagination/pagination.component.ts +0 -160
  555. package/projects/corecomponents/src/lib/components/pagination/pagination.module.ts +0 -26
  556. package/projects/corecomponents/src/lib/components/pagination/pagination.service.ts +0 -99
  557. package/projects/corecomponents/src/lib/components/pagination-bar/pagination-bar.component.ts +0 -178
  558. package/projects/corecomponents/src/lib/components/pagination-bar/pagination-bar.module.ts +0 -17
  559. package/projects/corecomponents/src/lib/components/popup/const/popup-window-token.ts +0 -4
  560. package/projects/corecomponents/src/lib/components/popup/interface/popup-button.ts +0 -14
  561. package/projects/corecomponents/src/lib/components/popup/interface/popup-close-event.ts +0 -8
  562. package/projects/corecomponents/src/lib/components/popup/interface/popup-settings.ts +0 -70
  563. package/projects/corecomponents/src/lib/components/popup/interface/popup.ts +0 -17
  564. package/projects/corecomponents/src/lib/components/popup/model/popup-button-globals.ts +0 -11
  565. package/projects/corecomponents/src/lib/components/popup/model/popup-window.ts +0 -51
  566. package/projects/corecomponents/src/lib/components/popup/popup-buttons.component.ts +0 -61
  567. package/projects/corecomponents/src/lib/components/popup/popup-message-display.component.ts +0 -49
  568. package/projects/corecomponents/src/lib/components/popup/popup-window-shell.component.ts +0 -222
  569. package/projects/corecomponents/src/lib/components/popup/popup.module.ts +0 -48
  570. package/projects/corecomponents/src/lib/components/popup/service/popup-shower.service.ts +0 -98
  571. package/projects/corecomponents/src/lib/components/popup/service/prompt.service.ts +0 -127
  572. package/projects/corecomponents/src/lib/components/popup/text-input-popup.component.ts +0 -36
  573. package/projects/corecomponents/src/lib/components/responsive-text/responsive-text.component.ts +0 -24
  574. package/projects/corecomponents/src/lib/components/responsive-text/responsive-text.module.ts +0 -17
  575. package/projects/corecomponents/src/lib/components/simple-grid/base-simple-grid.component.ts +0 -194
  576. package/projects/corecomponents/src/lib/components/simple-grid/simple-grid-cell.component.ts +0 -192
  577. package/projects/corecomponents/src/lib/components/simple-grid/simple-grid-column.directive.ts +0 -143
  578. package/projects/corecomponents/src/lib/components/simple-grid/simple-grid.component.ts +0 -489
  579. package/projects/corecomponents/src/lib/components/simple-grid/simple-grid.module.ts +0 -38
  580. package/projects/corecomponents/src/lib/components/tile/tile.component.ts +0 -71
  581. package/projects/corecomponents/src/lib/components/tile/tile.module.ts +0 -21
  582. package/projects/corecomponents/src/lib/components/tile-select/tile-select.component.ts +0 -36
  583. package/projects/corecomponents/src/lib/components/tile-select/tile-select.module.ts +0 -19
  584. package/projects/corecomponents/src/lib/components/tooltip/tooltip.component.ts +0 -96
  585. package/projects/corecomponents/src/lib/components/tooltip/tooltip.module.ts +0 -17
  586. package/projects/corecomponents/src/lib/components/validation-error/validation-error.component.ts +0 -45
  587. package/projects/corecomponents/src/lib/components/validation-error/validation-error.module.ts +0 -24
  588. package/projects/corecomponents/src/lib/components/view-mode-buttons/content-view-mode.enum.ts +0 -9
  589. package/projects/corecomponents/src/lib/components/view-mode-buttons/view-mode-buttons.component.ts +0 -63
  590. package/projects/corecomponents/src/lib/components/view-mode-buttons/view-mode-buttons.module.ts +0 -19
  591. package/projects/corecomponents/src/lib/core/abstract/collection-based-component.ts +0 -488
  592. package/projects/corecomponents/src/lib/core/config/device-environment.ts +0 -26
  593. package/projects/corecomponents/src/lib/core/constant/default-upper-bound-for-range-components.ts +0 -4
  594. package/projects/corecomponents/src/lib/core/constant/java-max-int.ts +0 -1
  595. package/projects/corecomponents/src/lib/core/constant/number-inputs-key-down-white-list.ts +0 -46
  596. package/projects/corecomponents/src/lib/core/decorator/input-boolean.decorator.ts +0 -35
  597. package/projects/corecomponents/src/lib/core/enum/co-direction.ts +0 -7
  598. package/projects/corecomponents/src/lib/core/enum/co-document-image-display-kind.enum.ts +0 -5
  599. package/projects/corecomponents/src/lib/core/enum/co-document-type.enum.ts +0 -9
  600. package/projects/corecomponents/src/lib/core/enum/co-orientation.ts +0 -18
  601. package/projects/corecomponents/src/lib/core/enum/collection-based-component-input-driver-prop.enum.ts +0 -10
  602. package/projects/corecomponents/src/lib/core/enum/color-sequence-name.enum.ts +0 -5
  603. package/projects/corecomponents/src/lib/core/enum/core-components-icon.enum.ts +0 -299
  604. package/projects/corecomponents/src/lib/core/enum/file-type-internal.enum.ts +0 -15
  605. package/projects/corecomponents/src/lib/core/enum/file-type.enum.ts +0 -9
  606. package/projects/corecomponents/src/lib/core/enum/filterItem-mode.enum.ts +0 -57
  607. package/projects/corecomponents/src/lib/core/enum/float-label-type.enum.ts +0 -5
  608. package/projects/corecomponents/src/lib/core/enum/input-number-picker-show-mode.enum.ts +0 -6
  609. package/projects/corecomponents/src/lib/core/enum/input-text-type.enum.ts +0 -4
  610. package/projects/corecomponents/src/lib/core/enum/keyboard-code.enum.ts +0 -72
  611. package/projects/corecomponents/src/lib/core/enum/keyboard-key.enum.ts +0 -78
  612. package/projects/corecomponents/src/lib/core/enum/logical-operator-type.enum.ts +0 -5
  613. package/projects/corecomponents/src/lib/core/enum/object-right-type.enum.ts +0 -5
  614. package/projects/corecomponents/src/lib/core/enum/popup-button-type.enum.ts +0 -10
  615. package/projects/corecomponents/src/lib/core/enum/popup-type.enum.ts +0 -9
  616. package/projects/corecomponents/src/lib/core/enum/schedule-view.enum.ts +0 -14
  617. package/projects/corecomponents/src/lib/core/enum/search-data-type.ts +0 -4
  618. package/projects/corecomponents/src/lib/core/enum/search-property-state.ts +0 -5
  619. package/projects/corecomponents/src/lib/core/enum/sort-data-type.ts +0 -6
  620. package/projects/corecomponents/src/lib/core/enum/sort-direction.ts +0 -9
  621. package/projects/corecomponents/src/lib/core/enum/table-name.enum.ts +0 -79
  622. package/projects/corecomponents/src/lib/core/enum/value-comparison-type.ts +0 -11
  623. package/projects/corecomponents/src/lib/core/function/any-nill.function.ts +0 -6
  624. package/projects/corecomponents/src/lib/core/function/is-nill.function.ts +0 -4
  625. package/projects/corecomponents/src/lib/core/function/none-nill.function.ts +0 -16
  626. package/projects/corecomponents/src/lib/core/function/not-nill.function.ts +0 -4
  627. package/projects/corecomponents/src/lib/core/interface/search-property.ts +0 -15
  628. package/projects/corecomponents/src/lib/core/interface/sort-property.ts +0 -16
  629. package/projects/corecomponents/src/lib/core/model/bounds-constrained-number-value.ts +0 -222
  630. package/projects/corecomponents/src/lib/core/model/check-precision-and-scale-result.ts +0 -5
  631. package/projects/corecomponents/src/lib/core/model/check-within-stepped-bounds-result.ts +0 -8
  632. package/projects/corecomponents/src/lib/core/model/co-document-right.bo.ts +0 -9
  633. package/projects/corecomponents/src/lib/core/model/co-document.bo.ts +0 -193
  634. package/projects/corecomponents/src/lib/core/model/color-sequence.ts +0 -39
  635. package/projects/corecomponents/src/lib/core/model/color.ts +0 -29
  636. package/projects/corecomponents/src/lib/core/model/core-components-icon-svg.ts +0 -299
  637. package/projects/corecomponents/src/lib/core/model/element-position.ts +0 -14
  638. package/projects/corecomponents/src/lib/core/model/event/number-prompt-result-event.ts +0 -10
  639. package/projects/corecomponents/src/lib/core/model/event/string-prompt-result-event.ts +0 -10
  640. package/projects/corecomponents/src/lib/core/model/numerical-range.ts +0 -19
  641. package/projects/corecomponents/src/lib/core/service/form-input-user-change-listener.service.ts +0 -31
  642. package/projects/corecomponents/src/lib/core/service/form-master.service.ts +0 -119
  643. package/projects/corecomponents/src/lib/core/service/ng-zone-wrapper.service.ts +0 -15
  644. package/projects/corecomponents/src/lib/core/utils/array-utils.spec.ts +0 -588
  645. package/projects/corecomponents/src/lib/core/utils/array-utils.ts +0 -301
  646. package/projects/corecomponents/src/lib/core/utils/browser-utils.ts +0 -123
  647. package/projects/corecomponents/src/lib/core/utils/business-object-utils.ts +0 -42
  648. package/projects/corecomponents/src/lib/core/utils/css-utils.ts +0 -276
  649. package/projects/corecomponents/src/lib/core/utils/direction-enum-utils.ts +0 -15
  650. package/projects/corecomponents/src/lib/core/utils/element-ref.utils.ts +0 -12
  651. package/projects/corecomponents/src/lib/core/utils/event-utils.ts +0 -61
  652. package/projects/corecomponents/src/lib/core/utils/file-utils.ts +0 -291
  653. package/projects/corecomponents/src/lib/core/utils/number-utils.spec.ts +0 -657
  654. package/projects/corecomponents/src/lib/core/utils/number-utils.ts +0 -350
  655. package/projects/corecomponents/src/lib/core/utils/object-utils.ts +0 -205
  656. package/projects/corecomponents/src/lib/core/utils/parameter-value-conversion-utils.ts +0 -116
  657. package/projects/corecomponents/src/lib/core/utils/search-utils.ts +0 -121
  658. package/projects/corecomponents/src/lib/core/utils/sort-utils.ts +0 -108
  659. package/projects/corecomponents/src/lib/core/utils/string-utils.ts +0 -100
  660. package/projects/corecomponents/src/lib/core/validator/email.validator.ts +0 -10
  661. package/projects/corecomponents/src/lib/core/validator/equal.validator.ts +0 -14
  662. package/projects/corecomponents/src/lib/core/validator/max-string-length.validator.ts +0 -11
  663. package/projects/corecomponents/src/lib/core/validator/password.validator.ts +0 -35
  664. package/projects/corecomponents/src/lib/core/validator/precision-scale.validator.ts +0 -14
  665. package/projects/corecomponents/src/lib/core/validator/required.validator.ts +0 -9
  666. package/projects/corecomponents/src/lib/directives/align-with/align-with.directive.ts +0 -158
  667. package/projects/corecomponents/src/lib/directives/align-with/align-with.module.ts +0 -13
  668. package/projects/corecomponents/src/lib/directives/clickoutside/click-outside-master.service.ts +0 -64
  669. package/projects/corecomponents/src/lib/directives/clickoutside/click-outside.directive.ts +0 -72
  670. package/projects/corecomponents/src/lib/directives/clickoutside/clickoutside.module.ts +0 -17
  671. package/projects/corecomponents/src/lib/directives/observe-visibility/observe-visibility.directive.ts +0 -55
  672. package/projects/corecomponents/src/lib/directives/observe-visibility/observe-visibility.module.ts +0 -13
  673. package/projects/corecomponents/src/lib/directives/overlay/overlay-parent.directive.ts +0 -20
  674. package/projects/corecomponents/src/lib/directives/overlay/overlay.directive.ts +0 -170
  675. package/projects/corecomponents/src/lib/directives/overlay/overlay.module.ts +0 -16
  676. package/projects/corecomponents/src/lib/directives/parsevalue/parse-value.directive.ts +0 -42
  677. package/projects/corecomponents/src/lib/directives/parsevalue/parse-value.module.ts +0 -13
  678. package/projects/corecomponents/src/lib/directives/resize/resize-detect.directive.ts +0 -54
  679. package/projects/corecomponents/src/lib/directives/resize/resize-detect.module.ts +0 -13
  680. package/projects/corecomponents/src/lib/directives/ripple/ripple-ref.ts +0 -28
  681. package/projects/corecomponents/src/lib/directives/ripple/ripple-renderer.ts +0 -217
  682. package/projects/corecomponents/src/lib/directives/ripple/ripple.directive.ts +0 -116
  683. package/projects/corecomponents/src/lib/directives/ripple/ripple.module.ts +0 -24
  684. package/projects/corecomponents/src/lib/directives/ripple/scroll-dispatcher.service.ts +0 -129
  685. package/projects/corecomponents/src/lib/directives/ripple/scrollable.directive.ts +0 -37
  686. package/projects/corecomponents/src/lib/directives/ripple/viewport-ruler.service.ts +0 -84
  687. package/projects/corecomponents/src/lib/directives/screen-configuration/screen-configuration.directive.ts +0 -170
  688. package/projects/corecomponents/src/lib/directives/screen-configuration/screen-configuration.module.ts +0 -16
  689. package/projects/corecomponents/src/lib/directives/stopclick/stop-click.directive.ts +0 -35
  690. package/projects/corecomponents/src/lib/directives/stopclick/stop-click.module.ts +0 -14
  691. package/projects/corecomponents/src/lib/directives/template-wrapper/template-wrapper.directive.ts +0 -71
  692. package/projects/corecomponents/src/lib/directives/template-wrapper/template-wrapper.module.ts +0 -13
  693. package/projects/corecomponents/src/lib/directives/tooltip/tooltip-directive.module.ts +0 -17
  694. package/projects/corecomponents/src/lib/directives/tooltip/tooltip.directive.ts +0 -94
  695. package/projects/corecomponents/src/lib/interfaces/dialog-response.interface.ts +0 -7
  696. package/projects/corecomponents/src/lib/interfaces/lov-options.component.interface.ts +0 -4
  697. package/projects/corecomponents/src/lib/interfaces/screen-config-adapter-component-interface-name.ts +0 -6
  698. package/projects/corecomponents/src/lib/interfaces/screen-config-adapter.component.interface.ts +0 -10
  699. package/projects/corecomponents/src/lib/model/data-item.ts +0 -9
  700. package/projects/corecomponents/src/lib/model/enum/app-button-type.enum.ts +0 -9
  701. package/projects/corecomponents/src/lib/model/enum/app-popup-type.enum.ts +0 -6
  702. package/projects/corecomponents/src/lib/model/enum/currency-code.enum.ts +0 -7
  703. package/projects/corecomponents/src/lib/model/enum/language-code.enum.ts +0 -8
  704. package/projects/corecomponents/src/lib/model/map/currencies.map.ts +0 -6
  705. package/projects/corecomponents/src/lib/modules/drag-drop/drag-drop-container.component.ts +0 -115
  706. package/projects/corecomponents/src/lib/modules/drag-drop/drag-drop-container.css +0 -34
  707. package/projects/corecomponents/src/lib/modules/drag-drop/drag-drop-manager.service.ts +0 -414
  708. package/projects/corecomponents/src/lib/modules/drag-drop/drag-drop.module.ts +0 -20
  709. package/projects/corecomponents/src/lib/modules/drag-drop/draggable.directive.ts +0 -70
  710. package/projects/corecomponents/src/lib/modules/drag-drop/model/co-drag-event.ts +0 -5
  711. package/projects/corecomponents/src/lib/modules/drag-drop/model/co-drop-event.ts +0 -9
  712. package/projects/corecomponents/src/lib/modules/drag-drop/model/drag-drop-container-element.ts +0 -7
  713. package/projects/corecomponents/src/lib/modules/drag-drop/model/drag-drop-container.ts +0 -9
  714. package/projects/corecomponents/src/lib/modules/media-monitor/flex-layout-breakpoint.enum.ts +0 -5
  715. package/projects/corecomponents/src/lib/modules/media-monitor/media-monitor.module.ts +0 -14
  716. package/projects/corecomponents/src/lib/modules/media-monitor/media-monitor.service.ts +0 -36
  717. package/projects/corecomponents/src/lib/modules/pagination/paginate.pipe.ts +0 -116
  718. package/projects/corecomponents/src/lib/modules/pagination/pagination-instance.ts +0 -18
  719. package/projects/corecomponents/src/lib/modules/pagination/pagination.component.ts +0 -229
  720. package/projects/corecomponents/src/lib/modules/pagination/pagination.module.ts +0 -25
  721. package/projects/corecomponents/src/lib/modules/pagination/pagination.service.ts +0 -98
  722. package/projects/corecomponents/src/lib/pipes/append.pipe.module.ts +0 -13
  723. package/projects/corecomponents/src/lib/pipes/append.pipe.ts +0 -17
  724. package/projects/corecomponents/src/lib/pipes/co-currency-pipe.module.ts +0 -13
  725. package/projects/corecomponents/src/lib/pipes/co-currency.pipe.ts +0 -45
  726. package/projects/corecomponents/src/lib/pipes/emun-keys.pipe.ts +0 -20
  727. package/projects/corecomponents/src/lib/pipes/enum-keys-pipe.module.ts +0 -13
  728. package/projects/corecomponents/src/lib/pipes/file-type-image-pipe.module.ts +0 -13
  729. package/projects/corecomponents/src/lib/pipes/file-type-image.pipe.ts +0 -45
  730. package/projects/corecomponents/src/lib/pipes/filter.pipe.module.ts +0 -13
  731. package/projects/corecomponents/src/lib/pipes/filter.pipe.ts +0 -14
  732. package/projects/corecomponents/src/lib/pipes/master-pipe.module.ts +0 -13
  733. package/projects/corecomponents/src/lib/pipes/master.pipe.ts +0 -71
  734. package/projects/corecomponents/src/lib/pipes/prepend.pipe.module.ts +0 -13
  735. package/projects/corecomponents/src/lib/pipes/prepend.pipe.ts +0 -17
  736. package/projects/corecomponents/src/lib/pipes/price-display-pipe.module.ts +0 -14
  737. package/projects/corecomponents/src/lib/pipes/price-display.pipe.ts +0 -20
  738. package/projects/corecomponents/src/lib/pipes/safe-style.pipe.module.ts +0 -13
  739. package/projects/corecomponents/src/lib/pipes/safe-style.pipe.ts +0 -14
  740. package/projects/corecomponents/src/lib/pipes/ucfirst-pipe.module.ts +0 -13
  741. package/projects/corecomponents/src/lib/pipes/ucfirst.pipe.ts +0 -14
  742. package/projects/corecomponents/src/lib/service/base-module-screen-config.service.ts +0 -241
  743. package/projects/corecomponents/src/lib/service/base-module.service.ts +0 -50
  744. package/projects/corecomponents/src/lib/service/color-sequence.service.ts +0 -20
  745. package/projects/corecomponents/src/lib/service/overlay.service.ts +0 -81
  746. package/projects/corecomponents/src/lib/translation/core-components-translation.module.ts +0 -27
  747. package/projects/corecomponents/src/lib/translation/core-components-translation.service.ts +0 -15
  748. package/projects/corecomponents/src/lib/translation/core-dictionary.service.ts +0 -27
  749. package/projects/corecomponents/src/lib/translation/core-localize.pipe.ts +0 -21
  750. package/projects/corecomponents/src/public-api.ts +0 -137
  751. package/projects/corecomponents/src/res/icons/Barcode.svg +0 -1
  752. package/projects/corecomponents/src/res/icons/CashRegister.svg +0 -1
  753. package/projects/corecomponents/src/res/icons/CirclePlusSkinny.svg +0 -1
  754. package/projects/corecomponents/src/res/icons/CrossSkinny.svg +0 -1
  755. package/projects/corecomponents/src/res/icons/FolderArrow.svg +0 -1
  756. package/projects/corecomponents/src/res/icons/Home.svg +0 -1
  757. package/projects/corecomponents/src/res/icons/POS.svg +0 -1
  758. package/projects/corecomponents/src/res/icons/Shop.svg +0 -1
  759. package/projects/corecomponents/src/res/icons/SinglePerson.svg +0 -1
  760. package/projects/corecomponents/src/res/icons/Star.svg +0 -1
  761. package/projects/corecomponents/src/res/icons/TrashBin.svg +0 -1
  762. package/projects/corecomponents/src/res/icons/account.svg +0 -1
  763. package/projects/corecomponents/src/res/icons/account_round_open.svg +0 -1
  764. package/projects/corecomponents/src/res/icons/activities.svg +0 -1
  765. package/projects/corecomponents/src/res/icons/add_to_cart_drop.svg +0 -1
  766. package/projects/corecomponents/src/res/icons/arrow_down.svg +0 -1
  767. package/projects/corecomponents/src/res/icons/arrow_fat_left.svg +0 -1
  768. package/projects/corecomponents/src/res/icons/arrow_fat_right.svg +0 -1
  769. package/projects/corecomponents/src/res/icons/arrow_left.svg +0 -4
  770. package/projects/corecomponents/src/res/icons/arrow_left_round_open.svg +0 -1
  771. package/projects/corecomponents/src/res/icons/arrow_point_down.svg +0 -6
  772. package/projects/corecomponents/src/res/icons/arrow_point_left.svg +0 -8
  773. package/projects/corecomponents/src/res/icons/arrow_point_right.svg +0 -8
  774. package/projects/corecomponents/src/res/icons/arrow_point_up.svg +0 -8
  775. package/projects/corecomponents/src/res/icons/arrow_right_round_open.svg +0 -1
  776. package/projects/corecomponents/src/res/icons/arrow_scroll_down.svg +0 -6
  777. package/projects/corecomponents/src/res/icons/arrow_scroll_left.svg +0 -22
  778. package/projects/corecomponents/src/res/icons/arrow_scroll_right.svg +0 -22
  779. package/projects/corecomponents/src/res/icons/arrow_scroll_up.svg +0 -6
  780. package/projects/corecomponents/src/res/icons/arrow_up.svg +0 -3
  781. package/projects/corecomponents/src/res/icons/article.svg +0 -1
  782. package/projects/corecomponents/src/res/icons/article_with_fold.svg +0 -1
  783. package/projects/corecomponents/src/res/icons/asterisk_small.svg +0 -1
  784. package/projects/corecomponents/src/res/icons/attachments.svg +0 -1
  785. package/projects/corecomponents/src/res/icons/back_to_top.svg +0 -1
  786. package/projects/corecomponents/src/res/icons/big_mac.svg +0 -6
  787. package/projects/corecomponents/src/res/icons/boxes.svg +0 -1
  788. package/projects/corecomponents/src/res/icons/brush.svg +0 -1
  789. package/projects/corecomponents/src/res/icons/brush_round_open.svg +0 -1
  790. package/projects/corecomponents/src/res/icons/building_columns.svg +0 -1
  791. package/projects/corecomponents/src/res/icons/businessrules.svg +0 -1
  792. package/projects/corecomponents/src/res/icons/calendar.svg +0 -1
  793. package/projects/corecomponents/src/res/icons/calendar_day.svg +0 -37
  794. package/projects/corecomponents/src/res/icons/calendar_day_regular.svg +0 -1
  795. package/projects/corecomponents/src/res/icons/calendar_empty.svg +0 -16
  796. package/projects/corecomponents/src/res/icons/calendar_range.svg +0 -1
  797. package/projects/corecomponents/src/res/icons/calendar_round_open.svg +0 -16
  798. package/projects/corecomponents/src/res/icons/camera.svg +0 -1
  799. package/projects/corecomponents/src/res/icons/cancel.svg +0 -1
  800. package/projects/corecomponents/src/res/icons/cancel_round_filled.svg +0 -1
  801. package/projects/corecomponents/src/res/icons/cancel_round_open.svg +0 -1
  802. package/projects/corecomponents/src/res/icons/cart.svg +0 -1
  803. package/projects/corecomponents/src/res/icons/cart_open.svg +0 -8
  804. package/projects/corecomponents/src/res/icons/case_manager.svg +0 -1
  805. package/projects/corecomponents/src/res/icons/cash_register_simple.svg +0 -1
  806. package/projects/corecomponents/src/res/icons/change_location.svg +0 -1
  807. package/projects/corecomponents/src/res/icons/check.svg +0 -1
  808. package/projects/corecomponents/src/res/icons/check_duotone.svg +0 -1
  809. package/projects/corecomponents/src/res/icons/check_round.svg +0 -1
  810. package/projects/corecomponents/src/res/icons/check_round_open.svg +0 -10
  811. package/projects/corecomponents/src/res/icons/check_simple.svg +0 -3
  812. package/projects/corecomponents/src/res/icons/check_thin.svg +0 -1
  813. package/projects/corecomponents/src/res/icons/chevron_down_regular.svg +0 -1
  814. package/projects/corecomponents/src/res/icons/chevron_up_regular.svg +0 -1
  815. package/projects/corecomponents/src/res/icons/client.svg +0 -1
  816. package/projects/corecomponents/src/res/icons/clock.svg +0 -1
  817. package/projects/corecomponents/src/res/icons/clockArrow.svg +0 -1
  818. package/projects/corecomponents/src/res/icons/cogWheelPlus.svg +0 -1
  819. package/projects/corecomponents/src/res/icons/cogWheels.svg +0 -1
  820. package/projects/corecomponents/src/res/icons/column_options.svg +0 -18
  821. package/projects/corecomponents/src/res/icons/company.svg +0 -1
  822. package/projects/corecomponents/src/res/icons/company_flat.svg +0 -4
  823. package/projects/corecomponents/src/res/icons/configurable.svg +0 -1
  824. package/projects/corecomponents/src/res/icons/consultant.svg +0 -1
  825. package/projects/corecomponents/src/res/icons/copy.svg +0 -1
  826. package/projects/corecomponents/src/res/icons/crosshair_1.svg +0 -1
  827. package/projects/corecomponents/src/res/icons/dashboard.svg +0 -1
  828. package/projects/corecomponents/src/res/icons/delivery_method.svg +0 -32
  829. package/projects/corecomponents/src/res/icons/delivery_status_uncheck.svg +0 -9
  830. package/projects/corecomponents/src/res/icons/delivery_truck.svg +0 -1
  831. package/projects/corecomponents/src/res/icons/detail_record.svg +0 -1
  832. package/projects/corecomponents/src/res/icons/detail_view.svg +0 -1
  833. package/projects/corecomponents/src/res/icons/dictionary.svg +0 -1
  834. package/projects/corecomponents/src/res/icons/documentWrench.svg +0 -1
  835. package/projects/corecomponents/src/res/icons/documents.svg +0 -1
  836. package/projects/corecomponents/src/res/icons/dollar.svg +0 -1
  837. package/projects/corecomponents/src/res/icons/download.svg +0 -1
  838. package/projects/corecomponents/src/res/icons/dropdown.svg +0 -4
  839. package/projects/corecomponents/src/res/icons/dropzone.svg +0 -1
  840. package/projects/corecomponents/src/res/icons/edit_pencil.svg +0 -1
  841. package/projects/corecomponents/src/res/icons/edit_pencil_circle.svg +0 -1
  842. package/projects/corecomponents/src/res/icons/edit_pencil_round.svg +0 -11
  843. package/projects/corecomponents/src/res/icons/edit_pencil_simple.svg +0 -16
  844. package/projects/corecomponents/src/res/icons/email.svg +0 -1
  845. package/projects/corecomponents/src/res/icons/email_round_open.svg +0 -6
  846. package/projects/corecomponents/src/res/icons/employee.svg +0 -1
  847. package/projects/corecomponents/src/res/icons/employee_two.svg +0 -1
  848. package/projects/corecomponents/src/res/icons/employer.svg +0 -1
  849. package/projects/corecomponents/src/res/icons/employment.svg +0 -1
  850. package/projects/corecomponents/src/res/icons/employment_end.svg +0 -7
  851. package/projects/corecomponents/src/res/icons/equal.svg +0 -1
  852. package/projects/corecomponents/src/res/icons/euro.svg +0 -1
  853. package/projects/corecomponents/src/res/icons/exclamation.svg +0 -1
  854. package/projects/corecomponents/src/res/icons/exclamation_round_open.svg +0 -1
  855. package/projects/corecomponents/src/res/icons/eye_circle.svg +0 -1
  856. package/projects/corecomponents/src/res/icons/eye_circle_large.svg +0 -1
  857. package/projects/corecomponents/src/res/icons/eye_round_filled.svg +0 -11
  858. package/projects/corecomponents/src/res/icons/factory.svg +0 -1
  859. package/projects/corecomponents/src/res/icons/fasttrack.svg +0 -1
  860. package/projects/corecomponents/src/res/icons/filter.svg +0 -1
  861. package/projects/corecomponents/src/res/icons/finish.svg +0 -1
  862. package/projects/corecomponents/src/res/icons/fixed_option_value_tree.svg +0 -1
  863. package/projects/corecomponents/src/res/icons/fixed_tree_option_value.svg +0 -1
  864. package/projects/corecomponents/src/res/icons/floppy_disk_solid.svg +0 -1
  865. package/projects/corecomponents/src/res/icons/folder_arrow_in.svg +0 -8
  866. package/projects/corecomponents/src/res/icons/formula.svg +0 -1
  867. package/projects/corecomponents/src/res/icons/fullscreen.svg +0 -6
  868. package/projects/corecomponents/src/res/icons/gear_double.svg +0 -21
  869. package/projects/corecomponents/src/res/icons/global_search.svg +0 -45
  870. package/projects/corecomponents/src/res/icons/globe.svg +0 -1
  871. package/projects/corecomponents/src/res/icons/greater_than.svg +0 -1
  872. package/projects/corecomponents/src/res/icons/groupby.svg +0 -1
  873. package/projects/corecomponents/src/res/icons/hamburger.svg +0 -1
  874. package/projects/corecomponents/src/res/icons/hand_pointer.svg +0 -1
  875. package/projects/corecomponents/src/res/icons/hbarchart.svg +0 -6
  876. package/projects/corecomponents/src/res/icons/home_circle.svg +0 -9
  877. package/projects/corecomponents/src/res/icons/home_open.svg +0 -7
  878. package/projects/corecomponents/src/res/icons/home_round_open.svg +0 -11
  879. package/projects/corecomponents/src/res/icons/hourglass.svg +0 -1
  880. package/projects/corecomponents/src/res/icons/icon_3d.svg +0 -1
  881. package/projects/corecomponents/src/res/icons/id.svg +0 -1
  882. package/projects/corecomponents/src/res/icons/image.svg +0 -1
  883. package/projects/corecomponents/src/res/icons/incoming_storage.svg +0 -1
  884. package/projects/corecomponents/src/res/icons/information.svg +0 -1
  885. package/projects/corecomponents/src/res/icons/information_round_open.svg +0 -6
  886. package/projects/corecomponents/src/res/icons/input_multiplechoice.svg +0 -1
  887. package/projects/corecomponents/src/res/icons/input_text.svg +0 -1
  888. package/projects/corecomponents/src/res/icons/input_textarea.svg +0 -1
  889. package/projects/corecomponents/src/res/icons/inventory.svg +0 -1
  890. package/projects/corecomponents/src/res/icons/invoice.svg +0 -20
  891. package/projects/corecomponents/src/res/icons/ione_logo.svg +0 -1
  892. package/projects/corecomponents/src/res/icons/ione_logo_fat.svg +0 -1
  893. package/projects/corecomponents/src/res/icons/ione_status_next.svg +0 -43
  894. package/projects/corecomponents/src/res/icons/ione_workflow.svg +0 -62
  895. package/projects/corecomponents/src/res/icons/keyboard.svg +0 -1
  896. package/projects/corecomponents/src/res/icons/keychain.svg +0 -1
  897. package/projects/corecomponents/src/res/icons/label.svg +0 -5
  898. package/projects/corecomponents/src/res/icons/label_round_open.svg +0 -6
  899. package/projects/corecomponents/src/res/icons/landmark_flag.svg +0 -1
  900. package/projects/corecomponents/src/res/icons/library.svg +0 -21
  901. package/projects/corecomponents/src/res/icons/linechart.svg +0 -1
  902. package/projects/corecomponents/src/res/icons/link_circle.svg +0 -1
  903. package/projects/corecomponents/src/res/icons/linked_products.svg +0 -1
  904. package/projects/corecomponents/src/res/icons/list_view.svg +0 -8
  905. package/projects/corecomponents/src/res/icons/location.svg +0 -1
  906. package/projects/corecomponents/src/res/icons/lock.svg +0 -1
  907. package/projects/corecomponents/src/res/icons/lock_round_open.svg +0 -8
  908. package/projects/corecomponents/src/res/icons/logo.svg +0 -1
  909. package/projects/corecomponents/src/res/icons/logout.svg +0 -1
  910. package/projects/corecomponents/src/res/icons/magic_wand.svg +0 -1
  911. package/projects/corecomponents/src/res/icons/magnifier.svg +0 -5
  912. package/projects/corecomponents/src/res/icons/manager.svg +0 -12
  913. package/projects/corecomponents/src/res/icons/mask.svg +0 -1
  914. package/projects/corecomponents/src/res/icons/master_detail.svg +0 -1
  915. package/projects/corecomponents/src/res/icons/material_circle_large.svg +0 -1
  916. package/projects/corecomponents/src/res/icons/medal_bronze.svg +0 -23
  917. package/projects/corecomponents/src/res/icons/medal_gold.svg +0 -23
  918. package/projects/corecomponents/src/res/icons/medal_silver.svg +0 -23
  919. package/projects/corecomponents/src/res/icons/medical_officer.svg +0 -14
  920. package/projects/corecomponents/src/res/icons/microphone.svg +0 -1
  921. package/projects/corecomponents/src/res/icons/minus_round_open.svg +0 -1
  922. package/projects/corecomponents/src/res/icons/minus_simple.svg +0 -1
  923. package/projects/corecomponents/src/res/icons/mobile.svg +0 -1
  924. package/projects/corecomponents/src/res/icons/multi_select_check.svg +0 -10
  925. package/projects/corecomponents/src/res/icons/new_task.svg +0 -1
  926. package/projects/corecomponents/src/res/icons/not_equal.svg +0 -4
  927. package/projects/corecomponents/src/res/icons/note.svg +0 -1
  928. package/projects/corecomponents/src/res/icons/note_bordered.svg +0 -1
  929. package/projects/corecomponents/src/res/icons/notification.svg +0 -1
  930. package/projects/corecomponents/src/res/icons/option.svg +0 -1
  931. package/projects/corecomponents/src/res/icons/optionset.svg +0 -1
  932. package/projects/corecomponents/src/res/icons/order.svg +0 -1
  933. package/projects/corecomponents/src/res/icons/orderpicking.svg +0 -1
  934. package/projects/corecomponents/src/res/icons/outgoing_storage.svg +0 -1
  935. package/projects/corecomponents/src/res/icons/over_booking.svg +0 -1
  936. package/projects/corecomponents/src/res/icons/pause_circle.svg +0 -12
  937. package/projects/corecomponents/src/res/icons/pen_to_square_solid.svg +0 -1
  938. package/projects/corecomponents/src/res/icons/pencil_round_open.svg +0 -10
  939. package/projects/corecomponents/src/res/icons/phone.svg +0 -1
  940. package/projects/corecomponents/src/res/icons/phone_round_open.svg +0 -10
  941. package/projects/corecomponents/src/res/icons/piechart.svg +0 -24
  942. package/projects/corecomponents/src/res/icons/pin.svg +0 -9
  943. package/projects/corecomponents/src/res/icons/pin_round_open.svg +0 -11
  944. package/projects/corecomponents/src/res/icons/play_circle.svg +0 -1
  945. package/projects/corecomponents/src/res/icons/plus_round.svg +0 -9
  946. package/projects/corecomponents/src/res/icons/plus_round_open.svg +0 -1
  947. package/projects/corecomponents/src/res/icons/plus_simple.svg +0 -1
  948. package/projects/corecomponents/src/res/icons/plus_skinny.svg +0 -8
  949. package/projects/corecomponents/src/res/icons/plus_solid.svg +0 -1
  950. package/projects/corecomponents/src/res/icons/plus_stars.svg +0 -1
  951. package/projects/corecomponents/src/res/icons/pointer.svg +0 -7
  952. package/projects/corecomponents/src/res/icons/pointer_3d.svg +0 -8
  953. package/projects/corecomponents/src/res/icons/pointer_filled.svg +0 -6
  954. package/projects/corecomponents/src/res/icons/positioning.svg +0 -1
  955. package/projects/corecomponents/src/res/icons/pregnancy.svg +0 -18
  956. package/projects/corecomponents/src/res/icons/preset.svg +0 -1
  957. package/projects/corecomponents/src/res/icons/print.svg +0 -1
  958. package/projects/corecomponents/src/res/icons/product_properties.svg +0 -1
  959. package/projects/corecomponents/src/res/icons/purchase.svg +0 -15
  960. package/projects/corecomponents/src/res/icons/qrcode.svg +0 -59
  961. package/projects/corecomponents/src/res/icons/question.svg +0 -1
  962. package/projects/corecomponents/src/res/icons/radio_uncheck.svg +0 -1
  963. package/projects/corecomponents/src/res/icons/range.svg +0 -1
  964. package/projects/corecomponents/src/res/icons/range_select.svg +0 -1
  965. package/projects/corecomponents/src/res/icons/rectangles.svg +0 -15
  966. package/projects/corecomponents/src/res/icons/refresh.svg +0 -1
  967. package/projects/corecomponents/src/res/icons/relations.svg +0 -20
  968. package/projects/corecomponents/src/res/icons/remark.svg +0 -1
  969. package/projects/corecomponents/src/res/icons/remark_round_open.svg +0 -6
  970. package/projects/corecomponents/src/res/icons/report_in_type.svg +0 -1
  971. package/projects/corecomponents/src/res/icons/resize.svg +0 -3
  972. package/projects/corecomponents/src/res/icons/resize_down.svg +0 -1
  973. package/projects/corecomponents/src/res/icons/resize_up.svg +0 -1
  974. package/projects/corecomponents/src/res/icons/return_goods.svg +0 -4
  975. package/projects/corecomponents/src/res/icons/returns.svg +0 -1
  976. package/projects/corecomponents/src/res/icons/rotate_left_solid.svg +0 -1
  977. package/projects/corecomponents/src/res/icons/save_disk.svg +0 -15
  978. package/projects/corecomponents/src/res/icons/save_skinny.svg +0 -3
  979. package/projects/corecomponents/src/res/icons/scale_balanced.svg +0 -1
  980. package/projects/corecomponents/src/res/icons/scanner.svg +0 -1
  981. package/projects/corecomponents/src/res/icons/search_round_open.svg +0 -9
  982. package/projects/corecomponents/src/res/icons/sections.svg +0 -1
  983. package/projects/corecomponents/src/res/icons/select_all_round.svg +0 -5
  984. package/projects/corecomponents/src/res/icons/services.svg +0 -1
  985. package/projects/corecomponents/src/res/icons/settings.svg +0 -20
  986. package/projects/corecomponents/src/res/icons/shopping_cart.svg +0 -1
  987. package/projects/corecomponents/src/res/icons/shopping_cart_nr.svg +0 -1
  988. package/projects/corecomponents/src/res/icons/shortcut.svg +0 -1
  989. package/projects/corecomponents/src/res/icons/skills.svg +0 -1
  990. package/projects/corecomponents/src/res/icons/slide_in.svg +0 -1
  991. package/projects/corecomponents/src/res/icons/slider_panel.svg +0 -7
  992. package/projects/corecomponents/src/res/icons/small_tiles.svg +0 -1
  993. package/projects/corecomponents/src/res/icons/smaller_than.svg +0 -1
  994. package/projects/corecomponents/src/res/icons/sort_asc.svg +0 -1
  995. package/projects/corecomponents/src/res/icons/sort_desc.svg +0 -1
  996. package/projects/corecomponents/src/res/icons/star_round_open.svg +0 -6
  997. package/projects/corecomponents/src/res/icons/status_active.svg +0 -1
  998. package/projects/corecomponents/src/res/icons/status_adoption.svg +0 -1
  999. package/projects/corecomponents/src/res/icons/status_fostercare.svg +0 -1
  1000. package/projects/corecomponents/src/res/icons/status_ill.svg +0 -10
  1001. package/projects/corecomponents/src/res/icons/status_leave.svg +0 -1
  1002. package/projects/corecomponents/src/res/icons/status_pregnancy.svg +0 -10
  1003. package/projects/corecomponents/src/res/icons/stock.svg +0 -1
  1004. package/projects/corecomponents/src/res/icons/stock_management.svg +0 -25
  1005. package/projects/corecomponents/src/res/icons/storage.svg +0 -1
  1006. package/projects/corecomponents/src/res/icons/supervisor.svg +0 -1
  1007. package/projects/corecomponents/src/res/icons/supplier.svg +0 -18
  1008. package/projects/corecomponents/src/res/icons/surgery.svg +0 -35
  1009. package/projects/corecomponents/src/res/icons/tablechart.svg +0 -15
  1010. package/projects/corecomponents/src/res/icons/tag.svg +0 -1
  1011. package/projects/corecomponents/src/res/icons/talk_too_much.svg +0 -7
  1012. package/projects/corecomponents/src/res/icons/target.svg +0 -1
  1013. package/projects/corecomponents/src/res/icons/task.svg +0 -1
  1014. package/projects/corecomponents/src/res/icons/thick_lines.svg +0 -1
  1015. package/projects/corecomponents/src/res/icons/thin_lines.svg +0 -1
  1016. package/projects/corecomponents/src/res/icons/three_sixty_view.svg +0 -1
  1017. package/projects/corecomponents/src/res/icons/thumb_bronze.svg +0 -29
  1018. package/projects/corecomponents/src/res/icons/thumb_gold.svg +0 -29
  1019. package/projects/corecomponents/src/res/icons/thumb_silver.svg +0 -29
  1020. package/projects/corecomponents/src/res/icons/timeline.svg +0 -1
  1021. package/projects/corecomponents/src/res/icons/transaction_detail.svg +0 -19
  1022. package/projects/corecomponents/src/res/icons/transactions.svg +0 -12
  1023. package/projects/corecomponents/src/res/icons/trash_can_solid.svg +0 -1
  1024. package/projects/corecomponents/src/res/icons/triangle_down.svg +0 -1
  1025. package/projects/corecomponents/src/res/icons/triangle_large.svg +0 -5
  1026. package/projects/corecomponents/src/res/icons/triangle_left.svg +0 -1
  1027. package/projects/corecomponents/src/res/icons/triangle_right.svg +0 -1
  1028. package/projects/corecomponents/src/res/icons/triangle_up.svg +0 -1
  1029. package/projects/corecomponents/src/res/icons/truck.svg +0 -1
  1030. package/projects/corecomponents/src/res/icons/truck_calendar.svg +0 -15
  1031. package/projects/corecomponents/src/res/icons/undo_round_open.svg +0 -1
  1032. package/projects/corecomponents/src/res/icons/user.svg +0 -9
  1033. package/projects/corecomponents/src/res/icons/variants.svg +0 -1
  1034. package/projects/corecomponents/src/res/icons/vbarchart.svg +0 -6
  1035. package/projects/corecomponents/src/res/icons/view.svg +0 -1
  1036. package/projects/corecomponents/src/res/icons/warehouse.svg +0 -1
  1037. package/projects/corecomponents/src/res/icons/watermark.svg +0 -10
  1038. package/projects/corecomponents/src/res/icons/website.svg +0 -1
  1039. package/projects/corecomponents/src/res/icons/wizard.svg +0 -18
  1040. package/projects/corecomponents/src/res/icons/wms.svg +0 -24
  1041. package/projects/corecomponents/src/res/icons/work_in_progress.svg +0 -10
  1042. package/projects/corecomponents/src/res/icons/work_in_progress_round_open.svg +0 -9
  1043. package/projects/corecomponents/src/res/icons/wrench.svg +0 -4
  1044. package/projects/corecomponents/src/res/icons/x_axis.svg +0 -5
  1045. package/projects/corecomponents/src/res/icons/y_axis.svg +0 -5
  1046. package/projects/corecomponents/src/test.ts +0 -28
  1047. package/projects/corecomponents/tsconfig.lib.json +0 -20
  1048. package/projects/corecomponents/tsconfig.lib.prod.json +0 -16
  1049. package/projects/corecomponents/tsconfig.spec.json +0 -17
  1050. package/scripts/export.bat +0 -9
  1051. package/scripts/merge-icons.js +0 -39
  1052. package/scripts/publish.bat +0 -6
  1053. package/src/app/app.component.scss +0 -36
  1054. package/src/app/app.component.spec.ts +0 -31
  1055. package/src/app/app.component.ts +0 -559
  1056. package/src/app/app.module.ts +0 -145
  1057. package/src/app/components/button-showcase.component.ts +0 -82
  1058. package/src/app/components/carousel-3d-showcase.component.ts +0 -70
  1059. package/src/app/components/checkbox-showcase.component.ts +0 -56
  1060. package/src/app/components/co-dialog-showcase.component.ts +0 -189
  1061. package/src/app/components/co-simple-grid-test.component.ts +0 -146
  1062. package/src/app/components/filter-item-showcase.component.ts +0 -178
  1063. package/src/app/components/forms-showcase.component.ts +0 -703
  1064. package/src/app/components/icon-showcase.component.ts +0 -72
  1065. package/src/app/components/input-checkbox-showcase.component.ts +0 -87
  1066. package/src/app/components/input-date-picker-showcase.component.ts +0 -90
  1067. package/src/app/components/input-number-picker-showcase.component.ts +0 -125
  1068. package/src/app/components/input-radio-button-showcase.component.ts +0 -87
  1069. package/src/app/components/input-scanner-showcase.component.ts +0 -35
  1070. package/src/app/components/input-text-showcase.component.ts +0 -200
  1071. package/src/app/components/input-time-showcase.component.ts +0 -104
  1072. package/src/app/components/number-picker-showcase.component.ts +0 -17
  1073. package/src/app/components/simple-grid-showcase.component.ts +0 -60
  1074. package/src/app/model/data-item.ts +0 -9
  1075. package/src/app/model/enum/currency-code.enum.ts +0 -7
  1076. package/src/app/model/enum/language-code.enum.ts +0 -8
  1077. package/src/app/model/map/currencies.map.ts +0 -6
  1078. package/src/app/service/showcase-data.service.ts +0 -1110
  1079. package/src/assets/.gitkeep +0 -0
  1080. package/src/environments/environment.prod.ts +0 -3
  1081. package/src/environments/environment.ts +0 -16
  1082. package/src/favicon.ico +0 -0
  1083. package/src/index.html +0 -13
  1084. package/src/main.ts +0 -12
  1085. package/src/polyfills.ts +0 -65
  1086. package/src/styles.scss +0 -56
  1087. package/src/test.ts +0 -27
  1088. package/tsconfig.app.json +0 -15
  1089. package/tsconfig.json +0 -37
  1090. package/tsconfig.spec.json +0 -18
  1091. /package/{projects/corecomponents/src/lib → lib}/components/article-tile/article-tile.component.scss +0 -0
  1092. /package/{projects/corecomponents/src/lib → lib}/components/base/commit-buttons/style/_layout.scss +0 -0
  1093. /package/{projects/corecomponents/src/lib → lib}/components/base/commit-buttons/style/_material-definition.scss +0 -0
  1094. /package/{projects/corecomponents/src/lib → lib}/components/base/commit-buttons/style/_theme.scss +0 -0
  1095. /package/{projects/corecomponents/src/lib → lib}/components/base/commit-buttons/style/material.scss +0 -0
  1096. /package/{projects/corecomponents/src/lib → lib}/components/button/style/_co-ripple.scss +0 -0
  1097. /package/{projects/corecomponents/src/lib → lib}/components/button/style/_layout.scss +0 -0
  1098. /package/{projects/corecomponents/src/lib → lib}/components/button/style/_material-definition.scss +0 -0
  1099. /package/{projects/corecomponents/src/lib → lib}/components/button/style/_theme.scss +0 -0
  1100. /package/{projects/corecomponents/src/lib → lib}/components/button/style/material.scss +0 -0
  1101. /package/{projects/corecomponents/src/lib → lib}/components/calendar/style/_layout.scss +0 -0
  1102. /package/{projects/corecomponents/src/lib → lib}/components/calendar/style/_material-definition.scss +0 -0
  1103. /package/{projects/corecomponents/src/lib → lib}/components/calendar/style/_theme.scss +0 -0
  1104. /package/{projects/corecomponents/src/lib → lib}/components/calendar/style/material.scss +0 -0
  1105. /package/{projects/corecomponents/src/lib → lib}/components/card/style/_layout.scss +0 -0
  1106. /package/{projects/corecomponents/src/lib → lib}/components/card/style/_material-definition.scss +0 -0
  1107. /package/{projects/corecomponents/src/lib → lib}/components/card/style/_theme.scss +0 -0
  1108. /package/{projects/corecomponents/src/lib → lib}/components/card/style/material.scss +0 -0
  1109. /package/{projects/corecomponents/src/lib → lib}/components/carousel/style/_layout.scss +0 -0
  1110. /package/{projects/corecomponents/src/lib → lib}/components/carousel/style/_material-definition.scss +0 -0
  1111. /package/{projects/corecomponents/src/lib → lib}/components/carousel/style/_theme.scss +0 -0
  1112. /package/{projects/corecomponents/src/lib → lib}/components/carousel/style/material.scss +0 -0
  1113. /package/{projects/corecomponents/src/lib → lib}/components/carousel-3d/style/_layout.scss +0 -0
  1114. /package/{projects/corecomponents/src/lib → lib}/components/carousel-3d/style/_material-definition.scss +0 -0
  1115. /package/{projects/corecomponents/src/lib → lib}/components/carousel-3d/style/_theme.scss +0 -0
  1116. /package/{projects/corecomponents/src/lib → lib}/components/carousel-3d/style/material.scss +0 -0
  1117. /package/{projects/corecomponents/src/lib → lib}/components/checkmark-overlay/style/_layout.scss +0 -0
  1118. /package/{projects/corecomponents/src/lib → lib}/components/checkmark-overlay/style/_material-definition.scss +0 -0
  1119. /package/{projects/corecomponents/src/lib → lib}/components/checkmark-overlay/style/_theme.scss +0 -0
  1120. /package/{projects/corecomponents/src/lib → lib}/components/checkmark-overlay/style/material.scss +0 -0
  1121. /package/{projects/corecomponents/src/lib → lib}/components/co-dialog/style/_layout.scss +0 -0
  1122. /package/{projects/corecomponents/src/lib → lib}/components/co-dialog/style/_material-definition.scss +0 -0
  1123. /package/{projects/corecomponents/src/lib → lib}/components/co-dialog/style/_theme.scss +0 -0
  1124. /package/{projects/corecomponents/src/lib → lib}/components/co-dialog/style/material.scss +0 -0
  1125. /package/{projects/corecomponents/src/lib → lib}/components/co-dialog-wizard/style/_layout.scss +0 -0
  1126. /package/{projects/corecomponents/src/lib → lib}/components/co-dialog-wizard/style/_material-definition.scss +0 -0
  1127. /package/{projects/corecomponents/src/lib → lib}/components/co-dialog-wizard/style/_theme.scss +0 -0
  1128. /package/{projects/corecomponents/src/lib → lib}/components/co-dialog-wizard/style/material.scss +0 -0
  1129. /package/{projects/corecomponents/src/lib → lib}/components/collapsible/style/_layout.scss +0 -0
  1130. /package/{projects/corecomponents/src/lib → lib}/components/collapsible/style/_material-definition.scss +0 -0
  1131. /package/{projects/corecomponents/src/lib → lib}/components/collapsible/style/_theme.scss +0 -0
  1132. /package/{projects/corecomponents/src/lib → lib}/components/collapsible/style/material.scss +0 -0
  1133. /package/{projects/corecomponents/src/lib → lib}/components/color-picker/style/_layout.scss +0 -0
  1134. /package/{projects/corecomponents/src/lib → lib}/components/color-picker/style/_material-definition.scss +0 -0
  1135. /package/{projects/corecomponents/src/lib → lib}/components/color-picker/style/_theme.scss +0 -0
  1136. /package/{projects/corecomponents/src/lib → lib}/components/color-picker/style/material.scss +0 -0
  1137. /package/{projects/corecomponents/src/lib → lib}/components/core-dialog/confirmation-dialog/style/_layout.scss +0 -0
  1138. /package/{projects/corecomponents/src/lib → lib}/components/core-dialog/confirmation-dialog/style/_material-definition.scss +0 -0
  1139. /package/{projects/corecomponents/src/lib → lib}/components/core-dialog/confirmation-dialog/style/_theme.scss +0 -0
  1140. /package/{projects/corecomponents/src/lib → lib}/components/core-dialog/confirmation-dialog/style/material.scss +0 -0
  1141. /package/{projects/corecomponents/src/lib → lib}/components/core-dialog/style/_layout.scss +0 -0
  1142. /package/{projects/corecomponents/src/lib → lib}/components/core-dialog/style/_material-definition.scss +0 -0
  1143. /package/{projects/corecomponents/src/lib → lib}/components/core-dialog/style/_theme.scss +0 -0
  1144. /package/{projects/corecomponents/src/lib → lib}/components/core-dialog/style/material.scss +0 -0
  1145. /package/{projects/corecomponents/src/lib → lib}/components/double-calendar/style/_layout.scss +0 -0
  1146. /package/{projects/corecomponents/src/lib → lib}/components/double-calendar/style/_material-definition.scss +0 -0
  1147. /package/{projects/corecomponents/src/lib → lib}/components/double-calendar/style/_theme.scss +0 -0
  1148. /package/{projects/corecomponents/src/lib → lib}/components/double-calendar/style/material.scss +0 -0
  1149. /package/{projects/corecomponents/src/lib → lib}/components/filter-item/style/_layout.scss +0 -0
  1150. /package/{projects/corecomponents/src/lib → lib}/components/filter-item/style/_material-definition.scss +0 -0
  1151. /package/{projects/corecomponents/src/lib → lib}/components/filter-item/style/_theme.scss +0 -0
  1152. /package/{projects/corecomponents/src/lib → lib}/components/filter-item/style/material.scss +0 -0
  1153. /package/{projects/corecomponents/src/lib → lib}/components/grid-toolbar/style/_layout.scss +0 -0
  1154. /package/{projects/corecomponents/src/lib → lib}/components/grid-toolbar/style/_material-definition.scss +0 -0
  1155. /package/{projects/corecomponents/src/lib → lib}/components/grid-toolbar/style/_theme.scss +0 -0
  1156. /package/{projects/corecomponents/src/lib → lib}/components/grid-toolbar/style/material.scss +0 -0
  1157. /package/{projects/corecomponents/src/lib → lib}/components/grid-toolbar-button/style/_layout.scss +0 -0
  1158. /package/{projects/corecomponents/src/lib → lib}/components/grid-toolbar-button/style/_material-definition.scss +0 -0
  1159. /package/{projects/corecomponents/src/lib → lib}/components/grid-toolbar-button/style/_theme.scss +0 -0
  1160. /package/{projects/corecomponents/src/lib → lib}/components/grid-toolbar-button/style/material.scss +0 -0
  1161. /package/{projects/corecomponents/src/lib → lib}/components/icon/style/_layout.scss +0 -0
  1162. /package/{projects/corecomponents/src/lib → lib}/components/icon/style/_material-definition.scss +0 -0
  1163. /package/{projects/corecomponents/src/lib → lib}/components/icon/style/_theme.scss +0 -0
  1164. /package/{projects/corecomponents/src/lib → lib}/components/icon/style/material.scss +0 -0
  1165. /package/{projects/corecomponents/src/lib → lib}/components/icon-collapse-handle/style/_layout.scss +0 -0
  1166. /package/{projects/corecomponents/src/lib → lib}/components/icon-collapse-handle/style/_material-definition.scss +0 -0
  1167. /package/{projects/corecomponents/src/lib → lib}/components/icon-collapse-handle/style/_theme.scss +0 -0
  1168. /package/{projects/corecomponents/src/lib → lib}/components/icon-collapse-handle/style/material.scss +0 -0
  1169. /package/{projects/corecomponents/src/lib → lib}/components/image/style/_layout.scss +0 -0
  1170. /package/{projects/corecomponents/src/lib → lib}/components/image/style/_material-definition.scss +0 -0
  1171. /package/{projects/corecomponents/src/lib → lib}/components/image/style/_theme.scss +0 -0
  1172. /package/{projects/corecomponents/src/lib → lib}/components/image/style/material.scss +0 -0
  1173. /package/{projects/corecomponents/src/lib → lib}/components/input-checkbox/style/_layout.scss +0 -0
  1174. /package/{projects/corecomponents/src/lib → lib}/components/input-checkbox/style/_material-definition.scss +0 -0
  1175. /package/{projects/corecomponents/src/lib → lib}/components/input-checkbox/style/_theme.scss +0 -0
  1176. /package/{projects/corecomponents/src/lib → lib}/components/input-checkbox/style/material.scss +0 -0
  1177. /package/{projects/corecomponents/src/lib → lib}/components/input-date-picker/style/_layout.scss +0 -0
  1178. /package/{projects/corecomponents/src/lib → lib}/components/input-date-picker/style/_material-definition.scss +0 -0
  1179. /package/{projects/corecomponents/src/lib → lib}/components/input-date-picker/style/_theme.scss +0 -0
  1180. /package/{projects/corecomponents/src/lib → lib}/components/input-date-picker/style/material.scss +0 -0
  1181. /package/{projects/corecomponents/src/lib → lib}/components/input-date-range-picker/style/_layout.scss +0 -0
  1182. /package/{projects/corecomponents/src/lib → lib}/components/input-date-range-picker/style/_material-definition.scss +0 -0
  1183. /package/{projects/corecomponents/src/lib → lib}/components/input-date-range-picker/style/_theme.scss +0 -0
  1184. /package/{projects/corecomponents/src/lib → lib}/components/input-date-range-picker/style/material.scss +0 -0
  1185. /package/{projects/corecomponents/src/lib → lib}/components/input-number-picker/style/_layout.scss +0 -0
  1186. /package/{projects/corecomponents/src/lib → lib}/components/input-number-picker/style/_material-definition.scss +0 -0
  1187. /package/{projects/corecomponents/src/lib → lib}/components/input-number-picker/style/_theme.scss +0 -0
  1188. /package/{projects/corecomponents/src/lib → lib}/components/input-number-picker/style/material.scss +0 -0
  1189. /package/{projects/corecomponents/src/lib → lib}/components/input-radio-button/style/_layout.scss +0 -0
  1190. /package/{projects/corecomponents/src/lib → lib}/components/input-radio-button/style/_material-definition.scss +0 -0
  1191. /package/{projects/corecomponents/src/lib → lib}/components/input-radio-button/style/_theme.scss +0 -0
  1192. /package/{projects/corecomponents/src/lib → lib}/components/input-radio-button/style/material.scss +0 -0
  1193. /package/{projects/corecomponents/src/lib → lib}/components/input-scanner/style/_layout.scss +0 -0
  1194. /package/{projects/corecomponents/src/lib → lib}/components/input-scanner/style/_material-definition.scss +0 -0
  1195. /package/{projects/corecomponents/src/lib → lib}/components/input-scanner/style/_theme.scss +0 -0
  1196. /package/{projects/corecomponents/src/lib → lib}/components/input-scanner/style/material.scss +0 -0
  1197. /package/{projects/corecomponents/src/lib → lib}/components/input-search/style/_layout.scss +0 -0
  1198. /package/{projects/corecomponents/src/lib → lib}/components/input-search/style/_material-definition.scss +0 -0
  1199. /package/{projects/corecomponents/src/lib → lib}/components/input-search/style/_theme.scss +0 -0
  1200. /package/{projects/corecomponents/src/lib → lib}/components/input-search/style/material.scss +0 -0
  1201. /package/{projects/corecomponents/src/lib → lib}/components/input-text/style/_layout.scss +0 -0
  1202. /package/{projects/corecomponents/src/lib → lib}/components/input-text/style/_material-definition.scss +0 -0
  1203. /package/{projects/corecomponents/src/lib → lib}/components/input-text/style/_theme.scss +0 -0
  1204. /package/{projects/corecomponents/src/lib → lib}/components/input-text/style/material.scss +0 -0
  1205. /package/{projects/corecomponents/src/lib → lib}/components/input-textarea/style/_layout.scss +0 -0
  1206. /package/{projects/corecomponents/src/lib → lib}/components/input-textarea/style/_material-definition.scss +0 -0
  1207. /package/{projects/corecomponents/src/lib → lib}/components/input-textarea/style/_theme.scss +0 -0
  1208. /package/{projects/corecomponents/src/lib → lib}/components/input-textarea/style/material.scss +0 -0
  1209. /package/{projects/corecomponents/src/lib → lib}/components/level-indicator/style/_layout.scss +0 -0
  1210. /package/{projects/corecomponents/src/lib → lib}/components/level-indicator/style/_material-definition.scss +0 -0
  1211. /package/{projects/corecomponents/src/lib → lib}/components/level-indicator/style/_theme.scss +0 -0
  1212. /package/{projects/corecomponents/src/lib → lib}/components/level-indicator/style/material.scss +0 -0
  1213. /package/{projects/corecomponents/src/lib → lib}/components/list-of-values/style/_layout.scss +0 -0
  1214. /package/{projects/corecomponents/src/lib → lib}/components/list-of-values/style/_material-definition.scss +0 -0
  1215. /package/{projects/corecomponents/src/lib → lib}/components/list-of-values/style/_theme.scss +0 -0
  1216. /package/{projects/corecomponents/src/lib → lib}/components/list-of-values/style/material.scss +0 -0
  1217. /package/{projects/corecomponents/src/lib → lib}/components/loader/style/_layout.scss +0 -0
  1218. /package/{projects/corecomponents/src/lib → lib}/components/loader/style/_material-definition.scss +0 -0
  1219. /package/{projects/corecomponents/src/lib → lib}/components/loader/style/_theme.scss +0 -0
  1220. /package/{projects/corecomponents/src/lib → lib}/components/loader/style/material.scss +0 -0
  1221. /package/{projects/corecomponents/src/lib → lib}/components/pagination/style/_layout.scss +0 -0
  1222. /package/{projects/corecomponents/src/lib → lib}/components/pagination/style/_material-definition.scss +0 -0
  1223. /package/{projects/corecomponents/src/lib → lib}/components/pagination/style/_theme.scss +0 -0
  1224. /package/{projects/corecomponents/src/lib → lib}/components/pagination/style/material.scss +0 -0
  1225. /package/{projects/corecomponents/src/lib → lib}/components/pagination-bar/style/_layout.scss +0 -0
  1226. /package/{projects/corecomponents/src/lib → lib}/components/pagination-bar/style/_material-definition.scss +0 -0
  1227. /package/{projects/corecomponents/src/lib → lib}/components/pagination-bar/style/_theme.scss +0 -0
  1228. /package/{projects/corecomponents/src/lib → lib}/components/pagination-bar/style/material.scss +0 -0
  1229. /package/{projects/corecomponents/src/lib → lib}/components/popup/popup-buttons.component.scss +0 -0
  1230. /package/{projects/corecomponents/src/lib → lib}/components/popup/popup-window-shell.component.scss +0 -0
  1231. /package/{projects/corecomponents/src/lib → lib}/components/responsive-text/style/_layout.scss +0 -0
  1232. /package/{projects/corecomponents/src/lib → lib}/components/responsive-text/style/_material-definition.scss +0 -0
  1233. /package/{projects/corecomponents/src/lib → lib}/components/responsive-text/style/_theme.scss +0 -0
  1234. /package/{projects/corecomponents/src/lib → lib}/components/responsive-text/style/material.scss +0 -0
  1235. /package/{projects/corecomponents/src/lib → lib}/components/simple-grid/style/_layout.scss +0 -0
  1236. /package/{projects/corecomponents/src/lib → lib}/components/simple-grid/style/_material-definition.scss +0 -0
  1237. /package/{projects/corecomponents/src/lib → lib}/components/simple-grid/style/_theme.scss +0 -0
  1238. /package/{projects/corecomponents/src/lib → lib}/components/simple-grid/style/material.scss +0 -0
  1239. /package/{projects/corecomponents/src/lib → lib}/components/tile/style/_layout.scss +0 -0
  1240. /package/{projects/corecomponents/src/lib → lib}/components/tile/style/_material-definition.scss +0 -0
  1241. /package/{projects/corecomponents/src/lib → lib}/components/tile/style/_theme.scss +0 -0
  1242. /package/{projects/corecomponents/src/lib → lib}/components/tile/style/material.scss +0 -0
  1243. /package/{projects/corecomponents/src/lib → lib}/components/tile-select/style/_layout.scss +0 -0
  1244. /package/{projects/corecomponents/src/lib → lib}/components/tile-select/style/_material-definition.scss +0 -0
  1245. /package/{projects/corecomponents/src/lib → lib}/components/tile-select/style/_theme.scss +0 -0
  1246. /package/{projects/corecomponents/src/lib → lib}/components/tile-select/style/material.scss +0 -0
  1247. /package/{projects/corecomponents/src/lib → lib}/components/tooltip/style/_layout.scss +0 -0
  1248. /package/{projects/corecomponents/src/lib → lib}/components/tooltip/style/_material-definition.scss +0 -0
  1249. /package/{projects/corecomponents/src/lib → lib}/components/tooltip/style/_theme.scss +0 -0
  1250. /package/{projects/corecomponents/src/lib → lib}/components/tooltip/style/material.scss +0 -0
  1251. /package/{projects/corecomponents/src/lib → lib}/components/validation-error/style/_layout.scss +0 -0
  1252. /package/{projects/corecomponents/src/lib → lib}/components/validation-error/style/_material-definition.scss +0 -0
  1253. /package/{projects/corecomponents/src/lib → lib}/components/validation-error/style/_theme.scss +0 -0
  1254. /package/{projects/corecomponents/src/lib → lib}/components/validation-error/style/material.scss +0 -0
  1255. /package/{projects/corecomponents/src/lib → lib}/components/view-mode-buttons/style/_layout.scss +0 -0
  1256. /package/{projects/corecomponents/src/lib → lib}/components/view-mode-buttons/style/_material-definition.scss +0 -0
  1257. /package/{projects/corecomponents/src/lib → lib}/components/view-mode-buttons/style/_theme.scss +0 -0
  1258. /package/{projects/corecomponents/src/lib → lib}/components/view-mode-buttons/style/material.scss +0 -0
  1259. /package/{projects/corecomponents/src/lib/interfaces/scanner-input.interface.ts → lib/interfaces/scanner-input.interface.d.ts} +0 -0
  1260. /package/{projects/corecomponents/src/lib → lib}/modules/pagination/style/_layout.scss +0 -0
  1261. /package/{projects/corecomponents/src/lib → lib}/modules/pagination/style/_material-definition.scss +0 -0
  1262. /package/{projects/corecomponents/src/lib → lib}/modules/pagination/style/_theme.scss +0 -0
  1263. /package/{projects/corecomponents/src/lib → lib}/modules/pagination/style/material.scss +0 -0
  1264. /package/{projects/corecomponents/src/lib → lib}/style/_input.mixins.scss +0 -0
  1265. /package/{projects/corecomponents/src/lib → lib}/style/_mixin.scss +0 -0
  1266. /package/{projects/corecomponents/src/lib → lib}/style/_variables.scss +0 -0
  1267. /package/{projects/corecomponents/src/lib → lib}/style/corecomponents-globals.scss +0 -0
  1268. /package/{projects/corecomponents/src/lib → lib}/style/material2/_core.scss +0 -0
  1269. /package/{projects/corecomponents/src/lib → lib}/style/material2/_material2-scss-barrel.scss +0 -0
  1270. /package/{projects/corecomponents/src/lib → lib}/style/material2/ripple/_co-ripple.scss +0 -0
  1271. /package/{projects/corecomponents/src/lib → lib}/style/material2/style/_elevation.scss +0 -0
  1272. /package/{projects/corecomponents/src/lib → lib}/style/material2/style/_list-common.scss +0 -0
  1273. /package/{projects/corecomponents/src/lib → lib}/style/material2/style/_variables.scss +0 -0
  1274. /package/{projects/corecomponents/src/lib → lib}/style/material2/theming/_palette.scss +0 -0
  1275. /package/{projects/corecomponents/src/lib → lib}/style/material2/theming/_theming.scss +0 -0
  1276. /package/{projects/corecomponents/src/lib → lib}/style/material2/typography/_typography.scss +0 -0
@@ -0,0 +1,834 @@
1
+ import { __awaiter, __decorate } from "tslib";
2
+ import { ChangeDetectorRef, ComponentFactoryResolver, Directive, ElementRef, EventEmitter, HostBinding, HostListener, Injectable, Input, Optional, Output, ViewChild, ViewContainerRef } from "@angular/core";
3
+ import { NgModel } from "@angular/forms";
4
+ import { isNill } from "../../core/function/is-nill.function";
5
+ import { notNill } from "../../core/function/not-nill.function";
6
+ import { InputBoolean, InputBooleanDecorator } from "../../core/decorator/input-boolean.decorator";
7
+ import { requiredValidator } from "../../core/validator/required.validator";
8
+ import { precisionScaleValidator } from "../../core/validator/precision-scale.validator";
9
+ import { maxStringLengthValidator } from "../../core/validator/max-string-length.validator";
10
+ import { StringUtils } from "../../core/utils/string-utils";
11
+ import { FormInputUserModelChangeListenerService } from "../../core/service/form-input-user-change-listener.service";
12
+ import { NumberUtils } from "../../core/utils/number-utils";
13
+ import { NgZoneWrapperService } from "../../core/service/ng-zone-wrapper.service";
14
+ import { CoreComponentsIcon } from "../../core/enum/core-components-icon.enum";
15
+ import { ValidationErrorComponent } from "../validation-error/validation-error.component";
16
+ import { OverlayService } from '../../service/overlay.service';
17
+ import { CommitButtonsComponent } from './commit-buttons/commit-buttons.component';
18
+ /**
19
+ * Abstract base class for all concrete form input components that contain a native <input> element. Provides common data and functionality, such as
20
+ * adding self as a control to the parent form.
21
+ */
22
+ export class BaseInputComponent {
23
+ constructor(changeDetector, componentFactoryResolver, overlayService, formUserChangeListener, ngZoneWrapper, elementRef) {
24
+ this.changeDetector = changeDetector;
25
+ this.componentFactoryResolver = componentFactoryResolver;
26
+ this.overlayService = overlayService;
27
+ this.formUserChangeListener = formUserChangeListener;
28
+ this.ngZoneWrapper = ngZoneWrapper;
29
+ this.elementRef = elementRef;
30
+ this.icons = CoreComponentsIcon;
31
+ this.showSaveCancel = false;
32
+ this.noValidation = false;
33
+ this.forceRequired = false; // a force outside of [cfgName]'s influence
34
+ // Goal: ability to emulate the red background of input fields (form-submitted invalid state)
35
+ this.redErrorBackground = false;
36
+ this.commitOnBlur = true;
37
+ // @Output()
38
+ // public commit: EventEmitter<any> = new EventEmitter<any>();
39
+ this.nativeBlur = new EventEmitter();
40
+ this.blur = new EventEmitter();
41
+ // emits when the enter button on keyboard was pressed while this form input had focussed
42
+ this.enter = new EventEmitter();
43
+ this.focus = new EventEmitter();
44
+ this.keyDown = new EventEmitter();
45
+ this.keyUp = new EventEmitter();
46
+ this.modelChange = new EventEmitter();
47
+ this.userModelChange = new EventEmitter();
48
+ this.hiddenChange = new EventEmitter();
49
+ this.focused = false;
50
+ this.formInput = true;
51
+ this.customWidth = false;
52
+ this.customHeight = false;
53
+ this.noTriangleGraphic = false;
54
+ this.keepFocussed = false;
55
+ this.halfWidth = false;
56
+ this.fullWidth = false;
57
+ this.excludeUserModelChange = false;
58
+ this.noFormGroupControl = false;
59
+ this.keepFocus = false;
60
+ this.validationError = "";
61
+ this._markedAsUserTouched = false;
62
+ this._destroyed = false;
63
+ this._hasOnPushCdStrategy = false;
64
+ this._modelDirtyForCommit = false;
65
+ this._initialModelSet = false;
66
+ this._forceReadonly = undefined;
67
+ this._validators = [];
68
+ this._asyncValidators = [];
69
+ this._canSaveOrCancel = false;
70
+ // descendents should override this
71
+ this.commit = (model) => __awaiter(this, void 0, void 0, function* () {
72
+ return Promise.resolve(true);
73
+ });
74
+ BaseInputComponent.BaseFormInputComponentIndex++;
75
+ this.name = BaseInputComponent.BaseFormInputComponentIndex.toString();
76
+ if (this.formUserChangeListener) {
77
+ this._clearMarkedAsUserTouchedSub = this.formUserChangeListener.clearAllMarkedAsUserTouched.subscribe(() => {
78
+ this._markedAsUserTouched = false;
79
+ });
80
+ }
81
+ }
82
+ get ngModel() {
83
+ if (this._myFormInputInstance) {
84
+ return this._myFormInputInstance.ngModel;
85
+ }
86
+ else {
87
+ return this._ngModel;
88
+ }
89
+ }
90
+ set model(value) {
91
+ if (!this._initialModelSet) {
92
+ this._initialModel = this._model;
93
+ this._initialModelSet = true;
94
+ }
95
+ this._model = value;
96
+ this.canSaveOrCancel = this._model !== this._initialModel;
97
+ this._modelDirtyForCommit = this._model !== this._initialModel;
98
+ this._clearErrorComponent();
99
+ this.modelSet();
100
+ }
101
+ get model() {
102
+ return this._model;
103
+ }
104
+ set disabled(disabled) {
105
+ if (disabled === this._disabled) {
106
+ return;
107
+ }
108
+ this._disabled = InputBooleanDecorator.InputValueToBoolean(disabled);
109
+ this._updateControlValidatorsAndOwnFlags();
110
+ }
111
+ get disabled() {
112
+ return this._disabled;
113
+ }
114
+ set maxLength(maxLength) {
115
+ this.setMaxLength(maxLength);
116
+ }
117
+ get maxLength() {
118
+ return notNill(this.forcedMaxLength) ? this.forcedMaxLength : this._maxLength;
119
+ }
120
+ set readonly(readonly) {
121
+ if (this._forceReadonly !== undefined || readonly === this._readonly) {
122
+ return;
123
+ }
124
+ this._readonly = InputBooleanDecorator.InputValueToBoolean(readonly);
125
+ this._updateControlValidatorsAndOwnFlags();
126
+ if (this._hasOnPushCdStrategy) {
127
+ this.detectChanges();
128
+ }
129
+ }
130
+ get readonly() {
131
+ return this.forceReadonly || this._readonly;
132
+ }
133
+ set forceReadonly(forceReadonly) {
134
+ if (forceReadonly === this._forceReadonly) {
135
+ return;
136
+ }
137
+ this._forceReadonly = InputBooleanDecorator.InputValueToBoolean(forceReadonly);
138
+ this._updateControlValidatorsAndOwnFlags();
139
+ }
140
+ get forceReadonly() {
141
+ return this._forceReadonly;
142
+ }
143
+ set required(required) {
144
+ if (required === this._required) {
145
+ return;
146
+ }
147
+ this._required = InputBooleanDecorator.InputValueToBoolean(required);
148
+ this._updateControlValidatorsAndOwnFlags();
149
+ }
150
+ get required() {
151
+ return this.forceRequired || this._required;
152
+ }
153
+ set validators(validators) {
154
+ if (validators === this._validators) {
155
+ return;
156
+ }
157
+ this._validators = validators;
158
+ this._updateControlValidatorsAndOwnFlags();
159
+ }
160
+ get validators() {
161
+ return this._validators;
162
+ }
163
+ set asyncValidators(validators) {
164
+ this._asyncValidators = validators;
165
+ this._updateControlValidatorsAndOwnFlags();
166
+ }
167
+ get asyncValidators() {
168
+ return this._asyncValidators;
169
+ }
170
+ set hidden(hidden) {
171
+ if (hidden === this._hidden) {
172
+ return;
173
+ }
174
+ this._hidden = hidden;
175
+ this._addOrRemoveSelfFromForm();
176
+ if (!this._destroyed) {
177
+ if (hidden) {
178
+ this.changeDetector.detach();
179
+ }
180
+ else {
181
+ this.changeDetector.reattach();
182
+ if (this._hasOnPushCdStrategy) {
183
+ this.detectChangesAfterAngular();
184
+ }
185
+ }
186
+ }
187
+ this.hiddenChange.emit(hidden);
188
+ }
189
+ get hidden() {
190
+ return this._hidden;
191
+ }
192
+ // no custom setter logic as with the other 'screen config props', because concrete form input components handle this themselves.
193
+ set decimals(value) {
194
+ this._decimals = value;
195
+ }
196
+ get decimals() {
197
+ return this._decimals;
198
+ }
199
+ set myFormInputInstance(value) {
200
+ if (value === this._myFormInputInstance) {
201
+ return;
202
+ }
203
+ this._myFormInputInstance = value;
204
+ this._updateControlValidatorsAndOwnFlags();
205
+ }
206
+ get myFormInputInstance() {
207
+ return this._myFormInputInstance;
208
+ }
209
+ get formSubmitted() {
210
+ return this.formComponent && this.formComponent.submitted;
211
+ }
212
+ get hasNoLabel() {
213
+ return isNill(this.label);
214
+ }
215
+ get hasValue() {
216
+ return (!Array.isArray(this.model) && !!this.model || StringUtils.IsStringWithLength(this.model) || NumberUtils.IsNumber(this.model)) ||
217
+ (Array.isArray(this.model) && this.model.length > 0);
218
+ }
219
+ get invalid() {
220
+ return this._checkState() && !this.control.valid;
221
+ }
222
+ get isDisabled() {
223
+ return this._disabled;
224
+ }
225
+ get isReadonly() {
226
+ return this.readonly;
227
+ }
228
+ get isRequired() {
229
+ return this.required;
230
+ }
231
+ get touchedInvalid() {
232
+ return this._controlExists() && this.control.touched && !this.control.valid;
233
+ }
234
+ get valid() {
235
+ return this._checkState() && this.control.valid;
236
+ }
237
+ get validationDisabled() {
238
+ return this.readonly || this.disabled || this.noValidation;
239
+ }
240
+ onClick(event) {
241
+ if (this.canChange && !this.noClickFocus) {
242
+ this.requestFocus();
243
+ if (!this.excludeUserModelChange) {
244
+ this.markAsUserTouched();
245
+ }
246
+ }
247
+ }
248
+ onFocusIn() {
249
+ if (!this.excludeUserModelChange) {
250
+ this.markAsUserTouched();
251
+ }
252
+ }
253
+ // @HostListener("document:scroll")
254
+ // public handleDocumentScroll(): void {
255
+ // this._positionValidationError();
256
+ // }
257
+ // @HostListener("window:resize")
258
+ // public handleWindowResize(): void {
259
+ // this._positionValidationError();
260
+ // }
261
+ handleKeyDown(event) {
262
+ this.keyDown.next(event);
263
+ if (this.showSaveCancel && this.canSaveOrCancel) {
264
+ this._handleKeyDown(event);
265
+ }
266
+ // this._positionValidationError();
267
+ }
268
+ get canChange() {
269
+ return !this.readonly && !this.disabled;
270
+ }
271
+ get control() {
272
+ return this._myFormInputInstance ? this._myFormInputInstance.control : this.ngModel && this.ngModel.control;
273
+ }
274
+ get formInputInstance() {
275
+ return this._myFormInputInstance || this;
276
+ }
277
+ get isDestroyed() {
278
+ return this._destroyed;
279
+ }
280
+ set canSaveOrCancel(value) {
281
+ this._canSaveOrCancel = value;
282
+ if (this.showSaveCancel && this.focused && this._canSaveOrCancel) {
283
+ if (!this._commitButtonsComponentRef) {
284
+ this._commitButtonsComponentRef = this.overlayService.createComponent(CommitButtonsComponent, {
285
+ parentForOverlay: this.elementRef,
286
+ committing: false,
287
+ commitFinished: false
288
+ }, {
289
+ commitClick: (event) => this._handleCommit(event),
290
+ cancelClick: (event) => this.cancelClick(event)
291
+ });
292
+ }
293
+ }
294
+ else {
295
+ this.overlayService.removeComponent(this._commitButtonsComponentRef);
296
+ this._commitButtonsComponentRef = undefined;
297
+ }
298
+ }
299
+ get canSaveOrCancel() {
300
+ return this._canSaveOrCancel;
301
+ }
302
+ ngOnInit() {
303
+ this._modelChangeSub = this.modelChange.subscribe((val) => {
304
+ this.model = val;
305
+ });
306
+ }
307
+ ngAfterViewInit() {
308
+ this._prepareInput();
309
+ this._updateControlValidatorsAndOwnFlags();
310
+ this._addOrRemoveSelfFromForm();
311
+ if (this.formComponent) {
312
+ this.readonly = this.readonly || this.formComponent.readonly;
313
+ this._formReadonlyChangeSub = this.formComponent.readonlyChange.subscribe((isFormReadonly) => {
314
+ this.readonly = isFormReadonly;
315
+ });
316
+ }
317
+ if (this.initFocus) {
318
+ setTimeout(this.requestFocus.bind(this));
319
+ }
320
+ }
321
+ ngOnDestroy() {
322
+ this._removeSelfFromForm();
323
+ if (this.input) {
324
+ this.input.removeEventListener('blur', (event) => this.doBlur(event));
325
+ this.input.removeEventListener('focus', (event) => this.doFocus(event));
326
+ }
327
+ this._destroyed = true;
328
+ this._clearErrorComponent();
329
+ // if (this.tooltipManager && this.elementRef) {
330
+ // this.tooltipManager.destroyErrorTooltipOfElement(this.elementRef.nativeElement);
331
+ // }
332
+ if (this._modelChangeSub) {
333
+ this._modelChangeSub.unsubscribe();
334
+ }
335
+ if (this._speechSub) {
336
+ this._speechSub.unsubscribe();
337
+ }
338
+ if (this._formAnySubmitSub) {
339
+ this._formAnySubmitSub.unsubscribe();
340
+ }
341
+ if (this._formReadonlyChangeSub) {
342
+ this._formReadonlyChangeSub.unsubscribe();
343
+ }
344
+ if (this._clearMarkedAsUserTouchedSub) {
345
+ this._clearMarkedAsUserTouchedSub.unsubscribe();
346
+ }
347
+ // this._removeSelfFromForm();
348
+ this.elementRef = undefined;
349
+ this.changeDetector = undefined;
350
+ this.input = undefined;
351
+ }
352
+ cancelClick(event) {
353
+ this.keepFocus = true;
354
+ if (this._initialModelSet) {
355
+ this.model = this._initialModel;
356
+ }
357
+ this.keepFocus = false;
358
+ }
359
+ showValidationError(error) {
360
+ this.validationError = error;
361
+ this._validationComponentRef = this.overlayService.createComponent(ValidationErrorComponent, { parentForOverlay: this.elementRef, error: error });
362
+ }
363
+ /**
364
+ * Emits a modelChange event with given value, indicating that the model of this form input
365
+ * has changed and its new value is given value. Also emits userModelChange if markedAsUserTouched.
366
+ */
367
+ setModel(value) {
368
+ this.model = value;
369
+ this.modelChange.emit(value);
370
+ if (this.control) {
371
+ this.control.markAsDirty({ onlySelf: true });
372
+ }
373
+ if (this.formComponent) {
374
+ this.formComponent.formGroup.markAsDirty({ onlySelf: true });
375
+ }
376
+ if (this._markedAsUserTouched && this.formUserChangeListener) {
377
+ this.formUserChangeListener.userModelChange.next(value);
378
+ this.userModelChange.next(value);
379
+ }
380
+ if (this._hasOnPushCdStrategy) {
381
+ this.detectChanges();
382
+ }
383
+ }
384
+ requestFocus() {
385
+ if (this.canChange && this.input) {
386
+ this.input.focus();
387
+ this.focused = true;
388
+ if (this._hasOnPushCdStrategy) {
389
+ this.markForCheck();
390
+ }
391
+ }
392
+ }
393
+ doFocus(event) {
394
+ if (this.disabled) {
395
+ return;
396
+ }
397
+ this._initialModelSet = false;
398
+ this.focused = true;
399
+ this.canSaveOrCancel = false;
400
+ if (this._hasOnPushCdStrategy) {
401
+ this.markForCheck();
402
+ }
403
+ this.focus.next();
404
+ }
405
+ doBlur(event, handleCommit = true) {
406
+ return __awaiter(this, void 0, void 0, function* () {
407
+ if (this.showSaveCancel && handleCommit && this._modelDirtyForCommit) {
408
+ yield this._handleCommit(event, false);
409
+ }
410
+ setTimeout(() => {
411
+ if (this.keepFocus || this.keepFocussed) {
412
+ if (event) {
413
+ event.preventDefault;
414
+ }
415
+ return false;
416
+ }
417
+ this.focused = false;
418
+ if (this._hasOnPushCdStrategy) {
419
+ this.markForCheck();
420
+ }
421
+ if (this.input) {
422
+ this.input.blur();
423
+ }
424
+ this.blur.next();
425
+ }, 200);
426
+ });
427
+ }
428
+ detectChanges() {
429
+ if (!this._destroyed) {
430
+ this.changeDetector.detectChanges();
431
+ }
432
+ }
433
+ markForCheck() {
434
+ if (!this._destroyed) {
435
+ this.changeDetector.markForCheck();
436
+ }
437
+ }
438
+ detectChangesAfterAngular() {
439
+ if (!!this.ngZoneWrapper) {
440
+ this.ngZoneWrapper.setTimeoutOutsideAngular(() => {
441
+ if (!this._destroyed) {
442
+ if (this._hasOnPushCdStrategy) {
443
+ this.changeDetector.markForCheck();
444
+ }
445
+ this.changeDetector.detectChanges();
446
+ }
447
+ });
448
+ }
449
+ }
450
+ /**
451
+ * Links the given formComp.submit event to the firing of detectChanges() of given change detector. This is a 'utility-like' method,
452
+ * but we manage the actual subscription (with UNSUBSCRIBE()!) on this base class.
453
+ * @param formComp The form whose submit we want to link with the call of .detectChanges() on given change detector ref.
454
+ * @param changeDetectorRef This should be given as param. I choose not to make this part of our (BaseFormInputComponent) constructor,
455
+ * because we already have 21 extenders.
456
+ */
457
+ // public linkFormAnySubmitWithDetectChanges(formComp: FormComponent, changeDetectorRef: ChangeDetectorRef): void {
458
+ // if (formComp && changeDetectorRef) {
459
+ // this._formAnySubmitSub = formComp.anySubmit.subscribe((() => {
460
+ // if (!this._destroyed) {
461
+ // changeDetectorRef.detectChanges();
462
+ // }
463
+ // }));
464
+ // }
465
+ // }
466
+ markAsUserTouched() {
467
+ this._markedAsUserTouched = true;
468
+ this.redErrorBackground = false; // not sure if this is the right place to do that
469
+ }
470
+ clearMarkedAsUserTouched() {
471
+ this._markedAsUserTouched = false;
472
+ }
473
+ modelSet() {
474
+ }
475
+ //used for descendents, because descendents can't set super properties, see InputNumberComponent
476
+ setMaxLength(maxLength) {
477
+ if (notNill(this.forcedMaxLength) || maxLength === this._maxLength) {
478
+ return;
479
+ }
480
+ if (!isNaN(maxLength)) {
481
+ this._maxLength = maxLength;
482
+ this._updateControlValidatorsAndOwnFlags();
483
+ }
484
+ }
485
+ _markAsOnPush() {
486
+ this._hasOnPushCdStrategy = true;
487
+ }
488
+ _checkState() {
489
+ if (this.ngModel) {
490
+ return this.formSubmitted || (this._controlExists() && this.control.touched);
491
+ }
492
+ else {
493
+ return false;
494
+ }
495
+ }
496
+ // Place validators onto our Angular's FormControl.
497
+ _updateControlValidatorsAndOwnFlags() {
498
+ const er = this.myFormInputInstance ? this.myFormInputInstance.elementRef : this.elementRef;
499
+ // if (this.tooltipManager && er) {
500
+ // this.tooltipManager.destroyErrorTooltipOfElement(er.nativeElement);
501
+ // }
502
+ this._setNativeRequired(this.required);
503
+ this._setNativeMaxLength(this.maxLength);
504
+ this._setNativeDisabled(this.disabled);
505
+ this._setNativeReadOnly(this.readonly || this.forceReadonly);
506
+ this.redErrorBackground = false;
507
+ if (this._controlExists()) {
508
+ const validators = [];
509
+ // add required
510
+ if (this.required) {
511
+ validators.push(requiredValidator);
512
+ }
513
+ // add maxlength
514
+ if (notNill(this._maxLength)) {
515
+ if (this.decimals) {
516
+ validators.push(precisionScaleValidator(this._maxLength, this.decimals));
517
+ }
518
+ else {
519
+ validators.push(maxStringLengthValidator(this._maxLength));
520
+ }
521
+ }
522
+ // add @Input()-ed validators
523
+ validators.push(...this._validators);
524
+ if (this._validators) {
525
+ this._validators.forEach(validator => {
526
+ if (validator === requiredValidator) {
527
+ this._required = true;
528
+ this._setNativeRequired(true);
529
+ }
530
+ });
531
+ }
532
+ this.control.setValidators(validators);
533
+ this.control.setAsyncValidators(this._asyncValidators);
534
+ this.control.updateValueAndValidity();
535
+ }
536
+ }
537
+ _handleCommit(event, doBlur = true) {
538
+ return __awaiter(this, void 0, void 0, function* () {
539
+ if (!this.showSaveCancel || (!this._modelDirtyForCommit)) {
540
+ return true;
541
+ }
542
+ this.keepFocus = true;
543
+ if (this._commitButtonsComponentRef) {
544
+ this._commitButtonsComponentRef.instance.commitFinished = false;
545
+ this._commitButtonsComponentRef.instance.committing = true;
546
+ }
547
+ this._modelDirtyForCommit = false;
548
+ const success = yield this.commit(this.model);
549
+ this.keepFocus = false;
550
+ yield this._commitFinished();
551
+ if (success && doBlur) {
552
+ this.doBlur(event, false);
553
+ }
554
+ return success;
555
+ });
556
+ }
557
+ _commitFinished() {
558
+ return new Promise((resolve) => {
559
+ if (this._commitButtonsComponentRef) {
560
+ this._commitButtonsComponentRef.instance.commitFinished = true;
561
+ this._commitButtonsComponentRef.instance.committing = false;
562
+ setTimeout(() => {
563
+ // this._commitButtonsComponentRef.instance.commitFinished = false;
564
+ this.overlayService.removeComponent(this._commitButtonsComponentRef);
565
+ resolve();
566
+ }, 800);
567
+ }
568
+ else {
569
+ resolve();
570
+ }
571
+ });
572
+ }
573
+ _clearErrorComponent() {
574
+ this.overlayService.removeComponent(this._validationComponentRef);
575
+ }
576
+ // whether this.ngModel.control has safe access
577
+ _controlExists() {
578
+ return this.ngModel && !!this.control;
579
+ }
580
+ _controlIsValid() {
581
+ return this._controlExists() && this.control.valid;
582
+ }
583
+ _setNativeDisabled(disabled) {
584
+ if (this.input) {
585
+ this.input.disabled = disabled;
586
+ }
587
+ }
588
+ _setNativeMaxLength(maxlength) {
589
+ if (this.input && !isNaN(maxlength)) {
590
+ this.input.maxLength = maxlength;
591
+ }
592
+ }
593
+ _setNativeReadOnly(readonly) {
594
+ if (this.input) {
595
+ this.input.readOnly = readonly;
596
+ }
597
+ }
598
+ _setNativeRequired(required) {
599
+ if (this.input) {
600
+ this.input.required = required;
601
+ }
602
+ }
603
+ _subscribeToSpeechInput() {
604
+ // this._speechSub = this.speechInput.speechInput.subscribe((data) => {
605
+ // if (this.focused && this._controlExists()) {
606
+ // const val: string = this.control.value;
607
+ // this.setModel((StringUtils.IsString(val) ? val : '') + data);
608
+ // }
609
+ // });
610
+ }
611
+ _addOrRemoveSelfFromForm() {
612
+ if (this.hidden) {
613
+ this._removeSelfFromForm();
614
+ }
615
+ else {
616
+ this._addSelfToForm();
617
+ }
618
+ }
619
+ _updateSelfInForm() {
620
+ if (this.formComponent) {
621
+ this.formComponent.updateFormInput(this);
622
+ }
623
+ }
624
+ _removeSelfFromForm() {
625
+ if (this.formComponent && this.ngModel) {
626
+ this.formComponent.removeFormInput(this);
627
+ }
628
+ }
629
+ _addSelfToForm() {
630
+ if (this.formComponent && this.ngModel && !this.noFormGroupControl) {
631
+ this.formComponent.removeFormInput(this); // preventing there are two controls in formgroup when myFormInputInstance is (being) set
632
+ this.formComponent.addFormInput(this.myFormInputInstance ? this.myFormInputInstance : this);
633
+ }
634
+ }
635
+ _prepareInput() {
636
+ if (this.elementRef && this.elementRef.nativeElement) {
637
+ //try to find input element
638
+ this._findInputNode(this.elementRef.nativeElement.children);
639
+ if (this.input) {
640
+ this.input.addEventListener('blur', (event) => this.doBlur(event));
641
+ this.input.addEventListener('focus', (event) => this.doFocus(event));
642
+ }
643
+ }
644
+ }
645
+ _findInputNode(nodes) {
646
+ for (let i = 0; i < nodes.length; i++) {
647
+ const node = nodes[i];
648
+ if (node instanceof HTMLInputElement || node instanceof HTMLTextAreaElement) {
649
+ this.input = node;
650
+ break;
651
+ }
652
+ else if (node.children.length > 0) {
653
+ this._findInputNode(node.children);
654
+ }
655
+ }
656
+ }
657
+ _positionValidationError() {
658
+ if (this.elementRef && this.elementRef.nativeElement && this._errorValidationComponent) {
659
+ const clientRect = this.elementRef.nativeElement.getBoundingClientRect();
660
+ this._errorValidationComponent.instance.top = clientRect.bottom;
661
+ this._errorValidationComponent.instance.left = clientRect.left;
662
+ }
663
+ }
664
+ _handleKeyDown(event) {
665
+ return __awaiter(this, void 0, void 0, function* () {
666
+ switch (event.code) {
667
+ case 'Enter':
668
+ case 'NumpadEnter':
669
+ if (!event.shiftKey) {
670
+ event.preventDefault();
671
+ yield this._handleCommit();
672
+ return false;
673
+ }
674
+ return true;
675
+ case 'Tab':
676
+ const nextSiblingToFocus = event.shiftKey ? event.currentTarget.previousSibling : event.currentTarget.nextSibling;
677
+ event.preventDefault();
678
+ const success = yield this._handleCommit();
679
+ if (success) {
680
+ if (nextSiblingToFocus) {
681
+ try {
682
+ this._setFocusOnNextPossibleInput(nextSiblingToFocus, event.shiftKey);
683
+ }
684
+ catch (e) {
685
+ }
686
+ }
687
+ }
688
+ return false;
689
+ case 'Escape':
690
+ this.cancelClick();
691
+ event.preventDefault();
692
+ return false;
693
+ }
694
+ });
695
+ }
696
+ _createNewFocusEvent(element) {
697
+ let eventType = "onfocusin" in element ? "focusin" : "focus", bubbles = "onfocusin" in element, focusEvent;
698
+ if ("createEvent" in document) {
699
+ focusEvent = document.createEvent("Event");
700
+ focusEvent.initEvent(eventType, bubbles, true);
701
+ }
702
+ else if ("Event" in window) {
703
+ focusEvent = new Event(eventType, { bubbles: bubbles, cancelable: true });
704
+ }
705
+ return focusEvent;
706
+ }
707
+ _setFocusOnNextPossibleInput(element, previous) {
708
+ let elementColl = element.getElementsByTagName('input');
709
+ if (!elementColl || elementColl.length < 1) {
710
+ elementColl = element.getElementsByTagName('textarea');
711
+ }
712
+ if (elementColl && elementColl.length > 0) {
713
+ const inputElement = elementColl[0];
714
+ if (inputElement.disabled || inputElement.readOnly) {
715
+ this._setFocusOnNextPossibleInput(previous ? element.previousSibling : element.nextSibling, previous);
716
+ }
717
+ else {
718
+ const focusEvent = this._createNewFocusEvent(element);
719
+ inputElement.focus();
720
+ inputElement.dispatchEvent(focusEvent);
721
+ }
722
+ }
723
+ }
724
+ }
725
+ BaseInputComponent.BaseFormInputComponentIndex = 0;
726
+ BaseInputComponent.HiddenClass = "hidden";
727
+ BaseInputComponent.decorators = [
728
+ { type: Directive },
729
+ { type: Injectable }
730
+ ];
731
+ BaseInputComponent.ctorParameters = () => [
732
+ { type: ChangeDetectorRef },
733
+ { type: ComponentFactoryResolver },
734
+ { type: OverlayService },
735
+ { type: FormInputUserModelChangeListenerService, decorators: [{ type: Optional }] },
736
+ { type: NgZoneWrapperService, decorators: [{ type: Optional }] },
737
+ { type: ElementRef, decorators: [{ type: Optional }] }
738
+ ];
739
+ BaseInputComponent.propDecorators = {
740
+ validationErrorContainer: [{ type: ViewChild, args: ["validationError", { read: ViewContainerRef },] }],
741
+ _ngModel: [{ type: ViewChild, args: [NgModel, { static: true },] }],
742
+ showSaveCancel: [{ type: Input }],
743
+ model: [{ type: Input }],
744
+ label: [{ type: Input }],
745
+ noValidation: [{ type: Input }],
746
+ initFocus: [{ type: Input }],
747
+ noClickFocus: [{ type: Input }],
748
+ businessObjectId: [{ type: Input }],
749
+ disabled: [{ type: Input }],
750
+ maxLength: [{ type: Input }],
751
+ forcedMaxLength: [{ type: Input }],
752
+ readonly: [{ type: Input }],
753
+ forceReadonly: [{ type: Input }],
754
+ required: [{ type: Input }],
755
+ forceRequired: [{ type: Input }],
756
+ validators: [{ type: Input }],
757
+ asyncValidators: [{ type: Input }],
758
+ hidden: [{ type: Input }, { type: HostBinding, args: ["class." + BaseInputComponent.HiddenClass,] }],
759
+ decimals: [{ type: Input }],
760
+ icon: [{ type: Input }],
761
+ customCssClass: [{ type: Input }],
762
+ redErrorBackground: [{ type: Input }, { type: HostBinding, args: ["class.cc-red-error-background",] }],
763
+ myFormInputInstance: [{ type: Input }],
764
+ commitOnBlur: [{ type: Input }],
765
+ nativeBlur: [{ type: Output }],
766
+ blur: [{ type: Output }],
767
+ enter: [{ type: Output }],
768
+ focus: [{ type: Output }],
769
+ keyDown: [{ type: Output }],
770
+ keyUp: [{ type: Output }],
771
+ modelChange: [{ type: Output }],
772
+ userModelChange: [{ type: Output }],
773
+ hiddenChange: [{ type: Output }],
774
+ focused: [{ type: HostBinding, args: ["class.cc-input-focused",] }],
775
+ formInput: [{ type: HostBinding, args: ["class.form-input",] }],
776
+ customWidth: [{ type: Input }, { type: HostBinding, args: ["class.custom-width",] }],
777
+ customHeight: [{ type: Input }, { type: HostBinding, args: ['class.custom-height',] }],
778
+ noTriangleGraphic: [{ type: Input }],
779
+ keepFocussed: [{ type: Input }],
780
+ halfWidth: [{ type: Input }, { type: HostBinding, args: ["class.half-width",] }],
781
+ fullWidth: [{ type: Input }, { type: HostBinding, args: ["class.full-width-important",] }],
782
+ excludeUserModelChange: [{ type: Input }],
783
+ noFormGroupControl: [{ type: Input }],
784
+ formSubmitted: [{ type: HostBinding, args: ["class.form-submitted",] }],
785
+ hasNoLabel: [{ type: HostBinding, args: ["class.hasnolabel",] }],
786
+ hasValue: [{ type: HostBinding, args: ["class.hasvalue",] }],
787
+ invalid: [{ type: HostBinding, args: ["class.invalid",] }],
788
+ isDisabled: [{ type: HostBinding, args: ["class.disabled",] }],
789
+ isReadonly: [{ type: HostBinding, args: ["class.read-only",] }],
790
+ isRequired: [{ type: HostBinding, args: ["class.required",] }],
791
+ touchedInvalid: [{ type: HostBinding, args: ["class.cc-touched-invalid",] }],
792
+ valid: [{ type: HostBinding, args: ["class.valid",] }],
793
+ validationDisabled: [{ type: HostBinding, args: ["class.no-validation",] }],
794
+ onClick: [{ type: HostListener, args: ["click", ["$event"],] }],
795
+ onFocusIn: [{ type: HostListener, args: ["focusin",] }],
796
+ handleKeyDown: [{ type: HostListener, args: ["keydown", ["$event"],] }]
797
+ };
798
+ __decorate([
799
+ InputBoolean()
800
+ ], BaseInputComponent.prototype, "noValidation", void 0);
801
+ __decorate([
802
+ InputBoolean()
803
+ ], BaseInputComponent.prototype, "initFocus", void 0);
804
+ __decorate([
805
+ InputBoolean()
806
+ ], BaseInputComponent.prototype, "noClickFocus", void 0);
807
+ __decorate([
808
+ InputBoolean()
809
+ ], BaseInputComponent.prototype, "forceRequired", void 0);
810
+ __decorate([
811
+ InputBoolean()
812
+ ], BaseInputComponent.prototype, "customWidth", void 0);
813
+ __decorate([
814
+ InputBoolean()
815
+ ], BaseInputComponent.prototype, "customHeight", void 0);
816
+ __decorate([
817
+ InputBoolean()
818
+ ], BaseInputComponent.prototype, "noTriangleGraphic", void 0);
819
+ __decorate([
820
+ InputBoolean()
821
+ ], BaseInputComponent.prototype, "keepFocussed", void 0);
822
+ __decorate([
823
+ InputBoolean()
824
+ ], BaseInputComponent.prototype, "halfWidth", void 0);
825
+ __decorate([
826
+ InputBoolean()
827
+ ], BaseInputComponent.prototype, "fullWidth", void 0);
828
+ __decorate([
829
+ InputBoolean()
830
+ ], BaseInputComponent.prototype, "excludeUserModelChange", void 0);
831
+ __decorate([
832
+ InputBoolean()
833
+ ], BaseInputComponent.prototype, "noFormGroupControl", void 0);
834
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1pbnB1dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvYmFzZS9iYXNlLWlucHV0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUVMLGlCQUFpQixFQUVqQix3QkFBd0IsRUFFeEIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osV0FBVyxFQUNYLFlBQVksRUFDWixVQUFVLEVBQ1YsS0FBSyxFQUdMLFFBQVEsRUFDUixNQUFNLEVBQ04sU0FBUyxFQUNULGdCQUFnQixFQUNqQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQWdDLE9BQU8sRUFBYyxNQUFNLGdCQUFnQixDQUFDO0FBQ25GLE9BQU8sRUFBQyxNQUFNLEVBQUMsTUFBTSxzQ0FBc0MsQ0FBQztBQUM1RCxPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0sdUNBQXVDLENBQUM7QUFDOUQsT0FBTyxFQUFDLFlBQVksRUFBRSxxQkFBcUIsRUFBQyxNQUFNLDhDQUE4QyxDQUFDO0FBQ2pHLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLHlDQUF5QyxDQUFDO0FBQzFFLE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLGdEQUFnRCxDQUFDO0FBQ3ZGLE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLGtEQUFrRCxDQUFDO0FBQzFGLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQztBQUUxRCxPQUFPLEVBQUMsdUNBQXVDLEVBQUMsTUFBTSw0REFBNEQsQ0FBQztBQUNuSCxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sK0JBQStCLENBQUM7QUFDMUQsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sNENBQTRDLENBQUM7QUFDaEYsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sMkNBQTJDLENBQUM7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QUFrQjt3QkFHdkQsS0FBSyxZQUFvQixXQUFXLFNBQUMsNEJBQTRCO3FDQUdqRSxLQUFLO2lDQUdMLEtBQUs7NEJBR0wsV0FBVyxTQUFDLHNCQUFzQjt5QkFLbEMsV0FBVyxTQUFDLGtCQUFrQjt1QkFLOUIsV0FBVyxTQUFDLGdCQUFnQjtzQkFNNUIsV0FBVyxTQUFDLGVBQWU7eUJBSzNCLFdBQVcsU0FBQyxnQkFBZ0I7eUJBSzVCLFdBQVcsU0FBQyxpQkFBaUI7eUJBSzdCLFdBQVcsU0FBQyxnQkFBZ0I7NkJBSzVCLFdBQVcsU0FBQywwQkFBMEI7b0JBS3RDLFdBQVcsU0FBQyxhQUFhO2lDQUt6QixXQUFXLFNBQUMscUJBQXFCO3NCQUtqQyxZQUFZLFNBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDO3dCQVVoQyxZQUFZLFNBQUMsU0FBUzs0QkFpQnRCLFlBQVksU0FBQyxTQUFTLEVBQUUsQ0FBQyxRQUFRLENBQUM7O0FBM1RuQztJQURVLFlBQVksRUFBRTt3REFDYTtBQUdyQztJQURVLFlBQVksRUFBRTtxREFDRTtBQUcxQjtJQURVLFlBQVksRUFBRTt3REFDSztBQStFN0I7SUFEVSxZQUFZLEVBQUU7eURBQ2M7QUFpSXRDO0lBRFUsWUFBWSxFQUFFO3VEQUNZO0FBR3BDO0lBRFUsWUFBWSxFQUFFO3dEQUNhO0FBR3JDO0lBRFUsWUFBWSxFQUFFOzZEQUNrQjtBQUcxQztJQURVLFlBQVksRUFBRTt3REFDYTtBQUdyQztJQURVLFlBQVksRUFBRTtxREFDVTtBQUdsQztJQURVLFlBQVksRUFBRTtxREFDVTtBQUdsQztJQURVLFlBQVksRUFBRTtrRUFDdUI7QUFHL0M7SUFEVSxZQUFZLEVBQUU7OERBQ21CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBBZnRlclZpZXdJbml0LFxyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIENvbXBvbmVudEZhY3RvcnksXHJcbiAgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxyXG4gIENvbXBvbmVudFJlZiwgQ29udGVudENoaWxkLFxyXG4gIERpcmVjdGl2ZSxcclxuICBFbGVtZW50UmVmLFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBIb3N0QmluZGluZyxcclxuICBIb3N0TGlzdGVuZXIsXHJcbiAgSW5qZWN0YWJsZSxcclxuICBJbnB1dCxcclxuICBPbkRlc3Ryb3ksXHJcbiAgT25Jbml0LFxyXG4gIE9wdGlvbmFsLFxyXG4gIE91dHB1dCxcclxuICBWaWV3Q2hpbGQsXHJcbiAgVmlld0NvbnRhaW5lclJlZlxyXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7QXN5bmNWYWxpZGF0b3JGbiwgRm9ybUNvbnRyb2wsIE5nTW9kZWwsIFZhbGlkYXRvckZufSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcclxuaW1wb3J0IHtpc05pbGx9IGZyb20gXCIuLi8uLi9jb3JlL2Z1bmN0aW9uL2lzLW5pbGwuZnVuY3Rpb25cIjtcclxuaW1wb3J0IHtub3ROaWxsfSBmcm9tIFwiLi4vLi4vY29yZS9mdW5jdGlvbi9ub3QtbmlsbC5mdW5jdGlvblwiO1xyXG5pbXBvcnQge0lucHV0Qm9vbGVhbiwgSW5wdXRCb29sZWFuRGVjb3JhdG9yfSBmcm9tIFwiLi4vLi4vY29yZS9kZWNvcmF0b3IvaW5wdXQtYm9vbGVhbi5kZWNvcmF0b3JcIjtcclxuaW1wb3J0IHtyZXF1aXJlZFZhbGlkYXRvcn0gZnJvbSBcIi4uLy4uL2NvcmUvdmFsaWRhdG9yL3JlcXVpcmVkLnZhbGlkYXRvclwiO1xyXG5pbXBvcnQge3ByZWNpc2lvblNjYWxlVmFsaWRhdG9yfSBmcm9tIFwiLi4vLi4vY29yZS92YWxpZGF0b3IvcHJlY2lzaW9uLXNjYWxlLnZhbGlkYXRvclwiO1xyXG5pbXBvcnQge21heFN0cmluZ0xlbmd0aFZhbGlkYXRvcn0gZnJvbSBcIi4uLy4uL2NvcmUvdmFsaWRhdG9yL21heC1zdHJpbmctbGVuZ3RoLnZhbGlkYXRvclwiO1xyXG5pbXBvcnQge1N0cmluZ1V0aWxzfSBmcm9tIFwiLi4vLi4vY29yZS91dGlscy9zdHJpbmctdXRpbHNcIjtcclxuaW1wb3J0IHtTdWJzY3JpcHRpb259IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7Rm9ybUlucHV0VXNlck1vZGVsQ2hhbmdlTGlzdGVuZXJTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vY29yZS9zZXJ2aWNlL2Zvcm0taW5wdXQtdXNlci1jaGFuZ2UtbGlzdGVuZXIuc2VydmljZVwiO1xyXG5pbXBvcnQge051bWJlclV0aWxzfSBmcm9tIFwiLi4vLi4vY29yZS91dGlscy9udW1iZXItdXRpbHNcIjtcclxuaW1wb3J0IHtOZ1pvbmVXcmFwcGVyU2VydmljZX0gZnJvbSBcIi4uLy4uL2NvcmUvc2VydmljZS9uZy16b25lLXdyYXBwZXIuc2VydmljZVwiO1xyXG5pbXBvcnQge0NvcmVDb21wb25lbnRzSWNvbn0gZnJvbSBcIi4uLy4uL2NvcmUvZW51bS9jb3JlLWNvbXBvbmVudHMtaWNvbi5lbnVtXCI7XHJcbmltcG9ydCB7Rm9ybUNvbXBvbmVudH0gZnJvbSBcIi4uL2Zvcm0vZm9ybS5jb21wb25lbnRcIjtcclxuaW1wb3J0IHtWYWxpZGF0aW9uRXJyb3JDb21wb25lbnR9IGZyb20gXCIuLi92YWxpZGF0aW9uLWVycm9yL3ZhbGlkYXRpb24tZXJyb3IuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7U2NyZWVuQ29uZmlnQWRhcHRlckNvbXBvbmVudH0gZnJvbSBcIi4uLy4uL2ludGVyZmFjZXMvc2NyZWVuLWNvbmZpZy1hZGFwdGVyLmNvbXBvbmVudC5pbnRlcmZhY2VcIjtcclxuaW1wb3J0IHtPdmVybGF5U2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZS9vdmVybGF5LnNlcnZpY2UnO1xyXG5pbXBvcnQge0NvbW1pdEJ1dHRvbnNDb21wb25lbnR9IGZyb20gJy4vY29tbWl0LWJ1dHRvbnMvY29tbWl0LWJ1dHRvbnMuY29tcG9uZW50JztcclxuXHJcbi8qKlxyXG4gKiBBYnN0cmFjdCBiYXNlIGNsYXNzIGZvciBhbGwgY29uY3JldGUgZm9ybSBpbnB1dCBjb21wb25lbnRzIHRoYXQgY29udGFpbiBhIG5hdGl2ZSA8aW5wdXQ+IGVsZW1lbnQuIFByb3ZpZGVzIGNvbW1vbiBkYXRhIGFuZCBmdW5jdGlvbmFsaXR5LCBzdWNoIGFzXHJcbiAqIGFkZGluZyBzZWxmIGFzIGEgY29udHJvbCB0byB0aGUgcGFyZW50IGZvcm0uXHJcbiAqL1xyXG5ARGlyZWN0aXZlKClcclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQmFzZUlucHV0Q29tcG9uZW50PFQ+IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIEFmdGVyVmlld0luaXQsIFNjcmVlbkNvbmZpZ0FkYXB0ZXJDb21wb25lbnQge1xyXG4gIHB1YmxpYyByZWFkb25seSBpY29uczogdHlwZW9mIENvcmVDb21wb25lbnRzSWNvbiA9IENvcmVDb21wb25lbnRzSWNvbjtcclxuXHJcbiAgQFZpZXdDaGlsZChcInZhbGlkYXRpb25FcnJvclwiLCB7cmVhZDogVmlld0NvbnRhaW5lclJlZn0pXHJcbiAgcHVibGljIHZhbGlkYXRpb25FcnJvckNvbnRhaW5lcjogVmlld0NvbnRhaW5lclJlZjtcclxuXHJcbiAgQFZpZXdDaGlsZChOZ01vZGVsLCB7c3RhdGljOiB0cnVlfSlcclxuICBwdWJsaWMgX25nTW9kZWw6IE5nTW9kZWw7XHJcblxyXG4gIHB1YmxpYyBnZXQgbmdNb2RlbCgpOiBOZ01vZGVsIHtcclxuICAgIGlmICh0aGlzLl9teUZvcm1JbnB1dEluc3RhbmNlKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLl9teUZvcm1JbnB1dEluc3RhbmNlLm5nTW9kZWw7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gdGhpcy5fbmdNb2RlbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgQmFzZUZvcm1JbnB1dENvbXBvbmVudEluZGV4OiBudW1iZXIgPSAwO1xyXG4gIHB1YmxpYyBzdGF0aWMgSGlkZGVuQ2xhc3M6IHN0cmluZyA9IFwiaGlkZGVuXCI7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNob3dTYXZlQ2FuY2VsOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNldCBtb2RlbCh2YWx1ZTogVCkge1xyXG4gICAgaWYgKCF0aGlzLl9pbml0aWFsTW9kZWxTZXQpIHtcclxuICAgICAgdGhpcy5faW5pdGlhbE1vZGVsID0gdGhpcy5fbW9kZWw7XHJcbiAgICAgIHRoaXMuX2luaXRpYWxNb2RlbFNldCA9IHRydWU7XHJcbiAgICB9XHJcbiAgICB0aGlzLl9tb2RlbCA9IHZhbHVlO1xyXG4gICAgdGhpcy5jYW5TYXZlT3JDYW5jZWwgPSB0aGlzLl9tb2RlbCAhPT0gdGhpcy5faW5pdGlhbE1vZGVsO1xyXG4gICAgdGhpcy5fbW9kZWxEaXJ0eUZvckNvbW1pdCA9IHRoaXMuX21vZGVsICE9PSB0aGlzLl9pbml0aWFsTW9kZWw7XHJcbiAgICB0aGlzLl9jbGVhckVycm9yQ29tcG9uZW50KCk7XHJcbiAgICB0aGlzLm1vZGVsU2V0KCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IG1vZGVsKCk6IFQge1xyXG4gICAgcmV0dXJuIHRoaXMuX21vZGVsO1xyXG4gIH1cclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgbGFiZWw6IHN0cmluZztcclxuXHJcbiAgQElucHV0KCkgQElucHV0Qm9vbGVhbigpXHJcbiAgcHVibGljIG5vVmFsaWRhdGlvbjogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKSBASW5wdXRCb29sZWFuKClcclxuICBwdWJsaWMgaW5pdEZvY3VzOiBib29sZWFuO1xyXG5cclxuICBASW5wdXQoKSBASW5wdXRCb29sZWFuKClcclxuICBwdWJsaWMgbm9DbGlja0ZvY3VzOiBib29sZWFuO1xyXG5cclxuICAvLyB1c2VkIHRvIGxpbmsgZmllbGQgdG8gYnVzaW5lc3Mgb2JqZWN0IGZvciBkZWVwLXZhbGlkYXRpb25cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBidXNpbmVzc09iamVjdElkOiBhbnk7XHJcblxyXG4gIC8vIEBJbnB1dCgpXHJcbiAgLy8gcHVibGljIGVycm9yTWVzc2FnZTogVmFsaWRhdGlvbk1lc3NhZ2U7XHJcblxyXG4gIHB1YmxpYyBuYW1lOiBzdHJpbmc7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNldCBkaXNhYmxlZChkaXNhYmxlZDogYm9vbGVhbikge1xyXG4gICAgaWYgKGRpc2FibGVkID09PSB0aGlzLl9kaXNhYmxlZCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLl9kaXNhYmxlZCA9IElucHV0Qm9vbGVhbkRlY29yYXRvci5JbnB1dFZhbHVlVG9Cb29sZWFuKGRpc2FibGVkKTtcclxuICAgIHRoaXMuX3VwZGF0ZUNvbnRyb2xWYWxpZGF0b3JzQW5kT3duRmxhZ3MoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgZGlzYWJsZWQoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5fZGlzYWJsZWQ7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzZXQgbWF4TGVuZ3RoKG1heExlbmd0aDogbnVtYmVyKSB7XHJcbiAgICB0aGlzLnNldE1heExlbmd0aChtYXhMZW5ndGgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBtYXhMZW5ndGgoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiBub3ROaWxsKHRoaXMuZm9yY2VkTWF4TGVuZ3RoKSA/IHRoaXMuZm9yY2VkTWF4TGVuZ3RoIDogdGhpcy5fbWF4TGVuZ3RoO1xyXG4gIH1cclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgZm9yY2VkTWF4TGVuZ3RoOiBudW1iZXI7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNldCByZWFkb25seShyZWFkb25seTogYm9vbGVhbikge1xyXG4gICAgaWYgKHRoaXMuX2ZvcmNlUmVhZG9ubHkgIT09IHVuZGVmaW5lZCB8fCByZWFkb25seSA9PT0gdGhpcy5fcmVhZG9ubHkpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5fcmVhZG9ubHkgPSBJbnB1dEJvb2xlYW5EZWNvcmF0b3IuSW5wdXRWYWx1ZVRvQm9vbGVhbihyZWFkb25seSk7XHJcbiAgICB0aGlzLl91cGRhdGVDb250cm9sVmFsaWRhdG9yc0FuZE93bkZsYWdzKCk7XHJcbiAgICBpZiAodGhpcy5faGFzT25QdXNoQ2RTdHJhdGVneSkge1xyXG4gICAgICB0aGlzLmRldGVjdENoYW5nZXMoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgcmVhZG9ubHkoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5mb3JjZVJlYWRvbmx5IHx8IHRoaXMuX3JlYWRvbmx5O1xyXG4gIH1cclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2V0IGZvcmNlUmVhZG9ubHkoZm9yY2VSZWFkb25seTogYm9vbGVhbikge1xyXG4gICAgaWYgKGZvcmNlUmVhZG9ubHkgPT09IHRoaXMuX2ZvcmNlUmVhZG9ubHkpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5fZm9yY2VSZWFkb25seSA9IElucHV0Qm9vbGVhbkRlY29yYXRvci5JbnB1dFZhbHVlVG9Cb29sZWFuKGZvcmNlUmVhZG9ubHkpO1xyXG4gICAgdGhpcy5fdXBkYXRlQ29udHJvbFZhbGlkYXRvcnNBbmRPd25GbGFncygpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBmb3JjZVJlYWRvbmx5KCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2ZvcmNlUmVhZG9ubHk7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzZXQgcmVxdWlyZWQocmVxdWlyZWQ6IGJvb2xlYW4pIHtcclxuICAgIGlmIChyZXF1aXJlZCA9PT0gdGhpcy5fcmVxdWlyZWQpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5fcmVxdWlyZWQgPSBJbnB1dEJvb2xlYW5EZWNvcmF0b3IuSW5wdXRWYWx1ZVRvQm9vbGVhbihyZXF1aXJlZCk7XHJcbiAgICB0aGlzLl91cGRhdGVDb250cm9sVmFsaWRhdG9yc0FuZE93bkZsYWdzKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IHJlcXVpcmVkKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuZm9yY2VSZXF1aXJlZCB8fCB0aGlzLl9yZXF1aXJlZDtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpIEBJbnB1dEJvb2xlYW4oKVxyXG4gIHB1YmxpYyBmb3JjZVJlcXVpcmVkOiBib29sZWFuID0gZmFsc2U7ICAvLyBhIGZvcmNlIG91dHNpZGUgb2YgW2NmZ05hbWVdJ3MgaW5mbHVlbmNlXHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNldCB2YWxpZGF0b3JzKHZhbGlkYXRvcnM6IFZhbGlkYXRvckZuW10pIHtcclxuICAgIGlmICh2YWxpZGF0b3JzID09PSB0aGlzLl92YWxpZGF0b3JzKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMuX3ZhbGlkYXRvcnMgPSB2YWxpZGF0b3JzO1xyXG4gICAgdGhpcy5fdXBkYXRlQ29udHJvbFZhbGlkYXRvcnNBbmRPd25GbGFncygpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCB2YWxpZGF0b3JzKCk6IFZhbGlkYXRvckZuW10ge1xyXG4gICAgcmV0dXJuIHRoaXMuX3ZhbGlkYXRvcnM7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzZXQgYXN5bmNWYWxpZGF0b3JzKHZhbGlkYXRvcnM6IEFzeW5jVmFsaWRhdG9yRm5bXSkge1xyXG4gICAgdGhpcy5fYXN5bmNWYWxpZGF0b3JzID0gdmFsaWRhdG9ycztcclxuICAgIHRoaXMuX3VwZGF0ZUNvbnRyb2xWYWxpZGF0b3JzQW5kT3duRmxhZ3MoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgYXN5bmNWYWxpZGF0b3JzKCk6IEFzeW5jVmFsaWRhdG9yRm5bXSB7XHJcbiAgICByZXR1cm4gdGhpcy5fYXN5bmNWYWxpZGF0b3JzO1xyXG4gIH1cclxuXHJcbiAgQElucHV0KCkgQEhvc3RCaW5kaW5nKFwiY2xhc3MuXCIgKyBCYXNlSW5wdXRDb21wb25lbnQuSGlkZGVuQ2xhc3MpXHJcbiAgcHVibGljIHNldCBoaWRkZW4oaGlkZGVuOiBib29sZWFuKSB7XHJcbiAgICBpZiAoaGlkZGVuID09PSB0aGlzLl9oaWRkZW4pIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuX2hpZGRlbiA9IGhpZGRlbjtcclxuXHJcbiAgICB0aGlzLl9hZGRPclJlbW92ZVNlbGZGcm9tRm9ybSgpO1xyXG5cclxuICAgIGlmICghdGhpcy5fZGVzdHJveWVkKSB7XHJcbiAgICAgIGlmIChoaWRkZW4pIHtcclxuICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yLmRldGFjaCgpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IucmVhdHRhY2goKTtcclxuICAgICAgICBpZiAodGhpcy5faGFzT25QdXNoQ2RTdHJhdGVneSkge1xyXG4gICAgICAgICAgdGhpcy5kZXRlY3RDaGFuZ2VzQWZ0ZXJBbmd1bGFyKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5oaWRkZW5DaGFuZ2UuZW1pdChoaWRkZW4pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBoaWRkZW4oKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5faGlkZGVuO1xyXG4gIH1cclxuXHJcbiAgLy8gbm8gY3VzdG9tIHNldHRlciBsb2dpYyBhcyB3aXRoIHRoZSBvdGhlciAnc2NyZWVuIGNvbmZpZyBwcm9wcycsIGJlY2F1c2UgY29uY3JldGUgZm9ybSBpbnB1dCBjb21wb25lbnRzIGhhbmRsZSB0aGlzIHRoZW1zZWx2ZXMuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2V0IGRlY2ltYWxzKHZhbHVlOiBudW1iZXIpIHtcclxuICAgIHRoaXMuX2RlY2ltYWxzID0gdmFsdWU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGRlY2ltYWxzKCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy5fZGVjaW1hbHM7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBpY29uOiBDb3JlQ29tcG9uZW50c0ljb247XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGN1c3RvbUNzc0NsYXNzOiBzdHJpbmc7XHJcblxyXG4gIC8vIEdvYWw6IGFiaWxpdHkgdG8gZW11bGF0ZSB0aGUgcmVkIGJhY2tncm91bmQgb2YgaW5wdXQgZmllbGRzIChmb3JtLXN1Ym1pdHRlZCBpbnZhbGlkIHN0YXRlKVxyXG4gIEBJbnB1dCgpIEBIb3N0QmluZGluZyhcImNsYXNzLmNjLXJlZC1lcnJvci1iYWNrZ3JvdW5kXCIpXHJcbiAgcHVibGljIHJlZEVycm9yQmFja2dyb3VuZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHNldCBteUZvcm1JbnB1dEluc3RhbmNlKHZhbHVlOiBCYXNlSW5wdXRDb21wb25lbnQ8VD4pIHtcclxuICAgIGlmICh2YWx1ZSA9PT0gdGhpcy5fbXlGb3JtSW5wdXRJbnN0YW5jZSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLl9teUZvcm1JbnB1dEluc3RhbmNlID0gdmFsdWU7XHJcbiAgICB0aGlzLl91cGRhdGVDb250cm9sVmFsaWRhdG9yc0FuZE93bkZsYWdzKCk7XHJcbiAgfVxyXG5cclxuICBnZXQgbXlGb3JtSW5wdXRJbnN0YW5jZSgpOiBCYXNlSW5wdXRDb21wb25lbnQ8VD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX215Rm9ybUlucHV0SW5zdGFuY2U7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBjb21taXRPbkJsdXI6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICAvLyBAT3V0cHV0KClcclxuICAvLyBwdWJsaWMgY29tbWl0OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBwdWJsaWMgcmVhZG9ubHkgbmF0aXZlQmx1cjogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyByZWFkb25seSBibHVyOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgLy8gZW1pdHMgd2hlbiB0aGUgZW50ZXIgYnV0dG9uIG9uIGtleWJvYXJkIHdhcyBwcmVzc2VkIHdoaWxlIHRoaXMgZm9ybSBpbnB1dCBoYWQgZm9jdXNzZWRcclxuICBAT3V0cHV0KClcclxuICBwdWJsaWMgcmVhZG9ubHkgZW50ZXI6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBwdWJsaWMgcmVhZG9ubHkgZm9jdXM6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBwdWJsaWMgcmVhZG9ubHkga2V5RG93bjogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyByZWFkb25seSBrZXlVcDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyByZWFkb25seSBtb2RlbENoYW5nZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgcHVibGljIHJlYWRvbmx5IHVzZXJNb2RlbENoYW5nZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgcHVibGljIHJlYWRvbmx5IGhpZGRlbkNoYW5nZTogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xyXG5cclxuICBASG9zdEJpbmRpbmcoXCJjbGFzcy5jYy1pbnB1dC1mb2N1c2VkXCIpXHJcbiAgcHVibGljIGZvY3VzZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgcHVibGljIGZvcm1Db21wb25lbnQ6IEZvcm1Db21wb25lbnQ7XHJcblxyXG4gIEBIb3N0QmluZGluZyhcImNsYXNzLmZvcm0taW5wdXRcIilcclxuICBwdWJsaWMgZm9ybUlucHV0OiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgQElucHV0KCkgQElucHV0Qm9vbGVhbigpIEBIb3N0QmluZGluZyhcImNsYXNzLmN1c3RvbS13aWR0aFwiKVxyXG4gIHB1YmxpYyBjdXN0b21XaWR0aDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKSBASW5wdXRCb29sZWFuKCkgQEhvc3RCaW5kaW5nKCdjbGFzcy5jdXN0b20taGVpZ2h0JylcclxuICBwdWJsaWMgY3VzdG9tSGVpZ2h0OiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpIEBJbnB1dEJvb2xlYW4oKVxyXG4gIHB1YmxpYyBub1RyaWFuZ2xlR3JhcGhpYzogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKSBASW5wdXRCb29sZWFuKClcclxuICBwdWJsaWMga2VlcEZvY3Vzc2VkOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpIEBJbnB1dEJvb2xlYW4oKSBASG9zdEJpbmRpbmcoXCJjbGFzcy5oYWxmLXdpZHRoXCIpXHJcbiAgcHVibGljIGhhbGZXaWR0aDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKSBASW5wdXRCb29sZWFuKCkgQEhvc3RCaW5kaW5nKFwiY2xhc3MuZnVsbC13aWR0aC1pbXBvcnRhbnRcIilcclxuICBwdWJsaWMgZnVsbFdpZHRoOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpIEBJbnB1dEJvb2xlYW4oKVxyXG4gIHB1YmxpYyBleGNsdWRlVXNlck1vZGVsQ2hhbmdlOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpIEBJbnB1dEJvb2xlYW4oKVxyXG4gIHB1YmxpYyBub0Zvcm1Hcm91cENvbnRyb2w6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQEhvc3RCaW5kaW5nKFwiY2xhc3MuZm9ybS1zdWJtaXR0ZWRcIilcclxuICBwdWJsaWMgZ2V0IGZvcm1TdWJtaXR0ZWQoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5mb3JtQ29tcG9uZW50ICYmIHRoaXMuZm9ybUNvbXBvbmVudC5zdWJtaXR0ZWQ7XHJcbiAgfVxyXG5cclxuICBASG9zdEJpbmRpbmcoXCJjbGFzcy5oYXNub2xhYmVsXCIpXHJcbiAgcHVibGljIGdldCBoYXNOb0xhYmVsKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIGlzTmlsbCh0aGlzLmxhYmVsKTtcclxuICB9XHJcblxyXG4gIEBIb3N0QmluZGluZyhcImNsYXNzLmhhc3ZhbHVlXCIpXHJcbiAgcHVibGljIGdldCBoYXNWYWx1ZSgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiAoIUFycmF5LmlzQXJyYXkodGhpcy5tb2RlbCkgJiYgISF0aGlzLm1vZGVsIHx8IFN0cmluZ1V0aWxzLklzU3RyaW5nV2l0aExlbmd0aCh0aGlzLm1vZGVsKSB8fCBOdW1iZXJVdGlscy5Jc051bWJlcih0aGlzLm1vZGVsKSkgfHxcclxuICAgICAgICAoQXJyYXkuaXNBcnJheSh0aGlzLm1vZGVsKSAmJiB0aGlzLm1vZGVsLmxlbmd0aCA+IDApO1xyXG4gIH1cclxuXHJcbiAgQEhvc3RCaW5kaW5nKFwiY2xhc3MuaW52YWxpZFwiKVxyXG4gIHB1YmxpYyBnZXQgaW52YWxpZCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLl9jaGVja1N0YXRlKCkgJiYgIXRoaXMuY29udHJvbC52YWxpZDtcclxuICB9XHJcblxyXG4gIEBIb3N0QmluZGluZyhcImNsYXNzLmRpc2FibGVkXCIpXHJcbiAgcHVibGljIGdldCBpc0Rpc2FibGVkKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2Rpc2FibGVkO1xyXG4gIH1cclxuXHJcbiAgQEhvc3RCaW5kaW5nKFwiY2xhc3MucmVhZC1vbmx5XCIpXHJcbiAgcHVibGljIGdldCBpc1JlYWRvbmx5KCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMucmVhZG9ubHk7XHJcbiAgfVxyXG5cclxuICBASG9zdEJpbmRpbmcoXCJjbGFzcy5yZXF1aXJlZFwiKVxyXG4gIHB1YmxpYyBnZXQgaXNSZXF1aXJlZCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLnJlcXVpcmVkO1xyXG4gIH1cclxuXHJcbiAgQEhvc3RCaW5kaW5nKFwiY2xhc3MuY2MtdG91Y2hlZC1pbnZhbGlkXCIpXHJcbiAgcHVibGljIGdldCB0b3VjaGVkSW52YWxpZCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLl9jb250cm9sRXhpc3RzKCkgJiYgdGhpcy5jb250cm9sLnRvdWNoZWQgJiYgIXRoaXMuY29udHJvbC52YWxpZDtcclxuICB9XHJcblxyXG4gIEBIb3N0QmluZGluZyhcImNsYXNzLnZhbGlkXCIpXHJcbiAgcHVibGljIGdldCB2YWxpZCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLl9jaGVja1N0YXRlKCkgJiYgdGhpcy5jb250cm9sLnZhbGlkO1xyXG4gIH1cclxuXHJcbiAgQEhvc3RCaW5kaW5nKFwiY2xhc3Mubm8tdmFsaWRhdGlvblwiKVxyXG4gIHB1YmxpYyBnZXQgdmFsaWRhdGlvbkRpc2FibGVkKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMucmVhZG9ubHkgfHwgdGhpcy5kaXNhYmxlZCB8fCB0aGlzLm5vVmFsaWRhdGlvbjtcclxuICB9XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoXCJjbGlja1wiLCBbXCIkZXZlbnRcIl0pXHJcbiAgb25DbGljayhldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuY2FuQ2hhbmdlICYmICF0aGlzLm5vQ2xpY2tGb2N1cykge1xyXG4gICAgICB0aGlzLnJlcXVlc3RGb2N1cygpO1xyXG4gICAgICBpZiAoIXRoaXMuZXhjbHVkZVVzZXJNb2RlbENoYW5nZSkge1xyXG4gICAgICAgIHRoaXMubWFya0FzVXNlclRvdWNoZWQoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQEhvc3RMaXN0ZW5lcihcImZvY3VzaW5cIilcclxuICBvbkZvY3VzSW4oKTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMuZXhjbHVkZVVzZXJNb2RlbENoYW5nZSkge1xyXG4gICAgICB0aGlzLm1hcmtBc1VzZXJUb3VjaGVkKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyBASG9zdExpc3RlbmVyKFwiZG9jdW1lbnQ6c2Nyb2xsXCIpXHJcbiAgLy8gcHVibGljIGhhbmRsZURvY3VtZW50U2Nyb2xsKCk6IHZvaWQge1xyXG4gIC8vICAgdGhpcy5fcG9zaXRpb25WYWxpZGF0aW9uRXJyb3IoKTtcclxuICAvLyB9XHJcblxyXG4gIC8vIEBIb3N0TGlzdGVuZXIoXCJ3aW5kb3c6cmVzaXplXCIpXHJcbiAgLy8gcHVibGljIGhhbmRsZVdpbmRvd1Jlc2l6ZSgpOiB2b2lkIHtcclxuICAvLyAgIHRoaXMuX3Bvc2l0aW9uVmFsaWRhdGlvbkVycm9yKCk7XHJcbiAgLy8gfVxyXG5cclxuICBASG9zdExpc3RlbmVyKFwia2V5ZG93blwiLCBbXCIkZXZlbnRcIl0pXHJcbiAgcHVibGljIGhhbmRsZUtleURvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcclxuICAgIHRoaXMua2V5RG93bi5uZXh0KGV2ZW50KTtcclxuICAgIGlmICh0aGlzLnNob3dTYXZlQ2FuY2VsICYmIHRoaXMuY2FuU2F2ZU9yQ2FuY2VsKSB7XHJcbiAgICAgIHRoaXMuX2hhbmRsZUtleURvd24oZXZlbnQpO1xyXG4gICAgfVxyXG4gICAgLy8gdGhpcy5fcG9zaXRpb25WYWxpZGF0aW9uRXJyb3IoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgY2FuQ2hhbmdlKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuICF0aGlzLnJlYWRvbmx5ICYmICF0aGlzLmRpc2FibGVkO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBjb250cm9sKCk6IEZvcm1Db250cm9sIHtcclxuICAgIHJldHVybiB0aGlzLl9teUZvcm1JbnB1dEluc3RhbmNlID8gdGhpcy5fbXlGb3JtSW5wdXRJbnN0YW5jZS5jb250cm9sIDogdGhpcy5uZ01vZGVsICYmIHRoaXMubmdNb2RlbC5jb250cm9sO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBmb3JtSW5wdXRJbnN0YW5jZSgpOiBCYXNlSW5wdXRDb21wb25lbnQ8VD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX215Rm9ybUlucHV0SW5zdGFuY2UgfHwgdGhpcztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgaXNEZXN0cm95ZWQoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5fZGVzdHJveWVkO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGlucHV0OiBIVE1MSW5wdXRFbGVtZW50IHwgSFRNTFRleHRBcmVhRWxlbWVudDtcclxuXHJcbiAgcHVibGljIGtlZXBGb2N1czogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBwdWJsaWMgc2V0IGNhblNhdmVPckNhbmNlbCh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgdGhpcy5fY2FuU2F2ZU9yQ2FuY2VsID0gdmFsdWU7XHJcbiAgICBpZiAodGhpcy5zaG93U2F2ZUNhbmNlbCAmJiB0aGlzLmZvY3VzZWQgJiYgdGhpcy5fY2FuU2F2ZU9yQ2FuY2VsKSB7XHJcbiAgICAgIGlmICghdGhpcy5fY29tbWl0QnV0dG9uc0NvbXBvbmVudFJlZikge1xyXG4gICAgICAgIHRoaXMuX2NvbW1pdEJ1dHRvbnNDb21wb25lbnRSZWYgPSB0aGlzLm92ZXJsYXlTZXJ2aWNlLmNyZWF0ZUNvbXBvbmVudChDb21taXRCdXR0b25zQ29tcG9uZW50LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgcGFyZW50Rm9yT3ZlcmxheTogdGhpcy5lbGVtZW50UmVmLFxyXG4gICAgICAgICAgICAgIGNvbW1pdHRpbmc6IGZhbHNlLFxyXG4gICAgICAgICAgICAgIGNvbW1pdEZpbmlzaGVkOiBmYWxzZVxyXG4gICAgICAgICAgICB9LCB7XHJcbiAgICAgICAgICAgICAgY29tbWl0Q2xpY2s6IChldmVudCkgPT4gdGhpcy5faGFuZGxlQ29tbWl0KGV2ZW50KSxcclxuICAgICAgICAgICAgICBjYW5jZWxDbGljazogKGV2ZW50KSA9PiB0aGlzLmNhbmNlbENsaWNrKGV2ZW50KVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5vdmVybGF5U2VydmljZS5yZW1vdmVDb21wb25lbnQodGhpcy5fY29tbWl0QnV0dG9uc0NvbXBvbmVudFJlZik7XHJcbiAgICAgIHRoaXMuX2NvbW1pdEJ1dHRvbnNDb21wb25lbnRSZWYgPSB1bmRlZmluZWQ7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGNhblNhdmVPckNhbmNlbCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLl9jYW5TYXZlT3JDYW5jZWw7XHJcbiAgfVxyXG5cclxuICAvLyBAaW1wbGVtZW50cyBDb25maWd1cmF0aW9uQWRhcHRlckNvbXBvbmVudFxyXG4gIHB1YmxpYyBvYmplY3RDb25maWdOYW1lOiBzdHJpbmc7XHJcbiAgcHVibGljIHZhbGlkYXRpb25FcnJvcjogc3RyaW5nID0gXCJcIjtcclxuXHJcbiAgcHJvdGVjdGVkIF9tYXJrZWRBc1VzZXJUb3VjaGVkOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIHByb3RlY3RlZCBfZGVzdHJveWVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHJvdGVjdGVkIF9oYXNPblB1c2hDZFN0cmF0ZWd5OiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHJvdGVjdGVkIF9tb2RlbDogVDtcclxuICBwcm90ZWN0ZWQgX21vZGVsRGlydHlGb3JDb21taXQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwcm90ZWN0ZWQgX2luaXRpYWxNb2RlbDogVDtcclxuICBwcm90ZWN0ZWQgX2luaXRpYWxNb2RlbFNldDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBwcml2YXRlIF9teUZvcm1JbnB1dEluc3RhbmNlOiBCYXNlSW5wdXRDb21wb25lbnQ8VD47XHJcbiAgcHJpdmF0ZSBfZXJyb3JWYWxpZGF0aW9uQ29tcG9uZW50OiBDb21wb25lbnRSZWY8VmFsaWRhdGlvbkVycm9yQ29tcG9uZW50PjtcclxuICBwcml2YXRlIF9kZWNpbWFsczogbnVtYmVyO1xyXG4gIHByaXZhdGUgX2hpZGRlbjogYm9vbGVhbjtcclxuICBwcml2YXRlIF9kaXNhYmxlZDogYm9vbGVhbjtcclxuICBwcml2YXRlIF9tYXhMZW5ndGg6IG51bWJlcjtcclxuICBwcml2YXRlIF9yZWFkb25seTogYm9vbGVhbjtcclxuICBwcml2YXRlIF9yZXF1aXJlZDogYm9vbGVhbjtcclxuXHJcbiAgcHJpdmF0ZSBfZm9yY2VSZWFkb25seTogYm9vbGVhbiA9IHVuZGVmaW5lZDtcclxuXHJcbiAgcHJpdmF0ZSBfdmFsaWRhdG9yczogVmFsaWRhdG9yRm5bXSA9IFtdO1xyXG4gIHByaXZhdGUgX2FzeW5jVmFsaWRhdG9yczogQXN5bmNWYWxpZGF0b3JGbltdID0gW107XHJcblxyXG4gIHByaXZhdGUgX3NwZWVjaFN1YjogU3Vic2NyaXB0aW9uO1xyXG4gIHByaXZhdGUgX21vZGVsQ2hhbmdlU3ViOiBTdWJzY3JpcHRpb247XHJcbiAgcHJpdmF0ZSBfZm9ybUFueVN1Ym1pdFN1YjogU3Vic2NyaXB0aW9uO1xyXG4gIHByaXZhdGUgX2Zvcm1SZWFkb25seUNoYW5nZVN1YjogU3Vic2NyaXB0aW9uO1xyXG4gIHByaXZhdGUgX2NsZWFyTWFya2VkQXNVc2VyVG91Y2hlZFN1YjogU3Vic2NyaXB0aW9uO1xyXG4gIHByaXZhdGUgX2NhblNhdmVPckNhbmNlbDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBwcml2YXRlIF9jb21taXRCdXR0b25zQ29tcG9uZW50UmVmOiBDb21wb25lbnRSZWY8YW55PjtcclxuICBwcml2YXRlIF92YWxpZGF0aW9uQ29tcG9uZW50UmVmOiBDb21wb25lbnRSZWY8YW55PjtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcm90ZWN0ZWQgY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgcHJvdGVjdGVkIGNvbXBvbmVudEZhY3RvcnlSZXNvbHZlcjogQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxyXG4gICAgcHJvdGVjdGVkIG92ZXJsYXlTZXJ2aWNlOiBPdmVybGF5U2VydmljZSxcclxuICAgIEBPcHRpb25hbCgpIHByb3RlY3RlZCBmb3JtVXNlckNoYW5nZUxpc3RlbmVyPzogRm9ybUlucHV0VXNlck1vZGVsQ2hhbmdlTGlzdGVuZXJTZXJ2aWNlLFxyXG4gICAgQE9wdGlvbmFsKCkgcHJvdGVjdGVkIG5nWm9uZVdyYXBwZXI/OiBOZ1pvbmVXcmFwcGVyU2VydmljZSxcclxuICAgIEBPcHRpb25hbCgpIHB1YmxpYyBlbGVtZW50UmVmPzogRWxlbWVudFJlZixcclxuICApIHtcclxuICAgIEJhc2VJbnB1dENvbXBvbmVudC5CYXNlRm9ybUlucHV0Q29tcG9uZW50SW5kZXgrKztcclxuICAgIHRoaXMubmFtZSA9IEJhc2VJbnB1dENvbXBvbmVudC5CYXNlRm9ybUlucHV0Q29tcG9uZW50SW5kZXgudG9TdHJpbmcoKTtcclxuXHJcbiAgICBpZiAodGhpcy5mb3JtVXNlckNoYW5nZUxpc3RlbmVyKSB7XHJcbiAgICAgIHRoaXMuX2NsZWFyTWFya2VkQXNVc2VyVG91Y2hlZFN1YiA9IHRoaXMuZm9ybVVzZXJDaGFuZ2VMaXN0ZW5lci5jbGVhckFsbE1hcmtlZEFzVXNlclRvdWNoZWQuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICB0aGlzLl9tYXJrZWRBc1VzZXJUb3VjaGVkID0gZmFsc2U7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLl9tb2RlbENoYW5nZVN1YiA9IHRoaXMubW9kZWxDaGFuZ2Uuc3Vic2NyaWJlKCh2YWw6IGFueSkgPT4ge1xyXG4gICAgICB0aGlzLm1vZGVsID0gdmFsO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLl9wcmVwYXJlSW5wdXQoKTtcclxuXHJcbiAgICB0aGlzLl91cGRhdGVDb250cm9sVmFsaWRhdG9yc0FuZE93bkZsYWdzKCk7XHJcblxyXG4gICAgdGhpcy5fYWRkT3JSZW1vdmVTZWxmRnJvbUZvcm0oKTtcclxuXHJcbiAgICBpZiAodGhpcy5mb3JtQ29tcG9uZW50KSB7XHJcbiAgICAgIHRoaXMucmVhZG9ubHkgPSB0aGlzLnJlYWRvbmx5IHx8IHRoaXMuZm9ybUNvbXBvbmVudC5yZWFkb25seTtcclxuICAgICAgdGhpcy5fZm9ybVJlYWRvbmx5Q2hhbmdlU3ViID0gdGhpcy5mb3JtQ29tcG9uZW50LnJlYWRvbmx5Q2hhbmdlLnN1YnNjcmliZSgoaXNGb3JtUmVhZG9ubHk6IGJvb2xlYW4pID0+IHtcclxuICAgICAgICB0aGlzLnJlYWRvbmx5ID0gaXNGb3JtUmVhZG9ubHk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLmluaXRGb2N1cykge1xyXG4gICAgICBzZXRUaW1lb3V0KHRoaXMucmVxdWVzdEZvY3VzLmJpbmQodGhpcykpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLl9yZW1vdmVTZWxmRnJvbUZvcm0oKTtcclxuXHJcbiAgICBpZiAodGhpcy5pbnB1dCkge1xyXG4gICAgICB0aGlzLmlucHV0LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2JsdXInLCAoZXZlbnQpID0+IHRoaXMuZG9CbHVyKGV2ZW50KSk7XHJcbiAgICAgIHRoaXMuaW5wdXQucmVtb3ZlRXZlbnRMaXN0ZW5lcignZm9jdXMnLCAoZXZlbnQpID0+IHRoaXMuZG9Gb2N1cyhldmVudCkpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuX2Rlc3Ryb3llZCA9IHRydWU7XHJcbiAgICB0aGlzLl9jbGVhckVycm9yQ29tcG9uZW50KCk7XHJcblxyXG4gICAgLy8gaWYgKHRoaXMudG9vbHRpcE1hbmFnZXIgJiYgdGhpcy5lbGVtZW50UmVmKSB7XHJcbiAgICAvLyAgICAgdGhpcy50b29sdGlwTWFuYWdlci5kZXN0cm95RXJyb3JUb29sdGlwT2ZFbGVtZW50KHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KTtcclxuICAgIC8vIH1cclxuXHJcbiAgICBpZiAodGhpcy5fbW9kZWxDaGFuZ2VTdWIpIHtcclxuICAgICAgdGhpcy5fbW9kZWxDaGFuZ2VTdWIudW5zdWJzY3JpYmUoKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLl9zcGVlY2hTdWIpIHtcclxuICAgICAgdGhpcy5fc3BlZWNoU3ViLnVuc3Vic2NyaWJlKCk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5fZm9ybUFueVN1Ym1pdFN1Yikge1xyXG4gICAgICB0aGlzLl9mb3JtQW55U3VibWl0U3ViLnVuc3Vic2NyaWJlKCk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5fZm9ybVJlYWRvbmx5Q2hhbmdlU3ViKSB7XHJcbiAgICAgIHRoaXMuX2Zvcm1SZWFkb25seUNoYW5nZVN1Yi51bnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuX2NsZWFyTWFya2VkQXNVc2VyVG91Y2hlZFN1Yikge1xyXG4gICAgICB0aGlzLl9jbGVhck1hcmtlZEFzVXNlclRvdWNoZWRTdWIudW5zdWJzY3JpYmUoKTtcclxuICAgIH1cclxuICAgIC8vIHRoaXMuX3JlbW92ZVNlbGZGcm9tRm9ybSgpO1xyXG4gICAgdGhpcy5lbGVtZW50UmVmID0gdW5kZWZpbmVkO1xyXG4gICAgdGhpcy5jaGFuZ2VEZXRlY3RvciA9IHVuZGVmaW5lZDtcclxuICAgIHRoaXMuaW5wdXQgPSB1bmRlZmluZWQ7XHJcbiAgfVxyXG5cclxuICAvLyBkZXNjZW5kZW50cyBzaG91bGQgb3ZlcnJpZGUgdGhpc1xyXG4gIHB1YmxpYyBjb21taXQgPSBhc3luYyAobW9kZWw6IGFueSk6IFByb21pc2U8Ym9vbGVhbj4gPT4ge1xyXG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh0cnVlKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjYW5jZWxDbGljayhldmVudD86IE1vdXNlRXZlbnQpOiB2b2lkIHtcclxuICAgIHRoaXMua2VlcEZvY3VzID0gdHJ1ZTtcclxuICAgIGlmICh0aGlzLl9pbml0aWFsTW9kZWxTZXQpIHtcclxuICAgICAgdGhpcy5tb2RlbCA9IHRoaXMuX2luaXRpYWxNb2RlbDtcclxuICAgIH1cclxuICAgIHRoaXMua2VlcEZvY3VzID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2hvd1ZhbGlkYXRpb25FcnJvcihlcnJvcjogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLnZhbGlkYXRpb25FcnJvciA9IGVycm9yO1xyXG4gICAgdGhpcy5fdmFsaWRhdGlvbkNvbXBvbmVudFJlZiA9IHRoaXMub3ZlcmxheVNlcnZpY2UuY3JlYXRlQ29tcG9uZW50KFZhbGlkYXRpb25FcnJvckNvbXBvbmVudCwge3BhcmVudEZvck92ZXJsYXk6IHRoaXMuZWxlbWVudFJlZiwgZXJyb3I6IGVycm9yfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBFbWl0cyBhIG1vZGVsQ2hhbmdlIGV2ZW50IHdpdGggZ2l2ZW4gdmFsdWUsIGluZGljYXRpbmcgdGhhdCB0aGUgbW9kZWwgb2YgdGhpcyBmb3JtIGlucHV0XHJcbiAgICogaGFzIGNoYW5nZWQgYW5kIGl0cyBuZXcgdmFsdWUgaXMgZ2l2ZW4gdmFsdWUuIEFsc28gZW1pdHMgdXNlck1vZGVsQ2hhbmdlIGlmIG1hcmtlZEFzVXNlclRvdWNoZWQuXHJcbiAgICovXHJcbiAgcHVibGljIHNldE1vZGVsKHZhbHVlOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMubW9kZWwgPSB2YWx1ZTtcclxuICAgIHRoaXMubW9kZWxDaGFuZ2UuZW1pdCh2YWx1ZSk7XHJcblxyXG4gICAgaWYgKHRoaXMuY29udHJvbCkge1xyXG4gICAgICB0aGlzLmNvbnRyb2wubWFya0FzRGlydHkoe29ubHlTZWxmOiB0cnVlfSk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5mb3JtQ29tcG9uZW50KSB7XHJcbiAgICAgIHRoaXMuZm9ybUNvbXBvbmVudC5mb3JtR3JvdXAubWFya0FzRGlydHkoe29ubHlTZWxmOiB0cnVlfSk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuX21hcmtlZEFzVXNlclRvdWNoZWQgJiYgdGhpcy5mb3JtVXNlckNoYW5nZUxpc3RlbmVyKSB7XHJcbiAgICAgIHRoaXMuZm9ybVVzZXJDaGFuZ2VMaXN0ZW5lci51c2VyTW9kZWxDaGFuZ2UubmV4dCh2YWx1ZSk7XHJcbiAgICAgIHRoaXMudXNlck1vZGVsQ2hhbmdlLm5leHQodmFsdWUpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLl9oYXNPblB1c2hDZFN0cmF0ZWd5KSB7XHJcbiAgICAgIHRoaXMuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIHJlcXVlc3RGb2N1cygpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmNhbkNoYW5nZSAmJiB0aGlzLmlucHV0KSB7XHJcbiAgICAgIHRoaXMuaW5wdXQuZm9jdXMoKTtcclxuICAgICAgdGhpcy5mb2N1c2VkID0gdHJ1ZTtcclxuICAgICAgaWYgKHRoaXMuX2hhc09uUHVzaENkU3RyYXRlZ3kpIHtcclxuICAgICAgICB0aGlzLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZG9Gb2N1cyhldmVudD86IGFueSk6IGFueSB7XHJcbiAgICBpZiAodGhpcy5kaXNhYmxlZCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLl9pbml0aWFsTW9kZWxTZXQgPSBmYWxzZTtcclxuICAgIHRoaXMuZm9jdXNlZCA9IHRydWU7XHJcbiAgICB0aGlzLmNhblNhdmVPckNhbmNlbCA9IGZhbHNlO1xyXG4gICAgaWYgKHRoaXMuX2hhc09uUHVzaENkU3RyYXRlZ3kpIHtcclxuICAgICAgdGhpcy5tYXJrRm9yQ2hlY2soKTtcclxuICAgIH1cclxuICAgIHRoaXMuZm9jdXMubmV4dCgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGRvQmx1cihldmVudD86IGFueSwgaGFuZGxlQ29tbWl0OiBib29sZWFuID0gdHJ1ZSk6IFByb21pc2U8YW55PiB7XHJcbiAgICBpZiAodGhpcy5zaG93U2F2ZUNhbmNlbCAmJiBoYW5kbGVDb21taXQgJiYgdGhpcy5fbW9kZWxEaXJ0eUZvckNvbW1pdCkge1xyXG4gICAgICBhd2FpdCB0aGlzLl9oYW5kbGVDb21taXQoZXZlbnQsIGZhbHNlKTtcclxuICAgIH1cclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICBpZiAodGhpcy5rZWVwRm9jdXMgfHwgdGhpcy5rZWVwRm9jdXNzZWQpIHtcclxuICAgICAgICBpZiAoZXZlbnQpIHtcclxuICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0O1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5mb2N1c2VkID0gZmFsc2U7XHJcbiAgICAgIGlmICh0aGlzLl9oYXNPblB1c2hDZFN0cmF0ZWd5KSB7XHJcbiAgICAgICAgdGhpcy5tYXJrRm9yQ2hlY2soKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAodGhpcy5pbnB1dCkge1xyXG4gICAgICAgIHRoaXMuaW5wdXQuYmx1cigpO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuYmx1ci5uZXh0KCk7XHJcbiAgICB9LCAyMDApO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGRldGVjdENoYW5nZXMoKTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMuX2Rlc3Ryb3llZCkge1xyXG4gICAgICB0aGlzLmNoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBtYXJrRm9yQ2hlY2soKTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMuX2Rlc3Ryb3llZCkge1xyXG4gICAgICB0aGlzLmNoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGRldGVjdENoYW5nZXNBZnRlckFuZ3VsYXIoKTogdm9pZCB7XHJcbiAgICBpZiAoISF0aGlzLm5nWm9uZVdyYXBwZXIpIHtcclxuICAgICAgdGhpcy5uZ1pvbmVXcmFwcGVyLnNldFRpbWVvdXRPdXRzaWRlQW5ndWxhcigoKSA9PiB7XHJcbiAgICAgICAgaWYgKCF0aGlzLl9kZXN0cm95ZWQpIHtcclxuICAgICAgICAgIGlmICh0aGlzLl9oYXNPblB1c2hDZFN0cmF0ZWd5KSB7XHJcbiAgICAgICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogTGlua3MgdGhlIGdpdmVuIGZvcm1Db21wLnN1Ym1pdCBldmVudCB0byB0aGUgZmlyaW5nIG9mIGRldGVjdENoYW5nZXMoKSBvZiBnaXZlbiBjaGFuZ2UgZGV0ZWN0b3IuIFRoaXMgaXMgYSAndXRpbGl0eS1saWtlJyBtZXRob2QsXHJcbiAgICogYnV0IHdlIG1hbmFnZSB0aGUgYWN0dWFsIHN1YnNjcmlwdGlvbiAod2l0aCBVTlNVQlNDUklCRSgpISkgb24gdGhpcyBiYXNlIGNsYXNzLlxyXG4gICAqIEBwYXJhbSBmb3JtQ29tcCBUaGUgZm9ybSB3aG9zZSBzdWJtaXQgd2Ugd2FudCB0byBsaW5rIHdpdGggdGhlIGNhbGwgb2YgLmRldGVjdENoYW5nZXMoKSBvbiBnaXZlbiBjaGFuZ2UgZGV0ZWN0b3IgcmVmLlxyXG4gICAqIEBwYXJhbSBjaGFuZ2VEZXRlY3RvclJlZiBUaGlzIHNob3VsZCBiZSBnaXZlbiBhcyBwYXJhbS4gSSBjaG9vc2Ugbm90IHRvIG1ha2UgdGhpcyBwYXJ0IG9mIG91ciAoQmFzZUZvcm1JbnB1dENvbXBvbmVudCkgY29uc3RydWN0b3IsXHJcbiAgICogYmVjYXVzZSB3ZSBhbHJlYWR5IGhhdmUgMjEgZXh0ZW5kZXJzLlxyXG4gICAqL1xyXG4gIC8vIHB1YmxpYyBsaW5rRm9ybUFueVN1Ym1pdFdpdGhEZXRlY3RDaGFuZ2VzKGZvcm1Db21wOiBGb3JtQ29tcG9uZW50LCBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYpOiB2b2lkIHtcclxuICAvLyAgICAgaWYgKGZvcm1Db21wICYmIGNoYW5nZURldGVjdG9yUmVmKSB7XHJcbiAgLy8gICAgICAgICB0aGlzLl9mb3JtQW55U3VibWl0U3ViID0gZm9ybUNvbXAuYW55U3VibWl0LnN1YnNjcmliZSgoKCkgPT4ge1xyXG4gIC8vICAgICAgICAgICAgIGlmICghdGhpcy5fZGVzdHJveWVkKSB7XHJcbiAgLy8gICAgICAgICAgICAgICAgIGNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcclxuICAvLyAgICAgICAgICAgICB9XHJcbiAgLy8gICAgICAgICB9KSk7XHJcbiAgLy8gICAgIH1cclxuICAvLyB9XHJcblxyXG4gIHB1YmxpYyBtYXJrQXNVc2VyVG91Y2hlZCgpOiB2b2lkIHtcclxuICAgIHRoaXMuX21hcmtlZEFzVXNlclRvdWNoZWQgPSB0cnVlO1xyXG4gICAgdGhpcy5yZWRFcnJvckJhY2tncm91bmQgPSBmYWxzZTsgLy8gbm90IHN1cmUgaWYgdGhpcyBpcyB0aGUgcmlnaHQgcGxhY2UgdG8gZG8gdGhhdFxyXG4gIH1cclxuXHJcbiAgcHVibGljIGNsZWFyTWFya2VkQXNVc2VyVG91Y2hlZCgpOiB2b2lkIHtcclxuICAgIHRoaXMuX21hcmtlZEFzVXNlclRvdWNoZWQgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBtb2RlbFNldCgpOiB2b2lkIHtcclxuXHJcbiAgfVxyXG5cclxuICAvL3VzZWQgZm9yIGRlc2NlbmRlbnRzLCBiZWNhdXNlIGRlc2NlbmRlbnRzIGNhbid0IHNldCBzdXBlciBwcm9wZXJ0aWVzLCBzZWUgSW5wdXROdW1iZXJDb21wb25lbnRcclxuICBwcm90ZWN0ZWQgc2V0TWF4TGVuZ3RoKG1heExlbmd0aDogbnVtYmVyKTogdm9pZCB7XHJcbiAgICBpZiAobm90TmlsbCh0aGlzLmZvcmNlZE1heExlbmd0aCkgfHwgbWF4TGVuZ3RoID09PSB0aGlzLl9tYXhMZW5ndGgpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICghaXNOYU4obWF4TGVuZ3RoKSkge1xyXG4gICAgICB0aGlzLl9tYXhMZW5ndGggPSBtYXhMZW5ndGg7XHJcbiAgICAgIHRoaXMuX3VwZGF0ZUNvbnRyb2xWYWxpZGF0b3JzQW5kT3duRmxhZ3MoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBfbWFya0FzT25QdXNoKCk6IHZvaWQge1xyXG4gICAgdGhpcy5faGFzT25QdXNoQ2RTdHJhdGVneSA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgX2NoZWNrU3RhdGUoKTogYm9vbGVhbiB7XHJcbiAgICBpZiAodGhpcy5uZ01vZGVsKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmZvcm1TdWJtaXR0ZWQgfHwgKHRoaXMuX2NvbnRyb2xFeGlzdHMoKSAmJiB0aGlzLmNvbnRyb2wudG91Y2hlZCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyBQbGFjZSB2YWxpZGF0b3JzIG9udG8gb3VyIEFuZ3VsYXIncyBGb3JtQ29udHJvbC5cclxuICBwcm90ZWN0ZWQgX3VwZGF0ZUNvbnRyb2xWYWxpZGF0b3JzQW5kT3duRmxhZ3MoKTogdm9pZCB7XHJcbiAgICBjb25zdCBlcjogRWxlbWVudFJlZiA9IHRoaXMubXlGb3JtSW5wdXRJbnN0YW5jZSA/IHRoaXMubXlGb3JtSW5wdXRJbnN0YW5jZS5lbGVtZW50UmVmIDogdGhpcy5lbGVtZW50UmVmO1xyXG4gICAgLy8gaWYgKHRoaXMudG9vbHRpcE1hbmFnZXIgJiYgZXIpIHtcclxuICAgIC8vICAgICB0aGlzLnRvb2x0aXBNYW5hZ2VyLmRlc3Ryb3lFcnJvclRvb2x0aXBPZkVsZW1lbnQoZXIubmF0aXZlRWxlbWVudCk7XHJcbiAgICAvLyB9XHJcbiAgICB0aGlzLl9zZXROYXRpdmVSZXF1aXJlZCh0aGlzLnJlcXVpcmVkKTtcclxuICAgIHRoaXMuX3NldE5hdGl2ZU1heExlbmd0aCh0aGlzLm1heExlbmd0aCk7XHJcbiAgICB0aGlzLl9zZXROYXRpdmVEaXNhYmxlZCh0aGlzLmRpc2FibGVkKTtcclxuICAgIHRoaXMuX3NldE5hdGl2ZVJlYWRPbmx5KHRoaXMucmVhZG9ubHkgfHwgdGhpcy5mb3JjZVJlYWRvbmx5KTtcclxuXHJcbiAgICB0aGlzLnJlZEVycm9yQmFja2dyb3VuZCA9IGZhbHNlO1xyXG4gICAgaWYgKHRoaXMuX2NvbnRyb2xFeGlzdHMoKSkge1xyXG4gICAgICBjb25zdCB2YWxpZGF0b3JzOiBWYWxpZGF0b3JGbltdID0gW107XHJcblxyXG4gICAgICAvLyBhZGQgcmVxdWlyZWRcclxuICAgICAgaWYgKHRoaXMucmVxdWlyZWQpIHtcclxuICAgICAgICB2YWxpZGF0b3JzLnB1c2gocmVxdWlyZWRWYWxpZGF0b3IpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAvLyBhZGQgbWF4bGVuZ3RoXHJcbiAgICAgIGlmIChub3ROaWxsKHRoaXMuX21heExlbmd0aCkpIHtcclxuICAgICAgICBpZiAodGhpcy5kZWNpbWFscykge1xyXG4gICAgICAgICAgdmFsaWRhdG9ycy5wdXNoKHByZWNpc2lvblNjYWxlVmFsaWRhdG9yKHRoaXMuX21heExlbmd0aCwgdGhpcy5kZWNpbWFscykpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB2YWxpZGF0b3JzLnB1c2gobWF4U3RyaW5nTGVuZ3RoVmFsaWRhdG9yKHRoaXMuX21heExlbmd0aCkpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgLy8gYWRkIEBJbnB1dCgpLWVkIHZhbGlkYXRvcnNcclxuICAgICAgdmFsaWRhdG9ycy5wdXNoKC4uLnRoaXMuX3ZhbGlkYXRvcnMpO1xyXG5cclxuICAgICAgaWYgKHRoaXMuX3ZhbGlkYXRvcnMpIHtcclxuICAgICAgICB0aGlzLl92YWxpZGF0b3JzLmZvckVhY2godmFsaWRhdG9yID0+IHtcclxuICAgICAgICAgIGlmICh2YWxpZGF0b3IgPT09IHJlcXVpcmVkVmFsaWRhdG9yKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX3JlcXVpcmVkID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5fc2V0TmF0aXZlUmVxdWlyZWQodHJ1ZSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRoaXMuY29udHJvbC5zZXRWYWxpZGF0b3JzKHZhbGlkYXRvcnMpO1xyXG4gICAgICB0aGlzLmNvbnRyb2wuc2V0QXN5bmNWYWxpZGF0b3JzKHRoaXMuX2FzeW5jVmFsaWRhdG9ycyk7XHJcbiAgICAgIHRoaXMuY29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFzeW5jIF9oYW5kbGVDb21taXQoZXZlbnQ/OiBNb3VzZUV2ZW50LCBkb0JsdXI6IGJvb2xlYW4gPSB0cnVlKTogUHJvbWlzZTxib29sZWFuPiB7XHJcbiAgICBpZiAoIXRoaXMuc2hvd1NhdmVDYW5jZWwgfHwgKCF0aGlzLl9tb2RlbERpcnR5Rm9yQ29tbWl0KSkge1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuICAgIHRoaXMua2VlcEZvY3VzID0gdHJ1ZTtcclxuICAgIGlmICh0aGlzLl9jb21taXRCdXR0b25zQ29tcG9uZW50UmVmKSB7XHJcbiAgICAgIHRoaXMuX2NvbW1pdEJ1dHRvbnNDb21wb25lbnRSZWYuaW5zdGFuY2UuY29tbWl0RmluaXNoZWQgPSBmYWxzZTtcclxuICAgICAgdGhpcy5fY29tbWl0QnV0dG9uc0NvbXBvbmVudFJlZi5pbnN0YW5jZS5jb21taXR0aW5nID0gdHJ1ZTtcclxuICAgIH1cclxuICAgIHRoaXMuX21vZGVsRGlydHlGb3JDb21taXQgPSBmYWxzZTtcclxuICAgIGNvbnN0IHN1Y2Nlc3M6IGJvb2xlYW4gPSBhd2FpdCB0aGlzLmNvbW1pdCh0aGlzLm1vZGVsKTtcclxuICAgIHRoaXMua2VlcEZvY3VzID0gZmFsc2U7XHJcbiAgICBhd2FpdCB0aGlzLl9jb21taXRGaW5pc2hlZCgpO1xyXG4gICAgaWYgKHN1Y2Nlc3MgJiYgZG9CbHVyKSB7XHJcbiAgICAgIHRoaXMuZG9CbHVyKGV2ZW50LCBmYWxzZSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gc3VjY2VzcztcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2NvbW1pdEZpbmlzaGVkKCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlOiBGdW5jdGlvbikgPT4ge1xyXG4gICAgICBpZiAodGhpcy5fY29tbWl0QnV0dG9uc0NvbXBvbmVudFJlZikge1xyXG4gICAgICAgIHRoaXMuX2NvbW1pdEJ1dHRvbnNDb21wb25lbnRSZWYuaW5zdGFuY2UuY29tbWl0RmluaXNoZWQgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuX2NvbW1pdEJ1dHRvbnNDb21wb25lbnRSZWYuaW5zdGFuY2UuY29tbWl0dGluZyA9IGZhbHNlO1xyXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgLy8gdGhpcy5fY29tbWl0QnV0dG9uc0NvbXBvbmVudFJlZi5pbnN0YW5jZS5jb21taXRGaW5pc2hlZCA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5vdmVybGF5U2VydmljZS5yZW1vdmVDb21wb25lbnQodGhpcy5fY29tbWl0QnV0dG9uc0NvbXBvbmVudFJlZik7XHJcbiAgICAgICAgICByZXNvbHZlKCk7XHJcbiAgICAgICAgfSwgODAwKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXNvbHZlKCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfY2xlYXJFcnJvckNvbXBvbmVudCgpOiB2b2lkIHtcclxuICAgIHRoaXMub3ZlcmxheVNlcnZpY2UucmVtb3ZlQ29tcG9uZW50KHRoaXMuX3ZhbGlkYXRpb25Db21wb25lbnRSZWYpO1xyXG4gIH1cclxuXHJcblxyXG4gIC8vIHdoZXRoZXIgdGhpcy5uZ01vZGVsLmNvbnRyb2wgaGFzIHNhZmUgYWNjZXNzXHJcbiAgcHJpdmF0ZSBfY29udHJvbEV4aXN0cygpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLm5nTW9kZWwgJiYgISF0aGlzLmNvbnRyb2w7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9jb250cm9sSXNWYWxpZCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLl9jb250cm9sRXhpc3RzKCkgJiYgdGhpcy5jb250cm9sLnZhbGlkO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfc2V0TmF0aXZlRGlzYWJsZWQoZGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmlucHV0KSB7XHJcbiAgICAgIHRoaXMuaW5wdXQuZGlzYWJsZWQgPSBkaXNhYmxlZDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3NldE5hdGl2ZU1heExlbmd0aChtYXhsZW5ndGg6IG51bWJlcik6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuaW5wdXQgJiYgIWlzTmFOKG1heGxlbmd0aCkpIHtcclxuICAgICAgdGhpcy5pbnB1dC5tYXhMZW5ndGggPSBtYXhsZW5ndGg7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgX3NldE5hdGl2ZVJlYWRPbmx5KHJlYWRvbmx5OiBib29sZWFuKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5pbnB1dCkge1xyXG4gICAgICB0aGlzLmlucHV0LnJlYWRPbmx5ID0gcmVhZG9ubHk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9zZXROYXRpdmVSZXF1aXJlZChyZXF1aXJlZDogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuaW5wdXQpIHtcclxuICAgICAgdGhpcy5pbnB1dC5yZXF1aXJlZCA9IHJlcXVpcmVkO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfc3Vic2NyaWJlVG9TcGVlY2hJbnB1dCgpOiB2b2lkIHtcclxuICAgIC8vIHRoaXMuX3NwZWVjaFN1YiA9IHRoaXMuc3BlZWNoSW5wdXQuc3BlZWNoSW5wdXQuc3Vic2NyaWJlKChkYXRhKSA9PiB7XHJcbiAgICAvLyAgICAgaWYgKHRoaXMuZm9jdXNlZCAmJiB0aGlzLl9jb250cm9sRXhpc3RzKCkpIHtcclxuICAgIC8vICAgICAgICAgY29uc3QgdmFsOiBzdHJpbmcgPSB0aGlzLmNvbnRyb2wudmFsdWU7XHJcbiAgICAvLyAgICAgICAgIHRoaXMuc2V0TW9kZWwoKFN0cmluZ1V0aWxzLklzU3RyaW5nKHZhbCkgPyB2YWwgOiAnJykgKyBkYXRhKTtcclxuICAgIC8vICAgICB9XHJcbiAgICAvLyB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2FkZE9yUmVtb3ZlU2VsZkZyb21Gb3JtKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuaGlkZGVuKSB7XHJcbiAgICAgIHRoaXMuX3JlbW92ZVNlbGZGcm9tRm9ybSgpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5fYWRkU2VsZlRvRm9ybSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfdXBkYXRlU2VsZkluRm9ybSgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmZvcm1Db21wb25lbnQpIHtcclxuICAgICAgdGhpcy5mb3JtQ29tcG9uZW50LnVwZGF0ZUZvcm1JbnB1dCh0aGlzKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3JlbW92ZVNlbGZGcm9tRm9ybSgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmZvcm1Db21wb25lbnQgJiYgdGhpcy5uZ01vZGVsKSB7XHJcbiAgICAgIHRoaXMuZm9ybUNvbXBvbmVudC5yZW1vdmVGb3JtSW5wdXQodGhpcyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9hZGRTZWxmVG9Gb3JtKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuZm9ybUNvbXBvbmVudCAmJiB0aGlzLm5nTW9kZWwgJiYgIXRoaXMubm9Gb3JtR3JvdXBDb250cm9sKSB7XHJcbiAgICAgIHRoaXMuZm9ybUNvbXBvbmVudC5yZW1vdmVGb3JtSW5wdXQodGhpcyk7IC8vIHByZXZlbnRpbmcgdGhlcmUgYXJlIHR3byBjb250cm9scyBpbiBmb3JtZ3JvdXAgd2hlbiBteUZvcm1JbnB1dEluc3RhbmNlIGlzIChiZWluZykgc2V0XHJcbiAgICAgIHRoaXMuZm9ybUNvbXBvbmVudC5hZGRGb3JtSW5wdXQodGhpcy5teUZvcm1JbnB1dEluc3RhbmNlID8gdGhpcy5teUZvcm1JbnB1dEluc3RhbmNlIDogdGhpcyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9wcmVwYXJlSW5wdXQoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5lbGVtZW50UmVmICYmIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KSB7XHJcbiAgICAgIC8vdHJ5IHRvIGZpbmQgaW5wdXQgZWxlbWVudFxyXG4gICAgICB0aGlzLl9maW5kSW5wdXROb2RlKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNoaWxkcmVuKTtcclxuICAgICAgaWYgKHRoaXMuaW5wdXQpIHtcclxuICAgICAgICB0aGlzLmlucHV0LmFkZEV2ZW50TGlzdGVuZXIoJ2JsdXInLCAoZXZlbnQpID0+IHRoaXMuZG9CbHVyKGV2ZW50KSk7XHJcbiAgICAgICAgdGhpcy5pbnB1dC5hZGRFdmVudExpc3RlbmVyKCdmb2N1cycsIChldmVudCkgPT4gdGhpcy5kb0ZvY3VzKGV2ZW50KSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2ZpbmRJbnB1dE5vZGUobm9kZXMpOiB2b2lkIHtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbm9kZXMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgY29uc3Qgbm9kZSA9IG5vZGVzW2ldO1xyXG4gICAgICBpZiAobm9kZSBpbnN0YW5jZW9mIEhUTUxJbnB1dEVsZW1lbnQgfHwgbm9kZSBpbnN0YW5jZW9mIEhUTUxUZXh0QXJlYUVsZW1lbnQpIHtcclxuICAgICAgICB0aGlzLmlucHV0ID0gbm9kZTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgfSBlbHNlIGlmIChub2RlLmNoaWxkcmVuLmxlbmd0aCA+IDApIHtcclxuICAgICAgICB0aGlzLl9maW5kSW5wdXROb2RlKG5vZGUuY2hpbGRyZW4pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9wb3NpdGlvblZhbGlkYXRpb25FcnJvcigpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmVsZW1lbnRSZWYgJiYgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQgJiYgdGhpcy5fZXJyb3JWYWxpZGF0aW9uQ29tcG9uZW50KSB7XHJcbiAgICAgIGNvbnN0IGNsaWVudFJlY3Q6IENsaWVudFJlY3QgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcclxuICAgICAgdGhpcy5fZXJyb3JWYWxpZGF0aW9uQ29tcG9uZW50Lmluc3RhbmNlLnRvcCA9IGNsaWVudFJlY3QuYm90dG9tO1xyXG4gICAgICB0aGlzLl9lcnJvclZhbGlkYXRpb25Db21wb25lbnQuaW5zdGFuY2UubGVmdCA9IGNsaWVudFJlY3QubGVmdDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBhc3luYyBfaGFuZGxlS2V5RG93bihldmVudDogS2V5Ym9hcmRFdmVudCk6IFByb21pc2U8YW55PiB7XHJcbiAgICBzd2l0Y2ggKGV2ZW50LmNvZGUpIHtcclxuICAgICAgY2FzZSAnRW50ZXInOlxyXG4gICAgICBjYXNlICdOdW1wYWRFbnRlcic6XHJcbiAgICAgICAgaWYgKCFldmVudC5zaGlmdEtleSkge1xyXG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgICAgICBhd2FpdCB0aGlzLl9oYW5kbGVDb21taXQoKTtcclxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgY2FzZSAnVGFiJzpcclxuICAgICAgICBjb25zdCBuZXh0U2libGluZ1RvRm9jdXMgPSBldmVudC5zaGlmdEtleSA/IChldmVudC5jdXJyZW50VGFyZ2V0IGFzIGFueSkucHJldmlvdXNTaWJsaW5nIDogKGV2ZW50LmN1cnJlbnRUYXJnZXQgYXMgYW55KS5uZXh0U2libGluZztcclxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgIGNvbnN0IHN1Y2Nlc3M6IGJvb2xlYW4gPSBhd2FpdCB0aGlzLl9oYW5kbGVDb21taXQoKTtcclxuICAgICAgICBpZiAoc3VjY2Vzcykge1xyXG4gICAgICAgICAgaWYgKG5leHRTaWJsaW5nVG9Gb2N1cykge1xyXG4gICAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICAgIHRoaXMuX3NldEZvY3VzT25OZXh0UG9zc2libGVJbnB1dChuZXh0U2libGluZ1RvRm9jdXMsIGV2ZW50LnNoaWZ0S2V5KTtcclxuICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgY2FzZSAnRXNjYXBlJzpcclxuICAgICAgICB0aGlzLmNhbmNlbENsaWNrKCk7XHJcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9jcmVhdGVOZXdGb2N1c0V2ZW50KGVsZW1lbnQ6IGFueSk6IEV2ZW50IHtcclxuICAgIGxldCBldmVudFR5cGUgPSBcIm9uZm9jdXNpblwiIGluIGVsZW1lbnQgPyBcImZvY3VzaW5cIiA6IFwiZm9jdXNcIixcclxuICAgICAgYnViYmxlcyA9IFwib25mb2N1c2luXCIgaW4gZWxlbWVudCxcclxuICAgICAgZm9jdXNFdmVudDtcclxuXHJcbiAgICBpZiAoXCJjcmVhdGVFdmVudFwiIGluIGRvY3VtZW50KSB7XHJcbiAgICAgIGZvY3VzRXZlbnQgPSBkb2N1bWVudC5jcmVhdGVFdmVudChcIkV2ZW50XCIpO1xyXG4gICAgICBmb2N1c0V2ZW50LmluaXRFdmVudChldmVudFR5cGUsIGJ1YmJsZXMsIHRydWUpO1xyXG4gICAgfSBlbHNlIGlmIChcIkV2ZW50XCIgaW4gd2luZG93KSB7XHJcbiAgICAgIGZvY3VzRXZlbnQgPSBuZXcgRXZlbnQoZXZlbnRUeXBlLCB7IGJ1YmJsZXM6IGJ1YmJsZXMsIGNhbmNlbGFibGU6IHRydWUgfSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZm9jdXNFdmVudDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3NldEZvY3VzT25OZXh0UG9zc2libGVJbnB1dChlbGVtZW50OiBhbnksIHByZXZpb3VzOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICBsZXQgZWxlbWVudENvbGwgPSBlbGVtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdpbnB1dCcpO1xyXG4gICAgaWYgKCFlbGVtZW50Q29sbCB8fCBlbGVtZW50Q29sbC5sZW5ndGggPCAxKSB7XHJcbiAgICAgZWxlbWVudENvbGwgPSBlbGVtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCd0ZXh0YXJlYScpO1xyXG4gICAgfVxyXG4gICAgaWYgKGVsZW1lbnRDb2xsICYmIGVsZW1lbnRDb2xsLmxlbmd0aCA+IDApIHtcclxuICAgICAgY29uc3QgaW5wdXRFbGVtZW50ID0gZWxlbWVudENvbGxbMF07XHJcbiAgICAgIGlmIChpbnB1dEVsZW1lbnQuZGlzYWJsZWQgfHwgaW5wdXRFbGVtZW50LnJlYWRPbmx5KSB7XHJcbiAgICAgICAgdGhpcy5fc2V0Rm9jdXNPbk5leHRQb3NzaWJsZUlucHV0KHByZXZpb3VzID8gZWxlbWVudC5wcmV2aW91c1NpYmxpbmcgOiBlbGVtZW50Lm5leHRTaWJsaW5nLCBwcmV2aW91cyk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgY29uc3QgZm9jdXNFdmVudCA9IHRoaXMuX2NyZWF0ZU5ld0ZvY3VzRXZlbnQoZWxlbWVudCk7XHJcbiAgICAgICAgaW5wdXRFbGVtZW50LmZvY3VzKCk7XHJcbiAgICAgICAgaW5wdXRFbGVtZW50LmRpc3BhdGNoRXZlbnQoZm9jdXNFdmVudCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19