@colijnit/corecomponents_v12 12.0.13 → 12.0.16

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 (632) hide show
  1. package/bundles/colijnit-corecomponents_v12.umd.js +7619 -0
  2. package/bundles/colijnit-corecomponents_v12.umd.js.map +1 -0
  3. package/colijnit-corecomponents_v12.d.ts +26 -0
  4. package/colijnit-corecomponents_v12.metadata.json +1 -0
  5. package/esm2015/colijnit-corecomponents_v12.js +27 -0
  6. package/esm2015/lib/components/article-tile/article-tile.component.js +80 -0
  7. package/esm2015/lib/components/article-tile/article-tile.module.js +35 -0
  8. package/esm2015/lib/components/base/base-input.component.js +571 -0
  9. package/esm2015/lib/components/base/base.module.js +22 -0
  10. package/esm2015/lib/components/base/component-interface-name.js +4 -0
  11. package/esm2015/lib/components/base/configuration-adapter-component.interface.js +2 -0
  12. package/esm2015/lib/components/button/button.component.js +70 -0
  13. package/esm2015/lib/components/button/button.module.js +19 -0
  14. package/esm2015/lib/components/button-drop-down/button-drop-down.component.js +47 -0
  15. package/esm2015/lib/components/button-drop-down/button-drop-down.module.js +21 -0
  16. package/esm2015/lib/components/co-dialog/co-dialog.component.js +67 -0
  17. package/esm2015/lib/components/co-dialog/co-dialog.module.js +19 -0
  18. package/esm2015/lib/components/co-dialog-prompt/co-dialog-prompt.component.js +60 -0
  19. package/esm2015/lib/components/co-dialog-prompt/co-dialog-prompt.module.js +16 -0
  20. package/esm2015/lib/components/co-kanban/co-kanban.component.js +107 -0
  21. package/esm2015/lib/components/co-kanban/co-kanban.module.js +21 -0
  22. package/esm2015/lib/components/co-rich-text-editor/co-rich-text-editor.component.js +53 -0
  23. package/esm2015/lib/components/co-rich-text-editor/co-rich-text-editor.module.js +21 -0
  24. package/esm2015/lib/components/co-schedule/co-schedule.component.js +64 -0
  25. package/esm2015/lib/components/co-schedule/co-schedule.module.js +21 -0
  26. package/esm2015/lib/components/co-sidebar/co-sidebar.component.js +39 -0
  27. package/esm2015/lib/components/co-sidebar/co-sidebar.module.js +15 -0
  28. package/esm2015/lib/components/co-toggle/co-toggle.component.js +35 -0
  29. package/esm2015/lib/components/co-toggle/co-toggle.module.js +21 -0
  30. package/esm2015/lib/components/collapsible/collapsible.component.js +58 -0
  31. package/esm2015/lib/components/collapsible/collapsible.module.js +17 -0
  32. package/esm2015/lib/components/drop-down-list/drop-down-list.component.js +61 -0
  33. package/esm2015/lib/components/drop-down-list/drop-down.module.js +20 -0
  34. package/esm2015/lib/components/form/form.component.js +198 -0
  35. package/esm2015/lib/components/form/form.module.js +23 -0
  36. package/esm2015/lib/components/grid/base/base-grid.component.js +77 -0
  37. package/esm2015/lib/components/grid/base/base-inline-edit-grid.component.js +41 -0
  38. package/esm2015/lib/components/grid/base/base-selection-grid.component.js +83 -0
  39. package/esm2015/lib/components/grid/base/base-toolbar-grid.component.js +79 -0
  40. package/esm2015/lib/components/grid/co-grid.component.js +57 -0
  41. package/esm2015/lib/components/grid/co-grid.module.js +36 -0
  42. package/esm2015/lib/components/grid/enum/grid-lines.enum.js +9 -0
  43. package/esm2015/lib/components/grid/interface/grid-menu-event-args.js +2 -0
  44. package/esm2015/lib/components/grid/interface/grid-row-drag-event-args.js +2 -0
  45. package/esm2015/lib/components/grid/interface/grid-row-drop-event-args.js +2 -0
  46. package/esm2015/lib/components/icon/icon-cache.service.js +52 -0
  47. package/esm2015/lib/components/icon/icon.component.js +28 -0
  48. package/esm2015/lib/components/icon/icon.module.js +25 -0
  49. package/esm2015/lib/components/image/image.component.js +20 -0
  50. package/esm2015/lib/components/image/image.module.js +13 -0
  51. package/esm2015/lib/components/input-checkbox/input-checkbox.component.js +58 -0
  52. package/esm2015/lib/components/input-checkbox/input-checkbox.module.js +23 -0
  53. package/esm2015/lib/components/input-checkbox-multi-select/input-checkbox-multi-select.component.js +68 -0
  54. package/esm2015/lib/components/input-checkbox-multi-select/input-checkbox-multi-select.module.js +25 -0
  55. package/esm2015/lib/components/input-combo-box/input-combo-box.component.js +77 -0
  56. package/esm2015/lib/components/input-combo-box/input-combo-box.module.js +25 -0
  57. package/esm2015/lib/components/input-date-picker/input-date-picker.component.js +95 -0
  58. package/esm2015/lib/components/input-date-picker/input-date-picker.module.js +28 -0
  59. package/esm2015/lib/components/input-listbox/input-listbox.component.js +66 -0
  60. package/esm2015/lib/components/input-listbox/input-listbox.module.js +25 -0
  61. package/esm2015/lib/components/input-number-picker/input-number-picker.component.js +284 -0
  62. package/esm2015/lib/components/input-number-picker/input-number-picker.module.js +21 -0
  63. package/esm2015/lib/components/input-radio-button/input-radio-button.component.js +52 -0
  64. package/esm2015/lib/components/input-radio-button/input-radio-button.module.js +22 -0
  65. package/esm2015/lib/components/input-text/input-text.component.js +126 -0
  66. package/esm2015/lib/components/input-text/input-text.module.js +29 -0
  67. package/esm2015/lib/components/level-indicator/level-indicator-level.enum.js +7 -0
  68. package/esm2015/lib/components/level-indicator/level-indicator.component.js +34 -0
  69. package/esm2015/lib/components/level-indicator/level-indicator.module.js +15 -0
  70. package/esm2015/lib/components/multi-select-list/multi-select-list.component.js +69 -0
  71. package/esm2015/lib/components/multi-select-list/multi-select-list.module.js +19 -0
  72. package/esm2015/lib/components/pivot/co-pivot.component.js +171 -0
  73. package/esm2015/lib/components/pivot/co-pivot.module.js +19 -0
  74. package/esm2015/lib/components/popup/const/popup-window-token.js +3 -0
  75. package/esm2015/lib/components/popup/interface/popup-button.js +8 -0
  76. package/esm2015/lib/components/popup/interface/popup-close-event.js +2 -0
  77. package/esm2015/lib/components/popup/interface/popup-settings.js +42 -0
  78. package/esm2015/lib/components/popup/interface/popup.js +2 -0
  79. package/esm2015/lib/components/popup/model/popup-button-globals.js +11 -0
  80. package/esm2015/lib/components/popup/model/popup-window.js +38 -0
  81. package/esm2015/lib/components/popup/popup-buttons.component.js +53 -0
  82. package/esm2015/lib/components/popup/popup-message-display.component.js +47 -0
  83. package/esm2015/lib/components/popup/popup-window-shell.component.js +159 -0
  84. package/esm2015/lib/components/popup/popup.module.js +49 -0
  85. package/esm2015/lib/components/popup/service/popup-shower.service.js +87 -0
  86. package/esm2015/lib/components/popup/service/prompt.service.js +124 -0
  87. package/esm2015/lib/components/popup/text-input-popup.component.js +36 -0
  88. package/esm2015/lib/components/simple-grid/simple-grid-column.directive.js +36 -0
  89. package/esm2015/lib/components/simple-grid/simple-grid.component.js +112 -0
  90. package/esm2015/lib/components/simple-grid/simple-grid.module.js +24 -0
  91. package/esm2015/lib/components/tile/tile.component.js +71 -0
  92. package/esm2015/lib/components/tile/tile.module.js +23 -0
  93. package/esm2015/lib/core/constant/default-upper-bound-for-range-components.js +3 -0
  94. package/esm2015/lib/core/constant/java-max-int.js +2 -0
  95. package/esm2015/lib/core/constant/number-inputs-key-down-white-list.js +44 -0
  96. package/esm2015/lib/core/decorator/input-boolean.decorator.js +34 -0
  97. package/esm2015/lib/core/enum/co-document-image-display-kind.enum.js +7 -0
  98. package/esm2015/lib/core/enum/co-document-type.enum.js +11 -0
  99. package/esm2015/lib/core/enum/core-components-icon.enum.js +58 -0
  100. package/esm2015/lib/core/enum/file-type-internal.enum.js +17 -0
  101. package/esm2015/lib/core/enum/file-type.enum.js +11 -0
  102. package/esm2015/lib/core/enum/float-label-type.enum.js +7 -0
  103. package/esm2015/lib/core/enum/input-number-picker-show-mode.enum.js +8 -0
  104. package/esm2015/lib/core/enum/input-text-type.enum.js +6 -0
  105. package/esm2015/lib/core/enum/keyboard-code.enum.js +74 -0
  106. package/esm2015/lib/core/enum/object-right-type.enum.js +7 -0
  107. package/esm2015/lib/core/enum/popup-button-type.enum.js +12 -0
  108. package/esm2015/lib/core/enum/popup-type.enum.js +11 -0
  109. package/esm2015/lib/core/enum/schedule-view.enum.js +16 -0
  110. package/esm2015/lib/core/enum/table-name.enum.js +81 -0
  111. package/esm2015/lib/core/function/any-nill.function.js +6 -0
  112. package/esm2015/lib/core/function/is-nill.function.js +5 -0
  113. package/esm2015/lib/core/function/none-nill.function.js +17 -0
  114. package/esm2015/lib/core/function/not-nill.function.js +5 -0
  115. package/esm2015/lib/core/model/bounds-constrained-number-value.js +171 -0
  116. package/esm2015/lib/core/model/check-precision-and-scale-result.js +2 -0
  117. package/esm2015/lib/core/model/check-within-stepped-bounds-result.js +2 -0
  118. package/esm2015/lib/core/model/co-document-right.bo.js +3 -0
  119. package/esm2015/lib/core/model/co-document.bo.js +121 -0
  120. package/esm2015/lib/core/model/core-components-icon-svg.js +56 -0
  121. package/esm2015/lib/core/model/element-position.js +10 -0
  122. package/esm2015/lib/core/model/event/string-prompt-result-event.js +8 -0
  123. package/esm2015/lib/core/model/numerical-range.js +14 -0
  124. package/esm2015/lib/core/service/form-input-user-change-listener.service.js +25 -0
  125. package/esm2015/lib/core/service/form-master.service.js +102 -0
  126. package/esm2015/lib/core/service/ng-zone-wrapper.service.js +20 -0
  127. package/esm2015/lib/core/utils/array-utils.js +264 -0
  128. package/esm2015/lib/core/utils/browser-utils.js +100 -0
  129. package/esm2015/lib/core/utils/event-utils.js +53 -0
  130. package/esm2015/lib/core/utils/file-utils.js +267 -0
  131. package/esm2015/lib/core/utils/number-utils.js +309 -0
  132. package/esm2015/lib/core/utils/object-utils.js +186 -0
  133. package/esm2015/lib/core/utils/string-utils.js +94 -0
  134. package/esm2015/lib/core/validator/max-string-length.validator.js +10 -0
  135. package/esm2015/lib/core/validator/precision-scale.validator.js +11 -0
  136. package/esm2015/lib/core/validator/required.validator.js +5 -0
  137. package/esm2015/lib/directives/ripple/ripple-ref.js +26 -0
  138. package/esm2015/lib/directives/ripple/ripple-renderer.js +160 -0
  139. package/esm2015/lib/directives/ripple/ripple.directive.js +80 -0
  140. package/esm2015/lib/directives/ripple/ripple.module.js +24 -0
  141. package/esm2015/lib/directives/ripple/scroll-dispatcher.service.js +108 -0
  142. package/esm2015/lib/directives/ripple/scrollable.directive.js +40 -0
  143. package/esm2015/lib/directives/ripple/viewport-ruler.service.js +73 -0
  144. package/esm2015/lib/directives/stopclick/stop-click.directive.js +38 -0
  145. package/esm2015/lib/directives/stopclick/stop-click.module.js +15 -0
  146. package/esm2015/lib/pipes/append.pipe.js +17 -0
  147. package/esm2015/lib/pipes/append.pipe.module.js +15 -0
  148. package/esm2015/lib/pipes/price-display-pipe.module.js +15 -0
  149. package/esm2015/lib/pipes/price-display.pipe.js +20 -0
  150. package/esm2015/public-api.js +72 -0
  151. package/fesm2015/colijnit-corecomponents_v12.js +6985 -0
  152. package/fesm2015/colijnit-corecomponents_v12.js.map +1 -0
  153. package/lib/components/article-tile/article-tile.component.d.ts +22 -0
  154. package/{src/lib → lib}/components/article-tile/article-tile.component.scss +0 -0
  155. package/lib/components/article-tile/article-tile.module.d.ts +2 -0
  156. package/lib/components/base/base-input.component.d.ts +146 -0
  157. package/lib/components/base/base.module.d.ts +2 -0
  158. package/lib/components/base/component-interface-name.d.ts +3 -0
  159. package/{src/lib/components/base/configuration-adapter-component.interface.ts → lib/components/base/configuration-adapter-component.interface.d.ts} +0 -0
  160. package/lib/components/button/button.component.d.ts +20 -0
  161. package/lib/components/button/button.module.d.ts +2 -0
  162. package/lib/components/button/style/_co-ripple.scss +69 -0
  163. package/lib/components/button/style/_layout.scss +64 -0
  164. package/lib/components/button/style/_material-definition.scss +9 -0
  165. package/lib/components/button/style/_theme.scss +81 -0
  166. package/lib/components/button/style/material.scss +22 -0
  167. package/lib/components/button-drop-down/button-drop-down.component.d.ts +16 -0
  168. package/lib/components/button-drop-down/button-drop-down.module.d.ts +2 -0
  169. package/lib/components/button-drop-down/style/_layout.scss +7 -0
  170. package/{src/lib/components/co-dialog-prompt/co-dialog-prompt.component.scss → lib/components/button-drop-down/style/_material-definition.scss} +0 -0
  171. package/lib/components/button-drop-down/style/_theme.scss +5 -0
  172. package/lib/components/button-drop-down/style/material.scss +4 -0
  173. package/{src/lib → lib}/components/card/card.scss +3 -1
  174. package/lib/components/co-dialog/co-dialog.component.d.ts +12 -0
  175. package/lib/components/co-dialog/co-dialog.module.d.ts +2 -0
  176. package/lib/components/co-dialog/style/_layout.scss +47 -0
  177. package/lib/components/co-dialog/style/_material-definition.scss +23 -0
  178. package/lib/components/co-dialog/style/_theme.scss +27 -0
  179. package/lib/components/co-dialog/style/material.scss +4 -0
  180. package/lib/components/co-dialog-prompt/co-dialog-prompt.component.d.ts +19 -0
  181. package/{src/lib/components/co-dialog/co-dialog.component.scss → lib/components/co-dialog-prompt/co-dialog-prompt.component.scss} +0 -0
  182. package/lib/components/co-dialog-prompt/co-dialog-prompt.module.d.ts +2 -0
  183. package/lib/components/co-kanban/co-kanban.component.d.ts +28 -0
  184. package/lib/components/co-kanban/co-kanban.module.d.ts +2 -0
  185. package/lib/components/co-kanban/style/_layout.scss +51 -0
  186. package/lib/components/co-kanban/style/_material-definition.scss +25 -0
  187. package/lib/components/co-kanban/style/_theme.scss +7 -0
  188. package/lib/components/co-kanban/style/material.scss +13 -0
  189. package/lib/components/co-rich-text-editor/co-rich-text-editor.component.d.ts +13 -0
  190. package/lib/components/co-rich-text-editor/co-rich-text-editor.module.d.ts +2 -0
  191. package/lib/components/co-rich-text-editor/style/_layout.scss +5 -0
  192. package/lib/components/co-rich-text-editor/style/_material-definition.scss +9 -0
  193. package/lib/components/co-rich-text-editor/style/_theme.scss +5 -0
  194. package/lib/components/co-rich-text-editor/style/material.scss +4 -0
  195. package/lib/components/co-schedule/co-schedule.component.d.ts +18 -0
  196. package/{src/lib → lib}/components/co-schedule/co-schedule.component.scss +0 -0
  197. package/lib/components/co-schedule/co-schedule.module.d.ts +2 -0
  198. package/lib/components/co-sidebar/co-sidebar.component.d.ts +10 -0
  199. package/{src/lib → lib}/components/co-sidebar/co-sidebar.component.scss +0 -0
  200. package/lib/components/co-sidebar/co-sidebar.module.d.ts +2 -0
  201. package/lib/components/co-toggle/co-toggle.component.d.ts +9 -0
  202. package/lib/components/co-toggle/co-toggle.component.scss +1 -0
  203. package/lib/components/co-toggle/co-toggle.module.d.ts +2 -0
  204. package/lib/components/collapsible/collapsible.component.d.ts +16 -0
  205. package/lib/components/collapsible/collapsible.module.d.ts +2 -0
  206. package/lib/components/collapsible/style/_layout.scss +53 -0
  207. package/lib/components/collapsible/style/_material-definition.scss +9 -0
  208. package/lib/components/collapsible/style/_theme.scss +9 -0
  209. package/lib/components/collapsible/style/material.scss +4 -0
  210. package/lib/components/drop-down-list/drop-down-list.component.d.ts +16 -0
  211. package/{src/lib → lib}/components/drop-down-list/drop-down-list.component.scss +0 -0
  212. package/lib/components/drop-down-list/drop-down.module.d.ts +2 -0
  213. package/lib/components/drop-down-list/style/_layout.scss +7 -0
  214. package/{src/lib/components/co-rich-text-editor/co-rich-text-editor.component.scss → lib/components/drop-down-list/style/_material-definition.scss} +0 -0
  215. package/lib/components/drop-down-list/style/_theme.scss +5 -0
  216. package/lib/components/drop-down-list/style/material.scss +4 -0
  217. package/lib/components/form/form.component.d.ts +40 -0
  218. package/lib/components/form/form.module.d.ts +2 -0
  219. package/lib/components/grid/base/base-grid.component.d.ts +24 -0
  220. package/lib/components/grid/base/base-inline-edit-grid.component.d.ts +9 -0
  221. package/lib/components/grid/base/base-selection-grid.component.d.ts +27 -0
  222. package/lib/components/grid/base/base-toolbar-grid.component.d.ts +17 -0
  223. package/lib/components/grid/co-grid.component.d.ts +6 -0
  224. package/lib/components/grid/co-grid.module.d.ts +2 -0
  225. package/{src/lib/components/grid/enum/grid-lines.enum.ts → lib/components/grid/enum/grid-lines.enum.d.ts} +2 -2
  226. package/lib/components/grid/interface/grid-menu-event-args.d.ts +3 -0
  227. package/lib/components/grid/interface/grid-row-drag-event-args.d.ts +3 -0
  228. package/lib/components/grid/interface/grid-row-drop-event-args.d.ts +3 -0
  229. package/lib/components/grid/style/_layout.scss +38 -0
  230. package/lib/components/grid/style/_material-definition.scss +17 -0
  231. package/lib/components/grid/style/_theme.scss +5 -0
  232. package/lib/components/grid/style/material.scss +4 -0
  233. package/lib/components/icon/icon-cache.service.d.ts +20 -0
  234. package/lib/components/icon/icon.component.d.ts +10 -0
  235. package/lib/components/icon/icon.module.d.ts +2 -0
  236. package/{src/lib → lib}/components/icon/icon.scss +3 -2
  237. package/lib/components/image/image.component.d.ts +4 -0
  238. package/lib/components/image/image.module.d.ts +2 -0
  239. package/lib/components/input-checkbox/input-checkbox.component.d.ts +16 -0
  240. package/lib/components/input-checkbox/input-checkbox.module.d.ts +2 -0
  241. package/lib/components/input-checkbox/style/_layout.scss +5 -0
  242. package/lib/components/input-checkbox/style/_material-definition.scss +2 -0
  243. package/lib/components/input-checkbox/style/_theme.scss +5 -0
  244. package/lib/components/input-checkbox/style/material.scss +4 -0
  245. package/lib/components/input-checkbox-multi-select/input-checkbox-multi-select.component.d.ts +22 -0
  246. package/lib/components/input-checkbox-multi-select/input-checkbox-multi-select.module.d.ts +2 -0
  247. package/lib/components/input-checkbox-multi-select/style/_layout.scss +5 -0
  248. package/lib/components/input-checkbox-multi-select/style/_material-definition.scss +7 -0
  249. package/lib/components/input-checkbox-multi-select/style/_theme.scss +5 -0
  250. package/lib/components/input-checkbox-multi-select/style/material.scss +4 -0
  251. package/lib/components/input-combo-box/input-combo-box.component.d.ts +25 -0
  252. package/lib/components/input-combo-box/input-combo-box.module.d.ts +2 -0
  253. package/lib/components/input-combo-box/style/_layout.scss +5 -0
  254. package/lib/components/input-combo-box/style/_material-definition.scss +7 -0
  255. package/lib/components/input-combo-box/style/_theme.scss +5 -0
  256. package/lib/components/input-combo-box/style/material.scss +4 -0
  257. package/lib/components/input-date-picker/input-date-picker.component.d.ts +30 -0
  258. package/lib/components/input-date-picker/input-date-picker.module.d.ts +2 -0
  259. package/lib/components/input-date-picker/style/_layout.scss +5 -0
  260. package/lib/components/input-date-picker/style/_material-definition.scss +8 -0
  261. package/lib/components/input-date-picker/style/_theme.scss +5 -0
  262. package/lib/components/input-date-picker/style/material.scss +4 -0
  263. package/lib/components/input-listbox/input-listbox.component.d.ts +14 -0
  264. package/lib/components/input-listbox/input-listbox.module.d.ts +2 -0
  265. package/lib/components/input-listbox/style/_layout.scss +22 -0
  266. package/lib/components/input-listbox/style/_material-definition.scss +10 -0
  267. package/lib/components/input-listbox/style/_theme.scss +14 -0
  268. package/lib/components/input-listbox/style/material.scss +4 -0
  269. package/lib/components/input-number-picker/input-number-picker.component.d.ts +65 -0
  270. package/lib/components/input-number-picker/input-number-picker.module.d.ts +2 -0
  271. package/lib/components/input-number-picker/style/_layout.scss +43 -0
  272. package/lib/components/input-number-picker/style/_material-definition.scss +17 -0
  273. package/lib/components/input-number-picker/style/_theme.scss +22 -0
  274. package/lib/components/input-number-picker/style/material.scss +4 -0
  275. package/lib/components/input-radio-button/input-radio-button.component.d.ts +15 -0
  276. package/lib/components/input-radio-button/input-radio-button.module.d.ts +2 -0
  277. package/lib/components/input-radio-button/style/_layout.scss +28 -0
  278. package/lib/components/input-radio-button/style/_material-definition.scss +9 -0
  279. package/lib/components/input-radio-button/style/_theme.scss +11 -0
  280. package/lib/components/input-radio-button/style/material.scss +4 -0
  281. package/lib/components/input-search/style/_layout.scss +42 -0
  282. package/lib/components/input-search/style/_material-definition.scss +6 -0
  283. package/lib/components/input-search/style/_theme.scss +10 -0
  284. package/lib/components/input-search/style/material.scss +4 -0
  285. package/lib/components/input-text/input-text.component.d.ts +47 -0
  286. package/lib/components/input-text/input-text.module.d.ts +2 -0
  287. package/lib/components/input-text/style/_layout.scss +5 -0
  288. package/lib/components/input-text/style/_material-definition.scss +3 -0
  289. package/lib/components/input-text/style/_theme.scss +5 -0
  290. package/lib/components/input-text/style/material.scss +4 -0
  291. package/{src/lib/components/level-indicator/level-indicator-level.enum.ts → lib/components/level-indicator/level-indicator-level.enum.d.ts} +2 -2
  292. package/lib/components/level-indicator/level-indicator.component.d.ts +9 -0
  293. package/lib/components/level-indicator/level-indicator.module.d.ts +2 -0
  294. package/{src/lib → lib}/components/level-indicator/level-indicator.scss +4 -2
  295. package/lib/components/multi-select-list/multi-select-list.component.d.ts +19 -0
  296. package/lib/components/multi-select-list/multi-select-list.module.d.ts +2 -0
  297. package/lib/components/multi-select-list/style/_layout.scss +5 -0
  298. package/lib/components/multi-select-list/style/_material-definition.scss +7 -0
  299. package/lib/components/multi-select-list/style/_theme.scss +5 -0
  300. package/lib/components/multi-select-list/style/material.scss +4 -0
  301. package/lib/components/pivot/co-pivot.component.d.ts +40 -0
  302. package/lib/components/pivot/co-pivot.module.d.ts +2 -0
  303. package/lib/components/pivot/style/_layout.scss +5 -0
  304. package/lib/components/pivot/style/_material-definition.scss +10 -0
  305. package/lib/components/pivot/style/_theme.scss +5 -0
  306. package/lib/components/pivot/style/material.scss +4 -0
  307. package/lib/components/popup/const/popup-window-token.d.ts +3 -0
  308. package/lib/components/popup/interface/popup-button.d.ts +8 -0
  309. package/{src/lib/components/popup/interface/popup-close-event.ts → lib/components/popup/interface/popup-close-event.d.ts} +0 -3
  310. package/lib/components/popup/interface/popup-settings.d.ts +21 -0
  311. package/lib/components/popup/interface/popup.d.ts +9 -0
  312. package/lib/components/popup/model/popup-button-globals.d.ts +9 -0
  313. package/lib/components/popup/model/popup-window.d.ts +21 -0
  314. package/lib/components/popup/popup-buttons.component.d.ts +13 -0
  315. package/{src/lib → lib}/components/popup/popup-buttons.component.scss +0 -0
  316. package/lib/components/popup/popup-message-display.component.d.ts +12 -0
  317. package/lib/components/popup/popup-window-shell.component.d.ts +42 -0
  318. package/{src/lib → lib}/components/popup/popup-window-shell.component.scss +8 -8
  319. package/lib/components/popup/popup.module.d.ts +4 -0
  320. package/lib/components/popup/service/popup-shower.service.d.ts +17 -0
  321. package/lib/components/popup/service/prompt.service.d.ts +17 -0
  322. package/lib/components/popup/text-input-popup.component.d.ts +12 -0
  323. package/lib/components/simple-grid/simple-grid-column.directive.d.ts +18 -0
  324. package/lib/components/simple-grid/simple-grid.component.d.ts +26 -0
  325. package/lib/components/simple-grid/simple-grid.module.d.ts +2 -0
  326. package/lib/components/simple-grid/style/_layout.scss +80 -0
  327. package/lib/components/simple-grid/style/_material-definition.scss +16 -0
  328. package/lib/components/simple-grid/style/_theme.scss +17 -0
  329. package/lib/components/simple-grid/style/material.scss +4 -0
  330. package/lib/components/tile/tile.component.d.ts +15 -0
  331. package/{src/lib → lib}/components/tile/tile.component.scss +4 -4
  332. package/lib/components/tile/tile.module.d.ts +2 -0
  333. package/lib/core/constant/default-upper-bound-for-range-components.d.ts +1 -0
  334. package/lib/core/constant/java-max-int.d.ts +1 -0
  335. package/lib/core/constant/number-inputs-key-down-white-list.d.ts +2 -0
  336. package/lib/core/decorator/input-boolean.decorator.d.ts +8 -0
  337. package/{src/lib/core/enum/co-document-image-display-kind.enum.ts → lib/core/enum/co-document-image-display-kind.enum.d.ts} +1 -1
  338. package/lib/core/enum/co-document-type.enum.d.ts +5 -0
  339. package/{src/lib/core/enum/core-components-icon.enum.ts → lib/core/enum/core-components-icon.enum.d.ts} +56 -57
  340. package/{src/lib/core/enum/file-type-internal.enum.ts → lib/core/enum/file-type-internal.enum.d.ts} +10 -10
  341. package/lib/core/enum/file-type.enum.d.ts +5 -0
  342. package/lib/core/enum/float-label-type.enum.d.ts +5 -0
  343. package/lib/core/enum/input-number-picker-show-mode.enum.d.ts +5 -0
  344. package/lib/core/enum/input-text-type.enum.d.ts +4 -0
  345. package/{src/lib/core/enum/keyboard-code.enum.ts → lib/core/enum/keyboard-code.enum.d.ts} +23 -24
  346. package/{src/lib/core/enum/object-right-type.enum.ts → lib/core/enum/object-right-type.enum.d.ts} +1 -1
  347. package/lib/core/enum/popup-button-type.enum.d.ts +9 -0
  348. package/lib/core/enum/popup-type.enum.d.ts +9 -0
  349. package/{src/lib/core/enum/schedule-view.enum.ts → lib/core/enum/schedule-view.enum.d.ts} +2 -2
  350. package/{src/lib/core/enum/table-name.enum.ts → lib/core/enum/table-name.enum.d.ts} +1 -1
  351. package/lib/core/function/any-nill.function.d.ts +1 -0
  352. package/lib/core/function/is-nill.function.d.ts +1 -0
  353. package/lib/core/function/none-nill.function.d.ts +1 -0
  354. package/lib/core/function/not-nill.function.d.ts +1 -0
  355. package/lib/core/model/bounds-constrained-number-value.d.ts +46 -0
  356. package/{src/lib/core/model/check-precision-and-scale-result.ts → lib/core/model/check-precision-and-scale-result.d.ts} +1 -2
  357. package/{src/lib/core/model/check-within-stepped-bounds-result.ts → lib/core/model/check-within-stepped-bounds-result.d.ts} +3 -3
  358. package/lib/core/model/co-document-right.bo.d.ts +6 -0
  359. package/lib/core/model/co-document.bo.d.ts +61 -0
  360. package/lib/core/model/core-components-icon-svg.d.ts +4 -0
  361. package/lib/core/model/element-position.d.ts +7 -0
  362. package/lib/core/model/event/string-prompt-result-event.d.ts +6 -0
  363. package/lib/core/model/numerical-range.d.ts +7 -0
  364. package/lib/core/service/form-input-user-change-listener.service.d.ts +10 -0
  365. package/lib/core/service/form-master.service.d.ts +26 -0
  366. package/lib/core/service/ng-zone-wrapper.service.d.ts +6 -0
  367. package/lib/core/utils/array-utils.d.ts +85 -0
  368. package/lib/core/utils/browser-utils.d.ts +15 -0
  369. package/lib/core/utils/event-utils.d.ts +12 -0
  370. package/lib/core/utils/file-utils.d.ts +29 -0
  371. package/lib/core/utils/number-utils.d.ts +89 -0
  372. package/lib/core/utils/object-utils.d.ts +31 -0
  373. package/lib/core/utils/string-utils.d.ts +25 -0
  374. package/lib/core/validator/max-string-length.validator.d.ts +2 -0
  375. package/lib/core/validator/precision-scale.validator.d.ts +2 -0
  376. package/lib/core/validator/required.validator.d.ts +2 -0
  377. package/lib/directives/ripple/ripple-ref.d.ts +21 -0
  378. package/lib/directives/ripple/ripple-renderer.d.ts +56 -0
  379. package/lib/directives/ripple/ripple.directive.d.ts +56 -0
  380. package/lib/directives/ripple/ripple.module.d.ts +2 -0
  381. package/lib/directives/ripple/scroll-dispatcher.service.d.ts +51 -0
  382. package/lib/directives/ripple/scrollable.directive.d.ts +20 -0
  383. package/lib/directives/ripple/viewport-ruler.service.d.ts +29 -0
  384. package/lib/directives/stopclick/stop-click.directive.d.ts +10 -0
  385. package/lib/directives/stopclick/stop-click.module.d.ts +2 -0
  386. package/{src/lib → lib}/modules/pagination/pagination.scss +4 -4
  387. package/lib/pipes/append.pipe.d.ts +4 -0
  388. package/lib/pipes/append.pipe.module.d.ts +2 -0
  389. package/lib/pipes/price-display-pipe.module.d.ts +2 -0
  390. package/lib/pipes/price-display.pipe.d.ts +4 -0
  391. package/{src/lib → lib}/style/_extendables.scss +0 -0
  392. package/{src/lib → lib}/style/_input.mixins.scss +0 -0
  393. package/lib/style/_mixin.scss +9 -0
  394. package/{src/lib → lib}/style/_responsiveness.mixins.scss +0 -0
  395. package/{src/lib → lib}/style/_responsiveness.scss +0 -0
  396. package/{src/lib → lib}/style/_transition.mixins.scss +0 -0
  397. package/{src/lib/style/_base-input.scss → lib/style/_variables.scss} +77 -95
  398. package/{src/lib → lib}/style/main.scss +0 -0
  399. package/{src/lib → lib}/style/material2/_core.scss +3 -3
  400. package/lib/style/material2/_material2-scss-barrel.scss +16 -0
  401. package/{src/lib → lib}/style/material2/ripple/_co-ripple.scss +0 -0
  402. package/{src/lib → lib}/style/material2/style/_elevation.scss +0 -0
  403. package/{src/lib → lib}/style/material2/style/_list-common.scss +0 -0
  404. package/{src/lib → lib}/style/material2/style/_variables.scss +0 -0
  405. package/{src/lib → lib}/style/material2/theming/_palette.scss +0 -0
  406. package/{src/lib → lib}/style/material2/theming/_theming.scss +0 -0
  407. package/{src/lib → lib}/style/material2/typography/_typography.scss +0 -0
  408. package/package.json +11 -3
  409. package/{src/public-api.ts → public-api.d.ts} +68 -66
  410. package/colijnit-corecomponents_v12-12.0.13.tgz +0 -0
  411. package/karma.conf.js +0 -44
  412. package/ng-package.json +0 -10
  413. package/src/lib/components/article-tile/article-tile.component.ts +0 -95
  414. package/src/lib/components/article-tile/article-tile.module.ts +0 -34
  415. package/src/lib/components/base/base-input.component.ts +0 -681
  416. package/src/lib/components/base/base.module.ts +0 -22
  417. package/src/lib/components/base/component-interface-name.ts +0 -6
  418. package/src/lib/components/button/button.component.ts +0 -94
  419. package/src/lib/components/button/button.module.ts +0 -18
  420. package/src/lib/components/button/button.scss +0 -111
  421. package/src/lib/components/button-drop-down/button-drop-down.component.scss +0 -19
  422. package/src/lib/components/button-drop-down/button-drop-down.component.ts +0 -53
  423. package/src/lib/components/button-drop-down/button-drop-down.module.ts +0 -17
  424. package/src/lib/components/card/card.component.ts +0 -92
  425. package/src/lib/components/card/card.module.ts +0 -34
  426. package/src/lib/components/co-dialog/co-dialog.component.ts +0 -88
  427. package/src/lib/components/co-dialog/co-dialog.module.ts +0 -15
  428. package/src/lib/components/co-dialog-prompt/co-dialog-prompt.component.ts +0 -70
  429. package/src/lib/components/co-dialog-prompt/co-dialog-prompt.module.ts +0 -15
  430. package/src/lib/components/co-kanban/co-kanban.component.ts +0 -128
  431. package/src/lib/components/co-kanban/co-kanban.module.ts +0 -18
  432. package/src/lib/components/co-rich-text-editor/co-rich-text-editor.component.ts +0 -69
  433. package/src/lib/components/co-rich-text-editor/co-rich-text-editor.module.ts +0 -18
  434. package/src/lib/components/co-schedule/co-schedule.component.ts +0 -96
  435. package/src/lib/components/co-schedule/co-schedule.module.ts +0 -19
  436. package/src/lib/components/co-sidebar/co-sidebar.component.ts +0 -42
  437. package/src/lib/components/co-sidebar/co-sidebar.module.ts +0 -13
  438. package/src/lib/components/co-toggle/co-toggle.component.scss +0 -0
  439. package/src/lib/components/co-toggle/co-toggle.component.ts +0 -46
  440. package/src/lib/components/co-toggle/co-toggle.module.ts +0 -18
  441. package/src/lib/components/drop-down-list/drop-down-list.component.ts +0 -65
  442. package/src/lib/components/drop-down-list/drop-down.module.ts +0 -18
  443. package/src/lib/components/form/form.component.ts +0 -223
  444. package/src/lib/components/form/form.module.ts +0 -22
  445. package/src/lib/components/grid/base/base-grid.component.ts +0 -83
  446. package/src/lib/components/grid/base/base-inline-edit-grid.component.ts +0 -36
  447. package/src/lib/components/grid/base/base-selection-grid.component.ts +0 -98
  448. package/src/lib/components/grid/base/base-toolbar-grid.component.ts +0 -75
  449. package/src/lib/components/grid/co-grid.component.scss +0 -29
  450. package/src/lib/components/grid/co-grid.component.ts +0 -70
  451. package/src/lib/components/grid/co-grid.module.ts +0 -49
  452. package/src/lib/components/grid/enum/column-align.enum.ts +0 -5
  453. package/src/lib/components/grid/interface/grid-menu-event-args.ts +0 -5
  454. package/src/lib/components/grid/interface/grid-row-drag-event-args.ts +0 -5
  455. package/src/lib/components/grid/interface/grid-row-drop-event-args.ts +0 -5
  456. package/src/lib/components/grid/model/co-grid-column.ts +0 -9
  457. package/src/lib/components/icon/icon-cache.service.ts +0 -57
  458. package/src/lib/components/icon/icon.component.ts +0 -30
  459. package/src/lib/components/icon/icon.module.ts +0 -24
  460. package/src/lib/components/image/image.component.ts +0 -20
  461. package/src/lib/components/image/image.css +0 -9
  462. package/src/lib/components/image/image.module.ts +0 -11
  463. package/src/lib/components/input-checkbox/input-checkbox.component.scss +0 -14
  464. package/src/lib/components/input-checkbox/input-checkbox.component.ts +0 -69
  465. package/src/lib/components/input-checkbox/input-checkbox.module.ts +0 -22
  466. package/src/lib/components/input-checkbox-multi-select/input-checkbox-multi-select.component.scss +0 -8
  467. package/src/lib/components/input-checkbox-multi-select/input-checkbox-multi-select.component.ts +0 -84
  468. package/src/lib/components/input-checkbox-multi-select/input-checkbox-multi-select.module.ts +0 -24
  469. package/src/lib/components/input-combo-box/input-combo-box.component.scss +0 -8
  470. package/src/lib/components/input-combo-box/input-combo-box.component.ts +0 -96
  471. package/src/lib/components/input-combo-box/input-combo-box.module.ts +0 -24
  472. package/src/lib/components/input-date-picker/input-date-picker.component.scss +0 -30
  473. package/src/lib/components/input-date-picker/input-date-picker.component.ts +0 -121
  474. package/src/lib/components/input-date-picker/input-date-picker.module.ts +0 -27
  475. package/src/lib/components/input-number-picker/input-number-picker.component.scss +0 -49
  476. package/src/lib/components/input-number-picker/input-number-picker.component.ts +0 -316
  477. package/src/lib/components/input-number-picker/input-number-picker.module.ts +0 -16
  478. package/src/lib/components/input-radio-button/input-radio-button.component.scss +0 -89
  479. package/src/lib/components/input-radio-button/input-radio-button.component.ts +0 -74
  480. package/src/lib/components/input-radio-button/input-radio-button.module.ts +0 -20
  481. package/src/lib/components/input-text/input-text.component.ts +0 -155
  482. package/src/lib/components/input-text/input-text.module.ts +0 -27
  483. package/src/lib/components/input-text/input-text.scss +0 -4
  484. package/src/lib/components/level-indicator/level-indicator.component.ts +0 -41
  485. package/src/lib/components/level-indicator/level-indicator.module.ts +0 -13
  486. package/src/lib/components/multi-select-list/multi-select-list.component.scss +0 -1
  487. package/src/lib/components/multi-select-list/multi-select-list.component.ts +0 -78
  488. package/src/lib/components/multi-select-list/multi-select-list.module.ts +0 -17
  489. package/src/lib/components/pivot/co-pivot.component.scss +0 -0
  490. package/src/lib/components/pivot/co-pivot.component.ts +0 -246
  491. package/src/lib/components/pivot/co-pivot.module.ts +0 -16
  492. package/src/lib/components/popup/const/popup-window-token.ts +0 -4
  493. package/src/lib/components/popup/interface/popup-button.ts +0 -14
  494. package/src/lib/components/popup/interface/popup-settings.ts +0 -70
  495. package/src/lib/components/popup/interface/popup.ts +0 -17
  496. package/src/lib/components/popup/model/popup-button-globals.ts +0 -11
  497. package/src/lib/components/popup/model/popup-window.ts +0 -51
  498. package/src/lib/components/popup/popup-buttons.component.ts +0 -61
  499. package/src/lib/components/popup/popup-message-display.component.ts +0 -49
  500. package/src/lib/components/popup/popup-window-shell.component.ts +0 -222
  501. package/src/lib/components/popup/popup.module.ts +0 -48
  502. package/src/lib/components/popup/service/popup-shower.service.ts +0 -98
  503. package/src/lib/components/popup/service/prompt.service.ts +0 -127
  504. package/src/lib/components/popup/text-input-popup.component.ts +0 -36
  505. package/src/lib/components/tile/tile.component.ts +0 -70
  506. package/src/lib/components/tile/tile.module.ts +0 -21
  507. package/src/lib/core/abstract/collection-based-component.ts +0 -488
  508. package/src/lib/core/config/device-environment.ts +0 -26
  509. package/src/lib/core/constant/default-upper-bound-for-range-components.ts +0 -3
  510. package/src/lib/core/constant/java-max-int.ts +0 -1
  511. package/src/lib/core/constant/number-inputs-key-down-white-list.ts +0 -45
  512. package/src/lib/core/decorator/input-boolean.decorator.ts +0 -35
  513. package/src/lib/core/enum/co-direction.ts +0 -7
  514. package/src/lib/core/enum/co-document-type.enum.ts +0 -9
  515. package/src/lib/core/enum/co-orientation.ts +0 -18
  516. package/src/lib/core/enum/collection-based-component-input-driver-prop.enum.ts +0 -10
  517. package/src/lib/core/enum/color-sequence-name.enum.ts +0 -5
  518. package/src/lib/core/enum/file-type.enum.ts +0 -9
  519. package/src/lib/core/enum/float-label-type.enum.ts +0 -5
  520. package/src/lib/core/enum/input-number-picker-show-mode.enum.ts +0 -6
  521. package/src/lib/core/enum/input-text-type.enum.ts +0 -4
  522. package/src/lib/core/enum/keyboard-key.enum.ts +0 -77
  523. package/src/lib/core/enum/logical-operator-type.enum.ts +0 -5
  524. package/src/lib/core/enum/popup-button-type.enum.ts +0 -10
  525. package/src/lib/core/enum/popup-type.enum.ts +0 -9
  526. package/src/lib/core/enum/search-data-type.ts +0 -4
  527. package/src/lib/core/enum/search-property-state.ts +0 -5
  528. package/src/lib/core/enum/sort-data-type.ts +0 -6
  529. package/src/lib/core/enum/sort-direction.ts +0 -9
  530. package/src/lib/core/enum/value-comparison-type.ts +0 -11
  531. package/src/lib/core/function/any-nill.function.ts +0 -6
  532. package/src/lib/core/function/is-nill.function.ts +0 -4
  533. package/src/lib/core/function/none-nill.function.ts +0 -16
  534. package/src/lib/core/function/not-nill.function.ts +0 -4
  535. package/src/lib/core/interface/search-property.ts +0 -15
  536. package/src/lib/core/interface/sort-property.ts +0 -16
  537. package/src/lib/core/model/bounds-constrained-number-value.ts +0 -219
  538. package/src/lib/core/model/co-document-right.bo.ts +0 -9
  539. package/src/lib/core/model/co-document.bo.ts +0 -193
  540. package/src/lib/core/model/color-sequence.ts +0 -39
  541. package/src/lib/core/model/color.ts +0 -29
  542. package/src/lib/core/model/core-components-icon-svg.ts +0 -56
  543. package/src/lib/core/model/element-position.ts +0 -14
  544. package/src/lib/core/model/event/number-prompt-result-event.ts +0 -10
  545. package/src/lib/core/model/event/string-prompt-result-event.ts +0 -10
  546. package/src/lib/core/model/numerical-range.ts +0 -19
  547. package/src/lib/core/service/color-sequence.service.ts +0 -104
  548. package/src/lib/core/service/form-input-user-change-listener.service.ts +0 -31
  549. package/src/lib/core/service/form-master.service.ts +0 -119
  550. package/src/lib/core/service/ng-zone-wrapper.service.ts +0 -15
  551. package/src/lib/core/utils/array-utils.spec.ts +0 -588
  552. package/src/lib/core/utils/array-utils.ts +0 -301
  553. package/src/lib/core/utils/browser-utils.ts +0 -123
  554. package/src/lib/core/utils/business-object-utils.ts +0 -42
  555. package/src/lib/core/utils/css-utils.ts +0 -276
  556. package/src/lib/core/utils/element-ref.utils.ts +0 -12
  557. package/src/lib/core/utils/event-utils.ts +0 -61
  558. package/src/lib/core/utils/file-utils.ts +0 -291
  559. package/src/lib/core/utils/number-utils.spec.ts +0 -657
  560. package/src/lib/core/utils/number-utils.ts +0 -350
  561. package/src/lib/core/utils/object-utils.ts +0 -205
  562. package/src/lib/core/utils/parameter-value-conversion-utils.ts +0 -116
  563. package/src/lib/core/utils/search-utils.ts +0 -121
  564. package/src/lib/core/utils/sort-utils.ts +0 -108
  565. package/src/lib/core/utils/string-utils.ts +0 -100
  566. package/src/lib/core/validator/email.validator.ts +0 -10
  567. package/src/lib/core/validator/max-string-length.validator.ts +0 -11
  568. package/src/lib/core/validator/precision-scale.validator.ts +0 -14
  569. package/src/lib/core/validator/required.validator.ts +0 -9
  570. package/src/lib/directives/align-with/align-with.directive.ts +0 -158
  571. package/src/lib/directives/align-with/align-with.module.ts +0 -13
  572. package/src/lib/directives/clickoutside/click-outside-master.service.ts +0 -64
  573. package/src/lib/directives/clickoutside/click-outside.directive.ts +0 -72
  574. package/src/lib/directives/clickoutside/clickoutside.module.ts +0 -17
  575. package/src/lib/directives/parsevalue/parse-value.directive.ts +0 -42
  576. package/src/lib/directives/parsevalue/parse-value.module.ts +0 -13
  577. package/src/lib/directives/resize/resize-detect.directive.ts +0 -54
  578. package/src/lib/directives/resize/resize-detect.module.ts +0 -13
  579. package/src/lib/directives/ripple/ripple-ref.ts +0 -28
  580. package/src/lib/directives/ripple/ripple-renderer.ts +0 -217
  581. package/src/lib/directives/ripple/ripple.directive.ts +0 -116
  582. package/src/lib/directives/ripple/ripple.module.ts +0 -24
  583. package/src/lib/directives/ripple/scroll-dispatcher.service.ts +0 -129
  584. package/src/lib/directives/ripple/scrollable.directive.ts +0 -37
  585. package/src/lib/directives/ripple/viewport-ruler.service.ts +0 -84
  586. package/src/lib/directives/stopclick/stop-click.directive.ts +0 -35
  587. package/src/lib/directives/stopclick/stop-click.module.ts +0 -14
  588. package/src/lib/directives/template-wrapper/template-wrapper.directive.ts +0 -71
  589. package/src/lib/directives/template-wrapper/template-wrapper.module.ts +0 -13
  590. package/src/lib/model/data-item.ts +0 -9
  591. package/src/lib/model/enum/currency-code.enum.ts +0 -7
  592. package/src/lib/model/enum/language-code.enum.ts +0 -8
  593. package/src/lib/model/map/currencies.map.ts +0 -6
  594. package/src/lib/modules/drag-drop/drag-drop-container.component.ts +0 -115
  595. package/src/lib/modules/drag-drop/drag-drop-container.css +0 -34
  596. package/src/lib/modules/drag-drop/drag-drop-manager.service.ts +0 -414
  597. package/src/lib/modules/drag-drop/drag-drop.module.ts +0 -20
  598. package/src/lib/modules/drag-drop/draggable.directive.ts +0 -70
  599. package/src/lib/modules/drag-drop/model/co-drag-event.ts +0 -5
  600. package/src/lib/modules/drag-drop/model/co-drop-event.ts +0 -9
  601. package/src/lib/modules/drag-drop/model/drag-drop-container-element.ts +0 -7
  602. package/src/lib/modules/drag-drop/model/drag-drop-container.ts +0 -9
  603. package/src/lib/modules/media-monitor/flex-layout-breakpoint.enum.ts +0 -5
  604. package/src/lib/modules/media-monitor/media-monitor.module.ts +0 -14
  605. package/src/lib/modules/media-monitor/media-monitor.service.ts +0 -36
  606. package/src/lib/modules/pagination/paginate.pipe.ts +0 -122
  607. package/src/lib/modules/pagination/pagination-instance.ts +0 -18
  608. package/src/lib/modules/pagination/pagination.component.ts +0 -217
  609. package/src/lib/modules/pagination/pagination.module.ts +0 -25
  610. package/src/lib/modules/pagination/pagination.service.ts +0 -98
  611. package/src/lib/pipes/append.pipe.module.ts +0 -13
  612. package/src/lib/pipes/append.pipe.ts +0 -17
  613. package/src/lib/pipes/co-currency-pipe.module.ts +0 -13
  614. package/src/lib/pipes/co-currency.pipe.ts +0 -45
  615. package/src/lib/pipes/emun-keys.pipe.ts +0 -20
  616. package/src/lib/pipes/enum-keys-pipe.module.ts +0 -13
  617. package/src/lib/pipes/file-type-image-pipe.module.ts +0 -13
  618. package/src/lib/pipes/file-type-image.pipe.ts +0 -45
  619. package/src/lib/pipes/master-pipe.module.ts +0 -13
  620. package/src/lib/pipes/master.pipe.ts +0 -71
  621. package/src/lib/pipes/price-display-pipe.module.ts +0 -14
  622. package/src/lib/pipes/price-display.pipe.ts +0 -20
  623. package/src/lib/pipes/safe-style.pipe.module.ts +0 -13
  624. package/src/lib/pipes/safe-style.pipe.ts +0 -14
  625. package/src/lib/pipes/ucfirst-pipe.module.ts +0 -13
  626. package/src/lib/pipes/ucfirst.pipe.ts +0 -14
  627. package/src/lib/style/_variables.scss +0 -76
  628. package/src/lib/style/material2/_material2-scss-barrel.scss +0 -16
  629. package/src/test.ts +0 -28
  630. package/tsconfig.lib.json +0 -20
  631. package/tsconfig.lib.prod.json +0 -16
  632. package/tsconfig.spec.json +0 -17
@@ -0,0 +1,94 @@
1
+ import { notNill } from "../function/not-nill.function";
2
+ import { ArrayUtils } from './array-utils';
3
+ // @dynamic
4
+ export class StringUtils {
5
+ // Returns the given argument as a string. Returns given defaultValue if conversion of argument to string was impossible.
6
+ static ParseString(arg, defaultValue = '') {
7
+ if (!StringUtils.IsString(arg)) {
8
+ if (arg && typeof arg.toString === 'function') {
9
+ arg = arg.toString();
10
+ }
11
+ else {
12
+ arg = defaultValue;
13
+ }
14
+ }
15
+ return arg;
16
+ }
17
+ static AsLowerCaseIfString(str) {
18
+ if (StringUtils.IsString(str)) {
19
+ return str.toLowerCase();
20
+ }
21
+ else {
22
+ return str;
23
+ }
24
+ }
25
+ /**
26
+ * Example usage:
27
+ * str = 'File is to large to upload. Maximum file size is {0} Mb'
28
+ * format = [FileUtils.MaxUploadSizeInMb]
29
+ * output = File is to large to upload. Maximum file size is 3 Mb
30
+ *
31
+ * str = '{0} is way better than {1}'
32
+ * format = ['Angular2','Angular1']
33
+ * output = Angular2 is way better than Angular1
34
+ *
35
+ * @param str The string that contains {0} and {1} etc, for replacement by given format data
36
+ * @param format The format replacement data
37
+ */
38
+ static Format(str, format) {
39
+ let args = Array.prototype.slice.call(format);
40
+ return str.replace(/{(\d+)}/g, function (match, number) {
41
+ return typeof args[number] !== 'undefined' ? (args[number] !== null ? args[number] : "") : "";
42
+ });
43
+ }
44
+ static IsString(str) {
45
+ return typeof str === 'string';
46
+ }
47
+ // Returns whether given str is a string and has a length > 0.
48
+ static IsStringWithLength(str) {
49
+ return notNill(str) && StringUtils.IsString(str) && str.length > 0;
50
+ }
51
+ // Returns a new string string with N amount of characters removed from the end of it.
52
+ static RemoveLastChars(str, amount) {
53
+ if (str) {
54
+ return str.slice(0, -1 * amount);
55
+ }
56
+ else {
57
+ return str;
58
+ }
59
+ }
60
+ static StringToStringArray(str) {
61
+ if (!str) {
62
+ return [];
63
+ }
64
+ const strArray = str.split(" ");
65
+ ArrayUtils.RemoveElementsByFilter(strArray, (txt) => {
66
+ return !txt || txt === "";
67
+ });
68
+ return strArray;
69
+ }
70
+ static CloneStringArray(strArray) {
71
+ const clone = [];
72
+ if (strArray) {
73
+ for (let i = 0, len = strArray.length; i < len; i++) {
74
+ clone.push(strArray[i]);
75
+ }
76
+ }
77
+ return clone;
78
+ }
79
+ static ToStringOrDefault(arg, defaultReturnVal = "") {
80
+ if (notNill(arg) && arg.toString) {
81
+ return arg.toString();
82
+ }
83
+ else {
84
+ return defaultReturnVal;
85
+ }
86
+ }
87
+ static CreateGuid() {
88
+ return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => {
89
+ const r = Math.random() * 16 | 0;
90
+ return (c === 'x' ? r : (r & 0x3 | 0x8)).toString(16);
91
+ });
92
+ }
93
+ }
94
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyaW5nLXV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZWNvbXBvbmVudHMvc3JjL2xpYi9jb3JlL3V0aWxzL3N0cmluZy11dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0sK0JBQStCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxXQUFXO0FBQ1gsTUFBTSxPQUFPLFdBQVc7SUFDcEIseUhBQXlIO0lBQ2xILE1BQU0sQ0FBQyxXQUFXLENBQUMsR0FBUSxFQUFFLGVBQXVCLEVBQUU7UUFDekQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDNUIsSUFBSSxHQUFHLElBQUksT0FBTyxHQUFHLENBQUMsUUFBUSxLQUFLLFVBQVUsRUFBRTtnQkFDM0MsR0FBRyxHQUFHLEdBQUcsQ0FBQyxRQUFRLEVBQUUsQ0FBQzthQUN4QjtpQkFBTTtnQkFDSCxHQUFHLEdBQUcsWUFBWSxDQUFDO2FBQ3RCO1NBQ0o7UUFDRCxPQUFPLEdBQUcsQ0FBQztJQUNmLENBQUM7SUFFTSxNQUFNLENBQUMsbUJBQW1CLENBQUMsR0FBUTtRQUN0QyxJQUFJLFdBQVcsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDM0IsT0FBTyxHQUFHLENBQUMsV0FBVyxFQUFFLENBQUM7U0FDNUI7YUFBTTtZQUNILE9BQU8sR0FBRyxDQUFDO1NBQ2Q7SUFDTCxDQUFDO0lBRUQ7Ozs7Ozs7Ozs7OztPQVlHO0lBQ0ksTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFXLEVBQUUsTUFBYTtRQUMzQyxJQUFJLElBQUksR0FBUSxLQUFLLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDbkQsT0FBTyxHQUFHLENBQUMsT0FBTyxDQUFDLFVB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ZnVuY3Rpb24vbm90LW5pbGwuZnVuY3Rpb25cIjtcclxuaW1wb3J0IHsgQXJyYXlVdGlscyB9IGZyb20gJy4vYXJyYXktdXRpbHMnO1xyXG5cclxuLy8gQGR5bmFtaWNcclxuZXhwb3J0IGNsYXNzIFN0cmluZ1V0aWxzIHtcclxuICAgIC8vIFJldHVybnMgdGhlIGdpdmVuIGFyZ3VtZW50IGFzIGEgc3RyaW5nLiBSZXR1cm5zIGdpdmVuIGRlZmF1bHRWYWx1ZSBpZiBjb252ZXJzaW9uIG9mIGFyZ3VtZW50IHRvIHN0cmluZyB3YXMgaW1wb3NzaWJsZS5cclxuICAgIHB1YmxpYyBzdGF0aWMgUGFyc2VTdHJpbmcoYXJnOiBhbnksIGRlZmF1bHRWYWx1ZTogc3RyaW5nID0gJycpOiBzdHJpbmcge1xyXG4gICAgICAgIGlmICghU3RyaW5nVXRpbHMuSXNTdHJpbmcoYXJnKSkge1xyXG4gICAgICAgICAgICBpZiAoYXJnICYmIHR5cGVvZiBhcmcudG9TdHJpbmcgPT09ICdmdW5jdGlvbicpIHtcclxuICAgICAgICAgICAgICAgIGFyZyA9IGFyZy50b1N0cmluZygpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgYXJnID0gZGVmYXVsdFZhbHVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBhcmc7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHN0YXRpYyBBc0xvd2VyQ2FzZUlmU3RyaW5nKHN0cjogYW55KTogYW55IHtcclxuICAgICAgICBpZiAoU3RyaW5nVXRpbHMuSXNTdHJpbmcoc3RyKSkge1xyXG4gICAgICAgICAgICByZXR1cm4gc3RyLnRvTG93ZXJDYXNlKCk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgcmV0dXJuIHN0cjtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBFeGFtcGxlIHVzYWdlOlxyXG4gICAgICogc3RyID0gJ0ZpbGUgaXMgdG8gbGFyZ2UgdG8gdXBsb2FkLiBNYXhpbXVtIGZpbGUgc2l6ZSBpcyB7MH0gTWInXHJcbiAgICAgKiBmb3JtYXQgPSBbRmlsZVV0aWxzLk1heFVwbG9hZFNpemVJbk1iXVxyXG4gICAgICogb3V0cHV0ID0gRmlsZSBpcyB0byBsYXJnZSB0byB1cGxvYWQuIE1heGltdW0gZmlsZSBzaXplIGlzIDMgTWJcclxuICAgICAqXHJcbiAgICAgKiBzdHIgPSAnezB9IGlzIHdheSBiZXR0ZXIgdGhhbiB7MX0nXHJcbiAgICAgKiBmb3JtYXQgPSBbJ0FuZ3VsYXIyJywnQW5ndWxhcjEnXVxyXG4gICAgICogb3V0cHV0ID0gQW5ndWxhcjIgaXMgd2F5IGJldHRlciB0aGFuIEFuZ3VsYXIxXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHN0ciBUaGUgc3RyaW5nIHRoYXQgY29udGFpbnMgezB9IGFuZCB7MX0gZXRjLCBmb3IgcmVwbGFjZW1lbnQgYnkgZ2l2ZW4gZm9ybWF0IGRhdGFcclxuICAgICAqIEBwYXJhbSBmb3JtYXQgVGhlIGZvcm1hdCByZXBsYWNlbWVudCBkYXRhXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzdGF0aWMgRm9ybWF0KHN0cjogc3RyaW5nLCBmb3JtYXQ6IGFueVtdKTogc3RyaW5nIHtcclxuICAgICAgICBsZXQgYXJnczogYW55ID0gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoZm9ybWF0KTtcclxuICAgICAgICByZXR1cm4gc3RyLnJlcGxhY2UoL3soXFxkKyl9L2csIGZ1bmN0aW9uIChtYXRjaDogYW55LCBudW1iZXI6IGFueSk6IHN0cmluZyB7XHJcbiAgICAgICAgICAgIHJldHVybiB0eXBlb2YgYXJnc1tudW1iZXJdICE9PSAndW5kZWZpbmVkJyA/IChhcmdzW251bWJlcl0gIT09IG51bGwgPyBhcmdzW251bWJlcl0gOiBcIlwiKSA6IFwiXCI7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHN0YXRpYyBJc1N0cmluZyhzdHI6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0eXBlb2Ygc3RyID09PSAnc3RyaW5nJztcclxuICAgIH1cclxuXHJcbiAgICAvLyBSZXR1cm5zIHdoZXRoZXIgZ2l2ZW4gc3RyIGlzIGEgc3RyaW5nIGFuZCBoYXMgYSBsZW5ndGggPiAwLlxyXG4gICAgcHVibGljIHN0YXRpYyBJc1N0cmluZ1dpdGhMZW5ndGgoc3RyOiBhbnkpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gbm90TmlsbChzdHIpICYmIFN0cmluZ1V0aWxzLklzU3RyaW5nKHN0cikgJiYgc3RyLmxlbmd0aCA+IDA7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gUmV0dXJucyBhIG5ldyBzdHJpbmcgc3RyaW5nIHdpdGggTiBhbW91bnQgb2YgY2hhcmFjdGVycyByZW1vdmVkIGZyb20gdGhlIGVuZCBvZiBpdC5cclxuICAgIHB1YmxpYyBzdGF0aWMgUmVtb3ZlTGFzdENoYXJzKHN0cjogc3RyaW5nLCBhbW91bnQ6IG51bWJlcik6IHN0cmluZyB7XHJcbiAgICAgICAgaWYgKHN0cikge1xyXG4gICAgICAgICAgICByZXR1cm4gc3RyLnNsaWNlKDAsIC0xICogYW1vdW50KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICByZXR1cm4gc3RyO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc3RhdGljIFN0cmluZ1RvU3RyaW5nQXJyYXkoc3RyOiBzdHJpbmcpOiBzdHJpbmdbXSB7XHJcbiAgICAgICAgaWYgKCFzdHIpIHtcclxuICAgICAgICAgICAgcmV0dXJuIFtdO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3Qgc3RyQXJyYXk6IHN0cmluZ1tdID0gc3RyLnNwbGl0KFwiIFwiKTtcclxuICAgICAgICBBcnJheVV0aWxzLlJlbW92ZUVsZW1lbnRzQnlGaWx0ZXIoc3RyQXJyYXksICh0eHQ6IHN0cmluZykgPT4ge1xyXG4gICAgICAgICAgICByZXR1cm4gIXR4dCB8fCB0eHQgPT09IFwiXCI7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgcmV0dXJuIHN0ckFycmF5O1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzdGF0aWMgQ2xvbmVTdHJpbmdBcnJheShzdHJBcnJheTogc3RyaW5nW10pOiBzdHJpbmdbXSB7XHJcbiAgICAgICAgY29uc3QgY2xvbmU6IHN0cmluZ1tdID0gW107XHJcbiAgICAgICAgaWYgKHN0ckFycmF5KSB7XHJcbiAgICAgICAgICAgIGZvciAobGV0IGk6IG51bWJlciA9IDAsIGxlbjogbnVtYmVyID0gc3RyQXJyYXkubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHtcclxuICAgICAgICAgICAgICAgIGNsb25lLnB1c2goc3RyQXJyYXlbaV0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBjbG9uZTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc3RhdGljIFRvU3RyaW5nT3JEZWZhdWx0KGFyZzogYW55LCBkZWZhdWx0UmV0dXJuVmFsOiBzdHJpbmcgPSBcIlwiKTogc3RyaW5nIHtcclxuICAgICAgICBpZiAobm90TmlsbChhcmcpICYmIGFyZy50b1N0cmluZykge1xyXG4gICAgICAgICAgICByZXR1cm4gYXJnLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgcmV0dXJuIGRlZmF1bHRSZXR1cm5WYWw7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzdGF0aWMgQ3JlYXRlR3VpZCgpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiAneHh4eHh4eHgteHh4eC00eHh4LXl4eHgteHh4eHh4eHh4eHh4Jy5yZXBsYWNlKC9beHldL2csIChjOiBzdHJpbmcpID0+IHtcclxuICAgICAgICAgICAgY29uc3QgcjogbnVtYmVyID0gTWF0aC5yYW5kb20oKSAqIDE2IHwgMDtcclxuICAgICAgICAgICAgcmV0dXJuIChjID09PSAneCcgPyByIDogKHIgJiAweDMgfCAweDgpKS50b1N0cmluZygxNik7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbn1cclxuIl19
@@ -0,0 +1,10 @@
1
+ export function maxStringLengthValidator(length) {
2
+ return function (control) {
3
+ let isValid = true;
4
+ if (control.value && typeof control.value === 'string') {
5
+ isValid = control.value.length <= length;
6
+ }
7
+ return isValid ? null : { "max-length": { message: "MESSAGE_FIELD_TOO_LONG", placeholder: "" + length } };
8
+ };
9
+ }
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF4LXN0cmluZy1sZW5ndGgudmFsaWRhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZWNvbXBvbmVudHMvc3JjL2xpYi9jb3JlL3ZhbGlkYXRvci9tYXgtc3RyaW5nLWxlbmd0aC52YWxpZGF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxVQUFVLHdCQUF3QixDQUFDLE1BQWM7SUFDbkQsT0FBTyxVQUFVLE9BQW9CO1FBQ2pDLElBQUksT0FBTyxHQUFZLElBQUksQ0FBQztRQUM1QixJQUFJLE9BQU8sQ0FBQyxLQUFLLElBQUksT0FBTyxPQUFPLENBQUMsS0FBSyxLQUFLLFFBQVEsRUFBRTtZQUNwRCxPQUFPLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxNQUFNLElBQUksTUFBTSxDQUFDO1NBQzVDO1FBQ0QsT0FBTyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBQyxZQUFZLEVBQUUsRUFBQyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsV0FBVyxFQUFFLEVBQUUsR0FBRyxNQUFNLEVBQUMsRUFBQyxDQUFDO0lBQzFHLENBQUMsQ0FBQztBQUNOLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGb3JtQ29udHJvbCwgVmFsaWRhdGlvbkVycm9ycywgVmFsaWRhdG9yRm4gfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gbWF4U3RyaW5nTGVuZ3RoVmFsaWRhdG9yKGxlbmd0aDogbnVtYmVyKTogVmFsaWRhdG9yRm4ge1xyXG4gICAgcmV0dXJuIGZ1bmN0aW9uIChjb250cm9sOiBGb3JtQ29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHtcclxuICAgICAgICBsZXQgaXNWYWxpZDogYm9vbGVhbiA9IHRydWU7XHJcbiAgICAgICAgaWYgKGNvbnRyb2wudmFsdWUgJiYgdHlwZW9mIGNvbnRyb2wudmFsdWUgPT09ICdzdHJpbmcnKSB7XHJcbiAgICAgICAgICAgIGlzVmFsaWQgPSBjb250cm9sLnZhbHVlLmxlbmd0aCA8PSBsZW5ndGg7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBpc1ZhbGlkID8gbnVsbCA6IHtcIm1heC1sZW5ndGhcIjoge21lc3NhZ2U6IFwiTUVTU0FHRV9GSUVMRF9UT09fTE9OR1wiLCBwbGFjZWhvbGRlcjogXCJcIiArIGxlbmd0aH19O1xyXG4gICAgfTtcclxufVxyXG4iXX0=
@@ -0,0 +1,11 @@
1
+ import { NumberUtils } from '../utils/number-utils';
2
+ export function precisionScaleValidator(precision, scale) {
3
+ return function (control) {
4
+ let isValid = true;
5
+ if (control) {
6
+ isValid = NumberUtils.CheckPrecisionAndScale(control.value, precision, scale).isOk;
7
+ }
8
+ return isValid ? null : { 'precision-scale': "MESSAGE_FIELD_PRECISION_OVERRIDDEN||" + precision };
9
+ };
10
+ }
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlY2lzaW9uLXNjYWxlLnZhbGlkYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmVjb21wb25lbnRzL3NyYy9saWIvY29yZS92YWxpZGF0b3IvcHJlY2lzaW9uLXNjYWxlLnZhbGlkYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFcEQsTUFBTSxVQUFVLHVCQUF1QixDQUFDLFNBQWlCLEVBQUUsS0FBYTtJQUNwRSxPQUFPLFVBQVUsT0FBb0I7UUFDakMsSUFBSSxPQUFPLEdBQVksSUFBSSxDQUFDO1FBRTVCLElBQUksT0FBTyxFQUFFO1lBQ1QsT0FBTyxHQUFHLFdBQVcsQ0FBQyxzQkFBc0IsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLFNBQVMsRUFBRSxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUM7U0FDdEY7UUFFRCxPQUFPLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFDLGlCQUFpQixFQUFFLHNDQUFzQyxHQUFHLFNBQVMsRUFBQyxDQUFDO0lBQ3BHLENBQUMsQ0FBQztBQUNOLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGb3JtQ29udHJvbCwgVmFsaWRhdGlvbkVycm9ycywgVmFsaWRhdG9yRm4gfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IE51bWJlclV0aWxzIH0gZnJvbSAnLi4vdXRpbHMvbnVtYmVyLXV0aWxzJztcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBwcmVjaXNpb25TY2FsZVZhbGlkYXRvcihwcmVjaXNpb246IG51bWJlciwgc2NhbGU6IG51bWJlcik6IFZhbGlkYXRvckZuIHtcclxuICAgIHJldHVybiBmdW5jdGlvbiAoY29udHJvbDogRm9ybUNvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCB7XHJcbiAgICAgICAgbGV0IGlzVmFsaWQ6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICAgICAgICBpZiAoY29udHJvbCkge1xyXG4gICAgICAgICAgICBpc1ZhbGlkID0gTnVtYmVyVXRpbHMuQ2hlY2tQcmVjaXNpb25BbmRTY2FsZShjb250cm9sLnZhbHVlLCBwcmVjaXNpb24sIHNjYWxlKS5pc09rO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIGlzVmFsaWQgPyBudWxsIDogeydwcmVjaXNpb24tc2NhbGUnOiBcIk1FU1NBR0VfRklFTERfUFJFQ0lTSU9OX09WRVJSSURERU58fFwiICsgcHJlY2lzaW9ufTtcclxuICAgIH07XHJcbn1cclxuIl19
@@ -0,0 +1,5 @@
1
+ export function requiredValidator(control) {
2
+ const isValid = !(control.value === null || control.value === undefined || control.value === "");
3
+ return isValid ? null : { 'required': 'MESSAGE_FIELD_REQUIRED' };
4
+ }
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWlyZWQudmFsaWRhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZWNvbXBvbmVudHMvc3JjL2xpYi9jb3JlL3ZhbGlkYXRvci9yZXF1aXJlZC52YWxpZGF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxVQUFVLGlCQUFpQixDQUFDLE9BQXdCO0lBRXRELE1BQU0sT0FBTyxHQUFZLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxLQUFLLElBQUksSUFBSSxPQUFPLENBQUMsS0FBSyxLQUFLLFNBQVMsSUFBSSxPQUFPLENBQUMsS0FBSyxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBRTFHLE9BQU8sT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUMsVUFBVSxFQUFFLHdCQUF3QixFQUFDLENBQUM7QUFFbkUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgVmFsaWRhdGlvbkVycm9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiByZXF1aXJlZFZhbGlkYXRvcihjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCB7XHJcblxyXG4gICAgY29uc3QgaXNWYWxpZDogYm9vbGVhbiA9ICEoY29udHJvbC52YWx1ZSA9PT0gbnVsbCB8fCBjb250cm9sLnZhbHVlID09PSB1bmRlZmluZWQgfHwgY29udHJvbC52YWx1ZSA9PT0gXCJcIik7XHJcblxyXG4gICAgcmV0dXJuIGlzVmFsaWQgPyBudWxsIDogeydyZXF1aXJlZCc6ICdNRVNTQUdFX0ZJRUxEX1JFUVVJUkVEJ307XHJcblxyXG59XHJcbiJdfQ==
@@ -0,0 +1,26 @@
1
+ // NOTE: Copied and adapted to CoreComponents from iOneJS on 9-may-2018.
2
+ /** Possible states for a ripple element. */
3
+ export var CoRippleState;
4
+ (function (CoRippleState) {
5
+ CoRippleState[CoRippleState["FADING_IN"] = 0] = "FADING_IN";
6
+ CoRippleState[CoRippleState["VISIBLE"] = 1] = "VISIBLE";
7
+ CoRippleState[CoRippleState["FADING_OUT"] = 2] = "FADING_OUT";
8
+ CoRippleState[CoRippleState["HIDDEN"] = 3] = "HIDDEN";
9
+ })(CoRippleState || (CoRippleState = {}));
10
+ /**
11
+ * Reference to a previously launched ripple element.
12
+ */
13
+ export class CoRippleRef {
14
+ constructor(_renderer, element, config) {
15
+ this._renderer = _renderer;
16
+ this.element = element;
17
+ this.config = config;
18
+ /** Current state of the ripple reference. */
19
+ this.state = CoRippleState.HIDDEN;
20
+ }
21
+ /** Fades out the ripple element. */
22
+ fadeOut() {
23
+ this._renderer.fadeOutRipple(this);
24
+ }
25
+ }
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmlwcGxlLXJlZi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmVjb21wb25lbnRzL3NyYy9saWIvZGlyZWN0aXZlcy9yaXBwbGUvcmlwcGxlLXJlZi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx3RUFBd0U7QUFJeEUsNENBQTRDO0FBQzVDLE1BQU0sQ0FBTixJQUFZLGFBRVg7QUFGRCxXQUFZLGFBQWE7SUFDckIsMkRBQVMsQ0FBQTtJQUFFLHVEQUFPLENBQUE7SUFBRSw2REFBVSxDQUFBO0lBQUUscURBQU0sQ0FBQTtBQUMxQyxDQUFDLEVBRlcsYUFBYSxLQUFiLGFBQWEsUUFFeEI7QUFFRDs7R0FFRztBQUNILE1BQU0sT0FBTyxXQUFXO0lBS3BCLFlBQ1ksU0FBMkIsRUFDNUIsT0FBb0IsRUFDcEIsTUFBc0I7UUFGckIsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUFDNUIsWUFBTyxHQUFQLE9BQU8sQ0FBYTtRQUNwQixXQUFNLEdBQU4sTUFBTSxDQUFnQjtRQU5qQyw2Q0FBNkM7UUFDN0MsVUFBSyxHQUFrQixhQUFhLENBQUMsTUFBTSxDQUFDO0lBTTVDLENBQUM7SUFFRCxvQ0FBb0M7SUFDcEMsT0FBTztRQUNILElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbIi8vIE5PVEU6IENvcGllZCBhbmQgYWRhcHRlZCB0byBDb3JlQ29tcG9uZW50cyBmcm9tIGlPbmVKUyBvbiA5LW1heS0yMDE4LlxyXG5cclxuaW1wb3J0IHtDb1JpcHBsZUNvbmZpZywgQ29SaXBwbGVSZW5kZXJlcn0gZnJvbSBcIi4vcmlwcGxlLXJlbmRlcmVyXCI7XHJcblxyXG4vKiogUG9zc2libGUgc3RhdGVzIGZvciBhIHJpcHBsZSBlbGVtZW50LiAqL1xyXG5leHBvcnQgZW51bSBDb1JpcHBsZVN0YXRlIHtcclxuICAgIEZBRElOR19JTiwgVklTSUJMRSwgRkFESU5HX09VVCwgSElEREVOXHJcbn1cclxuXHJcbi8qKlxyXG4gKiBSZWZlcmVuY2UgdG8gYSBwcmV2aW91c2x5IGxhdW5jaGVkIHJpcHBsZSBlbGVtZW50LlxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIENvUmlwcGxlUmVmIHtcclxuXHJcbiAgICAvKiogQ3VycmVudCBzdGF0ZSBvZiB0aGUgcmlwcGxlIHJlZmVyZW5jZS4gKi9cclxuICAgIHN0YXRlOiBDb1JpcHBsZVN0YXRlID0gQ29SaXBwbGVTdGF0ZS5ISURERU47XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHJpdmF0ZSBfcmVuZGVyZXI6IENvUmlwcGxlUmVuZGVyZXIsXHJcbiAgICAgICAgcHVibGljIGVsZW1lbnQ6IEhUTUxFbGVtZW50LFxyXG4gICAgICAgIHB1YmxpYyBjb25maWc6IENvUmlwcGxlQ29uZmlnKSB7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqIEZhZGVzIG91dCB0aGUgcmlwcGxlIGVsZW1lbnQuICovXHJcbiAgICBmYWRlT3V0KCkge1xyXG4gICAgICAgIHRoaXMuX3JlbmRlcmVyLmZhZGVPdXRSaXBwbGUodGhpcyk7XHJcbiAgICB9XHJcbn0iXX0=
@@ -0,0 +1,160 @@
1
+ // NOTE: Copied and adapted to CoreComponents from iOneJS on 9-may-2018.
2
+ import { CoRippleRef, CoRippleState } from "./ripple-ref";
3
+ /** Fade-in duration for the ripples. Can be modified with the speedFactor option. */
4
+ export const RIPPLE_FADE_IN_DURATION = 450;
5
+ /** Fade-out duration for the ripples in milliseconds. This can't be modified by the speedFactor. */
6
+ export const RIPPLE_FADE_OUT_DURATION = 400;
7
+ /**
8
+ * Helper service that performs DOM manipulations. Not intended to be used outside this module.
9
+ * The constructor takes a reference to the ripple directive's host element and a map of DOM
10
+ * event handlers to be installed on the element that triggers ripple animations.
11
+ * This will eventually become a custom renderer once Angular support exists.
12
+ * @docs-private
13
+ */
14
+ export class CoRippleRenderer {
15
+ constructor(_elementRef, _ngZone, _ruler) {
16
+ this._ngZone = _ngZone;
17
+ this._ruler = _ruler;
18
+ /** Whether the mouse is currently down or not. */
19
+ this._isMousedown = false;
20
+ /** Events to be registered on the trigger element. */
21
+ this._triggerEvents = new Map();
22
+ /** Set of currently active ripple references. */
23
+ this._activeRipples = new Set();
24
+ /** Ripple config for all ripples created by events. */
25
+ this.rippleConfig = {};
26
+ /** Whether mouse ripples should be created or not. */
27
+ this.rippleDisabled = false;
28
+ this._containerElement = _elementRef.nativeElement;
29
+ // Specify events which need to be registered on the trigger.
30
+ this._triggerEvents.set('mousedown', this.onMousedown.bind(this));
31
+ this._triggerEvents.set('mouseup', this.onMouseup.bind(this));
32
+ this._triggerEvents.set('mouseleave', this.onMouseLeave.bind(this));
33
+ // By default use the host element as trigger element.
34
+ this.setTriggerElement(this._containerElement);
35
+ }
36
+ /** Fades in a ripple at the given coordinates. */
37
+ fadeInRipple(pageX, pageY, config = {}) {
38
+ let containerRect = this._containerElement.getBoundingClientRect();
39
+ if (config.centered) {
40
+ pageX = containerRect.left + containerRect.width / 2;
41
+ pageY = containerRect.top + containerRect.height / 2;
42
+ }
43
+ else {
44
+ // Subtract scroll values from the coordinates because calculations below
45
+ // are always relative to the viewport rectangle.
46
+ let scrollPosition = this._ruler.getViewportScrollPosition();
47
+ pageX -= scrollPosition.left;
48
+ pageY -= scrollPosition.top;
49
+ }
50
+ let radius = config.radius || distanceToFurthestCorner(pageX, pageY, containerRect);
51
+ let duration = RIPPLE_FADE_IN_DURATION * (1 / (config.speedFactor || 1));
52
+ let offsetX = pageX - containerRect.left;
53
+ let offsetY = pageY - containerRect.top;
54
+ let ripple = document.createElement('div');
55
+ ripple.classList.add('mat-ripple-element');
56
+ ripple.style.left = `${offsetX - radius}px`;
57
+ ripple.style.top = `${offsetY - radius}px`;
58
+ ripple.style.height = `${radius * 2}px`;
59
+ ripple.style.width = `${radius * 2}px`;
60
+ // If the color is not set, the default CSS color will be used.
61
+ ripple.style.backgroundColor = config.color;
62
+ ripple.style.transitionDuration = `${duration}ms`;
63
+ this._containerElement.appendChild(ripple);
64
+ // By default the browser does not recalculate the styles of dynamically created
65
+ // ripple elements. This is critical because then the `scale` would not animate properly.
66
+ enforceStyleRecalculation(ripple);
67
+ ripple.style.transform = 'scale(1)';
68
+ // Exposed reference to the ripple that will be returned.
69
+ let rippleRef = new CoRippleRef(this, ripple, config);
70
+ rippleRef.state = CoRippleState.FADING_IN;
71
+ // Add the ripple reference to the list of all active ripples.
72
+ this._activeRipples.add(rippleRef);
73
+ // Wait for the ripple element to be completely faded in.
74
+ // Once it's faded in, the ripple can be hidden immediately if the mouse is released.
75
+ this.runTimeoutOutsideZone(() => {
76
+ rippleRef.state = CoRippleState.VISIBLE;
77
+ if (!config.persistent && !this._isMousedown) {
78
+ rippleRef.fadeOut();
79
+ }
80
+ }, duration);
81
+ return rippleRef;
82
+ }
83
+ /** Fades out a ripple reference. */
84
+ fadeOutRipple(rippleRef) {
85
+ // For ripples that are not active anymore, don't re-un the fade-out animation.
86
+ if (!this._activeRipples.delete(rippleRef)) {
87
+ return;
88
+ }
89
+ let rippleEl = rippleRef.element;
90
+ rippleEl.style.transitionDuration = `${RIPPLE_FADE_OUT_DURATION}ms`;
91
+ rippleEl.style.opacity = '0';
92
+ rippleRef.state = CoRippleState.FADING_OUT;
93
+ // Once the ripple faded out, the ripple can be safely removed from the DOM.
94
+ this.runTimeoutOutsideZone(() => {
95
+ rippleRef.state = CoRippleState.HIDDEN;
96
+ rippleEl.parentNode.removeChild(rippleEl);
97
+ }, RIPPLE_FADE_OUT_DURATION);
98
+ }
99
+ /** Fades out all currently active ripples. */
100
+ fadeOutAll() {
101
+ this._activeRipples.forEach(ripple => ripple.fadeOut());
102
+ }
103
+ /** Sets the trigger element and registers the mouse events. */
104
+ setTriggerElement(element) {
105
+ // Remove all previously register event listeners from the trigger element.
106
+ if (this._triggerElement) {
107
+ this._triggerEvents.forEach((fn, type) => this._triggerElement.removeEventListener(type, fn));
108
+ }
109
+ if (element) {
110
+ // If the element is not null, register all event listeners on the trigger element.
111
+ this._ngZone.runOutsideAngular(() => {
112
+ this._triggerEvents.forEach((fn, type) => element.addEventListener(type, fn));
113
+ });
114
+ }
115
+ this._triggerElement = element;
116
+ }
117
+ /** Listener being called on mousedown event. */
118
+ onMousedown(event) {
119
+ if (!this.rippleDisabled) {
120
+ this._isMousedown = true;
121
+ this.fadeInRipple(event.pageX, event.pageY, this.rippleConfig);
122
+ }
123
+ }
124
+ /** Listener being called on mouseup event. */
125
+ onMouseup() {
126
+ this._isMousedown = false;
127
+ // Fade-out all ripples that are completely visible and not persistent.
128
+ this._activeRipples.forEach(ripple => {
129
+ if (!ripple.config.persistent && ripple.state === CoRippleState.VISIBLE) {
130
+ ripple.fadeOut();
131
+ }
132
+ });
133
+ }
134
+ /** Listener being called on mouseleave event. */
135
+ onMouseLeave() {
136
+ if (this._isMousedown) {
137
+ this.onMouseup();
138
+ }
139
+ }
140
+ /** Runs a timeout outside of the Angular zone to avoid triggering the change detection. */
141
+ runTimeoutOutsideZone(fn, delay = 0) {
142
+ this._ngZone.runOutsideAngular(() => setTimeout(fn, delay));
143
+ }
144
+ }
145
+ /** Enforces a style recalculation of a DOM element by computing its styles. */
146
+ function enforceStyleRecalculation(element) {
147
+ // Enforce a style recalculation by calling `getComputedStyle` and accessing any property.
148
+ // Calling `getPropertyValue` is important to let optimizers know that this is not a noop.
149
+ // See: https://gist.github.com/paulirish/5d52fb081b3570c81e3a
150
+ window.getComputedStyle(element).getPropertyValue('opacity');
151
+ }
152
+ /**
153
+ * Returns the distance from the point (x, y) to the furthest corner of a rectangle.
154
+ */
155
+ function distanceToFurthestCorner(x, y, rect) {
156
+ const distX = Math.max(Math.abs(x - rect.left), Math.abs(x - rect.right));
157
+ const distY = Math.max(Math.abs(y - rect.top), Math.abs(y - rect.bottom));
158
+ return Math.sqrt(distX * distX + distY * distY);
159
+ }
160
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmlwcGxlLXJlbmRlcmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZWNvbXBvbmVudHMvc3JjL2xpYi9kaXJlY3RpdmVzL3JpcHBsZS9yaXBwbGUtcmVuZGVyZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsd0VBQXdFO0FBSXhFLE9BQU8sRUFBQyxXQUFXLEVBQUUsYUFBYSxFQUFDLE1BQU0sY0FBYyxDQUFDO0FBR3hELHFGQUFxRjtBQUNyRixNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBRyxHQUFHLENBQUM7QUFFM0Msb0dBQW9HO0FBQ3BHLE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFHLEdBQUcsQ0FBQztBQVU1Qzs7Ozs7O0dBTUc7QUFDSCxNQUFNLE9BQU8sZ0JBQWdCO0lBdUJ6QixZQUFZLFdBQXVCLEVBQVUsT0FBZSxFQUFVLE1BQThCO1FBQXZELFlBQU8sR0FBUCxPQUFPLENBQVE7UUFBVSxXQUFNLEdBQU4sTUFBTSxDQUF3QjtRQWZwRyxrREFBa0Q7UUFDMUMsaUJBQVksR0FBWSxLQUFLLENBQUM7UUFFdEMsc0RBQXNEO1FBQzlDLG1CQUFjLEdBQUcsSUFBSSxHQUFHLEVBQWUsQ0FBQztRQUVoRCxpREFBaUQ7UUFDekMsbUJBQWMsR0FBRyxJQUFJLEdBQUcsRUFBZSxDQUFDO1FBRWhELHVEQUF1RDtRQUN2RCxpQkFBWSxHQUFtQixFQUFFLENBQUM7UUFFbEMsc0RBQXNEO1FBQ3RELG1CQUFjLEdBQVksS0FBSyxDQUFDO1FBRzVCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxXQUFXLENBQUMsYUFBYSxDQUFDO1FBRW5ELDZEQUE2RDtRQUM3RCxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUNsRSxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxT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RSxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssR0FBRyxLQUFLLEdBQUcsS0FBSyxDQUFDLENBQUM7QUFDcEQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIE5PVEU6IENvcGllZCBhbmQgYWRhcHRlZCB0byBDb3JlQ29tcG9uZW50cyBmcm9tIGlPbmVKUyBvbiA5LW1heS0yMDE4LlxyXG5cclxuaW1wb3J0IHtFbGVtZW50UmVmLCBOZ1pvbmV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHtDb1JpcHBsZVJlZiwgQ29SaXBwbGVTdGF0ZX0gZnJvbSBcIi4vcmlwcGxlLXJlZlwiO1xyXG5pbXBvcnQge0NvVmlld3BvcnRSdWxlclNlcnZpY2V9IGZyb20gXCIuL3ZpZXdwb3J0LXJ1bGVyLnNlcnZpY2VcIjtcclxuXHJcbi8qKiBGYWRlLWluIGR1cmF0aW9uIGZvciB0aGUgcmlwcGxlcy4gQ2FuIGJlIG1vZGlmaWVkIHdpdGggdGhlIHNwZWVkRmFjdG9yIG9wdGlvbi4gKi9cclxuZXhwb3J0IGNvbnN0IFJJUFBMRV9GQURFX0lOX0RVUkFUSU9OID0gNDUwO1xyXG5cclxuLyoqIEZhZGUtb3V0IGR1cmF0aW9uIGZvciB0aGUgcmlwcGxlcyBpbiBtaWxsaXNlY29uZHMuIFRoaXMgY2FuJ3QgYmUgbW9kaWZpZWQgYnkgdGhlIHNwZWVkRmFjdG9yLiAqL1xyXG5leHBvcnQgY29uc3QgUklQUExFX0ZBREVfT1VUX0RVUkFUSU9OID0gNDAwO1xyXG5cclxuZXhwb3J0IHR5cGUgQ29SaXBwbGVDb25maWcgPSB7XHJcbiAgICBjb2xvcj86IHN0cmluZztcclxuICAgIGNlbnRlcmVkPzogYm9vbGVhbjtcclxuICAgIHJhZGl1cz86IG51bWJlcjtcclxuICAgIHNwZWVkRmFjdG9yPzogbnVtYmVyO1xyXG4gICAgcGVyc2lzdGVudD86IGJvb2xlYW47XHJcbn07XHJcblxyXG4vKipcclxuICogSGVscGVyIHNlcnZpY2UgdGhhdCBwZXJmb3JtcyBET00gbWFuaXB1bGF0aW9ucy4gTm90IGludGVuZGVkIHRvIGJlIHVzZWQgb3V0c2lkZSB0aGlzIG1vZHVsZS5cclxuICogVGhlIGNvbnN0cnVjdG9yIHRha2VzIGEgcmVmZXJlbmNlIHRvIHRoZSByaXBwbGUgZGlyZWN0aXZlJ3MgaG9zdCBlbGVtZW50IGFuZCBhIG1hcCBvZiBET01cclxuICogZXZlbnQgaGFuZGxlcnMgdG8gYmUgaW5zdGFsbGVkIG9uIHRoZSBlbGVtZW50IHRoYXQgdHJpZ2dlcnMgcmlwcGxlIGFuaW1hdGlvbnMuXHJcbiAqIFRoaXMgd2lsbCBldmVudHVhbGx5IGJlY29tZSBhIGN1c3RvbSByZW5kZXJlciBvbmNlIEFuZ3VsYXIgc3VwcG9ydCBleGlzdHMuXHJcbiAqIEBkb2NzLXByaXZhdGVcclxuICovXHJcbmV4cG9ydCBjbGFzcyBDb1JpcHBsZVJlbmRlcmVyIHtcclxuXHJcbiAgICAvKiogRWxlbWVudCB3aGVyZSB0aGUgcmlwcGxlcyBhcmUgYmVpbmcgYWRkZWQgdG8uICovXHJcbiAgICBwcml2YXRlIF9jb250YWluZXJFbGVtZW50OiBIVE1MRWxlbWVudDtcclxuXHJcbiAgICAvKiogRWxlbWVudCB3aGljaCB0cmlnZ2VycyB0aGUgcmlwcGxlIGVsZW1lbnRzIG9uIG1vdXNlIGV2ZW50cy4gKi9cclxuICAgIHByaXZhdGUgX3RyaWdnZXJFbGVtZW50OiBIVE1MRWxlbWVudDtcclxuXHJcbiAgICAvKiogV2hldGhlciB0aGUgbW91c2UgaXMgY3VycmVudGx5IGRvd24gb3Igbm90LiAqL1xyXG4gICAgcHJpdmF0ZSBfaXNNb3VzZWRvd246IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICAvKiogRXZlbnRzIHRvIGJlIHJlZ2lzdGVyZWQgb24gdGhlIHRyaWdnZXIgZWxlbWVudC4gKi9cclxuICAgIHByaXZhdGUgX3RyaWdnZXJFdmVudHMgPSBuZXcgTWFwPHN0cmluZywgYW55PigpO1xyXG5cclxuICAgIC8qKiBTZXQgb2YgY3VycmVudGx5IGFjdGl2ZSByaXBwbGUgcmVmZXJlbmNlcy4gKi9cclxuICAgIHByaXZhdGUgX2FjdGl2ZVJpcHBsZXMgPSBuZXcgU2V0PENvUmlwcGxlUmVmPigpO1xyXG5cclxuICAgIC8qKiBSaXBwbGUgY29uZmlnIGZvciBhbGwgcmlwcGxlcyBjcmVhdGVkIGJ5IGV2ZW50cy4gKi9cclxuICAgIHJpcHBsZUNvbmZpZzogQ29SaXBwbGVDb25maWcgPSB7fTtcclxuXHJcbiAgICAvKiogV2hldGhlciBtb3VzZSByaXBwbGVzIHNob3VsZCBiZSBjcmVhdGVkIG9yIG5vdC4gKi9cclxuICAgIHJpcHBsZURpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgY29uc3RydWN0b3IoX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWYsIHByaXZhdGUgX25nWm9uZTogTmdab25lLCBwcml2YXRlIF9ydWxlcjogQ29WaWV3cG9ydFJ1bGVyU2VydmljZSkge1xyXG4gICAgICAgIHRoaXMuX2NvbnRhaW5lckVsZW1lbnQgPSBfZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xyXG5cclxuICAgICAgICAvLyBTcGVjaWZ5IGV2ZW50cyB3aGljaCBuZWVkIHRvIGJlIHJlZ2lzdGVyZWQgb24gdGhlIHRyaWdnZXIuXHJcbiAgICAgICAgdGhpcy5fdHJpZ2dlckV2ZW50cy5zZXQoJ21vdXNlZG93bicsIHRoaXMub25Nb3VzZWRvd24uYmluZCh0aGlzKSk7XHJcbiAgICAgICAgdGhpcy5fdHJpZ2dlckV2ZW50cy5zZXQoJ21vdXNldXAnLCB0aGlzLm9uTW91c2V1cC5iaW5kKHRoaXMpKTtcclxuICAgICAgICB0aGlzLl90cmlnZ2VyRXZlbnRzLnNldCgnbW91c2VsZWF2ZScsIHRoaXMub25Nb3VzZUxlYXZlLmJpbmQodGhpcykpO1xyXG5cclxuICAgICAgICAvLyBCeSBkZWZhdWx0IHVzZSB0aGUgaG9zdCBlbGVtZW50IGFzIHRyaWdnZXIgZWxlbWVudC5cclxuICAgICAgICB0aGlzLnNldFRyaWdnZXJFbGVtZW50KHRoaXMuX2NvbnRhaW5lckVsZW1lbnQpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKiBGYWRlcyBpbiBhIHJpcHBsZSBhdCB0aGUgZ2l2ZW4gY29vcmRpbmF0ZXMuICovXHJcbiAgICBmYWRlSW5SaXBwbGUocGFnZVg6IG51bWJlciwgcGFnZVk6IG51bWJlciwgY29uZmlnOiBDb1JpcHBsZUNvbmZpZyA9IHt9KTogQ29SaXBwbGVSZWYge1xyXG4gICAgICAgIGxldCBjb250YWluZXJSZWN0ID0gdGhpcy5fY29udGFpbmVyRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcclxuXHJcbiAgICAgICAgaWYgKGNvbmZpZy5jZW50ZXJlZCkge1xyXG4gICAgICAgICAgICBwYWdlWCA9IGNvbnRhaW5lclJlY3QubGVmdCArIGNvbnRhaW5lclJlY3Qud2lkdGggLyAyO1xyXG4gICAgICAgICAgICBwYWdlWSA9IGNvbnRhaW5lclJlY3QudG9wICsgY29udGFpbmVyUmVjdC5oZWlnaHQgLyAyO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIC8vIFN1YnRyYWN0IHNjcm9sbCB2YWx1ZXMgZnJvbSB0aGUgY29vcmRpbmF0ZXMgYmVjYXVzZSBjYWxjdWxhdGlvbnMgYmVsb3dcclxuICAgICAgICAgICAgLy8gYXJlIGFsd2F5cyByZWxhdGl2ZSB0byB0aGUgdmlld3BvcnQgcmVjdGFuZ2xlLlxyXG4gICAgICAgICAgICBsZXQgc2Nyb2xsUG9zaXRpb24gPSB0aGlzLl9ydWxlci5nZXRWaWV3cG9ydFNjcm9sbFBvc2l0aW9uKCk7XHJcbiAgICAgICAgICAgIHBhZ2VYIC09IHNjcm9sbFBvc2l0aW9uLmxlZnQ7XHJcbiAgICAgICAgICAgIHBhZ2VZIC09IHNjcm9sbFBvc2l0aW9uLnRvcDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGxldCByYWRpdXMgPSBjb25maWcucmFkaXVzIHx8IGRpc3RhbmNlVG9GdXJ0aGVzdENvcm5lcihwYWdlWCwgcGFnZVksIGNvbnRhaW5lclJlY3QpO1xyXG4gICAgICAgIGxldCBkdXJhdGlvbiA9IFJJUFBMRV9GQURFX0lOX0RVUkFUSU9OICogKDEgLyAoY29uZmlnLnNwZWVkRmFjdG9yIHx8IDEpKTtcclxuICAgICAgICBsZXQgb2Zmc2V0WCA9IHBhZ2VYIC0gY29udGFpbmVyUmVjdC5sZWZ0O1xyXG4gICAgICAgIGxldCBvZmZzZXRZID0gcGFnZVkgLSBjb250YWluZXJSZWN0LnRvcDtcclxuXHJcbiAgICAgICAgbGV0IHJpcHBsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xyXG4gICAgICAgIHJpcHBsZS5jbGFzc0xpc3QuYWRkKCdtYXQtcmlwcGxlLWVsZW1lbnQnKTtcclxuXHJcbiAgICAgICAgcmlwcGxlLnN0eWxlLmxlZnQgPSBgJHtvZmZzZXRYIC0gcmFkaXVzfXB4YDtcclxuICAgICAgICByaXBwbGUuc3R5bGUudG9wID0gYCR7b2Zmc2V0WSAtIHJhZGl1c31weGA7XHJcbiAgICAgICAgcmlwcGxlLnN0eWxlLmhlaWdodCA9IGAke3JhZGl1cyAqIDJ9cHhgO1xyXG4gICAgICAgIHJpcHBsZS5zdHlsZS53aWR0aCA9IGAke3JhZGl1cyAqIDJ9cHhgO1xyXG5cclxuICAgICAgICAvLyBJZiB0aGUgY29sb3IgaXMgbm90IHNldCwgdGhlIGRlZmF1bHQgQ1NTIGNvbG9yIHdpbGwgYmUgdXNlZC5cclxuICAgICAgICByaXBwbGUuc3R5bGUuYmFja2dyb3VuZENvbG9yID0gY29uZmlnLmNvbG9yO1xyXG4gICAgICAgIHJpcHBsZS5zdHlsZS50cmFuc2l0aW9uRHVyYXRpb24gPSBgJHtkdXJhdGlvbn1tc2A7XHJcblxyXG4gICAgICAgIHRoaXMuX2NvbnRhaW5lckVsZW1lbnQuYXBwZW5kQ2hpbGQocmlwcGxlKTtcclxuXHJcbiAgICAgICAgLy8gQnkgZGVmYXVsdCB0aGUgYnJvd3NlciBkb2VzIG5vdCByZWNhbGN1bGF0ZSB0aGUgc3R5bGVzIG9mIGR5bmFtaWNhbGx5IGNyZWF0ZWRcclxuICAgICAgICAvLyByaXBwbGUgZWxlbWVudHMuIFRoaXMgaXMgY3JpdGljYWwgYmVjYXVzZSB0aGVuIHRoZSBgc2NhbGVgIHdvdWxkIG5vdCBhbmltYXRlIHByb3Blcmx5LlxyXG4gICAgICAgIGVuZm9yY2VTdHlsZVJlY2FsY3VsYXRpb24ocmlwcGxlKTtcclxuXHJcbiAgICAgICAgcmlwcGxlLnN0eWxlLnRyYW5zZm9ybSA9ICdzY2FsZSgxKSc7XHJcblxyXG4gICAgICAgIC8vIEV4cG9zZWQgcmVmZXJlbmNlIHRvIHRoZSByaXBwbGUgdGhhdCB3aWxsIGJlIHJldHVybmVkLlxyXG4gICAgICAgIGxldCByaXBwbGVSZWYgPSBuZXcgQ29SaXBwbGVSZWYodGhpcywgcmlwcGxlLCBjb25maWcpO1xyXG5cclxuICAgICAgICByaXBwbGVSZWYuc3RhdGUgPSBDb1JpcHBsZVN0YXRlLkZBRElOR19JTjtcclxuXHJcbiAgICAgICAgLy8gQWRkIHRoZSByaXBwbGUgcmVmZXJlbmNlIHRvIHRoZSBsaXN0IG9mIGFsbCBhY3RpdmUgcmlwcGxlcy5cclxuICAgICAgICB0aGlzLl9hY3RpdmVSaXBwbGVzLmFkZChyaXBwbGVSZWYpO1xyXG5cclxuICAgICAgICAvLyBXYWl0IGZvciB0aGUgcmlwcGxlIGVsZW1lbnQgdG8gYmUgY29tcGxldGVseSBmYWRlZCBpbi5cclxuICAgICAgICAvLyBPbmNlIGl0J3MgZmFkZWQgaW4sIHRoZSByaXBwbGUgY2FuIGJlIGhpZGRlbiBpbW1lZGlhdGVseSBpZiB0aGUgbW91c2UgaXMgcmVsZWFzZWQuXHJcbiAgICAgICAgdGhpcy5ydW5UaW1lb3V0T3V0c2lkZVpvbmUoKCkgPT4ge1xyXG4gICAgICAgICAgICByaXBwbGVSZWYuc3RhdGUgPSBDb1JpcHBsZVN0YXRlLlZJU0lCTEU7XHJcblxyXG4gICAgICAgICAgICBpZiAoIWNvbmZpZy5wZXJzaXN0ZW50ICYmICF0aGlzLl9pc01vdXNlZG93bikge1xyXG4gICAgICAgICAgICAgICAgcmlwcGxlUmVmLmZhZGVPdXQoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0sIGR1cmF0aW9uKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHJpcHBsZVJlZjtcclxuICAgIH1cclxuXHJcbiAgICAvKiogRmFkZXMgb3V0IGEgcmlwcGxlIHJlZmVyZW5jZS4gKi9cclxuICAgIGZhZGVPdXRSaXBwbGUocmlwcGxlUmVmOiBDb1JpcHBsZVJlZikge1xyXG4gICAgICAgIC8vIEZvciByaXBwbGVzIHRoYXQgYXJlIG5vdCBhY3RpdmUgYW55bW9yZSwgZG9uJ3QgcmUtdW4gdGhlIGZhZGUtb3V0IGFuaW1hdGlvbi5cclxuICAgICAgICBpZiAoIXRoaXMuX2FjdGl2ZVJpcHBsZXMuZGVsZXRlKHJpcHBsZVJlZikpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgbGV0IHJpcHBsZUVsID0gcmlwcGxlUmVmLmVsZW1lbnQ7XHJcblxyXG4gICAgICAgIHJpcHBsZUVsLnN0eWxlLnRyYW5zaXRpb25EdXJhdGlvbiA9IGAke1JJUFBMRV9GQURFX09VVF9EVVJBVElPTn1tc2A7XHJcbiAgICAgICAgcmlwcGxlRWwuc3R5bGUub3BhY2l0eSA9ICcwJztcclxuXHJcbiAgICAgICAgcmlwcGxlUmVmLnN0YXRlID0gQ29SaXBwbGVTdGF0ZS5GQURJTkdfT1VUO1xyXG5cclxuICAgICAgICAvLyBPbmNlIHRoZSByaXBwbGUgZmFkZWQgb3V0LCB0aGUgcmlwcGxlIGNhbiBiZSBzYWZlbHkgcmVtb3ZlZCBmcm9tIHRoZSBET00uXHJcbiAgICAgICAgdGhpcy5ydW5UaW1lb3V0T3V0c2lkZVpvbmUoKCkgPT4ge1xyXG4gICAgICAgICAgICByaXBwbGVSZWYuc3RhdGUgPSBDb1JpcHBsZVN0YXRlLkhJRERFTjtcclxuICAgICAgICAgICAgcmlwcGxlRWwucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChyaXBwbGVFbCk7XHJcbiAgICAgICAgfSwgUklQUExFX0ZBREVfT1VUX0RVUkFUSU9OKTtcclxuICAgIH1cclxuXHJcbiAgICAvKiogRmFkZXMgb3V0IGFsbCBjdXJyZW50bHkgYWN0aXZlIHJpcHBsZXMuICovXHJcbiAgICBmYWRlT3V0QWxsKCkge1xyXG4gICAgICAgIHRoaXMuX2FjdGl2ZVJpcHBsZXMuZm9yRWFjaChyaXBwbGUgPT4gcmlwcGxlLmZhZGVPdXQoKSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqIFNldHMgdGhlIHRyaWdnZXIgZWxlbWVudCBhbmQgcmVnaXN0ZXJzIHRoZSBtb3VzZSBldmVudHMuICovXHJcbiAgICBzZXRUcmlnZ2VyRWxlbWVudChlbGVtZW50OiBIVE1MRWxlbWVudCkge1xyXG4gICAgICAgIC8vIFJlbW92ZSBhbGwgcHJldmlvdXNseSByZWdpc3RlciBldmVudCBsaXN0ZW5lcnMgZnJvbSB0aGUgdHJpZ2dlciBlbGVtZW50LlxyXG4gICAgICAgIGlmICh0aGlzLl90cmlnZ2VyRWxlbWVudCkge1xyXG4gICAgICAgICAgICB0aGlzLl90cmlnZ2VyRXZlbnRzLmZvckVhY2goKGZuLCB0eXBlKSA9PiB0aGlzLl90cmlnZ2VyRWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKHR5cGUsIGZuKSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoZWxlbWVudCkge1xyXG4gICAgICAgICAgICAvLyBJZiB0aGUgZWxlbWVudCBpcyBub3QgbnVsbCwgcmVnaXN0ZXIgYWxsIGV2ZW50IGxpc3RlbmVycyBvbiB0aGUgdHJpZ2dlciBlbGVtZW50LlxyXG4gICAgICAgICAgICB0aGlzLl9uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fdHJpZ2dlckV2ZW50cy5mb3JFYWNoKChmbiwgdHlwZSkgPT4gZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKHR5cGUsIGZuKSk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5fdHJpZ2dlckVsZW1lbnQgPSBlbGVtZW50O1xyXG4gICAgfVxyXG5cclxuICAgIC8qKiBMaXN0ZW5lciBiZWluZyBjYWxsZWQgb24gbW91c2Vkb3duIGV2ZW50LiAqL1xyXG4gICAgcHJpdmF0ZSBvbk1vdXNlZG93bihldmVudDogTW91c2VFdmVudCkge1xyXG4gICAgICAgIGlmICghdGhpcy5yaXBwbGVEaXNhYmxlZCkge1xyXG4gICAgICAgICAgICB0aGlzLl9pc01vdXNlZG93biA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMuZmFkZUluUmlwcGxlKGV2ZW50LnBhZ2VYLCBldmVudC5wYWdlWSwgdGhpcy5yaXBwbGVDb25maWcpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKiogTGlzdGVuZXIgYmVpbmcgY2FsbGVkIG9uIG1vdXNldXAgZXZlbnQuICovXHJcbiAgICBwcml2YXRlIG9uTW91c2V1cCgpIHtcclxuICAgICAgICB0aGlzLl9pc01vdXNlZG93biA9IGZhbHNlO1xyXG5cclxuICAgICAgICAvLyBGYWRlLW91dCBhbGwgcmlwcGxlcyB0aGF0IGFyZSBjb21wbGV0ZWx5IHZpc2libGUgYW5kIG5vdCBwZXJzaXN0ZW50LlxyXG4gICAgICAgIHRoaXMuX2FjdGl2ZVJpcHBsZXMuZm9yRWFjaChyaXBwbGUgPT4ge1xyXG4gICAgICAgICAgICBpZiAoIXJpcHBsZS5jb25maWcucGVyc2lzdGVudCAmJiByaXBwbGUuc3RhdGUgPT09IENvUmlwcGxlU3RhdGUuVklTSUJMRSkge1xyXG4gICAgICAgICAgICAgICAgcmlwcGxlLmZhZGVPdXQoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKiBMaXN0ZW5lciBiZWluZyBjYWxsZWQgb24gbW91c2VsZWF2ZSBldmVudC4gKi9cclxuICAgIHByaXZhdGUgb25Nb3VzZUxlYXZlKCkge1xyXG4gICAgICAgIGlmICh0aGlzLl9pc01vdXNlZG93bikge1xyXG4gICAgICAgICAgICB0aGlzLm9uTW91c2V1cCgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKiogUnVucyBhIHRpbWVvdXQgb3V0c2lkZSBvZiB0aGUgQW5ndWxhciB6b25lIHRvIGF2b2lkIHRyaWdnZXJpbmcgdGhlIGNoYW5nZSBkZXRlY3Rpb24uICovXHJcbiAgICBwcml2YXRlIHJ1blRpbWVvdXRPdXRzaWRlWm9uZShmbjogRnVuY3Rpb24sIGRlbGF5OiBudW1iZXIgPSAwKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fbmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHNldFRpbWVvdXQoZm4sIGRlbGF5KSk7XHJcbiAgICB9XHJcblxyXG59XHJcblxyXG4vKiogRW5mb3JjZXMgYSBzdHlsZSByZWNhbGN1bGF0aW9uIG9mIGEgRE9NIGVsZW1lbnQgYnkgY29tcHV0aW5nIGl0cyBzdHlsZXMuICovXHJcbmZ1bmN0aW9uIGVuZm9yY2VTdHlsZVJlY2FsY3VsYXRpb24oZWxlbWVudDogSFRNTEVsZW1lbnQpIHtcclxuICAgIC8vIEVuZm9yY2UgYSBzdHlsZSByZWNhbGN1bGF0aW9uIGJ5IGNhbGxpbmcgYGdldENvbXB1dGVkU3R5bGVgIGFuZCBhY2Nlc3NpbmcgYW55IHByb3BlcnR5LlxyXG4gICAgLy8gQ2FsbGluZyBgZ2V0UHJvcGVydHlWYWx1ZWAgaXMgaW1wb3J0YW50IHRvIGxldCBvcHRpbWl6ZXJzIGtub3cgdGhhdCB0aGlzIGlzIG5vdCBhIG5vb3AuXHJcbiAgICAvLyBTZWU6IGh0dHBzOi8vZ2lzdC5naXRodWIuY29tL3BhdWxpcmlzaC81ZDUyZmIwODFiMzU3MGM4MWUzYVxyXG4gICAgd2luZG93LmdldENvbXB1dGVkU3R5bGUoZWxlbWVudCkuZ2V0UHJvcGVydHlWYWx1ZSgnb3BhY2l0eScpO1xyXG59XHJcblxyXG4vKipcclxuICogUmV0dXJucyB0aGUgZGlzdGFuY2UgZnJvbSB0aGUgcG9pbnQgKHgsIHkpIHRvIHRoZSBmdXJ0aGVzdCBjb3JuZXIgb2YgYSByZWN0YW5nbGUuXHJcbiAqL1xyXG5mdW5jdGlvbiBkaXN0YW5jZVRvRnVydGhlc3RDb3JuZXIoeDogbnVtYmVyLCB5OiBudW1iZXIsIHJlY3Q6IENsaWVudFJlY3QpIHtcclxuICAgIGNvbnN0IGRpc3RYID0gTWF0aC5tYXgoTWF0aC5hYnMoeCAtIHJlY3QubGVmdCksIE1hdGguYWJzKHggLSByZWN0LnJpZ2h0KSk7XHJcbiAgICBjb25zdCBkaXN0WSA9IE1hdGgubWF4KE1hdGguYWJzKHkgLSByZWN0LnRvcCksIE1hdGguYWJzKHkgLSByZWN0LmJvdHRvbSkpO1xyXG4gICAgcmV0dXJuIE1hdGguc3FydChkaXN0WCAqIGRpc3RYICsgZGlzdFkgKiBkaXN0WSk7XHJcbn0iXX0=
@@ -0,0 +1,80 @@
1
+ // NOTE: Copied from iOneJS and adapted to CoreComponents on 9-may-2018.
2
+ import { Directive, ElementRef, Inject, InjectionToken, Input, NgZone, Optional } from '@angular/core';
3
+ import { CoRippleRenderer } from "./ripple-renderer";
4
+ import { CoViewportRulerService } from "./viewport-ruler.service";
5
+ /** OpaqueToken that can be used to specify the global ripple options. */
6
+ export const MD_RIPPLE_GLOBAL_OPTIONS = new InjectionToken('CoRippleGlobalOptions');
7
+ export class CoRippleDirective {
8
+ constructor(elementRef, ngZone, ruler,
9
+ // Type needs to be `any` because of https://github.com/angular/angular/issues/12631
10
+ globalOptions) {
11
+ /**
12
+ * If set, the radius in pixels of foreground ripples when fully expanded. If unset, the radius
13
+ * will be the distance from the center of the ripple to the furthest corner of the host element's
14
+ * bounding rectangle.
15
+ */
16
+ this.radius = 0;
17
+ /**
18
+ * If set, the normal duration of ripple animations is divided by this value. For example,
19
+ * setting it to 0.5 will cause the animations to take twice as long.
20
+ * A changed speedFactor will not modify the fade-out duration of the ripples.
21
+ */
22
+ this.speedFactor = 1;
23
+ this._rippleRenderer = new CoRippleRenderer(elementRef, ngZone, ruler);
24
+ this._globalOptions = globalOptions ? globalOptions : {};
25
+ }
26
+ ngOnChanges(changes) {
27
+ if (changes['trigger'] && this.trigger) {
28
+ this._rippleRenderer.setTriggerElement(this.trigger);
29
+ }
30
+ this._rippleRenderer.rippleDisabled = this._globalOptions.disabled || this.disabled;
31
+ this._rippleRenderer.rippleConfig = this.rippleConfig;
32
+ }
33
+ ngOnDestroy() {
34
+ // Set the trigger element to null to cleanup all listeners.
35
+ this._rippleRenderer.setTriggerElement(null);
36
+ }
37
+ /** Launches a manual ripple at the specified position. */
38
+ launch(pageX, pageY, config = this.rippleConfig) {
39
+ return this._rippleRenderer.fadeInRipple(pageX, pageY, config);
40
+ }
41
+ /** Fades out all currently showing ripple elements. */
42
+ fadeOutAll() {
43
+ this._rippleRenderer.fadeOutAll();
44
+ }
45
+ /** Ripple configuration from the directive's input values. */
46
+ get rippleConfig() {
47
+ return {
48
+ centered: this.centered,
49
+ speedFactor: this.speedFactor * (this._globalOptions.baseSpeedFactor || 1),
50
+ radius: this.radius,
51
+ color: this.color
52
+ };
53
+ }
54
+ }
55
+ CoRippleDirective.decorators = [
56
+ { type: Directive, args: [{
57
+ selector: '[md-ripple], [mat-ripple], [mdRipple], [matRipple]',
58
+ exportAs: 'mdRipple',
59
+ host: {
60
+ '[class.mat-ripple]': 'true',
61
+ '[class.mat-ripple-unbounded]': 'unbounded'
62
+ }
63
+ },] }
64
+ ];
65
+ CoRippleDirective.ctorParameters = () => [
66
+ { type: ElementRef },
67
+ { type: NgZone },
68
+ { type: CoViewportRulerService },
69
+ { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [MD_RIPPLE_GLOBAL_OPTIONS,] }] }
70
+ ];
71
+ CoRippleDirective.propDecorators = {
72
+ trigger: [{ type: Input, args: ['mdRippleTrigger',] }],
73
+ centered: [{ type: Input, args: ['mdRippleCentered',] }],
74
+ disabled: [{ type: Input, args: ['mdRippleDisabled',] }],
75
+ radius: [{ type: Input, args: ['mdRippleRadius',] }],
76
+ speedFactor: [{ type: Input, args: ['mdRippleSpeedFactor',] }],
77
+ color: [{ type: Input, args: ['mdRippleColor',] }],
78
+ unbounded: [{ type: Input, args: ['mdRippleUnbounded',] }]
79
+ };
80
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmlwcGxlLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmVjb21wb25lbnRzL3NyYy9saWIvZGlyZWN0aXZlcy9yaXBwbGUvcmlwcGxlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx3RUFBd0U7QUFFeEUsT0FBTyxFQUFDLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLGNBQWMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUF3QixRQUFRLEVBQWdCLE1BQU0sZUFBZSxDQUFDO0FBQzFJLE9BQU8sRUFBaUIsZ0JBQWdCLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQztBQUVuRSxPQUFPLEVBQUMsc0JBQXNCLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUVoRSx5RUFBeUU7QUFDekUsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQTBDLElBQUksY0FBYyxDQUFDLHVCQUF1QixDQUFDLENBQUM7QUFlM0gsTUFBTSxPQUFPLGlCQUFpQjtJQWdEMUIsWUFDSSxVQUFzQixFQUN0QixNQUFjLEVBQ2QsS0FBNkI7SUFDN0Isb0ZBQW9GO0lBQ3RDLGFBQWtCO1FBL0JwRTs7OztXQUlHO1FBQ3NCLFdBQU0sR0FBVyxDQUFDLENBQUM7UUFFNUM7Ozs7V0FJRztRQUMyQixnQkFBVyxHQUFXLENBQUMsQ0FBQztRQXFCbEQsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLGdCQUFnQixDQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDdkUsSUFBSSxDQUFDLGNBQWMsR0FBRyxhQUFhLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQzdELENBQUM7SUFFRCxXQUFXLENBQUMsT0FBc0I7UUFDOUIsSUFBSSxPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNwQyxJQUFJLENBQUMsZUFBZSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUN4RDtRQUVELElBQUksQ0FBQyxlQUFlLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUM7UUFDcEYsSUFBSSxDQUFDLGVBQWUsQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQztJQUMxRCxDQUFDO0lBRUQsV0FBVztRQUNQLDREQUE0RDtRQUM1RCxJQUFJLENBQUMsZUFBZSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFRCwwREFBMEQ7SUFDMUQsTUFBTSxDQUFDLEtBQWEsRUFBRSxLQUFhLEVBQUUsU0FBeUIsSUFBSSxDQUFDLFlBQVk7UUFDM0UsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ25FLENBQUM7SUFFRCx1REFBdUQ7SUFDdkQsVUFBVTtRQUNOLElBQUksQ0FBQyxlQUFlLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDdEMsQ0FBQztJQUVELDhEQUE4RDtJQUM5RCxJQUFJLFlBQVk7UUFDWixPQUFPO1lBQ0gsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO1lBQ3ZCLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVyxHQUFHLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxlQUFlLElBQUksQ0FBQyxDQUFDO1lBQzFFLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTtZQUNuQixLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUs7U0FDcEIsQ0FBQztJQUNOLENBQUM7OztZQW5HSixTQUFTLFNBQUM7Z0JBQ1AsUUFBUSxFQUFFLG9EQUFvRDtnQkFDOUQsUUFBUSxFQUFFLFVBQVU7Z0JBQ3BCLElBQUksRUFBRTtvQkFDRixvQkFBb0IsRUFBRSxNQUFNO29CQUM1Qiw4QkFBOEIsRUFBRSxXQUFXO2lCQUM5QzthQUNKOzs7WUFwQmtCLFVBQVU7WUFBaUMsTUFBTTtZQUc1RCxzQkFBc0I7NENBdUVyQixRQUFRLFlBQUksTUFBTSxTQUFDLHdCQUF3Qjs7O3NCQTdDL0MsS0FBSyxTQUFDLGlCQUFpQjt1QkFNdkIsS0FBSyxTQUFDLGtCQUFrQjt1QkFNeEIsS0FBSyxTQUFDLGtCQUFrQjtxQkFPeEIsS0FBSyxTQUFDLGdCQUFnQjswQkFPdEIsS0FBSyxTQUFDLHFCQUFxQjtvQkFHM0IsS0FBSyxTQUFDLGVBQWU7d0JBR3JCLEtBQUssU0FBQyxtQkFBbUIiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBOT1RFOiBDb3BpZWQgZnJvbSBpT25lSlMgYW5kIGFkYXB0ZWQgdG8gQ29yZUNvbXBvbmVudHMgb24gOS1tYXktMjAxOC5cclxuXHJcbmltcG9ydCB7RGlyZWN0aXZlLCBFbGVtZW50UmVmLCBJbmplY3QsIEluamVjdGlvblRva2VuLCBJbnB1dCwgTmdab25lLCBPbkNoYW5nZXMsIE9uRGVzdHJveSwgT3B0aW9uYWwsIFNpbXBsZUNoYW5nZXN9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge0NvUmlwcGxlQ29uZmlnLCBDb1JpcHBsZVJlbmRlcmVyfSBmcm9tIFwiLi9yaXBwbGUtcmVuZGVyZXJcIjtcclxuaW1wb3J0IHtDb1JpcHBsZVJlZn0gZnJvbSBcIi4vcmlwcGxlLXJlZlwiO1xyXG5pbXBvcnQge0NvVmlld3BvcnRSdWxlclNlcnZpY2V9IGZyb20gXCIuL3ZpZXdwb3J0LXJ1bGVyLnNlcnZpY2VcIjtcclxuXHJcbi8qKiBPcGFxdWVUb2tlbiB0aGF0IGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkgdGhlIGdsb2JhbCByaXBwbGUgb3B0aW9ucy4gKi9cclxuZXhwb3J0IGNvbnN0IE1EX1JJUFBMRV9HTE9CQUxfT1BUSU9OUzogSW5qZWN0aW9uVG9rZW48Q29SaXBwbGVHbG9iYWxPcHRpb25zPiA9IG5ldyBJbmplY3Rpb25Ub2tlbignQ29SaXBwbGVHbG9iYWxPcHRpb25zJyk7XHJcblxyXG5leHBvcnQgdHlwZSBDb1JpcHBsZUdsb2JhbE9wdGlvbnMgPSB7XHJcbiAgICBkaXNhYmxlZD86IGJvb2xlYW47XHJcbiAgICBiYXNlU3BlZWRGYWN0b3I/OiBudW1iZXI7XHJcbn07XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICAgIHNlbGVjdG9yOiAnW21kLXJpcHBsZV0sIFttYXQtcmlwcGxlXSwgW21kUmlwcGxlXSwgW21hdFJpcHBsZV0nLFxyXG4gICAgZXhwb3J0QXM6ICdtZFJpcHBsZScsXHJcbiAgICBob3N0OiB7XHJcbiAgICAgICAgJ1tjbGFzcy5tYXQtcmlwcGxlXSc6ICd0cnVlJyxcclxuICAgICAgICAnW2NsYXNzLm1hdC1yaXBwbGUtdW5ib3VuZGVkXSc6ICd1bmJvdW5kZWQnXHJcbiAgICB9XHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDb1JpcHBsZURpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSBlbGVtZW50IHRoYXQgdHJpZ2dlcnMgdGhlIHJpcHBsZSB3aGVuIGNsaWNrIGV2ZW50cyBhcmUgcmVjZWl2ZWQuIERlZmF1bHRzIHRvIHRoZVxyXG4gICAgICogZGlyZWN0aXZlJ3MgaG9zdCBlbGVtZW50LlxyXG4gICAgICovXHJcbiAgICAgICAgLy8gUHJldmVudCBUUyBtZXRhZGF0YSBlbWl0IGZyb20gcmVmZXJlbmNpbmcgSFRNTEVsZW1lbnQgaW4gcmlwcGxlLmpzXHJcbiAgICAgICAgLy8gT3RoZXJ3aXNlIHJ1bm5pbmcgdGhpcyBjb2RlIGluIGEgTm9kZSBlbnZpcm9ubWVudCAoZS5nIFVuaXZlcnNhbCkgd2lsbCBub3Qgd29yay5cclxuICAgIEBJbnB1dCgnbWRSaXBwbGVUcmlnZ2VyJykgdHJpZ2dlcjogSFRNTEVsZW1lbnQgfCBIVE1MRWxlbWVudDtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFdoZXRoZXIgdGhlIHJpcHBsZSBhbHdheXMgb3JpZ2luYXRlcyBmcm9tIHRoZSBjZW50ZXIgb2YgdGhlIGhvc3QgZWxlbWVudCdzIGJvdW5kcywgcmF0aGVyXHJcbiAgICAgKiB0aGFuIG9yaWdpbmF0aW5nIGZyb20gdGhlIGxvY2F0aW9uIG9mIHRoZSBjbGljayBldmVudC5cclxuICAgICAqL1xyXG4gICAgQElucHV0KCdtZFJpcHBsZUNlbnRlcmVkJykgY2VudGVyZWQ6IGJvb2xlYW47XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBXaGV0aGVyIGNsaWNrIGV2ZW50cyB3aWxsIG5vdCB0cmlnZ2VyIHRoZSByaXBwbGUuIEl0IGNhbiBzdGlsbCBiZSB0cmlnZ2VyZWQgYnkgbWFudWFsbHlcclxuICAgICAqIGNhbGxpbmcgY3JlYXRlUmlwcGxlKClcclxuICAgICAqL1xyXG4gICAgQElucHV0KCdtZFJpcHBsZURpc2FibGVkJykgZGlzYWJsZWQ6IGJvb2xlYW47XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJZiBzZXQsIHRoZSByYWRpdXMgaW4gcGl4ZWxzIG9mIGZvcmVncm91bmQgcmlwcGxlcyB3aGVuIGZ1bGx5IGV4cGFuZGVkLiBJZiB1bnNldCwgdGhlIHJhZGl1c1xyXG4gICAgICogd2lsbCBiZSB0aGUgZGlzdGFuY2UgZnJvbSB0aGUgY2VudGVyIG9mIHRoZSByaXBwbGUgdG8gdGhlIGZ1cnRoZXN0IGNvcm5lciBvZiB0aGUgaG9zdCBlbGVtZW50J3NcclxuICAgICAqIGJvdW5kaW5nIHJlY3RhbmdsZS5cclxuICAgICAqL1xyXG4gICAgQElucHV0KCdtZFJpcHBsZVJhZGl1cycpIHJhZGl1czogbnVtYmVyID0gMDtcclxuXHJcbiAgICAvKipcclxuICAgICAqIElmIHNldCwgdGhlIG5vcm1hbCBkdXJhdGlvbiBvZiByaXBwbGUgYW5pbWF0aW9ucyBpcyBkaXZpZGVkIGJ5IHRoaXMgdmFsdWUuIEZvciBleGFtcGxlLFxyXG4gICAgICogc2V0dGluZyBpdCB0byAwLjUgd2lsbCBjYXVzZSB0aGUgYW5pbWF0aW9ucyB0byB0YWtlIHR3aWNlIGFzIGxvbmcuXHJcbiAgICAgKiBBIGNoYW5nZWQgc3BlZWRGYWN0b3Igd2lsbCBub3QgbW9kaWZ5IHRoZSBmYWRlLW91dCBkdXJhdGlvbiBvZiB0aGUgcmlwcGxlcy5cclxuICAgICAqL1xyXG4gICAgQElucHV0KCdtZFJpcHBsZVNwZWVkRmFjdG9yJykgc3BlZWRGYWN0b3I6IG51bWJlciA9IDE7XHJcblxyXG4gICAgLyoqIEN1c3RvbSBjb2xvciBmb3IgcmlwcGxlcy4gKi9cclxuICAgIEBJbnB1dCgnbWRSaXBwbGVDb2xvcicpIGNvbG9yOiBzdHJpbmc7XHJcblxyXG4gICAgLyoqIFdoZXRoZXIgZm9yZWdyb3VuZCByaXBwbGVzIHNob3VsZCBiZSB2aXNpYmxlIG91dHNpZGUgdGhlIGNvbXBvbmVudCdzIGJvdW5kcy4gKi9cclxuICAgIEBJbnB1dCgnbWRSaXBwbGVVbmJvdW5kZWQnKSB1bmJvdW5kZWQ6IGJvb2xlYW47XHJcblxyXG4gICAgLyoqIFJlbmRlcmVyIGZvciB0aGUgcmlwcGxlIERPTSBtYW5pcHVsYXRpb25zLiAqL1xyXG4gICAgcHJpdmF0ZSBfcmlwcGxlUmVuZGVyZXI6IENvUmlwcGxlUmVuZGVyZXI7XHJcblxyXG4gICAgLyoqIE9wdGlvbnMgdGhhdCBhcmUgc2V0IGdsb2JhbGx5IGZvciBhbGwgcmlwcGxlcy4gKi9cclxuICAgIHByaXZhdGUgX2dsb2JhbE9wdGlvbnM6IENvUmlwcGxlR2xvYmFsT3B0aW9ucztcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxyXG4gICAgICAgIG5nWm9uZTogTmdab25lLFxyXG4gICAgICAgIHJ1bGVyOiBDb1ZpZXdwb3J0UnVsZXJTZXJ2aWNlLFxyXG4gICAgICAgIC8vIFR5cGUgbmVlZHMgdG8gYmUgYGFueWAgYmVjYXVzZSBvZiBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9hbmd1bGFyL2lzc3Vlcy8xMjYzMVxyXG4gICAgICAgIEBPcHRpb25hbCgpIEBJbmplY3QoTURfUklQUExFX0dMT0JBTF9PUFRJT05TKSBnbG9iYWxPcHRpb25zOiBhbnlcclxuICAgICkge1xyXG4gICAgICAgIHRoaXMuX3JpcHBsZVJlbmRlcmVyID0gbmV3IENvUmlwcGxlUmVuZGVyZXIoZWxlbWVudFJlZiwgbmdab25lLCBydWxlcik7XHJcbiAgICAgICAgdGhpcy5fZ2xvYmFsT3B0aW9ucyA9IGdsb2JhbE9wdGlvbnMgPyBnbG9iYWxPcHRpb25zIDoge307XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgICAgIGlmIChjaGFuZ2VzWyd0cmlnZ2VyJ10gJiYgdGhpcy50cmlnZ2VyKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX3JpcHBsZVJlbmRlcmVyLnNldFRyaWdnZXJFbGVtZW50KHRoaXMudHJpZ2dlcik7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLl9yaXBwbGVSZW5kZXJlci5yaXBwbGVEaXNhYmxlZCA9IHRoaXMuX2dsb2JhbE9wdGlvbnMuZGlzYWJsZWQgfHwgdGhpcy5kaXNhYmxlZDtcclxuICAgICAgICB0aGlzLl9yaXBwbGVSZW5kZXJlci5yaXBwbGVDb25maWcgPSB0aGlzLnJpcHBsZUNvbmZpZztcclxuICAgIH1cclxuXHJcbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgICAgICAvLyBTZXQgdGhlIHRyaWdnZXIgZWxlbWVudCB0byBudWxsIHRvIGNsZWFudXAgYWxsIGxpc3RlbmVycy5cclxuICAgICAgICB0aGlzLl9yaXBwbGVSZW5kZXJlci5zZXRUcmlnZ2VyRWxlbWVudChudWxsKTtcclxuICAgIH1cclxuXHJcbiAgICAvKiogTGF1bmNoZXMgYSBtYW51YWwgcmlwcGxlIGF0IHRoZSBzcGVjaWZpZWQgcG9zaXRpb24uICovXHJcbiAgICBsYXVuY2gocGFnZVg6IG51bWJlciwgcGFnZVk6IG51bWJlciwgY29uZmlnOiBDb1JpcHBsZUNvbmZpZyA9IHRoaXMucmlwcGxlQ29uZmlnKTogQ29SaXBwbGVSZWYge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9yaXBwbGVSZW5kZXJlci5mYWRlSW5SaXBwbGUocGFnZVgsIHBhZ2VZLCBjb25maWcpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKiBGYWRlcyBvdXQgYWxsIGN1cnJlbnRseSBzaG93aW5nIHJpcHBsZSBlbGVtZW50cy4gKi9cclxuICAgIGZhZGVPdXRBbGwoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fcmlwcGxlUmVuZGVyZXIuZmFkZU91dEFsbCgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKiBSaXBwbGUgY29uZmlndXJhdGlvbiBmcm9tIHRoZSBkaXJlY3RpdmUncyBpbnB1dCB2YWx1ZXMuICovXHJcbiAgICBnZXQgcmlwcGxlQ29uZmlnKCk6IENvUmlwcGxlQ29uZmlnIHtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICBjZW50ZXJlZDogdGhpcy5jZW50ZXJlZCxcclxuICAgICAgICAgICAgc3BlZWRGYWN0b3I6IHRoaXMuc3BlZWRGYWN0b3IgKiAodGhpcy5fZ2xvYmFsT3B0aW9ucy5iYXNlU3BlZWRGYWN0b3IgfHwgMSksXHJcbiAgICAgICAgICAgIHJhZGl1czogdGhpcy5yYWRpdXMsXHJcbiAgICAgICAgICAgIGNvbG9yOiB0aGlzLmNvbG9yXHJcbiAgICAgICAgfTtcclxuICAgIH1cclxufSJdfQ==
@@ -0,0 +1,24 @@
1
+ // NOTE: Copied from iOneJS and adapted to CoreComponents on 9-may-2018.
2
+ import { NgModule } from "@angular/core";
3
+ import { CoViewportRulerService } from "./viewport-ruler.service";
4
+ import { CoRippleDirective } from "./ripple.directive";
5
+ import { CoScrollableDirective } from "./scrollable.directive";
6
+ import { CoScrollDispatcherService } from "./scroll-dispatcher.service";
7
+ export class RippleModule {
8
+ }
9
+ RippleModule.decorators = [
10
+ { type: NgModule, args: [{
11
+ declarations: [
12
+ CoRippleDirective,
13
+ CoScrollableDirective
14
+ ],
15
+ providers: [
16
+ CoScrollDispatcherService,
17
+ CoViewportRulerService
18
+ ],
19
+ exports: [
20
+ CoRippleDirective
21
+ ]
22
+ },] }
23
+ ];
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmlwcGxlLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmVjb21wb25lbnRzL3NyYy9saWIvZGlyZWN0aXZlcy9yaXBwbGUvcmlwcGxlLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx3RUFBd0U7QUFFeEUsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUV2QyxPQUFPLEVBQUMsc0JBQXNCLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUNoRSxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQztBQUNyRCxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUM3RCxPQUFPLEVBQUMseUJBQXlCLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQztBQWV0RSxNQUFNLE9BQU8sWUFBWTs7O1lBYnhCLFFBQVEsU0FBQztnQkFDTixZQUFZLEVBQUU7b0JBQ1YsaUJBQWlCO29CQUNqQixxQkFBcUI7aUJBQ3hCO2dCQUNELFNBQVMsRUFBRTtvQkFDUCx5QkFBeUI7b0JBQ3pCLHNCQUFzQjtpQkFDekI7Z0JBQ0QsT0FBTyxFQUFFO29CQUNMLGlCQUFpQjtpQkFDcEI7YUFDSiIsInNvdXJjZXNDb250ZW50IjpbIi8vIE5PVEU6IENvcGllZCBmcm9tIGlPbmVKUyBhbmQgYWRhcHRlZCB0byBDb3JlQ29tcG9uZW50cyBvbiA5LW1heS0yMDE4LlxyXG5cclxuaW1wb3J0IHtOZ01vZHVsZX0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuXHJcbmltcG9ydCB7Q29WaWV3cG9ydFJ1bGVyU2VydmljZX0gZnJvbSBcIi4vdmlld3BvcnQtcnVsZXIuc2VydmljZVwiO1xyXG5pbXBvcnQge0NvUmlwcGxlRGlyZWN0aXZlfSBmcm9tIFwiLi9yaXBwbGUuZGlyZWN0aXZlXCI7XHJcbmltcG9ydCB7Q29TY3JvbGxhYmxlRGlyZWN0aXZlfSBmcm9tIFwiLi9zY3JvbGxhYmxlLmRpcmVjdGl2ZVwiO1xyXG5pbXBvcnQge0NvU2Nyb2xsRGlzcGF0Y2hlclNlcnZpY2V9IGZyb20gXCIuL3Njcm9sbC1kaXNwYXRjaGVyLnNlcnZpY2VcIjtcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgICBkZWNsYXJhdGlvbnM6IFtcclxuICAgICAgICBDb1JpcHBsZURpcmVjdGl2ZSxcclxuICAgICAgICBDb1Njcm9sbGFibGVEaXJlY3RpdmVcclxuICAgIF0sXHJcbiAgICBwcm92aWRlcnM6IFtcclxuICAgICAgICBDb1Njcm9sbERpc3BhdGNoZXJTZXJ2aWNlLFxyXG4gICAgICAgIENvVmlld3BvcnRSdWxlclNlcnZpY2VcclxuICAgIF0sXHJcbiAgICBleHBvcnRzOiBbXHJcbiAgICAgICAgQ29SaXBwbGVEaXJlY3RpdmVcclxuICAgIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIFJpcHBsZU1vZHVsZSB7XHJcbn0iXX0=
@@ -0,0 +1,108 @@
1
+ // NOTE: Copied and adapted to iOneJS from https://github.com/angular/material2/blob/master/src/lib/core on 14-march-2017.
2
+ import { Injectable, Optional, SkipSelf } from '@angular/core';
3
+ import { fromEvent, merge, Subject } from 'rxjs';
4
+ import { auditTime } from 'rxjs/operators';
5
+ /** Time in ms to throttle the scrolling events by default. */
6
+ export const DEFAULT_SCROLL_TIME = 20;
7
+ /**
8
+ * Service contained all registered Scrollable references and emits an event when any one of the
9
+ * Scrollable references emit a scrolled event.
10
+ */
11
+ export class CoScrollDispatcherService {
12
+ constructor() {
13
+ /** Subject for notifying that a registered scrollable reference element has been scrolled. */
14
+ this._scrolled = new Subject();
15
+ /** Keeps track of the global `scroll` and `resize` subscriptions. */
16
+ this._globalSubscription = null;
17
+ /** Keeps track of the amount of subscriptions to `scrolled`. Used for cleaning up afterwards. */
18
+ this._scrolledCount = 0;
19
+ /**
20
+ * Map of all the scrollable references that are registered with the service and their
21
+ * scroll event subscriptions.
22
+ */
23
+ this.scrollableReferences = new Map();
24
+ }
25
+ /**
26
+ * Registers a Scrollable with the service and listens for its scrolled events. When the
27
+ * scrollable is scrolled, the service emits the event in its scrolled observable.
28
+ * @param scrollable Scrollable instance to be registered.
29
+ */
30
+ register(scrollable) {
31
+ const scrollSubscription = scrollable.elementScrolled().subscribe(() => this._notify());
32
+ this.scrollableReferences.set(scrollable, scrollSubscription);
33
+ }
34
+ /**
35
+ * Deregisters a Scrollable reference and unsubscribes from its scroll event observable.
36
+ * @param scrollable Scrollable instance to be deregistered.
37
+ */
38
+ deregister(scrollable) {
39
+ if (this.scrollableReferences.has(scrollable)) {
40
+ this.scrollableReferences.get(scrollable).unsubscribe();
41
+ this.scrollableReferences.delete(scrollable);
42
+ }
43
+ }
44
+ /**
45
+ * Subscribes to an observable that emits an event whenever any of the registered Scrollable
46
+ * references (or window, document, or body) fire a scrolled event. Can provide a time in ms
47
+ * to override the default "throttle" time.
48
+ */
49
+ scrolled(auditTimeInMs = DEFAULT_SCROLL_TIME, callback) {
50
+ // In the case of a 0ms delay, use an observable without auditTime
51
+ // since it does add a perceptible delay in processing overhead.
52
+ let observable = auditTimeInMs > 0 ?
53
+ auditTime(auditTimeInMs) :
54
+ this._scrolled.asObservable();
55
+ this._scrolledCount++;
56
+ if (!this._globalSubscription) {
57
+ this._globalSubscription = merge(fromEvent(window.document, 'scroll'), fromEvent(window, 'resize')).subscribe(() => this._notify());
58
+ }
59
+ // Note that we need to do the subscribing from here, in order to be able to remove
60
+ // the global event listeners once there are no more subscriptions.
61
+ return observable.subscribe(callback).add(() => {
62
+ this._scrolledCount--;
63
+ if (this._globalSubscription && !this.scrollableReferences.size && !this._scrolledCount) {
64
+ this._globalSubscription.unsubscribe();
65
+ this._globalSubscription = null;
66
+ }
67
+ });
68
+ }
69
+ /** Returns all registered Scrollables that contain the provided element. */
70
+ getScrollContainers(elementRef) {
71
+ const scrollingContainers = [];
72
+ this.scrollableReferences.forEach((subscription, scrollable) => {
73
+ if (this.scrollableContainsElement(scrollable, elementRef)) {
74
+ scrollingContainers.push(scrollable);
75
+ }
76
+ });
77
+ return scrollingContainers;
78
+ }
79
+ /** Returns true if the element is contained within the provided Scrollable. */
80
+ scrollableContainsElement(scrollable, elementRef) {
81
+ let element = elementRef.nativeElement;
82
+ let scrollableElement = scrollable.getElementRef().nativeElement;
83
+ // Traverse through the element parents until we reach null, checking if any of the elements
84
+ // are the scrollable's element.
85
+ do {
86
+ if (element == scrollableElement) {
87
+ return true;
88
+ }
89
+ } while (element = element.parentElement);
90
+ }
91
+ /** Sends a notification that a scroll event has been fired. */
92
+ _notify() {
93
+ this._scrolled.next();
94
+ }
95
+ }
96
+ CoScrollDispatcherService.decorators = [
97
+ { type: Injectable }
98
+ ];
99
+ export function SCROLL_DISPATCHER_PROVIDER_FACTORY(parentDispatcher) {
100
+ return parentDispatcher || new CoScrollDispatcherService();
101
+ }
102
+ export const SCROLL_DISPATCHER_PROVIDER = {
103
+ // If there is already a ScrollDispatcher available, use that. Otherwise, provide a new one.
104
+ provide: CoScrollDispatcherService,
105
+ deps: [[new Optional(), new SkipSelf(), CoScrollDispatcherService]],
106
+ useFactory: SCROLL_DISPATCHER_PROVIDER_FACTORY
107
+ };
108
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nyb2xsLWRpc3BhdGNoZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmVjb21wb25lbnRzL3NyYy9saWIvZGlyZWN0aXZlcy9yaXBwbGUvc2Nyb2xsLWRpc3BhdGNoZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwwSEFBMEg7QUFDMUgsT0FBTyxFQUFjLFVBQVUsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNFLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFjLE9BQU8sRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFHM0UsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTNDLDhEQUE4RDtBQUM5RCxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxFQUFFLENBQUM7QUFFdEM7OztHQUdHO0FBRUgsTUFBTSxPQUFPLHlCQUF5QjtJQUR0QztRQUVJLDhGQUE4RjtRQUM5RixjQUFTLEdBQWtCLElBQUksT0FBTyxFQUFRLENBQUM7UUFFL0MscUVBQXFFO1FBQ3JFLHdCQUFtQixHQUFpQixJQUFJLENBQUM7UUFFekMsaUdBQWlHO1FBQ3pGLG1CQUFjLEdBQUcsQ0FBQyxDQUFDO1FBRTNCOzs7V0FHRztRQUNILHlCQUFvQixHQUE2QyxJQUFJLEdBQUcsRUFBRSxDQUFDO0lBd0YvRSxDQUFDO0lBdEZHOzs7O09BSUc7SUFDSCxRQUFRLENBQUMsVUFBaUM7UUFDdEMsTUFBTSxrQkFBa0IsR0FBRyxVQUFVLENBQUMsZUFBZSxFQUFFLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBRXhGLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFFLGtCQUFrQixDQUFDLENBQUM7SUFDbEUsQ0FBQztJQUVEOzs7T0FHRztJQUNI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QkFBMEIsR0FBRztJQUN0Qyw0RkFBNEY7SUFDNUYsT0FBTyxFQUFFLHlCQUF5QjtJQUNsQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksUUFBUSxFQUFFLEVBQUUsSUFBSSxRQUFRLEVBQUUsRUFBRSx5QkFBeUIsQ0FBQyxDQUFDO0lBQ25FLFVBQVUsRUFBRSxrQ0FBa0M7Q0FDakQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIE5PVEU6IENvcGllZCBhbmQgYWRhcHRlZCB0byBpT25lSlMgZnJvbSBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9tYXRlcmlhbDIvYmxvYi9tYXN0ZXIvc3JjL2xpYi9jb3JlIG9uIDE0LW1hcmNoLTIwMTcuXHJcbmltcG9ydCB7IEVsZW1lbnRSZWYsIEluamVjdGFibGUsIE9wdGlvbmFsLCBTa2lwU2VsZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBmcm9tRXZlbnQsIG1lcmdlLCBPYnNlcnZhYmxlLCBTdWJqZWN0LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuXHJcbmltcG9ydCB7IENvU2Nyb2xsYWJsZURpcmVjdGl2ZSB9IGZyb20gJy4vc2Nyb2xsYWJsZS5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBhdWRpdFRpbWUgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG4vKiogVGltZSBpbiBtcyB0byB0aHJvdHRsZSB0aGUgc2Nyb2xsaW5nIGV2ZW50cyBieSBkZWZhdWx0LiAqL1xyXG5leHBvcnQgY29uc3QgREVGQVVMVF9TQ1JPTExfVElNRSA9IDIwO1xyXG5cclxuLyoqXHJcbiAqIFNlcnZpY2UgY29udGFpbmVkIGFsbCByZWdpc3RlcmVkIFNjcm9sbGFibGUgcmVmZXJlbmNlcyBhbmQgZW1pdHMgYW4gZXZlbnQgd2hlbiBhbnkgb25lIG9mIHRoZVxyXG4gKiBTY3JvbGxhYmxlIHJlZmVyZW5jZXMgZW1pdCBhIHNjcm9sbGVkIGV2ZW50LlxyXG4gKi9cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgQ29TY3JvbGxEaXNwYXRjaGVyU2VydmljZSB7XHJcbiAgICAvKiogU3ViamVjdCBmb3Igbm90aWZ5aW5nIHRoYXQgYSByZWdpc3RlcmVkIHNjcm9sbGFibGUgcmVmZXJlbmNlIGVsZW1lbnQgaGFzIGJlZW4gc2Nyb2xsZWQuICovXHJcbiAgICBfc2Nyb2xsZWQ6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG5cclxuICAgIC8qKiBLZWVwcyB0cmFjayBvZiB0aGUgZ2xvYmFsIGBzY3JvbGxgIGFuZCBgcmVzaXplYCBzdWJzY3JpcHRpb25zLiAqL1xyXG4gICAgX2dsb2JhbFN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uID0gbnVsbDtcclxuXHJcbiAgICAvKiogS2VlcHMgdHJhY2sgb2YgdGhlIGFtb3VudCBvZiBzdWJzY3JpcHRpb25zIHRvIGBzY3JvbGxlZGAuIFVzZWQgZm9yIGNsZWFuaW5nIHVwIGFmdGVyd2FyZHMuICovXHJcbiAgICBwcml2YXRlIF9zY3JvbGxlZENvdW50ID0gMDtcclxuXHJcbiAgICAvKipcclxuICAgICAqIE1hcCBvZiBhbGwgdGhlIHNjcm9sbGFibGUgcmVmZXJlbmNlcyB0aGF0IGFyZSByZWdpc3RlcmVkIHdpdGggdGhlIHNlcnZpY2UgYW5kIHRoZWlyXHJcbiAgICAgKiBzY3JvbGwgZXZlbnQgc3Vic2NyaXB0aW9ucy5cclxuICAgICAqL1xyXG4gICAgc2Nyb2xsYWJsZVJlZmVyZW5jZXM6IE1hcDxDb1Njcm9sbGFibGVEaXJlY3RpdmUsIFN1YnNjcmlwdGlvbj4gPSBuZXcgTWFwKCk7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZWdpc3RlcnMgYSBTY3JvbGxhYmxlIHdpdGggdGhlIHNlcnZpY2UgYW5kIGxpc3RlbnMgZm9yIGl0cyBzY3JvbGxlZCBldmVudHMuIFdoZW4gdGhlXHJcbiAgICAgKiBzY3JvbGxhYmxlIGlzIHNjcm9sbGVkLCB0aGUgc2VydmljZSBlbWl0cyB0aGUgZXZlbnQgaW4gaXRzIHNjcm9sbGVkIG9ic2VydmFibGUuXHJcbiAgICAgKiBAcGFyYW0gc2Nyb2xsYWJsZSBTY3JvbGxhYmxlIGluc3RhbmNlIHRvIGJlIHJlZ2lzdGVyZWQuXHJcbiAgICAgKi9cclxuICAgIHJlZ2lzdGVyKHNjcm9sbGFibGU6IENvU2Nyb2xsYWJsZURpcmVjdGl2ZSk6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IHNjcm9sbFN1YnNjcmlwdGlvbiA9IHNjcm9sbGFibGUuZWxlbWVudFNjcm9sbGVkKCkuc3Vic2NyaWJlKCgpID0+IHRoaXMuX25vdGlmeSgpKTtcclxuXHJcbiAgICAgICAgdGhpcy5zY3JvbGxhYmxlUmVmZXJlbmNlcy5zZXQoc2Nyb2xsYWJsZSwgc2Nyb2xsU3Vic2NyaXB0aW9uKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIERlcmVnaXN0ZXJzIGEgU2Nyb2xsYWJsZSByZWZlcmVuY2UgYW5kIHVuc3Vic2NyaWJlcyBmcm9tIGl0cyBzY3JvbGwgZXZlbnQgb2JzZXJ2YWJsZS5cclxuICAgICAqIEBwYXJhbSBzY3JvbGxhYmxlIFNjcm9sbGFibGUgaW5zdGFuY2UgdG8gYmUgZGVyZWdpc3RlcmVkLlxyXG4gICAgICovXHJcbiAgICBkZXJlZ2lzdGVyKHNjcm9sbGFibGU6IENvU2Nyb2xsYWJsZURpcmVjdGl2ZSk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLnNjcm9sbGFibGVSZWZlcmVuY2VzLmhhcyhzY3JvbGxhYmxlKSkge1xyXG4gICAgICAgICAgICB0aGlzLnNjcm9sbGFibGVSZWZlcmVuY2VzLmdldChzY3JvbGxhYmxlKS51bnN1YnNjcmliZSgpO1xyXG4gICAgICAgICAgICB0aGlzLnNjcm9sbGFibGVSZWZlcmVuY2VzLmRlbGV0ZShzY3JvbGxhYmxlKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTdWJzY3JpYmVzIHRvIGFuIG9ic2VydmFibGUgdGhhdCBlbWl0cyBhbiBldmVudCB3aGVuZXZlciBhbnkgb2YgdGhlIHJlZ2lzdGVyZWQgU2Nyb2xsYWJsZVxyXG4gICAgICogcmVmZXJlbmNlcyAob3Igd2luZG93LCBkb2N1bWVudCwgb3IgYm9keSkgZmlyZSBhIHNjcm9sbGVkIGV2ZW50LiBDYW4gcHJvdmlkZSBhIHRpbWUgaW4gbXNcclxuICAgICAqIHRvIG92ZXJyaWRlIHRoZSBkZWZhdWx0IFwidGhyb3R0bGVcIiB0aW1lLlxyXG4gICAgICovXHJcbiAgICBzY3JvbGxlZChhdWRpdFRpbWVJbk1zOiBudW1iZXIgPSBERUZBVUxUX1NDUk9MTF9USU1FLCBjYWxsYmFjazogKCkgPT4gYW55KTogU3Vic2NyaXB0aW9uIHtcclxuICAgICAgICAvLyBJbiB0aGUgY2FzZSBvZiBhIDBtcyBkZWxheSwgdXNlIGFuIG9ic2VydmFibGUgd2l0aG91dCBhdWRpdFRpbWVcclxuICAgICAgICAvLyBzaW5jZSBpdCBkb2VzIGFkZCBhIHBlcmNlcHRpYmxlIGRlbGF5IGluIHByb2Nlc3Npbmcgb3ZlcmhlYWQuXHJcbiAgICAgICAgbGV0IG9ic2VydmFibGU6IGFueSA9IGF1ZGl0VGltZUluTXMgPiAwID9cclxuICAgICAgICAgICAgYXVkaXRUaW1lKGF1ZGl0VGltZUluTXMpIDpcclxuICAgICAgICAgICAgdGhpcy5fc2Nyb2xsZWQuYXNPYnNlcnZhYmxlKCk7XHJcblxyXG4gICAgICAgIHRoaXMuX3Njcm9sbGVkQ291bnQrKztcclxuXHJcbiAgICAgICAgaWYgKCF0aGlzLl9nbG9iYWxTdWJzY3JpcHRpb24pIHtcclxuICAgICAgICAgICAgdGhpcy5fZ2xvYmFsU3Vic2NyaXB0aW9uID0gbWVyZ2UoXHJcbiAgICAgICAgICAgICAgICBmcm9tRXZlbnQod2luZG93LmRvY3VtZW50LCAnc2Nyb2xsJyksXHJcbiAgICAgICAgICAgICAgICBmcm9tRXZlbnQod2luZG93LCAncmVzaXplJylcclxuICAgICAgICAgICAgKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy5fbm90aWZ5KCkpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gTm90ZSB0aGF0IHdlIG5lZWQgdG8gZG8gdGhlIHN1YnNjcmliaW5nIGZyb20gaGVyZSwgaW4gb3JkZXIgdG8gYmUgYWJsZSB0byByZW1vdmVcclxuICAgICAgICAvLyB0aGUgZ2xvYmFsIGV2ZW50IGxpc3RlbmVycyBvbmNlIHRoZXJlIGFyZSBubyBtb3JlIHN1YnNjcmlwdGlvbnMuXHJcbiAgICAgICAgcmV0dXJuIG9ic2VydmFibGUuc3Vic2NyaWJlKGNhbGxiYWNrKS5hZGQoKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLl9zY3JvbGxlZENvdW50LS07XHJcblxyXG4gICAgICAgICAgICBpZiAodGhpcy5fZ2xvYmFsU3Vic2NyaXB0aW9uICYmICF0aGlzLnNjcm9sbGFibGVSZWZlcmVuY2VzLnNpemUgJiYgIXRoaXMuX3Njcm9sbGVkQ291bnQpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuX2dsb2JhbFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fZ2xvYmFsU3Vic2NyaXB0aW9uID0gbnVsbDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKiBSZXR1cm5zIGFsbCByZWdpc3RlcmVkIFNjcm9sbGFibGVzIHRoYXQgY29udGFpbiB0aGUgcHJvdmlkZWQgZWxlbWVudC4gKi9cclxuICAgIGdldFNjcm9sbENvbnRhaW5lcnMoZWxlbWVudFJlZjogRWxlbWVudFJlZik6IENvU2Nyb2xsYWJsZURpcmVjdGl2ZVtdIHtcclxuICAgICAgICBjb25zdCBzY3JvbGxpbmdDb250YWluZXJzOiBDb1Njcm9sbGFibGVEaXJlY3RpdmVbXSA9IFtdO1xyXG5cclxuICAgICAgICB0aGlzLnNjcm9sbGFibGVSZWZlcmVuY2VzLmZvckVhY2goKHN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uLCBzY3JvbGxhYmxlOiBDb1Njcm9sbGFibGVEaXJlY3RpdmUpID0+IHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuc2Nyb2xsYWJsZUNvbnRhaW5zRWxlbWVudChzY3JvbGxhYmxlLCBlbGVtZW50UmVmKSkge1xyXG4gICAgICAgICAgICAgICAgc2Nyb2xsaW5nQ29udGFpbmVycy5wdXNoKHNjcm9sbGFibGUpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHJldHVybiBzY3JvbGxpbmdDb250YWluZXJzO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKiBSZXR1cm5zIHRydWUgaWYgdGhlIGVsZW1lbnQgaXMgY29udGFpbmVkIHdpdGhpbiB0aGUgcHJvdmlkZWQgU2Nyb2xsYWJsZS4gKi9cclxuICAgIHNjcm9sbGFibGVDb250YWluc0VsZW1lbnQoc2Nyb2xsYWJsZTogQ29TY3JvbGxhYmxlRGlyZWN0aXZlLCBlbGVtZW50UmVmOiBFbGVtZW50UmVmKTogYm9vbGVhbiB7XHJcbiAgICAgICAgbGV0IGVsZW1lbnQgPSBlbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XHJcbiAgICAgICAgbGV0IHNjcm9sbGFibGVFbGVtZW50ID0gc2Nyb2xsYWJsZS5nZXRFbGVtZW50UmVmKCkubmF0aXZlRWxlbWVudDtcclxuXHJcbiAgICAgICAgLy8gVHJhdmVyc2UgdGhyb3VnaCB0aGUgZWxlbWVudCBwYXJlbnRzIHVudGlsIHdlIHJlYWNoIG51bGwsIGNoZWNraW5nIGlmIGFueSBvZiB0aGUgZWxlbWVudHNcclxuICAgICAgICAvLyBhcmUgdGhlIHNjcm9sbGFibGUncyBlbGVtZW50LlxyXG4gICAgICAgIGRvIHtcclxuICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gc2Nyb2xsYWJsZUVsZW1lbnQpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSB3aGlsZSAoZWxlbWVudCA9IGVsZW1lbnQucGFyZW50RWxlbWVudCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqIFNlbmRzIGEgbm90aWZpY2F0aW9uIHRoYXQgYSBzY3JvbGwgZXZlbnQgaGFzIGJlZW4gZmlyZWQuICovXHJcbiAgICBfbm90aWZ5KCkge1xyXG4gICAgICAgIHRoaXMuX3Njcm9sbGVkLm5leHQoKTtcclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIFNDUk9MTF9ESVNQQVRDSEVSX1BST1ZJREVSX0ZBQ1RPUlkocGFyZW50RGlzcGF0Y2hlcjogQ29TY3JvbGxEaXNwYXRjaGVyU2VydmljZSkge1xyXG4gICAgcmV0dXJuIHBhcmVudERpc3BhdGNoZXIgfHwgbmV3IENvU2Nyb2xsRGlzcGF0Y2hlclNlcnZpY2UoKTtcclxufVxyXG5cclxuZXhwb3J0IGNvbnN0IFNDUk9MTF9ESVNQQVRDSEVSX1BST1ZJREVSID0ge1xyXG4gICAgLy8gSWYgdGhlcmUgaXMgYWxyZWFkeSBhIFNjcm9sbERpc3BhdGNoZXIgYXZhaWxhYmxlLCB1c2UgdGhhdC4gT3RoZXJ3aXNlLCBwcm92aWRlIGEgbmV3IG9uZS5cclxuICAgIHByb3ZpZGU6IENvU2Nyb2xsRGlzcGF0Y2hlclNlcnZpY2UsXHJcbiAgICBkZXBzOiBbW25ldyBPcHRpb25hbCgpLCBuZXcgU2tpcFNlbGYoKSwgQ29TY3JvbGxEaXNwYXRjaGVyU2VydmljZV1dLFxyXG4gICAgdXNlRmFjdG9yeTogU0NST0xMX0RJU1BBVENIRVJfUFJPVklERVJfRkFDVE9SWVxyXG59O1xyXG4iXX0=