@colijnit/corecomponents_v12 254.1.9 → 255.1.1

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