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