@colijnit/corecomponents_v12 261.1.1 → 261.20.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 (466) hide show
  1. package/{fesm2015/colijnit-corecomponents_v12.js → fesm2022/colijnit-corecomponents_v12.mjs} +20197 -15310
  2. package/fesm2022/colijnit-corecomponents_v12.mjs.map +1 -0
  3. package/index.d.ts +3985 -0
  4. package/lib/components/popup/popup-message-display.component.scss +0 -2
  5. package/lib/components/scroll-container/style/_layout.scss +68 -0
  6. package/lib/components/scroll-container/style/_material-definition.scss +0 -0
  7. package/lib/components/scroll-container/style/_theme.scss +4 -0
  8. package/lib/components/scroll-container/style/material.scss +4 -0
  9. package/package.json +17 -13
  10. package/bundles/colijnit-corecomponents_v12.umd.js +0 -16057
  11. package/bundles/colijnit-corecomponents_v12.umd.js.map +0 -1
  12. package/colijnit-corecomponents_v12-261.1.0.tgz +0 -0
  13. package/colijnit-corecomponents_v12.d.ts +0 -45
  14. package/colijnit-corecomponents_v12.metadata.json +0 -1
  15. package/esm2015/colijnit-corecomponents_v12.js +0 -46
  16. package/esm2015/lib/components/article-tile/article-tile.component.js +0 -81
  17. package/esm2015/lib/components/article-tile/article-tile.module.js +0 -35
  18. package/esm2015/lib/components/base/base-input.component.js +0 -849
  19. package/esm2015/lib/components/base/base.module.js +0 -22
  20. package/esm2015/lib/components/base/commit-buttons/commit-buttons.component.js +0 -103
  21. package/esm2015/lib/components/base/commit-buttons/commit-buttons.module.js +0 -21
  22. package/esm2015/lib/components/base/dialog-base.component.js +0 -6
  23. package/esm2015/lib/components/base-input-date-picker/base-input-date-picker.directive.js +0 -25
  24. package/esm2015/lib/components/base-input-time/base-input-time-directive.js +0 -25
  25. package/esm2015/lib/components/button/button.component.js +0 -79
  26. package/esm2015/lib/components/button/button.module.js +0 -19
  27. package/esm2015/lib/components/calendar/calendar-template.component.js +0 -404
  28. package/esm2015/lib/components/calendar/calendar.component.js +0 -46
  29. package/esm2015/lib/components/calendar/calendar.module.js +0 -30
  30. package/esm2015/lib/components/card/card.component.js +0 -72
  31. package/esm2015/lib/components/card/card.module.js +0 -35
  32. package/esm2015/lib/components/carousel/carousel.component.js +0 -130
  33. package/esm2015/lib/components/carousel/carousel.module.js +0 -32
  34. package/esm2015/lib/components/carousel-3d/carousel-3d.component.js +0 -315
  35. package/esm2015/lib/components/carousel-3d/carousel-3d.module.js +0 -19
  36. package/esm2015/lib/components/carousel-3d/carouselItem.js +0 -54
  37. package/esm2015/lib/components/checkmark-overlay/checkmark-overlay.component.js +0 -87
  38. package/esm2015/lib/components/checkmark-overlay/checkmark-overlay.module.js +0 -19
  39. package/esm2015/lib/components/co-dialog/co-dialog.component.js +0 -113
  40. package/esm2015/lib/components/co-dialog/co-dialog.module.js +0 -19
  41. package/esm2015/lib/components/co-dialog-wizard/co-dialog-wizard.component.js +0 -51
  42. package/esm2015/lib/components/co-dialog-wizard/co-dialog-wizard.module.js +0 -17
  43. package/esm2015/lib/components/collapsible/collapsible.component.js +0 -92
  44. package/esm2015/lib/components/collapsible/collapsible.module.js +0 -19
  45. package/esm2015/lib/components/color-picker/color-picker.component.js +0 -41
  46. package/esm2015/lib/components/color-picker/color-picker.module.js +0 -21
  47. package/esm2015/lib/components/core-dialog/confirmation-dialog/confirmation-dialog.component.js +0 -79
  48. package/esm2015/lib/components/core-dialog/core-dialog.module.js +0 -39
  49. package/esm2015/lib/components/core-dialog/core-dialog.service.js +0 -67
  50. package/esm2015/lib/components/core-dialog/core-dynamic-component.service.js +0 -93
  51. package/esm2015/lib/components/double-calendar/double-calendar.component.js +0 -112
  52. package/esm2015/lib/components/double-calendar/double-calendar.module.js +0 -25
  53. package/esm2015/lib/components/filter-item/filter-item-viewmodel.js +0 -13
  54. package/esm2015/lib/components/filter-item/filter-item.component.js +0 -1019
  55. package/esm2015/lib/components/filter-item/filter-item.module.js +0 -43
  56. package/esm2015/lib/components/filter-item/filter-viewmodel.js +0 -11
  57. package/esm2015/lib/components/form/form.component.js +0 -184
  58. package/esm2015/lib/components/form/form.module.js +0 -23
  59. package/esm2015/lib/components/grid-toolbar/grid-toolbar.component.js +0 -57
  60. package/esm2015/lib/components/grid-toolbar/grid-toolbar.module.js +0 -23
  61. package/esm2015/lib/components/grid-toolbar-button/grid-toolbar-button.component.js +0 -28
  62. package/esm2015/lib/components/grid-toolbar-button/grid-toolbar-button.module.js +0 -19
  63. package/esm2015/lib/components/hour-scheduling/components/hour-scheduling-test-object/hour-scheduling-test-object.component.js +0 -22
  64. package/esm2015/lib/components/hour-scheduling/hour-scheduling.component.js +0 -276
  65. package/esm2015/lib/components/hour-scheduling/hour-scheduling.module.js +0 -23
  66. package/esm2015/lib/components/hour-scheduling/model/enum/scheduling-object.interface.js +0 -2
  67. package/esm2015/lib/components/hour-scheduling-expandable/components/hour-scheduling-expandable-template/hour-scheduling-expandable-template.component.js +0 -111
  68. package/esm2015/lib/components/hour-scheduling-expandable/components/hour-scheduling-expandable-template/hour-scheduling-expandable-template.module.js +0 -20
  69. package/esm2015/lib/components/hour-scheduling-expandable/hour-scheduling-expandable.component.js +0 -337
  70. package/esm2015/lib/components/hour-scheduling-expandable/hour-scheduling-expandable.module.js +0 -24
  71. package/esm2015/lib/components/icon/icon-cache.service.js +0 -52
  72. package/esm2015/lib/components/icon/icon.component.js +0 -48
  73. package/esm2015/lib/components/icon/icon.module.js +0 -25
  74. package/esm2015/lib/components/icon-collapse-handle/icon-collapse-handle.component.js +0 -64
  75. package/esm2015/lib/components/icon-collapse-handle/icon-collapse-handle.module.js +0 -23
  76. package/esm2015/lib/components/image/image.component.js +0 -42
  77. package/esm2015/lib/components/image/image.module.js +0 -14
  78. package/esm2015/lib/components/input-checkbox/input-checkbox.component.js +0 -79
  79. package/esm2015/lib/components/input-checkbox/input-checkbox.module.js +0 -19
  80. package/esm2015/lib/components/input-date-picker/input-date-picker.component.js +0 -145
  81. package/esm2015/lib/components/input-date-picker/input-date-picker.module.js +0 -28
  82. package/esm2015/lib/components/input-date-range-picker/input-date-range-picker.component.js +0 -178
  83. package/esm2015/lib/components/input-date-range-picker/input-date-range-picker.module.js +0 -27
  84. package/esm2015/lib/components/input-number-picker/input-number-picker.component.js +0 -320
  85. package/esm2015/lib/components/input-number-picker/input-number-picker.module.js +0 -23
  86. package/esm2015/lib/components/input-radio-button/input-radio-button.component.js +0 -84
  87. package/esm2015/lib/components/input-radio-button/input-radio-button.module.js +0 -19
  88. package/esm2015/lib/components/input-scanner/bar-code-scanner.js +0 -36
  89. package/esm2015/lib/components/input-scanner/input-scanner.component.js +0 -94
  90. package/esm2015/lib/components/input-scanner/input-scanner.module.js +0 -21
  91. package/esm2015/lib/components/input-scanner/scanner.service.js +0 -28
  92. package/esm2015/lib/components/input-search/input-search.component.js +0 -92
  93. package/esm2015/lib/components/input-search/input-search.module.js +0 -21
  94. package/esm2015/lib/components/input-text/input-text.component.js +0 -381
  95. package/esm2015/lib/components/input-text/input-text.module.js +0 -33
  96. package/esm2015/lib/components/input-textarea/input-textarea.component.js +0 -78
  97. package/esm2015/lib/components/input-textarea/input-textarea.module.js +0 -27
  98. package/esm2015/lib/components/input-time/input-time.component.js +0 -74
  99. package/esm2015/lib/components/input-time/input-time.module.js +0 -24
  100. package/esm2015/lib/components/level-indicator/level-indicator-level.enum.js +0 -7
  101. package/esm2015/lib/components/level-indicator/level-indicator.component.js +0 -36
  102. package/esm2015/lib/components/level-indicator/level-indicator.module.js +0 -15
  103. package/esm2015/lib/components/list-of-icons/list-of-icons.component.js +0 -98
  104. package/esm2015/lib/components/list-of-icons/list-of-icons.module.js +0 -27
  105. package/esm2015/lib/components/list-of-values/list-of-values-multiselect-popup.component.js +0 -112
  106. package/esm2015/lib/components/list-of-values/list-of-values-popup.component.js +0 -321
  107. package/esm2015/lib/components/list-of-values/list-of-values.component.js +0 -344
  108. package/esm2015/lib/components/list-of-values/list-of-values.module.js +0 -39
  109. package/esm2015/lib/components/loader/loader.component.js +0 -84
  110. package/esm2015/lib/components/loader/loader.module.js +0 -19
  111. package/esm2015/lib/components/pagination/paginate.pipe.js +0 -99
  112. package/esm2015/lib/components/pagination/pagination-instance.js +0 -2
  113. package/esm2015/lib/components/pagination/pagination.component.js +0 -126
  114. package/esm2015/lib/components/pagination/pagination.module.js +0 -28
  115. package/esm2015/lib/components/pagination/pagination.service.js +0 -88
  116. package/esm2015/lib/components/pagination-bar/pagination-bar.component.js +0 -151
  117. package/esm2015/lib/components/pagination-bar/pagination-bar.module.js +0 -19
  118. package/esm2015/lib/components/popup/const/popup-window-token.js +0 -3
  119. package/esm2015/lib/components/popup/interface/popup-button.js +0 -8
  120. package/esm2015/lib/components/popup/interface/popup-close-event.js +0 -2
  121. package/esm2015/lib/components/popup/interface/popup-settings.js +0 -42
  122. package/esm2015/lib/components/popup/interface/popup.js +0 -2
  123. package/esm2015/lib/components/popup/model/popup-button-globals.js +0 -11
  124. package/esm2015/lib/components/popup/model/popup-window.js +0 -38
  125. package/esm2015/lib/components/popup/popup-buttons.component.js +0 -53
  126. package/esm2015/lib/components/popup/popup-message-display.component.js +0 -48
  127. package/esm2015/lib/components/popup/popup-window-shell.component.js +0 -159
  128. package/esm2015/lib/components/popup/popup.module.js +0 -49
  129. package/esm2015/lib/components/popup/service/popup-shower.service.js +0 -90
  130. package/esm2015/lib/components/popup/service/prompt.service.js +0 -127
  131. package/esm2015/lib/components/popup/text-input-popup.component.js +0 -36
  132. package/esm2015/lib/components/responsive-text/responsive-text.component.js +0 -24
  133. package/esm2015/lib/components/responsive-text/responsive-text.module.js +0 -19
  134. package/esm2015/lib/components/simple-grid/base-simple-grid.component.js +0 -193
  135. package/esm2015/lib/components/simple-grid/simple-grid-cell.component.js +0 -172
  136. package/esm2015/lib/components/simple-grid/simple-grid-column.directive.js +0 -113
  137. package/esm2015/lib/components/simple-grid/simple-grid.component.js +0 -773
  138. package/esm2015/lib/components/simple-grid/simple-grid.module.js +0 -47
  139. package/esm2015/lib/components/tile/tile.component.js +0 -73
  140. package/esm2015/lib/components/tile/tile.module.js +0 -23
  141. package/esm2015/lib/components/tile-select/tile-select.component.js +0 -36
  142. package/esm2015/lib/components/tile-select/tile-select.module.js +0 -21
  143. package/esm2015/lib/components/tooltip/tooltip.component.js +0 -95
  144. package/esm2015/lib/components/tooltip/tooltip.module.js +0 -19
  145. package/esm2015/lib/components/validation-error/validation-error.component.js +0 -38
  146. package/esm2015/lib/components/validation-error/validation-error.module.js +0 -25
  147. package/esm2015/lib/components/view-mode-buttons/content-view-mode.enum.js +0 -11
  148. package/esm2015/lib/components/view-mode-buttons/view-mode-buttons.component.js +0 -64
  149. package/esm2015/lib/components/view-mode-buttons/view-mode-buttons.module.js +0 -21
  150. package/esm2015/lib/core/constant/default-upper-bound-for-range-components.js +0 -4
  151. package/esm2015/lib/core/constant/java-max-int.js +0 -2
  152. package/esm2015/lib/core/constant/number-inputs-key-down-white-list.js +0 -45
  153. package/esm2015/lib/core/decorator/input-boolean.decorator.js +0 -34
  154. package/esm2015/lib/core/enum/co-direction.js +0 -9
  155. package/esm2015/lib/core/enum/co-document-type.enum.js +0 -11
  156. package/esm2015/lib/core/enum/co-orientation.js +0 -17
  157. package/esm2015/lib/core/enum/core-components-icon.enum.js +0 -307
  158. package/esm2015/lib/core/enum/file-type-internal.enum.js +0 -17
  159. package/esm2015/lib/core/enum/file-type.enum.js +0 -11
  160. package/esm2015/lib/core/enum/filterItem-mode.enum.js +0 -49
  161. package/esm2015/lib/core/enum/input-number-picker-show-mode.enum.js +0 -8
  162. package/esm2015/lib/core/enum/keyboard-code.enum.js +0 -74
  163. package/esm2015/lib/core/enum/keyboard-key.enum.js +0 -76
  164. package/esm2015/lib/core/enum/popup-button-type.enum.js +0 -12
  165. package/esm2015/lib/core/enum/popup-type.enum.js +0 -11
  166. package/esm2015/lib/core/function/any-nill.function.js +0 -6
  167. package/esm2015/lib/core/function/is-nill.function.js +0 -5
  168. package/esm2015/lib/core/function/none-nill.function.js +0 -17
  169. package/esm2015/lib/core/function/not-nill.function.js +0 -5
  170. package/esm2015/lib/core/model/bounds-constrained-number-value.js +0 -171
  171. package/esm2015/lib/core/model/check-precision-and-scale-result.js +0 -2
  172. package/esm2015/lib/core/model/check-within-stepped-bounds-result.js +0 -2
  173. package/esm2015/lib/core/model/core-components-icon-svg.js +0 -306
  174. package/esm2015/lib/core/model/element-position.js +0 -10
  175. package/esm2015/lib/core/model/event/string-prompt-result-event.js +0 -8
  176. package/esm2015/lib/core/service/form-input-user-change-listener.service.js +0 -25
  177. package/esm2015/lib/core/service/form-master.service.js +0 -102
  178. package/esm2015/lib/core/service/ng-zone-wrapper.service.js +0 -20
  179. package/esm2015/lib/core/utils/array-utils.js +0 -264
  180. package/esm2015/lib/core/utils/browser-utils.js +0 -100
  181. package/esm2015/lib/core/utils/direction-enum-utils.js +0 -14
  182. package/esm2015/lib/core/utils/event-utils.js +0 -53
  183. package/esm2015/lib/core/utils/file-utils.js +0 -267
  184. package/esm2015/lib/core/utils/number-utils.js +0 -309
  185. package/esm2015/lib/core/utils/object-utils.js +0 -186
  186. package/esm2015/lib/core/utils/string-utils.js +0 -94
  187. package/esm2015/lib/core/validator/email.validator.js +0 -6
  188. package/esm2015/lib/core/validator/equal.validator.js +0 -11
  189. package/esm2015/lib/core/validator/max-string-length.validator.js +0 -10
  190. package/esm2015/lib/core/validator/password.validator.js +0 -31
  191. package/esm2015/lib/core/validator/precision-scale.validator.js +0 -11
  192. package/esm2015/lib/core/validator/required.validator.js +0 -5
  193. package/esm2015/lib/directives/clickoutside/click-outside-master.service.js +0 -57
  194. package/esm2015/lib/directives/clickoutside/click-outside.directive.js +0 -71
  195. package/esm2015/lib/directives/clickoutside/clickoutside.module.js +0 -19
  196. package/esm2015/lib/directives/observe-visibility/observe-visibility.directive.js +0 -53
  197. package/esm2015/lib/directives/observe-visibility/observe-visibility.module.js +0 -15
  198. package/esm2015/lib/directives/overlay/overlay-parent.directive.js +0 -19
  199. package/esm2015/lib/directives/overlay/overlay.directive.js +0 -161
  200. package/esm2015/lib/directives/overlay/overlay.module.js +0 -18
  201. package/esm2015/lib/directives/ripple/ripple-ref.js +0 -26
  202. package/esm2015/lib/directives/ripple/ripple-renderer.js +0 -160
  203. package/esm2015/lib/directives/ripple/ripple.directive.js +0 -80
  204. package/esm2015/lib/directives/ripple/ripple.module.js +0 -24
  205. package/esm2015/lib/directives/ripple/scroll-dispatcher.service.js +0 -108
  206. package/esm2015/lib/directives/ripple/scrollable.directive.js +0 -40
  207. package/esm2015/lib/directives/ripple/viewport-ruler.service.js +0 -73
  208. package/esm2015/lib/directives/screen-configuration/screen-configuration.directive.js +0 -159
  209. package/esm2015/lib/directives/screen-configuration/screen-configuration.module.js +0 -19
  210. package/esm2015/lib/directives/stopclick/stop-click.directive.js +0 -38
  211. package/esm2015/lib/directives/stopclick/stop-click.module.js +0 -15
  212. package/esm2015/lib/directives/template-wrapper/template-wrapper.directive.js +0 -68
  213. package/esm2015/lib/directives/template-wrapper/template-wrapper.module.js +0 -15
  214. package/esm2015/lib/directives/tooltip/tooltip-directive.module.js +0 -19
  215. package/esm2015/lib/directives/tooltip/tooltip.directive.js +0 -78
  216. package/esm2015/lib/interfaces/dialog-response.interface.js +0 -2
  217. package/esm2015/lib/interfaces/scanner-input.interface.js +0 -2
  218. package/esm2015/lib/interfaces/screen-config-adapter-component-interface-name.js +0 -4
  219. package/esm2015/lib/interfaces/screen-config-adapter.component.interface.js +0 -2
  220. package/esm2015/lib/model/enum/app-button-type.enum.js +0 -11
  221. package/esm2015/lib/model/enum/app-popup-type.enum.js +0 -8
  222. package/esm2015/lib/model/icon-list-item.js +0 -2
  223. package/esm2015/lib/pipes/append.pipe.js +0 -17
  224. package/esm2015/lib/pipes/append.pipe.module.js +0 -15
  225. package/esm2015/lib/pipes/filter.pipe.js +0 -16
  226. package/esm2015/lib/pipes/filter.pipe.module.js +0 -15
  227. package/esm2015/lib/pipes/prepend.pipe.js +0 -17
  228. package/esm2015/lib/pipes/prepend.pipe.module.js +0 -15
  229. package/esm2015/lib/pipes/price-display-pipe.module.js +0 -15
  230. package/esm2015/lib/pipes/price-display.pipe.js +0 -20
  231. package/esm2015/lib/service/base-module-screen-config.service.js +0 -205
  232. package/esm2015/lib/service/base-module.service.js +0 -42
  233. package/esm2015/lib/service/color-sequence.service.js +0 -49
  234. package/esm2015/lib/service/excel-export.service.js +0 -128
  235. package/esm2015/lib/service/overlay.service.js +0 -75
  236. package/esm2015/lib/translation/core-components-translation.module.js +0 -26
  237. package/esm2015/lib/translation/core-components-translation.service.js +0 -17
  238. package/esm2015/lib/translation/core-dictionary.service.js +0 -29
  239. package/esm2015/lib/translation/core-localize.pipe.js +0 -26
  240. package/esm2015/public-api.js +0 -142
  241. package/fesm2015/colijnit-corecomponents_v12.js.map +0 -1
  242. package/lib/components/article-tile/article-tile.component.d.ts +0 -22
  243. package/lib/components/article-tile/article-tile.module.d.ts +0 -2
  244. package/lib/components/base/base-input.component.d.ts +0 -189
  245. package/lib/components/base/base.module.d.ts +0 -2
  246. package/lib/components/base/commit-buttons/commit-buttons.component.d.ts +0 -21
  247. package/lib/components/base/commit-buttons/commit-buttons.module.d.ts +0 -2
  248. package/lib/components/base/dialog-base.component.d.ts +0 -4
  249. package/lib/components/base-input-date-picker/base-input-date-picker.directive.d.ts +0 -15
  250. package/lib/components/base-input-time/base-input-time-directive.d.ts +0 -14
  251. package/lib/components/button/button.component.d.ts +0 -31
  252. package/lib/components/button/button.module.d.ts +0 -2
  253. package/lib/components/calendar/calendar-template.component.d.ts +0 -70
  254. package/lib/components/calendar/calendar.component.d.ts +0 -13
  255. package/lib/components/calendar/calendar.module.d.ts +0 -2
  256. package/lib/components/card/card.component.d.ts +0 -23
  257. package/lib/components/card/card.module.d.ts +0 -2
  258. package/lib/components/carousel/carousel.component.d.ts +0 -23
  259. package/lib/components/carousel/carousel.module.d.ts +0 -6
  260. package/lib/components/carousel-3d/carousel-3d.component.d.ts +0 -55
  261. package/lib/components/carousel-3d/carousel-3d.module.d.ts +0 -2
  262. package/lib/components/carousel-3d/carouselItem.d.ts +0 -13
  263. package/lib/components/checkmark-overlay/checkmark-overlay.component.d.ts +0 -17
  264. package/lib/components/checkmark-overlay/checkmark-overlay.module.d.ts +0 -2
  265. package/lib/components/co-dialog/co-dialog.component.d.ts +0 -23
  266. package/lib/components/co-dialog/co-dialog.module.d.ts +0 -2
  267. package/lib/components/co-dialog-wizard/co-dialog-wizard.component.d.ts +0 -9
  268. package/lib/components/co-dialog-wizard/co-dialog-wizard.module.d.ts +0 -2
  269. package/lib/components/collapsible/collapsible.component.d.ts +0 -22
  270. package/lib/components/collapsible/collapsible.module.d.ts +0 -2
  271. package/lib/components/color-picker/color-picker.component.d.ts +0 -6
  272. package/lib/components/color-picker/color-picker.module.d.ts +0 -2
  273. package/lib/components/core-dialog/confirmation-dialog/confirmation-dialog.component.d.ts +0 -20
  274. package/lib/components/core-dialog/core-dialog.module.d.ts +0 -4
  275. package/lib/components/core-dialog/core-dialog.service.d.ts +0 -15
  276. package/lib/components/core-dialog/core-dynamic-component.service.d.ts +0 -12
  277. package/lib/components/double-calendar/double-calendar.component.d.ts +0 -20
  278. package/lib/components/double-calendar/double-calendar.module.d.ts +0 -2
  279. package/lib/components/filter-item/filter-item-viewmodel.d.ts +0 -9
  280. package/lib/components/filter-item/filter-item.component.d.ts +0 -126
  281. package/lib/components/filter-item/filter-item.module.d.ts +0 -2
  282. package/lib/components/filter-item/filter-viewmodel.d.ts +0 -8
  283. package/lib/components/form/form.component.d.ts +0 -39
  284. package/lib/components/form/form.module.d.ts +0 -2
  285. package/lib/components/grid-toolbar/grid-toolbar.component.d.ts +0 -19
  286. package/lib/components/grid-toolbar/grid-toolbar.module.d.ts +0 -2
  287. package/lib/components/grid-toolbar-button/grid-toolbar-button.component.d.ts +0 -8
  288. package/lib/components/grid-toolbar-button/grid-toolbar-button.module.d.ts +0 -2
  289. package/lib/components/hour-scheduling/components/hour-scheduling-test-object/hour-scheduling-test-object.component.d.ts +0 -5
  290. package/lib/components/hour-scheduling/hour-scheduling.component.d.ts +0 -48
  291. package/lib/components/hour-scheduling/hour-scheduling.module.d.ts +0 -2
  292. package/lib/components/hour-scheduling/model/enum/scheduling-object.interface.d.ts +0 -10
  293. package/lib/components/hour-scheduling-expandable/components/hour-scheduling-expandable-template/hour-scheduling-expandable-template.component.d.ts +0 -23
  294. package/lib/components/hour-scheduling-expandable/components/hour-scheduling-expandable-template/hour-scheduling-expandable-template.module.d.ts +0 -2
  295. package/lib/components/hour-scheduling-expandable/hour-scheduling-expandable.component.d.ts +0 -78
  296. package/lib/components/hour-scheduling-expandable/hour-scheduling-expandable.module.d.ts +0 -2
  297. package/lib/components/icon/icon-cache.service.d.ts +0 -20
  298. package/lib/components/icon/icon.component.d.ts +0 -17
  299. package/lib/components/icon/icon.module.d.ts +0 -2
  300. package/lib/components/icon-collapse-handle/icon-collapse-handle.component.d.ts +0 -21
  301. package/lib/components/icon-collapse-handle/icon-collapse-handle.module.d.ts +0 -2
  302. package/lib/components/image/image.component.d.ts +0 -20
  303. package/lib/components/image/image.module.d.ts +0 -2
  304. package/lib/components/input-checkbox/input-checkbox.component.d.ts +0 -24
  305. package/lib/components/input-checkbox/input-checkbox.module.d.ts +0 -2
  306. package/lib/components/input-date-picker/input-date-picker.component.d.ts +0 -30
  307. package/lib/components/input-date-picker/input-date-picker.module.d.ts +0 -2
  308. package/lib/components/input-date-range-picker/input-date-range-picker.component.d.ts +0 -27
  309. package/lib/components/input-date-range-picker/input-date-range-picker.module.d.ts +0 -2
  310. package/lib/components/input-number-picker/input-number-picker.component.d.ts +0 -74
  311. package/lib/components/input-number-picker/input-number-picker.module.d.ts +0 -2
  312. package/lib/components/input-radio-button/input-radio-button.component.d.ts +0 -19
  313. package/lib/components/input-radio-button/input-radio-button.module.d.ts +0 -2
  314. package/lib/components/input-scanner/bar-code-scanner.d.ts +0 -10
  315. package/lib/components/input-scanner/input-scanner.component.d.ts +0 -29
  316. package/lib/components/input-scanner/input-scanner.module.d.ts +0 -2
  317. package/lib/components/input-scanner/scanner.service.d.ts +0 -11
  318. package/lib/components/input-search/input-search.component.d.ts +0 -22
  319. package/lib/components/input-search/input-search.module.d.ts +0 -2
  320. package/lib/components/input-text/input-text.component.d.ts +0 -78
  321. package/lib/components/input-text/input-text.module.d.ts +0 -2
  322. package/lib/components/input-textarea/input-textarea.component.d.ts +0 -19
  323. package/lib/components/input-textarea/input-textarea.module.d.ts +0 -2
  324. package/lib/components/input-time/input-time.component.d.ts +0 -8
  325. package/lib/components/input-time/input-time.module.d.ts +0 -2
  326. package/lib/components/level-indicator/level-indicator-level.enum.d.ts +0 -5
  327. package/lib/components/level-indicator/level-indicator.component.d.ts +0 -10
  328. package/lib/components/level-indicator/level-indicator.module.d.ts +0 -2
  329. package/lib/components/list-of-icons/list-of-icons.component.d.ts +0 -22
  330. package/lib/components/list-of-icons/list-of-icons.module.d.ts +0 -2
  331. package/lib/components/list-of-values/list-of-values-multiselect-popup.component.d.ts +0 -25
  332. package/lib/components/list-of-values/list-of-values-popup.component.d.ts +0 -58
  333. package/lib/components/list-of-values/list-of-values.component.d.ts +0 -63
  334. package/lib/components/list-of-values/list-of-values.module.d.ts +0 -2
  335. package/lib/components/loader/loader.component.d.ts +0 -3
  336. package/lib/components/loader/loader.module.d.ts +0 -2
  337. package/lib/components/pagination/paginate.pipe.d.ts +0 -15
  338. package/lib/components/pagination/pagination-instance.d.ts +0 -14
  339. package/lib/components/pagination/pagination.component.d.ts +0 -38
  340. package/lib/components/pagination/pagination.module.d.ts +0 -2
  341. package/lib/components/pagination/pagination.service.d.ts +0 -24
  342. package/lib/components/pagination-bar/pagination-bar.component.d.ts +0 -33
  343. package/lib/components/pagination-bar/pagination-bar.module.d.ts +0 -2
  344. package/lib/components/popup/const/popup-window-token.d.ts +0 -3
  345. package/lib/components/popup/interface/popup-button.d.ts +0 -8
  346. package/lib/components/popup/interface/popup-close-event.d.ts +0 -5
  347. package/lib/components/popup/interface/popup-settings.d.ts +0 -21
  348. package/lib/components/popup/interface/popup.d.ts +0 -9
  349. package/lib/components/popup/model/popup-button-globals.d.ts +0 -9
  350. package/lib/components/popup/model/popup-window.d.ts +0 -21
  351. package/lib/components/popup/popup-buttons.component.d.ts +0 -13
  352. package/lib/components/popup/popup-message-display.component.d.ts +0 -12
  353. package/lib/components/popup/popup-window-shell.component.d.ts +0 -42
  354. package/lib/components/popup/popup.module.d.ts +0 -4
  355. package/lib/components/popup/service/popup-shower.service.d.ts +0 -17
  356. package/lib/components/popup/service/prompt.service.d.ts +0 -17
  357. package/lib/components/popup/text-input-popup.component.d.ts +0 -12
  358. package/lib/components/responsive-text/responsive-text.component.d.ts +0 -4
  359. package/lib/components/responsive-text/responsive-text.module.d.ts +0 -2
  360. package/lib/components/simple-grid/base-simple-grid.component.d.ts +0 -59
  361. package/lib/components/simple-grid/simple-grid-cell.component.d.ts +0 -30
  362. package/lib/components/simple-grid/simple-grid-column.directive.d.ts +0 -43
  363. package/lib/components/simple-grid/simple-grid.component.d.ts +0 -87
  364. package/lib/components/simple-grid/simple-grid.module.d.ts +0 -2
  365. package/lib/components/tile/tile.component.d.ts +0 -16
  366. package/lib/components/tile/tile.module.d.ts +0 -2
  367. package/lib/components/tile-select/tile-select.component.d.ts +0 -8
  368. package/lib/components/tile-select/tile-select.module.d.ts +0 -2
  369. package/lib/components/tooltip/tooltip.component.d.ts +0 -23
  370. package/lib/components/tooltip/tooltip.module.d.ts +0 -2
  371. package/lib/components/validation-error/validation-error.component.d.ts +0 -12
  372. package/lib/components/validation-error/validation-error.module.d.ts +0 -2
  373. package/lib/components/view-mode-buttons/content-view-mode.enum.d.ts +0 -8
  374. package/lib/components/view-mode-buttons/view-mode-buttons.component.d.ts +0 -17
  375. package/lib/components/view-mode-buttons/view-mode-buttons.module.d.ts +0 -2
  376. package/lib/core/constant/default-upper-bound-for-range-components.d.ts +0 -2
  377. package/lib/core/constant/java-max-int.d.ts +0 -1
  378. package/lib/core/constant/number-inputs-key-down-white-list.d.ts +0 -2
  379. package/lib/core/decorator/input-boolean.decorator.d.ts +0 -8
  380. package/lib/core/enum/co-direction.d.ts +0 -6
  381. package/lib/core/enum/co-document-type.enum.d.ts +0 -5
  382. package/lib/core/enum/co-orientation.d.ts +0 -6
  383. package/lib/core/enum/core-components-icon.enum.d.ts +0 -305
  384. package/lib/core/enum/file-type-internal.enum.d.ts +0 -15
  385. package/lib/core/enum/file-type.enum.d.ts +0 -5
  386. package/lib/core/enum/filterItem-mode.enum.d.ts +0 -17
  387. package/lib/core/enum/input-number-picker-show-mode.enum.d.ts +0 -5
  388. package/lib/core/enum/keyboard-code.enum.d.ts +0 -71
  389. package/lib/core/enum/keyboard-key.enum.d.ts +0 -70
  390. package/lib/core/enum/popup-button-type.enum.d.ts +0 -9
  391. package/lib/core/enum/popup-type.enum.d.ts +0 -9
  392. package/lib/core/function/any-nill.function.d.ts +0 -1
  393. package/lib/core/function/is-nill.function.d.ts +0 -1
  394. package/lib/core/function/none-nill.function.d.ts +0 -1
  395. package/lib/core/function/not-nill.function.d.ts +0 -1
  396. package/lib/core/model/bounds-constrained-number-value.d.ts +0 -46
  397. package/lib/core/model/check-precision-and-scale-result.d.ts +0 -4
  398. package/lib/core/model/check-within-stepped-bounds-result.d.ts +0 -8
  399. package/lib/core/model/core-components-icon-svg.d.ts +0 -4
  400. package/lib/core/model/element-position.d.ts +0 -7
  401. package/lib/core/model/event/string-prompt-result-event.d.ts +0 -6
  402. package/lib/core/service/form-input-user-change-listener.service.d.ts +0 -10
  403. package/lib/core/service/form-master.service.d.ts +0 -26
  404. package/lib/core/service/ng-zone-wrapper.service.d.ts +0 -6
  405. package/lib/core/utils/array-utils.d.ts +0 -85
  406. package/lib/core/utils/browser-utils.d.ts +0 -15
  407. package/lib/core/utils/direction-enum-utils.d.ts +0 -5
  408. package/lib/core/utils/event-utils.d.ts +0 -12
  409. package/lib/core/utils/file-utils.d.ts +0 -29
  410. package/lib/core/utils/number-utils.d.ts +0 -89
  411. package/lib/core/utils/object-utils.d.ts +0 -31
  412. package/lib/core/utils/string-utils.d.ts +0 -25
  413. package/lib/core/validator/email.validator.d.ts +0 -2
  414. package/lib/core/validator/equal.validator.d.ts +0 -2
  415. package/lib/core/validator/max-string-length.validator.d.ts +0 -2
  416. package/lib/core/validator/password.validator.d.ts +0 -3
  417. package/lib/core/validator/precision-scale.validator.d.ts +0 -2
  418. package/lib/core/validator/required.validator.d.ts +0 -2
  419. package/lib/directives/clickoutside/click-outside-master.service.d.ts +0 -15
  420. package/lib/directives/clickoutside/click-outside.directive.d.ts +0 -18
  421. package/lib/directives/clickoutside/clickoutside.module.d.ts +0 -2
  422. package/lib/directives/observe-visibility/observe-visibility.directive.d.ts +0 -14
  423. package/lib/directives/observe-visibility/observe-visibility.module.d.ts +0 -2
  424. package/lib/directives/overlay/overlay-parent.directive.d.ts +0 -6
  425. package/lib/directives/overlay/overlay.directive.d.ts +0 -25
  426. package/lib/directives/overlay/overlay.module.d.ts +0 -2
  427. package/lib/directives/ripple/ripple-ref.d.ts +0 -21
  428. package/lib/directives/ripple/ripple-renderer.d.ts +0 -56
  429. package/lib/directives/ripple/ripple.directive.d.ts +0 -56
  430. package/lib/directives/ripple/ripple.module.d.ts +0 -2
  431. package/lib/directives/ripple/scroll-dispatcher.service.d.ts +0 -51
  432. package/lib/directives/ripple/scrollable.directive.d.ts +0 -20
  433. package/lib/directives/ripple/viewport-ruler.service.d.ts +0 -29
  434. package/lib/directives/screen-configuration/screen-configuration.directive.d.ts +0 -32
  435. package/lib/directives/screen-configuration/screen-configuration.module.d.ts +0 -2
  436. package/lib/directives/stopclick/stop-click.directive.d.ts +0 -10
  437. package/lib/directives/stopclick/stop-click.module.d.ts +0 -2
  438. package/lib/directives/template-wrapper/template-wrapper.directive.d.ts +0 -13
  439. package/lib/directives/template-wrapper/template-wrapper.module.d.ts +0 -2
  440. package/lib/directives/tooltip/tooltip-directive.module.d.ts +0 -2
  441. package/lib/directives/tooltip/tooltip.directive.d.ts +0 -20
  442. package/lib/interfaces/dialog-response.interface.d.ts +0 -6
  443. package/lib/interfaces/scanner-input.interface.d.ts +0 -3
  444. package/lib/interfaces/screen-config-adapter-component-interface-name.d.ts +0 -3
  445. package/lib/interfaces/screen-config-adapter.component.interface.d.ts +0 -14
  446. package/lib/model/enum/app-button-type.enum.d.ts +0 -9
  447. package/lib/model/enum/app-popup-type.enum.d.ts +0 -6
  448. package/lib/model/icon-list-item.d.ts +0 -7
  449. package/lib/pipes/append.pipe.d.ts +0 -4
  450. package/lib/pipes/append.pipe.module.d.ts +0 -2
  451. package/lib/pipes/filter.pipe.d.ts +0 -4
  452. package/lib/pipes/filter.pipe.module.d.ts +0 -2
  453. package/lib/pipes/prepend.pipe.d.ts +0 -4
  454. package/lib/pipes/prepend.pipe.module.d.ts +0 -2
  455. package/lib/pipes/price-display-pipe.module.d.ts +0 -2
  456. package/lib/pipes/price-display.pipe.d.ts +0 -4
  457. package/lib/service/base-module-screen-config.service.d.ts +0 -47
  458. package/lib/service/base-module.service.d.ts +0 -22
  459. package/lib/service/color-sequence.service.d.ts +0 -7
  460. package/lib/service/excel-export.service.d.ts +0 -45
  461. package/lib/service/overlay.service.d.ts +0 -13
  462. package/lib/translation/core-components-translation.module.d.ts +0 -4
  463. package/lib/translation/core-components-translation.service.d.ts +0 -6
  464. package/lib/translation/core-dictionary.service.d.ts +0 -12
  465. package/lib/translation/core-localize.pipe.d.ts +0 -7
  466. package/public-api.d.ts +0 -138
@@ -1,178 +0,0 @@
1
- import { Component, forwardRef, HostBinding, Input, ViewChild, ViewEncapsulation } from '@angular/core';
2
- import { SCREEN_CONFIG_ADAPTER_COMPONENT_INTERFACE_NAME } from '../../interfaces/screen-config-adapter-component-interface-name';
3
- import { OverlayService } from '../../service/overlay.service';
4
- import { BaseInputDatePickerDirective } from "../base-input-date-picker/base-input-date-picker.directive";
5
- import { DoubleCalendarComponent } from "../double-calendar/double-calendar.component";
6
- export class InputDateRangePickerComponent extends BaseInputDatePickerDirective {
7
- constructor() {
8
- super(...arguments);
9
- this.EARLIEST_DATE = new Date(1900, 0, 1); // 1900-01-01
10
- this.LATEST_DATE = new Date(2100, 11, 31); // 2100-12-31
11
- this.firstDayOfWeek = '';
12
- }
13
- showClass() {
14
- return true;
15
- }
16
- handleFirstInputClick(event) {
17
- event.stopPropagation();
18
- }
19
- handleSecondInputClick(event) {
20
- event.stopPropagation();
21
- }
22
- handleDatesSelected(dates) {
23
- this.setModel(dates);
24
- }
25
- handleSecondDateSelected() {
26
- if (this.closeAfterDateSelection) {
27
- this.toggleCalendar();
28
- }
29
- }
30
- clearDate(index) {
31
- this.model[index] = undefined;
32
- }
33
- toggleCalendar() {
34
- if (this.readonly) {
35
- return;
36
- }
37
- this.showCalendar = !this.showCalendar;
38
- if (this.showCalendar) {
39
- this._doubleCalendarComponentRef = this.overlayService.createComponent(DoubleCalendarComponent, {
40
- parentForOverlay: this.parentForOverlay,
41
- selectedDates: this.model
42
- }, {
43
- datesSelected: (event) => this.handleDatesSelected(event),
44
- secondDateSelected: () => this.handleSecondDateSelected(),
45
- clickedOutside: () => this.toggleCalendar()
46
- });
47
- }
48
- else {
49
- this.overlayService.removeComponent(this._doubleCalendarComponentRef);
50
- }
51
- }
52
- handleFirstDateChanged(value) {
53
- setTimeout(() => {
54
- var _a, _b;
55
- if (this.isValidDateString(value)) {
56
- const [year, month, day] = value.split('-').map(Number);
57
- const date = new Date(year, month - 1, day);
58
- if (!this.model)
59
- this.setModel([]);
60
- this.setModel([date, (_b = (_a = this.model) === null || _a === void 0 ? void 0 : _a[1]) !== null && _b !== void 0 ? _b : null]);
61
- }
62
- });
63
- }
64
- handleSecondDateChanged(value) {
65
- setTimeout(() => {
66
- var _a, _b;
67
- if (this.isValidDateString(value)) {
68
- const [year, month, day] = value.split('-').map(Number);
69
- const date = new Date(year, month - 1, day);
70
- if (!this.model)
71
- this.setModel([]);
72
- this.setModel([(_b = (_a = this.model) === null || _a === void 0 ? void 0 : _a[0]) !== null && _b !== void 0 ? _b : null, date]);
73
- }
74
- });
75
- }
76
- finalizeDates() {
77
- let startDate = this.EARLIEST_DATE;
78
- let endDate = this.LATEST_DATE;
79
- if (this.isValidDateString(this.firstDateAsString)) {
80
- const [y, m, d] = this.firstDateAsString.split('-').map(Number);
81
- startDate = new Date(y, m - 1, d);
82
- }
83
- if (this.isValidDateString(this.secondDateAsString)) {
84
- const [y, m, d] = this.secondDateAsString.split('-').map(Number);
85
- endDate = new Date(y, m - 1, d);
86
- }
87
- this.setModel([startDate, endDate]);
88
- }
89
- finalize() {
90
- var _a;
91
- (_a = this.finalizeDates) === null || _a === void 0 ? void 0 : _a.call(this);
92
- }
93
- isValidDateString(value) {
94
- const regex = /^\d{4}-\d{2}-\d{2}$/;
95
- if (!regex.test(value))
96
- return false;
97
- const [yearStr, monthStr, dayStr] = value.split('-');
98
- const [year, month, day] = [Number(yearStr), Number(monthStr), Number(dayStr)];
99
- // Prevent ancient years or too-far future
100
- if (year < 1900 || year > 2100)
101
- return false;
102
- const date = new Date(year, month - 1, day);
103
- return (date.getFullYear() === year &&
104
- date.getMonth() === month - 1 &&
105
- date.getDate() === day);
106
- }
107
- modelSet() {
108
- this.setModelAsString();
109
- }
110
- setModelAsString() {
111
- var _a, _b;
112
- const isStartDefault = ((_a = this.model[0]) === null || _a === void 0 ? void 0 : _a.getTime()) === this.EARLIEST_DATE.getTime();
113
- const isEndDefault = ((_b = this.model[1]) === null || _b === void 0 ? void 0 : _b.getTime()) === this.LATEST_DATE.getTime();
114
- this.firstDateAsString = (!this.model[0] || isStartDefault) ? '' : this.formatDate(this.model[0]);
115
- this.secondDateAsString = (!this.model[1] || isEndDefault) ? '' : this.formatDate(this.model[1]);
116
- }
117
- formatDate(date) {
118
- const year = date.toLocaleString("default", { year: "numeric" });
119
- const month = date.toLocaleString("default", { month: "2-digit" });
120
- const day = date.toLocaleString("default", { day: "2-digit" });
121
- return `${year}-${month}-${day}`;
122
- }
123
- }
124
- InputDateRangePickerComponent.decorators = [
125
- { type: Component, args: [{
126
- selector: 'co-input-date-range',
127
- template: `
128
- <div class="inputs-wrapper" overlayParent #parentForOverlay="overlayParent">
129
- <co-input-text #firstInput class="no-focus-line custom-height"
130
- [(model)]="firstDateAsString"
131
- [noClickFocus]="true"
132
- [pattern]="'yyyy-MM-dd'"
133
- [type]="'date'"
134
- [leftIcon]="leftIcon"
135
- [leftIconData]="leftIconData"
136
- [placeholder]="placeholder"
137
- (modelChange)="handleFirstDateChanged(firstDateAsString)"
138
- (clearIconClick)="clearDate(0)"
139
- (click)="handleFirstInputClick($event)"
140
- [emptyPlace]="true"
141
- (keyup.enter)="finalizeDates()"
142
- ></co-input-text>
143
- <co-input-text #secondInput class="no-focus-line custom-height"
144
- [(model)]= "secondDateAsString"
145
- [noClickFocus]="true"
146
- [pattern]="'yyyy-MM-dd'"
147
- [type]="'date'"
148
- [rightIcon]="rightIcon"
149
- [firstDayOfWeek]="firstDayOfWeek"
150
- (rightIconClick)="toggleCalendar()"
151
- (modelChange)="handleSecondDateChanged(secondDateAsString)"
152
- (clearIconClick)="clearDate(1)"
153
- (click)="handleSecondInputClick($event)"
154
- [emptyPlace]="true"
155
- (keyup.enter)="finalizeDates()"
156
- ></co-input-text>
157
- </div>
158
- `,
159
- providers: [
160
- OverlayService,
161
- {
162
- provide: SCREEN_CONFIG_ADAPTER_COMPONENT_INTERFACE_NAME,
163
- useExisting: forwardRef(() => InputDateRangePickerComponent)
164
- }, {
165
- provide: BaseInputDatePickerDirective,
166
- useExisting: InputDateRangePickerComponent
167
- }
168
- ],
169
- encapsulation: ViewEncapsulation.None
170
- },] }
171
- ];
172
- InputDateRangePickerComponent.propDecorators = {
173
- firstDayOfWeek: [{ type: Input }],
174
- firstInput: [{ type: ViewChild, args: ['firstInput',] }],
175
- secondInput: [{ type: ViewChild, args: ['secondInput',] }],
176
- showClass: [{ type: HostBinding, args: ['class.co-input-date-range',] }]
177
- };
178
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtZGF0ZS1yYW5nZS1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2lucHV0LWRhdGUtcmFuZ2UtcGlja2VyL2lucHV0LWRhdGUtcmFuZ2UtcGlja2VyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUdULFVBQVUsRUFDVixXQUFXLEVBQ1gsS0FBSyxFQUVMLFNBQVMsRUFDVCxpQkFBaUIsRUFDbEIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUNILDhDQUE4QyxFQUNqRCxNQUFNLGlFQUFpRSxDQUFDO0FBQ3pFLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQztBQUM3RCxPQUFPLEVBQUMsNEJBQTRCLEVBQUMsTUFBTSw0REFBNEQsQ0FBQztBQUN4RyxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSw4Q0FBOEMsQ0FBQztBQStDckYsTUFBTSxPQUFPLDZCQUE4QixTQUFRLDRCQUE0QjtJQTdDL0U7O1FBa0RtQixrQkFBYSxHQUFHLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBRSxhQUFhO1FBQ3BELGdCQUFXLEdBQUcsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFFLGFBQWE7UUFLOUQsbUJBQWMsR0FBVyxFQUFFLENBQUM7SUFrSXJDLENBQUM7SUE3SFUsU0FBUztRQUNaLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFDSCxxQkFBcUIsQ0FBQyxLQUFZO1FBQ2hDLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRUQsc0JBQXNCLENBQUMsS0FBWTtRQUNqQyxLQUFLLENBQUMsZUFBZSxFQUFFLENB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QUFFLDRCQUE0Qjt3QkFDckMsV0FBVyxFQUFFLDZCQUE2QjtxQkFDN0M7aUJBQUM7Z0JBQ04sYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7YUFDeEM7Ozs2QkFXRSxLQUFLO3lCQUdMLFNBQVMsU0FBQyxZQUFZOzBCQUN0QixTQUFTLFNBQUMsYUFBYTt3QkFDckIsV0FBVyxTQUFDLDJCQUEyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIENvbXBvbmVudFJlZiwgRWxlbWVudFJlZixcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgZm9yd2FyZFJlZixcclxuICBIb3N0QmluZGluZyxcclxuICBJbnB1dCxcclxuICBPdXRwdXQsXHJcbiAgVmlld0NoaWxkLFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7QmFzZUlucHV0Q29tcG9uZW50fSBmcm9tICcuLi9iYXNlL2Jhc2UtaW5wdXQuY29tcG9uZW50JztcclxuaW1wb3J0IHtcclxuICAgIFNDUkVFTl9DT05GSUdfQURBUFRFUl9DT01QT05FTlRfSU5URVJGQUNFX05BTUVcclxufSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL3NjcmVlbi1jb25maWctYWRhcHRlci1jb21wb25lbnQtaW50ZXJmYWNlLW5hbWUnO1xyXG5pbXBvcnQge092ZXJsYXlTZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlL292ZXJsYXkuc2VydmljZSc7XHJcbmltcG9ydCB7QmFzZUlucHV0RGF0ZVBpY2tlckRpcmVjdGl2ZX0gZnJvbSBcIi4uL2Jhc2UtaW5wdXQtZGF0ZS1waWNrZXIvYmFzZS1pbnB1dC1kYXRlLXBpY2tlci5kaXJlY3RpdmVcIjtcclxuaW1wb3J0IHtEb3VibGVDYWxlbmRhckNvbXBvbmVudH0gZnJvbSBcIi4uL2RvdWJsZS1jYWxlbmRhci9kb3VibGUtY2FsZW5kYXIuY29tcG9uZW50XCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnY28taW5wdXQtZGF0ZS1yYW5nZScsXHJcbiAgICB0ZW1wbGF0ZTogYFxyXG4gICAgICA8ZGl2IGNsYXNzPVwiaW5wdXRzLXdyYXBwZXJcIiBvdmVybGF5UGFyZW50ICNwYXJlbnRGb3JPdmVybGF5PVwib3ZlcmxheVBhcmVudFwiPlxyXG4gICAgICAgIDxjby1pbnB1dC10ZXh0ICNmaXJzdElucHV0IGNsYXNzPVwibm8tZm9jdXMtbGluZSBjdXN0b20taGVpZ2h0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICBbKG1vZGVsKV09XCJmaXJzdERhdGVBc1N0cmluZ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgW25vQ2xpY2tGb2N1c109XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICBbcGF0dGVybl09XCIneXl5eS1NTS1kZCdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIFt0eXBlXT1cIidkYXRlJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgW2xlZnRJY29uXT1cImxlZnRJY29uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICBbbGVmdEljb25EYXRhXT1cImxlZnRJY29uRGF0YVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAobW9kZWxDaGFuZ2UpPVwiaGFuZGxlRmlyc3REYXRlQ2hhbmdlZChmaXJzdERhdGVBc1N0cmluZylcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIChjbGVhckljb25DbGljayk9XCJjbGVhckRhdGUoMClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJoYW5kbGVGaXJzdElucHV0Q2xpY2soJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgW2VtcHR5UGxhY2VdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgKGtleXVwLmVudGVyKT1cImZpbmFsaXplRGF0ZXMoKVwiXHJcbiAgICAgICAgPjwvY28taW5wdXQtdGV4dD5cclxuICAgICAgICA8Y28taW5wdXQtdGV4dCAjc2Vjb25kSW5wdXQgY2xhc3M9XCJuby1mb2N1cy1saW5lIGN1c3RvbS1oZWlnaHRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIFsobW9kZWwpXT0gXCJzZWNvbmREYXRlQXNTdHJpbmdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIFtub0NsaWNrRm9jdXNdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgW3BhdHRlcm5dPVwiJ3l5eXktTU0tZGQnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICBbdHlwZV09XCInZGF0ZSdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIFtyaWdodEljb25dPVwicmlnaHRJY29uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICBbZmlyc3REYXlPZldlZWtdPVwiZmlyc3REYXlPZldlZWtcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIChyaWdodEljb25DbGljayk9XCJ0b2dnbGVDYWxlbmRhcigpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAobW9kZWxDaGFuZ2UpPVwiaGFuZGxlU2Vjb25kRGF0ZUNoYW5nZWQoc2Vjb25kRGF0ZUFzU3RyaW5nKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgKGNsZWFySWNvbkNsaWNrKT1cImNsZWFyRGF0ZSgxKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImhhbmRsZVNlY29uZElucHV0Q2xpY2soJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgW2VtcHR5UGxhY2VdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgKGtleXVwLmVudGVyKT1cImZpbmFsaXplRGF0ZXMoKVwiXHJcbiAgICAgICAgPjwvY28taW5wdXQtdGV4dD5cclxuICAgICAgPC9kaXY+XHJcbiAgICBgLFxyXG4gICAgcHJvdmlkZXJzOiBbXHJcbiAgICAgICAgT3ZlcmxheVNlcnZpY2UsXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBwcm92aWRlOiBTQ1JFRU5fQ09ORklHX0FEQVBURVJfQ09NUE9ORU5UX0lOVEVSRkFDRV9OQU1FLFxyXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBJbnB1dERhdGVSYW5nZVBpY2tlckNvbXBvbmVudClcclxuICAgICAgICB9LCB7XHJcbiAgICAgICAgICAgIHByb3ZpZGU6IEJhc2VJbnB1dERhdGVQaWNrZXJEaXJlY3RpdmUsXHJcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBJbnB1dERhdGVSYW5nZVBpY2tlckNvbXBvbmVudFxyXG4gICAgICAgIH1dLFxyXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgSW5wdXREYXRlUmFuZ2VQaWNrZXJDb21wb25lbnQgZXh0ZW5kcyBCYXNlSW5wdXREYXRlUGlja2VyRGlyZWN0aXZlIHtcclxuXHJcbiAgcHVibGljIGZpcnN0RGF0ZUFzU3RyaW5nO1xyXG4gIHB1YmxpYyBzZWNvbmREYXRlQXNTdHJpbmc7XHJcblxyXG4gIHByaXZhdGUgcmVhZG9ubHkgRUFSTElFU1RfREFURSA9IG5ldyBEYXRlKDE5MDAsIDAsIDEpOyAgLy8gMTkwMC0wMS0wMVxyXG4gIHByaXZhdGUgcmVhZG9ubHkgTEFURVNUX0RBVEUgPSBuZXcgRGF0ZSgyMTAwLCAxMSwgMzEpOyAgLy8gMjEwMC0xMi0zMVxyXG5cclxuICBwcml2YXRlIF9kb3VibGVDYWxlbmRhckNvbXBvbmVudFJlZjogQ29tcG9uZW50UmVmPERvdWJsZUNhbGVuZGFyQ29tcG9uZW50PjtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgZmlyc3REYXlPZldlZWs6IHN0cmluZyA9ICcnO1xyXG5cclxuICBAVmlld0NoaWxkKCdmaXJzdElucHV0JykgZmlyc3RJbnB1dDogRWxlbWVudFJlZjtcclxuICBAVmlld0NoaWxkKCdzZWNvbmRJbnB1dCcpIHNlY29uZElucHV0OiBFbGVtZW50UmVmO1xyXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5jby1pbnB1dC1kYXRlLXJhbmdlJylcclxuICAgIHB1YmxpYyBzaG93Q2xhc3MoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcbiAgaGFuZGxlRmlyc3RJbnB1dENsaWNrKGV2ZW50OiBFdmVudCk6IHZvaWQge1xyXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgfVxyXG5cclxuICBoYW5kbGVTZWNvbmRJbnB1dENsaWNrKGV2ZW50OiBFdmVudCk6IHZvaWQge1xyXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgfVxyXG4gIHB1YmxpYyBoYW5kbGVEYXRlc1NlbGVjdGVkKGRhdGVzOiBEYXRlW10pOiB2b2lkIHtcclxuICAgIHRoaXMuc2V0TW9kZWwoZGF0ZXMpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZVNlY29uZERhdGVTZWxlY3RlZCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmNsb3NlQWZ0ZXJEYXRlU2VsZWN0aW9uKSB7XHJcbiAgICAgIHRoaXMudG9nZ2xlQ2FsZW5kYXIoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBjbGVhckRhdGUoaW5kZXg6IG51bWJlcik6IHZvaWQge1xyXG4gICAgICB0aGlzLm1vZGVsW2luZGV4XSA9IHVuZGVmaW5lZDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyB0b2dnbGVDYWxlbmRhcigpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnJlYWRvbmx5KSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMuc2hvd0NhbGVuZGFyID0gIXRoaXMuc2hvd0NhbGVuZGFyO1xyXG5cclxuICAgIGlmICh0aGlzLnNob3dDYWxlbmRhcikge1xyXG4gICAgICB0aGlzLl9kb3VibGVDYWxlbmRhckNvbXBvbmVudFJlZiA9IHRoaXMub3ZlcmxheVNlcnZpY2UuY3JlYXRlQ29tcG9uZW50KERvdWJsZUNhbGVuZGFyQ29tcG9uZW50LCB7XHJcbiAgICAgICAgcGFyZW50Rm9yT3ZlcmxheTogdGhpcy5wYXJlbnRGb3JPdmVybGF5LFxyXG4gICAgICAgIHNlbGVjdGVkRGF0ZXM6IHRoaXMubW9kZWxcclxuICAgICAgfSwge1xyXG4gICAgICAgIGRhdGVzU2VsZWN0ZWQ6IChldmVudCkgPT4gdGhpcy5oYW5kbGVEYXRlc1NlbGVjdGVkKGV2ZW50KSxcclxuICAgICAgICBzZWNvbmREYXRlU2VsZWN0ZWQ6ICgpID0+IHRoaXMuaGFuZGxlU2Vjb25kRGF0ZVNlbGVjdGVkKCksXHJcbiAgICAgICAgY2xpY2tlZE91dHNpZGU6ICgpID0+IHRoaXMudG9nZ2xlQ2FsZW5kYXIoKVxyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMub3ZlcmxheVNlcnZpY2UucmVtb3ZlQ29tcG9uZW50KHRoaXMuX2RvdWJsZUNhbGVuZGFyQ29tcG9uZW50UmVmKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBoYW5kbGVGaXJzdERhdGVDaGFuZ2VkKHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICBpZiAodGhpcy5pc1ZhbGlkRGF0ZVN0cmluZyh2YWx1ZSkpIHtcclxuICAgICAgICBjb25zdCBbeWVhciwgbW9udGgsIGRheV0gPSB2YWx1ZS5zcGxpdCgnLScpLm1hcChOdW1iZXIpO1xyXG4gICAgICAgIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZSh5ZWFyLCBtb250aCAtIDEsIGRheSk7XHJcblxyXG4gICAgICAgIGlmICghdGhpcy5tb2RlbCkgdGhpcy5zZXRNb2RlbChbXSk7XHJcbiAgICAgICAgdGhpcy5zZXRNb2RlbChbZGF0ZSwgdGhpcy5tb2RlbD8uWzFdID8/IG51bGxdKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlU2Vjb25kRGF0ZUNoYW5nZWQodmFsdWU6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIGlmICh0aGlzLmlzVmFsaWREYXRlU3RyaW5nKHZhbHVlKSkge1xyXG4gICAgICAgIGNvbnN0IFt5ZWFyLCBtb250aCwgZGF5XSA9IHZhbHVlLnNwbGl0KCctJykubWFwKE51bWJlcik7XHJcbiAgICAgICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKHllYXIsIG1vbnRoIC0gMSwgZGF5KTtcclxuXHJcbiAgICAgICAgaWYgKCF0aGlzLm1vZGVsKSB0aGlzLnNldE1vZGVsKFtdKTtcclxuICAgICAgICB0aGlzLnNldE1vZGVsKFt0aGlzLm1vZGVsPy5bMF0gPz8gbnVsbCwgZGF0ZV0pO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBmaW5hbGl6ZURhdGVzKCk6IHZvaWQge1xyXG4gICAgbGV0IHN0YXJ0RGF0ZSA9IHRoaXMuRUFSTElFU1RfREFURTtcclxuICAgIGxldCBlbmREYXRlID0gdGhpcy5MQVRFU1RfREFURTtcclxuXHJcbiAgICBpZiAodGhpcy5pc1ZhbGlkRGF0ZVN0cmluZyh0aGlzLmZpcnN0RGF0ZUFzU3RyaW5nKSkge1xyXG4gICAgICBjb25zdCBbeSwgbSwgZF0gPSB0aGlzLmZpcnN0RGF0ZUFzU3RyaW5nLnNwbGl0KCctJykubWFwKE51bWJlcik7XHJcbiAgICAgIHN0YXJ0RGF0ZSA9IG5ldyBEYXRlKHksIG0gLSAxLCBkKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5pc1ZhbGlkRGF0ZVN0cmluZyh0aGlzLnNlY29uZERhdGVBc1N0cmluZykpIHtcclxuICAgICAgY29uc3QgW3ksIG0sIGRdID0gdGhpcy5zZWNvbmREYXRlQXNTdHJpbmcuc3BsaXQoJy0nKS5tYXAoTnVtYmVyKTtcclxuICAgICAgZW5kRGF0ZSA9IG5ldyBEYXRlKHksIG0gLSAxLCBkKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnNldE1vZGVsKFtzdGFydERhdGUsIGVuZERhdGVdKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBmaW5hbGl6ZSgpOiB2b2lkIHtcclxuICAgIHRoaXMuZmluYWxpemVEYXRlcz8uKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGlzVmFsaWREYXRlU3RyaW5nKHZhbHVlOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgIGNvbnN0IHJlZ2V4ID0gL15cXGR7NH0tXFxkezJ9LVxcZHsyfSQvO1xyXG4gICAgaWYgKCFyZWdleC50ZXN0KHZhbHVlKSkgcmV0dXJuIGZhbHNlO1xyXG5cclxuICAgIGNvbnN0IFt5ZWFyU3RyLCBtb250aFN0ciwgZGF5U3RyXSA9IHZhbHVlLnNwbGl0KCctJyk7XHJcbiAgICBjb25zdCBbeWVhciwgbW9udGgsIGRheV0gPSBbTnVtYmVyKHllYXJTdHIpLCBOdW1iZXIobW9udGhTdHIpLCBOdW1iZXIoZGF5U3RyKV07XHJcblxyXG4gICAgLy8gUHJldmVudCBhbmNpZW50IHllYXJzIG9yIHRvby1mYXIgZnV0dXJlXHJcbiAgICBpZiAoeWVhciA8IDE5MDAgfHwgeWVhciA+IDIxMDApIHJldHVybiBmYWxzZTtcclxuXHJcbiAgICBjb25zdCBkYXRlID0gbmV3IERhdGUoeWVhciwgbW9udGggLSAxLCBkYXkpO1xyXG4gICAgcmV0dXJuIChcclxuICAgICAgZGF0ZS5nZXRGdWxsWWVhcigpID09PSB5ZWFyICYmXHJcbiAgICAgIGRhdGUuZ2V0TW9udGgoKSA9PT0gbW9udGggLSAxICYmXHJcbiAgICAgIGRhdGUuZ2V0RGF0ZSgpID09PSBkYXlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgbW9kZWxTZXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnNldE1vZGVsQXNTdHJpbmcoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0TW9kZWxBc1N0cmluZygpOiB2b2lkIHtcclxuICAgIGNvbnN0IGlzU3RhcnREZWZhdWx0ID0gdGhpcy5tb2RlbFswXT8uZ2V0VGltZSgpID09PSB0aGlzLkVBUkxJRVNUX0RBVEUuZ2V0VGltZSgpO1xyXG4gICAgY29uc3QgaXNFbmREZWZhdWx0ID0gdGhpcy5tb2RlbFsxXT8uZ2V0VGltZSgpID09PSB0aGlzLkxBVEVTVF9EQVRFLmdldFRpbWUoKTtcclxuXHJcbiAgICB0aGlzLmZpcnN0RGF0ZUFzU3RyaW5nID0gKCF0aGlzLm1vZGVsWzBdIHx8IGlzU3RhcnREZWZhdWx0KSA/ICcnIDogdGhpcy5mb3JtYXREYXRlKHRoaXMubW9kZWxbMF0pO1xyXG4gICAgdGhpcy5zZWNvbmREYXRlQXNTdHJpbmcgPSAoIXRoaXMubW9kZWxbMV0gfHwgaXNFbmREZWZhdWx0KSA/ICcnIDogdGhpcy5mb3JtYXREYXRlKHRoaXMubW9kZWxbMV0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBmb3JtYXREYXRlKGRhdGU6IERhdGUpOiBzdHJpbmcge1xyXG4gICAgY29uc3QgeWVhciA9IGRhdGUudG9Mb2NhbGVTdHJpbmcoXCJkZWZhdWx0XCIsIHsgeWVhcjogXCJudW1lcmljXCIgfSk7XHJcbiAgICBjb25zdCBtb250aCA9IGRhdGUudG9Mb2NhbGVTdHJpbmcoXCJkZWZhdWx0XCIsIHsgbW9udGg6IFwiMi1kaWdpdFwiIH0pO1xyXG4gICAgY29uc3QgZGF5ID0gZGF0ZS50b0xvY2FsZVN0cmluZyhcImRlZmF1bHRcIiwgeyBkYXk6IFwiMi1kaWdpdFwiIH0pO1xyXG4gICAgcmV0dXJuIGAke3llYXJ9LSR7bW9udGh9LSR7ZGF5fWA7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -1,27 +0,0 @@
1
- import { NgModule } from "@angular/core";
2
- import { InputDateRangePickerComponent } from "./input-date-range-picker.component";
3
- import { OverlayModule } from '../../directives/overlay/overlay.module';
4
- import { CommonModule } from "@angular/common";
5
- import { InputTextModule } from "../input-text/input-text.module";
6
- import { ClickoutsideModule } from "../../directives/clickoutside/clickoutside.module";
7
- import { DoubleCalendarModule } from "../double-calendar/double-calendar.module";
8
- export class InputDateRangePickerModule {
9
- }
10
- InputDateRangePickerModule.decorators = [
11
- { type: NgModule, args: [{
12
- imports: [
13
- CommonModule,
14
- InputTextModule,
15
- ClickoutsideModule,
16
- OverlayModule,
17
- DoubleCalendarModule
18
- ],
19
- declarations: [
20
- InputDateRangePickerComponent
21
- ],
22
- exports: [
23
- InputDateRangePickerComponent
24
- ]
25
- },] }
26
- ];
27
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtZGF0ZS1yYW5nZS1waWNrZXIubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2lucHV0LWRhdGUtcmFuZ2UtcGlja2VyL2lucHV0LWRhdGUtcmFuZ2UtcGlja2VyLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBQyw2QkFBNkIsRUFBQyxNQUFNLHFDQUFxQyxDQUFDO0FBQ2xGLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSx5Q0FBeUMsQ0FBQztBQUN0RSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLGlDQUFpQyxDQUFDO0FBQ2hFLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLG1EQUFtRCxDQUFDO0FBQ3JGLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLDJDQUEyQyxDQUFDO0FBaUIvRSxNQUFNLE9BQU8sMEJBQTBCOzs7WUFmdEMsUUFBUSxTQUFDO2dCQUNOLE9BQU8sRUFBRTtvQkFDUCxZQUFZO29CQUNaLGVBQWU7b0JBQ2Ysa0JBQWtCO29CQUNsQixhQUFhO29CQUNiLG9CQUFvQjtpQkFDckI7Z0JBQ0QsWUFBWSxFQUFFO29CQUNaLDZCQUE2QjtpQkFDOUI7Z0JBQ0QsT0FBTyxFQUFFO29CQUNQLDZCQUE2QjtpQkFDOUI7YUFDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7TmdNb2R1bGV9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7SW5wdXREYXRlUmFuZ2VQaWNrZXJDb21wb25lbnR9IGZyb20gXCIuL2lucHV0LWRhdGUtcmFuZ2UtcGlja2VyLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQge092ZXJsYXlNb2R1bGV9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvb3ZlcmxheS9vdmVybGF5Lm1vZHVsZSc7XHJcbmltcG9ydCB7Q29tbW9uTW9kdWxlfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XHJcbmltcG9ydCB7SW5wdXRUZXh0TW9kdWxlfSBmcm9tIFwiLi4vaW5wdXQtdGV4dC9pbnB1dC10ZXh0Lm1vZHVsZVwiO1xyXG5pbXBvcnQge0NsaWNrb3V0c2lkZU1vZHVsZX0gZnJvbSBcIi4uLy4uL2RpcmVjdGl2ZXMvY2xpY2tvdXRzaWRlL2NsaWNrb3V0c2lkZS5tb2R1bGVcIjtcclxuaW1wb3J0IHtEb3VibGVDYWxlbmRhck1vZHVsZX0gZnJvbSBcIi4uL2RvdWJsZS1jYWxlbmRhci9kb3VibGUtY2FsZW5kYXIubW9kdWxlXCI7XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gICAgaW1wb3J0czogW1xyXG4gICAgICBDb21tb25Nb2R1bGUsXHJcbiAgICAgIElucHV0VGV4dE1vZHVsZSxcclxuICAgICAgQ2xpY2tvdXRzaWRlTW9kdWxlLFxyXG4gICAgICBPdmVybGF5TW9kdWxlLFxyXG4gICAgICBEb3VibGVDYWxlbmRhck1vZHVsZVxyXG4gICAgXSxcclxuICAgIGRlY2xhcmF0aW9uczogW1xyXG4gICAgICBJbnB1dERhdGVSYW5nZVBpY2tlckNvbXBvbmVudFxyXG4gICAgXSxcclxuICAgIGV4cG9ydHM6IFtcclxuICAgICAgSW5wdXREYXRlUmFuZ2VQaWNrZXJDb21wb25lbnRcclxuICAgIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIElucHV0RGF0ZVJhbmdlUGlja2VyTW9kdWxlIHtcclxufVxyXG4iXX0=
@@ -1,320 +0,0 @@
1
- import { __decorate } from "tslib";
2
- import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ComponentFactoryResolver, ElementRef, EventEmitter, forwardRef, HostBinding, Inject, Input, NgZone, Optional, Output, ViewEncapsulation } from '@angular/core';
3
- import { BaseInputComponent } from '../base/base-input.component';
4
- import { InputBoolean } from '../../core/decorator/input-boolean.decorator';
5
- import { BoundsConstrainedNumberValue } from '../../core/model/bounds-constrained-number-value';
6
- import { NUMBER_INPUTS_KEY_DOWN_WHITE_LIST } from '../../core/constant/number-inputs-key-down-white-list';
7
- import { FormInputUserModelChangeListenerService } from '../../core/service/form-input-user-change-listener.service';
8
- import { InputNumberPickerButtonShowMode } from '../../core/enum/input-number-picker-show-mode.enum';
9
- import { IconCacheService } from '../icon/icon-cache.service';
10
- import { CoreComponentsIcon } from '../../core/enum/core-components-icon.enum';
11
- import { SCREEN_CONFIG_ADAPTER_COMPONENT_INTERFACE_NAME } from '../../interfaces/screen-config-adapter-component-interface-name';
12
- import { FormComponent } from '../form/form.component';
13
- import { OverlayService } from '../../service/overlay.service';
14
- import { NgZoneWrapperService } from '../../core/service/ng-zone-wrapper.service';
15
- // A component that lets users pick a number by increasing and decreasing it with buttons, or by typing.
16
- export class InputNumberPickerComponent extends BaseInputComponent {
17
- constructor(formComponent, iconCacheService, overlayService, _ngZone, componentFactoryResolver, changeDetector, formUserChangeListener, ngZoneWrapper, elementRef) {
18
- super(changeDetector, componentFactoryResolver, overlayService, formUserChangeListener, ngZoneWrapper, elementRef);
19
- this.formComponent = formComponent;
20
- this.iconCacheService = iconCacheService;
21
- this.overlayService = overlayService;
22
- this._ngZone = _ngZone;
23
- this.componentFactoryResolver = componentFactoryResolver;
24
- this.ngZoneWrapper = ngZoneWrapper;
25
- this.elementRef = elementRef;
26
- this.modelChangeOnEnter = true;
27
- this.showPermanentLabel = false;
28
- this.minusIcon = CoreComponentsIcon.MinusSimple;
29
- this.plusIcon = CoreComponentsIcon.PlusSimple;
30
- // Whether to show buttons 'always', 'onFocusOnly', or 'never'
31
- this.buttonShowMode = InputNumberPickerButtonShowMode.Always;
32
- // @override Default true for us.
33
- this.noValidation = true;
34
- // @override
35
- this.modelChange = new EventEmitter();
36
- this.iconClick = new EventEmitter();
37
- this.myKeyDownWhiteList = NUMBER_INPUTS_KEY_DOWN_WHITE_LIST;
38
- this.numberLogic = new BoundsConstrainedNumberValue();
39
- this.minSelected = false;
40
- this.plusSelected = false;
41
- this._numberInputHasFocus = false;
42
- this._changeFromButton = false;
43
- this._delayBeforeStartAutoCountMs = 666;
44
- // the 'speed gears' for auto counting
45
- this._stepFactors = [1, 10, 20];
46
- // increase step size timing
47
- this._msChangeStepFactor = 1000;
48
- // step speed
49
- this._msDoStep = 5;
50
- // hold the mouse down and this increases for a faster auto increment
51
- this._stepFactor = this._stepFactors[0];
52
- this._mayAutoCount = false;
53
- this._numberLogicValueChangeSub = this.numberLogic.valueChange.subscribe((value) => {
54
- if (!this._mayAutoCount) {
55
- this.model = value;
56
- if (!this.modelChangeOnEnter || this._changeFromButton) {
57
- this.modelChange.emit(value);
58
- }
59
- // custom form user chagne listener .next because we don't user super.updateModel() which normally does that for us
60
- if (this._markedAsUserTouched) {
61
- this.formUserChangeListener.userModelChange.next(value);
62
- this.userModelChange.next(value);
63
- }
64
- }
65
- });
66
- }
67
- // @override
68
- set model(model) {
69
- this.setValue(model, true);
70
- super.model = model;
71
- }
72
- get model() {
73
- return super.model;
74
- }
75
- set min(min) {
76
- this.numberLogic.min = min;
77
- }
78
- set step(step) {
79
- this.numberLogic.step = step;
80
- }
81
- set max(max) {
82
- this.numberLogic.max = max;
83
- }
84
- set decimals(decimals) {
85
- this.numberLogic.decimals = decimals;
86
- }
87
- get showButtonsOnFocusOnly() {
88
- return this.buttonShowMode === InputNumberPickerButtonShowMode.OnFocusOnly;
89
- }
90
- get hasLabel() {
91
- return !!this.label;
92
- }
93
- showClass() {
94
- return true;
95
- }
96
- ngOnInit() {
97
- // this.numberLogic.setValue(this.model, true);
98
- // this.numberLogic.init(true);
99
- this._updateButtonsShowState();
100
- }
101
- ngOnDestroy() {
102
- this._numberLogicValueChangeSub.unsubscribe();
103
- clearTimeout(this._autoCountTimeout);
104
- clearTimeout(this._stepIncrementTimeout);
105
- clearTimeout(this._startAutocountTimeout);
106
- }
107
- // Note: recursive through setTimeout().
108
- doIncrementAuto() {
109
- this._mayAutoCount = true;
110
- this.increment(this._stepFactor);
111
- this._ngZone.runOutsideAngular(() => {
112
- this._autoCountTimeout = window.setTimeout(() => {
113
- if (this._mayAutoCount) {
114
- this.doIncrementAuto();
115
- this.changeDetector.detectChanges();
116
- }
117
- }, this._msDoStep);
118
- });
119
- }
120
- handleInputKeyDown(event) {
121
- // event.preventDefault();
122
- if (event.code === 'Enter' || event.code === 'NumpadEnter') {
123
- this.modelChange.next(this.model);
124
- return false;
125
- }
126
- if (this.myKeyDownWhiteList.find((k) => k === event.keyCode) === undefined) {
127
- return false;
128
- }
129
- }
130
- handleBlur() {
131
- this.modelChange.next(this.model);
132
- }
133
- handleChangeModel(value) {
134
- this._changeFromButton = false;
135
- this.numberLogic.setValue(value);
136
- }
137
- // Note: recursive through setTimeout().
138
- doDecrementAuto() {
139
- this._mayAutoCount = true;
140
- this.decrement(this._stepFactor);
141
- this._ngZone.runOutsideAngular(() => {
142
- this._autoCountTimeout = window.setTimeout(() => {
143
- if (this._mayAutoCount) {
144
- this.doDecrementAuto();
145
- this.changeDetector.detectChanges();
146
- }
147
- }, this._msDoStep);
148
- });
149
- }
150
- stopAutoCounting() {
151
- this.minSelected = false;
152
- this.plusSelected = false;
153
- this._mayAutoCount = false;
154
- this._stepFactor = this._stepFactors[0];
155
- }
156
- // Sets the current number value with given newValue, optionally silent (no valueChange event fired).
157
- setValue(newValue, silent = false) {
158
- this.numberLogic.setValue(newValue, silent);
159
- }
160
- increment(steps = 1) {
161
- this._changeFromButton = true;
162
- this.numberLogic.increment(steps);
163
- }
164
- decrement(steps = 1) {
165
- this._changeFromButton = true;
166
- this.numberLogic.decrement(steps);
167
- }
168
- onPlusMouseDown(event) {
169
- if (this.readonly) {
170
- event.preventDefault();
171
- return;
172
- }
173
- this.plusSelected = true;
174
- this._markedAsUserTouched = true;
175
- // keeps focus on input text instead of button
176
- event.preventDefault();
177
- this.increment();
178
- this._mayAutoCount = true;
179
- clearTimeout(this._startAutocountTimeout);
180
- this._startAutocountTimeout = window.setTimeout(() => {
181
- if (this._mayAutoCount) {
182
- this.doIncrementAuto();
183
- this._doIncreaseStepFactor();
184
- }
185
- }, this._delayBeforeStartAutoCountMs);
186
- }
187
- onMinusMouseDown(event) {
188
- if (this.readonly) {
189
- event.preventDefault();
190
- return;
191
- }
192
- this.minSelected = true;
193
- this._markedAsUserTouched = true;
194
- // keeps focus on input text instead of button
195
- event.preventDefault();
196
- this.decrement();
197
- this._mayAutoCount = true;
198
- clearTimeout(this._startAutocountTimeout);
199
- this._startAutocountTimeout = window.setTimeout(() => {
200
- if (this._mayAutoCount) {
201
- this.doDecrementAuto();
202
- this._doIncreaseStepFactor();
203
- }
204
- }, this._delayBeforeStartAutoCountMs);
205
- }
206
- // Note: recursive.
207
- _doIncreaseStepFactor() {
208
- this._stepIncrementTimeout = window.setTimeout(() => {
209
- if (this._mayAutoCount) {
210
- this._stepFactor = this._getNextStepFactorMouseDown();
211
- this._doIncreaseStepFactor();
212
- }
213
- }, this._msChangeStepFactor);
214
- }
215
- _getNextStepFactorMouseDown() {
216
- const curIdx = this._stepFactors.indexOf(this._stepFactor);
217
- if (curIdx < this._stepFactors.length - 1) {
218
- return this._stepFactors[curIdx + 1];
219
- }
220
- return this._stepFactor;
221
- }
222
- // Show or hide + and - buttons. Might hide buttons if number input lost focus and button show mode is on focus only.
223
- _updateButtonsShowState() {
224
- switch (this.buttonShowMode) {
225
- case InputNumberPickerButtonShowMode.Always:
226
- default:
227
- this.showButtons = true;
228
- break;
229
- case InputNumberPickerButtonShowMode.OnFocusOnly:
230
- this.showButtons = this._numberInputHasFocus;
231
- break;
232
- case InputNumberPickerButtonShowMode.Never:
233
- this.showButtons = false;
234
- break;
235
- }
236
- }
237
- }
238
- InputNumberPickerComponent.decorators = [
239
- { type: Component, args: [{
240
- selector: 'co-input-number-picker',
241
- template: `
242
- <div class="icon-wrapper" *ngIf="leftIconData">
243
- <co-icon class="input-number-picker-icon" [iconData]="leftIconData" (click)="iconClick.emit($event)"></co-icon>
244
- <div class="spacer"></div>
245
- </div>
246
- <div class="button-wrapper">
247
- <co-button *ngIf="showButtons" class="minus-operator" [class.select]="minSelected" tabindex="-1"
248
- [disabled]="readonly"
249
- [iconData]="iconCacheService.getIcon(minusIcon)"
250
- (mousedown)="onMinusMouseDown($event)"
251
- (mouseup)="stopAutoCounting()" (mouseleave)="stopAutoCounting()"></co-button>
252
- </div>
253
- <div class="input-wrapper">
254
- <span class='permanent-label' [textContent]="label" *ngIf="showPermanentLabel"></span>
255
- <input type="number"
256
- [tabIndex]="readonly ? -1 : 0"
257
- [ngModel]="model"
258
- [readonly]="readonly"
259
- [disabled]="disabled"
260
- [required]="required"
261
- [placeholder]="label"
262
- (ngModelChange)="handleChangeModel($event)"
263
- (keydown)="handleInputKeyDown($event)"
264
- (blur)="handleBlur()"/>
265
- </div>
266
- <div class="button-wrapper">
267
- <co-button *ngIf="showButtons" class="plus-operator" [class.select]="plusSelected" tabindex="-1"
268
- [disabled]="readonly"
269
- [iconData]="iconCacheService.getIcon(plusIcon)"
270
- (mousedown)="onPlusMouseDown($event)"
271
- (mouseup)="stopAutoCounting()" (mouseleave)="stopAutoCounting()"></co-button>
272
- </div>
273
- `,
274
- providers: [
275
- OverlayService, {
276
- provide: SCREEN_CONFIG_ADAPTER_COMPONENT_INTERFACE_NAME, useExisting: forwardRef(() => InputNumberPickerComponent)
277
- }, {
278
- provide: BaseInputComponent,
279
- useExisting: InputNumberPickerComponent
280
- }
281
- ],
282
- changeDetection: ChangeDetectionStrategy.OnPush,
283
- encapsulation: ViewEncapsulation.None
284
- },] }
285
- ];
286
- InputNumberPickerComponent.ctorParameters = () => [
287
- { type: FormComponent, decorators: [{ type: Optional }] },
288
- { type: IconCacheService, decorators: [{ type: Inject, args: [IconCacheService,] }] },
289
- { type: OverlayService },
290
- { type: NgZone },
291
- { type: ComponentFactoryResolver },
292
- { type: ChangeDetectorRef },
293
- { type: FormInputUserModelChangeListenerService },
294
- { type: NgZoneWrapperService },
295
- { type: ElementRef }
296
- ];
297
- InputNumberPickerComponent.propDecorators = {
298
- model: [{ type: Input }],
299
- modelChangeOnEnter: [{ type: Input }],
300
- showPermanentLabel: [{ type: Input }],
301
- leftIconData: [{ type: HostBinding, args: ['class.has-icon',] }, { type: Input }],
302
- min: [{ type: Input }],
303
- step: [{ type: Input }],
304
- max: [{ type: Input }],
305
- ngModelOptions: [{ type: Input }],
306
- minusIcon: [{ type: Input }],
307
- plusIcon: [{ type: Input }],
308
- buttonShowMode: [{ type: Input }],
309
- noValidation: [{ type: Input }],
310
- decimals: [{ type: Input }],
311
- modelChange: [{ type: Output }],
312
- iconClick: [{ type: Output }],
313
- showButtonsOnFocusOnly: [{ type: HostBinding, args: ['class.show-buttons-on-focus-only',] }],
314
- hasLabel: [{ type: HostBinding, args: ['class.has-label',] }],
315
- showClass: [{ type: HostBinding, args: ['class.co-input-number-picker',] }]
316
- };
317
- __decorate([
318
- InputBoolean()
319
- ], InputNumberPickerComponent.prototype, "noValidation", void 0);
320
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtbnVtYmVyLXBpY2tlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvaW5wdXQtbnVtYmVyLXBpY2tlci9pbnB1dC1udW1iZXItcGlja2VyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULHdCQUF3QixFQUFFLFVBQVUsRUFDcEMsWUFBWSxFQUNaLFVBQVUsRUFDVixXQUFXLEVBQ1gsTUFBTSxFQUNOLEtBQUssRUFDTCxNQUFNLEVBR04sUUFBUSxFQUNSLE1BQU0sRUFFTixpQkFBaUIsRUFDcEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDaEUsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLDhDQUE4QyxDQUFDO0FBRTFFLE9BQU8sRUFBQyw0QkFBNEIsRUFBQyxNQUFNLGtEQUFrRCxDQUFDO0FBQzlGLE9BQU8sRUFBQyxpQ0FBaUMsRUFBQyxNQUFNLHVEQUF1RCxDQUFDO0FBR3hHLE9BQU8sRUFBQyx1Q0FBdUMsRUFBQyxNQUFNLDREQUE0RCxDQUFDO0FBQ25ILE9BQU8sRUFBQywrQkFBK0IsRUFBQyxNQUFNLG9EQUFvRCxDQUFDO0FBQ25HLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBQzVELE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLDJDQUEyQyxDQUFDO0FBQzdFLE9BQU8sRUFBQyw4Q0FBOEMsRUFBQyxNQUFNLGlFQUFpRSxDQUFDO0FBQy9ILE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRCxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sK0JBQStCLENBQUM7QUFFN0Qs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QUFLOzBCQU1MLE1BQU07d0JBR04sTUFBTTtxQ0FHTixXQUFXLFNBQUMsa0NBQWtDO3VCQUs5QyxXQUFXLFNBQUMsaUJBQWlCO3dCQUs3QixXQUFXLFNBQUMsOEJBQThCOztBQXhCM0M7SUFEVSxZQUFZLEVBQUU7Z0VBQ1kiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIENvbXBvbmVudCxcclxuICAgIENvbXBvbmVudEZhY3RvcnlSZXNvbHZlciwgRWxlbWVudFJlZixcclxuICAgIEV2ZW50RW1pdHRlcixcclxuICAgIGZvcndhcmRSZWYsXHJcbiAgICBIb3N0QmluZGluZyxcclxuICAgIEluamVjdCxcclxuICAgIElucHV0LFxyXG4gICAgTmdab25lLFxyXG4gICAgT25EZXN0cm95LFxyXG4gICAgT25Jbml0LFxyXG4gICAgT3B0aW9uYWwsXHJcbiAgICBPdXRwdXQsXHJcbiAgICBWaWV3Q2hpbGQsXHJcbiAgICBWaWV3RW5jYXBzdWxhdGlvblxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge0Jhc2VJbnB1dENvbXBvbmVudH0gZnJvbSAnLi4vYmFzZS9iYXNlLWlucHV0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7SW5wdXRCb29sZWFufSBmcm9tICcuLi8uLi9jb3JlL2RlY29yYXRvci9pbnB1dC1ib29sZWFuLmRlY29yYXRvcic7XHJcbmltcG9ydCB7U3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHtCb3VuZHNDb25zdHJhaW5lZE51bWJlclZhbHVlfSBmcm9tICcuLi8uLi9jb3JlL21vZGVsL2JvdW5kcy1jb25zdHJhaW5lZC1udW1iZXItdmFsdWUnO1xyXG5pbXBvcnQge05VTUJFUl9JTlBVVFNfS0VZX0RPV05fV0hJVEVfTElTVH0gZnJvbSAnLi4vLi4vY29yZS9jb25zdGFudC9udW1iZXItaW5wdXRzLWtleS1kb3duLXdoaXRlLWxpc3QnO1xyXG5pbXBvcnQge0tleWJvYXJkQ29kZX0gZnJvbSAnLi4vLi4vY29yZS9lbnVtL2tleWJvYXJkLWNvZGUuZW51bSc7XHJcbmltcG9ydCB7SW5wdXRUZXh0Q29tcG9uZW50fSBmcm9tICcuLi9pbnB1dC10ZXh0L2lucHV0LXRleHQuY29tcG9uZW50JztcclxuaW1wb3J0IHtGb3JtSW5wdXRVc2VyTW9kZWxDaGFuZ2VMaXN0ZW5lclNlcnZpY2V9IGZyb20gJy4uLy4uL2NvcmUvc2VydmljZS9mb3JtLWlucHV0LXVzZXItY2hhbmdlLWxpc3RlbmVyLnNlcnZpY2UnO1xyXG5pbXBvcnQge0lucHV0TnVtYmVyUGlja2VyQnV0dG9uU2hvd01vZGV9IGZyb20gJy4uLy4uL2NvcmUvZW51bS9pbnB1dC1udW1iZXItcGlja2VyLXNob3ctbW9kZS5lbnVtJztcclxuaW1wb3J0IHtJY29uQ2FjaGVTZXJ2aWNlfSBmcm9tICcuLi9pY29uL2ljb24tY2FjaGUuc2VydmljZSc7XHJcbmltcG9ydCB7Q29yZUNvbXBvbmVudHNJY29ufSBmcm9tICcuLi8uLi9jb3JlL2VudW0vY29yZS1jb21wb25lbnRzLWljb24uZW51bSc7XHJcbmltcG9ydCB7U0NSRUVOX0NPTkZJR19BREFQVEVSX0NPTVBPTkVOVF9JTlRFUkZBQ0VfTkFNRX0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9zY3JlZW4tY29uZmlnLWFkYXB0ZXItY29tcG9uZW50LWludGVyZmFjZS1uYW1lJztcclxuaW1wb3J0IHtGb3JtQ29tcG9uZW50fSBmcm9tICcuLi9mb3JtL2Zvcm0uY29tcG9uZW50JztcclxuaW1wb3J0IHtPdmVybGF5U2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZS9vdmVybGF5LnNlcnZpY2UnO1xyXG5pbXBvcnQge1NhZmVIdG1sfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcclxuaW1wb3J0IHtOZ1pvbmVXcmFwcGVyU2VydmljZX0gZnJvbSAnLi4vLi4vY29yZS9zZXJ2aWNlL25nLXpvbmUtd3JhcHBlci5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdjby1pbnB1dC1udW1iZXItcGlja2VyJyxcclxuICAgIHRlbXBsYXRlOiBgXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImljb24td3JhcHBlclwiICpuZ0lmPVwibGVmdEljb25EYXRhXCI+XHJcbiAgICAgICAgICAgIDxjby1pY29uIGNsYXNzPVwiaW5wdXQtbnVtYmVyLXBpY2tlci1pY29uXCIgW2ljb25EYXRhXT1cImxlZnRJY29uRGF0YVwiIChjbGljayk9XCJpY29uQ2xpY2suZW1pdCgkZXZlbnQpXCI+PC9jby1pY29uPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3BhY2VyXCI+PC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImJ1dHRvbi13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgIDxjby1idXR0b24gKm5nSWY9XCJzaG93QnV0dG9uc1wiIGNsYXNzPVwibWludXMtb3BlcmF0b3JcIiBbY2xhc3Muc2VsZWN0XT1cIm1pblNlbGVjdGVkXCIgdGFiaW5kZXg9XCItMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cInJlYWRvbmx5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICBbaWNvbkRhdGFdPVwiaWNvbkNhY2hlU2VydmljZS5nZXRJY29uKG1pbnVzSWNvbilcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIChtb3VzZWRvd24pPVwib25NaW51c01vdXNlRG93bigkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAobW91c2V1cCk9XCJzdG9wQXV0b0NvdW50aW5nKClcIiAobW91c2VsZWF2ZSk9XCJzdG9wQXV0b0NvdW50aW5nKClcIj48L2NvLWJ1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtd3JhcHBlclwiPlxyXG4gICAgICAgICAgPHNwYW4gY2xhc3M9J3Blcm1hbmVudC1sYWJlbCcgW3RleHRDb250ZW50XT1cImxhYmVsXCIgKm5nSWY9XCJzaG93UGVybWFuZW50TGFiZWxcIj48L3NwYW4+XHJcbiAgICAgICAgICA8aW5wdXQgdHlwZT1cIm51bWJlclwiXHJcbiAgICAgICAgICAgICAgICAgW3RhYkluZGV4XT1cInJlYWRvbmx5ID8gLTEgOiAwXCJcclxuICAgICAgICAgICAgICAgICBbbmdNb2RlbF09XCJtb2RlbFwiXHJcbiAgICAgICAgICAgICAgICAgW3JlYWRvbmx5XT1cInJlYWRvbmx5XCJcclxuICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxyXG4gICAgICAgICAgICAgICAgIFtyZXF1aXJlZF09XCJyZXF1aXJlZFwiXHJcbiAgICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cImxhYmVsXCJcclxuICAgICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJoYW5kbGVDaGFuZ2VNb2RlbCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAoa2V5ZG93bik9XCJoYW5kbGVJbnB1dEtleURvd24oJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgKGJsdXIpPVwiaGFuZGxlQmx1cigpXCIvPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJidXR0b24td3JhcHBlclwiPlxyXG4gICAgICAgICAgICA8Y28tYnV0dG9uICpuZ0lmPVwic2hvd0J1dHRvbnNcIiBjbGFzcz1cInBsdXMtb3BlcmF0b3JcIiBbY2xhc3Muc2VsZWN0XT1cInBsdXNTZWxlY3RlZFwiIHRhYmluZGV4PVwiLTFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJyZWFkb25seVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgW2ljb25EYXRhXT1cImljb25DYWNoZVNlcnZpY2UuZ2V0SWNvbihwbHVzSWNvbilcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIChtb3VzZWRvd24pPVwib25QbHVzTW91c2VEb3duKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIChtb3VzZXVwKT1cInN0b3BBdXRvQ291bnRpbmcoKVwiIChtb3VzZWxlYXZlKT1cInN0b3BBdXRvQ291bnRpbmcoKVwiPjwvY28tYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgYCxcclxuICAgIHByb3ZpZGVyczogW1xyXG4gICAgICAgIE92ZXJsYXlTZXJ2aWNlLCB7XHJcbiAgICAgICAgICAgIHByb3ZpZGU6IFNDUkVFTl9DT05GSUdfQURBUFRFUl9DT01QT05FTlRfSU5URVJGQUNFX05BTUUsIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IElucHV0TnVtYmVyUGlja2VyQ29tcG9uZW50KVxyXG4gICAgICAgIH0sIHtcclxuICAgICAgICAgICAgcHJvdmlkZTogQmFzZUlucHV0Q29tcG9uZW50LFxyXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogSW5wdXROdW1iZXJQaWNrZXJDb21wb25lbnRcclxuICAgICAgICB9XSxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxufSlcclxuLy8gQSBjb21wb25lbnQgdGhhdCBsZXRzIHVzZXJzIHBpY2sgYSBudW1iZXIgYnkgaW5jcmVhc2luZyBhbmQgZGVjcmVhc2luZyBpdCB3aXRoIGJ1dHRvbnMsIG9yIGJ5IHR5cGluZy5cclxuZXhwb3J0IGNsYXNzIElucHV0TnVtYmVyUGlja2VyQ29tcG9uZW50IGV4dGVuZHMgQmFzZUlucHV0Q29tcG9uZW50PG51bWJlcj4gaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcblxyXG4gICAgLy8gQG92ZXJyaWRlXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHNldCBtb2RlbChtb2RlbDogbnVtYmVyKSB7XHJcbiAgICAgICAgdGhpcy5zZXRWYWx1ZShtb2RlbCwgdHJ1ZSk7XHJcbiAgICAgICAgc3VwZXIubW9kZWwgPSBtb2RlbDtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0IG1vZGVsKCk6IG51bWJlciB7XHJcbiAgICAgICAgcmV0dXJuIHN1cGVyLm1vZGVsO1xyXG4gICAgfVxyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgbW9kZWxDaGFuZ2VPbkVudGVyOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHNob3dQZXJtYW5lbnRMYWJlbDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuaGFzLWljb24nKVxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBsZWZ0SWNvbkRhdGE6IFNhZmVIdG1sIHwgdW5kZWZpbmVkO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgc2V0IG1pbihtaW46IG51bWJlcikge1xyXG4gICAgICAgIHRoaXMubnVtYmVyTG9naWMubWluID0gbWluO1xyXG4gICAgfVxyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgc2V0IHN0ZXAoc3RlcDogbnVtYmVyKSB7XHJcbiAgICAgICAgdGhpcy5udW1iZXJMb2dpYy5zdGVwID0gc3RlcDtcclxuICAgIH1cclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHNldCBtYXgobWF4OiBudW1iZXIpIHtcclxuICAgICAgICB0aGlzLm51bWJlckxvZ2ljLm1heCA9IG1heDtcclxuICAgIH1cclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIG5nTW9kZWxPcHRpb25zOiBhbnk7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBtaW51c0ljb246IENvcmVDb21wb25lbnRzSWNvbiA9IENvcmVDb21wb25lbnRzSWNvbi5NaW51c1NpbXBsZTtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHBsdXNJY29uOiBDb3JlQ29tcG9uZW50c0ljb24gPSBDb3JlQ29tcG9uZW50c0ljb24uUGx1c1NpbXBsZTtcclxuXHJcbiAgICAvLyBXaGV0aGVyIHRvIHNob3cgYnV0dG9ucyAnYWx3YXlzJywgJ29uRm9jdXNPbmx5Jywgb3IgJ25ldmVyJ1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBidXR0b25TaG93TW9kZTogSW5wdXROdW1iZXJQaWNrZXJCdXR0b25TaG93TW9kZSA9IElucHV0TnVtYmVyUGlja2VyQnV0dG9uU2hvd01vZGUuQWx3YXlzO1xyXG5cclxuICAgIC8vIEBvdmVycmlkZSBEZWZhdWx0IHRydWUgZm9yIHVzLlxyXG4gICAgQElucHV0KCkgQElucHV0Qm9vbGVhbigpXHJcbiAgICBwdWJsaWMgbm9WYWxpZGF0aW9uOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHNldCBkZWNpbWFscyhkZWNpbWFsczogbnVtYmVyKSB7XHJcbiAgICAgICAgdGhpcy5udW1iZXJMb2dpYy5kZWNpbWFscyA9IGRlY2ltYWxzO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIEBvdmVycmlkZVxyXG4gICAgQE91dHB1dCgpXHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgbW9kZWxDaGFuZ2U6IEV2ZW50RW1pdHRlcjxudW1iZXI+ID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XHJcblxyXG4gICAgQE91dHB1dCgpXHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgaWNvbkNsaWNrOiBFdmVudEVtaXR0ZXI8TW91c2VFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPE1vdXNlRXZlbnQ+KCk7XHJcblxyXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5zaG93LWJ1dHRvbnMtb24tZm9jdXMtb25seScpXHJcbiAgICBwdWJsaWMgZ2V0IHNob3dCdXR0b25zT25Gb2N1c09ubHkoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuYnV0dG9uU2hvd01vZGUgPT09IElucHV0TnVtYmVyUGlja2VyQnV0dG9uU2hvd01vZGUuT25Gb2N1c09ubHk7XHJcbiAgICB9XHJcblxyXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5oYXMtbGFiZWwnKVxyXG4gICAgcHVibGljIGdldCBoYXNMYWJlbCgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gISF0aGlzLmxhYmVsO1xyXG4gICAgfVxyXG5cclxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuY28taW5wdXQtbnVtYmVyLXBpY2tlcicpXHJcbiAgICBwdWJsaWMgc2hvd0NsYXNzKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzaG93QnV0dG9uczogYm9vbGVhbjtcclxuXHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgbXlLZXlEb3duV2hpdGVMaXN0OiBLZXlib2FyZENvZGVbXSA9IE5VTUJFUl9JTlBVVFNfS0VZX0RPV05fV0hJVEVfTElTVDtcclxuXHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgbnVtYmVyTG9naWM6IEJvdW5kc0NvbnN0cmFpbmVkTnVtYmVyVmFsdWUgPSBuZXcgQm91bmRzQ29uc3RyYWluZWROdW1iZXJWYWx1ZSgpO1xyXG5cclxuICAgIHB1YmxpYyBtaW5TZWxlY3RlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgcHVibGljIHBsdXNTZWxlY3RlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIHByaXZhdGUgX251bWJlcklucHV0SGFzRm9jdXM6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIHByaXZhdGUgX2NoYW5nZUZyb21CdXR0b246IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICBwcml2YXRlIF9udW1iZXJMb2dpY1ZhbHVlQ2hhbmdlU3ViOiBTdWJzY3JpcHRpb247XHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9kZWxheUJlZm9yZVN0YXJ0QXV0b0NvdW50TXM6IG51bWJlciA9IDY2NjtcclxuICAgIC8vIHRoZSAnc3BlZWQgZ2VhcnMnIGZvciBhdXRvIGNvdW50aW5nXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9zdGVwRmFjdG9yczogbnVtYmVyW10gPSBbMSwgMTAsIDIwXTtcclxuICAgIC8vIGluY3JlYXNlIHN0ZXAgc2l6ZSB0aW1pbmdcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgX21zQ2hhbmdlU3RlcEZhY3RvcjogbnVtYmVyID0gMTAwMDtcclxuICAgIC8vIHN0ZXAgc3BlZWRcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgX21zRG9TdGVwOiBudW1iZXIgPSA1O1xyXG4gICAgLy8gaG9sZCB0aGUgbW91c2UgZG93biBhbmQgdGhpcyBpbmNyZWFzZXMgZm9yIGEgZmFzdGVyIGF1dG8gaW5jcmVtZW50XHJcbiAgICBwcml2YXRlIF9zdGVwRmFjdG9yOiBudW1iZXIgPSB0aGlzLl9zdGVwRmFjdG9yc1swXTtcclxuICAgIHByaXZhdGUgX21heUF1dG9Db3VudDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIHByaXZhdGUgX2F1dG9Db3VudFRpbWVvdXQ6IG51bWJlcjtcclxuICAgIHByaXZhdGUgX3N0ZXBJbmNyZW1lbnRUaW1lb3V0OiBudW1iZXI7XHJcbiAgICBwcml2YXRlIF9zdGFydEF1dG9jb3VudFRpbWVvdXQ6IG51bWJlcjtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBAT3B0aW9uYWwoKSBwdWJsaWMgZm9ybUNvbXBvbmVudDogRm9ybUNvbXBvbmVudCxcclxuICAgICAgICBASW5qZWN0KEljb25DYWNoZVNlcnZpY2UpIHB1YmxpYyBpY29uQ2FjaGVTZXJ2aWNlOiBJY29uQ2FjaGVTZXJ2aWNlLFxyXG4gICAgICAgIHByb3RlY3RlZCBvdmVybGF5U2VydmljZTogT3ZlcmxheVNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBfbmdab25lOiBOZ1pvbmUsXHJcbiAgICAgICAgcHJvdGVjdGVkIGNvbXBvbmVudEZhY3RvcnlSZXNvbHZlcjogQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxyXG4gICAgICAgIGNoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgICAgICBmb3JtVXNlckNoYW5nZUxpc3RlbmVyOiBGb3JtSW5wdXRVc2VyTW9kZWxDaGFuZ2VMaXN0ZW5lclNlcnZpY2UsXHJcbiAgICAgICAgcHJvdGVjdGVkIG5nWm9uZVdyYXBwZXI/OiBOZ1pvbmVXcmFwcGVyU2VydmljZSxcclxuICAgICAgICBwdWJsaWMgZWxlbWVudFJlZj86IEVsZW1lbnRSZWYsXHJcbiAgICApIHtcclxuICAgICAgICBzdXBlcihjaGFuZ2VEZXRlY3RvciwgY29tcG9uZW50RmFjdG9yeVJlc29sdmVyLCBvdmVybGF5U2VydmljZSwgZm9ybVVzZXJDaGFuZ2VMaXN0ZW5lciwgbmdab25lV3JhcHBlciwgZWxlbWVudFJlZik7XHJcblxyXG4gICAgICAgIHRoaXMuX251bWJlckxvZ2ljVmFsdWVDaGFuZ2VTdWIgPSB0aGlzLm51bWJlckxvZ2ljLnZhbHVlQ2hhbmdlLnN1YnNjcmliZSgodmFsdWU6IG51bWJlcikgPT4ge1xyXG4gICAgICAgICAgICBpZiAoIXRoaXMuX21heUF1dG9Db3VudCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5tb2RlbCA9IHZhbHVlO1xyXG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLm1vZGVsQ2hhbmdlT25FbnRlciB8fCB0aGlzLl9jaGFuZ2VGcm9tQnV0dG9uKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5tb2RlbENoYW5nZS5lbWl0KHZhbHVlKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIC8vIGN1c3RvbSBmb3JtIHVzZXIgY2hhZ25lIGxpc3RlbmVyIC5uZXh0IGJlY2F1c2Ugd2UgZG9uJ3QgdXNlciBzdXBlci51cGRhdGVNb2RlbCgpIHdoaWNoIG5vcm1hbGx5IGRvZXMgdGhhdCBmb3IgdXNcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLl9tYXJrZWRBc1VzZXJUb3VjaGVkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mb3JtVXNlckNoYW5nZUxpc3RlbmVyLnVzZXJNb2RlbENoYW5nZS5uZXh0KHZhbHVlKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnVzZXJNb2RlbENoYW5nZS5uZXh0KHZhbHVlKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgICAgIC8vIHRoaXMubnVtYmVyTG9naWMuc2V0VmFsdWUodGhpcy5tb2RlbCwgdHJ1ZSk7XHJcbiAgICAgICAgLy8gdGhpcy5udW1iZXJMb2dpYy5pbml0KHRydWUpO1xyXG4gICAgICAgIHRoaXMuX3VwZGF0ZUJ1dHRvbnNTaG93U3RhdGUoKTtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl9udW1iZXJMb2dpY1ZhbHVlQ2hhbmdlU3ViLnVuc3Vic2NyaWJlKCk7XHJcbiAgICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuX2F1dG9Db3VudFRpbWVvdXQpO1xyXG4gICAgICAgIGNsZWFyVGltZW91dCh0aGlzLl9zdGVwSW5jcmVtZW50VGltZW91dCk7XHJcbiAgICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuX3N0YXJ0QXV0b2NvdW50VGltZW91dCk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gTm90ZTogcmVjdXJzaXZlIHRocm91Z2ggc2V0VGltZW91dCgpLlxyXG4gICAgcHVibGljIGRvSW5jcmVtZW50QXV0bygpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl9tYXlBdXRvQ291bnQgPSB0cnVlO1xyXG5cclxuICAgICAgICB0aGlzLmluY3JlbWVudCh0aGlzLl9zdGVwRmFjdG9yKTtcclxuXHJcbiAgICAgICAgdGhpcy5fbmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5fYXV0b0NvdW50VGltZW91dCA9IHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLl9tYXlBdXRvQ291bnQpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmRvSW5jcmVtZW50QXV0bygpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9LCB0aGlzLl9tc0RvU3RlcCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGhhbmRsZUlucHV0S2V5RG93bihldmVudDogS2V5Ym9hcmRFdmVudCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIC8vIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgaWYgKGV2ZW50LmNvZGUgPT09ICdFbnRlcicgfHwgZXZlbnQuY29kZSA9PT0gJ051bXBhZEVudGVyJykge1xyXG4gICAgICAgICAgICB0aGlzLm1vZGVsQ2hhbmdlLm5leHQodGhpcy5tb2RlbCk7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHRoaXMubXlLZXlEb3duV2hpdGVMaXN0LmZpbmQoKGspID0+IGsgPT09IGV2ZW50LmtleUNvZGUpID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgaGFuZGxlQmx1cigpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLm1vZGVsQ2hhbmdlLm5leHQodGhpcy5tb2RlbCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGhhbmRsZUNoYW5nZU1vZGVsKHZhbHVlOiBudW1iZXIpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl9jaGFuZ2VGcm9tQnV0dG9uID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5udW1iZXJMb2dpYy5zZXRWYWx1ZSh2YWx1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gTm90ZTogcmVjdXJzaXZlIHRocm91Z2ggc2V0VGltZW91dCgpLlxyXG4gICAgcHVibGljIGRvRGVjcmVtZW50QXV0bygpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl9tYXlBdXRvQ291bnQgPSB0cnVlO1xyXG5cclxuICAgICAgICB0aGlzLmRlY3JlbWVudCh0aGlzLl9zdGVwRmFjdG9yKTtcclxuXHJcbiAgICAgICAgdGhpcy5fbmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5fYXV0b0NvdW50VGltZW91dCA9IHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLl9tYXlBdXRvQ291bnQpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmRvRGVjcmVtZW50QXV0bygpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9LCB0aGlzLl9tc0RvU3RlcCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHN0b3BBdXRvQ291bnRpbmcoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5taW5TZWxlY3RlZCA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMucGx1c1NlbGVjdGVkID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5fbWF5QXV0b0NvdW50ID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5fc3RlcEZhY3RvciA9IHRoaXMuX3N0ZXBGYWN0b3JzWzBdO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIFNldHMgdGhlIGN1cnJlbnQgbnVtYmVyIHZhbHVlIHdpdGggZ2l2ZW4gbmV3VmFsdWUsIG9wdGlvbmFsbHkgc2lsZW50IChubyB2YWx1ZUNoYW5nZSBldmVudCBmaXJlZCkuXHJcbiAgICBwdWJsaWMgc2V0VmFsdWUobmV3VmFsdWU6IG51bWJlciwgc2lsZW50OiBib29sZWFuID0gZmFsc2UpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLm51bWJlckxvZ2ljLnNldFZhbHVlKG5ld1ZhbHVlLCBzaWxlbnQpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBpbmNyZW1lbnQoc3RlcHM6IG51bWJlciA9IDEpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl9jaGFuZ2VGcm9tQnV0dG9uID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLm51bWJlckxvZ2ljLmluY3JlbWVudChzdGVwcyk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGRlY3JlbWVudChzdGVwczogbnVtYmVyID0gMSk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX2NoYW5nZUZyb21CdXR0b24gPSB0cnVlO1xyXG4gICAgICAgIHRoaXMubnVtYmVyTG9naWMuZGVjcmVtZW50KHN0ZXBzKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgb25QbHVzTW91c2VEb3duKGV2ZW50OiBFdmVudCk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLnJlYWRvbmx5KSB7XHJcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5wbHVzU2VsZWN0ZWQgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuX21hcmtlZEFzVXNlclRvdWNoZWQgPSB0cnVlO1xyXG5cclxuICAgICAgICAvLyBrZWVwcyBmb2N1cyBvbiBpbnB1dCB0ZXh0IGluc3RlYWQgb2YgYnV0dG9uXHJcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuXHJcbiAgICAgICAgdGhpcy5pbmNyZW1lbnQoKTtcclxuICAgICAgICB0aGlzLl9tYXlBdXRvQ291bnQgPSB0cnVlO1xyXG5cclxuICAgICAgICBjbGVhclRpbWVvdXQodGhpcy5fc3RhcnRBdXRvY291bnRUaW1lb3V0KTtcclxuICAgICAgICB0aGlzLl9zdGFydEF1dG9jb3VudFRpbWVvdXQgPSB3aW5kb3cuc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLl9tYXlBdXRvQ291bnQpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuZG9JbmNyZW1lbnRBdXRvKCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9kb0luY3JlYXNlU3RlcEZhY3RvcigpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSwgdGhpcy5fZGVsYXlCZWZvcmVTdGFydEF1dG9Db3VudE1zKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgb25NaW51c01vdXNlRG93bihldmVudDogRXZlbnQpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy5yZWFkb25seSkge1xyXG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMubWluU2VsZWN0ZWQgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuX21hcmtlZEFzVXNlclRvdWNoZWQgPSB0cnVlO1xyXG4gICAgICAgIC8vIGtlZXBzIGZvY3VzIG9uIGlucHV0IHRleHQgaW5zdGVhZCBvZiBidXR0b25cclxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG5cclxuICAgICAgICB0aGlzLmRlY3JlbWVudCgpO1xyXG4gICAgICAgIHRoaXMuX21heUF1dG9Db3VudCA9IHRydWU7XHJcblxyXG4gICAgICAgIGNsZWFyVGltZW91dCh0aGlzLl9zdGFydEF1dG9jb3VudFRpbWVvdXQpO1xyXG4gICAgICAgIHRoaXMuX3N0YXJ0QXV0b2NvdW50VGltZW91dCA9IHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuX21heUF1dG9Db3VudCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5kb0RlY3JlbWVudEF1dG8oKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuX2RvSW5jcmVhc2VTdGVwRmFjdG9yKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9LCB0aGlzLl9kZWxheUJlZm9yZVN0YXJ0QXV0b0NvdW50TXMpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIE5vdGU6IHJlY3Vyc2l2ZS5cclxuICAgIHByaXZhdGUgX2RvSW5jcmVhc2VTdGVwRmFjdG9yKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX3N0ZXBJbmNyZW1lbnRUaW1lb3V0ID0gd2luZG93LnNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5fbWF5QXV0b0NvdW50KSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9zdGVwRmFjdG9yID0gdGhpcy5fZ2V0TmV4dFN0ZXBGYWN0b3JNb3VzZURvd24oKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuX2RvSW5jcmVhc2VTdGVwRmFjdG9yKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9LCB0aGlzLl9tc0NoYW5nZVN0ZXBGYWN0b3IpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX2dldE5leHRTdGVwRmFjdG9yTW91c2VEb3duKCk6IG51bWJlciB7XHJcbiAgICAgICAgY29uc3QgY3VySWR4OiBudW1iZXIgPSB0aGlzLl9zdGVwRmFjdG9ycy5pbmRleE9mKHRoaXMuX3N0ZXBGYWN0b3IpO1xyXG4gICAgICAgIGlmIChjdXJJZHggPCB0aGlzLl9zdGVwRmFjdG9ycy5sZW5ndGggLSAxKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9zdGVwRmFjdG9yc1tjdXJJZHggKyAxXTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3N0ZXBGYWN0b3I7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gU2hvdyBvciBoaWRlICsgYW5kIC0gYnV0dG9ucy4gTWlnaHQgaGlkZSBidXR0b25zIGlmIG51bWJlciBpbnB1dCBsb3N0IGZvY3VzIGFuZCBidXR0b24gc2hvdyBtb2RlIGlzIG9uIGZvY3VzIG9ubHkuXHJcbiAgICBwcml2YXRlIF91cGRhdGVCdXR0b25zU2hvd1N0YXRlKCk6IHZvaWQge1xyXG4gICAgICAgIHN3aXRjaCAodGhpcy5idXR0b25TaG93TW9kZSkge1xyXG4gICAgICAgICAgICBjYXNlIElucHV0TnVtYmVyUGlja2VyQnV0dG9uU2hvd01vZGUuQWx3YXlzOlxyXG4gICAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICAgICAgdGhpcy5zaG93QnV0dG9ucyA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSBJbnB1dE51bWJlclBpY2tlckJ1dHRvblNob3dNb2RlLk9uRm9jdXNPbmx5OlxyXG4gICAgICAgICAgICAgICAgdGhpcy5zaG93QnV0dG9ucyA9IHRoaXMuX251bWJlcklucHV0SGFzRm9jdXM7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSBJbnB1dE51bWJlclBpY2tlckJ1dHRvblNob3dNb2RlLk5ldmVyOlxyXG4gICAgICAgICAgICAgICAgdGhpcy5zaG93QnV0dG9ucyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbiJdfQ==
@@ -1,23 +0,0 @@
1
- import { NgModule } from "@angular/core";
2
- import { CommonModule } from "@angular/common";
3
- import { InputNumberPickerComponent } from "./input-number-picker.component";
4
- import { ButtonModule } from "../button/button.module";
5
- import { InputTextModule } from "../input-text/input-text.module";
6
- import { FormsModule } from "@angular/forms";
7
- import { IconModule } from '../icon/icon.module';
8
- export class InputNumberPickerModule {
9
- }
10
- InputNumberPickerModule.decorators = [
11
- { type: NgModule, args: [{
12
- imports: [
13
- CommonModule,
14
- FormsModule,
15
- ButtonModule,
16
- InputTextModule,
17
- IconModule
18
- ],
19
- declarations: [InputNumberPickerComponent],
20
- exports: [InputNumberPickerComponent]
21
- },] }
22
- ];
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtbnVtYmVyLXBpY2tlci5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvaW5wdXQtbnVtYmVyLXBpY2tlci9pbnB1dC1udW1iZXItcGlja2VyLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQUMsMEJBQTBCLEVBQUMsTUFBTSxpQ0FBaUMsQ0FBQztBQUMzRSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDckQsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLGlDQUFpQyxDQUFDO0FBQ2hFLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFhL0MsTUFBTSxPQUFPLHVCQUF1Qjs7O1lBWG5DLFFBQVEsU0FBQztnQkFDTixPQUFPLEVBQUU7b0JBQ0wsWUFBWTtvQkFDWixXQUFXO29CQUNYLFlBQVk7b0JBQ1osZUFBZTtvQkFDZixVQUFVO2lCQUNiO2dCQUNILFlBQVksRUFBRSxDQUFDLDBCQUEwQixDQUFDO2dCQUMxQyxPQUFPLEVBQUUsQ0FBQywwQkFBMEIsQ0FBQzthQUN0QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7TmdNb2R1bGV9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7Q29tbW9uTW9kdWxlfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XHJcbmltcG9ydCB7SW5wdXROdW1iZXJQaWNrZXJDb21wb25lbnR9IGZyb20gXCIuL2lucHV0LW51bWJlci1waWNrZXIuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7QnV0dG9uTW9kdWxlfSBmcm9tIFwiLi4vYnV0dG9uL2J1dHRvbi5tb2R1bGVcIjtcclxuaW1wb3J0IHtJbnB1dFRleHRNb2R1bGV9IGZyb20gXCIuLi9pbnB1dC10ZXh0L2lucHV0LXRleHQubW9kdWxlXCI7XHJcbmltcG9ydCB7Rm9ybXNNb2R1bGV9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5pbXBvcnQge0ljb25Nb2R1bGV9IGZyb20gJy4uL2ljb24vaWNvbi5tb2R1bGUnO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICAgIGltcG9ydHM6IFtcclxuICAgICAgICBDb21tb25Nb2R1bGUsXHJcbiAgICAgICAgRm9ybXNNb2R1bGUsXHJcbiAgICAgICAgQnV0dG9uTW9kdWxlLFxyXG4gICAgICAgIElucHV0VGV4dE1vZHVsZSxcclxuICAgICAgICBJY29uTW9kdWxlXHJcbiAgICBdLFxyXG4gIGRlY2xhcmF0aW9uczogW0lucHV0TnVtYmVyUGlja2VyQ29tcG9uZW50XSxcclxuICBleHBvcnRzOiBbSW5wdXROdW1iZXJQaWNrZXJDb21wb25lbnRdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBJbnB1dE51bWJlclBpY2tlck1vZHVsZSB7IH1cclxuIl19